@tipp/ui 2.4.0 → 2.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app/index.cjs +1291 -837
- package/dist/app/index.cjs.map +1 -1
- package/dist/app/index.js +121 -120
- package/dist/app/platform/coach-question-list.cjs +822 -364
- package/dist/app/platform/coach-question-list.cjs.map +1 -1
- package/dist/app/platform/coach-question-list.js +48 -46
- package/dist/app/platform/contents-card.cjs +815 -357
- package/dist/app/platform/contents-card.cjs.map +1 -1
- package/dist/app/platform/contents-card.js +48 -46
- package/dist/app/platform/curriculum-card.cjs +65 -13
- package/dist/app/platform/curriculum-card.cjs.map +1 -1
- package/dist/app/platform/curriculum-card.js +6 -5
- package/dist/app/platform/edit-coaching-time.cjs +1012 -558
- package/dist/app/platform/edit-coaching-time.cjs.map +1 -1
- package/dist/app/platform/edit-coaching-time.js +96 -95
- package/dist/app/platform/edit-service-type.cjs +995 -541
- package/dist/app/platform/edit-service-type.cjs.map +1 -1
- package/dist/app/platform/edit-service-type.js +97 -96
- package/dist/app/platform/goal-manage-card-edit.cjs +991 -537
- package/dist/app/platform/goal-manage-card-edit.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-edit.js +96 -95
- package/dist/app/platform/goal-manage-card-read.cjs +865 -407
- package/dist/app/platform/goal-manage-card-read.cjs.map +1 -1
- package/dist/app/platform/goal-manage-card-read.js +48 -46
- package/dist/app/platform/on-offline-radio-card.cjs +785 -331
- package/dist/app/platform/on-offline-radio-card.cjs.map +1 -1
- package/dist/app/platform/on-offline-radio-card.js +96 -95
- package/dist/app/platform/report-card.cjs +828 -370
- package/dist/app/platform/report-card.cjs.map +1 -1
- package/dist/app/platform/report-card.js +48 -46
- package/dist/app/platform/reservation-card.cjs +1016 -562
- package/dist/app/platform/reservation-card.cjs.map +1 -1
- package/dist/app/platform/reservation-card.js +97 -96
- package/dist/app/platform/session-card.cjs +1069 -615
- package/dist/app/platform/session-card.cjs.map +1 -1
- package/dist/app/platform/session-card.js +99 -98
- package/dist/app/platform/session-review-simple-read.cjs +825 -367
- package/dist/app/platform/session-review-simple-read.cjs.map +1 -1
- package/dist/app/platform/session-review-simple-read.js +48 -46
- package/dist/app/platform/userInfos/coaching-customer-info/index.cjs +857 -399
- package/dist/app/platform/userInfos/coaching-customer-info/index.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/index.js +54 -52
- package/dist/app/platform/userInfos/coaching-customer-info/large.cjs +833 -375
- package/dist/app/platform/userInfos/coaching-customer-info/large.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/large.js +49 -47
- package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs +836 -378
- package/dist/app/platform/userInfos/coaching-customer-info/medium.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/medium.js +49 -47
- package/dist/app/platform/userInfos/coaching-customer-info/small.cjs +823 -365
- package/dist/app/platform/userInfos/coaching-customer-info/small.cjs.map +1 -1
- package/dist/app/platform/userInfos/coaching-customer-info/small.js +48 -46
- package/dist/app/platform/userInfos/session-user-info-detail.cjs +832 -374
- package/dist/app/platform/userInfos/session-user-info-detail.cjs.map +1 -1
- package/dist/app/platform/userInfos/session-user-info-detail.js +49 -47
- package/dist/app/platform/userInfos/utils.cjs +824 -366
- package/dist/app/platform/userInfos/utils.cjs.map +1 -1
- package/dist/app/platform/userInfos/utils.js +48 -46
- package/dist/atoms/alert-dialog.cjs +85 -1
- package/dist/atoms/alert-dialog.cjs.map +1 -1
- package/dist/atoms/alert-dialog.d.cts +18 -2
- package/dist/atoms/alert-dialog.d.ts +18 -2
- package/dist/atoms/alert-dialog.js +3 -1
- package/dist/atoms/aspect-ratio.d.cts +1 -0
- package/dist/atoms/aspect-ratio.d.ts +1 -0
- package/dist/atoms/avatar.cjs +39 -2
- package/dist/atoms/avatar.cjs.map +1 -1
- package/dist/atoms/avatar.d.cts +5 -2
- package/dist/atoms/avatar.d.ts +5 -2
- package/dist/atoms/avatar.js +2 -1
- package/dist/atoms/badge.cjs +34 -9
- package/dist/atoms/badge.cjs.map +1 -1
- package/dist/atoms/badge.d.cts +4 -5
- package/dist/atoms/badge.d.ts +4 -5
- package/dist/atoms/badge.js +2 -1
- package/dist/atoms/blockquote.cjs +71 -1
- package/dist/atoms/blockquote.cjs.map +1 -1
- package/dist/atoms/blockquote.d.cts +12 -1
- package/dist/atoms/blockquote.d.ts +12 -1
- package/dist/atoms/blockquote.js +2 -1
- package/dist/atoms/bullet-text.cjs +39 -2
- package/dist/atoms/bullet-text.cjs.map +1 -1
- package/dist/atoms/bullet-text.d.cts +1 -0
- package/dist/atoms/bullet-text.d.ts +1 -0
- package/dist/atoms/bullet-text.js +3 -2
- package/dist/atoms/button.cjs +33 -3
- package/dist/atoms/button.cjs.map +1 -1
- package/dist/atoms/button.d.cts +5 -3
- package/dist/atoms/button.d.ts +5 -3
- package/dist/atoms/button.js +2 -1
- package/dist/atoms/button.type.cjs.map +1 -1
- package/dist/atoms/button.type.d.cts +3 -1
- package/dist/atoms/button.type.d.ts +3 -1
- package/dist/atoms/call-out.cjs +78 -1
- package/dist/atoms/call-out.cjs.map +1 -1
- package/dist/atoms/call-out.d.cts +13 -1
- package/dist/atoms/call-out.d.ts +13 -1
- package/dist/atoms/call-out.js +2 -1
- package/dist/atoms/check-box-card.cjs +78 -1
- package/dist/atoms/check-box-card.cjs.map +1 -1
- package/dist/atoms/check-box-card.d.cts +12 -1
- package/dist/atoms/check-box-card.d.ts +12 -1
- package/dist/atoms/check-box-card.js +2 -1
- package/dist/atoms/check-box-group.cjs +40 -2
- package/dist/atoms/check-box-group.cjs.map +1 -1
- package/dist/atoms/check-box-group.d.cts +6 -0
- package/dist/atoms/check-box-group.d.ts +6 -0
- package/dist/atoms/check-box-group.js +2 -1
- package/dist/atoms/check-box.cjs +37 -2
- package/dist/atoms/check-box.cjs.map +1 -1
- package/dist/atoms/check-box.d.cts +5 -2
- package/dist/atoms/check-box.d.ts +5 -2
- package/dist/atoms/check-box.js +2 -1
- package/dist/atoms/code.cjs +73 -1
- package/dist/atoms/code.cjs.map +1 -1
- package/dist/atoms/code.d.cts +12 -1
- package/dist/atoms/code.d.ts +12 -1
- package/dist/atoms/code.js +2 -1
- package/dist/atoms/data-list.cjs +77 -1
- package/dist/atoms/data-list.cjs.map +1 -1
- package/dist/atoms/data-list.d.cts +14 -1
- package/dist/atoms/data-list.d.ts +14 -1
- package/dist/atoms/data-list.js +2 -1
- package/dist/atoms/dialog.cjs +49 -6
- package/dist/atoms/dialog.cjs.map +1 -1
- package/dist/atoms/dialog.js +4 -3
- package/dist/atoms/drawer.cjs +33 -3
- package/dist/atoms/drawer.cjs.map +1 -1
- package/dist/atoms/drawer.js +3 -2
- package/dist/atoms/dropdown-menu.cjs +63 -12
- package/dist/atoms/dropdown-menu.cjs.map +1 -1
- package/dist/atoms/dropdown-menu.d.cts +27 -17
- package/dist/atoms/dropdown-menu.d.ts +27 -17
- package/dist/atoms/dropdown-menu.js +3 -1
- package/dist/atoms/ellipsis-tooltip.cjs +73 -22
- package/dist/atoms/ellipsis-tooltip.cjs.map +1 -1
- package/dist/atoms/ellipsis-tooltip.d.cts +1 -0
- package/dist/atoms/ellipsis-tooltip.d.ts +1 -0
- package/dist/atoms/ellipsis-tooltip.js +5 -3
- package/dist/atoms/field-error-wrapper.cjs +39 -2
- package/dist/atoms/field-error-wrapper.cjs.map +1 -1
- package/dist/atoms/field-error-wrapper.js +3 -2
- package/dist/atoms/heading.cjs +38 -2
- package/dist/atoms/heading.cjs.map +1 -1
- package/dist/atoms/heading.d.cts +3 -1
- package/dist/atoms/heading.d.ts +3 -1
- package/dist/atoms/heading.js +2 -1
- package/dist/atoms/hover-card.cjs +85 -1
- package/dist/atoms/hover-card.cjs.map +1 -1
- package/dist/atoms/hover-card.d.cts +14 -1
- package/dist/atoms/hover-card.d.ts +14 -1
- package/dist/atoms/hover-card.js +3 -1
- package/dist/atoms/icon-button.cjs +33 -3
- package/dist/atoms/icon-button.cjs.map +1 -1
- package/dist/atoms/icon-button.d.cts +5 -3
- package/dist/atoms/icon-button.d.ts +5 -3
- package/dist/atoms/icon-button.js +2 -1
- package/dist/atoms/index.cjs +996 -506
- package/dist/atoms/index.cjs.map +1 -1
- package/dist/atoms/index.d.cts +18 -2
- package/dist/atoms/index.d.ts +18 -2
- package/dist/atoms/index.js +82 -80
- package/dist/atoms/link.cjs +40 -2
- package/dist/atoms/link.cjs.map +1 -1
- package/dist/atoms/link.d.cts +3 -1
- package/dist/atoms/link.d.ts +3 -1
- package/dist/atoms/link.js +2 -1
- package/dist/atoms/list.cjs +43 -4
- package/dist/atoms/list.cjs.map +1 -1
- package/dist/atoms/list.js +3 -2
- package/dist/atoms/pagination.cjs +100 -42
- package/dist/atoms/pagination.cjs.map +1 -1
- package/dist/atoms/pagination.d.cts +4 -0
- package/dist/atoms/pagination.d.ts +4 -0
- package/dist/atoms/pagination.js +5 -4
- package/dist/atoms/popover.cjs +85 -1
- package/dist/atoms/popover.cjs.map +1 -1
- package/dist/atoms/popover.d.cts +16 -1
- package/dist/atoms/popover.d.ts +16 -1
- package/dist/atoms/popover.js +3 -1
- package/dist/atoms/progress.cjs +71 -1
- package/dist/atoms/progress.cjs.map +1 -1
- package/dist/atoms/progress.d.cts +12 -1
- package/dist/atoms/progress.d.ts +12 -1
- package/dist/atoms/progress.js +2 -1
- package/dist/atoms/radio-cards.cjs +78 -1
- package/dist/atoms/radio-cards.cjs.map +1 -1
- package/dist/atoms/radio-cards.d.cts +12 -1
- package/dist/atoms/radio-cards.d.ts +12 -1
- package/dist/atoms/radio-cards.js +2 -1
- package/dist/atoms/radio-group.cjs +78 -1
- package/dist/atoms/radio-group.cjs.map +1 -1
- package/dist/atoms/radio-group.d.cts +12 -1
- package/dist/atoms/radio-group.d.ts +12 -1
- package/dist/atoms/radio-group.js +2 -1
- package/dist/atoms/radio.cjs +71 -1
- package/dist/atoms/radio.cjs.map +1 -1
- package/dist/atoms/radio.d.cts +12 -1
- package/dist/atoms/radio.d.ts +12 -1
- package/dist/atoms/radio.js +2 -1
- package/dist/atoms/segmented-control.cjs.map +1 -1
- package/dist/atoms/segmented-control.js +1 -1
- package/dist/atoms/select.cjs +78 -24
- package/dist/atoms/select.cjs.map +1 -1
- package/dist/atoms/select.d.cts +14 -4
- package/dist/atoms/select.d.ts +14 -4
- package/dist/atoms/select.js +3 -1
- package/dist/atoms/switch.cjs +71 -1
- package/dist/atoms/switch.cjs.map +1 -1
- package/dist/atoms/switch.d.cts +12 -1
- package/dist/atoms/switch.d.ts +12 -1
- package/dist/atoms/switch.js +2 -1
- package/dist/atoms/tab-nav.cjs +76 -1
- package/dist/atoms/tab-nav.cjs.map +1 -1
- package/dist/atoms/tab-nav.d.cts +16 -1
- package/dist/atoms/tab-nav.d.ts +16 -1
- package/dist/atoms/tab-nav.js +2 -1
- package/dist/atoms/tabs.cjs +76 -1
- package/dist/atoms/tabs.cjs.map +1 -1
- package/dist/atoms/tabs.d.cts +19 -1
- package/dist/atoms/tabs.d.ts +19 -1
- package/dist/atoms/tabs.js +2 -1
- package/dist/atoms/tooltip.cjs +46 -9
- package/dist/atoms/tooltip.cjs.map +1 -1
- package/dist/atoms/tooltip.js +3 -1
- package/dist/atoms/typo.cjs +39 -2
- package/dist/atoms/typo.cjs.map +1 -1
- package/dist/atoms/typo.d.cts +3 -1
- package/dist/atoms/typo.d.ts +3 -1
- package/dist/atoms/typo.js +2 -1
- package/dist/chunk-24PX34TH.js +42 -0
- package/dist/chunk-24PX34TH.js.map +1 -0
- package/dist/{chunk-EWFZXCMV.js → chunk-2FB75HU2.js} +3 -3
- package/dist/{chunk-HTNDVNLQ.js → chunk-2I37QLRA.js} +11 -11
- package/dist/{chunk-ZVDAEY5Q.js → chunk-2LCH3PDF.js} +14 -4
- package/dist/chunk-2LCH3PDF.js.map +1 -0
- package/dist/{chunk-3NUQAVE6.js → chunk-2M3UFZUD.js} +15 -2
- package/dist/chunk-2M3UFZUD.js.map +1 -0
- package/dist/{chunk-7R65MUL6.js → chunk-2O7NVLVP.js} +6 -6
- package/dist/{chunk-OE2AVQED.js → chunk-2SM37SB4.js} +7 -7
- package/dist/{chunk-FMAOB6BX.js → chunk-2WNLUQX5.js} +7 -7
- package/dist/chunk-3TOUVBIB.js +34 -0
- package/dist/chunk-3TOUVBIB.js.map +1 -0
- package/dist/{chunk-ADD4KFPG.js → chunk-447H6BVE.js} +7 -7
- package/dist/{chunk-W7TBPRHG.js → chunk-5OW76AER.js} +2 -2
- package/dist/chunk-6TU647KJ.js +37 -0
- package/dist/chunk-6TU647KJ.js.map +1 -0
- package/dist/{chunk-62HSZXVT.js → chunk-6YJGQWD6.js} +8 -8
- package/dist/{chunk-AA6OYHCE.js → chunk-7JW5Z2TL.js} +5 -5
- package/dist/{chunk-ZA4NYPSW.js → chunk-7PBLFV5L.js} +6 -6
- package/dist/{chunk-XK6VEVOK.js → chunk-7RJYF5L3.js} +14 -4
- package/dist/chunk-7RJYF5L3.js.map +1 -0
- package/dist/{chunk-HBQY4ELG.js → chunk-A26UWBVB.js} +4 -4
- package/dist/{chunk-BYFSYL7V.js → chunk-A4YOY75P.js} +4 -4
- package/dist/{chunk-LSDD4TAP.js → chunk-AJTGTGOC.js} +3 -3
- package/dist/{chunk-ADAQSPUA.js → chunk-BEKSO5JG.js} +2 -2
- package/dist/chunk-BI6TW3ZO.js +51 -0
- package/dist/chunk-BI6TW3ZO.js.map +1 -0
- package/dist/chunk-BK74U562.js +52 -0
- package/dist/chunk-BK74U562.js.map +1 -0
- package/dist/{chunk-JWAQUXGB.js → chunk-BZ3EXV6A.js} +3 -3
- package/dist/{chunk-Z34HR7RE.js → chunk-C2G3IB7G.js} +2 -2
- package/dist/chunk-CGDBUDY3.js +37 -0
- package/dist/chunk-CGDBUDY3.js.map +1 -0
- package/dist/chunk-DX3DLP5Z.js +39 -0
- package/dist/chunk-DX3DLP5Z.js.map +1 -0
- package/dist/{chunk-4U6DFH7Z.js → chunk-E6GCU5IQ.js} +2 -2
- package/dist/chunk-EIKFXUNC.js +39 -0
- package/dist/chunk-EIKFXUNC.js.map +1 -0
- package/dist/{chunk-CSKNBWPB.js → chunk-EZN5PMTC.js} +3 -3
- package/dist/chunk-EZN5PMTC.js.map +1 -0
- package/dist/{chunk-ZOPYFDLO.js → chunk-GAA3RTRW.js} +2 -2
- package/dist/{chunk-RSZDAY62.js → chunk-GE4M5GOQ.js} +3 -3
- package/dist/chunk-GI4AN2IZ.js +42 -0
- package/dist/chunk-GI4AN2IZ.js.map +1 -0
- package/dist/{chunk-RNRZ3LV7.js → chunk-GPULIICW.js} +8 -8
- package/dist/{chunk-K36TPMKL.js → chunk-GPZXD762.js} +18 -3
- package/dist/chunk-GPZXD762.js.map +1 -0
- package/dist/{chunk-PMJIFLDT.js → chunk-GR4PG6HY.js} +20 -3
- package/dist/chunk-GR4PG6HY.js.map +1 -0
- package/dist/{chunk-7PF6I4RN.js → chunk-GRDRXD53.js} +2 -2
- package/dist/{chunk-SH6FSA7T.js → chunk-GREYLAMY.js} +6 -6
- package/dist/{chunk-SAEPW5JF.js → chunk-GYSRHZRS.js} +4 -4
- package/dist/{chunk-UMUSNH2D.js → chunk-H3GQHGFA.js} +5 -5
- package/dist/{chunk-OILH5J7Q.js → chunk-HH6LML5K.js} +8 -8
- package/dist/{chunk-SE5TPTP2.js → chunk-IA74OBFY.js} +58 -41
- package/dist/chunk-IA74OBFY.js.map +1 -0
- package/dist/{chunk-KP4SGRJZ.js → chunk-IM6E52L2.js} +11 -11
- package/dist/{chunk-TVDKGMBI.js → chunk-IT7ZTP7F.js} +1 -1
- package/dist/chunk-IT7ZTP7F.js.map +1 -0
- package/dist/{chunk-6OKBTWEC.js → chunk-J7N2IZQW.js} +6 -6
- package/dist/{chunk-EEAHZCIK.js → chunk-JCUG2XKB.js} +2 -2
- package/dist/chunk-JETG3WEI.js +39 -0
- package/dist/chunk-JETG3WEI.js.map +1 -0
- package/dist/{chunk-REPTW53S.js → chunk-JNEGSY5N.js} +3 -3
- package/dist/chunk-KNIIDDYM.js +34 -0
- package/dist/chunk-KNIIDDYM.js.map +1 -0
- package/dist/{chunk-4TST4UK5.js → chunk-KO3V7KB6.js} +2 -2
- package/dist/{chunk-KTQREW2K.js → chunk-LIWQ47VQ.js} +9 -9
- package/dist/{chunk-B37MCN6F.js → chunk-LQ3WGFS7.js} +8 -8
- package/dist/{chunk-YADSNPMG.js → chunk-M77YPVQN.js} +3 -3
- package/dist/{chunk-GTO7GG2K.js → chunk-MCKWO7K4.js} +5 -5
- package/dist/{chunk-OHNBVT52.js → chunk-MGR37YQB.js} +4 -4
- package/dist/{chunk-QDC3LFHS.js → chunk-MMLVZWMD.js} +3 -3
- package/dist/{chunk-3G3RPU6Q.js → chunk-MP5KZULQ.js} +12 -12
- package/dist/{chunk-JRT6KTBG.js → chunk-MSLSD7F6.js} +3 -3
- package/dist/{chunk-FGLOHHYP.js → chunk-MSM2QG23.js} +10 -10
- package/dist/{chunk-V7IC4EAC.js → chunk-NFMEBYNY.js} +5 -5
- package/dist/{chunk-C6ZC7TXX.js → chunk-NIHOKIYW.js} +6 -6
- package/dist/{chunk-BESTU2AY.js → chunk-NLHVQJQ2.js} +19 -3
- package/dist/chunk-NLHVQJQ2.js.map +1 -0
- package/dist/{chunk-M2PVHXOE.js → chunk-NYG34MV6.js} +3 -3
- package/dist/{chunk-N7NDDJW5.js → chunk-OA3DGWVL.js} +16 -16
- package/dist/{chunk-XLKJYRFY.js → chunk-OBWQ3N5D.js} +4 -4
- package/dist/{chunk-IN6S7PPW.js → chunk-OEHVGPWL.js} +17 -17
- package/dist/chunk-OLJN3WXR.js +1 -0
- package/dist/{chunk-X4OCUESK.js → chunk-OPYRV6XJ.js} +2 -2
- package/dist/{chunk-6QVHJ5WW.js → chunk-OQN4E2QP.js} +4 -4
- package/dist/{chunk-LE6CNJWH.js → chunk-OWQUXTQ2.js} +4 -4
- package/dist/{chunk-NTJLECYY.js → chunk-OYXUWBKS.js} +6 -6
- package/dist/{chunk-B5CKZFDM.js → chunk-PE4EBBU4.js} +3 -3
- package/dist/{chunk-5TZNUXBT.js → chunk-PXMJK5D5.js} +6 -6
- package/dist/{chunk-Y4U24VXI.js → chunk-Q3M6GFHY.js} +3 -3
- package/dist/{chunk-ZFTQ2XBH.js → chunk-QPL7SJQM.js} +3 -3
- package/dist/{chunk-NX5ESRCX.js → chunk-RMVVV5NH.js} +7 -7
- package/dist/chunk-RMW3MQF5.js +42 -0
- package/dist/chunk-RMW3MQF5.js.map +1 -0
- package/dist/{chunk-Q7KT3UPO.js → chunk-RUJZ5PE7.js} +4 -4
- package/dist/chunk-SA7AYYQS.js +39 -0
- package/dist/chunk-SA7AYYQS.js.map +1 -0
- package/dist/{chunk-6SQZJN5Y.js → chunk-T2CGNUCP.js} +7 -7
- package/dist/chunk-T73HHR3I.js +67 -0
- package/dist/chunk-T73HHR3I.js.map +1 -0
- package/dist/chunk-TNNF5Q62.js +34 -0
- package/dist/chunk-TNNF5Q62.js.map +1 -0
- package/dist/{chunk-SLFUYRIC.js → chunk-TU6SGJ5Z.js} +6 -6
- package/dist/{chunk-AHXS2MBK.js → chunk-TYEGB5FQ.js} +4 -4
- package/dist/{chunk-DQ6EIA2T.js → chunk-UFM3EL52.js} +7 -7
- package/dist/chunk-UFRB2BVD.js +34 -0
- package/dist/chunk-UFRB2BVD.js.map +1 -0
- package/dist/chunk-UFWDQGOK.js +36 -0
- package/dist/chunk-UFWDQGOK.js.map +1 -0
- package/dist/{chunk-CNW3YEAK.js → chunk-VD5ZDFCM.js} +2 -2
- package/dist/chunk-VFQD57ZY.js +27 -0
- package/dist/chunk-VFQD57ZY.js.map +1 -0
- package/dist/chunk-VOME2TE7.js +641 -0
- package/dist/chunk-VOME2TE7.js.map +1 -0
- package/dist/{chunk-W7X7KSJP.js → chunk-WG5OK3YN.js} +19 -3
- package/dist/chunk-WG5OK3YN.js.map +1 -0
- package/dist/{chunk-64XYTE54.js → chunk-WY37V3W4.js} +7 -7
- package/dist/chunk-WYWM2HSZ.js +33 -0
- package/dist/chunk-WYWM2HSZ.js.map +1 -0
- package/dist/{chunk-MJMHPIYX.js → chunk-XOQXIPLL.js} +2 -2
- package/dist/{chunk-YDNVHAS4.js → chunk-YCLYKBWZ.js} +10 -10
- package/dist/{chunk-OOXXMKJS.js → chunk-YGNHAFBW.js} +5 -5
- package/dist/{chunk-6PFEG7GQ.js → chunk-YWWYA2JZ.js} +6 -6
- package/dist/chunk-YXMB4MCM.js +87 -0
- package/dist/chunk-YXMB4MCM.js.map +1 -0
- package/dist/{chunk-O5FEYLEG.js → chunk-Z5LPHG2D.js} +3 -3
- package/dist/{chunk-6HMQEUHX.js → chunk-ZAFLWQOV.js} +5 -5
- package/dist/{chunk-GVUXGWAM.js → chunk-ZC2JPF7B.js} +13 -13
- package/dist/{chunk-VYCYVN3L.js → chunk-ZCGH6TJ3.js} +16 -3
- package/dist/chunk-ZCGH6TJ3.js.map +1 -0
- package/dist/{chunk-5JQOU3IR.js → chunk-ZCQMCIT5.js} +6 -6
- package/dist/chunk-ZPUNTAVI.js +38 -0
- package/dist/chunk-ZPUNTAVI.js.map +1 -0
- package/dist/{chunk-LIV5LHHZ.js → chunk-ZUL3NYQ4.js} +2 -2
- package/dist/{chunk-O7DAGKLJ.js → chunk-ZWYQ44CB.js} +12 -12
- package/dist/context/dynamic-form-context.cjs +54 -4
- package/dist/context/dynamic-form-context.cjs.map +1 -1
- package/dist/context/dynamic-form-context.js +5 -4
- package/dist/context/index.cjs +54 -4
- package/dist/context/index.cjs.map +1 -1
- package/dist/context/index.js +5 -4
- package/dist/icon.cjs +492 -2
- package/dist/icon.cjs.map +1 -1
- package/dist/icon.d.cts +1 -1
- package/dist/icon.d.ts +1 -1
- package/dist/icon.js +493 -3
- package/dist/index.cjs +2621 -1631
- package/dist/index.cjs.map +1 -1
- package/dist/index.css +73 -0
- package/dist/index.d.cts +20 -4
- package/dist/index.d.ts +20 -4
- package/dist/index.js +664 -168
- package/dist/molecules/autocomplete-textfield.cjs +111 -46
- package/dist/molecules/autocomplete-textfield.cjs.map +1 -1
- package/dist/molecules/autocomplete-textfield.js +5 -3
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs +367 -209
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/index.js +21 -20
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-comp.js +4 -3
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs +293 -164
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-body.js +16 -15
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs +33 -3
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-footer.js +4 -3
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs +85 -19
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-header.js +5 -4
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs +217 -134
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-radio.js +10 -9
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs +172 -110
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-option.js +7 -6
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-satisfaction-text.js +6 -5
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs +80 -20
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/ReviewQuestion/review-question-text.js +7 -6
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs +64 -7
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/complete-review.js +6 -5
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs +275 -115
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/index.js +25 -24
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs +76 -17
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/CurriculumReviewSteps/start-review.js +7 -6
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs +49 -5
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-ai-traning.js +5 -4
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs +49 -5
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-file-download.js +4 -3
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs +318 -153
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/curriculum-review.js +28 -27
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs +346 -181
- package/dist/molecules/curriculumV2/CurriculumContents/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumContents/index.js +31 -30
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/curriculum-item-title.js +3 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-item.js +5 -4
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/Items/section-title.js +3 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs +195 -135
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/index.js +9 -8
- package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs +39 -2
- package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.cjs.map +1 -1
- package/dist/molecules/curriculumV2/CurriculumSidebar/sidebar-item.js +7 -6
- package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs +65 -8
- package/dist/molecules/curriculumV2/curriculum-sub-nav.cjs.map +1 -1
- package/dist/molecules/curriculumV2/curriculum-sub-nav.js +6 -5
- package/dist/molecules/curriculumV2/index.cjs +406 -220
- package/dist/molecules/curriculumV2/index.cjs.map +1 -1
- package/dist/molecules/curriculumV2/index.js +38 -37
- package/dist/molecules/date-picker/date-picker-button.cjs +160 -64
- package/dist/molecules/date-picker/date-picker-button.cjs.map +1 -1
- package/dist/molecules/date-picker/date-picker-button.d.cts +1 -0
- package/dist/molecules/date-picker/date-picker-button.d.ts +1 -0
- package/dist/molecules/date-picker/date-picker-button.js +10 -8
- package/dist/molecules/date-picker/index.cjs +242 -146
- package/dist/molecules/date-picker/index.cjs.map +1 -1
- package/dist/molecules/date-picker/index.js +9 -7
- package/dist/molecules/description-json-render.cjs +182 -120
- package/dist/molecules/description-json-render.cjs.map +1 -1
- package/dist/molecules/description-json-render.js +7 -6
- package/dist/molecules/download-card.cjs +67 -8
- package/dist/molecules/download-card.cjs.map +1 -1
- package/dist/molecules/download-card.js +5 -4
- package/dist/molecules/dynamic-field.cjs +222 -72
- package/dist/molecules/dynamic-field.cjs.map +1 -1
- package/dist/molecules/dynamic-field.js +13 -11
- package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs +359 -267
- package/dist/molecules/dynamic-form-editor-field-editor-panel.cjs.map +1 -1
- package/dist/molecules/dynamic-form-editor-field-editor-panel.js +10 -8
- package/dist/molecules/dynamic-form-editor-field-list-panel.cjs +115 -47
- package/dist/molecules/dynamic-form-editor-field-list-panel.cjs.map +1 -1
- package/dist/molecules/dynamic-form-editor-field-list-panel.js +6 -4
- package/dist/molecules/dynamic-form-editor-issues-panel.cjs +39 -2
- package/dist/molecules/dynamic-form-editor-issues-panel.cjs.map +1 -1
- package/dist/molecules/dynamic-form-editor-issues-panel.js +4 -3
- package/dist/molecules/dynamic-form-editor-preview-panel.cjs +239 -89
- package/dist/molecules/dynamic-form-editor-preview-panel.cjs.map +1 -1
- package/dist/molecules/dynamic-form-editor-preview-panel.js +16 -14
- package/dist/molecules/dynamic-form-editor.cjs +571 -407
- package/dist/molecules/dynamic-form-editor.cjs.map +1 -1
- package/dist/molecules/dynamic-form-editor.js +23 -21
- package/dist/molecules/dynamic-form.cjs +235 -85
- package/dist/molecules/dynamic-form.cjs.map +1 -1
- package/dist/molecules/dynamic-form.js +14 -12
- package/dist/molecules/expand-table/index.cjs +100 -42
- package/dist/molecules/expand-table/index.cjs.map +1 -1
- package/dist/molecules/expand-table/index.js +7 -6
- package/dist/molecules/force-refresh.cjs +79 -24
- package/dist/molecules/force-refresh.cjs.map +1 -1
- package/dist/molecules/force-refresh.js +4 -3
- package/dist/molecules/form/form.cjs +54 -4
- package/dist/molecules/form/form.cjs.map +1 -1
- package/dist/molecules/form/form.js +4 -3
- package/dist/molecules/form/index.cjs +54 -4
- package/dist/molecules/form/index.cjs.map +1 -1
- package/dist/molecules/form/index.js +4 -3
- package/dist/molecules/ghost-post.cjs +72 -14
- package/dist/molecules/ghost-post.cjs.map +1 -1
- package/dist/molecules/ghost-post.d.cts +1 -0
- package/dist/molecules/ghost-post.d.ts +1 -0
- package/dist/molecules/ghost-post.js +5 -4
- package/dist/molecules/index.cjs +1334 -989
- package/dist/molecules/index.cjs.map +1 -1
- package/dist/molecules/index.d.cts +1 -0
- package/dist/molecules/index.d.ts +1 -0
- package/dist/molecules/index.js +79 -78
- package/dist/molecules/learning-post.cjs +109 -37
- package/dist/molecules/learning-post.cjs.map +1 -1
- package/dist/molecules/learning-post.d.cts +1 -0
- package/dist/molecules/learning-post.d.ts +1 -0
- package/dist/molecules/learning-post.js +7 -6
- package/dist/molecules/navigation.cjs +49 -5
- package/dist/molecules/navigation.cjs.map +1 -1
- package/dist/molecules/navigation.js +4 -3
- package/dist/molecules/one-on-one-guide-list.cjs +56 -6
- package/dist/molecules/one-on-one-guide-list.cjs.map +1 -1
- package/dist/molecules/one-on-one-guide-list.js +5 -4
- package/dist/molecules/radio-button-card.cjs +77 -13
- package/dist/molecules/radio-button-card.cjs.map +1 -1
- package/dist/molecules/radio-button-card.js +4 -3
- package/dist/molecules/stepper.cjs +55 -4
- package/dist/molecules/stepper.cjs.map +1 -1
- package/dist/molecules/stepper.js +5 -4
- package/dist/molecules/tag-selector.cjs +256 -180
- package/dist/molecules/tag-selector.cjs.map +1 -1
- package/dist/molecules/tag-selector.js +9 -7
- package/dist/molecules/time-select.cjs +180 -126
- package/dist/molecules/time-select.cjs.map +1 -1
- package/dist/molecules/time-select.d.cts +1 -0
- package/dist/molecules/time-select.d.ts +1 -0
- package/dist/molecules/time-select.js +7 -5
- package/dist/molecules/training-info-guideline.cjs +75 -11
- package/dist/molecules/training-info-guideline.cjs.map +1 -1
- package/dist/molecules/training-info-guideline.js +7 -6
- package/dist/theme/theme-provider.cjs +53 -1
- package/dist/theme/theme-provider.cjs.map +1 -1
- package/dist/theme/theme-provider.d.cts +18 -2
- package/dist/theme/theme-provider.d.ts +18 -2
- package/dist/theme/theme-provider.js +4 -1
- package/dist/utils/convert-button-size.d.cts +1 -0
- package/dist/utils/convert-button-size.d.ts +1 -0
- package/dist/utils/convert-icon-button-size.d.cts +1 -0
- package/dist/utils/convert-icon-button-size.d.ts +1 -0
- package/dist/utils/curriculum.utils.cjs.map +1 -1
- package/dist/utils/curriculum.utils.js +1 -1
- package/dist/utils/get-callout-icon-component.cjs.map +1 -1
- package/dist/utils/get-callout-icon-component.js +2 -2
- package/dist/utils/index.cjs +25 -0
- package/dist/utils/index.cjs.map +1 -1
- package/dist/utils/index.d.cts +2 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +7 -3
- package/dist/utils/resolve-color.cjs +51 -0
- package/dist/utils/resolve-color.cjs.map +1 -0
- package/dist/utils/resolve-color.d.cts +38 -0
- package/dist/utils/resolve-color.d.ts +38 -0
- package/dist/utils/resolve-color.js +8 -0
- package/dist/utils/resolve-color.js.map +1 -0
- package/package.json +1 -1
- package/src/atoms/alert-dialog.tsx +38 -1
- package/src/atoms/avatar.tsx +18 -3
- package/src/atoms/badge.tsx +15 -22
- package/src/atoms/blockquote.tsx +31 -1
- package/src/atoms/button.tsx +12 -3
- package/src/atoms/button.type.ts +6 -1
- package/src/atoms/call-out.tsx +48 -1
- package/src/atoms/check-box-card.tsx +51 -1
- package/src/atoms/check-box-group.tsx +19 -2
- package/src/atoms/check-box.tsx +17 -3
- package/src/atoms/code.tsx +31 -1
- package/src/atoms/data-list.tsx +47 -1
- package/src/atoms/dropdown-menu.tsx +53 -6
- package/src/atoms/heading.tsx +22 -4
- package/src/atoms/hover-card.tsx +37 -1
- package/src/atoms/icon-button.tsx +12 -3
- package/src/atoms/link.tsx +21 -3
- package/src/atoms/pagination.tsx +21 -2
- package/src/atoms/popover.tsx +37 -1
- package/src/atoms/progress.tsx +31 -1
- package/src/atoms/radio-cards.tsx +49 -1
- package/src/atoms/radio-group.tsx +49 -1
- package/src/atoms/radio.tsx +31 -1
- package/src/atoms/segmented-control.tsx +3 -0
- package/src/atoms/select.tsx +67 -19
- package/src/atoms/switch.tsx +31 -1
- package/src/atoms/tab-nav.tsx +42 -1
- package/src/atoms/tabs.tsx +40 -1
- package/src/atoms/tooltip.tsx +14 -1
- package/src/atoms/typo.tsx +21 -3
- package/src/icon.ts +303 -57
- package/src/molecules/radio-button-card.tsx +6 -4
- package/src/theme/theme-provider.tsx +38 -3
- package/src/utils/index.ts +2 -1
- package/src/utils/resolve-color.ts +86 -0
- package/dist/chunk-365QMK4D.js +0 -7
- package/dist/chunk-365QMK4D.js.map +0 -1
- package/dist/chunk-3NUQAVE6.js.map +0 -1
- package/dist/chunk-5AVBYDPB.js +0 -7
- package/dist/chunk-5AVBYDPB.js.map +0 -1
- package/dist/chunk-5ZITU5L7.js +0 -7
- package/dist/chunk-5ZITU5L7.js.map +0 -1
- package/dist/chunk-6DJOIRMF.js +0 -7
- package/dist/chunk-6DJOIRMF.js.map +0 -1
- package/dist/chunk-6IVCARWS.js +0 -7
- package/dist/chunk-6IVCARWS.js.map +0 -1
- package/dist/chunk-7FKRQQYK.js +0 -15
- package/dist/chunk-7FKRQQYK.js.map +0 -1
- package/dist/chunk-B6XJN6EC.js +0 -7
- package/dist/chunk-B6XJN6EC.js.map +0 -1
- package/dist/chunk-BESTU2AY.js.map +0 -1
- package/dist/chunk-CSKNBWPB.js.map +0 -1
- package/dist/chunk-DHZVOXFM.js +0 -35
- package/dist/chunk-DHZVOXFM.js.map +0 -1
- package/dist/chunk-FPD73OHW.js +0 -7
- package/dist/chunk-FPD73OHW.js.map +0 -1
- package/dist/chunk-HFVVQEOZ.js +0 -1
- package/dist/chunk-J242TTFH.js +0 -7
- package/dist/chunk-J242TTFH.js.map +0 -1
- package/dist/chunk-JU7GB6R2.js +0 -151
- package/dist/chunk-JU7GB6R2.js.map +0 -1
- package/dist/chunk-K36TPMKL.js.map +0 -1
- package/dist/chunk-KTSEZC6A.js +0 -49
- package/dist/chunk-KTSEZC6A.js.map +0 -1
- package/dist/chunk-MIMJ7LON.js +0 -7
- package/dist/chunk-MIMJ7LON.js.map +0 -1
- package/dist/chunk-O3T3TM3V.js +0 -7
- package/dist/chunk-O3T3TM3V.js.map +0 -1
- package/dist/chunk-OHMOP5PV.js +0 -7
- package/dist/chunk-OHMOP5PV.js.map +0 -1
- package/dist/chunk-OYM4XCHQ.js +0 -7
- package/dist/chunk-OYM4XCHQ.js.map +0 -1
- package/dist/chunk-PMJIFLDT.js.map +0 -1
- package/dist/chunk-SE5TPTP2.js.map +0 -1
- package/dist/chunk-SMLC2O3V.js +0 -42
- package/dist/chunk-SMLC2O3V.js.map +0 -1
- package/dist/chunk-TVDKGMBI.js.map +0 -1
- package/dist/chunk-VTJZMOSP.js +0 -7
- package/dist/chunk-VTJZMOSP.js.map +0 -1
- package/dist/chunk-VYCYVN3L.js.map +0 -1
- package/dist/chunk-W7X7KSJP.js.map +0 -1
- package/dist/chunk-X2GMDZ7M.js +0 -59
- package/dist/chunk-X2GMDZ7M.js.map +0 -1
- package/dist/chunk-XK6VEVOK.js.map +0 -1
- package/dist/chunk-YGL6SWKN.js +0 -7
- package/dist/chunk-YGL6SWKN.js.map +0 -1
- package/dist/chunk-YJ7ZFOYL.js +0 -7
- package/dist/chunk-YJ7ZFOYL.js.map +0 -1
- package/dist/chunk-ZVDAEY5Q.js.map +0 -1
- /package/dist/{chunk-EWFZXCMV.js.map → chunk-2FB75HU2.js.map} +0 -0
- /package/dist/{chunk-HTNDVNLQ.js.map → chunk-2I37QLRA.js.map} +0 -0
- /package/dist/{chunk-7R65MUL6.js.map → chunk-2O7NVLVP.js.map} +0 -0
- /package/dist/{chunk-OE2AVQED.js.map → chunk-2SM37SB4.js.map} +0 -0
- /package/dist/{chunk-FMAOB6BX.js.map → chunk-2WNLUQX5.js.map} +0 -0
- /package/dist/{chunk-ADD4KFPG.js.map → chunk-447H6BVE.js.map} +0 -0
- /package/dist/{chunk-W7TBPRHG.js.map → chunk-5OW76AER.js.map} +0 -0
- /package/dist/{chunk-62HSZXVT.js.map → chunk-6YJGQWD6.js.map} +0 -0
- /package/dist/{chunk-AA6OYHCE.js.map → chunk-7JW5Z2TL.js.map} +0 -0
- /package/dist/{chunk-ZA4NYPSW.js.map → chunk-7PBLFV5L.js.map} +0 -0
- /package/dist/{chunk-HBQY4ELG.js.map → chunk-A26UWBVB.js.map} +0 -0
- /package/dist/{chunk-BYFSYL7V.js.map → chunk-A4YOY75P.js.map} +0 -0
- /package/dist/{chunk-LSDD4TAP.js.map → chunk-AJTGTGOC.js.map} +0 -0
- /package/dist/{chunk-ADAQSPUA.js.map → chunk-BEKSO5JG.js.map} +0 -0
- /package/dist/{chunk-JWAQUXGB.js.map → chunk-BZ3EXV6A.js.map} +0 -0
- /package/dist/{chunk-Z34HR7RE.js.map → chunk-C2G3IB7G.js.map} +0 -0
- /package/dist/{chunk-4U6DFH7Z.js.map → chunk-E6GCU5IQ.js.map} +0 -0
- /package/dist/{chunk-ZOPYFDLO.js.map → chunk-GAA3RTRW.js.map} +0 -0
- /package/dist/{chunk-RSZDAY62.js.map → chunk-GE4M5GOQ.js.map} +0 -0
- /package/dist/{chunk-RNRZ3LV7.js.map → chunk-GPULIICW.js.map} +0 -0
- /package/dist/{chunk-7PF6I4RN.js.map → chunk-GRDRXD53.js.map} +0 -0
- /package/dist/{chunk-SH6FSA7T.js.map → chunk-GREYLAMY.js.map} +0 -0
- /package/dist/{chunk-SAEPW5JF.js.map → chunk-GYSRHZRS.js.map} +0 -0
- /package/dist/{chunk-UMUSNH2D.js.map → chunk-H3GQHGFA.js.map} +0 -0
- /package/dist/{chunk-OILH5J7Q.js.map → chunk-HH6LML5K.js.map} +0 -0
- /package/dist/{chunk-KP4SGRJZ.js.map → chunk-IM6E52L2.js.map} +0 -0
- /package/dist/{chunk-6OKBTWEC.js.map → chunk-J7N2IZQW.js.map} +0 -0
- /package/dist/{chunk-EEAHZCIK.js.map → chunk-JCUG2XKB.js.map} +0 -0
- /package/dist/{chunk-REPTW53S.js.map → chunk-JNEGSY5N.js.map} +0 -0
- /package/dist/{chunk-4TST4UK5.js.map → chunk-KO3V7KB6.js.map} +0 -0
- /package/dist/{chunk-KTQREW2K.js.map → chunk-LIWQ47VQ.js.map} +0 -0
- /package/dist/{chunk-B37MCN6F.js.map → chunk-LQ3WGFS7.js.map} +0 -0
- /package/dist/{chunk-YADSNPMG.js.map → chunk-M77YPVQN.js.map} +0 -0
- /package/dist/{chunk-GTO7GG2K.js.map → chunk-MCKWO7K4.js.map} +0 -0
- /package/dist/{chunk-OHNBVT52.js.map → chunk-MGR37YQB.js.map} +0 -0
- /package/dist/{chunk-QDC3LFHS.js.map → chunk-MMLVZWMD.js.map} +0 -0
- /package/dist/{chunk-3G3RPU6Q.js.map → chunk-MP5KZULQ.js.map} +0 -0
- /package/dist/{chunk-JRT6KTBG.js.map → chunk-MSLSD7F6.js.map} +0 -0
- /package/dist/{chunk-FGLOHHYP.js.map → chunk-MSM2QG23.js.map} +0 -0
- /package/dist/{chunk-V7IC4EAC.js.map → chunk-NFMEBYNY.js.map} +0 -0
- /package/dist/{chunk-C6ZC7TXX.js.map → chunk-NIHOKIYW.js.map} +0 -0
- /package/dist/{chunk-M2PVHXOE.js.map → chunk-NYG34MV6.js.map} +0 -0
- /package/dist/{chunk-N7NDDJW5.js.map → chunk-OA3DGWVL.js.map} +0 -0
- /package/dist/{chunk-XLKJYRFY.js.map → chunk-OBWQ3N5D.js.map} +0 -0
- /package/dist/{chunk-IN6S7PPW.js.map → chunk-OEHVGPWL.js.map} +0 -0
- /package/dist/{chunk-HFVVQEOZ.js.map → chunk-OLJN3WXR.js.map} +0 -0
- /package/dist/{chunk-X4OCUESK.js.map → chunk-OPYRV6XJ.js.map} +0 -0
- /package/dist/{chunk-6QVHJ5WW.js.map → chunk-OQN4E2QP.js.map} +0 -0
- /package/dist/{chunk-LE6CNJWH.js.map → chunk-OWQUXTQ2.js.map} +0 -0
- /package/dist/{chunk-NTJLECYY.js.map → chunk-OYXUWBKS.js.map} +0 -0
- /package/dist/{chunk-B5CKZFDM.js.map → chunk-PE4EBBU4.js.map} +0 -0
- /package/dist/{chunk-5TZNUXBT.js.map → chunk-PXMJK5D5.js.map} +0 -0
- /package/dist/{chunk-Y4U24VXI.js.map → chunk-Q3M6GFHY.js.map} +0 -0
- /package/dist/{chunk-ZFTQ2XBH.js.map → chunk-QPL7SJQM.js.map} +0 -0
- /package/dist/{chunk-NX5ESRCX.js.map → chunk-RMVVV5NH.js.map} +0 -0
- /package/dist/{chunk-Q7KT3UPO.js.map → chunk-RUJZ5PE7.js.map} +0 -0
- /package/dist/{chunk-6SQZJN5Y.js.map → chunk-T2CGNUCP.js.map} +0 -0
- /package/dist/{chunk-SLFUYRIC.js.map → chunk-TU6SGJ5Z.js.map} +0 -0
- /package/dist/{chunk-AHXS2MBK.js.map → chunk-TYEGB5FQ.js.map} +0 -0
- /package/dist/{chunk-DQ6EIA2T.js.map → chunk-UFM3EL52.js.map} +0 -0
- /package/dist/{chunk-CNW3YEAK.js.map → chunk-VD5ZDFCM.js.map} +0 -0
- /package/dist/{chunk-64XYTE54.js.map → chunk-WY37V3W4.js.map} +0 -0
- /package/dist/{chunk-MJMHPIYX.js.map → chunk-XOQXIPLL.js.map} +0 -0
- /package/dist/{chunk-YDNVHAS4.js.map → chunk-YCLYKBWZ.js.map} +0 -0
- /package/dist/{chunk-OOXXMKJS.js.map → chunk-YGNHAFBW.js.map} +0 -0
- /package/dist/{chunk-6PFEG7GQ.js.map → chunk-YWWYA2JZ.js.map} +0 -0
- /package/dist/{chunk-O5FEYLEG.js.map → chunk-Z5LPHG2D.js.map} +0 -0
- /package/dist/{chunk-6HMQEUHX.js.map → chunk-ZAFLWQOV.js.map} +0 -0
- /package/dist/{chunk-GVUXGWAM.js.map → chunk-ZC2JPF7B.js.map} +0 -0
- /package/dist/{chunk-5JQOU3IR.js.map → chunk-ZCQMCIT5.js.map} +0 -0
- /package/dist/{chunk-LIV5LHHZ.js.map → chunk-ZUL3NYQ4.js.map} +0 -0
- /package/dist/{chunk-O7DAGKLJ.js.map → chunk-ZWYQ44CB.js.map} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx","../../../../src/atoms/button.tsx","../../../../src/utils/convert-button-size.ts","../../../../src/atoms/flex.tsx","../../../../src/atoms/typo.tsx","../../../../src/utils/map-with-responsive.ts","../../../../src/molecules/curriculumV2/curriculum-context.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\nimport type {\n CurriculumFileDownloadContents,\n CurriculumFileDownloadFile,\n} from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\n\ninterface CurriculumFileDownloadProps {\n item: CurriculumFileDownloadContents;\n}\n\nfunction CurriculumFileDownload(\n props: CurriculumFileDownloadProps\n): React.ReactNode {\n const { item } = props;\n const { title, description, files } = item;\n const { onClickfileDownload } = useCurriculumContext();\n\n const isCallbackReady = useMemo((): boolean => {\n return typeof onClickfileDownload === 'function';\n }, [onClickfileDownload]);\n\n const handleClickFile = (file: CurriculumFileDownloadFile): void => {\n if (!onClickfileDownload) {\n return;\n }\n onClickfileDownload(item, file);\n };\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {title}\n </Typo>\n {description ? (\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n ) : null}\n\n <Flex\n direction=\"column\"\n gap=\"2\"\n mt=\"4\"\n style={{ width: '100%', maxWidth: 520 }}\n >\n {files.map((file) => {\n return (\n <Button\n disabled={!isCallbackReady}\n key={file.url}\n onClick={() => {\n handleClickFile(file);\n }}\n variant=\"outline\"\n >\n <Typo truncate>{file.name}</Typo>\n </Button>\n );\n })}\n </Flex>\n\n {!isCallbackReady ? (\n <Typo align=\"center\" color=\"gray\" mt=\"3\" variant=\"caption\">\n 파일 다운로드 기능이 설정되지 않았습니다.\n </Typo>\n ) : null}\n </Flex>\n );\n}\n\nexport default CurriculumFileDownload;\n\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const className = useMemo(() => {\n return clsx(props.className, { transparent: variant === 'transparent' });\n }, [props.className, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\n\nexport type TypoProps = RadixTextProps & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, ...rest } = props;\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText {...rest} ref={ref} size={radixSize}>\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n} from 'react';\nimport {\n type CurriculumFileDownloadContents,\n type CurriculumFileDownloadFile,\n type CurriculumSectionTitleContents,\n} from '@/types/curriculumContents.type';\nimport type {\n Curriculum,\n CurriculumListContents,\n} from '@/types/curriculum.type';\n\nconst EMPTY_SELECTED_ITEM: CurriculumListContents = {\n uuid: '',\n type: 'sectionTitle',\n title: '',\n};\n\nfunction getInitialSelectedIndex(args: {\n initialSelectedIndex?: number;\n selectableIndexes: number[];\n}): number {\n const { initialSelectedIndex, selectableIndexes } = args;\n\n if (\n typeof initialSelectedIndex === 'number' &&\n selectableIndexes.includes(initialSelectedIndex)\n ) {\n return initialSelectedIndex;\n }\n\n if (selectableIndexes.length > 0) {\n return selectableIndexes[0];\n }\n\n return 0;\n}\n\nexport interface CurriculumContextValue {\n curriculum: Curriculum;\n selectedIndex: number;\n setSelectedIndex: (idx: number) => void;\n selectedId: string;\n hasPrev: boolean;\n hasNext: boolean;\n selectPrev: (cb?: (moveIndex: number) => void) => void;\n selectNext: (cb?: (moveIndex: number) => void) => void;\n selectedItem: CurriculumListContents;\n /** 선택된 아이템의 이전 아이템 중 가장 가까운 섹션 타이틀 */\n selectedSectionTitle: CurriculumSectionTitleContents | null;\n /** 컨텐츠 목록 스크롤 이동 함수 */\n scrollNavItem: (uuid: string) => void;\n /** 스크롤 영역 참조 */\n scrollAreaRef: React.RefObject<HTMLDivElement | null>;\n /** 리뷰 제출 함수 */\n onReviewSubmit: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => Promise<boolean>;\n /** 리뷰 응답 값 변경 시 호출 */\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n /** 파일 다운로드 클릭 시 호출 */\n onClickfileDownload?: (\n item: CurriculumFileDownloadContents,\n file: CurriculumFileDownloadFile\n ) => void;\n /** 과제 완료 후 저장된 값 */\n curriculumReviewAnswers: Record<string, string>;\n /** 과제 완료 전 임시 저장된 값 */\n tempCurriculumReviewAnswers: Record<string, string>;\n /** 항목 수강 완료 여부 */\n curriculumCompleteMap: Record<string, boolean>;\n /** action Button 클릭시 호출 */\n onActionButtonClick: (item: CurriculumListContents) => void;\n /** 초기 선택 인덱스 */\n initialSelectedIndex?: number;\n /** 커스텀 탭 주입값 */\n customTabs?: {\n content: React.ReactElement;\n label: string;\n value: string;\n }[];\n}\n\nconst CurriculumContext = createContext<CurriculumContextValue | undefined>(\n undefined\n);\n\nexport interface CurriculumProviderProps\n extends Pick<\n CurriculumContextValue,\n | 'customTabs'\n | 'curriculum'\n | 'onReviewSubmit'\n | 'onReviewValueChange'\n | 'onClickfileDownload'\n | 'curriculumReviewAnswers'\n | 'tempCurriculumReviewAnswers'\n | 'curriculumCompleteMap'\n | 'onActionButtonClick'\n | 'initialSelectedIndex'\n > {\n children: React.ReactNode;\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n\n /** 현재 화면에 표시 중인 컨텐츠 인덱스 변경 시 호출 */\n onChangeSelectedContent?: (item: CurriculumListContents) => void;\n}\n\nexport function CurriculumProvider(\n props: CurriculumProviderProps\n): React.ReactElement {\n const {\n children,\n curriculum,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onChangeSelectedContent,\n onActionButtonClick,\n initialSelectedIndex,\n customTabs,\n } = props;\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n const scrollNavItem = useCallback((index: string) => {\n const element = sidebarRef.current?.querySelector(\n `[data-curriculum-item-index=\"${index}\"]`\n );\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }, []);\n\n const list = curriculum.contents.list;\n // 선택 가능한 인덱스만 추출\n const selectableIndexes = useMemo(\n () =>\n list\n .map((item, i) => (item.type !== 'sectionTitle' ? i : null))\n .filter((i): i is number => i !== null),\n [list]\n );\n // 최초 선택값: 첫 번째 선택 가능한 인덱스\n const [selectedIndexState, setSelectedIndexState] = useState<number>(\n getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })\n );\n\n // 리스트/선택 가능 인덱스가 변할 때 선택값을 자동 보정\n useEffect(() => {\n if (selectableIndexes.length === 0) {\n if (selectedIndexState !== 0) {\n setSelectedIndexState(0);\n }\n return;\n }\n\n if (!selectableIndexes.includes(selectedIndexState)) {\n setSelectedIndexState(selectableIndexes[0]);\n }\n }, [selectableIndexes, selectedIndexState]);\n\n // 선택 인덱스 보정 함수\n const setSelectedIndex = useCallback(\n (idx: number) => {\n if (selectableIndexes.includes(idx)) {\n setSelectedIndexState(idx);\n } else {\n // idx가 선택 불가면, selectableIndexes에서 가장 가까운 다음 인덱스 선택\n const next = selectableIndexes.find((i) => i > idx);\n const prev = [...selectableIndexes].reverse().find((i) => i < idx);\n if (next !== undefined) setSelectedIndexState(next);\n else if (prev !== undefined) setSelectedIndexState(prev);\n }\n },\n [selectableIndexes]\n );\n\n // 현재 선택 인덱스가 selectableIndexes 내 몇 번째인지\n const selectablePos = useMemo(\n () => selectableIndexes.indexOf(selectedIndexState),\n [selectableIndexes, selectedIndexState]\n );\n const hasPrev = selectablePos > 0;\n const hasNext = selectablePos < selectableIndexes.length - 1;\n\n const selectPrev = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let prevIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos > 0) {\n prevIndex = selectableIndexes[pos - 1];\n }\n if (cb) cb(prevIndex);\n return prevIndex;\n });\n },\n [selectableIndexes]\n );\n const selectNext = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let nextIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos < selectableIndexes.length - 1) {\n nextIndex = selectableIndexes[pos + 1];\n }\n if (cb) cb(nextIndex);\n return nextIndex;\n });\n },\n [selectableIndexes]\n );\n\n const selectedId = useMemo(\n () => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return '';\n }\n return list[selectedIndexState]?.uuid ?? '';\n },\n [list, selectedIndexState]\n );\n\n const selectedItem = useMemo(() => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return EMPTY_SELECTED_ITEM;\n }\n return list[selectedIndexState] ?? EMPTY_SELECTED_ITEM;\n }, [list, selectedIndexState]);\n\n const selectedSectionTitle = useMemo(() => {\n // selectedIndexState 이전 인덱스 중 가장 가까운 섹션 타이틀 찾기\n const prevItems = list.slice(0, selectedIndexState).reverse();\n return prevItems.find((item) => item.type === 'sectionTitle') ?? null;\n }, [list, selectedIndexState]);\n\n useEffect(() => {\n const inBounds: boolean =\n selectedIndexState >= 0 && selectedIndexState < list.length;\n if (!inBounds) return;\n\n const item: CurriculumListContents = list[selectedIndexState];\n if (item.type === 'sectionTitle') return;\n\n onChangeSelectedContent?.(item);\n }, [list, onChangeSelectedContent, selectedIndexState]);\n\n return (\n <CurriculumContext.Provider\n value={{\n curriculum,\n scrollNavItem,\n selectedIndex: selectedIndexState,\n setSelectedIndex,\n selectedId,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n selectedSectionTitle,\n selectedItem,\n scrollAreaRef: sidebarRef,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onActionButtonClick,\n customTabs,\n }}\n >\n {children}\n </CurriculumContext.Provider>\n );\n}\n\nexport function useCurriculumContext(): CurriculumContextValue {\n const ctx = useContext(CurriculumContext);\n if (!ctx)\n throw new Error(\n 'useCurriculumContext must be used within CurriculumProvider'\n );\n return ctx;\n}\n"],"mappings":"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","names":["import_react","RadixButton","import_themes","import_themes","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","import_jsx_runtime"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/molecules/curriculumV2/CurriculumContents/curriculum-file-download.tsx","../../../../src/atoms/button.tsx","../../../../src/utils/convert-button-size.ts","../../../../src/utils/resolve-color.ts","../../../../src/atoms/flex.tsx","../../../../src/atoms/typo.tsx","../../../../src/utils/map-with-responsive.ts","../../../../src/molecules/curriculumV2/curriculum-context.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { Button } from '@/atoms/button';\nimport { Flex } from '@/atoms/flex';\nimport { Typo } from '@/atoms/typo';\nimport type {\n CurriculumFileDownloadContents,\n CurriculumFileDownloadFile,\n} from '@/types/curriculumContents.type';\nimport { useCurriculumContext } from '../curriculum-context';\n\ninterface CurriculumFileDownloadProps {\n item: CurriculumFileDownloadContents;\n}\n\nfunction CurriculumFileDownload(\n props: CurriculumFileDownloadProps\n): React.ReactNode {\n const { item } = props;\n const { title, description, files } = item;\n const { onClickfileDownload } = useCurriculumContext();\n\n const isCallbackReady = useMemo((): boolean => {\n return typeof onClickfileDownload === 'function';\n }, [onClickfileDownload]);\n\n const handleClickFile = (file: CurriculumFileDownloadFile): void => {\n if (!onClickfileDownload) {\n return;\n }\n onClickfileDownload(item, file);\n };\n\n return (\n <Flex\n align=\"center\"\n direction=\"column\"\n height=\"100%\"\n justify=\"center\"\n px=\"3\"\n py=\"3\"\n width=\"100%\"\n >\n <Typo color=\"gray\" weight=\"bold\">\n {title}\n </Typo>\n {description ? (\n <Typo align=\"center\" as=\"p\" color=\"gray\">\n {description}\n </Typo>\n ) : null}\n\n <Flex\n direction=\"column\"\n gap=\"2\"\n mt=\"4\"\n style={{ width: '100%', maxWidth: 520 }}\n >\n {files.map((file) => {\n return (\n <Button\n disabled={!isCallbackReady}\n key={file.url}\n onClick={() => {\n handleClickFile(file);\n }}\n variant=\"outline\"\n >\n <Typo truncate>{file.name}</Typo>\n </Button>\n );\n })}\n </Flex>\n\n {!isCallbackReady ? (\n <Typo align=\"center\" color=\"gray\" mt=\"3\" variant=\"caption\">\n 파일 다운로드 기능이 설정되지 않았습니다.\n </Typo>\n ) : null}\n </Flex>\n );\n}\n\nexport default CurriculumFileDownload;\n\n","import React, { forwardRef, useMemo } from 'react';\nimport { Button as RadixButton } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport { convertSize } from '../utils/convert-button-size';\nimport { resolveColor } from '../utils/resolve-color';\nimport type { ButtonProps } from './button.type';\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (props, ref): React.ReactNode => {\n const { size, style, variant, color, ...restProps } = props;\n\n const radixSize = useMemo(() => {\n return convertSize(size);\n }, [size]);\n\n const radixVariant = useMemo(() => {\n if (variant === 'transparent') return 'ghost';\n return variant;\n }, [variant]);\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const className = useMemo(() => {\n return clsx(props.className, colorClassName, {\n transparent: variant === 'transparent',\n });\n }, [props.className, colorClassName, variant]);\n\n return (\n <RadixButton\n style={style}\n type=\"button\"\n variant={radixVariant}\n {...restProps}\n className={className}\n color={radixColor}\n ref={ref}\n size={radixSize}\n />\n );\n }\n);\n\nButton.displayName = 'Button';\n","import { type ButtonProps as RadixButtonProps } from '@radix-ui/themes';\nimport type { Breakpoint } from '@radix-ui/themes/props';\nimport type { ButtonProps } from '../atoms/button.type';\n\nexport const convertSizeStr = (\n size: ButtonProps['size']\n): '1' | '2' | '3' | '4' => {\n switch (size) {\n case 'small':\n return '1';\n case 'medium':\n return '2';\n case 'large':\n return '3';\n default:\n return '2';\n }\n};\n\nexport const convertSizeResponse = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string' || typeof size === 'undefined') {\n return convertSizeStr(size);\n }\n const radixSize: RadixButtonProps['size'] = {};\n let key: Breakpoint = 'initial';\n for (key in size) {\n radixSize[key] = convertSizeStr(size[key]);\n }\n return radixSize;\n};\n\nexport const convertSize = (\n size: ButtonProps['size']\n): RadixButtonProps['size'] => {\n if (typeof size === 'string') {\n return convertSizeStr(size);\n }\n return convertSizeResponse(size);\n};\n","import type { BadgeProps as RadixBadgeProps } from '@radix-ui/themes';\n\n/**\n * Radix Themes가 제공하는 accent color union (gray, red, blue, ...).\n * 모든 color 지원 컴포넌트가 동일한 union을 공유하므로 Badge에서 파생한다.\n */\nexport type RadixColor = NonNullable<RadixBadgeProps['color']>;\n\n/** TIPP 시맨틱 color 별칭. */\nexport type SemanticColor = 'error' | 'accent' | 'neutral' | 'success';\n\n/**\n * Radix accent에 대응이 없어 CSS accent override로 처리하는 커스텀 color.\n * (예: black — `style/black.scss`의 `.tipp-accent-black` 참고)\n */\nexport type CustomColor = 'black';\n\n/** color 지원 컴포넌트가 노출하는 통합 color 타입. */\nexport type UiColor = RadixColor | SemanticColor | CustomColor;\n\n/**\n * union 각 멤버에 분배되는 Omit.\n * Radix의 polymorphic 컴포넌트 props(Text/Heading/Link 등 `as`로 분기되는 union)에서\n * 키를 제거할 때 일반 Omit은 union을 단일 객체로 합쳐 `as` 분기를 무너뜨리므로 이 타입을 쓴다.\n */\nexport type DistributiveOmit<T, K extends PropertyKey> = T extends unknown\n ? Omit<T, K>\n : never;\n\nconst SEMANTIC_COLOR_MAP: Record<SemanticColor, RadixColor | undefined> = {\n error: 'red',\n neutral: 'gray',\n success: 'green',\n accent: undefined,\n};\n\ninterface CustomColorConfig {\n /**\n * accent override를 적용할 className.\n */\n className: string;\n /**\n * Radix에 넘길 fallback color.\n * Text/Heading/Link 등은 `color` prop이 있어야 `data-accent-color`가 붙어\n * `--accent-*`를 참조하므로, 유효한 Radix color를 함께 넘긴 뒤 className으로\n * `--accent-*`를 덮어쓴다. (Badge/Button은 prop 없이도 accent 기반이라 무해)\n */\n fallbackColor: RadixColor;\n}\n\nconst CUSTOM_COLOR_MAP: Record<CustomColor, CustomColorConfig> = {\n black: { className: 'tipp-accent-black', fallbackColor: 'gray' },\n};\n\nconst isSemanticColor = (color?: UiColor): color is SemanticColor =>\n color !== undefined && color in SEMANTIC_COLOR_MAP;\n\nconst isCustomColor = (color?: UiColor): color is CustomColor =>\n color !== undefined && color in CUSTOM_COLOR_MAP;\n\nexport interface ResolvedColor {\n /** Radix 컴포넌트의 `color` prop에 그대로 전달할 값. custom color면 undefined. */\n color?: RadixColor;\n /** accent override를 적용하기 위해 요소에 붙일 className. */\n className?: string;\n}\n\n/**\n * 통합 color 입력을 Radix color prop과 className으로 정규화한다.\n *\n * - custom color(black 등): Radix color는 비우고 accent override className을 반환\n * - semantic color(error/neutral/success/accent): 대응 Radix color로 변환\n * - Radix color: 그대로 pass-through\n */\nexport const resolveColor = (color?: UiColor): ResolvedColor => {\n if (isCustomColor(color)) {\n const { className, fallbackColor } = CUSTOM_COLOR_MAP[color];\n return { color: fallbackColor, className };\n }\n\n if (isSemanticColor(color)) {\n return { color: SEMANTIC_COLOR_MAP[color] };\n }\n\n return { color };\n};\n","export { Flex, type FlexProps } from '@radix-ui/themes';\n","import type { TextProps as RadixTextProps } from '@radix-ui/themes';\nimport type { Responsive } from '@radix-ui/themes/props';\nimport { Text as RadixText } from '@radix-ui/themes';\nimport { clsx } from 'clsx';\nimport React, { useMemo, forwardRef } from 'react';\nimport { mapWithResponsive } from '@/utils/map-with-responsive';\nimport {\n resolveColor,\n type DistributiveOmit,\n type UiColor,\n} from '../utils/resolve-color';\n\nexport type TypoProps = DistributiveOmit<RadixTextProps, 'color'> & {\n variant?: Responsive<'body' | 'caption' | 'subtitle'>;\n color?: UiColor;\n};\n\nexport const Typo = forwardRef<HTMLSpanElement, TypoProps>(\n (props: TypoProps, ref): React.ReactNode => {\n const { size, variant, children, color, className, ...rest } = props;\n\n const { color: radixColor, className: colorClassName } = useMemo(\n () => resolveColor(color),\n [color]\n );\n\n const radixSize = useMemo<RadixTextProps['size']>(() => {\n if (size !== undefined) return size;\n\n if (variant === undefined) return '2';\n\n return mapWithResponsive({\n value: variant,\n mapFn: (variantValue?: 'body' | 'caption' | 'subtitle') => {\n switch (variantValue) {\n case 'caption':\n return '1';\n case 'subtitle':\n return '3';\n case 'body':\n default:\n return '2';\n }\n },\n });\n }, [size, variant]);\n\n return (\n <RadixText\n {...rest}\n className={clsx(colorClassName, className)}\n color={radixColor}\n ref={ref}\n size={radixSize}\n >\n {children}\n </RadixText>\n );\n }\n);\n\nTypo.displayName = 'Typo';\n","import type { Breakpoint, Responsive } from \"@radix-ui/themes/props\";\n\nexport const mapWithResponsive = <T extends string,K extends string>(\n args: {value: Responsive<T>, mapFn: (value?:T)=>K |undefined}\n): Responsive<K> | undefined => {\n const {value, mapFn} = args;\n if(typeof value === 'string'){\n return mapFn(value);\n };\n \n if(typeof value === 'object'){\n const newObj: Partial<Record<Breakpoint, K>> = {};\n let key: Breakpoint;\n for(key in value){\n newObj[key] = mapFn(value[key]);\n }\n return newObj;\n }\n return value;\n};\n","import React, {\n createContext,\n useContext,\n useState,\n useMemo,\n useCallback,\n useRef,\n useEffect,\n} from 'react';\nimport {\n type CurriculumFileDownloadContents,\n type CurriculumFileDownloadFile,\n type CurriculumSectionTitleContents,\n} from '@/types/curriculumContents.type';\nimport type {\n Curriculum,\n CurriculumListContents,\n} from '@/types/curriculum.type';\n\nconst EMPTY_SELECTED_ITEM: CurriculumListContents = {\n uuid: '',\n type: 'sectionTitle',\n title: '',\n};\n\nfunction getInitialSelectedIndex(args: {\n initialSelectedIndex?: number;\n selectableIndexes: number[];\n}): number {\n const { initialSelectedIndex, selectableIndexes } = args;\n\n if (\n typeof initialSelectedIndex === 'number' &&\n selectableIndexes.includes(initialSelectedIndex)\n ) {\n return initialSelectedIndex;\n }\n\n if (selectableIndexes.length > 0) {\n return selectableIndexes[0];\n }\n\n return 0;\n}\n\nexport interface CurriculumContextValue {\n curriculum: Curriculum;\n selectedIndex: number;\n setSelectedIndex: (idx: number) => void;\n selectedId: string;\n hasPrev: boolean;\n hasNext: boolean;\n selectPrev: (cb?: (moveIndex: number) => void) => void;\n selectNext: (cb?: (moveIndex: number) => void) => void;\n selectedItem: CurriculumListContents;\n /** 선택된 아이템의 이전 아이템 중 가장 가까운 섹션 타이틀 */\n selectedSectionTitle: CurriculumSectionTitleContents | null;\n /** 컨텐츠 목록 스크롤 이동 함수 */\n scrollNavItem: (uuid: string) => void;\n /** 스크롤 영역 참조 */\n scrollAreaRef: React.RefObject<HTMLDivElement | null>;\n /** 리뷰 제출 함수 */\n onReviewSubmit: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => Promise<boolean>;\n /** 리뷰 응답 값 변경 시 호출 */\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n /** 파일 다운로드 클릭 시 호출 */\n onClickfileDownload?: (\n item: CurriculumFileDownloadContents,\n file: CurriculumFileDownloadFile\n ) => void;\n /** 과제 완료 후 저장된 값 */\n curriculumReviewAnswers: Record<string, string>;\n /** 과제 완료 전 임시 저장된 값 */\n tempCurriculumReviewAnswers: Record<string, string>;\n /** 항목 수강 완료 여부 */\n curriculumCompleteMap: Record<string, boolean>;\n /** action Button 클릭시 호출 */\n onActionButtonClick: (item: CurriculumListContents) => void;\n /** 초기 선택 인덱스 */\n initialSelectedIndex?: number;\n /** 커스텀 탭 주입값 */\n customTabs?: {\n content: React.ReactElement;\n label: string;\n value: string;\n }[];\n}\n\nconst CurriculumContext = createContext<CurriculumContextValue | undefined>(\n undefined\n);\n\nexport interface CurriculumProviderProps\n extends Pick<\n CurriculumContextValue,\n | 'customTabs'\n | 'curriculum'\n | 'onReviewSubmit'\n | 'onReviewValueChange'\n | 'onClickfileDownload'\n | 'curriculumReviewAnswers'\n | 'tempCurriculumReviewAnswers'\n | 'curriculumCompleteMap'\n | 'onActionButtonClick'\n | 'initialSelectedIndex'\n > {\n children: React.ReactNode;\n onReviewValueChange: ({\n reviewId,\n answer,\n }: {\n reviewId: string;\n answer: Record<string, string>;\n }) => void;\n\n /** 현재 화면에 표시 중인 컨텐츠 인덱스 변경 시 호출 */\n onChangeSelectedContent?: (item: CurriculumListContents) => void;\n}\n\nexport function CurriculumProvider(\n props: CurriculumProviderProps\n): React.ReactElement {\n const {\n children,\n curriculum,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onChangeSelectedContent,\n onActionButtonClick,\n initialSelectedIndex,\n customTabs,\n } = props;\n const sidebarRef = useRef<HTMLDivElement>(null);\n\n const scrollNavItem = useCallback((index: string) => {\n const element = sidebarRef.current?.querySelector(\n `[data-curriculum-item-index=\"${index}\"]`\n );\n if (element) {\n element.scrollIntoView({ behavior: 'smooth', block: 'start' });\n }\n }, []);\n\n const list = curriculum.contents.list;\n // 선택 가능한 인덱스만 추출\n const selectableIndexes = useMemo(\n () =>\n list\n .map((item, i) => (item.type !== 'sectionTitle' ? i : null))\n .filter((i): i is number => i !== null),\n [list]\n );\n // 최초 선택값: 첫 번째 선택 가능한 인덱스\n const [selectedIndexState, setSelectedIndexState] = useState<number>(\n getInitialSelectedIndex({ initialSelectedIndex, selectableIndexes })\n );\n\n // 리스트/선택 가능 인덱스가 변할 때 선택값을 자동 보정\n useEffect(() => {\n if (selectableIndexes.length === 0) {\n if (selectedIndexState !== 0) {\n setSelectedIndexState(0);\n }\n return;\n }\n\n if (!selectableIndexes.includes(selectedIndexState)) {\n setSelectedIndexState(selectableIndexes[0]);\n }\n }, [selectableIndexes, selectedIndexState]);\n\n // 선택 인덱스 보정 함수\n const setSelectedIndex = useCallback(\n (idx: number) => {\n if (selectableIndexes.includes(idx)) {\n setSelectedIndexState(idx);\n } else {\n // idx가 선택 불가면, selectableIndexes에서 가장 가까운 다음 인덱스 선택\n const next = selectableIndexes.find((i) => i > idx);\n const prev = [...selectableIndexes].reverse().find((i) => i < idx);\n if (next !== undefined) setSelectedIndexState(next);\n else if (prev !== undefined) setSelectedIndexState(prev);\n }\n },\n [selectableIndexes]\n );\n\n // 현재 선택 인덱스가 selectableIndexes 내 몇 번째인지\n const selectablePos = useMemo(\n () => selectableIndexes.indexOf(selectedIndexState),\n [selectableIndexes, selectedIndexState]\n );\n const hasPrev = selectablePos > 0;\n const hasNext = selectablePos < selectableIndexes.length - 1;\n\n const selectPrev = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let prevIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos > 0) {\n prevIndex = selectableIndexes[pos - 1];\n }\n if (cb) cb(prevIndex);\n return prevIndex;\n });\n },\n [selectableIndexes]\n );\n const selectNext = useCallback(\n (cb?: (moveIndex: number) => void) => {\n setSelectedIndexState((cur) => {\n let nextIndex = cur;\n const pos = selectableIndexes.indexOf(cur);\n if (pos < selectableIndexes.length - 1) {\n nextIndex = selectableIndexes[pos + 1];\n }\n if (cb) cb(nextIndex);\n return nextIndex;\n });\n },\n [selectableIndexes]\n );\n\n const selectedId = useMemo(\n () => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return '';\n }\n return list[selectedIndexState]?.uuid ?? '';\n },\n [list, selectedIndexState]\n );\n\n const selectedItem = useMemo(() => {\n if (selectedIndexState < 0 || selectedIndexState >= list.length) {\n return EMPTY_SELECTED_ITEM;\n }\n return list[selectedIndexState] ?? EMPTY_SELECTED_ITEM;\n }, [list, selectedIndexState]);\n\n const selectedSectionTitle = useMemo(() => {\n // selectedIndexState 이전 인덱스 중 가장 가까운 섹션 타이틀 찾기\n const prevItems = list.slice(0, selectedIndexState).reverse();\n return prevItems.find((item) => item.type === 'sectionTitle') ?? null;\n }, [list, selectedIndexState]);\n\n useEffect(() => {\n const inBounds: boolean =\n selectedIndexState >= 0 && selectedIndexState < list.length;\n if (!inBounds) return;\n\n const item: CurriculumListContents = list[selectedIndexState];\n if (item.type === 'sectionTitle') return;\n\n onChangeSelectedContent?.(item);\n }, [list, onChangeSelectedContent, selectedIndexState]);\n\n return (\n <CurriculumContext.Provider\n value={{\n curriculum,\n scrollNavItem,\n selectedIndex: selectedIndexState,\n setSelectedIndex,\n selectedId,\n hasPrev,\n hasNext,\n selectPrev,\n selectNext,\n selectedSectionTitle,\n selectedItem,\n scrollAreaRef: sidebarRef,\n onReviewSubmit,\n onReviewValueChange,\n onClickfileDownload,\n curriculumReviewAnswers,\n tempCurriculumReviewAnswers,\n curriculumCompleteMap,\n onActionButtonClick,\n customTabs,\n }}\n >\n {children}\n </CurriculumContext.Provider>\n );\n}\n\nexport function useCurriculumContext(): CurriculumContextValue {\n const ctx = useContext(CurriculumContext);\n if (!ctx)\n throw new Error(\n 'useCurriculumContext must be used within CurriculumProvider'\n );\n return ctx;\n}\n"],"mappings":"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","names":["import_react","RadixButton","import_themes","import_themes","import_clsx","import_react","import_jsx_runtime","RadixText","import_react","import_jsx_runtime","import_jsx_runtime"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import {
|
|
2
2
|
curriculum_file_download_default
|
|
3
|
-
} from "../../../chunk-
|
|
3
|
+
} from "../../../chunk-QPL7SJQM.js";
|
|
4
4
|
import "../../../chunk-WA5A2GB4.js";
|
|
5
|
-
import "../../../chunk-
|
|
5
|
+
import "../../../chunk-GR4PG6HY.js";
|
|
6
6
|
import "../../../chunk-LDBWASUA.js";
|
|
7
7
|
import "../../../chunk-25HMMI7R.js";
|
|
8
|
-
import "../../../chunk-
|
|
8
|
+
import "../../../chunk-2LCH3PDF.js";
|
|
9
9
|
import "../../../chunk-LQY4RKWI.js";
|
|
10
|
+
import "../../../chunk-VFQD57ZY.js";
|
|
10
11
|
import "../../../chunk-CRTRMMJ7.js";
|
|
11
12
|
export {
|
|
12
13
|
curriculum_file_download_default as default
|