@tipp/ui 2.7.1 → 2.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (411) hide show
  1. package/dist/app/index.cjs +10 -2
  2. package/dist/app/index.cjs.map +1 -1
  3. package/dist/app/index.js +105 -104
  4. package/dist/app/platform/coach-question-list.cjs +10 -2
  5. package/dist/app/platform/coach-question-list.cjs.map +1 -1
  6. package/dist/app/platform/coach-question-list.js +35 -34
  7. package/dist/app/platform/contents-card.cjs +10 -2
  8. package/dist/app/platform/contents-card.cjs.map +1 -1
  9. package/dist/app/platform/contents-card.js +35 -34
  10. package/dist/app/platform/curriculum-card.cjs +10 -2
  11. package/dist/app/platform/curriculum-card.cjs.map +1 -1
  12. package/dist/app/platform/curriculum-card.js +6 -5
  13. package/dist/app/platform/edit-coaching-time.cjs +10 -2
  14. package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
  15. package/dist/app/platform/edit-coaching-time.js +83 -82
  16. package/dist/app/platform/edit-service-type.cjs +10 -2
  17. package/dist/app/platform/edit-service-type.cjs.map +1 -1
  18. package/dist/app/platform/edit-service-type.js +84 -83
  19. package/dist/app/platform/goal-manage-card-edit.cjs +10 -2
  20. package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
  21. package/dist/app/platform/goal-manage-card-edit.js +83 -82
  22. package/dist/app/platform/goal-manage-card-read.cjs +10 -2
  23. package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
  24. package/dist/app/platform/goal-manage-card-read.js +35 -34
  25. package/dist/app/platform/on-offline-radio-card.cjs +10 -2
  26. package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
  27. package/dist/app/platform/on-offline-radio-card.js +83 -82
  28. package/dist/app/platform/report-card.cjs +10 -2
  29. package/dist/app/platform/report-card.cjs.map +1 -1
  30. package/dist/app/platform/report-card.js +35 -34
  31. package/dist/app/platform/reservation-card.cjs +10 -2
  32. package/dist/app/platform/reservation-card.cjs.map +1 -1
  33. package/dist/app/platform/reservation-card.js +84 -83
  34. package/dist/app/platform/session-card.cjs +10 -2
  35. package/dist/app/platform/session-card.cjs.map +1 -1
  36. package/dist/app/platform/session-card.js +86 -85
  37. package/dist/app/platform/session-review-simple-read.cjs +10 -2
  38. package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
  39. package/dist/app/platform/session-review-simple-read.js +35 -34
  40. package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +10 -2
  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 +40 -39
  43. package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +10 -2
  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 +35 -34
  46. package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +10 -2
  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 +35 -34
  49. package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +10 -2
  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 +35 -34
  52. package/dist/app/platform/userInfos/session-user-info-detail.cjs +10 -2
  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 +35 -34
  55. package/dist/app/platform/userInfos/utils.cjs +10 -2
  56. package/dist/app/platform/userInfos/utils.cjs.map +1 -1
  57. package/dist/app/platform/userInfos/utils.js +34 -33
  58. package/dist/atoms/bullet-text.cjs +8 -1
  59. package/dist/atoms/bullet-text.cjs.map +1 -1
  60. package/dist/atoms/bullet-text.js +4 -3
  61. package/dist/atoms/dialog.cjs +8 -1
  62. package/dist/atoms/dialog.cjs.map +1 -1
  63. package/dist/atoms/dialog.js +3 -2
  64. package/dist/atoms/ellipsis-tooltip.cjs +8 -1
  65. package/dist/atoms/ellipsis-tooltip.cjs.map +1 -1
  66. package/dist/atoms/ellipsis-tooltip.js +5 -4
  67. package/dist/atoms/field-error-wrapper.cjs +8 -1
  68. package/dist/atoms/field-error-wrapper.cjs.map +1 -1
  69. package/dist/atoms/field-error-wrapper.js +4 -3
  70. package/dist/atoms/heading.cjs +8 -1
  71. package/dist/atoms/heading.cjs.map +1 -1
  72. package/dist/atoms/heading.d.cts +2 -0
  73. package/dist/atoms/heading.d.ts +2 -0
  74. package/dist/atoms/heading.js +2 -1
  75. package/dist/atoms/index.cjs +10 -2
  76. package/dist/atoms/index.cjs.map +1 -1
  77. package/dist/atoms/index.js +67 -66
  78. package/dist/atoms/list.cjs +8 -1
  79. package/dist/atoms/list.cjs.map +1 -1
  80. package/dist/atoms/list.js +4 -3
  81. package/dist/atoms/pagination.cjs +8 -1
  82. package/dist/atoms/pagination.cjs.map +1 -1
  83. package/dist/atoms/pagination.js +4 -3
  84. package/dist/atoms/tooltip.js +2 -2
  85. package/dist/atoms/typo.cjs +8 -1
  86. package/dist/atoms/typo.cjs.map +1 -1
  87. package/dist/atoms/typo.d.cts +2 -0
  88. package/dist/atoms/typo.d.ts +2 -0
  89. package/dist/atoms/typo.js +2 -1
  90. package/dist/{chunk-W5EYMVXS.js → chunk-2M3UFZUD.js} +4 -4
  91. package/dist/{chunk-FBYJMCIN.js → chunk-3UJEOHQT.js} +10 -10
  92. package/dist/{chunk-QRYLRCA6.js → chunk-5BIICWFT.js} +7 -7
  93. package/dist/{chunk-5W6GSZGX.js → chunk-5FLPPHUZ.js} +3 -3
  94. package/dist/{chunk-GD7NQAMP.js → chunk-5FXPD4NE.js} +5 -5
  95. package/dist/{chunk-UL6JYNEG.js → chunk-5SXTL6NO.js} +4 -4
  96. package/dist/{chunk-4BP63QT6.js → chunk-6JPGF4MB.js} +5 -5
  97. package/dist/{chunk-7SX3S6P3.js → chunk-6Q26H64H.js} +7 -7
  98. package/dist/{chunk-EYDTE4R3.js → chunk-6XASFDTI.js} +19 -19
  99. package/dist/{chunk-RFNUDAXX.js → chunk-6YPAN4D3.js} +9 -9
  100. package/dist/{chunk-XLJQHI62.js → chunk-72ZC7DBY.js} +4 -4
  101. package/dist/{chunk-MMLVZWMD.js → chunk-77YN5S26.js} +3 -3
  102. package/dist/{chunk-SEUOHWYL.js → chunk-7NBGSPZU.js} +5 -5
  103. package/dist/{chunk-FAZ6MJW2.js → chunk-7TRT4QTP.js} +4 -4
  104. package/dist/{chunk-YSZIV3CU.js → chunk-7XMPNH2X.js} +10 -10
  105. package/dist/{chunk-PILMEQHD.js → chunk-AEDSRBBB.js} +7 -7
  106. package/dist/{chunk-FTVHVY7L.js → chunk-ANFQJ6YW.js} +7 -7
  107. package/dist/{chunk-5YFN6IV4.js → chunk-B7SKF5RD.js} +9 -9
  108. package/dist/{chunk-HO3ZU6U5.js → chunk-BZCUF5K6.js} +5 -5
  109. package/dist/{chunk-KO3V7KB6.js → chunk-BZVA4RGI.js} +2 -2
  110. package/dist/{chunk-AVFFTSKQ.js → chunk-C2FRAZT2.js} +4 -4
  111. package/dist/{chunk-BXHOQTLL.js → chunk-C5CEDLV6.js} +4 -4
  112. package/dist/{chunk-SM4SJYFT.js → chunk-DBXQFZBB.js} +5 -5
  113. package/dist/{chunk-ADYJTATU.js → chunk-DDYPJWZV.js} +15 -15
  114. package/dist/{chunk-UHDZOX4S.js → chunk-DHP7LYK7.js} +4 -4
  115. package/dist/{chunk-466DYMJ3.js → chunk-DUXYDGHX.js} +13 -13
  116. package/dist/{chunk-M2OFGXKX.js → chunk-FFGGO6E4.js} +2 -2
  117. package/dist/{chunk-2OPXQ3HE.js → chunk-FIQJUO66.js} +5 -5
  118. package/dist/{chunk-B4HDNKVU.js → chunk-GBT2BBZS.js} +6 -6
  119. package/dist/{chunk-BRRMEZNQ.js → chunk-GE4M5GOQ.js} +4 -4
  120. package/dist/{chunk-CE7HOORS.js → chunk-GMEGTXIV.js} +5 -5
  121. package/dist/{chunk-EA2OSGFZ.js → chunk-GTTZJ2Y7.js} +9 -9
  122. package/dist/{chunk-M3AG4NSZ.js → chunk-IA4WXGVH.js} +4 -4
  123. package/dist/{chunk-BZFQBI2R.js → chunk-IIA2BVJI.js} +7 -7
  124. package/dist/{chunk-DPX24TVC.js → chunk-IYAN33WP.js} +10 -10
  125. package/dist/{chunk-CQSM6JCO.js → chunk-K3Q4XLCN.js} +4 -4
  126. package/dist/{chunk-2ME5TSVO.js → chunk-KEFAYPBO.js} +9 -9
  127. package/dist/{chunk-EVERKQW4.js → chunk-L5WSNVSD.js} +11 -11
  128. package/dist/{chunk-AJTGTGOC.js → chunk-LCR5R743.js} +2 -2
  129. package/dist/{chunk-3M2R4R2V.js → chunk-LXL7GJUM.js} +5 -5
  130. package/dist/{chunk-AV4A2DYD.js → chunk-MTESLX7K.js} +15 -15
  131. package/dist/{chunk-4FZUZ453.js → chunk-NIMF5FJI.js} +13 -13
  132. package/dist/{chunk-CNQFW2WR.js → chunk-P6YCD2AV.js} +11 -11
  133. package/dist/chunk-PO2PBAHW.js +10 -0
  134. package/dist/chunk-PO2PBAHW.js.map +1 -0
  135. package/dist/{chunk-XKG5IOSO.js → chunk-PRLNOTMV.js} +9 -9
  136. package/dist/{chunk-D4US4T4T.js → chunk-PTUL6MDB.js} +5 -5
  137. package/dist/{chunk-WVMXH4DX.js → chunk-PWUCBBQP.js} +3 -3
  138. package/dist/{chunk-UK73NZQI.js → chunk-PZDN6K6R.js} +6 -6
  139. package/dist/{chunk-E6GCU5IQ.js → chunk-QFSMOKC6.js} +2 -2
  140. package/dist/{chunk-VITMX6BM.js → chunk-R43F6ZWT.js} +5 -5
  141. package/dist/{chunk-IUULKM4U.js → chunk-RVHE3UVN.js} +12 -12
  142. package/dist/{chunk-HGRKKNGU.js → chunk-SGJBQKUD.js} +4 -4
  143. package/dist/{chunk-PWORNPPB.js → chunk-SHFN2BOB.js} +2 -2
  144. package/dist/{chunk-R4YNFO4T.js → chunk-SQZVLRUH.js} +5 -5
  145. package/dist/{chunk-J5NSJGZH.js → chunk-TF3RLGKA.js} +4 -4
  146. package/dist/{chunk-YLDG4Y52.js → chunk-U5LZO2EI.js} +6 -6
  147. package/dist/chunk-U7PMCTVQ.js +1 -0
  148. package/dist/{chunk-DD3FPRHB.js → chunk-UA2HDDD4.js} +7 -7
  149. package/dist/{chunk-QAFGOQTR.js → chunk-UHAMISMF.js} +6 -6
  150. package/dist/{chunk-FW2QU4JO.js → chunk-UILGIMXL.js} +5 -5
  151. package/dist/{chunk-GVOZ4OL4.js → chunk-UIMDXYPP.js} +9 -9
  152. package/dist/{chunk-NPBQ4C7M.js → chunk-URSBI6BQ.js} +7 -7
  153. package/dist/{chunk-UIWGBVJI.js → chunk-VFWRW7TA.js} +4 -4
  154. package/dist/{chunk-AQVIQODP.js → chunk-VK6INFSB.js} +4 -4
  155. package/dist/{chunk-P7YWDJNW.js → chunk-VVJEXKCB.js} +8 -8
  156. package/dist/{chunk-JEGY3OLE.js → chunk-VYUQXEXS.js} +7 -7
  157. package/dist/{chunk-HOFWTFCW.js → chunk-WLG6GG26.js} +7 -7
  158. package/dist/{chunk-KJZIKOZN.js → chunk-XFFVIWAD.js} +2 -2
  159. package/dist/{chunk-74CWHYZA.js → chunk-XOCVP6IW.js} +10 -10
  160. package/dist/{chunk-CFZM5JE4.js → chunk-YCV3HR4J.js} +5 -5
  161. package/dist/{chunk-NLHVQJQ2.js → chunk-YIVIBIK2.js} +6 -2
  162. package/dist/chunk-YIVIBIK2.js.map +1 -0
  163. package/dist/{chunk-2N3DY4VJ.js → chunk-YWLFDIBP.js} +7 -7
  164. package/dist/{chunk-GR4PG6HY.js → chunk-YXFHD2PY.js} +6 -2
  165. package/dist/chunk-YXFHD2PY.js.map +1 -0
  166. package/dist/{chunk-35E2WUIX.js → chunk-Z2U2YQOG.js} +5 -5
  167. package/dist/{chunk-SYX35B5E.js → chunk-Z54XTEAF.js} +4 -4
  168. package/dist/context/dynamic-form-context.cjs +10 -2
  169. package/dist/context/dynamic-form-context.cjs.map +1 -1
  170. package/dist/context/dynamic-form-context.js +5 -4
  171. package/dist/context/index.cjs +10 -2
  172. package/dist/context/index.cjs.map +1 -1
  173. package/dist/context/index.js +8 -7
  174. package/dist/index.cjs +12 -2
  175. package/dist/index.cjs.map +1 -1
  176. package/dist/index.d.cts +1 -0
  177. package/dist/index.d.ts +1 -0
  178. package/dist/index.js +154 -150
  179. package/dist/molecules/autocomplete-textfield.cjs +8 -1
  180. package/dist/molecules/autocomplete-textfield.cjs.map +1 -1
  181. package/dist/molecules/autocomplete-textfield.js +4 -3
  182. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs +10 -2
  183. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
  184. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +19 -18
  185. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs +8 -1
  186. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs.map +1 -1
  187. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +5 -4
  188. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs +8 -1
  189. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs.map +1 -1
  190. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +12 -11
  191. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +2 -2
  192. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs +10 -2
  193. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs.map +1 -1
  194. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +5 -4
  195. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-layout.js +2 -2
  196. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs +8 -1
  197. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs.map +1 -1
  198. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +7 -6
  199. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs +8 -1
  200. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs.map +1 -1
  201. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +6 -5
  202. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs +8 -1
  203. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs.map +1 -1
  204. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +6 -5
  205. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs +8 -1
  206. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs.map +1 -1
  207. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +6 -5
  208. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs +10 -2
  209. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
  210. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +5 -4
  211. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs +10 -2
  212. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
  213. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +22 -21
  214. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs +10 -2
  215. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
  216. package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +7 -6
  217. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs +8 -1
  218. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
  219. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +4 -3
  220. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs +8 -1
  221. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs.map +1 -1
  222. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +4 -3
  223. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs +10 -2
  224. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
  225. package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +24 -23
  226. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +10 -2
  227. package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
  228. package/dist/molecules/curriculumV2/CurriculumContents/index.js +28 -27
  229. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs +8 -1
  230. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs.map +1 -1
  231. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +4 -3
  232. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs +8 -1
  233. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs.map +1 -1
  234. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +5 -4
  235. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs +8 -1
  236. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs.map +1 -1
  237. package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.js +3 -2
  238. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs +8 -1
  239. package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
  240. package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +9 -8
  241. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs +8 -1
  242. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs.map +1 -1
  243. package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +7 -6
  244. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs +10 -2
  245. package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
  246. package/dist/molecules/curriculumV2/curriculum-sub-nav.js +5 -4
  247. package/dist/molecules/curriculumV2/curriculum-v2-layout.js +2 -2
  248. package/dist/molecules/curriculumV2/index.cjs +10 -2
  249. package/dist/molecules/curriculumV2/index.cjs.map +1 -1
  250. package/dist/molecules/curriculumV2/index.js +39 -38
  251. package/dist/molecules/date-picker/date-picker-button.cjs +10 -2
  252. package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
  253. package/dist/molecules/date-picker/date-picker-button.js +8 -7
  254. package/dist/molecules/date-picker/index.cjs +10 -2
  255. package/dist/molecules/date-picker/index.cjs.map +1 -1
  256. package/dist/molecules/date-picker/index.js +7 -6
  257. package/dist/molecules/description-json-render.cjs +10 -1
  258. package/dist/molecules/description-json-render.cjs.map +1 -1
  259. package/dist/molecules/description-json-render.js +6 -5
  260. package/dist/molecules/download-card.cjs +8 -1
  261. package/dist/molecules/download-card.cjs.map +1 -1
  262. package/dist/molecules/download-card.js +4 -3
  263. package/dist/molecules/dynamic-field.cjs +10 -2
  264. package/dist/molecules/dynamic-field.cjs.map +1 -1
  265. package/dist/molecules/dynamic-field.js +10 -9
  266. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +8 -1
  267. package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -1
  268. package/dist/molecules/dynamic-form-editor-field-editor-panel.js +7 -6
  269. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs +8 -1
  270. package/dist/molecules/dynamic-form-editor-field-list-panel.cjs.map +1 -1
  271. package/dist/molecules/dynamic-form-editor-field-list-panel.js +5 -4
  272. package/dist/molecules/dynamic-form-editor-issues-panel.cjs +8 -1
  273. package/dist/molecules/dynamic-form-editor-issues-panel.cjs.map +1 -1
  274. package/dist/molecules/dynamic-form-editor-issues-panel.js +4 -3
  275. package/dist/molecules/dynamic-form-editor-preview-panel.cjs +10 -2
  276. package/dist/molecules/dynamic-form-editor-preview-panel.cjs.map +1 -1
  277. package/dist/molecules/dynamic-form-editor-preview-panel.js +12 -11
  278. package/dist/molecules/dynamic-form-editor.cjs +10 -2
  279. package/dist/molecules/dynamic-form-editor.cjs.map +1 -1
  280. package/dist/molecules/dynamic-form-editor.js +19 -18
  281. package/dist/molecules/dynamic-form.cjs +10 -2
  282. package/dist/molecules/dynamic-form.cjs.map +1 -1
  283. package/dist/molecules/dynamic-form.js +11 -10
  284. package/dist/molecules/expand-table/index.cjs +8 -1
  285. package/dist/molecules/expand-table/index.cjs.map +1 -1
  286. package/dist/molecules/expand-table/index.js +6 -5
  287. package/dist/molecules/force-refresh.cjs +8 -1
  288. package/dist/molecules/force-refresh.cjs.map +1 -1
  289. package/dist/molecules/force-refresh.js +4 -3
  290. package/dist/molecules/form/form.cjs +10 -2
  291. package/dist/molecules/form/form.cjs.map +1 -1
  292. package/dist/molecules/form/form.js +4 -3
  293. package/dist/molecules/form/index.cjs +10 -2
  294. package/dist/molecules/form/index.cjs.map +1 -1
  295. package/dist/molecules/form/index.js +4 -3
  296. package/dist/molecules/ghost-post.cjs +8 -1
  297. package/dist/molecules/ghost-post.cjs.map +1 -1
  298. package/dist/molecules/ghost-post.js +5 -4
  299. package/dist/molecules/index.cjs +10 -2
  300. package/dist/molecules/index.cjs.map +1 -1
  301. package/dist/molecules/index.js +76 -75
  302. package/dist/molecules/learning-post.cjs +10 -2
  303. package/dist/molecules/learning-post.cjs.map +1 -1
  304. package/dist/molecules/learning-post.js +8 -7
  305. package/dist/molecules/navigation.cjs +8 -1
  306. package/dist/molecules/navigation.cjs.map +1 -1
  307. package/dist/molecules/navigation.js +4 -3
  308. package/dist/molecules/one-on-one-guide-list.cjs +10 -2
  309. package/dist/molecules/one-on-one-guide-list.cjs.map +1 -1
  310. package/dist/molecules/one-on-one-guide-list.js +6 -5
  311. package/dist/molecules/stepper.cjs +8 -1
  312. package/dist/molecules/stepper.cjs.map +1 -1
  313. package/dist/molecules/stepper.js +5 -4
  314. package/dist/molecules/tag-selector.cjs +8 -1
  315. package/dist/molecules/tag-selector.cjs.map +1 -1
  316. package/dist/molecules/tag-selector.js +7 -6
  317. package/dist/molecules/time-select.js +3 -2
  318. package/dist/molecules/training-info-guideline.cjs +10 -2
  319. package/dist/molecules/training-info-guideline.cjs.map +1 -1
  320. package/dist/molecules/training-info-guideline.js +9 -8
  321. package/dist/utils/index.cjs +8 -0
  322. package/dist/utils/index.cjs.map +1 -1
  323. package/dist/utils/index.d.cts +2 -0
  324. package/dist/utils/index.d.ts +2 -0
  325. package/dist/utils/index.js +5 -1
  326. package/dist/utils/mono-style.cjs +34 -0
  327. package/dist/utils/mono-style.cjs.map +1 -0
  328. package/dist/utils/mono-style.d.cts +12 -0
  329. package/dist/utils/mono-style.d.ts +12 -0
  330. package/dist/utils/mono-style.js +8 -0
  331. package/dist/utils/mono-style.js.map +1 -0
  332. package/package.json +1 -1
  333. package/src/atoms/heading.tsx +6 -1
  334. package/src/atoms/typo.tsx +6 -1
  335. package/src/utils/index.ts +2 -1
  336. package/src/utils/mono-style.ts +13 -0
  337. package/dist/chunk-GR4PG6HY.js.map +0 -1
  338. package/dist/chunk-NLHVQJQ2.js.map +0 -1
  339. package/dist/chunk-OLJN3WXR.js +0 -1
  340. /package/dist/{chunk-W5EYMVXS.js.map → chunk-2M3UFZUD.js.map} +0 -0
  341. /package/dist/{chunk-FBYJMCIN.js.map → chunk-3UJEOHQT.js.map} +0 -0
  342. /package/dist/{chunk-QRYLRCA6.js.map → chunk-5BIICWFT.js.map} +0 -0
  343. /package/dist/{chunk-5W6GSZGX.js.map → chunk-5FLPPHUZ.js.map} +0 -0
  344. /package/dist/{chunk-GD7NQAMP.js.map → chunk-5FXPD4NE.js.map} +0 -0
  345. /package/dist/{chunk-UL6JYNEG.js.map → chunk-5SXTL6NO.js.map} +0 -0
  346. /package/dist/{chunk-4BP63QT6.js.map → chunk-6JPGF4MB.js.map} +0 -0
  347. /package/dist/{chunk-7SX3S6P3.js.map → chunk-6Q26H64H.js.map} +0 -0
  348. /package/dist/{chunk-EYDTE4R3.js.map → chunk-6XASFDTI.js.map} +0 -0
  349. /package/dist/{chunk-RFNUDAXX.js.map → chunk-6YPAN4D3.js.map} +0 -0
  350. /package/dist/{chunk-XLJQHI62.js.map → chunk-72ZC7DBY.js.map} +0 -0
  351. /package/dist/{chunk-MMLVZWMD.js.map → chunk-77YN5S26.js.map} +0 -0
  352. /package/dist/{chunk-SEUOHWYL.js.map → chunk-7NBGSPZU.js.map} +0 -0
  353. /package/dist/{chunk-FAZ6MJW2.js.map → chunk-7TRT4QTP.js.map} +0 -0
  354. /package/dist/{chunk-YSZIV3CU.js.map → chunk-7XMPNH2X.js.map} +0 -0
  355. /package/dist/{chunk-PILMEQHD.js.map → chunk-AEDSRBBB.js.map} +0 -0
  356. /package/dist/{chunk-FTVHVY7L.js.map → chunk-ANFQJ6YW.js.map} +0 -0
  357. /package/dist/{chunk-5YFN6IV4.js.map → chunk-B7SKF5RD.js.map} +0 -0
  358. /package/dist/{chunk-HO3ZU6U5.js.map → chunk-BZCUF5K6.js.map} +0 -0
  359. /package/dist/{chunk-KO3V7KB6.js.map → chunk-BZVA4RGI.js.map} +0 -0
  360. /package/dist/{chunk-AVFFTSKQ.js.map → chunk-C2FRAZT2.js.map} +0 -0
  361. /package/dist/{chunk-BXHOQTLL.js.map → chunk-C5CEDLV6.js.map} +0 -0
  362. /package/dist/{chunk-SM4SJYFT.js.map → chunk-DBXQFZBB.js.map} +0 -0
  363. /package/dist/{chunk-ADYJTATU.js.map → chunk-DDYPJWZV.js.map} +0 -0
  364. /package/dist/{chunk-UHDZOX4S.js.map → chunk-DHP7LYK7.js.map} +0 -0
  365. /package/dist/{chunk-466DYMJ3.js.map → chunk-DUXYDGHX.js.map} +0 -0
  366. /package/dist/{chunk-M2OFGXKX.js.map → chunk-FFGGO6E4.js.map} +0 -0
  367. /package/dist/{chunk-2OPXQ3HE.js.map → chunk-FIQJUO66.js.map} +0 -0
  368. /package/dist/{chunk-B4HDNKVU.js.map → chunk-GBT2BBZS.js.map} +0 -0
  369. /package/dist/{chunk-BRRMEZNQ.js.map → chunk-GE4M5GOQ.js.map} +0 -0
  370. /package/dist/{chunk-CE7HOORS.js.map → chunk-GMEGTXIV.js.map} +0 -0
  371. /package/dist/{chunk-EA2OSGFZ.js.map → chunk-GTTZJ2Y7.js.map} +0 -0
  372. /package/dist/{chunk-M3AG4NSZ.js.map → chunk-IA4WXGVH.js.map} +0 -0
  373. /package/dist/{chunk-BZFQBI2R.js.map → chunk-IIA2BVJI.js.map} +0 -0
  374. /package/dist/{chunk-DPX24TVC.js.map → chunk-IYAN33WP.js.map} +0 -0
  375. /package/dist/{chunk-CQSM6JCO.js.map → chunk-K3Q4XLCN.js.map} +0 -0
  376. /package/dist/{chunk-2ME5TSVO.js.map → chunk-KEFAYPBO.js.map} +0 -0
  377. /package/dist/{chunk-EVERKQW4.js.map → chunk-L5WSNVSD.js.map} +0 -0
  378. /package/dist/{chunk-AJTGTGOC.js.map → chunk-LCR5R743.js.map} +0 -0
  379. /package/dist/{chunk-3M2R4R2V.js.map → chunk-LXL7GJUM.js.map} +0 -0
  380. /package/dist/{chunk-AV4A2DYD.js.map → chunk-MTESLX7K.js.map} +0 -0
  381. /package/dist/{chunk-4FZUZ453.js.map → chunk-NIMF5FJI.js.map} +0 -0
  382. /package/dist/{chunk-CNQFW2WR.js.map → chunk-P6YCD2AV.js.map} +0 -0
  383. /package/dist/{chunk-XKG5IOSO.js.map → chunk-PRLNOTMV.js.map} +0 -0
  384. /package/dist/{chunk-D4US4T4T.js.map → chunk-PTUL6MDB.js.map} +0 -0
  385. /package/dist/{chunk-WVMXH4DX.js.map → chunk-PWUCBBQP.js.map} +0 -0
  386. /package/dist/{chunk-UK73NZQI.js.map → chunk-PZDN6K6R.js.map} +0 -0
  387. /package/dist/{chunk-E6GCU5IQ.js.map → chunk-QFSMOKC6.js.map} +0 -0
  388. /package/dist/{chunk-VITMX6BM.js.map → chunk-R43F6ZWT.js.map} +0 -0
  389. /package/dist/{chunk-IUULKM4U.js.map → chunk-RVHE3UVN.js.map} +0 -0
  390. /package/dist/{chunk-HGRKKNGU.js.map → chunk-SGJBQKUD.js.map} +0 -0
  391. /package/dist/{chunk-PWORNPPB.js.map → chunk-SHFN2BOB.js.map} +0 -0
  392. /package/dist/{chunk-R4YNFO4T.js.map → chunk-SQZVLRUH.js.map} +0 -0
  393. /package/dist/{chunk-J5NSJGZH.js.map → chunk-TF3RLGKA.js.map} +0 -0
  394. /package/dist/{chunk-YLDG4Y52.js.map → chunk-U5LZO2EI.js.map} +0 -0
  395. /package/dist/{chunk-OLJN3WXR.js.map → chunk-U7PMCTVQ.js.map} +0 -0
  396. /package/dist/{chunk-DD3FPRHB.js.map → chunk-UA2HDDD4.js.map} +0 -0
  397. /package/dist/{chunk-QAFGOQTR.js.map → chunk-UHAMISMF.js.map} +0 -0
  398. /package/dist/{chunk-FW2QU4JO.js.map → chunk-UILGIMXL.js.map} +0 -0
  399. /package/dist/{chunk-GVOZ4OL4.js.map → chunk-UIMDXYPP.js.map} +0 -0
  400. /package/dist/{chunk-NPBQ4C7M.js.map → chunk-URSBI6BQ.js.map} +0 -0
  401. /package/dist/{chunk-UIWGBVJI.js.map → chunk-VFWRW7TA.js.map} +0 -0
  402. /package/dist/{chunk-AQVIQODP.js.map → chunk-VK6INFSB.js.map} +0 -0
  403. /package/dist/{chunk-P7YWDJNW.js.map → chunk-VVJEXKCB.js.map} +0 -0
  404. /package/dist/{chunk-JEGY3OLE.js.map → chunk-VYUQXEXS.js.map} +0 -0
  405. /package/dist/{chunk-HOFWTFCW.js.map → chunk-WLG6GG26.js.map} +0 -0
  406. /package/dist/{chunk-KJZIKOZN.js.map → chunk-XFFVIWAD.js.map} +0 -0
  407. /package/dist/{chunk-74CWHYZA.js.map → chunk-XOCVP6IW.js.map} +0 -0
  408. /package/dist/{chunk-CFZM5JE4.js.map → chunk-YCV3HR4J.js.map} +0 -0
  409. /package/dist/{chunk-2N3DY4VJ.js.map → chunk-YWLFDIBP.js.map} +0 -0
  410. /package/dist/{chunk-35E2WUIX.js.map → chunk-Z2U2YQOG.js.map} +0 -0
  411. /package/dist/{chunk-SYX35B5E.js.map → chunk-Z54XTEAF.js.map} +0 -0
