@particle-academy/react-fancy 5.20.0 → 5.22.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/accordion-panel.cjs +8 -8
- package/dist/accordion-panel.js +2 -2
- package/dist/accordion.cjs +4 -4
- package/dist/accordion.js +2 -2
- package/dist/audio-viewer.cjs +3 -3
- package/dist/audio-viewer.js +2 -2
- package/dist/autocomplete.cjs +3 -3
- package/dist/autocomplete.js +2 -2
- package/dist/avatar.cjs +3 -3
- package/dist/avatar.js +2 -2
- package/dist/badge.cjs +3 -3
- package/dist/badge.js +2 -2
- package/dist/brand.cjs +4 -4
- package/dist/brand.js +2 -2
- package/dist/breadcrumbs.cjs +3 -3
- package/dist/breadcrumbs.js +2 -2
- package/dist/button.cjs +5 -5
- package/dist/button.js +3 -3
- package/dist/calendar.cjs +3 -3
- package/dist/calendar.js +2 -2
- package/dist/callout.cjs +3 -3
- package/dist/callout.js +2 -2
- package/dist/card.cjs +7 -7
- package/dist/card.js +2 -2
- package/dist/carousel.cjs +8 -8
- package/dist/carousel.js +2 -2
- package/dist/chart.cjs +3 -3
- package/dist/chart.js +2 -2
- package/dist/chat-drawer.cjs +4 -4
- package/dist/chat-drawer.js +3 -3
- package/dist/checkbox-group.cjs +5 -5
- package/dist/checkbox-group.js +4 -4
- package/dist/checkbox.cjs +3 -3
- package/dist/checkbox.js +2 -2
- package/dist/{chunk-ZLCVKYHY.js → chunk-25ZOOUFG.js} +3 -3
- package/dist/{chunk-ZLCVKYHY.js.map → chunk-25ZOOUFG.js.map} +1 -1
- package/dist/{chunk-UCYAHLGM.js → chunk-2LBRS6Z4.js} +3 -3
- package/dist/{chunk-UCYAHLGM.js.map → chunk-2LBRS6Z4.js.map} +1 -1
- package/dist/{chunk-E4LFD44D.js → chunk-35EN5AYE.js} +3 -3
- package/dist/{chunk-E4LFD44D.js.map → chunk-35EN5AYE.js.map} +1 -1
- package/dist/{chunk-AOOBRPTE.cjs → chunk-3EIB7RPD.cjs} +8 -8
- package/dist/{chunk-AOOBRPTE.cjs.map → chunk-3EIB7RPD.cjs.map} +1 -1
- package/dist/{chunk-GKGL7F36.js → chunk-3FG5K7A7.js} +3 -3
- package/dist/{chunk-GKGL7F36.js.map → chunk-3FG5K7A7.js.map} +1 -1
- package/dist/{chunk-WNIP443K.js → chunk-3LM47BME.js} +4 -4
- package/dist/{chunk-WNIP443K.js.map → chunk-3LM47BME.js.map} +1 -1
- package/dist/{chunk-NH7NRRII.js → chunk-4K4ECIKK.js} +3 -3
- package/dist/{chunk-NH7NRRII.js.map → chunk-4K4ECIKK.js.map} +1 -1
- package/dist/{chunk-KC6QBKKB.cjs → chunk-524TOKU3.cjs} +8 -8
- package/dist/{chunk-KC6QBKKB.cjs.map → chunk-524TOKU3.cjs.map} +1 -1
- package/dist/{chunk-6OSHAP6L.cjs → chunk-5CXJ5Z4C.cjs} +6 -6
- package/dist/{chunk-6OSHAP6L.cjs.map → chunk-5CXJ5Z4C.cjs.map} +1 -1
- package/dist/{chunk-AY3JABE3.cjs → chunk-5DSMOURR.cjs} +4 -4
- package/dist/{chunk-AY3JABE3.cjs.map → chunk-5DSMOURR.cjs.map} +1 -1
- package/dist/{chunk-VQ4M25U3.cjs → chunk-5P3PISAX.cjs} +4 -4
- package/dist/{chunk-VQ4M25U3.cjs.map → chunk-5P3PISAX.cjs.map} +1 -1
- package/dist/{chunk-P7AJAN62.js → chunk-5RLP77KK.js} +3 -3
- package/dist/{chunk-P7AJAN62.js.map → chunk-5RLP77KK.js.map} +1 -1
- package/dist/{chunk-FCAV5IFW.js → chunk-6GWOB2Z4.js} +3 -3
- package/dist/{chunk-FCAV5IFW.js.map → chunk-6GWOB2Z4.js.map} +1 -1
- package/dist/{chunk-JCOBDDHF.js → chunk-6KXAFP2T.js} +3 -3
- package/dist/{chunk-JCOBDDHF.js.map → chunk-6KXAFP2T.js.map} +1 -1
- package/dist/{chunk-E7PHL3TD.cjs → chunk-6LOV75CN.cjs} +5 -5
- package/dist/{chunk-E7PHL3TD.cjs.map → chunk-6LOV75CN.cjs.map} +1 -1
- package/dist/{chunk-CEEEENPW.js → chunk-6PF5ENWM.js} +3 -3
- package/dist/{chunk-CEEEENPW.js.map → chunk-6PF5ENWM.js.map} +1 -1
- package/dist/{chunk-2PELJ4VA.cjs → chunk-6SO2ZX3J.cjs} +15 -15
- package/dist/{chunk-2PELJ4VA.cjs.map → chunk-6SO2ZX3J.cjs.map} +1 -1
- package/dist/{chunk-AVR5P4GA.cjs → chunk-7B3HK6TY.cjs} +11 -11
- package/dist/{chunk-AVR5P4GA.cjs.map → chunk-7B3HK6TY.cjs.map} +1 -1
- package/dist/{chunk-YHXE274U.js → chunk-7CN7IHES.js} +3 -3
- package/dist/{chunk-YHXE274U.js.map → chunk-7CN7IHES.js.map} +1 -1
- package/dist/{chunk-7NLKXBZ2.cjs → chunk-7EZBMGEE.cjs} +8 -8
- package/dist/{chunk-7NLKXBZ2.cjs.map → chunk-7EZBMGEE.cjs.map} +1 -1
- package/dist/{chunk-ZFVSEO5Z.cjs → chunk-7HMEDY24.cjs} +6 -6
- package/dist/{chunk-ZFVSEO5Z.cjs.map → chunk-7HMEDY24.cjs.map} +1 -1
- package/dist/{chunk-YXC7QHNT.cjs → chunk-7VLRHXLQ.cjs} +6 -6
- package/dist/{chunk-YXC7QHNT.cjs.map → chunk-7VLRHXLQ.cjs.map} +1 -1
- package/dist/{chunk-GIDW3SUE.cjs → chunk-7Y2AENZD.cjs} +6 -6
- package/dist/{chunk-GIDW3SUE.cjs.map → chunk-7Y2AENZD.cjs.map} +1 -1
- package/dist/{chunk-ANEX75DF.cjs → chunk-AASQ6L6X.cjs} +4 -4
- package/dist/{chunk-ANEX75DF.cjs.map → chunk-AASQ6L6X.cjs.map} +1 -1
- package/dist/{chunk-ZWOEKDNI.js → chunk-AT5OG5N4.js} +3 -3
- package/dist/{chunk-ZWOEKDNI.js.map → chunk-AT5OG5N4.js.map} +1 -1
- package/dist/{chunk-TVRCOKJQ.cjs → chunk-ATJSHM6J.cjs} +4 -4
- package/dist/{chunk-TVRCOKJQ.cjs.map → chunk-ATJSHM6J.cjs.map} +1 -1
- package/dist/{chunk-A22T6DKO.cjs → chunk-AVCDGSXV.cjs} +13 -13
- package/dist/{chunk-A22T6DKO.cjs.map → chunk-AVCDGSXV.cjs.map} +1 -1
- package/dist/{chunk-MDUSUJWY.cjs → chunk-AVU4JOYM.cjs} +4 -4
- package/dist/{chunk-MDUSUJWY.cjs.map → chunk-AVU4JOYM.cjs.map} +1 -1
- package/dist/{chunk-AR2IBCX7.cjs → chunk-BZP4LOO5.cjs} +53 -53
- package/dist/{chunk-AR2IBCX7.cjs.map → chunk-BZP4LOO5.cjs.map} +1 -1
- package/dist/{chunk-HAOYXGGJ.js → chunk-CCG2L5EH.js} +3 -3
- package/dist/{chunk-HAOYXGGJ.js.map → chunk-CCG2L5EH.js.map} +1 -1
- package/dist/{chunk-Y5V5GBN4.cjs → chunk-CJVNO5YM.cjs} +6 -6
- package/dist/{chunk-Y5V5GBN4.cjs.map → chunk-CJVNO5YM.cjs.map} +1 -1
- package/dist/{chunk-PVWPZYTR.js → chunk-CK6LRROH.js} +3 -3
- package/dist/{chunk-PVWPZYTR.js.map → chunk-CK6LRROH.js.map} +1 -1
- package/dist/{chunk-LNWO23PU.cjs → chunk-COH45MGW.cjs} +7 -7
- package/dist/{chunk-LNWO23PU.cjs.map → chunk-COH45MGW.cjs.map} +1 -1
- package/dist/{chunk-EVXDG2XN.js → chunk-CRR3AMJ4.js} +3 -3
- package/dist/{chunk-EVXDG2XN.js.map → chunk-CRR3AMJ4.js.map} +1 -1
- package/dist/{chunk-BWT2L6XP.js → chunk-D7G53WOZ.js} +6 -6
- package/dist/{chunk-BWT2L6XP.js.map → chunk-D7G53WOZ.js.map} +1 -1
- package/dist/{chunk-JYKZKSZJ.js → chunk-DIHH75KD.js} +5 -5
- package/dist/{chunk-JYKZKSZJ.js.map → chunk-DIHH75KD.js.map} +1 -1
- package/dist/{chunk-ZT36VWIA.js → chunk-DKKU3VVJ.js} +5 -5
- package/dist/{chunk-ZT36VWIA.js.map → chunk-DKKU3VVJ.js.map} +1 -1
- package/dist/{chunk-PITWDKKY.js → chunk-EWRP6KCY.js} +3 -3
- package/dist/{chunk-PITWDKKY.js.map → chunk-EWRP6KCY.js.map} +1 -1
- package/dist/{chunk-HTKDPFLJ.cjs → chunk-F2VJEXN2.cjs} +16 -16
- package/dist/{chunk-HTKDPFLJ.cjs.map → chunk-F2VJEXN2.cjs.map} +1 -1
- package/dist/{chunk-DV4IMAQW.js → chunk-FA4IG5RB.js} +3 -3
- package/dist/{chunk-DV4IMAQW.js.map → chunk-FA4IG5RB.js.map} +1 -1
- package/dist/{chunk-FVV76TRF.js → chunk-FBWUXSKH.js} +3 -3
- package/dist/{chunk-FVV76TRF.js.map → chunk-FBWUXSKH.js.map} +1 -1
- package/dist/{chunk-XMBOZ73D.js → chunk-FCSR2WVS.js} +3 -3
- package/dist/{chunk-XMBOZ73D.js.map → chunk-FCSR2WVS.js.map} +1 -1
- package/dist/{chunk-3DJGPNUI.js → chunk-FERMW3YE.js} +3 -3
- package/dist/{chunk-3DJGPNUI.js.map → chunk-FERMW3YE.js.map} +1 -1
- package/dist/{chunk-M24NCWBU.js → chunk-FFWAY7F5.js} +3 -3
- package/dist/{chunk-M24NCWBU.js.map → chunk-FFWAY7F5.js.map} +1 -1
- package/dist/{chunk-SYXLPCQP.cjs → chunk-FQSSVOVQ.cjs} +4 -4
- package/dist/{chunk-SYXLPCQP.cjs.map → chunk-FQSSVOVQ.cjs.map} +1 -1
- package/dist/chunk-FWCREAIT.js +121 -0
- package/dist/chunk-FWCREAIT.js.map +1 -0
- package/dist/{chunk-RNHIDZLE.cjs → chunk-G7227RTY.cjs} +7 -7
- package/dist/{chunk-RNHIDZLE.cjs.map → chunk-G7227RTY.cjs.map} +1 -1
- package/dist/{chunk-KUKYJZIU.cjs → chunk-GBGJWAXZ.cjs} +8 -8
- package/dist/{chunk-KUKYJZIU.cjs.map → chunk-GBGJWAXZ.cjs.map} +1 -1
- package/dist/{chunk-IE4CM2SN.js → chunk-GIIGXAT4.js} +5 -5
- package/dist/{chunk-IE4CM2SN.js.map → chunk-GIIGXAT4.js.map} +1 -1
- package/dist/{chunk-SKI33QNW.js → chunk-GKEWT3DW.js} +3 -3
- package/dist/{chunk-SKI33QNW.js.map → chunk-GKEWT3DW.js.map} +1 -1
- package/dist/{chunk-X5VZRFQD.cjs → chunk-H5OPZEVQ.cjs} +5 -5
- package/dist/{chunk-X5VZRFQD.cjs.map → chunk-H5OPZEVQ.cjs.map} +1 -1
- package/dist/{chunk-CS4GQXYY.js → chunk-H6F6ZWAG.js} +3 -3
- package/dist/{chunk-CS4GQXYY.js.map → chunk-H6F6ZWAG.js.map} +1 -1
- package/dist/{chunk-T6IXZZBQ.cjs → chunk-HE3JJXIL.cjs} +4 -4
- package/dist/{chunk-T6IXZZBQ.cjs.map → chunk-HE3JJXIL.cjs.map} +1 -1
- package/dist/{chunk-ARSQY4P7.cjs → chunk-HIN6PHSE.cjs} +7 -7
- package/dist/{chunk-ARSQY4P7.cjs.map → chunk-HIN6PHSE.cjs.map} +1 -1
- package/dist/{chunk-WT72KW5M.cjs → chunk-HIOMHITU.cjs} +19 -19
- package/dist/{chunk-WT72KW5M.cjs.map → chunk-HIOMHITU.cjs.map} +1 -1
- package/dist/{chunk-B4JLRS5E.js → chunk-HOP3XXPV.js} +3 -3
- package/dist/{chunk-B4JLRS5E.js.map → chunk-HOP3XXPV.js.map} +1 -1
- package/dist/chunk-HPNIEYSJ.cjs +131 -0
- package/dist/chunk-HPNIEYSJ.cjs.map +1 -0
- package/dist/{chunk-CQWPMRYS.js → chunk-HYNED2OA.js} +5 -5
- package/dist/{chunk-CQWPMRYS.js.map → chunk-HYNED2OA.js.map} +1 -1
- package/dist/{chunk-IF5LOWUL.js → chunk-I3RPL3GE.js} +3 -3
- package/dist/{chunk-IF5LOWUL.js.map → chunk-I3RPL3GE.js.map} +1 -1
- package/dist/{chunk-6Y2QO7YV.cjs → chunk-ICT477LK.cjs} +8 -8
- package/dist/{chunk-6Y2QO7YV.cjs.map → chunk-ICT477LK.cjs.map} +1 -1
- package/dist/{chunk-VBZZ4CMM.cjs → chunk-ISPCXIJZ.cjs} +5 -5
- package/dist/{chunk-VBZZ4CMM.cjs.map → chunk-ISPCXIJZ.cjs.map} +1 -1
- package/dist/{chunk-M7EEQPE7.js → chunk-IVRYSSM7.js} +3 -3
- package/dist/{chunk-M7EEQPE7.js.map → chunk-IVRYSSM7.js.map} +1 -1
- package/dist/{chunk-D4WM23Y4.js → chunk-IWXP2YUP.js} +3 -3
- package/dist/{chunk-D4WM23Y4.js.map → chunk-IWXP2YUP.js.map} +1 -1
- package/dist/{chunk-6GC5DMOK.cjs → chunk-JFOORUUD.cjs} +8 -8
- package/dist/{chunk-6GC5DMOK.cjs.map → chunk-JFOORUUD.cjs.map} +1 -1
- package/dist/{chunk-MZIU27UY.js → chunk-JICO4LTT.js} +3 -3
- package/dist/{chunk-MZIU27UY.js.map → chunk-JICO4LTT.js.map} +1 -1
- package/dist/{chunk-ZNTEM7F2.js → chunk-JJBOKZWV.js} +3 -3
- package/dist/{chunk-ZNTEM7F2.js.map → chunk-JJBOKZWV.js.map} +1 -1
- package/dist/{chunk-FO4GCX67.cjs → chunk-JM2H642B.cjs} +9 -9
- package/dist/{chunk-FO4GCX67.cjs.map → chunk-JM2H642B.cjs.map} +1 -1
- package/dist/{chunk-7ZDIQOFH.cjs → chunk-JV6RDIA6.cjs} +13 -13
- package/dist/{chunk-7ZDIQOFH.cjs.map → chunk-JV6RDIA6.cjs.map} +1 -1
- package/dist/{chunk-K7JGOQJG.js → chunk-KKWNKBKR.js} +3 -3
- package/dist/{chunk-K7JGOQJG.js.map → chunk-KKWNKBKR.js.map} +1 -1
- package/dist/{chunk-QWSTG5MF.js → chunk-KO2HLNBB.js} +7 -7
- package/dist/{chunk-QWSTG5MF.js.map → chunk-KO2HLNBB.js.map} +1 -1
- package/dist/{chunk-5QL7XT3N.js → chunk-KQQA7JBC.js} +4 -4
- package/dist/{chunk-5QL7XT3N.js.map → chunk-KQQA7JBC.js.map} +1 -1
- package/dist/{chunk-DWRMC2FN.cjs → chunk-LMPPAQKP.cjs} +7 -7
- package/dist/{chunk-DWRMC2FN.cjs.map → chunk-LMPPAQKP.cjs.map} +1 -1
- package/dist/{chunk-JU5W65N3.cjs → chunk-LNFMT2CE.cjs} +18 -18
- package/dist/{chunk-JU5W65N3.cjs.map → chunk-LNFMT2CE.cjs.map} +1 -1
- package/dist/{chunk-M2S5GCXY.cjs → chunk-LY7PZEF4.cjs} +11 -11
- package/dist/{chunk-M2S5GCXY.cjs.map → chunk-LY7PZEF4.cjs.map} +1 -1
- package/dist/{chunk-AKIUDPJU.js → chunk-LYHQ4VBR.js} +3 -3
- package/dist/{chunk-AKIUDPJU.js.map → chunk-LYHQ4VBR.js.map} +1 -1
- package/dist/{chunk-MKFWFZVX.js → chunk-M6AONUIX.js} +3 -3
- package/dist/{chunk-MKFWFZVX.js.map → chunk-M6AONUIX.js.map} +1 -1
- package/dist/{chunk-KKYP5R3G.cjs → chunk-MCCE5RDB.cjs} +12 -12
- package/dist/{chunk-KKYP5R3G.cjs.map → chunk-MCCE5RDB.cjs.map} +1 -1
- package/dist/{chunk-X36ZGYTF.js → chunk-MEUR7C6X.js} +5 -5
- package/dist/{chunk-X36ZGYTF.js.map → chunk-MEUR7C6X.js.map} +1 -1
- package/dist/{chunk-RM4QWJS3.js → chunk-MIUSTEIV.js} +3 -3
- package/dist/{chunk-RM4QWJS3.js.map → chunk-MIUSTEIV.js.map} +1 -1
- package/dist/chunk-MMW2JGKZ.js +29 -0
- package/dist/chunk-MMW2JGKZ.js.map +1 -0
- package/dist/{chunk-RID7CYGD.js → chunk-MRRKDRZU.js} +5 -5
- package/dist/{chunk-RID7CYGD.js.map → chunk-MRRKDRZU.js.map} +1 -1
- package/dist/{chunk-A3CNYKT3.js → chunk-MUCXXYDN.js} +3 -3
- package/dist/{chunk-A3CNYKT3.js.map → chunk-MUCXXYDN.js.map} +1 -1
- package/dist/{chunk-CZZH45GQ.cjs → chunk-N4VHOTMK.cjs} +9 -9
- package/dist/{chunk-CZZH45GQ.cjs.map → chunk-N4VHOTMK.cjs.map} +1 -1
- package/dist/{chunk-6FBFE66M.cjs → chunk-N6K2CTSU.cjs} +5 -5
- package/dist/{chunk-6FBFE66M.cjs.map → chunk-N6K2CTSU.cjs.map} +1 -1
- package/dist/{chunk-DJ3YM72H.cjs → chunk-ND5D7GJB.cjs} +4 -4
- package/dist/{chunk-DJ3YM72H.cjs.map → chunk-ND5D7GJB.cjs.map} +1 -1
- package/dist/{chunk-YCZN4FWI.js → chunk-NDUEPDNS.js} +3 -3
- package/dist/{chunk-YCZN4FWI.js.map → chunk-NDUEPDNS.js.map} +1 -1
- package/dist/{chunk-6FYMMQ3G.cjs → chunk-NHTSQRAF.cjs} +10 -10
- package/dist/{chunk-6FYMMQ3G.cjs.map → chunk-NHTSQRAF.cjs.map} +1 -1
- package/dist/{chunk-PPLR2DNC.cjs → chunk-NP7SU2DF.cjs} +5 -5
- package/dist/{chunk-PPLR2DNC.cjs.map → chunk-NP7SU2DF.cjs.map} +1 -1
- package/dist/{chunk-POZZY3D5.cjs → chunk-NR346SKH.cjs} +5 -5
- package/dist/{chunk-POZZY3D5.cjs.map → chunk-NR346SKH.cjs.map} +1 -1
- package/dist/{chunk-TECFGOV2.js → chunk-NTMHP7FS.js} +3 -3
- package/dist/{chunk-TECFGOV2.js.map → chunk-NTMHP7FS.js.map} +1 -1
- package/dist/{chunk-7XDKIZQE.js → chunk-NUPQJ5SJ.js} +3 -3
- package/dist/{chunk-7XDKIZQE.js.map → chunk-NUPQJ5SJ.js.map} +1 -1
- package/dist/{chunk-M645OITZ.js → chunk-NYDR2VSA.js} +3 -3
- package/dist/{chunk-M645OITZ.js.map → chunk-NYDR2VSA.js.map} +1 -1
- package/dist/{chunk-3SQ34IQC.cjs → chunk-NZFJ4XMJ.cjs} +10 -10
- package/dist/{chunk-3SQ34IQC.cjs.map → chunk-NZFJ4XMJ.cjs.map} +1 -1
- package/dist/{chunk-YT42J4VQ.js → chunk-O6E2WC3J.js} +3 -3
- package/dist/{chunk-YT42J4VQ.js.map → chunk-O6E2WC3J.js.map} +1 -1
- package/dist/{chunk-5LHG7HEY.cjs → chunk-O6GTY53I.cjs} +4 -4
- package/dist/{chunk-5LHG7HEY.cjs.map → chunk-O6GTY53I.cjs.map} +1 -1
- package/dist/{chunk-ESKVRRVA.js → chunk-OFHO5SXA.js} +3 -3
- package/dist/{chunk-ESKVRRVA.js.map → chunk-OFHO5SXA.js.map} +1 -1
- package/dist/{chunk-SCPHSBBU.cjs → chunk-OGEE23SP.cjs} +4 -4
- package/dist/{chunk-SCPHSBBU.cjs.map → chunk-OGEE23SP.cjs.map} +1 -1
- package/dist/{chunk-RR7BWUVP.cjs → chunk-OS2QC3NE.cjs} +6 -6
- package/dist/{chunk-RR7BWUVP.cjs.map → chunk-OS2QC3NE.cjs.map} +1 -1
- package/dist/{chunk-F6SCZCJE.js → chunk-P7F32HIH.js} +3 -3
- package/dist/{chunk-F6SCZCJE.js.map → chunk-P7F32HIH.js.map} +1 -1
- package/dist/{chunk-WXADO5TS.cjs → chunk-PAESRUUH.cjs} +10 -10
- package/dist/{chunk-WXADO5TS.cjs.map → chunk-PAESRUUH.cjs.map} +1 -1
- package/dist/{chunk-PH3WGR5P.cjs → chunk-PFEFKLUV.cjs} +8 -8
- package/dist/{chunk-PH3WGR5P.cjs.map → chunk-PFEFKLUV.cjs.map} +1 -1
- package/dist/{chunk-5HOQ2PHR.cjs → chunk-PV5WDIGM.cjs} +9 -9
- package/dist/{chunk-5HOQ2PHR.cjs.map → chunk-PV5WDIGM.cjs.map} +1 -1
- package/dist/{chunk-DDRHCFUE.js → chunk-PVQBXEV3.js} +6 -6
- package/dist/{chunk-DDRHCFUE.js.map → chunk-PVQBXEV3.js.map} +1 -1
- package/dist/{chunk-D7NAXQ2N.js → chunk-PWEZCMIY.js} +3 -3
- package/dist/{chunk-D7NAXQ2N.js.map → chunk-PWEZCMIY.js.map} +1 -1
- package/dist/{chunk-LYFUPTLG.cjs → chunk-PWLBHNOA.cjs} +14 -14
- package/dist/{chunk-LYFUPTLG.cjs.map → chunk-PWLBHNOA.cjs.map} +1 -1
- package/dist/{chunk-BPBI3WWQ.cjs → chunk-QAFAPHAF.cjs} +8 -8
- package/dist/{chunk-BPBI3WWQ.cjs.map → chunk-QAFAPHAF.cjs.map} +1 -1
- package/dist/{chunk-AC7M7JDO.cjs → chunk-QDVDBUJM.cjs} +6 -6
- package/dist/{chunk-AC7M7JDO.cjs.map → chunk-QDVDBUJM.cjs.map} +1 -1
- package/dist/{chunk-2ICXWLKS.js → chunk-QJKWBU3I.js} +3 -3
- package/dist/{chunk-2ICXWLKS.js.map → chunk-QJKWBU3I.js.map} +1 -1
- package/dist/{chunk-JXIBUIEY.cjs → chunk-QKFOJKVE.cjs} +4 -4
- package/dist/{chunk-JXIBUIEY.cjs.map → chunk-QKFOJKVE.cjs.map} +1 -1
- package/dist/{chunk-NNSNANNY.cjs → chunk-QOGKO6JH.cjs} +5 -5
- package/dist/{chunk-NNSNANNY.cjs.map → chunk-QOGKO6JH.cjs.map} +1 -1
- package/dist/{chunk-B3HVWXIQ.cjs → chunk-QSFTWIUH.cjs} +8 -8
- package/dist/{chunk-B3HVWXIQ.cjs.map → chunk-QSFTWIUH.cjs.map} +1 -1
- package/dist/{chunk-3MHVFEIP.cjs → chunk-QW66UHWO.cjs} +4 -4
- package/dist/{chunk-3MHVFEIP.cjs.map → chunk-QW66UHWO.cjs.map} +1 -1
- package/dist/{chunk-IGYIMS6J.js → chunk-RA2VOQ46.js} +3 -3
- package/dist/{chunk-IGYIMS6J.js.map → chunk-RA2VOQ46.js.map} +1 -1
- package/dist/{chunk-HG6XUJOT.js → chunk-RFLPFQFF.js} +3 -3
- package/dist/{chunk-HG6XUJOT.js.map → chunk-RFLPFQFF.js.map} +1 -1
- package/dist/{chunk-KICZTIZL.cjs → chunk-RKG2Q2HT.cjs} +7 -7
- package/dist/{chunk-KICZTIZL.cjs.map → chunk-RKG2Q2HT.cjs.map} +1 -1
- package/dist/{chunk-PRJSEZ5F.cjs → chunk-RN2EW7CK.cjs} +12 -12
- package/dist/{chunk-PRJSEZ5F.cjs.map → chunk-RN2EW7CK.cjs.map} +1 -1
- package/dist/{chunk-EERAEPQO.cjs → chunk-RPVCMW64.cjs} +12 -12
- package/dist/{chunk-EERAEPQO.cjs.map → chunk-RPVCMW64.cjs.map} +1 -1
- package/dist/{chunk-ATFXU6R6.js → chunk-RSLZL6VP.js} +3 -3
- package/dist/{chunk-ATFXU6R6.js.map → chunk-RSLZL6VP.js.map} +1 -1
- package/dist/{chunk-HNITJ2UR.js → chunk-SAF5642F.js} +4 -4
- package/dist/{chunk-HNITJ2UR.js.map → chunk-SAF5642F.js.map} +1 -1
- package/dist/{chunk-4UA45GB4.js → chunk-SG3L4322.js} +6 -6
- package/dist/{chunk-4UA45GB4.js.map → chunk-SG3L4322.js.map} +1 -1
- package/dist/{chunk-PG3ILQIW.js → chunk-SLJD25VV.js} +3 -3
- package/dist/{chunk-PG3ILQIW.js.map → chunk-SLJD25VV.js.map} +1 -1
- package/dist/{chunk-EQGY3QDJ.cjs → chunk-SO4NNG26.cjs} +7 -7
- package/dist/{chunk-EQGY3QDJ.cjs.map → chunk-SO4NNG26.cjs.map} +1 -1
- package/dist/{chunk-DZD2RJVD.js → chunk-SOYORSLZ.js} +3 -3
- package/dist/{chunk-DZD2RJVD.js.map → chunk-SOYORSLZ.js.map} +1 -1
- package/dist/{chunk-MGZE2QEM.cjs → chunk-SUCBR6L5.cjs} +6 -6
- package/dist/{chunk-MGZE2QEM.cjs.map → chunk-SUCBR6L5.cjs.map} +1 -1
- package/dist/{chunk-NLJGNPNN.js → chunk-SWBF2BXA.js} +3 -3
- package/dist/{chunk-NLJGNPNN.js.map → chunk-SWBF2BXA.js.map} +1 -1
- package/dist/{chunk-6H6OYLMJ.js → chunk-SX4CSO6C.js} +3 -3
- package/dist/{chunk-6H6OYLMJ.js.map → chunk-SX4CSO6C.js.map} +1 -1
- package/dist/{chunk-ORFHF6PT.cjs → chunk-T5OCRKPD.cjs} +6 -6
- package/dist/{chunk-ORFHF6PT.cjs.map → chunk-T5OCRKPD.cjs.map} +1 -1
- package/dist/{chunk-AGDW5ENV.js → chunk-TB35HNBE.js} +3 -3
- package/dist/{chunk-AGDW5ENV.js.map → chunk-TB35HNBE.js.map} +1 -1
- package/dist/{chunk-RES2GOQQ.js → chunk-TDDWWAM5.js} +3 -3
- package/dist/{chunk-RES2GOQQ.js.map → chunk-TDDWWAM5.js.map} +1 -1
- package/dist/{chunk-6L6LI2RL.cjs → chunk-TGNQ5Y6F.cjs} +4 -4
- package/dist/{chunk-6L6LI2RL.cjs.map → chunk-TGNQ5Y6F.cjs.map} +1 -1
- package/dist/{chunk-I462NM2A.cjs → chunk-TH7VP4CL.cjs} +5 -5
- package/dist/{chunk-I462NM2A.cjs.map → chunk-TH7VP4CL.cjs.map} +1 -1
- package/dist/{chunk-PYRMH34E.js → chunk-TJJ63UJV.js} +3 -3
- package/dist/{chunk-PYRMH34E.js.map → chunk-TJJ63UJV.js.map} +1 -1
- package/dist/{chunk-I25RP6AM.js → chunk-TQFQUNV3.js} +3 -3
- package/dist/{chunk-I25RP6AM.js.map → chunk-TQFQUNV3.js.map} +1 -1
- package/dist/{chunk-RMFLRBUC.cjs → chunk-TWSPVX6X.cjs} +8 -8
- package/dist/{chunk-RMFLRBUC.cjs.map → chunk-TWSPVX6X.cjs.map} +1 -1
- package/dist/{chunk-UPVWN72I.cjs → chunk-TXCAIL5X.cjs} +7 -7
- package/dist/{chunk-UPVWN72I.cjs.map → chunk-TXCAIL5X.cjs.map} +1 -1
- package/dist/{chunk-LZL2KD4P.cjs → chunk-TZHK3LEW.cjs} +9 -9
- package/dist/{chunk-LZL2KD4P.cjs.map → chunk-TZHK3LEW.cjs.map} +1 -1
- package/dist/{chunk-74ZN5CNE.js → chunk-UIJR26YW.js} +3 -3
- package/dist/{chunk-74ZN5CNE.js.map → chunk-UIJR26YW.js.map} +1 -1
- package/dist/{chunk-CFBK5RIZ.js → chunk-UKUNWGL5.js} +3 -3
- package/dist/{chunk-CFBK5RIZ.js.map → chunk-UKUNWGL5.js.map} +1 -1
- package/dist/{chunk-IGU5YXRV.cjs → chunk-UMJ3JMDT.cjs} +9 -9
- package/dist/{chunk-IGU5YXRV.cjs.map → chunk-UMJ3JMDT.cjs.map} +1 -1
- package/dist/{chunk-JHEM6IGT.cjs → chunk-V35A6B7A.cjs} +4 -4
- package/dist/{chunk-JHEM6IGT.cjs.map → chunk-V35A6B7A.cjs.map} +1 -1
- package/dist/{chunk-PRDWJ4AR.js → chunk-VFIVF5YO.js} +3 -3
- package/dist/{chunk-PRDWJ4AR.js.map → chunk-VFIVF5YO.js.map} +1 -1
- package/dist/{chunk-Y6DK4CGY.js → chunk-VGAOLXTK.js} +14 -14
- package/dist/{chunk-Y6DK4CGY.js.map → chunk-VGAOLXTK.js.map} +1 -1
- package/dist/{chunk-IJ4I55QQ.cjs → chunk-VGBZWDMM.cjs} +4 -4
- package/dist/{chunk-IJ4I55QQ.cjs.map → chunk-VGBZWDMM.cjs.map} +1 -1
- package/dist/{chunk-DBJWHDWP.js → chunk-VKMPVFQK.js} +3 -3
- package/dist/{chunk-DBJWHDWP.js.map → chunk-VKMPVFQK.js.map} +1 -1
- package/dist/{chunk-5OC6DUYT.js → chunk-VME5743O.js} +3 -3
- package/dist/{chunk-5OC6DUYT.js.map → chunk-VME5743O.js.map} +1 -1
- package/dist/{chunk-YVDAXYHP.js → chunk-VOGI7GX3.js} +3 -3
- package/dist/{chunk-YVDAXYHP.js.map → chunk-VOGI7GX3.js.map} +1 -1
- package/dist/{chunk-R55HE5C5.js → chunk-VVL5LMLW.js} +3 -3
- package/dist/{chunk-R55HE5C5.js.map → chunk-VVL5LMLW.js.map} +1 -1
- package/dist/{chunk-2CYRAKWI.cjs → chunk-VW6WUXFR.cjs} +11 -11
- package/dist/{chunk-2CYRAKWI.cjs.map → chunk-VW6WUXFR.cjs.map} +1 -1
- package/dist/{chunk-6RYZ2MOE.js → chunk-VYQI4R6S.js} +4 -4
- package/dist/{chunk-6RYZ2MOE.js.map → chunk-VYQI4R6S.js.map} +1 -1
- package/dist/{chunk-HBFVOHQC.cjs → chunk-WCWZADR2.cjs} +7 -7
- package/dist/{chunk-HBFVOHQC.cjs.map → chunk-WCWZADR2.cjs.map} +1 -1
- package/dist/{chunk-IXHZVFHX.cjs → chunk-WKAEAGMT.cjs} +4 -4
- package/dist/{chunk-IXHZVFHX.cjs.map → chunk-WKAEAGMT.cjs.map} +1 -1
- package/dist/{chunk-PBXYU4EV.cjs → chunk-WKNVZUWZ.cjs} +5 -5
- package/dist/{chunk-PBXYU4EV.cjs.map → chunk-WKNVZUWZ.cjs.map} +1 -1
- package/dist/{chunk-6BW5BQMN.cjs → chunk-XKDW6B7X.cjs} +4 -4
- package/dist/{chunk-6BW5BQMN.cjs.map → chunk-XKDW6B7X.cjs.map} +1 -1
- package/dist/{chunk-23CLGUMT.cjs → chunk-XLFGWNW4.cjs} +4 -4
- package/dist/{chunk-23CLGUMT.cjs.map → chunk-XLFGWNW4.cjs.map} +1 -1
- package/dist/{chunk-PJ4TQ6YO.js → chunk-XLVYW5LK.js} +5 -5
- package/dist/{chunk-PJ4TQ6YO.js.map → chunk-XLVYW5LK.js.map} +1 -1
- package/dist/{chunk-MPDLL4X3.cjs → chunk-XQNYFXBY.cjs} +8 -8
- package/dist/{chunk-MPDLL4X3.cjs.map → chunk-XQNYFXBY.cjs.map} +1 -1
- package/dist/{chunk-I2JXK25I.js → chunk-XXBW4EUO.js} +3 -3
- package/dist/{chunk-I2JXK25I.js.map → chunk-XXBW4EUO.js.map} +1 -1
- package/dist/{chunk-RA3P63XW.cjs → chunk-Y3T7WMT6.cjs} +4 -4
- package/dist/{chunk-RA3P63XW.cjs.map → chunk-Y3T7WMT6.cjs.map} +1 -1
- package/dist/{chunk-LPQVXTKV.js → chunk-Y4UPKJN5.js} +3 -3
- package/dist/{chunk-LPQVXTKV.js.map → chunk-Y4UPKJN5.js.map} +1 -1
- package/dist/{chunk-47TFRODY.cjs → chunk-YAJYIRQL.cjs} +4 -4
- package/dist/{chunk-47TFRODY.cjs.map → chunk-YAJYIRQL.cjs.map} +1 -1
- package/dist/{chunk-DTPGJNOI.js → chunk-YCV43A7D.js} +3 -3
- package/dist/{chunk-DTPGJNOI.js.map → chunk-YCV43A7D.js.map} +1 -1
- package/dist/{chunk-YT6N44Z3.js → chunk-YF2EHBTV.js} +3 -3
- package/dist/{chunk-YT6N44Z3.js.map → chunk-YF2EHBTV.js.map} +1 -1
- package/dist/{chunk-4CM2VMLR.js → chunk-YLDYGT5O.js} +3 -3
- package/dist/{chunk-4CM2VMLR.js.map → chunk-YLDYGT5O.js.map} +1 -1
- package/dist/{chunk-JIYP73OJ.js → chunk-YQJWD53X.js} +3 -3
- package/dist/{chunk-JIYP73OJ.js.map → chunk-YQJWD53X.js.map} +1 -1
- package/dist/{chunk-O4MKOSU2.js → chunk-YTMQ2K64.js} +3 -3
- package/dist/{chunk-O4MKOSU2.js.map → chunk-YTMQ2K64.js.map} +1 -1
- package/dist/{chunk-IF25CE6S.cjs → chunk-YTXBU6QC.cjs} +6 -6
- package/dist/{chunk-IF25CE6S.cjs.map → chunk-YTXBU6QC.cjs.map} +1 -1
- package/dist/{chunk-F6NEPU67.cjs → chunk-Z43BI7CQ.cjs} +10 -10
- package/dist/{chunk-F6NEPU67.cjs.map → chunk-Z43BI7CQ.cjs.map} +1 -1
- package/dist/{chunk-BEGDL2CD.js → chunk-ZI7JP3TN.js} +3 -3
- package/dist/{chunk-BEGDL2CD.js.map → chunk-ZI7JP3TN.js.map} +1 -1
- package/dist/{chunk-3F66SAE7.js → chunk-ZKFFHIEW.js} +3 -3
- package/dist/{chunk-3F66SAE7.js.map → chunk-ZKFFHIEW.js.map} +1 -1
- package/dist/{chunk-QFFC2DKK.js → chunk-ZLWCZV7R.js} +3 -3
- package/dist/{chunk-QFFC2DKK.js.map → chunk-ZLWCZV7R.js.map} +1 -1
- package/dist/{chunk-BWTFK2GV.cjs → chunk-ZMD3PIYF.cjs} +12 -12
- package/dist/{chunk-BWTFK2GV.cjs.map → chunk-ZMD3PIYF.cjs.map} +1 -1
- package/dist/{chunk-5I4PR2KV.cjs → chunk-ZPHHKIFV.cjs} +10 -10
- package/dist/{chunk-5I4PR2KV.cjs.map → chunk-ZPHHKIFV.cjs.map} +1 -1
- package/dist/{chunk-JPTWZ3RF.cjs → chunk-ZTC3EQFZ.cjs} +8 -8
- package/dist/{chunk-JPTWZ3RF.cjs.map → chunk-ZTC3EQFZ.cjs.map} +1 -1
- package/dist/chunk-ZU5Q77OT.cjs +31 -0
- package/dist/chunk-ZU5Q77OT.cjs.map +1 -0
- package/dist/{chunk-ORPYY2MO.cjs → chunk-ZVDW2VX5.cjs} +4 -4
- package/dist/{chunk-ORPYY2MO.cjs.map → chunk-ZVDW2VX5.cjs.map} +1 -1
- package/dist/{chunk-4DQ6HX27.cjs → chunk-ZVRVOKXH.cjs} +7 -7
- package/dist/{chunk-4DQ6HX27.cjs.map → chunk-ZVRVOKXH.cjs.map} +1 -1
- package/dist/code-view.cjs +3 -3
- package/dist/code-view.js +2 -2
- package/dist/color-picker.cjs +3 -3
- package/dist/color-picker.js +2 -2
- package/dist/command.cjs +4 -4
- package/dist/command.js +2 -2
- package/dist/composer.cjs +3 -3
- package/dist/composer.js +2 -2
- package/dist/container.cjs +3 -3
- package/dist/container.js +2 -2
- package/dist/content-renderer.cjs +5 -5
- package/dist/content-renderer.js +2 -2
- package/dist/context-menu.cjs +4 -4
- package/dist/context-menu.js +2 -2
- package/dist/date-picker.cjs +5 -5
- package/dist/date-picker.js +4 -4
- package/dist/drawer.cjs +4 -4
- package/dist/drawer.js +2 -2
- package/dist/dropdown.cjs +4 -4
- package/dist/dropdown.js +2 -2
- package/dist/editor.cjs +7 -7
- package/dist/editor.js +5 -5
- package/dist/emoji-select.cjs +3 -3
- package/dist/emoji-select.js +2 -2
- package/dist/emoji.cjs +3 -3
- package/dist/emoji.js +2 -2
- package/dist/eyebrow.cjs +3 -3
- package/dist/eyebrow.js +2 -2
- package/dist/faux-client.cjs +3 -3
- package/dist/faux-client.js +2 -2
- package/dist/field.cjs +3 -3
- package/dist/field.js +2 -2
- package/dist/file-browser.cjs +6 -6
- package/dist/file-browser.js +2 -2
- package/dist/file-upload.cjs +4 -4
- package/dist/file-upload.js +2 -2
- package/dist/grid.cjs +3 -3
- package/dist/grid.js +2 -2
- package/dist/heading.cjs +3 -3
- package/dist/heading.js +2 -2
- package/dist/icon.cjs +8 -8
- package/dist/icon.js +2 -2
- package/dist/image-viewer.cjs +3 -3
- package/dist/image-viewer.js +2 -2
- package/dist/index-list.cjs +3 -3
- package/dist/index-list.js +2 -2
- package/dist/index.cjs +251 -223
- package/dist/index.d.cts +79 -2
- package/dist/index.d.ts +79 -2
- package/dist/index.js +88 -88
- package/dist/input.cjs +6 -6
- package/dist/input.js +5 -5
- package/dist/inputs.cjs +26 -26
- package/dist/inputs.js +14 -14
- package/dist/json-editor.cjs +27 -27
- package/dist/json-editor.js +16 -16
- package/dist/kanban.cjs +4 -4
- package/dist/kanban.js +2 -2
- package/dist/kbd.cjs +3 -3
- package/dist/kbd.js +2 -2
- package/dist/magic-wand.cjs +10 -10
- package/dist/magic-wand.js +9 -9
- package/dist/marquee.cjs +3 -3
- package/dist/marquee.js +2 -2
- package/dist/media-viewer.cjs +7 -7
- package/dist/media-viewer.js +6 -6
- package/dist/menu.cjs +4 -4
- package/dist/menu.js +2 -2
- package/dist/mobile-menu.cjs +5 -5
- package/dist/mobile-menu.js +3 -3
- package/dist/modal.cjs +4 -4
- package/dist/modal.js +2 -2
- package/dist/mode.cjs +3 -3
- package/dist/mode.js +2 -2
- package/dist/multi-switch.cjs +5 -5
- package/dist/multi-switch.js +4 -4
- package/dist/navbar.cjs +4 -4
- package/dist/navbar.js +2 -2
- package/dist/otp-input.cjs +3 -3
- package/dist/otp-input.js +2 -2
- package/dist/pagination.cjs +3 -3
- package/dist/pagination.js +2 -2
- package/dist/pdf-viewer.cjs +3 -3
- package/dist/pdf-viewer.js +2 -2
- package/dist/pillbox.cjs +3 -3
- package/dist/pillbox.js +2 -2
- package/dist/popover.cjs +4 -4
- package/dist/popover.js +2 -2
- package/dist/profile.cjs +4 -4
- package/dist/profile.js +3 -3
- package/dist/progress.cjs +3 -3
- package/dist/progress.js +2 -2
- package/dist/prompt-input.cjs +6 -6
- package/dist/prompt-input.js +5 -5
- package/dist/pull-quote.cjs +3 -3
- package/dist/pull-quote.js +2 -2
- package/dist/radio-group.cjs +5 -5
- package/dist/radio-group.js +4 -4
- package/dist/reason-tag.cjs +6 -6
- package/dist/reason-tag.js +5 -5
- package/dist/section.cjs +3 -3
- package/dist/section.js +2 -2
- package/dist/select.cjs +6 -6
- package/dist/select.js +5 -5
- package/dist/separator.cjs +3 -3
- package/dist/separator.js +2 -2
- package/dist/sidebar.cjs +5 -5
- package/dist/sidebar.js +3 -3
- package/dist/skeleton.cjs +3 -3
- package/dist/skeleton.js +2 -2
- package/dist/slider.cjs +5 -5
- package/dist/slider.js +4 -4
- package/dist/stat-list.cjs +3 -3
- package/dist/stat-list.js +2 -2
- package/dist/stat.cjs +4 -4
- package/dist/stat.js +2 -2
- package/dist/sticky-note.cjs +3 -3
- package/dist/sticky-note.js +2 -2
- package/dist/switch.cjs +3 -3
- package/dist/switch.js +2 -2
- package/dist/table.cjs +12 -12
- package/dist/table.js +2 -2
- package/dist/tabs.cjs +4 -4
- package/dist/tabs.js +2 -2
- package/dist/text.cjs +3 -3
- package/dist/text.js +2 -2
- package/dist/textarea.cjs +6 -6
- package/dist/textarea.js +5 -5
- package/dist/time-grid.cjs +3 -3
- package/dist/time-grid.js +2 -2
- package/dist/time-picker.cjs +3 -3
- package/dist/time-picker.js +2 -2
- package/dist/timeline.cjs +5 -5
- package/dist/timeline.js +2 -2
- package/dist/toast.cjs +4 -4
- package/dist/toast.js +2 -2
- package/dist/tooltip.cjs +3 -3
- package/dist/tooltip.js +2 -2
- package/dist/tree-nav.cjs +4 -4
- package/dist/tree-nav.js +2 -2
- package/dist/video-viewer.cjs +3 -3
- package/dist/video-viewer.js +2 -2
- package/package.json +2 -3
- package/dist/chunk-3Z6ALUWP.cjs +0 -13
- package/dist/chunk-3Z6ALUWP.cjs.map +0 -1
- package/dist/chunk-DSUHZO6T.js +0 -11
- package/dist/chunk-DSUHZO6T.js.map +0 -1
- package/dist/chunk-G34OBTU3.cjs +0 -27
- package/dist/chunk-G34OBTU3.cjs.map +0 -1
- package/dist/chunk-RNPFSVFN.js +0 -24
- package/dist/chunk-RNPFSVFN.js.map +0 -1
|
@@ -2,7 +2,7 @@ import { dirtyRingClasses } from './chunk-GFYSELJF.js';
|
|
|
2
2
|
import { useInlineEdit } from './chunk-OL53XYHF.js';
|
|
3
3
|
import { useFieldMode } from './chunk-NRXK42LO.js';
|
|
4
4
|
import { useControllableState } from './chunk-6FQGMVF2.js';
|
|
5
|
-
import { cn } from './chunk-
|
|
5
|
+
import { cn } from './chunk-MMW2JGKZ.js';
|
|
6
6
|
import { forwardRef, useId, useRef, useEffect } from 'react';
|
|
7
7
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
8
8
|
|
|
@@ -127,5 +127,5 @@ var Checkbox = forwardRef(
|
|
|
127
127
|
Checkbox.displayName = "Checkbox";
|
|
128
128
|
|
|
129
129
|
export { Checkbox };
|
|
130
|
-
//# sourceMappingURL=chunk-
|
|
131
|
-
//# sourceMappingURL=chunk-
|
|
130
|
+
//# sourceMappingURL=chunk-H6F6ZWAG.js.map
|
|
131
|
+
//# sourceMappingURL=chunk-H6F6ZWAG.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/inputs/Checkbox/Checkbox.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/inputs/Checkbox/Checkbox.tsx"],"names":[],"mappings":";;;;;;;;AAQO,IAAM,QAAA,GAAW,UAAA;AAAA,EACtB,CACE;AAAA,IACE,IAAA,GAAO,IAAA;AAAA,IACP,KAAA;AAAA,IACA,KAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,QAAA;AAAA,IACA,QAAA;AAAA,IACA,SAAA;AAAA,IACA,EAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA,EAAS,iBAAA;AAAA,IACT,cAAA,GAAiB,KAAA;AAAA,IACjB,eAAA;AAAA,IACA,aAAA;AAAA,IACA,IAAA;AAAA,IACA,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,aAAa,EAAA,IAAM,MAAA;AACzB,IAAA,MAAM,WAAA,GAAc,OAAgC,IAAI,CAAA;AACxD,IAAA,MAAM,YAAA,GAAe,aAAa,IAAI,CAAA;AACtC,IAAA,MAAM,EAAE,aAAa,WAAA,EAAa,SAAA,EAAW,UAAS,GAAI,aAAA,CAAc,cAAc,QAAQ,CAAA;AAC9F,IAAA,MAAM,CAAC,OAAA,EAAS,UAAU,CAAA,GAAI,oBAAA;AAAA,MAC5B,iBAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACF;AAEA,IAAA,SAAA,CAAU,MAAM;AACd,MAAA,MAAM,KAAK,WAAA,CAAY,OAAA;AACvB,MAAA,IAAI,EAAA,EAAI;AACN,QAAA,EAAA,CAAG,gBAAgB,aAAA,IAAiB,KAAA;AAAA,MACtC;AAAA,IACF,CAAA,EAAG,CAAC,aAAa,CAAC,CAAA;AAElB,IAAA,MAAM,WAAA,GAAc;AAAA,MAClB,EAAA,EAAI,aAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,mBAAA;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI;AAAA,MACJ,IAAI,CAAA;AAEN,IAAA,MAAM,KAAA,GAAQ,aAAA,GAAgB,QAAA,GAAM,OAAA,GAAU,QAAA,GAAM,QAAA;AAEpD,IAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAK,GAAG,IAAA,EAAM,2BAAA,EAA0B,IAAG,SAAA,EAAW,EAAA,CAAG,wBAAA,EAA0B,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,MAAA,CAAC,WAAA,mBACA,GAAA;AAAA,QAAC,MAAA;AAAA,QAAA;AAAA,UACC,0BAAA,EAAyB,EAAA;AAAA,UACzB,WAAA,EAAU,MAAA;AAAA,UACV,IAAA,EAAM,cAAc,QAAA,GAAW,MAAA;AAAA,UAC/B,QAAA,EAAU,cAAc,CAAA,GAAI,MAAA;AAAA,UAC5B,KAAA,EAAO,cAAc,eAAA,GAAkB,MAAA;AAAA,UACvC,OAAA,EAAS,cAAc,SAAA,GAAY,MAAA;AAAA,UACnC,SAAA,EACE,WAAA,GACI,CAAC,CAAA,KAAM;AACL,YAAA,IAAI,CAAA,CAAE,GAAA,KAAQ,OAAA,IAAW,CAAA,CAAE,QAAQ,GAAA,EAAK;AACtC,cAAA,CAAA,CAAE,cAAA,EAAe;AACjB,cAAA,SAAA,EAAU;AAAA,YACZ;AAAA,UACF,CAAA,GACA,MAAA;AAAA,UAEN,SAAA,EAAW,EAAA;AAAA,YACT,4EAAA;AAAA,YACA,WAAA;AAAA,YACA,WAAA,IACE;AAAA,WACJ;AAAA,UACA,aAAA,EAAa,cAAc,MAAA,GAAY,MAAA;AAAA,UAEtC,QAAA,EAAA;AAAA;AAAA,OACH,mBAEF,GAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,4BAAA,EACb,QAAA,kBAAA,GAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,GAAA,EAAK,CAAC,IAAA,KAAS;AACb,YAAA,WAAA,CAAY,OAAA,GAAU,IAAA;AACtB,YAAA,IAAI,OAAO,QAAQ,UAAA,EAAY;AAC7B,cAAA,GAAA,CAAI,IAAI,CAAA;AAAA,YACV,WAAW,GAAA,EAAK;AACd,cAAA,GAAA,CAAI,OAAA,GAAU,IAAA;AAAA,YAChB;AAAA,UACF,CAAA;AAAA,UACA,EAAA,EAAI,UAAA;AAAA,UACJ,IAAA,EAAK,UAAA;AAAA,UACL,IAAA;AAAA,UACA,QAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA;AAAA,UACA,SAAA,EAAW,WAAA;AAAA,UACX,QAAQ,MAAM;AACZ,YAAA,IAAI,aAAa,QAAA,EAAS;AAAA,UAC5B,CAAA;AAAA,UACA,UAAU,CAAC,CAAA,KAAM,UAAA,CAAW,CAAA,CAAE,OAAO,OAAO,CAAA;AAAA,UAC5C,SAAA,EAAW,EAAA;AAAA,YACT,WAAA;AAAA,YACA,uQAAA;AAAA,YACA,iBAAiB,KAAK,CAAA;AAAA,YACtB,KAAA,IAAS;AAAA;AACX;AAAA,OACF,EACF,CAAA;AAAA,MAAA,CAEE,KAAA,IAAS,WAAA,qBACT,IAAA,CAAC,KAAA,EAAA,EAAI,WAAU,eAAA,EACZ,QAAA,EAAA;AAAA,QAAA,KAAA,oBACC,IAAA;AAAA,UAAC,OAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,UAAA;AAAA,YACT,SAAA,EAAW,EAAA;AAAA,cACT,yDAAA;AAAA,cACA,QAAA,IAAY;AAAA,aACd;AAAA,YAEC,QAAA,EAAA;AAAA,cAAA,KAAA;AAAA,cACA,QAAA,oBAAY,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,uBAAsB,QAAA,EAAA,GAAA,EAAC;AAAA;AAAA;AAAA,SACtD;AAAA,QAED,WAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,4CACb,QAAA,EAAA,WAAA,EACH,CAAA;AAAA,QAED,KAAA,oBAAS,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAwB,QAAA,EAAA,KAAA,EAAM;AAAA,OAAA,EAC1D;AAAA,KAAA,EAEJ,CAAA;AAAA,EAEJ;AACF;AAEA,QAAA,CAAS,WAAA,GAAc,UAAA","file":"chunk-H6F6ZWAG.js","sourcesContent":["import { forwardRef, useEffect, useId, useRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport { dirtyRingClasses } from \"../inputs.utils\";\nimport type { CheckboxProps } from \"./Checkbox.types\";\n\nexport const Checkbox = forwardRef<HTMLInputElement, CheckboxProps>(\n (\n {\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n name,\n checked: controlledChecked,\n defaultChecked = false,\n onCheckedChange,\n indeterminate,\n mode,\n ...rest\n },\n ref,\n ) => {\n const autoId = useId();\n const checkboxId = id ?? autoId;\n const internalRef = useRef<HTMLInputElement | null>(null);\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n const [checked, setChecked] = useControllableState(\n controlledChecked,\n defaultChecked,\n onCheckedChange,\n );\n\n useEffect(() => {\n const el = internalRef.current;\n if (el) {\n el.indeterminate = indeterminate ?? false;\n }\n }, [indeterminate]);\n\n const sizeClasses = {\n xs: \"h-3.5 w-3.5\",\n sm: \"h-4 w-4\",\n md: \"h-[18px] w-[18px]\",\n lg: \"h-5 w-5\",\n xl: \"h-6 w-6\",\n }[size];\n\n const glyph = indeterminate ? \"—\" : checked ? \"✓\" : \"✕\";\n\n return (\n <div {...rest} data-react-fancy-checkbox=\"\" className={cn(\"flex items-start gap-2\", className)}>\n {!showControl ? (\n <span\n data-react-fancy-display=\"\"\n data-mode=\"view\"\n role={interactive ? \"button\" : undefined}\n tabIndex={interactive ? 0 : undefined}\n title={interactive ? \"Click to edit\" : undefined}\n onClick={interactive ? enterEdit : undefined}\n onKeyDown={\n interactive\n ? (e) => {\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n enterEdit();\n }\n }\n : undefined\n }\n className={cn(\n \"flex shrink-0 items-center justify-center text-zinc-700 dark:text-zinc-200\",\n sizeClasses,\n interactive &&\n \"cursor-pointer rounded outline-none transition-colors hover:text-zinc-900 focus-visible:ring-2 focus-visible:ring-blue-500/40 dark:hover:text-white\",\n )}\n aria-hidden={interactive ? undefined : \"true\"}\n >\n {glyph}\n </span>\n ) : (\n <div className=\"relative flex items-center\">\n <input\n ref={(node) => {\n internalRef.current = node;\n if (typeof ref === \"function\") {\n ref(node);\n } else if (ref) {\n ref.current = node;\n }\n }}\n id={checkboxId}\n type=\"checkbox\"\n name={name}\n disabled={disabled}\n required={required}\n checked={checked}\n autoFocus={interactive}\n onBlur={() => {\n if (interactive) exitEdit();\n }}\n onChange={(e) => setChecked(e.target.checked)}\n className={cn(\n sizeClasses,\n \"cursor-pointer rounded border border-zinc-300 bg-white text-blue-600 transition-[border-color,box-shadow] duration-150 focus:ring-2 focus:ring-blue-500/40 focus:ring-offset-0 disabled:cursor-not-allowed disabled:opacity-50 dark:border-zinc-700 dark:bg-[#1e1e24]\",\n dirtyRingClasses(dirty),\n error && \"border-red-500\",\n )}\n />\n </div>\n )}\n {(label || description) && (\n <div className=\"flex flex-col\">\n {label && (\n <label\n htmlFor={checkboxId}\n className={cn(\n \"cursor-pointer text-sm text-zinc-700 dark:text-zinc-100\",\n disabled && \"cursor-not-allowed opacity-50\",\n )}\n >\n {label}\n {required && <span className=\"ml-0.5 text-red-500\">*</span>}\n </label>\n )}\n {description && (\n <span className=\"text-xs text-zinc-500 dark:text-zinc-400\">\n {description}\n </span>\n )}\n {error && <span className=\"text-xs text-red-500\">{error}</span>}\n </div>\n )}\n </div>\n );\n },\n);\n\nCheckbox.displayName = \"Checkbox\";\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkQKFOJKVE_cjs = require('./chunk-QKFOJKVE.cjs');
|
|
4
4
|
var react = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -58,7 +58,7 @@ function ChatDrawer({
|
|
|
58
58
|
"aria-expanded": open,
|
|
59
59
|
className: "ml-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200",
|
|
60
60
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
61
|
-
|
|
61
|
+
chunkQKFOJKVE_cjs.Icon,
|
|
62
62
|
{
|
|
63
63
|
name: open ? "chevron-down" : "chevron-up",
|
|
64
64
|
className: "h-3.5 w-3.5"
|
|
@@ -79,5 +79,5 @@ function ChatDrawer({
|
|
|
79
79
|
}
|
|
80
80
|
|
|
81
81
|
exports.ChatDrawer = ChatDrawer;
|
|
82
|
-
//# sourceMappingURL=chunk-
|
|
83
|
-
//# sourceMappingURL=chunk-
|
|
82
|
+
//# sourceMappingURL=chunk-HE3JJXIL.cjs.map
|
|
83
|
+
//# sourceMappingURL=chunk-HE3JJXIL.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ChatDrawer/ChatDrawer.tsx"],"names":["useCallback","jsxs","jsx","Icon"],"mappings":";;;;;;AA+DO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,YAAA,GAAeA,kBAAY,MAAM;AACrC,IAAA,QAAA,GAAW,CAAC,IAAI,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,uBACEC,eAAA,CAAC,SAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,SAAI,SAAA,EAAU,qCAAA,EACZ,eAAK,GAAA,CAAI,CAAC,KAAK,CAAA,KAAM;AACpB,QAAA,MAAM,MAAA,GAAS,IAAI,EAAA,KAAO,WAAA;AAC1B,QAAA,MAAM,SAAS,GAAA,CAAI,MAAA,KAAW,OAAO,IAAA,GAAO,GAAA,CAAI,UAAU,CAAA,GAAI,CAAA;AAC9D,QAAA,uBACED,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,GAAA,CAAI,EAAE,CAAA;AAAA,YACjC,SAAA,EAAW;AAAA,cACT,2GAAA;AAAA,cACA,SACI,4CAAA,GACA;AAAA,aACN,CAAE,KAAK,GAAG,CAAA;AAAA,YACV,cAAA,EAAc,MAAA;AAAA,YAEb,QAAA,EAAA;AAAA,cAAA,MAAA,KAAW,IAAA,oBACVC,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW;AAAA,oBACT,wFAAA;AAAA,oBACA,SACI,wBAAA,GACA;AAAA,mBACN,CAAE,KAAK,GAAG,CAAA;AAAA,kBAET,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,8BAEFA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,cAAI,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAvB/C,GAAA,CAAI;AAAA,SAwBX;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,sBACAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,YAAA;AAAA,UACT,YAAA,EAAY,OAAO,iBAAA,GAAoB,eAAA;AAAA,UACvC,eAAA,EAAe,IAAA;AAAA,UACf,SAAA,EAAU,qLAAA;AAAA,UAEV,QAAA,kBAAAA,cAAA;AAAA,YAACC,sBAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,OAAO,cAAA,GAAiB,YAAA;AAAA,cAC9B,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IAEC,IAAA,oBACCD,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAO,EAAE,SAAA,EAAW,aAAA,EAAc;AAAA,QAEjC;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/ChatDrawer/ChatDrawer.tsx"],"names":["useCallback","jsxs","jsx","Icon"],"mappings":";;;;;;AA+DO,SAAS,UAAA,CAAW;AAAA,EACzB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,QAAA;AAAA,EACA,QAAA;AAAA,EACA,aAAA,GAAgB,GAAA;AAAA,EAChB;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,YAAA,GAAeA,kBAAY,MAAM;AACrC,IAAA,QAAA,GAAW,CAAC,IAAI,CAAA;AAAA,EAClB,CAAA,EAAG,CAAC,QAAA,EAAU,IAAI,CAAC,CAAA;AAEnB,EAAA,uBACEC,eAAA,CAAC,SAAI,SAAA,EACH,QAAA,EAAA;AAAA,oBAAAA,eAAA,CAAC,KAAA,EAAA,EAAI,WAAU,uCAAA,EACb,QAAA,EAAA;AAAA,sBAAAC,cAAA,CAAC,SAAI,SAAA,EAAU,qCAAA,EACZ,eAAK,GAAA,CAAI,CAAC,KAAK,CAAA,KAAM;AACpB,QAAA,MAAM,MAAA,GAAS,IAAI,EAAA,KAAO,WAAA;AAC1B,QAAA,MAAM,SAAS,GAAA,CAAI,MAAA,KAAW,OAAO,IAAA,GAAO,GAAA,CAAI,UAAU,CAAA,GAAI,CAAA;AAC9D,QAAA,uBACED,eAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YAEC,IAAA,EAAK,QAAA;AAAA,YACL,OAAA,EAAS,MAAM,WAAA,CAAY,GAAA,CAAI,EAAE,CAAA;AAAA,YACjC,SAAA,EAAW;AAAA,cACT,2GAAA;AAAA,cACA,SACI,4CAAA,GACA;AAAA,aACN,CAAE,KAAK,GAAG,CAAA;AAAA,YACV,cAAA,EAAc,MAAA;AAAA,YAEb,QAAA,EAAA;AAAA,cAAA,MAAA,KAAW,IAAA,oBACVC,cAAA;AAAA,gBAAC,MAAA;AAAA,gBAAA;AAAA,kBACC,SAAA,EAAW;AAAA,oBACT,wFAAA;AAAA,oBACA,SACI,wBAAA,GACA;AAAA,mBACN,CAAE,KAAK,GAAG,CAAA;AAAA,kBAET,QAAA,EAAA;AAAA;AAAA,eACH;AAAA,8BAEFA,cAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,wBAAA,EAA0B,cAAI,KAAA,EAAM;AAAA;AAAA,WAAA;AAAA,UAvB/C,GAAA,CAAI;AAAA,SAwBX;AAAA,MAEJ,CAAC,CAAA,EACH,CAAA;AAAA,sBACAA,cAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAA,EAAK,QAAA;AAAA,UACL,OAAA,EAAS,YAAA;AAAA,UACT,YAAA,EAAY,OAAO,iBAAA,GAAoB,eAAA;AAAA,UACvC,eAAA,EAAe,IAAA;AAAA,UACf,SAAA,EAAU,qLAAA;AAAA,UAEV,QAAA,kBAAAA,cAAA;AAAA,YAACC,sBAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAM,OAAO,cAAA,GAAiB,YAAA;AAAA,cAC9B,SAAA,EAAU;AAAA;AAAA;AACZ;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IAEC,IAAA,oBACCD,cAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAU,eAAA;AAAA,QACV,KAAA,EAAO,EAAE,SAAA,EAAW,aAAA,EAAc;AAAA,QAEjC;AAAA;AAAA;AACH,GAAA,EAEJ,CAAA;AAEJ","file":"chunk-HE3JJXIL.cjs","sourcesContent":["import { type ReactNode, useCallback } from \"react\";\nimport { Icon } from \"../Icon\";\n\n/**\n * ChatDrawer — tabbed, collapsible panel that sits *above* a `PromptInput`\n * (via the input's `aboveInput` slot) so the drawer and composer share one\n * rounded shell. Each tab gets a numbered chip and a content panel; only\n * one panel renders at a time.\n *\n * <PromptInput\n * aboveInput={\n * <ChatDrawer\n * tabs={[\n * { id: \"files\", label: \"Files\" },\n * { id: \"tools\", label: \"Chat Tools\" },\n * { id: \"prompts\", label: \"Chat Prompts\" },\n * { id: \"deal\", label: \"IBM Analytics Platform\" },\n * ]}\n * activeTabId={tab}\n * onTabChange={setTab}\n * open={open}\n * onToggle={setOpen}\n * >\n * {tab === \"tools\" && <ToolsGrid />}\n * {tab === \"deal\" && <DealCard />}\n * </ChatDrawer>\n * }\n * budgetTokens={200_000}\n * onSubmit={(text) => send(text)}\n * />\n *\n * The drawer is purely presentational and slot-driven — you decide what\n * each tab shows. Tab order in the numbered chips is the order you pass.\n */\n\nexport type ChatDrawerTab = {\n /** Stable id — used as the React key and as `activeTabId`. */\n id: string;\n /** Human label rendered on the chip. */\n label: string;\n /**\n * Optional override for the numbered prefix (defaults to position +1).\n * Set to `null` to hide the number entirely (e.g. for a context-specific\n * tab like the deal one in the screenshots).\n */\n number?: number | null;\n};\n\nexport interface ChatDrawerProps {\n tabs: ChatDrawerTab[];\n activeTabId: string;\n onTabChange: (id: string) => void;\n /** Body open/closed. Default true. */\n open?: boolean;\n /** Called when the chevron is clicked. */\n onToggle?: (open: boolean) => void;\n /** Body content for the active tab. */\n children?: ReactNode;\n /** Min height of the body when open, in px. Default 140. */\n minBodyHeight?: number;\n className?: string;\n}\n\nexport function ChatDrawer({\n tabs,\n activeTabId,\n onTabChange,\n open = true,\n onToggle,\n children,\n minBodyHeight = 140,\n className,\n}: ChatDrawerProps) {\n const handleToggle = useCallback(() => {\n onToggle?.(!open);\n }, [onToggle, open]);\n\n return (\n <div className={className}>\n <div className=\"flex items-center gap-1.5 px-2.5 py-2\">\n <div className=\"flex flex-wrap items-center gap-1.5\">\n {tabs.map((tab, i) => {\n const active = tab.id === activeTabId;\n const number = tab.number === null ? null : tab.number ?? i + 1;\n return (\n <button\n key={tab.id}\n type=\"button\"\n onClick={() => onTabChange(tab.id)}\n className={[\n \"group inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-[12px] font-medium transition\",\n active\n ? \"border-violet-500 bg-violet-500 text-white\"\n : \"border-zinc-200 bg-transparent text-zinc-700 hover:border-zinc-300 hover:bg-zinc-50 dark:border-zinc-700 dark:text-zinc-300 dark:hover:border-zinc-600 dark:hover:bg-zinc-800\",\n ].join(\" \")}\n aria-pressed={active}\n >\n {number !== null && (\n <span\n className={[\n \"inline-flex h-4 w-4 items-center justify-center rounded-full text-[10px] font-semibold\",\n active\n ? \"bg-white/20 text-white\"\n : \"bg-zinc-200 text-zinc-600 group-hover:bg-zinc-300 dark:bg-zinc-700 dark:text-zinc-300\",\n ].join(\" \")}\n >\n {number}\n </span>\n )}\n <span className=\"truncate max-w-[180px]\">{tab.label}</span>\n </button>\n );\n })}\n </div>\n <button\n type=\"button\"\n onClick={handleToggle}\n aria-label={open ? \"Collapse drawer\" : \"Expand drawer\"}\n aria-expanded={open}\n className=\"ml-auto inline-flex h-6 w-6 items-center justify-center rounded-full text-zinc-400 transition hover:bg-zinc-100 hover:text-zinc-700 dark:hover:bg-zinc-800 dark:hover:text-zinc-200\"\n >\n <Icon\n name={open ? \"chevron-down\" : \"chevron-up\"}\n className=\"h-3.5 w-3.5\"\n />\n </button>\n </div>\n\n {open && (\n <div\n className=\"px-2.5 pb-2.5\"\n style={{ minHeight: minBodyHeight }}\n >\n {children}\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
4
4
|
var lucideReact = require('lucide-react');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -47,14 +47,14 @@ function Pagination({
|
|
|
47
47
|
const btnDefault = "border-zinc-200 bg-white hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:hover:bg-zinc-800";
|
|
48
48
|
const btnActive = "border-zinc-900 bg-zinc-900 text-white dark:border-white dark:bg-white dark:text-zinc-900";
|
|
49
49
|
const btnDisabled = "cursor-not-allowed opacity-50";
|
|
50
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("nav", { "aria-label": "Pagination", "data-react-fancy-pagination": "", className:
|
|
50
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("nav", { "aria-label": "Pagination", "data-react-fancy-pagination": "", className: chunkZU5Q77OT_cjs.cn("flex items-center gap-1", className), children: [
|
|
51
51
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52
52
|
"button",
|
|
53
53
|
{
|
|
54
54
|
type: "button",
|
|
55
55
|
disabled: page <= 1,
|
|
56
56
|
onClick: () => onPageChange(page - 1),
|
|
57
|
-
className:
|
|
57
|
+
className: chunkZU5Q77OT_cjs.cn(btnBase, btnDefault, page <= 1 && btnDisabled, "px-2"),
|
|
58
58
|
"aria-label": "Previous page",
|
|
59
59
|
children: /* @__PURE__ */ jsxRuntime.jsx(lucideReact.ChevronLeft, { size: 16 })
|
|
60
60
|
}
|
|
@@ -66,7 +66,7 @@ function Pagination({
|
|
|
66
66
|
type: "button",
|
|
67
67
|
onClick: () => onPageChange(p),
|
|
68
68
|
"aria-current": p === page ? "page" : void 0,
|
|
69
|
-
className:
|
|
69
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
70
70
|
btnBase,
|
|
71
71
|
p === page ? btnActive : btnDefault,
|
|
72
72
|
"px-2"
|
|
@@ -82,7 +82,7 @@ function Pagination({
|
|
|
82
82
|
type: "button",
|
|
83
83
|
disabled: page >= totalPages,
|
|
84
84
|
onClick: () => onPageChange(page + 1),
|
|
85
|
-
className:
|
|
85
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
86
86
|
btnBase,
|
|
87
87
|
btnDefault,
|
|
88
88
|
page >= totalPages && btnDisabled,
|
|
@@ -97,5 +97,5 @@ function Pagination({
|
|
|
97
97
|
Pagination.displayName = "Pagination";
|
|
98
98
|
|
|
99
99
|
exports.Pagination = Pagination;
|
|
100
|
-
//# sourceMappingURL=chunk-
|
|
101
|
-
//# sourceMappingURL=chunk-
|
|
100
|
+
//# sourceMappingURL=chunk-HIN6PHSE.cjs.map
|
|
101
|
+
//# sourceMappingURL=chunk-HIN6PHSE.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["useMemo","jsxs","cn","jsx","ChevronLeft","ChevronRight"],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["useMemo","jsxs","cn","jsx","ChevronLeft","ChevronRight"],"mappings":"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","file":"chunk-HIN6PHSE.cjs","sourcesContent":["import { ChevronLeft, ChevronRight } from \"lucide-react\";\nimport { useMemo } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { PaginationProps } from \"./Pagination.types\";\n\nfunction range(start: number, end: number): number[] {\n return Array.from({ length: end - start + 1 }, (_, i) => start + i);\n}\n\nfunction getPages(\n page: number,\n totalPages: number,\n siblings: number,\n): (number | \"ellipsis\")[] {\n const totalSlots = siblings * 2 + 5; // siblings + boundaries + ellipses + current\n if (totalPages <= totalSlots) return range(1, totalPages);\n\n const leftSibling = Math.max(page - siblings, 1);\n const rightSibling = Math.min(page + siblings, totalPages);\n\n const showLeftEllipsis = leftSibling > 2;\n const showRightEllipsis = rightSibling < totalPages - 1;\n\n if (!showLeftEllipsis && showRightEllipsis) {\n const leftRange = range(1, 3 + siblings * 2);\n return [...leftRange, \"ellipsis\", totalPages];\n }\n\n if (showLeftEllipsis && !showRightEllipsis) {\n const rightRange = range(totalPages - (2 + siblings * 2), totalPages);\n return [1, \"ellipsis\", ...rightRange];\n }\n\n return [\n 1,\n \"ellipsis\",\n ...range(leftSibling, rightSibling),\n \"ellipsis\",\n totalPages,\n ];\n}\n\nexport function Pagination({\n page,\n onPageChange,\n totalPages,\n siblingCount = 1,\n className,\n}: PaginationProps) {\n const pages = useMemo(\n () => getPages(page, totalPages, siblingCount),\n [page, totalPages, siblingCount],\n );\n\n if (totalPages <= 1) return null;\n\n const btnBase =\n \"inline-flex h-9 min-w-9 items-center justify-center rounded-lg border text-sm transition-colors\";\n const btnDefault =\n \"border-zinc-200 bg-white hover:bg-zinc-50 dark:border-zinc-700 dark:bg-zinc-900 dark:hover:bg-zinc-800\";\n const btnActive =\n \"border-zinc-900 bg-zinc-900 text-white dark:border-white dark:bg-white dark:text-zinc-900\";\n const btnDisabled = \"cursor-not-allowed opacity-50\";\n\n return (\n <nav aria-label=\"Pagination\" data-react-fancy-pagination=\"\" className={cn(\"flex items-center gap-1\", className)}>\n <button\n type=\"button\"\n disabled={page <= 1}\n onClick={() => onPageChange(page - 1)}\n className={cn(btnBase, btnDefault, page <= 1 && btnDisabled, \"px-2\")}\n aria-label=\"Previous page\"\n >\n <ChevronLeft size={16} />\n </button>\n\n {pages.map((p, i) =>\n p === \"ellipsis\" ? (\n <span key={`e-${i}`} className=\"px-1 text-zinc-400\">\n ...\n </span>\n ) : (\n <button\n key={p}\n type=\"button\"\n onClick={() => onPageChange(p)}\n aria-current={p === page ? \"page\" : undefined}\n className={cn(\n btnBase,\n p === page ? btnActive : btnDefault,\n \"px-2\",\n )}\n >\n {p}\n </button>\n ),\n )}\n\n <button\n type=\"button\"\n disabled={page >= totalPages}\n onClick={() => onPageChange(page + 1)}\n className={cn(\n btnBase,\n btnDefault,\n page >= totalPages && btnDisabled,\n \"px-2\",\n )}\n aria-label=\"Next page\"\n >\n <ChevronRight size={16} />\n </button>\n </nav>\n );\n}\n\nPagination.displayName = \"Pagination\";\n"]}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
3
|
+
var chunkG7227RTY_cjs = require('./chunk-G7227RTY.cjs');
|
|
4
|
+
var chunkND5D7GJB_cjs = require('./chunk-ND5D7GJB.cjs');
|
|
5
5
|
var chunkBFKCVSNK_cjs = require('./chunk-BFKCVSNK.cjs');
|
|
6
6
|
var chunkL3V3BYVS_cjs = require('./chunk-L3V3BYVS.cjs');
|
|
7
7
|
var chunkOUOEQZHY_cjs = require('./chunk-OUOEQZHY.cjs');
|
|
8
|
-
var
|
|
8
|
+
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
9
9
|
var react = require('react');
|
|
10
10
|
var marked = require('marked');
|
|
11
11
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -33,7 +33,7 @@ function EditorSourceToggle({
|
|
|
33
33
|
title: showSource ? activeTitle : title,
|
|
34
34
|
"aria-pressed": showSource,
|
|
35
35
|
"data-react-fancy-editor-source-toggle": "",
|
|
36
|
-
className:
|
|
36
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
37
37
|
"inline-flex h-8 items-center justify-center rounded-md px-2 font-mono text-xs transition-colors",
|
|
38
38
|
showSource ? "bg-zinc-200 dark:bg-zinc-700" : "hover:bg-zinc-100 dark:hover:bg-zinc-800",
|
|
39
39
|
className
|
|
@@ -61,7 +61,7 @@ function EditorToolbar({
|
|
|
61
61
|
"div",
|
|
62
62
|
{
|
|
63
63
|
"data-react-fancy-editor-toolbar": "",
|
|
64
|
-
className:
|
|
64
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
65
65
|
"flex shrink-0 items-center gap-0.5 border-b border-zinc-200 px-2 py-1.5 dark:border-zinc-700",
|
|
66
66
|
className
|
|
67
67
|
),
|
|
@@ -79,7 +79,7 @@ function EditorToolbar({
|
|
|
79
79
|
}
|
|
80
80
|
},
|
|
81
81
|
title: action.label,
|
|
82
|
-
className:
|
|
82
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
83
83
|
"inline-flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors",
|
|
84
84
|
action.active ? "bg-zinc-200 dark:bg-zinc-700" : "hover:bg-zinc-100 dark:hover:bg-zinc-800",
|
|
85
85
|
showSource && "cursor-not-allowed opacity-40 hover:bg-transparent"
|
|
@@ -130,19 +130,19 @@ function EditorContent({ className, maxHeight, sourceClassName }) {
|
|
|
130
130
|
}
|
|
131
131
|
}, [contentRef, _initialHtml, showSource]);
|
|
132
132
|
const extClasses = react.useMemo(
|
|
133
|
-
() =>
|
|
133
|
+
() => chunkND5D7GJB_cjs.extensionEditorClasses(extensions),
|
|
134
134
|
[extensions]
|
|
135
135
|
);
|
|
136
136
|
if (showSource) {
|
|
137
137
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
138
|
-
|
|
138
|
+
chunkG7227RTY_cjs.CodeView,
|
|
139
139
|
{
|
|
140
140
|
value: _sourceValue,
|
|
141
141
|
onChange: _onSourceInput,
|
|
142
142
|
language: outputFormat === "html" ? "html" : "plaintext",
|
|
143
143
|
placeholder,
|
|
144
144
|
maxHeight,
|
|
145
|
-
className:
|
|
145
|
+
className: chunkZU5Q77OT_cjs.cn("min-h-0 flex-auto", sourceClassName)
|
|
146
146
|
}
|
|
147
147
|
);
|
|
148
148
|
}
|
|
@@ -159,10 +159,10 @@ function EditorContent({ className, maxHeight, sourceClassName }) {
|
|
|
159
159
|
lineHeight: lineSpacing,
|
|
160
160
|
maxHeight: maxHeight ? `${maxHeight}px` : void 0
|
|
161
161
|
},
|
|
162
|
-
className:
|
|
162
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
163
163
|
"min-h-[120px] flex-auto overflow-y-auto px-4 py-3 text-sm outline-none",
|
|
164
164
|
"focus:outline-none",
|
|
165
|
-
|
|
165
|
+
chunkND5D7GJB_cjs.proseClasses,
|
|
166
166
|
extClasses,
|
|
167
167
|
"empty:before:content-[attr(data-placeholder)] empty:before:text-zinc-400 empty:before:pointer-events-none",
|
|
168
168
|
className
|
|
@@ -174,7 +174,7 @@ EditorContent.displayName = "EditorContent";
|
|
|
174
174
|
function toHtml(value, outputFormat, unsafe, valueFormat = "auto") {
|
|
175
175
|
if (!value) return "";
|
|
176
176
|
const raw = (() => {
|
|
177
|
-
const format = valueFormat !== "auto" ? valueFormat : outputFormat === "html" ? "html" :
|
|
177
|
+
const format = valueFormat !== "auto" ? valueFormat : outputFormat === "html" ? "html" : chunkND5D7GJB_cjs.detectFormat(value);
|
|
178
178
|
if (format === "html") return value;
|
|
179
179
|
return marked.marked.parse(value, { async: false }).trim();
|
|
180
180
|
})();
|
|
@@ -222,12 +222,12 @@ function EditorRoot({
|
|
|
222
222
|
[isView, outputFormat, unsafe, valueFormat, showSource, externalSeed]
|
|
223
223
|
);
|
|
224
224
|
const extensions = react.useMemo(
|
|
225
|
-
() =>
|
|
225
|
+
() => chunkND5D7GJB_cjs.mergeExtensions(instanceExtensions),
|
|
226
226
|
[instanceExtensions]
|
|
227
227
|
);
|
|
228
228
|
const getOutputValue = react.useCallback(
|
|
229
229
|
(html) => {
|
|
230
|
-
return outputFormat === "markdown" ?
|
|
230
|
+
return outputFormat === "markdown" ? chunkND5D7GJB_cjs.htmlToMarkdown(html) : html;
|
|
231
231
|
},
|
|
232
232
|
[outputFormat]
|
|
233
233
|
);
|
|
@@ -301,12 +301,12 @@ function EditorRoot({
|
|
|
301
301
|
{
|
|
302
302
|
"data-react-fancy-editor": "",
|
|
303
303
|
"data-mode": "view",
|
|
304
|
-
className:
|
|
304
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
305
305
|
"overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900",
|
|
306
306
|
className
|
|
307
307
|
),
|
|
308
308
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
309
|
-
|
|
309
|
+
chunkND5D7GJB_cjs.ContentRenderer,
|
|
310
310
|
{
|
|
311
311
|
value,
|
|
312
312
|
format: valueFormat !== "auto" ? valueFormat : outputFormat,
|
|
@@ -324,7 +324,7 @@ function EditorRoot({
|
|
|
324
324
|
{
|
|
325
325
|
"data-react-fancy-editor": "",
|
|
326
326
|
"data-mode": "edit",
|
|
327
|
-
className:
|
|
327
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
328
328
|
"flex flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900",
|
|
329
329
|
className
|
|
330
330
|
),
|
|
@@ -343,5 +343,5 @@ var Editor = Object.assign(EditorRoot, {
|
|
|
343
343
|
|
|
344
344
|
exports.Editor = Editor;
|
|
345
345
|
exports.useEditor = useEditor;
|
|
346
|
-
//# sourceMappingURL=chunk-
|
|
347
|
-
//# sourceMappingURL=chunk-
|
|
346
|
+
//# sourceMappingURL=chunk-HIOMHITU.cjs.map
|
|
347
|
+
//# sourceMappingURL=chunk-HIOMHITU.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Editor/Editor.context.ts","../src/components/Editor/EditorSourceToggle.tsx","../src/components/Editor/EditorToolbar.tsx","../src/components/Editor/EditorToolbarSeparator.tsx","../src/components/Editor/EditorContent.tsx","../src/components/Editor/Editor.tsx"],"names":["createContext","useContext","jsx","cn","jsxs","Fragment","useRef","useEffect","useMemo","extensionEditorClasses","CodeView","proseClasses","detectFormat","marked","sanitizeHtml","useControllableState","useFieldMode","useState","mergeExtensions","useCallback","htmlToMarkdown","ContentRenderer"],"mappings":"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","file":"chunk-WT72KW5M.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { RefObject } from \"react\";\nimport type { RenderExtension } from \"../ContentRenderer/extensions\";\n\nexport interface EditorContextValue {\n contentRef: RefObject<HTMLDivElement | null>;\n exec: (command: string, arg?: string) => void;\n insertText: (text: string) => void;\n wrapSelection: (before: string, after: string) => void;\n outputFormat: \"html\" | \"markdown\";\n lineSpacing: number;\n placeholder?: string;\n /** Merged render extensions (global + instance). */\n extensions: RenderExtension[];\n /** Whether the raw-source view (textarea) is showing instead of the rich-text surface. */\n showSource: boolean;\n /** Toggle/set the raw-source view. */\n setShowSource: (showSource: boolean) => void;\n /** Initial HTML content to load into the editor on mount */\n _initialHtml: string;\n /** @internal Called by EditorContent on input events */\n _onInput: () => void;\n /** @internal Raw source value (`value` in `outputFormat`), for the source textarea. */\n _sourceValue: string;\n /** @internal Commit an edit made directly in the source textarea. */\n _onSourceInput: (value: string) => void;\n}\n\nexport const EditorContext = createContext<EditorContextValue | null>(null);\n\nexport function useEditor(): EditorContextValue {\n const ctx = useContext(EditorContext);\n if (!ctx) {\n throw new Error(\"useEditor must be used within an <Editor> component\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport { useEditor } from \"./Editor.context\";\nimport type { EditorSourceToggleProps } from \"./Editor.types\";\n\n/**\n * Toolbar button that reveals the raw HTML/Markdown behind the editor. Reads\n * `showSource` / `setShowSource` from context, so it works in the default\n * toolbar and in any custom toolbar composed with `useEditor()`.\n */\nexport function EditorSourceToggle({\n className,\n icon = \"</>\",\n title = \"Source\",\n activeTitle = \"Rich text\",\n}: EditorSourceToggleProps) {\n const { showSource, setShowSource } = useEditor();\n\n return (\n <button\n type=\"button\"\n onClick={() => setShowSource(!showSource)}\n title={showSource ? activeTitle : title}\n aria-pressed={showSource}\n data-react-fancy-editor-source-toggle=\"\"\n className={cn(\n \"inline-flex h-8 items-center justify-center rounded-md px-2 font-mono text-xs transition-colors\",\n showSource\n ? \"bg-zinc-200 dark:bg-zinc-700\"\n : \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\n className,\n )}\n >\n {icon}\n </button>\n );\n}\n\nEditorSourceToggle.displayName = \"EditorSourceToggle\";\n","import { cn } from \"../../utils/cn\";\nimport { useEditor } from \"./Editor.context\";\nimport { EditorSourceToggle } from \"./EditorSourceToggle\";\nimport type { EditorToolbarProps } from \"./Editor.types\";\n\nconst DEFAULT_ACTIONS = [\n { icon: \"B\", label: \"Bold\", command: \"bold\" },\n { icon: \"I\", label: \"Italic\", command: \"italic\" },\n { icon: \"U\", label: \"Underline\", command: \"underline\" },\n { icon: \"S\", label: \"Strikethrough\", command: \"strikeThrough\" },\n];\n\nexport function EditorToolbar({\n actions = DEFAULT_ACTIONS,\n onAction,\n children,\n className,\n showSourceToggle = true,\n}: EditorToolbarProps) {\n const { exec, showSource } = useEditor();\n\n return (\n <div\n data-react-fancy-editor-toolbar=\"\"\n className={cn(\n \"flex shrink-0 items-center gap-0.5 border-b border-zinc-200 px-2 py-1.5 dark:border-zinc-700\",\n className,\n )}\n >\n {children ?? (\n <>\n {actions.map((action) => (\n <button\n key={`${action.command}-${action.commandArg ?? \"\"}`}\n type=\"button\"\n // Rich-text commands don't apply to the raw-source textarea.\n disabled={showSource}\n onClick={() => {\n if (onAction) {\n onAction(action.command);\n } else {\n exec(action.command, action.commandArg);\n }\n }}\n title={action.label}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors\",\n action.active\n ? \"bg-zinc-200 dark:bg-zinc-700\"\n : \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\n showSource && \"cursor-not-allowed opacity-40 hover:bg-transparent\",\n )}\n >\n {action.icon}\n </button>\n ))}\n {showSourceToggle && <EditorSourceToggle className=\"ml-auto\" />}\n </>\n )}\n </div>\n );\n}\n\nEditorToolbar.displayName = \"EditorToolbar\";\n","export function EditorToolbarSeparator() {\n return (\n <span\n data-react-fancy-editor-toolbar-separator=\"\"\n className=\"mx-1 h-5 w-px bg-zinc-200 dark:bg-zinc-700\"\n />\n );\n}\n\nEditorToolbarSeparator.displayName = \"EditorToolbarSeparator\";\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { CodeView } from \"../CodeView\";\nimport { useEditor } from \"./Editor.context\";\nimport { proseClasses, extensionEditorClasses } from \"./editor.utils\";\nimport type { EditorContentProps } from \"./Editor.types\";\n\nexport function EditorContent({ className, maxHeight, sourceClassName }: EditorContentProps) {\n const {\n contentRef,\n lineSpacing,\n placeholder,\n extensions,\n outputFormat,\n showSource,\n _initialHtml,\n _onInput,\n _sourceValue,\n _onSourceInput,\n } = useEditor();\n // Tracks which seed HTML is currently in the contentEditable. Seeding on the\n // seed VALUE (not a one-shot boolean) re-seeds when the source view rewrites\n // `value`, while still never re-seeding on plain keystrokes — typing leaves\n // `_initialHtml` untouched, so `seededHtml.current === _initialHtml` holds.\n const seededHtml = useRef<string | null>(null);\n\n useEffect(() => {\n // Source view replaces the contentEditable in the tree, so it unmounts.\n // Forget what we seeded — the div that returns is a fresh, empty one and\n // must always be re-seeded, even if `value` was left untouched.\n if (showSource) {\n seededHtml.current = null;\n return;\n }\n const el = contentRef.current;\n if (el && seededHtml.current !== _initialHtml) {\n el.innerHTML = _initialHtml;\n seededHtml.current = _initialHtml;\n }\n }, [contentRef, _initialHtml, showSource]);\n\n const extClasses = useMemo(\n () => extensionEditorClasses(extensions),\n [extensions],\n );\n\n if (showSource) {\n // Raw-source view — a syntax-highlighted code surface (HTML highlighted;\n // markdown/plain un-highlighted), built on the shared fancy-file-commons\n // primitives. It's a DIRECT child of the flex-column editor root (no\n // wrapper — a nested flex box collapses the fill), so `flex-auto` makes it\n // fill the editor body when height-constrained and grow with content\n // (≥ minHeight) when not. `maxHeight` caps + scrolls.\n return (\n <CodeView\n value={_sourceValue}\n onChange={_onSourceInput}\n language={outputFormat === \"html\" ? \"html\" : \"plaintext\"}\n placeholder={placeholder}\n maxHeight={maxHeight}\n className={cn(\"min-h-0 flex-auto\", sourceClassName)}\n />\n );\n }\n\n return (\n <div\n ref={contentRef}\n contentEditable\n suppressContentEditableWarning\n data-react-fancy-editor-content=\"\"\n data-placeholder={placeholder}\n onInput={_onInput}\n style={{\n lineHeight: lineSpacing,\n maxHeight: maxHeight ? `${maxHeight}px` : undefined,\n }}\n className={cn(\n \"min-h-[120px] flex-auto overflow-y-auto px-4 py-3 text-sm outline-none\",\n \"focus:outline-none\",\n proseClasses,\n extClasses,\n \"empty:before:content-[attr(data-placeholder)] empty:before:text-zinc-400 empty:before:pointer-events-none\",\n className,\n )}\n />\n );\n}\n\nEditorContent.displayName = \"EditorContent\";\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { marked } from \"marked\";\nimport { cn } from \"../../utils/cn\";\nimport { sanitizeHtml } from \"../../utils/sanitize\";\nimport { useControllableState } from \"../../hooks\";\nimport { EditorContext } from \"./Editor.context\";\nimport { EditorToolbar } from \"./EditorToolbar\";\nimport { EditorToolbarSeparator } from \"./EditorToolbarSeparator\";\nimport { EditorSourceToggle } from \"./EditorSourceToggle\";\nimport { EditorContent } from \"./EditorContent\";\nimport { htmlToMarkdown, detectFormat } from \"./editor.utils\";\nimport { mergeExtensions } from \"../ContentRenderer/extensions\";\nimport { ContentRenderer } from \"../ContentRenderer/ContentRenderer\";\nimport { useFieldMode } from \"../inputs/mode/FieldMode.context\";\nimport type { EditorProps } from \"./Editor.types\";\n\nfunction toHtml(\n value: string,\n outputFormat: \"html\" | \"markdown\",\n unsafe: boolean,\n valueFormat: \"markdown\" | \"html\" | \"auto\" = \"auto\",\n): string {\n if (!value) return \"\";\n const raw = (() => {\n // An explicit valueFormat is authoritative — the sniff misclassifies\n // markdown that merely MENTIONS HTML-ish snippets (`<code>`, `<table`),\n // collapsing it into an innerHTML wall of text (#10).\n const format =\n valueFormat !== \"auto\"\n ? valueFormat\n : outputFormat === \"html\"\n ? \"html\"\n : detectFormat(value);\n if (format === \"html\") return value;\n return (marked.parse(value, { async: false }) as string).trim();\n })();\n return unsafe ? raw : sanitizeHtml(raw);\n}\n\nfunction EditorRoot({\n children,\n className,\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n outputFormat = \"html\",\n valueFormat = \"auto\",\n lineSpacing = 1.6,\n placeholder,\n mode: modeProp,\n extensions: instanceExtensions,\n unsafe = false,\n showSource: showSourceProp,\n defaultShowSource = false,\n onShowSourceChange,\n}: EditorProps) {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [value, setValue] = useControllableState(controlledValue, defaultValue, onChange);\n const [showSource, setShowSource] = useControllableState(\n showSourceProp,\n defaultShowSource,\n onShowSourceChange,\n );\n // View/edit mode — same resolution as the inputs: prop → <Form> context → \"edit\".\n const mode = useFieldMode(modeProp);\n const isView = mode === \"view\";\n\n // The value this editor last emitted through `onChange`. An incoming `value`\n // equal to it is our own keystroke echoing back; anything else came from\n // OUTSIDE — an async load, a host reset, a form repopulating.\n const lastEmitted = useRef<string | null>(null);\n\n // Bumped only on an external `value` change, so the seed memo below recomputes\n // for those and stays put while the user types. Without this, `value` was\n // excluded from the deps to avoid re-seeding on keystrokes, which also meant a\n // value arriving after mount was silently dropped and the editor stayed blank\n // forever (#15).\n const [externalSeed, setExternalSeed] = useState(0);\n useEffect(() => {\n if (value !== lastEmitted.current) setExternalSeed((n) => n + 1);\n }, [value]);\n\n const initialHtml = useMemo(\n () => toHtml(value, outputFormat, unsafe, valueFormat),\n // Seed the contentEditable from the LIVE value when (re)entering edit mode —\n // and when returning from the raw-source view, which may have rewritten the\n // value out from under the rich-text surface. `value` itself stays out of\n // the deps so typing never re-seeds (which would fight the caret);\n // `externalSeed` covers the externally-driven case instead.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isView, outputFormat, unsafe, valueFormat, showSource, externalSeed],\n );\n\n const extensions = useMemo(\n () => mergeExtensions(instanceExtensions),\n [instanceExtensions],\n );\n\n const getOutputValue = useCallback(\n (html: string): string => {\n return outputFormat === \"markdown\" ? htmlToMarkdown(html) : html;\n },\n [outputFormat],\n );\n\n const handleInput = useCallback(() => {\n const el = contentRef.current;\n if (!el) return;\n const next = getOutputValue(el.innerHTML);\n // Record what we emitted BEFORE publishing it, so the value coming back in\n // is recognised as our own and does not trigger a re-seed mid-keystroke.\n lastEmitted.current = next;\n setValue(next);\n }, [setValue, getOutputValue]);\n\n const exec = useCallback(\n (command: string, arg?: string) => {\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(command, false, arg);\n handleInput();\n },\n [handleInput],\n );\n\n const insertText = useCallback(\n (text: string) => {\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(\"insertText\", false, text);\n handleInput();\n },\n [handleInput],\n );\n\n // The source textarea edits `value` directly — it is already the canonical\n // source in `outputFormat` (html or markdown), so no conversion round-trip.\n const handleSourceInput = useCallback(\n (next: string) => {\n // Also an internal emission — record it so typing in the source view is\n // not mistaken for an external change on every keystroke.\n lastEmitted.current = next;\n setValue(next);\n },\n [setValue],\n );\n\n const wrapSelection = useCallback(\n (before: string, after: string) => {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const selectedText = range.toString();\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(\"insertText\", false, `${before}${selectedText}${after}`);\n handleInput();\n },\n [handleInput],\n );\n\n const contextValue = {\n contentRef,\n exec,\n insertText,\n wrapSelection,\n outputFormat,\n lineSpacing,\n placeholder,\n extensions,\n showSource,\n setShowSource,\n _initialHtml: initialHtml,\n _onInput: handleInput,\n _sourceValue: value,\n _onSourceInput: handleSourceInput,\n };\n\n // View mode — render the value read-only through ContentRenderer, matching the\n // editor's own format (markdown/html), instead of the editable toolbar+content\n // tree. Driven by `mode` / a `<Form mode=\"view\">`, exactly like the inputs.\n if (isView) {\n return (\n <div\n data-react-fancy-editor=\"\"\n data-mode=\"view\"\n className={cn(\n \"overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900\",\n className,\n )}\n >\n <ContentRenderer\n value={value}\n format={valueFormat !== \"auto\" ? valueFormat : outputFormat}\n lineSpacing={lineSpacing}\n extensions={instanceExtensions}\n unsafe={unsafe}\n className=\"px-4 py-3\"\n />\n </div>\n );\n }\n\n return (\n <EditorContext.Provider value={contextValue}>\n <div\n data-react-fancy-editor=\"\"\n data-mode=\"edit\"\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900\",\n className,\n )}\n >\n {children}\n </div>\n </EditorContext.Provider>\n );\n}\n\nconst ToolbarWithSeparator = Object.assign(EditorToolbar, {\n Separator: EditorToolbarSeparator,\n});\n\nexport const Editor = Object.assign(EditorRoot, {\n Toolbar: ToolbarWithSeparator,\n Content: EditorContent,\n SourceToggle: EditorSourceToggle,\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Editor/Editor.context.ts","../src/components/Editor/EditorSourceToggle.tsx","../src/components/Editor/EditorToolbar.tsx","../src/components/Editor/EditorToolbarSeparator.tsx","../src/components/Editor/EditorContent.tsx","../src/components/Editor/Editor.tsx"],"names":["createContext","useContext","jsx","cn","jsxs","Fragment","useRef","useEffect","useMemo","extensionEditorClasses","CodeView","proseClasses","detectFormat","marked","sanitizeHtml","useControllableState","useFieldMode","useState","mergeExtensions","useCallback","htmlToMarkdown","ContentRenderer"],"mappings":"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","file":"chunk-HIOMHITU.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { RefObject } from \"react\";\nimport type { RenderExtension } from \"../ContentRenderer/extensions\";\n\nexport interface EditorContextValue {\n contentRef: RefObject<HTMLDivElement | null>;\n exec: (command: string, arg?: string) => void;\n insertText: (text: string) => void;\n wrapSelection: (before: string, after: string) => void;\n outputFormat: \"html\" | \"markdown\";\n lineSpacing: number;\n placeholder?: string;\n /** Merged render extensions (global + instance). */\n extensions: RenderExtension[];\n /** Whether the raw-source view (textarea) is showing instead of the rich-text surface. */\n showSource: boolean;\n /** Toggle/set the raw-source view. */\n setShowSource: (showSource: boolean) => void;\n /** Initial HTML content to load into the editor on mount */\n _initialHtml: string;\n /** @internal Called by EditorContent on input events */\n _onInput: () => void;\n /** @internal Raw source value (`value` in `outputFormat`), for the source textarea. */\n _sourceValue: string;\n /** @internal Commit an edit made directly in the source textarea. */\n _onSourceInput: (value: string) => void;\n}\n\nexport const EditorContext = createContext<EditorContextValue | null>(null);\n\nexport function useEditor(): EditorContextValue {\n const ctx = useContext(EditorContext);\n if (!ctx) {\n throw new Error(\"useEditor must be used within an <Editor> component\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport { useEditor } from \"./Editor.context\";\nimport type { EditorSourceToggleProps } from \"./Editor.types\";\n\n/**\n * Toolbar button that reveals the raw HTML/Markdown behind the editor. Reads\n * `showSource` / `setShowSource` from context, so it works in the default\n * toolbar and in any custom toolbar composed with `useEditor()`.\n */\nexport function EditorSourceToggle({\n className,\n icon = \"</>\",\n title = \"Source\",\n activeTitle = \"Rich text\",\n}: EditorSourceToggleProps) {\n const { showSource, setShowSource } = useEditor();\n\n return (\n <button\n type=\"button\"\n onClick={() => setShowSource(!showSource)}\n title={showSource ? activeTitle : title}\n aria-pressed={showSource}\n data-react-fancy-editor-source-toggle=\"\"\n className={cn(\n \"inline-flex h-8 items-center justify-center rounded-md px-2 font-mono text-xs transition-colors\",\n showSource\n ? \"bg-zinc-200 dark:bg-zinc-700\"\n : \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\n className,\n )}\n >\n {icon}\n </button>\n );\n}\n\nEditorSourceToggle.displayName = \"EditorSourceToggle\";\n","import { cn } from \"../../utils/cn\";\nimport { useEditor } from \"./Editor.context\";\nimport { EditorSourceToggle } from \"./EditorSourceToggle\";\nimport type { EditorToolbarProps } from \"./Editor.types\";\n\nconst DEFAULT_ACTIONS = [\n { icon: \"B\", label: \"Bold\", command: \"bold\" },\n { icon: \"I\", label: \"Italic\", command: \"italic\" },\n { icon: \"U\", label: \"Underline\", command: \"underline\" },\n { icon: \"S\", label: \"Strikethrough\", command: \"strikeThrough\" },\n];\n\nexport function EditorToolbar({\n actions = DEFAULT_ACTIONS,\n onAction,\n children,\n className,\n showSourceToggle = true,\n}: EditorToolbarProps) {\n const { exec, showSource } = useEditor();\n\n return (\n <div\n data-react-fancy-editor-toolbar=\"\"\n className={cn(\n \"flex shrink-0 items-center gap-0.5 border-b border-zinc-200 px-2 py-1.5 dark:border-zinc-700\",\n className,\n )}\n >\n {children ?? (\n <>\n {actions.map((action) => (\n <button\n key={`${action.command}-${action.commandArg ?? \"\"}`}\n type=\"button\"\n // Rich-text commands don't apply to the raw-source textarea.\n disabled={showSource}\n onClick={() => {\n if (onAction) {\n onAction(action.command);\n } else {\n exec(action.command, action.commandArg);\n }\n }}\n title={action.label}\n className={cn(\n \"inline-flex h-8 w-8 items-center justify-center rounded-md text-sm transition-colors\",\n action.active\n ? \"bg-zinc-200 dark:bg-zinc-700\"\n : \"hover:bg-zinc-100 dark:hover:bg-zinc-800\",\n showSource && \"cursor-not-allowed opacity-40 hover:bg-transparent\",\n )}\n >\n {action.icon}\n </button>\n ))}\n {showSourceToggle && <EditorSourceToggle className=\"ml-auto\" />}\n </>\n )}\n </div>\n );\n}\n\nEditorToolbar.displayName = \"EditorToolbar\";\n","export function EditorToolbarSeparator() {\n return (\n <span\n data-react-fancy-editor-toolbar-separator=\"\"\n className=\"mx-1 h-5 w-px bg-zinc-200 dark:bg-zinc-700\"\n />\n );\n}\n\nEditorToolbarSeparator.displayName = \"EditorToolbarSeparator\";\n","import { useEffect, useMemo, useRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { CodeView } from \"../CodeView\";\nimport { useEditor } from \"./Editor.context\";\nimport { proseClasses, extensionEditorClasses } from \"./editor.utils\";\nimport type { EditorContentProps } from \"./Editor.types\";\n\nexport function EditorContent({ className, maxHeight, sourceClassName }: EditorContentProps) {\n const {\n contentRef,\n lineSpacing,\n placeholder,\n extensions,\n outputFormat,\n showSource,\n _initialHtml,\n _onInput,\n _sourceValue,\n _onSourceInput,\n } = useEditor();\n // Tracks which seed HTML is currently in the contentEditable. Seeding on the\n // seed VALUE (not a one-shot boolean) re-seeds when the source view rewrites\n // `value`, while still never re-seeding on plain keystrokes — typing leaves\n // `_initialHtml` untouched, so `seededHtml.current === _initialHtml` holds.\n const seededHtml = useRef<string | null>(null);\n\n useEffect(() => {\n // Source view replaces the contentEditable in the tree, so it unmounts.\n // Forget what we seeded — the div that returns is a fresh, empty one and\n // must always be re-seeded, even if `value` was left untouched.\n if (showSource) {\n seededHtml.current = null;\n return;\n }\n const el = contentRef.current;\n if (el && seededHtml.current !== _initialHtml) {\n el.innerHTML = _initialHtml;\n seededHtml.current = _initialHtml;\n }\n }, [contentRef, _initialHtml, showSource]);\n\n const extClasses = useMemo(\n () => extensionEditorClasses(extensions),\n [extensions],\n );\n\n if (showSource) {\n // Raw-source view — a syntax-highlighted code surface (HTML highlighted;\n // markdown/plain un-highlighted), built on the shared fancy-file-commons\n // primitives. It's a DIRECT child of the flex-column editor root (no\n // wrapper — a nested flex box collapses the fill), so `flex-auto` makes it\n // fill the editor body when height-constrained and grow with content\n // (≥ minHeight) when not. `maxHeight` caps + scrolls.\n return (\n <CodeView\n value={_sourceValue}\n onChange={_onSourceInput}\n language={outputFormat === \"html\" ? \"html\" : \"plaintext\"}\n placeholder={placeholder}\n maxHeight={maxHeight}\n className={cn(\"min-h-0 flex-auto\", sourceClassName)}\n />\n );\n }\n\n return (\n <div\n ref={contentRef}\n contentEditable\n suppressContentEditableWarning\n data-react-fancy-editor-content=\"\"\n data-placeholder={placeholder}\n onInput={_onInput}\n style={{\n lineHeight: lineSpacing,\n maxHeight: maxHeight ? `${maxHeight}px` : undefined,\n }}\n className={cn(\n \"min-h-[120px] flex-auto overflow-y-auto px-4 py-3 text-sm outline-none\",\n \"focus:outline-none\",\n proseClasses,\n extClasses,\n \"empty:before:content-[attr(data-placeholder)] empty:before:text-zinc-400 empty:before:pointer-events-none\",\n className,\n )}\n />\n );\n}\n\nEditorContent.displayName = \"EditorContent\";\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport { marked } from \"marked\";\nimport { cn } from \"../../utils/cn\";\nimport { sanitizeHtml } from \"../../utils/sanitize\";\nimport { useControllableState } from \"../../hooks\";\nimport { EditorContext } from \"./Editor.context\";\nimport { EditorToolbar } from \"./EditorToolbar\";\nimport { EditorToolbarSeparator } from \"./EditorToolbarSeparator\";\nimport { EditorSourceToggle } from \"./EditorSourceToggle\";\nimport { EditorContent } from \"./EditorContent\";\nimport { htmlToMarkdown, detectFormat } from \"./editor.utils\";\nimport { mergeExtensions } from \"../ContentRenderer/extensions\";\nimport { ContentRenderer } from \"../ContentRenderer/ContentRenderer\";\nimport { useFieldMode } from \"../inputs/mode/FieldMode.context\";\nimport type { EditorProps } from \"./Editor.types\";\n\nfunction toHtml(\n value: string,\n outputFormat: \"html\" | \"markdown\",\n unsafe: boolean,\n valueFormat: \"markdown\" | \"html\" | \"auto\" = \"auto\",\n): string {\n if (!value) return \"\";\n const raw = (() => {\n // An explicit valueFormat is authoritative — the sniff misclassifies\n // markdown that merely MENTIONS HTML-ish snippets (`<code>`, `<table`),\n // collapsing it into an innerHTML wall of text (#10).\n const format =\n valueFormat !== \"auto\"\n ? valueFormat\n : outputFormat === \"html\"\n ? \"html\"\n : detectFormat(value);\n if (format === \"html\") return value;\n return (marked.parse(value, { async: false }) as string).trim();\n })();\n return unsafe ? raw : sanitizeHtml(raw);\n}\n\nfunction EditorRoot({\n children,\n className,\n value: controlledValue,\n defaultValue = \"\",\n onChange,\n outputFormat = \"html\",\n valueFormat = \"auto\",\n lineSpacing = 1.6,\n placeholder,\n mode: modeProp,\n extensions: instanceExtensions,\n unsafe = false,\n showSource: showSourceProp,\n defaultShowSource = false,\n onShowSourceChange,\n}: EditorProps) {\n const contentRef = useRef<HTMLDivElement | null>(null);\n const [value, setValue] = useControllableState(controlledValue, defaultValue, onChange);\n const [showSource, setShowSource] = useControllableState(\n showSourceProp,\n defaultShowSource,\n onShowSourceChange,\n );\n // View/edit mode — same resolution as the inputs: prop → <Form> context → \"edit\".\n const mode = useFieldMode(modeProp);\n const isView = mode === \"view\";\n\n // The value this editor last emitted through `onChange`. An incoming `value`\n // equal to it is our own keystroke echoing back; anything else came from\n // OUTSIDE — an async load, a host reset, a form repopulating.\n const lastEmitted = useRef<string | null>(null);\n\n // Bumped only on an external `value` change, so the seed memo below recomputes\n // for those and stays put while the user types. Without this, `value` was\n // excluded from the deps to avoid re-seeding on keystrokes, which also meant a\n // value arriving after mount was silently dropped and the editor stayed blank\n // forever (#15).\n const [externalSeed, setExternalSeed] = useState(0);\n useEffect(() => {\n if (value !== lastEmitted.current) setExternalSeed((n) => n + 1);\n }, [value]);\n\n const initialHtml = useMemo(\n () => toHtml(value, outputFormat, unsafe, valueFormat),\n // Seed the contentEditable from the LIVE value when (re)entering edit mode —\n // and when returning from the raw-source view, which may have rewritten the\n // value out from under the rich-text surface. `value` itself stays out of\n // the deps so typing never re-seeds (which would fight the caret);\n // `externalSeed` covers the externally-driven case instead.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [isView, outputFormat, unsafe, valueFormat, showSource, externalSeed],\n );\n\n const extensions = useMemo(\n () => mergeExtensions(instanceExtensions),\n [instanceExtensions],\n );\n\n const getOutputValue = useCallback(\n (html: string): string => {\n return outputFormat === \"markdown\" ? htmlToMarkdown(html) : html;\n },\n [outputFormat],\n );\n\n const handleInput = useCallback(() => {\n const el = contentRef.current;\n if (!el) return;\n const next = getOutputValue(el.innerHTML);\n // Record what we emitted BEFORE publishing it, so the value coming back in\n // is recognised as our own and does not trigger a re-seed mid-keystroke.\n lastEmitted.current = next;\n setValue(next);\n }, [setValue, getOutputValue]);\n\n const exec = useCallback(\n (command: string, arg?: string) => {\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(command, false, arg);\n handleInput();\n },\n [handleInput],\n );\n\n const insertText = useCallback(\n (text: string) => {\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(\"insertText\", false, text);\n handleInput();\n },\n [handleInput],\n );\n\n // The source textarea edits `value` directly — it is already the canonical\n // source in `outputFormat` (html or markdown), so no conversion round-trip.\n const handleSourceInput = useCallback(\n (next: string) => {\n // Also an internal emission — record it so typing in the source view is\n // not mistaken for an external change on every keystroke.\n lastEmitted.current = next;\n setValue(next);\n },\n [setValue],\n );\n\n const wrapSelection = useCallback(\n (before: string, after: string) => {\n const sel = window.getSelection();\n if (!sel || sel.rangeCount === 0) return;\n const range = sel.getRangeAt(0);\n const selectedText = range.toString();\n const el = contentRef.current;\n if (!el) return;\n el.focus();\n document.execCommand(\"insertText\", false, `${before}${selectedText}${after}`);\n handleInput();\n },\n [handleInput],\n );\n\n const contextValue = {\n contentRef,\n exec,\n insertText,\n wrapSelection,\n outputFormat,\n lineSpacing,\n placeholder,\n extensions,\n showSource,\n setShowSource,\n _initialHtml: initialHtml,\n _onInput: handleInput,\n _sourceValue: value,\n _onSourceInput: handleSourceInput,\n };\n\n // View mode — render the value read-only through ContentRenderer, matching the\n // editor's own format (markdown/html), instead of the editable toolbar+content\n // tree. Driven by `mode` / a `<Form mode=\"view\">`, exactly like the inputs.\n if (isView) {\n return (\n <div\n data-react-fancy-editor=\"\"\n data-mode=\"view\"\n className={cn(\n \"overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900\",\n className,\n )}\n >\n <ContentRenderer\n value={value}\n format={valueFormat !== \"auto\" ? valueFormat : outputFormat}\n lineSpacing={lineSpacing}\n extensions={instanceExtensions}\n unsafe={unsafe}\n className=\"px-4 py-3\"\n />\n </div>\n );\n }\n\n return (\n <EditorContext.Provider value={contextValue}>\n <div\n data-react-fancy-editor=\"\"\n data-mode=\"edit\"\n className={cn(\n \"flex flex-col overflow-hidden rounded-xl border border-zinc-200 bg-white dark:border-zinc-700 dark:bg-zinc-900\",\n className,\n )}\n >\n {children}\n </div>\n </EditorContext.Provider>\n );\n}\n\nconst ToolbarWithSeparator = Object.assign(EditorToolbar, {\n Separator: EditorToolbarSeparator,\n});\n\nexport const Editor = Object.assign(EditorRoot, {\n Toolbar: ToolbarWithSeparator,\n Content: EditorContent,\n SourceToggle: EditorSourceToggle,\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-MMW2JGKZ.js';
|
|
2
2
|
import { forwardRef } from 'react';
|
|
3
3
|
import { X } from 'lucide-react';
|
|
4
4
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
@@ -95,5 +95,5 @@ var Callout = forwardRef(
|
|
|
95
95
|
Callout.displayName = "Callout";
|
|
96
96
|
|
|
97
97
|
export { Callout };
|
|
98
|
-
//# sourceMappingURL=chunk-
|
|
99
|
-
//# sourceMappingURL=chunk-
|
|
98
|
+
//# sourceMappingURL=chunk-HOP3XXPV.js.map
|
|
99
|
+
//# sourceMappingURL=chunk-HOP3XXPV.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Callout/Callout.colors.ts","../src/components/Callout/Callout.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/Callout/Callout.colors.ts","../src/components/Callout/Callout.tsx"],"names":[],"mappings":"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","file":"chunk-HOP3XXPV.js","sourcesContent":["// AUTO-GENERATED by scripts/gen-callout-colors — do not edit by hand.\n// Literal Tailwind class strings for every color in the v4 palette so the\n// scanner can detect them in the published dist (template-built names are\n// invisible to Tailwind's JIT). Regenerate after changing the palette.\nimport type { Color } from \"../../utils/types\";\n\nexport const calloutContainer: Record<Color, string> = {\n slate: \"border-slate-500 bg-slate-50 text-slate-900 dark:border-slate-400 dark:bg-slate-950/50 dark:text-slate-100\",\n gray: \"border-gray-500 bg-gray-50 text-gray-900 dark:border-gray-400 dark:bg-gray-950/50 dark:text-gray-100\",\n zinc: \"border-zinc-500 bg-zinc-50 text-zinc-900 dark:border-zinc-400 dark:bg-zinc-950/50 dark:text-zinc-100\",\n neutral: \"border-neutral-500 bg-neutral-50 text-neutral-900 dark:border-neutral-400 dark:bg-neutral-950/50 dark:text-neutral-100\",\n stone: \"border-stone-500 bg-stone-50 text-stone-900 dark:border-stone-400 dark:bg-stone-950/50 dark:text-stone-100\",\n red: \"border-red-500 bg-red-50 text-red-900 dark:border-red-400 dark:bg-red-950/50 dark:text-red-100\",\n orange: \"border-orange-500 bg-orange-50 text-orange-900 dark:border-orange-400 dark:bg-orange-950/50 dark:text-orange-100\",\n amber: \"border-amber-500 bg-amber-50 text-amber-900 dark:border-amber-400 dark:bg-amber-950/50 dark:text-amber-100\",\n yellow: \"border-yellow-500 bg-yellow-50 text-yellow-900 dark:border-yellow-400 dark:bg-yellow-950/50 dark:text-yellow-100\",\n lime: \"border-lime-500 bg-lime-50 text-lime-900 dark:border-lime-400 dark:bg-lime-950/50 dark:text-lime-100\",\n green: \"border-green-500 bg-green-50 text-green-900 dark:border-green-400 dark:bg-green-950/50 dark:text-green-100\",\n emerald: \"border-emerald-500 bg-emerald-50 text-emerald-900 dark:border-emerald-400 dark:bg-emerald-950/50 dark:text-emerald-100\",\n teal: \"border-teal-500 bg-teal-50 text-teal-900 dark:border-teal-400 dark:bg-teal-950/50 dark:text-teal-100\",\n cyan: \"border-cyan-500 bg-cyan-50 text-cyan-900 dark:border-cyan-400 dark:bg-cyan-950/50 dark:text-cyan-100\",\n sky: \"border-sky-500 bg-sky-50 text-sky-900 dark:border-sky-400 dark:bg-sky-950/50 dark:text-sky-100\",\n blue: \"border-blue-500 bg-blue-50 text-blue-900 dark:border-blue-400 dark:bg-blue-950/50 dark:text-blue-100\",\n indigo: \"border-indigo-500 bg-indigo-50 text-indigo-900 dark:border-indigo-400 dark:bg-indigo-950/50 dark:text-indigo-100\",\n violet: \"border-violet-500 bg-violet-50 text-violet-900 dark:border-violet-400 dark:bg-violet-950/50 dark:text-violet-100\",\n purple: \"border-purple-500 bg-purple-50 text-purple-900 dark:border-purple-400 dark:bg-purple-950/50 dark:text-purple-100\",\n fuchsia: \"border-fuchsia-500 bg-fuchsia-50 text-fuchsia-900 dark:border-fuchsia-400 dark:bg-fuchsia-950/50 dark:text-fuchsia-100\",\n pink: \"border-pink-500 bg-pink-50 text-pink-900 dark:border-pink-400 dark:bg-pink-950/50 dark:text-pink-100\",\n rose: \"border-rose-500 bg-rose-50 text-rose-900 dark:border-rose-400 dark:bg-rose-950/50 dark:text-rose-100\",\n};\n\nexport const calloutIcon: Record<Color, string> = {\n slate: \"text-slate-500 dark:text-slate-400\",\n gray: \"text-gray-500 dark:text-gray-400\",\n zinc: \"text-zinc-500 dark:text-zinc-400\",\n neutral: \"text-neutral-500 dark:text-neutral-400\",\n stone: \"text-stone-500 dark:text-stone-400\",\n red: \"text-red-500 dark:text-red-400\",\n orange: \"text-orange-500 dark:text-orange-400\",\n amber: \"text-amber-500 dark:text-amber-400\",\n yellow: \"text-yellow-500 dark:text-yellow-400\",\n lime: \"text-lime-500 dark:text-lime-400\",\n green: \"text-green-500 dark:text-green-400\",\n emerald: \"text-emerald-500 dark:text-emerald-400\",\n teal: \"text-teal-500 dark:text-teal-400\",\n cyan: \"text-cyan-500 dark:text-cyan-400\",\n sky: \"text-sky-500 dark:text-sky-400\",\n blue: \"text-blue-500 dark:text-blue-400\",\n indigo: \"text-indigo-500 dark:text-indigo-400\",\n violet: \"text-violet-500 dark:text-violet-400\",\n purple: \"text-purple-500 dark:text-purple-400\",\n fuchsia: \"text-fuchsia-500 dark:text-fuchsia-400\",\n pink: \"text-pink-500 dark:text-pink-400\",\n rose: \"text-rose-500 dark:text-rose-400\",\n};\n","import { forwardRef } from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport type { CalloutProps } from \"./Callout.types\";\nimport { calloutContainer, calloutIcon } from \"./Callout.colors\";\n\nexport const Callout = forwardRef<HTMLDivElement, CalloutProps>(\n (\n {\n children,\n color = \"blue\",\n icon,\n dismissible = false,\n onDismiss,\n className,\n },\n ref,\n ) => {\n return (\n <div\n ref={ref}\n role=\"alert\"\n data-react-fancy-callout=\"\"\n className={cn(\n \"flex items-start gap-3 rounded-lg border-l-4 p-4\",\n calloutContainer[color],\n className,\n )}\n >\n {icon && (\n <span className={cn(\"mt-0.5 shrink-0\", calloutIcon[color])}>\n {icon}\n </span>\n )}\n <div className=\"min-w-0 flex-1\">{children}</div>\n {dismissible && (\n <button\n type=\"button\"\n onClick={onDismiss}\n className={cn(\n \"shrink-0 rounded p-0.5 opacity-70 transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-current\",\n )}\n aria-label=\"Dismiss\"\n >\n <X size={16} />\n </button>\n )}\n </div>\n );\n },\n);\n\nCallout.displayName = \"Callout\";\n"]}
|