@@ -1,162 +1,166 @@
1
1
  import "../chunk-SYMOHU2B.js";
2
+ import {
3
+ DatePickerButton
4
+ } from "../chunk-6JPGF4MB.js";
5
+ import {
6
+ DatePicker
7
+ } from "../chunk-IYAN33WP.js";
2
8
  import {
3
9
  ExpandTable,
4
10
  createColumnHelper
5
- } from "../chunk-3M2R4R2V.js";
11
+ } from "../chunk-LXL7GJUM.js";
6
12
  import "../chunk-JCG2AUFJ.js";
7
13
  import "../chunk-AS7ID74X.js";
14
+ import {
15
+ CurriculumSidebar
16
+ } from "../chunk-FFGGO6E4.js";
17
+ import "../chunk-GBT2BBZS.js";
18
+ import "../chunk-WS7IOHVK.js";
19
+ import "../chunk-XFFVIWAD.js";
20
+ import "../chunk-C5CEDLV6.js";
21
+ import "../chunk-BZVA4RGI.js";
8
22
  import {
9
23
  CurriculumBody
10
- } from "../chunk-RFNUDAXX.js";
11
- import "../chunk-UHDZOX4S.js";
12
- import "../chunk-EA2OSGFZ.js";
13
- import "../chunk-QAFGOQTR.js";
14
- import "../chunk-DD3FPRHB.js";
15
- import "../chunk-GD7NQAMP.js";
16
- import "../chunk-GVOZ4OL4.js";
17
- import "../chunk-R4YNFO4T.js";
18
- import "../chunk-PWORNPPB.js";
19
- import "../chunk-SM4SJYFT.js";
20
- import "../chunk-D4US4T4T.js";
21
- import "../chunk-BRRMEZNQ.js";
22
- import "../chunk-HOFWTFCW.js";
23
- import "../chunk-AQVIQODP.js";
24
- import "../chunk-BZFQBI2R.js";
25
- import "../chunk-FBYJMCIN.js";
24
+ } from "../chunk-6YPAN4D3.js";
25
+ import "../chunk-7TRT4QTP.js";
26
+ import "../chunk-DHP7LYK7.js";
27
+ import "../chunk-GTTZJ2Y7.js";
28
+ import "../chunk-UHAMISMF.js";
29
+ import "../chunk-3UJEOHQT.js";
30
+ import "../chunk-UA2HDDD4.js";
31
+ import "../chunk-VK6INFSB.js";
32
+ import "../chunk-5FXPD4NE.js";
33
+ import "../chunk-UIMDXYPP.js";
34
+ import "../chunk-SQZVLRUH.js";
35
+ import "../chunk-SHFN2BOB.js";
36
+ import "../chunk-DBXQFZBB.js";
37
+ import "../chunk-PTUL6MDB.js";
38
+ import "../chunk-GE4M5GOQ.js";
39
+ import "../chunk-WLG6GG26.js";
40
+ import "../chunk-IIA2BVJI.js";
26
41
  import "../chunk-GMKRNFH5.js";
27
42
  import "../chunk-KFUBWOCN.js";
28
- import {
29
- CurriculumSidebar
30
- } from "../chunk-M2OFGXKX.js";
31
- import "../chunk-B4HDNKVU.js";
32
- import "../chunk-KJZIKOZN.js";
33
- import "../chunk-KO3V7KB6.js";
34
- import "../chunk-BXHOQTLL.js";
35
- import "../chunk-WS7IOHVK.js";
36
- import "../chunk-FAZ6MJW2.js";
37
43
  import {
38
44
  CurriculumSubNav
39
- } from "../chunk-PILMEQHD.js";
45
+ } from "../chunk-AEDSRBBB.js";
40
46
  import {
41
47
  CurriculumProvider,
42
48
  useCurriculumContext
43
49
  } from "../chunk-WA5A2GB4.js";
44
50
  import {
45
51
  CurriculumV2Layout
46
- } from "../chunk-CQSM6JCO.js";
47
- import {
48
- DatePickerButton
49
- } from "../chunk-4BP63QT6.js";
50
- import {
51
- DatePicker
52
- } from "../chunk-DPX24TVC.js";
52
+ } from "../chunk-K3Q4XLCN.js";
53
53
  import "../chunk-2ISIAPFS.js";
54
54
  import {
55
55
  OneOnOneGuideList,
56
56
  oneOnOneNoteTextReplacer
57
- } from "../chunk-J5NSJGZH.js";
57
+ } from "../chunk-TF3RLGKA.js";
58
58
  import {
59
59
  RadioButtonCard
60
60
  } from "../chunk-EZN5PMTC.js";
61
61
  import {
62
62
  Stepper
63
- } from "../chunk-JEGY3OLE.js";
63
+ } from "../chunk-VYUQXEXS.js";
64
64
  import {
65
65
  TagSelector
66
- } from "../chunk-74CWHYZA.js";
66
+ } from "../chunk-XOCVP6IW.js";
67
67
  import {
68
68
  TimeSelect
69
69
  } from "../chunk-GRDRXD53.js";
70
- import "../chunk-OLJN3WXR.js";
70
+ import "../chunk-U7PMCTVQ.js";
71
71
  import "../chunk-NWJSLIQ3.js";
72
72
  import "../chunk-BXX3B3E4.js";
73
73
  import "../chunk-NRPDVI76.js";
74
74
  import "../chunk-2BPFXK4L.js";
75
75
  import {
76
76
  TrainingInfoGuideline
77
- } from "../chunk-EVERKQW4.js";
77
+ } from "../chunk-L5WSNVSD.js";
78
78
  import {
79
79
  DynamicFormEditor
80
- } from "../chunk-CE7HOORS.js";
80
+ } from "../chunk-GMEGTXIV.js";
81
81
  import {
82
82
  DynamicFormResponseItem
83
83
  } from "../chunk-77H5BUYO.js";
84
84
  import "../chunk-K7LTEKQS.js";
85
85
  import {
86
86
  ForceRefresh
87
- } from "../chunk-UIWGBVJI.js";
87
+ } from "../chunk-VFWRW7TA.js";
88
88
  import {
89
89
  GhostPost
90
- } from "../chunk-2N3DY4VJ.js";
90
+ } from "../chunk-YWLFDIBP.js";
91
91
  import {
92
92
  LearningPost
93
- } from "../chunk-466DYMJ3.js";
93
+ } from "../chunk-DUXYDGHX.js";
94
94
  import {
95
95
  Navigation
96
- } from "../chunk-AVFFTSKQ.js";
96
+ } from "../chunk-C2FRAZT2.js";
97
97
  import {
98
98
  DotNavigation
99
99
  } from "../chunk-IJOOKMKQ.js";
100
100
  import {
101
101
  DownloadCard
102
- } from "../chunk-HGRKKNGU.js";
103
- import "../chunk-YSZIV3CU.js";
104
- import "../chunk-SEUOHWYL.js";
105
- import "../chunk-FW2QU4JO.js";
106
- import "../chunk-YLDG4Y52.js";
102
+ } from "../chunk-SGJBQKUD.js";
103
+ import "../chunk-7XMPNH2X.js";
104
+ import "../chunk-7NBGSPZU.js";
105
+ import "../chunk-UILGIMXL.js";
106
+ import "../chunk-U5LZO2EI.js";
107
107
  import {
108
108
  DynamicForm,
109
109
  createYupValidation
110
- } from "../chunk-HO3ZU6U5.js";
110
+ } from "../chunk-BZCUF5K6.js";
111
111
  import {
112
112
  DynamicFormField
113
- } from "../chunk-4FZUZ453.js";
113
+ } from "../chunk-NIMF5FJI.js";
114
114
  import "../chunk-Z7WNKARH.js";
115
115
  import {
116
116
  AutocompleteTextfield
117
- } from "../chunk-AJTGTGOC.js";
117
+ } from "../chunk-LCR5R743.js";
118
118
  import {
119
119
  DescriptionJsonRender
120
- } from "../chunk-WVMXH4DX.js";
120
+ } from "../chunk-PWUCBBQP.js";
121
121
  import "../chunk-BEKSO5JG.js";
122
- import "../chunk-FR2GDOU2.js";
122
+ import "../chunk-QFSMOKC6.js";
123
+ import "../chunk-77YN5S26.js";
123
124
  import "../chunk-CGDBUDY3.js";
124
125
  import "../chunk-5XYPLDI5.js";
125
126
  import "../chunk-6NPTJBFE.js";
126
- import "../chunk-DX3DLP5Z.js";
127
- import "../chunk-SA7AYYQS.js";
128
- import "../chunk-3TOUVBIB.js";
129
127
  import "../chunk-MUPK4L3U.js";
130
128
  import "../chunk-YXMB4MCM.js";
131
129
  import "../chunk-HYITAA4J.js";
132
- import "../chunk-XQOL7UBI.js";
133
- import "../chunk-TULWX7D6.js";
134
- import "../chunk-BI6TW3ZO.js";
135
- import "../chunk-35E2WUIX.js";
136
- import "../chunk-UL6JYNEG.js";
130
+ import "../chunk-FR2GDOU2.js";
131
+ import "../chunk-Z2U2YQOG.js";
132
+ import "../chunk-5SXTL6NO.js";
137
133
  import "../chunk-RMW3MQF5.js";
138
134
  import "../chunk-TNNF5Q62.js";
135
+ import "../chunk-DX3DLP5Z.js";
136
+ import "../chunk-SA7AYYQS.js";
137
+ import "../chunk-3TOUVBIB.js";
139
138
  import "../chunk-EGEQY3KT.js";
140
- import "../chunk-UFWDQGOK.js";
141
- import "../chunk-NFDQJVFA.js";
142
- import "../chunk-SYX35B5E.js";
139
+ import "../chunk-XQOL7UBI.js";
140
+ import "../chunk-TULWX7D6.js";
141
+ import "../chunk-BI6TW3ZO.js";
142
+ import "../chunk-Z54XTEAF.js";
143
+ import "../chunk-YIVIBIK2.js";
143
144
  import "../chunk-U7N2PWMO.js";
144
145
  import "../chunk-7RJYF5L3.js";
145
146
  import "../chunk-HF6GNDPV.js";
146
147
  import "../chunk-T73HHR3I.js";
147
- import "../chunk-25HMMI7R.js";
148
- import "../chunk-2LCH3PDF.js";
149
- import "../chunk-LQY4RKWI.js";
150
148
  import "../chunk-EIKFXUNC.js";
151
149
  import "../chunk-RP2RGCAW.js";
152
150
  import "../chunk-WG5OK3YN.js";
153
151
  import "../chunk-ZCGH6TJ3.js";
154
- import "../chunk-WYWM2HSZ.js";
155
- import "../chunk-EAXUQEO5.js";
152
+ import "../chunk-UFWDQGOK.js";
153
+ import "../chunk-NFDQJVFA.js";
156
154
  import "../chunk-6SYFG6YY.js";
157
155
  import "../chunk-GPZXD762.js";
158
156
  import "../chunk-BK74U562.js";
159
157
  import "../chunk-4Y5BEXVN.js";
158
+ import "../chunk-YXFHD2PY.js";
159
+ import "../chunk-LDBWASUA.js";
160
+ import "../chunk-PO2PBAHW.js";
161
+ import "../chunk-25HMMI7R.js";
162
+ import "../chunk-2LCH3PDF.js";
163
+ import "../chunk-LQY4RKWI.js";
160
164
  import "../chunk-VOME2TE7.js";
161
165
  import "../chunk-JVXATVAC.js";
162
166
  import "../chunk-B3VSXNTH.js";
@@ -174,12 +178,9 @@ import "../chunk-YSYJCYHY.js";
174
178
  import "../chunk-5OM2H6RI.js";
175
179
  import "../chunk-ZUYCXCPW.js";
176
180
  import "../chunk-YVFNJE4E.js";
177
- import "../chunk-E6GCU5IQ.js";
178
- import "../chunk-MMLVZWMD.js";
179
- import "../chunk-NLHVQJQ2.js";
180
- import "../chunk-GR4PG6HY.js";
181
- import "../chunk-LDBWASUA.js";
181
+ import "../chunk-WYWM2HSZ.js";
182
182
  import "../chunk-VFQD57ZY.js";
183
+ import "../chunk-EAXUQEO5.js";
183
184
  import "../chunk-CRTRMMJ7.js";
184
185
  export {
185
186
  AutocompleteTextfield,
@@ -127,6 +127,12 @@ var mapWithResponsive = (args) => {
127
127
  return value;
128
128
  };
129
129
 
130
+ // src/utils/mono-style.ts
131
+ var MONO_STYLE = {
132
+ fontFamily: 'var(--code-font-family, ui-monospace, "SF Mono", monospace)',
133
+ fontVariantNumeric: "tabular-nums"
134
+ };
135
+
130
136
  // src/atoms/heading.tsx
131
137
  var import_themes5 = require("@radix-ui/themes");
132
138
  var import_jsx_runtime2 = require("react/jsx-runtime");
@@ -147,7 +153,7 @@ var mapVariant = (variant) => {
147
153
  }
148
154
  };
149
155
  function Heading2(props) {
150
- const _a = props, { size, children, variant, color, className } = _a, rest = __objRest(_a, ["size", "children", "variant", "color", "className"]);
156
+ const _a = props, { size, children, variant, color, className, mono, style } = _a, rest = __objRest(_a, ["size", "children", "variant", "color", "className", "mono", "style"]);
151
157
  const { color: radixColor, className: colorClassName } = (0, import_react2.useMemo)(
152
158
  () => resolveColor(color),
153
159
  [color]
@@ -164,6 +170,7 @@ function Heading2(props) {
164
170
  className: (0, import_clsx2.clsx)(colorClassName, className),
165
171
  color: radixColor,
166
172
  size: radixSize,
173
+ style: mono ? __spreadValues(__spreadValues({}, MONO_STYLE), style) : style,
167
174
  children
168
175
  })
169
176
  );
@@ -176,7 +183,7 @@ var import_react3 = require("react");
176
183
  var import_jsx_runtime3 = require("react/jsx-runtime");
177
184
  var Typo = (0, import_react3.forwardRef)(
178
185
  (props, ref) => {
179
- const _a = props, { size, variant, children, color, className } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className"]);
186
+ const _a = props, { size, variant, children, color, className, mono, style } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className", "mono", "style"]);
180
187
  const { color: radixColor, className: colorClassName } = (0, import_react3.useMemo)(
181
188
  () => resolveColor(color),
182
189
  [color]
@@ -206,6 +213,7 @@ var Typo = (0, import_react3.forwardRef)(
206
213
  color: radixColor,
207
214
  ref,
208
215
  size: radixSize,
216
+ style: mono ? __spreadValues(__spreadValues({}, MONO_STYLE), style) : style,
209
217
  children
210
218
  })
211
219
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/molecules/learning-post.tsx","../../src/theme/theme-provider.tsx","../../src/utils/resolve-color.ts","../../src/atoms/grid.tsx","../../src/atoms/flex.tsx","../../src/atoms/heading.tsx","../../src/utils/map-with-responsive.ts","../../src/atoms/typo.tsx","../../src/atoms/aspect-ratio.tsx","../../src/atoms/badge.tsx","../../src/atoms/box.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts"],"sourcesContent":["import React from 'react';\nimport type { ThemeProviderProps } from '../theme/theme-provider';\nimport { ThemeProvider } from '../theme/theme-provider';\nimport { Grid } from '../atoms/grid';\nimport { Flex } from '../atoms/flex';\nimport { Heading } from '../atoms/heading';\nimport { Typo } from '../atoms/typo';\nimport { AspectRatio } from '../atoms/aspect-ratio';\nimport { Badge } from '../atoms/badge';\nimport { Box } from '../atoms/box';\nimport { Button } from '../atoms/button';\n\ninterface Tag {\n name?: string;\n id: string;\n}\nexport interface LearningPostProps {\n defaultThemeProps?: Partial<ThemeProviderProps>;\n html?: string;\n title?: string;\n metaDescription?: string;\n /** 섬네일에 해당하는 이미지 컴포넌트 */\n imageComp?: React.ReactNode;\n tags?: Tag[];\n children?: React.ReactNode;\n onPageBack?: () => void;\n}\n\nexport function LearningPost(props: LearningPostProps): React.ReactNode {\n const {\n defaultThemeProps,\n html,\n tags,\n title,\n metaDescription,\n imageComp,\n onPageBack,\n children,\n } = props;\n return (\n <ThemeProvider\n {...defaultThemeProps}\n accentColor=\"iris\"\n scaling=\"110%\"\n style={{}}\n >\n {html ? (\n <Grid\n columns={{ initial: '1', md: '130px 1fr 130px' }}\n gap={{ initial: '2', md: '5' }}\n height=\"100%\"\n justify=\"center\"\n pb=\"160px\"\n position=\"relative\"\n px=\"4\"\n width=\"100%\"\n >\n <div />\n <Flex\n align=\"center\"\n direction=\"column\"\n maxWidth=\"880px\"\n mt={{ initial: '3', md: '8' }}\n overflow=\"hidden\"\n width=\"100%\"\n >\n <Grid align=\"start\" columns={{ initial: '1', sm: '2' }} gap=\"2\">\n <Grid\n gap=\"3\"\n mb={{ initial: '4', sm: '0' }}\n style={{ alignSelf: 'flex-start' }}\n >\n <Heading\n style={{\n fontSize: '2.4rem',\n lineHeight: 1.25,\n wordBreak: 'keep-all',\n }}\n variant=\"heading1\"\n >\n {title}\n </Heading>\n <Typo>{metaDescription}</Typo>\n <Flex gap=\"1\" wrap=\"wrap\">\n {tags?.map((el) => {\n if (el.name?.startsWith('filter')) return;\n return (\n <Badge key={el.id} size=\"large\" variant=\"solid\">\n {el.name}\n </Badge>\n );\n })}\n </Flex>\n </Grid>\n\n <AspectRatio\n ratio={5 / 3}\n style={{\n overflow: 'hidden',\n borderRadius: 'var(--radius-4)',\n objectFit: 'cover',\n }}\n >\n {imageComp}\n </AspectRatio>\n </Grid>\n\n <Box mt=\"5\" width=\"100%\">\n <div\n className=\"gh-content\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </Box>\n </Flex>\n {children}\n </Grid>\n ) : (\n <Flex\n align=\"center\"\n direction=\"column\"\n gap=\"6\"\n height=\"100%\"\n justify=\"center\"\n width=\"100%\"\n >\n <Heading variant=\"heading1\">콘텐츠를 찾을 수 없습니다.</Heading>\n <Heading\n align=\"center\"\n color=\"gray\"\n variant=\"heading4\"\n weight=\"regular\"\n >\n {`요청하신 콘텐츠를 찾을 수 없습니다.\n 잠시 후 다시 시도해주세요.`}\n </Heading>\n <Button onClick={onPageBack} size=\"large\">\n 뒤로가기\n </Button>\n </Flex>\n )}\n </ThemeProvider>\n );\n}\n","import React, { createContext } from 'react';\nimport { Theme } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { resolveColor, type UiColor } from '../utils/resolve-color';\n\ntype ThemeProps = React.ComponentProps<typeof Theme>;\n\n/**\n * 테마 전역 primary가 custom color(black 등)일 때 그 값을 하위로 전달하는 context.\n * Radix는 Portal 컨텐츠(Select 드롭다운 등)에 theme의 accentColor \"값\"(여기선 fallback gray)만\n * 복제하고 `.tipp-accent-black` className은 복제하지 않으므로, Portal 안에서는 accent override가\n * 사라진다. 래핑된 overlay 컴포넌트(Select 등)가 이 context를 최하위 fallback color로 읽어\n * 자기 요소에 className을 직접 부여하면 Portal 내부에서도 black이 유지된다.\n * (custom accent가 아닐 때는 undefined — Radix 네이티브 portal 상속에 맡긴다.)\n */\nexport const ThemeAccentContext = createContext<UiColor | undefined>(undefined);\n\nexport interface ThemeProviderProps extends Omit<ThemeProps, 'accentColor'> {\n children: React.ReactNode;\n /**\n * 전역 primary(accent) color. Radix accent color에 더해 커스텀 `black`을 지원한다.\n * black이면 Radix에는 fallback `gray`를 넘기고 Theme 루트에 accent override\n * className을 부여하여 하위 컴포넌트가 color prop 없이도 black을 상속한다.\n */\n accentColor?: ThemeProps['accentColor'] | 'black';\n}\n\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactNode {\n const { accentColor = 'iris', className, ...rest } = props;\n\n const { color: radixAccent, className: accentClassName } =\n resolveColor(accentColor);\n\n // custom accent(className이 생기는 경우 = black)일 때만 Portal 보정용으로 context에 흘린다.\n const themeAccent = accentClassName ? accentColor : undefined;\n\n return (\n <ThemeAccentContext.Provider value={themeAccent}>\n <Theme\n accentColor={radixAccent ?? 'iris'}\n className={clsx(accentClassName, className)}\n radius=\"medium\"\n {...rest}\n />\n </ThemeAccentContext.Provider>\n );\n}\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { clsx } from 'clsx';\nimport { useMemo } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\ntype HeadingVariant =\n | 'heading1'\n | 'heading2'\n | 'heading3'\n | 'heading4'\n | 'heading5';\nexport type HeadingProps = DistributiveOmit<RadixHeadingProps, 'color'> & {\n variant?: Responsive<HeadingVariant>;\n color?: UiColor;\n};\n\ntype HeadingSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\nconst mapVariant = (variant?: HeadingVariant): HeadingSize | undefined => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return undefined;\n }\n};\n\nexport function Heading(props: HeadingProps): React.ReactNode {\n const { size, children, variant, color, className, ...rest } = props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n return variant\n ? mapWithResponsive({\n value: variant,\n mapFn: mapVariant,\n })\n : size;\n\n }, [size, variant]);\n\n return (\n <RadixHeading\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n size={radixSize}\n >\n {children}\n </RadixHeading>\n );\n}\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, ...rest } = props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","export { AspectRatio } from '@radix-ui/themes';\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { useMemo, forwardRef } from 'react';\nimport { resolveColor, type UiColor } from '../utils/resolve-color';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: UiColor;\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactNode => {\n const { size = 'small', color = 'accent', className, ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n return (\n <RadixBadge\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n"],"mappings":"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","names":["import_themes","import_themes","import_themes","import_clsx","import_react","import_themes","import_jsx_runtime","Heading","RadixHeading","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixBadge","import_themes","import_react","import_themes","import_clsx","import_jsx_runtime","RadixButton","import_jsx_runtime","Heading"]}
1
+ {"version":3,"sources":["../../src/molecules/learning-post.tsx","../../src/theme/theme-provider.tsx","../../src/utils/resolve-color.ts","../../src/atoms/grid.tsx","../../src/atoms/flex.tsx","../../src/atoms/heading.tsx","../../src/utils/map-with-responsive.ts","../../src/utils/mono-style.ts","../../src/atoms/typo.tsx","../../src/atoms/aspect-ratio.tsx","../../src/atoms/badge.tsx","../../src/atoms/box.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts"],"sourcesContent":["import React from 'react';\nimport type { ThemeProviderProps } from '../theme/theme-provider';\nimport { ThemeProvider } from '../theme/theme-provider';\nimport { Grid } from '../atoms/grid';\nimport { Flex } from '../atoms/flex';\nimport { Heading } from '../atoms/heading';\nimport { Typo } from '../atoms/typo';\nimport { AspectRatio } from '../atoms/aspect-ratio';\nimport { Badge } from '../atoms/badge';\nimport { Box } from '../atoms/box';\nimport { Button } from '../atoms/button';\n\ninterface Tag {\n name?: string;\n id: string;\n}\nexport interface LearningPostProps {\n defaultThemeProps?: Partial<ThemeProviderProps>;\n html?: string;\n title?: string;\n metaDescription?: string;\n /** 섬네일에 해당하는 이미지 컴포넌트 */\n imageComp?: React.ReactNode;\n tags?: Tag[];\n children?: React.ReactNode;\n onPageBack?: () => void;\n}\n\nexport function LearningPost(props: LearningPostProps): React.ReactNode {\n const {\n defaultThemeProps,\n html,\n tags,\n title,\n metaDescription,\n imageComp,\n onPageBack,\n children,\n } = props;\n return (\n <ThemeProvider\n {...defaultThemeProps}\n accentColor=\"iris\"\n scaling=\"110%\"\n style={{}}\n >\n {html ? (\n <Grid\n columns={{ initial: '1', md: '130px 1fr 130px' }}\n gap={{ initial: '2', md: '5' }}\n height=\"100%\"\n justify=\"center\"\n pb=\"160px\"\n position=\"relative\"\n px=\"4\"\n width=\"100%\"\n >\n <div />\n <Flex\n align=\"center\"\n direction=\"column\"\n maxWidth=\"880px\"\n mt={{ initial: '3', md: '8' }}\n overflow=\"hidden\"\n width=\"100%\"\n >\n <Grid align=\"start\" columns={{ initial: '1', sm: '2' }} gap=\"2\">\n <Grid\n gap=\"3\"\n mb={{ initial: '4', sm: '0' }}\n style={{ alignSelf: 'flex-start' }}\n >\n <Heading\n style={{\n fontSize: '2.4rem',\n lineHeight: 1.25,\n wordBreak: 'keep-all',\n }}\n variant=\"heading1\"\n >\n {title}\n </Heading>\n <Typo>{metaDescription}</Typo>\n <Flex gap=\"1\" wrap=\"wrap\">\n {tags?.map((el) => {\n if (el.name?.startsWith('filter')) return;\n return (\n <Badge key={el.id} size=\"large\" variant=\"solid\">\n {el.name}\n </Badge>\n );\n })}\n </Flex>\n </Grid>\n\n <AspectRatio\n ratio={5 / 3}\n style={{\n overflow: 'hidden',\n borderRadius: 'var(--radius-4)',\n objectFit: 'cover',\n }}\n >\n {imageComp}\n </AspectRatio>\n </Grid>\n\n <Box mt=\"5\" width=\"100%\">\n <div\n className=\"gh-content\"\n dangerouslySetInnerHTML={{ __html: html }}\n />\n </Box>\n </Flex>\n {children}\n </Grid>\n ) : (\n <Flex\n align=\"center\"\n direction=\"column\"\n gap=\"6\"\n height=\"100%\"\n justify=\"center\"\n width=\"100%\"\n >\n <Heading variant=\"heading1\">콘텐츠를 찾을 수 없습니다.</Heading>\n <Heading\n align=\"center\"\n color=\"gray\"\n variant=\"heading4\"\n weight=\"regular\"\n >\n {`요청하신 콘텐츠를 찾을 수 없습니다.\n 잠시 후 다시 시도해주세요.`}\n </Heading>\n <Button onClick={onPageBack} size=\"large\">\n 뒤로가기\n </Button>\n </Flex>\n )}\n </ThemeProvider>\n );\n}\n","import React, { createContext } from 'react';\nimport { Theme } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { resolveColor, type UiColor } from '../utils/resolve-color';\n\ntype ThemeProps = React.ComponentProps<typeof Theme>;\n\n/**\n * 테마 전역 primary가 custom color(black 등)일 때 그 값을 하위로 전달하는 context.\n * Radix는 Portal 컨텐츠(Select 드롭다운 등)에 theme의 accentColor \"값\"(여기선 fallback gray)만\n * 복제하고 `.tipp-accent-black` className은 복제하지 않으므로, Portal 안에서는 accent override가\n * 사라진다. 래핑된 overlay 컴포넌트(Select 등)가 이 context를 최하위 fallback color로 읽어\n * 자기 요소에 className을 직접 부여하면 Portal 내부에서도 black이 유지된다.\n * (custom accent가 아닐 때는 undefined — Radix 네이티브 portal 상속에 맡긴다.)\n */\nexport const ThemeAccentContext = createContext<UiColor | undefined>(undefined);\n\nexport interface ThemeProviderProps extends Omit<ThemeProps, 'accentColor'> {\n children: React.ReactNode;\n /**\n * 전역 primary(accent) color. Radix accent color에 더해 커스텀 `black`을 지원한다.\n * black이면 Radix에는 fallback `gray`를 넘기고 Theme 루트에 accent override\n * className을 부여하여 하위 컴포넌트가 color prop 없이도 black을 상속한다.\n */\n accentColor?: ThemeProps['accentColor'] | 'black';\n}\n\nexport function ThemeProvider(props: ThemeProviderProps): React.ReactNode {\n const { accentColor = 'iris', className, ...rest } = props;\n\n const { color: radixAccent, className: accentClassName } =\n resolveColor(accentColor);\n\n // custom accent(className이 생기는 경우 = black)일 때만 Portal 보정용으로 context에 흘린다.\n const themeAccent = accentClassName ? accentColor : undefined;\n\n return (\n <ThemeAccentContext.Provider value={themeAccent}>\n <Theme\n accentColor={radixAccent ?? 'iris'}\n className={clsx(accentClassName, className)}\n radius=\"medium\"\n {...rest}\n />\n </ThemeAccentContext.Provider>\n );\n}\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Grid, type GridProps } from '@radix-ui/themes';\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import {\n Heading as RadixHeading,\n type HeadingProps as RadixHeadingProps,\n} from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { clsx } from 'clsx';\nimport { useMemo } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport { MONO_STYLE } from '../utils/mono-style';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport { Heading as RadixHeading } from '@radix-ui/themes';\ntype HeadingVariant =\n | 'heading1'\n | 'heading2'\n | 'heading3'\n | 'heading4'\n | 'heading5';\nexport type HeadingProps = DistributiveOmit<RadixHeadingProps, 'color'> & {\n variant?: Responsive<HeadingVariant>;\n color?: UiColor;\n /** 등폭(monospace) 폰트 + 숫자 고정폭 정렬(tabular-nums). 점수·퍼센트 등 수치 표시에 사용한다. */\n mono?: boolean;\n};\n\ntype HeadingSize = '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9';\n\nconst mapVariant = (variant?: HeadingVariant): HeadingSize | undefined => {\n switch (variant) {\n case 'heading1':\n return '7';\n case 'heading2':\n return '6';\n case 'heading3':\n return '5';\n case 'heading4':\n return '4';\n case 'heading5':\n return '3';\n default:\n return undefined;\n }\n};\n\nexport function Heading(props: HeadingProps): React.ReactNode {\n const { size, children, variant, color, className, mono, style, ...rest } =\n props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixHeadingProps['size']>(() => {\n return variant\n ? mapWithResponsive({\n value: variant,\n mapFn: mapVariant,\n })\n : size;\n\n }, [size, variant]);\n\n return (\n <RadixHeading\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n size={radixSize}\n style={mono ? { ...MONO_STYLE, ...style } : style}\n >\n {children}\n </RadixHeading>\n );\n}\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import type { CSSProperties } from 'react';\n\n/**\n * 등폭(monospace) 텍스트 스타일.\n * - `font-family`: 등폭 폰트(`--code-font-family`는 Radix Themes가 제공, 없으면 시스템 등폭으로 폴백)\n * - `font-variant-numeric: tabular-nums`: 숫자를 고정폭으로 정렬해 점수·퍼센트·통계가 자릿수마다 흔들리지 않게 함\n *\n * `Typo`/`Heading`의 `mono` prop 구현에 사용된다.\n */\nexport const MONO_STYLE: CSSProperties = {\n fontFamily: 'var(--code-font-family, ui-monospace, \"SF Mono\", monospace)',\n fontVariantNumeric: 'tabular-nums',\n};\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport { MONO_STYLE } from '../utils/mono-style';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n /** 등폭(monospace) 폰트 + 숫자 고정폭 정렬(tabular-nums). 점수·퍼센트 등 수치 표시에 사용한다. */\n mono?: boolean;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, mono, style, ...rest } =\n props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n style={mono ? { ...MONO_STYLE, ...style } : style}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","export { AspectRatio } from '@radix-ui/themes';\n","import {\n Badge as RadixBadge,\n type BadgeProps as RadixBadgeProps,\n} from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { useMemo, forwardRef } from 'react';\nimport { resolveColor, type UiColor } from '../utils/resolve-color';\n\nexport type BadgeProps = Omit<RadixBadgeProps, 'color' | 'size'> & {\n size?: 'small' | 'medium' | 'large';\n color?: UiColor;\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (props: BadgeProps, ref): React.ReactNode => {\n const { size = 'small', color = 'accent', className, ...rest } = props;\n\n const radixSize = useMemo(() => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '1';\n }\n }, [size]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n return (\n <RadixBadge\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nBadge.displayName = 'Badge';\n","export { Box, type BoxProps } from '@radix-ui/themes';\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n"],"mappings":"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","names":["import_themes","import_themes","import_themes","import_clsx","import_react","import_themes","import_jsx_runtime","Heading","RadixHeading","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixBadge","import_themes","import_react","import_themes","import_clsx","import_jsx_runtime","RadixButton","import_jsx_runtime","Heading"]}
@@ -1,18 +1,19 @@
1
1
  import {
2
2
  LearningPost
3
- } from "../chunk-466DYMJ3.js";
3
+ } from "../chunk-DUXYDGHX.js";
4
4
  import "../chunk-EGEQY3KT.js";
5
+ import "../chunk-YIVIBIK2.js";
6
+ import "../chunk-BK74U562.js";
7
+ import "../chunk-4Y5BEXVN.js";
8
+ import "../chunk-YXFHD2PY.js";
9
+ import "../chunk-LDBWASUA.js";
10
+ import "../chunk-PO2PBAHW.js";
5
11
  import "../chunk-25HMMI7R.js";
6
12
  import "../chunk-2LCH3PDF.js";
7
13
  import "../chunk-LQY4RKWI.js";
8
14
  import "../chunk-WYWM2HSZ.js";
9
- import "../chunk-EAXUQEO5.js";
10
- import "../chunk-BK74U562.js";
11
- import "../chunk-4Y5BEXVN.js";
12
- import "../chunk-NLHVQJQ2.js";
13
- import "../chunk-GR4PG6HY.js";
14
- import "../chunk-LDBWASUA.js";
15
15
  import "../chunk-VFQD57ZY.js";
16
+ import "../chunk-EAXUQEO5.js";
16
17
  import "../chunk-CRTRMMJ7.js";
17
18
  export {
18
19
  LearningPost
@@ -176,11 +176,17 @@ var mapWithResponsive = (args) => {
176
176
  return value;
177
177
  };
178
178
 
179
+ // src/utils/mono-style.ts
180
+ var MONO_STYLE = {
181
+ fontFamily: 'var(--code-font-family, ui-monospace, "SF Mono", monospace)',
182
+ fontVariantNumeric: "tabular-nums"
183
+ };
184
+
179
185
  // src/atoms/typo.tsx
180
186
  var import_jsx_runtime2 = require("react/jsx-runtime");
181
187
  var Typo = (0, import_react2.forwardRef)(
182
188
  (props, ref) => {
183
- const _a = props, { size, variant, children, color, className } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className"]);
189
+ const _a = props, { size, variant, children, color, className, mono, style } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className", "mono", "style"]);
184
190
  const { color: radixColor, className: colorClassName } = (0, import_react2.useMemo)(
185
191
  () => resolveColor(color),
186
192
  [color]
@@ -210,6 +216,7 @@ var Typo = (0, import_react2.forwardRef)(
210
216
  color: radixColor,
211
217
  ref,
212
218
  size: radixSize,
219
+ style: mono ? __spreadValues(__spreadValues({}, MONO_STYLE), style) : style,
213
220
  children
214
221
  })
215
222
  );
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/molecules/navigation.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts","../../src/utils/resolve-color.ts","../../src/atoms/flex.tsx","../../src/atoms/typo.tsx","../../src/utils/map-with-responsive.ts"],"sourcesContent":["import React from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\n\ninterface Item {\n itemRender?: (item: Item) => React.ReactNode;\n key: string;\n onClick?: () => void;\n title: string;\n icon?: React.ReactNode;\n children?: Item[];\n}\n\nexport interface NavigationProps {\n items?: Item[];\n fontColor?: string;\n backgroundColor?: string;\n activeKey?: string;\n}\n\nexport function Navigation({\n items,\n fontColor,\n backgroundColor,\n activeKey,\n}: NavigationProps): React.ReactNode {\n return (\n <Flex\n direction=\"column\"\n gap=\"4\"\n pr=\"3\"\n style={{\n color: fontColor || 'var(--white-a12)',\n backgroundColor: backgroundColor || 'var(--black-a12)',\n }}\n >\n {items?.map((item) => {\n const { key, title, icon, itemRender, onClick, children } = item;\n return (\n <Flex direction=\"column\" key={key} onClick={onClick}>\n {itemRender ? (\n itemRender(item)\n ) : (\n <Flex align=\"center\" gap=\"3\" height=\"36px\" pl=\"4\" pr=\"4\">\n {icon}\n <Typo variant=\"subtitle\">{title}</Typo>\n </Flex>\n )}\n {children?.map((menu) => {\n return menu.itemRender ? (\n menu.itemRender(menu)\n ) : (\n <Button\n className={`tipp-navigation-button ${activeKey === menu.key ? 'active' : ''}`}\n key={menu.key}\n ml=\"37px\"\n onClick={menu.onClick}\n size=\"large\"\n style={{\n color: 'var(--white-a12)',\n height: '32px',\n paddingLeft: 'var(--space-2)',\n }}\n >\n {menu.title}\n </Button>\n );\n })}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, ...rest } = props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n"],"mappings":"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","names":["RadixButton","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../../src/molecules/navigation.tsx","../../src/atoms/button.tsx","../../src/utils/convert-button-size.ts","../../src/utils/resolve-color.ts","../../src/atoms/flex.tsx","../../src/atoms/typo.tsx","../../src/utils/map-with-responsive.ts","../../src/utils/mono-style.ts"],"sourcesContent":["import React from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\n\ninterface Item {\n itemRender?: (item: Item) => React.ReactNode;\n key: string;\n onClick?: () => void;\n title: string;\n icon?: React.ReactNode;\n children?: Item[];\n}\n\nexport interface NavigationProps {\n items?: Item[];\n fontColor?: string;\n backgroundColor?: string;\n activeKey?: string;\n}\n\nexport function Navigation({\n items,\n fontColor,\n backgroundColor,\n activeKey,\n}: NavigationProps): React.ReactNode {\n return (\n <Flex\n direction=\"column\"\n gap=\"4\"\n pr=\"3\"\n style={{\n color: fontColor || 'var(--white-a12)',\n backgroundColor: backgroundColor || 'var(--black-a12)',\n }}\n >\n {items?.map((item) => {\n const { key, title, icon, itemRender, onClick, children } = item;\n return (\n <Flex direction=\"column\" key={key} onClick={onClick}>\n {itemRender ? (\n itemRender(item)\n ) : (\n <Flex align=\"center\" gap=\"3\" height=\"36px\" pl=\"4\" pr=\"4\">\n {icon}\n <Typo variant=\"subtitle\">{title}</Typo>\n </Flex>\n )}\n {children?.map((menu) => {\n return menu.itemRender ? (\n menu.itemRender(menu)\n ) : (\n <Button\n className={`tipp-navigation-button ${activeKey === menu.key ? 'active' : ''}`}\n key={menu.key}\n ml=\"37px\"\n onClick={menu.onClick}\n size=\"large\"\n style={{\n color: 'var(--white-a12)',\n height: '32px',\n paddingLeft: 'var(--space-2)',\n }}\n >\n {menu.title}\n </Button>\n );\n })}\n </Flex>\n );\n })}\n </Flex>\n );\n}\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport { MONO_STYLE } from '../utils/mono-style';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n /** 등폭(monospace) 폰트 + 숫자 고정폭 정렬(tabular-nums). 점수·퍼센트 등 수치 표시에 사용한다. */\n mono?: boolean;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, mono, style, ...rest } =\n props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n style={mono ? { ...MONO_STYLE, ...style } : style}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import type { CSSProperties } from 'react';\n\n/**\n * 등폭(monospace) 텍스트 스타일.\n * - `font-family`: 등폭 폰트(`--code-font-family`는 Radix Themes가 제공, 없으면 시스템 등폭으로 폴백)\n * - `font-variant-numeric: tabular-nums`: 숫자를 고정폭으로 정렬해 점수·퍼센트·통계가 자릿수마다 흔들리지 않게 함\n *\n * `Typo`/`Heading`의 `mono` prop 구현에 사용된다.\n */\nexport const MONO_STYLE: CSSProperties = {\n fontFamily: 'var(--code-font-family, ui-monospace, \"SF Mono\", monospace)',\n fontVariantNumeric: 'tabular-nums',\n};\n"],"mappings":"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","names":["RadixButton","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_jsx_runtime"]}
@@ -1,11 +1,12 @@
1
1
  import {
2
2
  Navigation
3
- } from "../chunk-AVFFTSKQ.js";
3
+ } from "../chunk-C2FRAZT2.js";
4
+ import "../chunk-YXFHD2PY.js";
5
+ import "../chunk-LDBWASUA.js";
6
+ import "../chunk-PO2PBAHW.js";
4
7
  import "../chunk-25HMMI7R.js";
5
8
  import "../chunk-2LCH3PDF.js";
6
9
  import "../chunk-LQY4RKWI.js";
7
- import "../chunk-GR4PG6HY.js";
8
- import "../chunk-LDBWASUA.js";
9
10
  import "../chunk-VFQD57ZY.js";
10
11
  import "../chunk-CRTRMMJ7.js";
11
12
  export {
@@ -78,6 +78,12 @@ var mapWithResponsive = (args) => {
78
78
  return value;
79
79
  };
80
80
 
81
+ // src/utils/mono-style.ts
82
+ var MONO_STYLE = {
83
+ fontFamily: 'var(--code-font-family, ui-monospace, "SF Mono", monospace)',
84
+ fontVariantNumeric: "tabular-nums"
85
+ };
86
+
81
87
  // src/utils/resolve-color.ts
82
88
  var SEMANTIC_COLOR_MAP = {
83
89
  error: "red",
@@ -121,7 +127,7 @@ var mapVariant = (variant) => {
121
127
  }
122
128
  };
123
129
  function Heading2(props) {
124
- const _a = props, { size, children, variant, color, className } = _a, rest = __objRest(_a, ["size", "children", "variant", "color", "className"]);
130
+ const _a = props, { size, children, variant, color, className, mono, style } = _a, rest = __objRest(_a, ["size", "children", "variant", "color", "className", "mono", "style"]);
125
131
  const { color: radixColor, className: colorClassName } = (0, import_react.useMemo)(
126
132
  () => resolveColor(color),
127
133
  [color]
@@ -138,6 +144,7 @@ function Heading2(props) {
138
144
  className: (0, import_clsx.clsx)(colorClassName, className),
139
145
  color: radixColor,
140
146
  size: radixSize,
147
+ style: mono ? __spreadValues(__spreadValues({}, MONO_STYLE), style) : style,
141
148
  children
142
149
  })
143
150
  );
@@ -154,7 +161,7 @@ var import_react2 = require("react");
154
161
  var import_jsx_runtime2 = require("react/jsx-runtime");
155
162
  var Typo = (0, import_react2.forwardRef)(
156
163
  (props, ref) => {
157
- const _a = props, { size, variant, children, color, className } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className"]);
164
+ const _a = props, { size, variant, children, color, className, mono, style } = _a, rest = __objRest(_a, ["size", "variant", "children", "color", "className", "mono", "style"]);
158
165
  const { color: radixColor, className: colorClassName } = (0, import_react2.useMemo)(
159
166
  () => resolveColor(color),
160
167
  [color]
@@ -184,6 +191,7 @@ var Typo = (0, import_react2.forwardRef)(
184
191
  color: radixColor,
185
192
  ref,
186
193
  size: radixSize,
194
+ style: mono ? __spreadValues(__spreadValues({}, MONO_STYLE), style) : style,
187
195
  children
188
196
  })
189
197
  );