@particle-academy/react-fancy 5.21.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-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-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 +6 -6
- package/dist/editor.js +4 -4
- 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 +220 -220
- package/dist/index.d.cts +7 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.js +87 -87
- 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 +4 -4
- package/dist/mobile-menu.js +2 -2
- 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 +4 -4
- package/dist/sidebar.js +2 -2
- 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 +1 -2
- 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
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/inputs/Input/Input.tsx"],"names":[],"mappings":"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","file":"chunk-DDRHCFUE.js","sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { InputWrapper } from \"../InputWrapper\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport type { InputProps } from \"./Input.types\";\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = \"text\",\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n leading,\n trailing,\n prefix,\n suffix,\n prefixPosition,\n suffixPosition,\n mode,\n onValueChange,\n onChange,\n reveal,\n revealed,\n onRevealedChange,\n revealLabel = \"Show password\",\n hideLabel = \"Hide password\",\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n // Only meaningful on a password field: a reveal on an already-visible input\n // is a button that does nothing.\n const canReveal = reveal === true && type === \"password\";\n const [isRevealed, setRevealed] = useControllableState(revealed, false, onRevealedChange);\n const shown = canReveal && isRevealed;\n // The rendered type, NOT the declared one — `type` stays \"password\" so the\n // display-mode masking below and any caller reading props are unaffected.\n const renderedType = shown ? \"text\" : type;\n\n const input = !showControl ? (\n <DisplayValue\n size={size}\n interactive={interactive}\n onActivate={enterEdit}\n leading={leading ?? prefix}\n trailing={trailing ?? suffix}\n >\n {type === \"password\" ? (props.value ? \"••••••\" : \"\") : (props.value as string | undefined)}\n </DisplayValue>\n ) : (\n <InputWrapper\n prefix={prefix}\n suffix={suffix}\n prefixPosition={prefixPosition}\n suffixPosition={suffixPosition}\n size={size}\n >\n <div data-react-fancy-input=\"\" className=\"relative flex items-center\">\n {leading && (\n <span className=\"pointer-events-none absolute left-3 text-zinc-400 dark:text-zinc-500\">\n {leading}\n </span>\n )}\n <input\n ref={ref}\n id={inputId}\n type={renderedType}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full\",\n leading && \"pl-9\",\n (trailing || canReveal) && \"pr-9\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n // Inline click-to-edit: focus on entering edit, return to the display\n // (and run the host's onBlur) when focus leaves.\n autoFocus={interactive || props.autoFocus}\n onBlur={(e) => {\n props.onBlur?.(e);\n if (interactive) exitEdit();\n }}\n />\n {canReveal ? (\n <button\n type=\"button\"\n // type=\"button\" is load-bearing: the default is \"submit\", so a\n // reveal inside a login form would submit it on every click.\n id={`${inputId}-reveal`}\n data-react-fancy-reveal=\"\"\n onClick={() => setRevealed((v) => !v)}\n disabled={disabled}\n aria-controls={inputId}\n aria-pressed={shown}\n aria-label={shown ? hideLabel : revealLabel}\n title={shown ? hideLabel : revealLabel}\n // Not focusable by tab: the field and the submit button are the\n // path through a login form, and a reveal in between is a stop\n // most people do not want. Still reachable by click and by\n // screen readers.\n tabIndex={-1}\n className=\"absolute right-2 inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 disabled:cursor-not-allowed disabled:opacity-50 dark:text-zinc-500 dark:hover:text-zinc-300\"\n >\n {shown ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n ) : (\n trailing && (\n <span className=\"pointer-events-none absolute right-3 text-zinc-400 dark:text-zinc-500\">\n {trailing}\n </span>\n )\n )}\n </div>\n </InputWrapper>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={inputId}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nInput.displayName = \"Input\";\n\n/**\n * Inline SVGs rather than the Icon component: Input is the most-installed\n * primitive in the kit, and routing it through the icon registry would make\n * every consumer's password field depend on an icon set being configured.\n */\nfunction EyeIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\nfunction EyeOffIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/inputs/Input/Input.tsx"],"names":[],"mappings":";;;;;;;;;;;AAgBO,IAAM,KAAA,GAAQ,UAAA;AAAA,EACnB,CACE;AAAA,IACE,IAAA,GAAO,MAAA;AAAA,IACP,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,OAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,cAAA;AAAA,IACA,cAAA;AAAA,IACA,IAAA;AAAA,IACA,aAAA;AAAA,IACA,QAAA;AAAA,IACA,MAAA;AAAA,IACA,QAAA;AAAA,IACA,gBAAA;AAAA,IACA,WAAA,GAAc,eAAA;AAAA,IACd,SAAA,GAAY,eAAA;AAAA,IACZ,GAAG;AAAA,KAEL,GAAA,KACG;AACH,IAAA,MAAM,SAAS,KAAA,EAAM;AACrB,IAAA,MAAM,UAAU,EAAA,IAAM,MAAA;AACtB,IAAA,MAAM,YAAA,GAAe,aAAa,IAAI,CAAA;AACtC,IAAA,MAAM,EAAE,aAAa,WAAA,EAAa,SAAA,EAAW,UAAS,GAAI,aAAA,CAAc,cAAc,QAAQ,CAAA;AAI9F,IAAA,MAAM,SAAA,GAAY,MAAA,KAAW,IAAA,IAAQ,IAAA,KAAS,UAAA;AAC9C,IAAA,MAAM,CAAC,UAAA,EAAY,WAAW,IAAI,oBAAA,CAAqB,QAAA,EAAU,OAAO,gBAAgB,CAAA;AACxF,IAAA,MAAM,QAAQ,SAAA,IAAa,UAAA;AAG3B,IAAA,MAAM,YAAA,GAAe,QAAQ,MAAA,GAAS,IAAA;AAEtC,IAAA,MAAM,KAAA,GAAQ,CAAC,WAAA,mBACb,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,IAAA;AAAA,QACA,WAAA;AAAA,QACA,UAAA,EAAY,SAAA;AAAA,QACZ,SAAS,OAAA,IAAW,MAAA;AAAA,QACpB,UAAU,QAAA,IAAY,MAAA;AAAA,QAErB,mBAAS,UAAA,GAAc,KAAA,CAAM,KAAA,GAAQ,sCAAA,GAAW,KAAO,KAAA,CAAM;AAAA;AAAA,KAChE,mBAEA,GAAA;AAAA,MAAC,YAAA;AAAA,MAAA;AAAA,QACC,MAAA;AAAA,QACA,MAAA;AAAA,QACA,cAAA;AAAA,QACA,cAAA;AAAA,QACA,IAAA;AAAA,QAEA,QAAA,kBAAA,IAAA,CAAC,KAAA,EAAA,EAAI,wBAAA,EAAuB,EAAA,EAAG,WAAU,4BAAA,EACtC,QAAA,EAAA;AAAA,UAAA,OAAA,oBACC,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,sEAAA,EACb,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,0BAEF,GAAA;AAAA,YAAC,OAAA;AAAA,YAAA;AAAA,cACC,GAAA;AAAA,cACA,EAAA,EAAI,OAAA;AAAA,cACJ,IAAA,EAAM,YAAA;AAAA,cACN,QAAA;AAAA,cACA,QAAA;AAAA,cACA,SAAA,EAAW,EAAA;AAAA,gBACT,gBAAA;AAAA,gBACA,iBAAiB,IAAI,CAAA;AAAA,gBACrB,aAAa,KAAK,CAAA;AAAA,gBAClB,aAAa,KAAK,CAAA;AAAA,gBAClB,QAAA;AAAA,gBACA,OAAA,IAAW,MAAA;AAAA,gBAAA,CACV,YAAY,SAAA,KAAc,MAAA;AAAA,gBAC3B;AAAA,eACF;AAAA,cACA,QAAA,EAAU,CAAC,CAAA,KAAM;AACf,gBAAA,QAAA,GAAW,CAAC,CAAA;AACZ,gBAAA,aAAA,GAAgB,CAAA,CAAE,OAAO,KAAK,CAAA;AAAA,cAChC,CAAA;AAAA,cACC,GAAG,KAAA;AAAA,cAGJ,SAAA,EAAW,eAAe,KAAA,CAAM,SAAA;AAAA,cAChC,MAAA,EAAQ,CAAC,CAAA,KAAM;AACb,gBAAA,KAAA,CAAM,SAAS,CAAC,CAAA;AAChB,gBAAA,IAAI,aAAa,QAAA,EAAS;AAAA,cAC5B;AAAA;AAAA,WACF;AAAA,UACC,SAAA,mBACC,GAAA;AAAA,YAAC,QAAA;AAAA,YAAA;AAAA,cACC,IAAA,EAAK,QAAA;AAAA,cAGL,EAAA,EAAI,GAAG,OAAO,CAAA,OAAA,CAAA;AAAA,cACd,yBAAA,EAAwB,EAAA;AAAA,cACxB,SAAS,MAAM,WAAA,CAAY,CAAC,CAAA,KAAM,CAAC,CAAC,CAAA;AAAA,cACpC,QAAA;AAAA,cACA,eAAA,EAAe,OAAA;AAAA,cACf,cAAA,EAAc,KAAA;AAAA,cACd,YAAA,EAAY,QAAQ,SAAA,GAAY,WAAA;AAAA,cAChC,KAAA,EAAO,QAAQ,SAAA,GAAY,WAAA;AAAA,cAK3B,QAAA,EAAU,EAAA;AAAA,cACV,SAAA,EAAU,qSAAA;AAAA,cAET,QAAA,EAAA,KAAA,mBAAQ,GAAA,CAAC,UAAA,EAAA,EAAW,CAAA,uBAAM,OAAA,EAAA,EAAQ;AAAA;AAAA,cAGrC,QAAA,oBACE,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAU,yEACb,QAAA,EAAA,QAAA,EACH;AAAA,SAAA,EAGN;AAAA;AAAA,KACF;AAGF,IAAA,IAAI,KAAA,IAAS,SAAS,WAAA,EAAa;AACjC,MAAA,uBACE,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA;AAAA,UACA,WAAA;AAAA,UACA,KAAA;AAAA,UACA,QAAA;AAAA,UACA,OAAA,EAAS,OAAA;AAAA,UACT,IAAA;AAAA,UAEC,QAAA,EAAA;AAAA;AAAA,OACH;AAAA,IAEJ;AAEA,IAAA,OAAO,KAAA;AAAA,EACT;AACF;AAEA,KAAA,CAAM,WAAA,GAAc,OAAA;AAOpB,SAAS,OAAA,GAAU;AACjB,EAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,SAAQ,WAAA,EAAY,IAAA,EAAK,QAAO,MAAA,EAAO,cAAA,EAAe,aAAY,GAAA,EAAI,aAAA,EAAc,SAAQ,cAAA,EAAe,OAAA,EAAQ,eAAY,MAAA,EACzJ,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,uGAAA,EAAwG,CAAA;AAAA,wBAC/G,QAAA,EAAA,EAAO,EAAA,EAAG,MAAK,EAAA,EAAG,IAAA,EAAK,GAAE,GAAA,EAAI;AAAA,GAAA,EAChC,CAAA;AAEJ;AAEA,SAAS,UAAA,GAAa;AACpB,EAAA,4BACG,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,SAAQ,WAAA,EAAY,IAAA,EAAK,QAAO,MAAA,EAAO,cAAA,EAAe,aAAY,GAAA,EAAI,aAAA,EAAc,SAAQ,cAAA,EAAe,OAAA,EAAQ,eAAY,MAAA,EACzJ,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,GAAE,gGAAA,EAAiG,CAAA;AAAA,oBACzG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,sCAAA,EAAuC,CAAA;AAAA,oBAC/C,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,8FAAA,EAA+F,CAAA;AAAA,oBACvG,GAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,YAAA,EAAa;AAAA,GAAA,EACvB,CAAA;AAEJ","file":"chunk-PVQBXEV3.js","sourcesContent":["import { forwardRef, useId } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { useControllableState } from \"../../../hooks/use-controllable-state\";\nimport { Field } from \"../Field\";\nimport { InputWrapper } from \"../InputWrapper\";\nimport {\n dirtyClasses,\n errorClasses,\n inputBaseClasses,\n inputSizeClasses,\n} from \"../inputs.utils\";\nimport { useFieldMode } from \"../mode/FieldMode.context\";\nimport { DisplayValue } from \"../mode/DisplayValue\";\nimport { useInlineEdit } from \"../mode/useInlineEdit\";\nimport type { InputProps } from \"./Input.types\";\n\nexport const Input = forwardRef<HTMLInputElement, InputProps>(\n (\n {\n type = \"text\",\n size = \"md\",\n dirty,\n error,\n label,\n description,\n required,\n disabled,\n className,\n id,\n leading,\n trailing,\n prefix,\n suffix,\n prefixPosition,\n suffixPosition,\n mode,\n onValueChange,\n onChange,\n reveal,\n revealed,\n onRevealedChange,\n revealLabel = \"Show password\",\n hideLabel = \"Hide password\",\n ...props\n },\n ref,\n ) => {\n const autoId = useId();\n const inputId = id ?? autoId;\n const resolvedMode = useFieldMode(mode);\n const { showControl, interactive, enterEdit, exitEdit } = useInlineEdit(resolvedMode, disabled);\n\n // Only meaningful on a password field: a reveal on an already-visible input\n // is a button that does nothing.\n const canReveal = reveal === true && type === \"password\";\n const [isRevealed, setRevealed] = useControllableState(revealed, false, onRevealedChange);\n const shown = canReveal && isRevealed;\n // The rendered type, NOT the declared one — `type` stays \"password\" so the\n // display-mode masking below and any caller reading props are unaffected.\n const renderedType = shown ? \"text\" : type;\n\n const input = !showControl ? (\n <DisplayValue\n size={size}\n interactive={interactive}\n onActivate={enterEdit}\n leading={leading ?? prefix}\n trailing={trailing ?? suffix}\n >\n {type === \"password\" ? (props.value ? \"••••••\" : \"\") : (props.value as string | undefined)}\n </DisplayValue>\n ) : (\n <InputWrapper\n prefix={prefix}\n suffix={suffix}\n prefixPosition={prefixPosition}\n suffixPosition={suffixPosition}\n size={size}\n >\n <div data-react-fancy-input=\"\" className=\"relative flex items-center\">\n {leading && (\n <span className=\"pointer-events-none absolute left-3 text-zinc-400 dark:text-zinc-500\">\n {leading}\n </span>\n )}\n <input\n ref={ref}\n id={inputId}\n type={renderedType}\n disabled={disabled}\n required={required}\n className={cn(\n inputBaseClasses,\n inputSizeClasses[size],\n dirtyClasses(dirty),\n errorClasses(error),\n \"w-full\",\n leading && \"pl-9\",\n (trailing || canReveal) && \"pr-9\",\n className,\n )}\n onChange={(e) => {\n onChange?.(e);\n onValueChange?.(e.target.value);\n }}\n {...props}\n // Inline click-to-edit: focus on entering edit, return to the display\n // (and run the host's onBlur) when focus leaves.\n autoFocus={interactive || props.autoFocus}\n onBlur={(e) => {\n props.onBlur?.(e);\n if (interactive) exitEdit();\n }}\n />\n {canReveal ? (\n <button\n type=\"button\"\n // type=\"button\" is load-bearing: the default is \"submit\", so a\n // reveal inside a login form would submit it on every click.\n id={`${inputId}-reveal`}\n data-react-fancy-reveal=\"\"\n onClick={() => setRevealed((v) => !v)}\n disabled={disabled}\n aria-controls={inputId}\n aria-pressed={shown}\n aria-label={shown ? hideLabel : revealLabel}\n title={shown ? hideLabel : revealLabel}\n // Not focusable by tab: the field and the submit button are the\n // path through a login form, and a reveal in between is a stop\n // most people do not want. Still reachable by click and by\n // screen readers.\n tabIndex={-1}\n className=\"absolute right-2 inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-600 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-blue-500/40 disabled:cursor-not-allowed disabled:opacity-50 dark:text-zinc-500 dark:hover:text-zinc-300\"\n >\n {shown ? <EyeOffIcon /> : <EyeIcon />}\n </button>\n ) : (\n trailing && (\n <span className=\"pointer-events-none absolute right-3 text-zinc-400 dark:text-zinc-500\">\n {trailing}\n </span>\n )\n )}\n </div>\n </InputWrapper>\n );\n\n if (label || error || description) {\n return (\n <Field\n label={label}\n description={description}\n error={error}\n required={required}\n htmlFor={inputId}\n size={size}\n >\n {input}\n </Field>\n );\n }\n\n return input;\n },\n);\n\nInput.displayName = \"Input\";\n\n/**\n * Inline SVGs rather than the Icon component: Input is the most-installed\n * primitive in the kit, and routing it through the icon registry would make\n * every consumer's password field depend on an icon set being configured.\n */\nfunction EyeIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0\" />\n <circle cx=\"12\" cy=\"12\" r=\"3\" />\n </svg>\n );\n}\n\nfunction EyeOffIcon() {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\" aria-hidden=\"true\">\n <path d=\"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49\" />\n <path d=\"M14.084 14.158a3 3 0 0 1-4.242-4.242\" />\n <path d=\"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143\" />\n <path d=\"m2 2 20 20\" />\n </svg>\n );\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cn } from './chunk-
|
|
1
|
+
import { cn } from './chunk-MMW2JGKZ.js';
|
|
2
2
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
|
|
4
4
|
var insidePaddingLeft = {
|
|
@@ -82,5 +82,5 @@ function InputWrapper({
|
|
|
82
82
|
}
|
|
83
83
|
|
|
84
84
|
export { InputWrapper };
|
|
85
|
-
//# sourceMappingURL=chunk-
|
|
86
|
-
//# sourceMappingURL=chunk-
|
|
85
|
+
//# sourceMappingURL=chunk-PWEZCMIY.js.map
|
|
86
|
+
//# sourceMappingURL=chunk-PWEZCMIY.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/inputs/InputWrapper.tsx"],"names":[],"mappings":"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","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/inputs/InputWrapper.tsx"],"names":[],"mappings":"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","file":"chunk-PWEZCMIY.js","sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { AffixPosition } from \"./inputs.types\";\nimport type { Size } from \"../../utils/types\";\n\ninterface InputWrapperProps {\n children: ReactNode;\n prefix?: ReactNode;\n suffix?: ReactNode;\n prefixPosition?: AffixPosition;\n suffixPosition?: AffixPosition;\n size?: Size;\n /** Extra padding className to apply to the input when affixes are \"inside\" */\n insidePrefixPadding?: string;\n insideSuffixPadding?: string;\n}\n\n// NOTE: these must be COMPLETE, static class strings. Tailwind only detects\n// utilities it can see verbatim in the source — building the arbitrary variant\n// at runtime (e.g. `[&_input]:${\"pl-9\"}`) means `[&_input]:pl-9` is never\n// emitted to CSS, so the inside affix gets no padding and overlaps the text\n// (issue #6). Keep input/select/textarea spelled out here.\nconst insidePaddingLeft: Record<Size, string> = {\n xs: \"[&_input]:pl-7 [&_select]:pl-7 [&_textarea]:pl-7\",\n sm: \"[&_input]:pl-8 [&_select]:pl-8 [&_textarea]:pl-8\",\n md: \"[&_input]:pl-9 [&_select]:pl-9 [&_textarea]:pl-9\",\n lg: \"[&_input]:pl-10 [&_select]:pl-10 [&_textarea]:pl-10\",\n xl: \"[&_input]:pl-11 [&_select]:pl-11 [&_textarea]:pl-11\",\n};\n\nconst insidePaddingRight: Record<Size, string> = {\n xs: \"[&_input]:pr-7 [&_select]:pr-7 [&_textarea]:pr-7\",\n sm: \"[&_input]:pr-8 [&_select]:pr-8 [&_textarea]:pr-8\",\n md: \"[&_input]:pr-9 [&_select]:pr-9 [&_textarea]:pr-9\",\n lg: \"[&_input]:pr-10 [&_select]:pr-10 [&_textarea]:pr-10\",\n xl: \"[&_input]:pr-11 [&_select]:pr-11 [&_textarea]:pr-11\",\n};\n\nconst affixOutsideClasses =\n \"inline-flex items-center border border-zinc-300 bg-zinc-50 px-3 text-sm text-zinc-500 dark:border-zinc-700 dark:bg-zinc-800 dark:text-zinc-400\";\n\nexport function InputWrapper({\n children,\n prefix,\n suffix,\n prefixPosition = \"inside\",\n suffixPosition = \"inside\",\n size = \"md\",\n}: InputWrapperProps) {\n const hasInsidePrefix = prefix && prefixPosition === \"inside\";\n const hasInsideSuffix = suffix && suffixPosition === \"inside\";\n const hasOutsidePrefix = prefix && prefixPosition === \"outside\";\n const hasOutsideSuffix = suffix && suffixPosition === \"outside\";\n const hasOutside = hasOutsidePrefix || hasOutsideSuffix;\n\n if (!prefix && !suffix) {\n return <>{children}</>;\n }\n\n if (hasOutside) {\n return (\n <div data-react-fancy-input-wrapper=\"\" className=\"flex\">\n {hasOutsidePrefix && (\n <span className={cn(affixOutsideClasses, \"rounded-l-lg border-r-0\")}>\n {prefix}\n </span>\n )}\n <div\n className={cn(\n \"relative flex flex-1 items-center\",\n hasInsidePrefix && \"relative\",\n )}\n >\n {hasInsidePrefix && (\n <span className=\"pointer-events-none absolute left-3 z-10 text-zinc-400 dark:text-zinc-500\">\n {prefix}\n </span>\n )}\n <div\n className={cn(\n \"w-full [&>*]:w-full\",\n hasOutsidePrefix && !hasOutsideSuffix && \"[&_input]:rounded-l-none [&_select]:rounded-l-none [&_textarea]:rounded-l-none\",\n !hasOutsidePrefix && hasOutsideSuffix && \"[&_input]:rounded-r-none [&_select]:rounded-r-none [&_textarea]:rounded-r-none\",\n hasOutsidePrefix && hasOutsideSuffix && \"[&_input]:rounded-none [&_select]:rounded-none [&_textarea]:rounded-none\",\n hasInsidePrefix && insidePaddingLeft[size],\n )}\n >\n {children}\n </div>\n {hasInsideSuffix && (\n <span className=\"pointer-events-none absolute right-3 z-10 text-zinc-400 dark:text-zinc-500\">\n {suffix}\n </span>\n )}\n </div>\n {hasOutsideSuffix && (\n <span className={cn(affixOutsideClasses, \"rounded-r-lg border-l-0\")}>\n {suffix}\n </span>\n )}\n </div>\n );\n }\n\n // Both inside\n return (\n <div data-react-fancy-input-wrapper=\"\" className=\"relative flex items-center\">\n {hasInsidePrefix && (\n <span className=\"pointer-events-none absolute left-3 z-10 text-zinc-400 dark:text-zinc-500\">\n {prefix}\n </span>\n )}\n <div\n className={cn(\n \"w-full\",\n hasInsidePrefix && insidePaddingLeft[size],\n hasInsideSuffix && insidePaddingRight[size],\n )}\n >\n {children}\n </div>\n {hasInsideSuffix && (\n <span className=\"pointer-events-none absolute right-3 z-10 text-zinc-400 dark:text-zinc-500\">\n {suffix}\n </span>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkOUOEQZHY_cjs = require('./chunk-OUOEQZHY.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
|
|
@@ -19,7 +19,7 @@ function TableHead({ children, className, ...rest }) {
|
|
|
19
19
|
{
|
|
20
20
|
...rest,
|
|
21
21
|
"data-react-fancy-table-head": "",
|
|
22
|
-
className:
|
|
22
|
+
className: chunkZU5Q77OT_cjs.cn("border-b border-zinc-200 dark:border-zinc-700", className),
|
|
23
23
|
children
|
|
24
24
|
}
|
|
25
25
|
);
|
|
@@ -30,7 +30,7 @@ function TableBody({ children, className, ...rest }) {
|
|
|
30
30
|
{
|
|
31
31
|
...rest,
|
|
32
32
|
"data-react-fancy-table-body": "",
|
|
33
|
-
className:
|
|
33
|
+
className: chunkZU5Q77OT_cjs.cn("divide-y divide-zinc-100 dark:divide-zinc-800", className),
|
|
34
34
|
children
|
|
35
35
|
}
|
|
36
36
|
);
|
|
@@ -66,7 +66,7 @@ function TableRow({
|
|
|
66
66
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
67
67
|
"svg",
|
|
68
68
|
{
|
|
69
|
-
className:
|
|
69
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
70
70
|
"h-4 w-4 transition-transform duration-200",
|
|
71
71
|
expanded && "rotate-90"
|
|
72
72
|
),
|
|
@@ -85,7 +85,7 @@ function TableRow({
|
|
|
85
85
|
{
|
|
86
86
|
...rest,
|
|
87
87
|
"data-react-fancy-table-row": "",
|
|
88
|
-
className:
|
|
88
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
89
89
|
"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50",
|
|
90
90
|
onClick && "cursor-pointer",
|
|
91
91
|
className
|
|
@@ -107,7 +107,7 @@ function TableCell({ children, className, header, ...rest }) {
|
|
|
107
107
|
Tag,
|
|
108
108
|
{
|
|
109
109
|
"data-react-fancy-table-cell": "",
|
|
110
|
-
className:
|
|
110
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
111
111
|
"px-4 py-3 text-sm",
|
|
112
112
|
header && "text-left font-medium text-zinc-500 dark:text-zinc-400",
|
|
113
113
|
className
|
|
@@ -134,7 +134,7 @@ function TableColumn({
|
|
|
134
134
|
...rest,
|
|
135
135
|
"data-react-fancy-table-column": "",
|
|
136
136
|
"aria-sort": ariaSort,
|
|
137
|
-
className:
|
|
137
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
138
138
|
"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400",
|
|
139
139
|
sortKey && "cursor-pointer select-none",
|
|
140
140
|
className
|
|
@@ -160,7 +160,7 @@ function TablePagination({
|
|
|
160
160
|
const { page, setPage } = useTable();
|
|
161
161
|
const totalPages = Math.ceil(total / pageSize);
|
|
162
162
|
if (totalPages <= 1) return null;
|
|
163
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-react-fancy-table-pagination": "", className:
|
|
163
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { "data-react-fancy-table-pagination": "", className: chunkZU5Q77OT_cjs.cn("flex items-center justify-between px-4 py-3 text-sm", className), children: [
|
|
164
164
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-zinc-500", children: [
|
|
165
165
|
"Page ",
|
|
166
166
|
page + 1,
|
|
@@ -204,7 +204,7 @@ function TableSearch({
|
|
|
204
204
|
value: searchQuery,
|
|
205
205
|
onChange: (e) => setSearchQuery(e.target.value),
|
|
206
206
|
placeholder,
|
|
207
|
-
className:
|
|
207
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
208
208
|
"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800",
|
|
209
209
|
className
|
|
210
210
|
)
|
|
@@ -212,14 +212,14 @@ function TableSearch({
|
|
|
212
212
|
);
|
|
213
213
|
}
|
|
214
214
|
function TableTray({ children, className }) {
|
|
215
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-react-fancy-table-tray": "", className:
|
|
215
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { "data-react-fancy-table-tray": "", className: chunkZU5Q77OT_cjs.cn("flex items-center justify-between px-4 py-3", className), children });
|
|
216
216
|
}
|
|
217
217
|
function TableRowTray({ children, className }) {
|
|
218
218
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
219
219
|
"div",
|
|
220
220
|
{
|
|
221
221
|
"data-react-fancy-table-row-tray": "",
|
|
222
|
-
className:
|
|
222
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
223
223
|
"border-t border-zinc-200 px-4 py-3 dark:border-zinc-700",
|
|
224
224
|
className
|
|
225
225
|
),
|
|
@@ -262,7 +262,7 @@ function TableRoot({ children, className, ...rest }) {
|
|
|
262
262
|
{
|
|
263
263
|
...rest,
|
|
264
264
|
"data-react-fancy-table": "",
|
|
265
|
-
className:
|
|
265
|
+
className: chunkZU5Q77OT_cjs.cn("overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700", className),
|
|
266
266
|
children: splitTableChildren(children)
|
|
267
267
|
}
|
|
268
268
|
) });
|
|
@@ -308,5 +308,5 @@ exports.TableRow = TableRow;
|
|
|
308
308
|
exports.TableRowTray = TableRowTray;
|
|
309
309
|
exports.TableSearch = TableSearch;
|
|
310
310
|
exports.TableTray = TableTray;
|
|
311
|
-
//# sourceMappingURL=chunk-
|
|
312
|
-
//# sourceMappingURL=chunk-
|
|
311
|
+
//# sourceMappingURL=chunk-PWLBHNOA.cjs.map
|
|
312
|
+
//# sourceMappingURL=chunk-PWLBHNOA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Table/Table.context.ts","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableColumn.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableSearch.tsx","../src/components/Table/TableTray.tsx","../src/components/Table/TableRowTray.tsx","../src/components/Table/Table.tsx"],"names":["createContext","useContext","jsx","cn","useControllableState","jsxs","Fragment","useState","useCallback","useMemo","Children","isValidElement"],"mappings":"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","file":"chunk-LYFUPTLG.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { TableContextValue } from \"./Table.types\";\n\nexport const TableContext = createContext<TableContextValue | null>(null);\n\nexport function useTable(): TableContextValue {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(\"Table compound components must be used within <Table>\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableHeadProps } from \"./Table.types\";\n\nexport function TableHead({ children, className, ...rest }: TableHeadProps) {\n return (\n <thead\n {...rest}\n data-react-fancy-table-head=\"\"\n className={cn(\"border-b border-zinc-200 dark:border-zinc-700\", className)}\n >\n {children}\n </thead>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableBodyProps } from \"./Table.types\";\n\nexport function TableBody({ children, className, ...rest }: TableBodyProps) {\n return (\n <tbody\n {...rest}\n data-react-fancy-table-body=\"\"\n className={cn(\"divide-y divide-zinc-100 dark:divide-zinc-800\", className)}\n >\n {children}\n </tbody>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type { TableRowProps } from \"./Table.types\";\n\nexport function TableRow({\n children,\n className,\n onClick,\n tray,\n trayTriggerPosition = \"end\",\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n ...rest\n}: TableRowProps) {\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange,\n );\n\n const hasTray = tray != null;\n const showTrigger = hasTray && trayTriggerPosition !== \"hidden\";\n\n const triggerCell = showTrigger ? (\n <td className=\"w-8 px-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n setExpanded(!expanded);\n }}\n className=\"inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-700 dark:text-zinc-500 dark:hover:text-zinc-300\"\n aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n >\n <svg\n className={cn(\n \"h-4 w-4 transition-transform duration-200\",\n expanded && \"rotate-90\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </td>\n ) : null;\n\n return (\n <>\n <tr\n {...rest}\n data-react-fancy-table-row=\"\"\n className={cn(\n \"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50\",\n onClick && \"cursor-pointer\",\n className,\n )}\n onClick={onClick}\n >\n {trayTriggerPosition === \"start\" && triggerCell}\n {children}\n {trayTriggerPosition === \"end\" && triggerCell}\n </tr>\n {hasTray && expanded && (\n <tr className=\"bg-zinc-50/50 dark:bg-zinc-800/30\">\n <td colSpan={999}>\n {tray}\n </td>\n </tr>\n )}\n </>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableCellProps } from \"./Table.types\";\n\nexport function TableCell({ children, className, header, ...rest }: TableCellProps) {\n const Tag = header ? \"th\" : \"td\";\n return (\n <Tag\n data-react-fancy-table-cell=\"\"\n className={cn(\n \"px-4 py-3 text-sm\",\n header && \"text-left font-medium text-zinc-500 dark:text-zinc-400\",\n className,\n )}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableColumnProps } from \"./Table.types\";\n\nexport function TableColumn({\n label,\n sortKey,\n className,\n \"aria-sort\": ariaSortProp,\n onClick,\n ...rest\n}: TableColumnProps) {\n const { sortKey: currentSort, sortDir, toggleSort } = useTable();\n const isSorted = sortKey != null && currentSort === sortKey;\n\n /**\n * Announce the sort state to anyone who cannot see the arrow.\n *\n * The component already computed `isSorted` and `sortDir` and spent both on a\n * ▲/▼ glyph, so a sortable table sounded exactly like a static one and\n * activating a header produced no feedback at all.\n *\n * `\"none\"` is deliberate and is not the same as omitting the attribute: it\n * says \"this column sorts, but is not the current key\". A non-sortable header\n * gets nothing, because claiming otherwise invites someone to activate an\n * inert control.\n *\n * An explicit `aria-sort` from the caller wins — a server-sorted table knows\n * its own state and this component does not.\n */\n const ariaSort =\n ariaSortProp ?? (sortKey == null ? undefined : isSorted ? (sortDir === \"asc\" ? \"ascending\" : \"descending\") : \"none\");\n\n return (\n <th\n {...rest}\n data-react-fancy-table-column=\"\"\n aria-sort={ariaSort}\n className={cn(\n \"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400\",\n sortKey && \"cursor-pointer select-none\",\n className,\n )}\n onClick={\n sortKey || onClick\n ? (event) => {\n // Both, in this order. Dropping the caller's handler because the\n // column happens to sort would be the same silent-prop-loss bug\n // this file just fixed one attribute over.\n onClick?.(event);\n if (sortKey) {\n toggleSort(sortKey);\n }\n }\n : undefined\n }\n >\n <span className=\"inline-flex items-center gap-1\">\n {label}\n {isSorted && (\n <span aria-hidden=\"true\" className=\"text-xs\">\n {sortDir === \"asc\" ? \"▲\" : \"▼\"}\n </span>\n )}\n </span>\n </th>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TablePaginationProps } from \"./Table.types\";\n\nexport function TablePagination({\n className,\n total,\n pageSize = 10,\n}: TablePaginationProps) {\n const { page, setPage } = useTable();\n const totalPages = Math.ceil(total / pageSize);\n\n if (totalPages <= 1) return null;\n\n return (\n <div data-react-fancy-table-pagination=\"\" className={cn(\"flex items-center justify-between px-4 py-3 text-sm\", className)}>\n <span className=\"text-zinc-500\">\n Page {page + 1} of {totalPages}\n </span>\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n disabled={page === 0}\n onClick={() => setPage(page - 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Prev\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage(page + 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableSearchProps } from \"./Table.types\";\n\nexport function TableSearch({\n className,\n placeholder = \"Search...\",\n}: TableSearchProps) {\n const { searchQuery, setSearchQuery } = useTable();\n\n return (\n <input\n data-react-fancy-table-search=\"\"\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800\",\n className,\n )}\n />\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableTrayProps } from \"./Table.types\";\n\nexport function TableTray({ children, className }: TableTrayProps) {\n return (\n <div data-react-fancy-table-tray=\"\" className={cn(\"flex items-center justify-between px-4 py-3\", className)}>\n {children}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableRowTrayProps } from \"./Table.types\";\n\nexport function TableRowTray({ children, className }: TableRowTrayProps) {\n return (\n <div\n data-react-fancy-table-row-tray=\"\"\n className={cn(\n \"border-t border-zinc-200 px-4 py-3 dark:border-zinc-700\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { Children, isValidElement, useCallback, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { TableContext } from \"./Table.context\";\nimport { TableHead } from \"./TableHead\";\nimport { TableBody } from \"./TableBody\";\nimport { TableRow } from \"./TableRow\";\nimport { TableCell } from \"./TableCell\";\nimport { TableColumn } from \"./TableColumn\";\nimport { TablePagination } from \"./TablePagination\";\nimport { TableSearch } from \"./TableSearch\";\nimport { TableTray } from \"./TableTray\";\nimport { TableRowTray } from \"./TableRowTray\";\nimport type { TableProps, TableContextValue } from \"./Table.types\";\n\nfunction TableRoot({ children, className, ...rest }: TableProps) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = useState(0);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const toggleSort = useCallback(\n (key: string) => {\n if (sortKey === key) {\n setSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n } else {\n setSortKey(key);\n setSortDir(\"asc\");\n }\n },\n [sortKey],\n );\n\n const ctx = useMemo<TableContextValue>(\n () => ({\n sortKey,\n sortDir,\n toggleSort,\n page,\n setPage,\n pageSize: 10,\n totalRows: 0,\n searchQuery,\n setSearchQuery,\n }),\n [sortKey, sortDir, toggleSort, page, searchQuery],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div\n {...rest}\n data-react-fancy-table=\"\"\n className={cn(\"overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700\", className)}\n >\n {splitTableChildren(children)}\n </div>\n </TableContext.Provider>\n );\n}\n\nfunction splitTableChildren(children: ReactNode): ReactNode {\n const before: ReactNode[] = [];\n const inside: ReactNode[] = [];\n const after: ReactNode[] = [];\n let seenTableContent = false;\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && (child.type === TableHead || child.type === TableBody)) {\n inside.push(child);\n seenTableContent = true;\n return;\n }\n (seenTableContent ? after : before).push(child);\n });\n\n return (\n <>\n {before}\n {inside.length > 0 && <table className=\"w-full border-collapse\">{inside}</table>}\n {after}\n </>\n );\n}\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Row: TableRow,\n Cell: TableCell,\n Column: TableColumn,\n Pagination: TablePagination,\n Search: TableSearch,\n Tray: TableTray,\n RowTray: TableRowTray,\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Table/Table.context.ts","../src/components/Table/TableHead.tsx","../src/components/Table/TableBody.tsx","../src/components/Table/TableRow.tsx","../src/components/Table/TableCell.tsx","../src/components/Table/TableColumn.tsx","../src/components/Table/TablePagination.tsx","../src/components/Table/TableSearch.tsx","../src/components/Table/TableTray.tsx","../src/components/Table/TableRowTray.tsx","../src/components/Table/Table.tsx"],"names":["createContext","useContext","jsx","cn","useControllableState","jsxs","Fragment","useState","useCallback","useMemo","Children","isValidElement"],"mappings":"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","file":"chunk-PWLBHNOA.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { TableContextValue } from \"./Table.types\";\n\nexport const TableContext = createContext<TableContextValue | null>(null);\n\nexport function useTable(): TableContextValue {\n const ctx = useContext(TableContext);\n if (!ctx) {\n throw new Error(\"Table compound components must be used within <Table>\");\n }\n return ctx;\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableHeadProps } from \"./Table.types\";\n\nexport function TableHead({ children, className, ...rest }: TableHeadProps) {\n return (\n <thead\n {...rest}\n data-react-fancy-table-head=\"\"\n className={cn(\"border-b border-zinc-200 dark:border-zinc-700\", className)}\n >\n {children}\n </thead>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableBodyProps } from \"./Table.types\";\n\nexport function TableBody({ children, className, ...rest }: TableBodyProps) {\n return (\n <tbody\n {...rest}\n data-react-fancy-table-body=\"\"\n className={cn(\"divide-y divide-zinc-100 dark:divide-zinc-800\", className)}\n >\n {children}\n </tbody>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useControllableState } from \"../../hooks/use-controllable-state\";\nimport type { TableRowProps } from \"./Table.types\";\n\nexport function TableRow({\n children,\n className,\n onClick,\n tray,\n trayTriggerPosition = \"end\",\n expanded: controlledExpanded,\n defaultExpanded = false,\n onExpandedChange,\n ...rest\n}: TableRowProps) {\n const [expanded, setExpanded] = useControllableState(\n controlledExpanded,\n defaultExpanded,\n onExpandedChange,\n );\n\n const hasTray = tray != null;\n const showTrigger = hasTray && trayTriggerPosition !== \"hidden\";\n\n const triggerCell = showTrigger ? (\n <td className=\"w-8 px-2\">\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n setExpanded(!expanded);\n }}\n className=\"inline-flex items-center justify-center rounded p-1 text-zinc-400 transition-colors hover:text-zinc-700 dark:text-zinc-500 dark:hover:text-zinc-300\"\n aria-label={expanded ? \"Collapse row\" : \"Expand row\"}\n >\n <svg\n className={cn(\n \"h-4 w-4 transition-transform duration-200\",\n expanded && \"rotate-90\",\n )}\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n strokeWidth={2}\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M9 5l7 7-7 7\" />\n </svg>\n </button>\n </td>\n ) : null;\n\n return (\n <>\n <tr\n {...rest}\n data-react-fancy-table-row=\"\"\n className={cn(\n \"transition-colors hover:bg-zinc-50 dark:hover:bg-zinc-800/50\",\n onClick && \"cursor-pointer\",\n className,\n )}\n onClick={onClick}\n >\n {trayTriggerPosition === \"start\" && triggerCell}\n {children}\n {trayTriggerPosition === \"end\" && triggerCell}\n </tr>\n {hasTray && expanded && (\n <tr className=\"bg-zinc-50/50 dark:bg-zinc-800/30\">\n <td colSpan={999}>\n {tray}\n </td>\n </tr>\n )}\n </>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableCellProps } from \"./Table.types\";\n\nexport function TableCell({ children, className, header, ...rest }: TableCellProps) {\n const Tag = header ? \"th\" : \"td\";\n return (\n <Tag\n data-react-fancy-table-cell=\"\"\n className={cn(\n \"px-4 py-3 text-sm\",\n header && \"text-left font-medium text-zinc-500 dark:text-zinc-400\",\n className,\n )}\n {...rest}\n >\n {children}\n </Tag>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableColumnProps } from \"./Table.types\";\n\nexport function TableColumn({\n label,\n sortKey,\n className,\n \"aria-sort\": ariaSortProp,\n onClick,\n ...rest\n}: TableColumnProps) {\n const { sortKey: currentSort, sortDir, toggleSort } = useTable();\n const isSorted = sortKey != null && currentSort === sortKey;\n\n /**\n * Announce the sort state to anyone who cannot see the arrow.\n *\n * The component already computed `isSorted` and `sortDir` and spent both on a\n * ▲/▼ glyph, so a sortable table sounded exactly like a static one and\n * activating a header produced no feedback at all.\n *\n * `\"none\"` is deliberate and is not the same as omitting the attribute: it\n * says \"this column sorts, but is not the current key\". A non-sortable header\n * gets nothing, because claiming otherwise invites someone to activate an\n * inert control.\n *\n * An explicit `aria-sort` from the caller wins — a server-sorted table knows\n * its own state and this component does not.\n */\n const ariaSort =\n ariaSortProp ?? (sortKey == null ? undefined : isSorted ? (sortDir === \"asc\" ? \"ascending\" : \"descending\") : \"none\");\n\n return (\n <th\n {...rest}\n data-react-fancy-table-column=\"\"\n aria-sort={ariaSort}\n className={cn(\n \"px-4 py-3 text-left text-sm font-medium text-zinc-500 dark:text-zinc-400\",\n sortKey && \"cursor-pointer select-none\",\n className,\n )}\n onClick={\n sortKey || onClick\n ? (event) => {\n // Both, in this order. Dropping the caller's handler because the\n // column happens to sort would be the same silent-prop-loss bug\n // this file just fixed one attribute over.\n onClick?.(event);\n if (sortKey) {\n toggleSort(sortKey);\n }\n }\n : undefined\n }\n >\n <span className=\"inline-flex items-center gap-1\">\n {label}\n {isSorted && (\n <span aria-hidden=\"true\" className=\"text-xs\">\n {sortDir === \"asc\" ? \"▲\" : \"▼\"}\n </span>\n )}\n </span>\n </th>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TablePaginationProps } from \"./Table.types\";\n\nexport function TablePagination({\n className,\n total,\n pageSize = 10,\n}: TablePaginationProps) {\n const { page, setPage } = useTable();\n const totalPages = Math.ceil(total / pageSize);\n\n if (totalPages <= 1) return null;\n\n return (\n <div data-react-fancy-table-pagination=\"\" className={cn(\"flex items-center justify-between px-4 py-3 text-sm\", className)}>\n <span className=\"text-zinc-500\">\n Page {page + 1} of {totalPages}\n </span>\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n disabled={page === 0}\n onClick={() => setPage(page - 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Prev\n </button>\n <button\n type=\"button\"\n disabled={page >= totalPages - 1}\n onClick={() => setPage(page + 1)}\n className=\"rounded border px-2 py-1 disabled:opacity-50 dark:border-zinc-600\"\n >\n Next\n </button>\n </div>\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport { useTable } from \"./Table.context\";\nimport type { TableSearchProps } from \"./Table.types\";\n\nexport function TableSearch({\n className,\n placeholder = \"Search...\",\n}: TableSearchProps) {\n const { searchQuery, setSearchQuery } = useTable();\n\n return (\n <input\n data-react-fancy-table-search=\"\"\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={placeholder}\n className={cn(\n \"rounded-lg border border-zinc-200 px-3 py-2 text-sm dark:border-zinc-600 dark:bg-zinc-800\",\n className,\n )}\n />\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableTrayProps } from \"./Table.types\";\n\nexport function TableTray({ children, className }: TableTrayProps) {\n return (\n <div data-react-fancy-table-tray=\"\" className={cn(\"flex items-center justify-between px-4 py-3\", className)}>\n {children}\n </div>\n );\n}\n","import { cn } from \"../../utils/cn\";\nimport type { TableRowTrayProps } from \"./Table.types\";\n\nexport function TableRowTray({ children, className }: TableRowTrayProps) {\n return (\n <div\n data-react-fancy-table-row-tray=\"\"\n className={cn(\n \"border-t border-zinc-200 px-4 py-3 dark:border-zinc-700\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n","import { Children, isValidElement, useCallback, useMemo, useState } from \"react\";\nimport type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { TableContext } from \"./Table.context\";\nimport { TableHead } from \"./TableHead\";\nimport { TableBody } from \"./TableBody\";\nimport { TableRow } from \"./TableRow\";\nimport { TableCell } from \"./TableCell\";\nimport { TableColumn } from \"./TableColumn\";\nimport { TablePagination } from \"./TablePagination\";\nimport { TableSearch } from \"./TableSearch\";\nimport { TableTray } from \"./TableTray\";\nimport { TableRowTray } from \"./TableRowTray\";\nimport type { TableProps, TableContextValue } from \"./Table.types\";\n\nfunction TableRoot({ children, className, ...rest }: TableProps) {\n const [sortKey, setSortKey] = useState<string | null>(null);\n const [sortDir, setSortDir] = useState<\"asc\" | \"desc\">(\"asc\");\n const [page, setPage] = useState(0);\n const [searchQuery, setSearchQuery] = useState(\"\");\n\n const toggleSort = useCallback(\n (key: string) => {\n if (sortKey === key) {\n setSortDir((d) => (d === \"asc\" ? \"desc\" : \"asc\"));\n } else {\n setSortKey(key);\n setSortDir(\"asc\");\n }\n },\n [sortKey],\n );\n\n const ctx = useMemo<TableContextValue>(\n () => ({\n sortKey,\n sortDir,\n toggleSort,\n page,\n setPage,\n pageSize: 10,\n totalRows: 0,\n searchQuery,\n setSearchQuery,\n }),\n [sortKey, sortDir, toggleSort, page, searchQuery],\n );\n\n return (\n <TableContext.Provider value={ctx}>\n <div\n {...rest}\n data-react-fancy-table=\"\"\n className={cn(\"overflow-hidden rounded-lg border border-zinc-200 dark:border-zinc-700\", className)}\n >\n {splitTableChildren(children)}\n </div>\n </TableContext.Provider>\n );\n}\n\nfunction splitTableChildren(children: ReactNode): ReactNode {\n const before: ReactNode[] = [];\n const inside: ReactNode[] = [];\n const after: ReactNode[] = [];\n let seenTableContent = false;\n\n Children.forEach(children, (child) => {\n if (isValidElement(child) && (child.type === TableHead || child.type === TableBody)) {\n inside.push(child);\n seenTableContent = true;\n return;\n }\n (seenTableContent ? after : before).push(child);\n });\n\n return (\n <>\n {before}\n {inside.length > 0 && <table className=\"w-full border-collapse\">{inside}</table>}\n {after}\n </>\n );\n}\n\nexport const Table = Object.assign(TableRoot, {\n Head: TableHead,\n Body: TableBody,\n Row: TableRow,\n Cell: TableCell,\n Column: TableColumn,\n Pagination: TablePagination,\n Search: TableSearch,\n Tray: TableTray,\n RowTray: TableRowTray,\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 react = require('react');
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
|
|
@@ -35,7 +35,7 @@ function KanbanCard({ children, id, className, unstyled }) {
|
|
|
35
35
|
draggable: true,
|
|
36
36
|
onDragStart: handleDragStart,
|
|
37
37
|
onDragEnd: handleDragEnd,
|
|
38
|
-
className:
|
|
38
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
39
39
|
// Drag affordance — kept even when unstyled so users still see grab cursors.
|
|
40
40
|
"cursor-grab active:cursor-grabbing",
|
|
41
41
|
!unstyled && DEFAULT_CARD_CLASSES,
|
|
@@ -188,7 +188,7 @@ function KanbanColumn({
|
|
|
188
188
|
onDrop: handleDrop,
|
|
189
189
|
onDragOver: handleDragOver,
|
|
190
190
|
onDragLeave: handleDragLeave,
|
|
191
|
-
className:
|
|
191
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
192
192
|
"flex flex-col",
|
|
193
193
|
!unstyled && DEFAULT_COLUMN_CLASSES,
|
|
194
194
|
dragOver && "ring-2 ring-blue-400 ring-inset",
|
|
@@ -200,7 +200,7 @@ function KanbanColumn({
|
|
|
200
200
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
201
201
|
"span",
|
|
202
202
|
{
|
|
203
|
-
className:
|
|
203
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
204
204
|
"rounded-full px-1.5 py-0.5 text-[10px] font-semibold",
|
|
205
205
|
overWip ? "bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300" : "bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300"
|
|
206
206
|
),
|
|
@@ -252,7 +252,7 @@ function KanbanColumnHandle({
|
|
|
252
252
|
onDragStart: handleDragStart,
|
|
253
253
|
onDragEnd: handleDragEnd,
|
|
254
254
|
"data-react-fancy-kanban-column-handle": "",
|
|
255
|
-
className:
|
|
255
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
256
256
|
"cursor-grab active:cursor-grabbing select-none",
|
|
257
257
|
className
|
|
258
258
|
),
|
|
@@ -347,7 +347,7 @@ function KanbanRoot({
|
|
|
347
347
|
onDrop: handleDrop,
|
|
348
348
|
role: "application",
|
|
349
349
|
"aria-roledescription": "kanban board",
|
|
350
|
-
className:
|
|
350
|
+
className: chunkZU5Q77OT_cjs.cn("flex gap-4 overflow-x-auto p-4", className),
|
|
351
351
|
children
|
|
352
352
|
}
|
|
353
353
|
) });
|
|
@@ -360,5 +360,5 @@ var Kanban = Object.assign(KanbanRoot, {
|
|
|
360
360
|
|
|
361
361
|
exports.Kanban = Kanban;
|
|
362
362
|
exports.useKanban = useKanban;
|
|
363
|
-
//# sourceMappingURL=chunk-
|
|
364
|
-
//# sourceMappingURL=chunk-
|
|
363
|
+
//# sourceMappingURL=chunk-QAFAPHAF.cjs.map
|
|
364
|
+
//# sourceMappingURL=chunk-QAFAPHAF.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Kanban/Kanban.context.ts","../src/components/Kanban/KanbanCard.tsx","../src/components/Kanban/KanbanColumn.tsx","../src/components/Kanban/KanbanColumnHandle.tsx","../src/components/Kanban/Kanban.tsx"],"names":["createContext","useContext","useCallback","jsx","cn","Children","isValidElement","useState","useRef","useEffect","jsxs","useMemo"],"mappings":"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","file":"chunk-BPBI3WWQ.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { KanbanContextValue } from \"./Kanban.types\";\n\nexport const KanbanContext = createContext<KanbanContextValue | null>(null);\n\nexport function useKanban(): KanbanContextValue {\n const ctx = useContext(KanbanContext);\n if (!ctx) {\n throw new Error(\"Kanban compound components must be used within <Kanban>\");\n }\n return ctx;\n}\n\nexport const KanbanColumnContext = createContext<string>(\"\");\n\nexport function useKanbanColumn(): string {\n return useContext(KanbanColumnContext);\n}\n","import { useCallback } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useKanban, useKanbanColumn } from \"./Kanban.context\";\nimport type { KanbanCardProps } from \"./Kanban.types\";\n\nconst DEFAULT_CARD_CLASSES =\n \"rounded-lg border border-zinc-200 bg-white p-3 shadow-sm transition-shadow hover:shadow-md dark:border-zinc-700 dark:bg-zinc-900\";\n\nexport function KanbanCard({ children, id, className, unstyled }: KanbanCardProps) {\n const { setDraggedCard, setDragSource } = useKanban();\n const columnId = useKanbanColumn();\n\n const handleDragStart = useCallback(() => {\n setDraggedCard(id);\n setDragSource(columnId);\n }, [id, columnId, setDraggedCard, setDragSource]);\n\n const handleDragEnd = useCallback(() => {\n setDraggedCard(null);\n setDragSource(null);\n }, [setDraggedCard, setDragSource]);\n\n return (\n <div\n data-react-fancy-kanban-card=\"\"\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n className={cn(\n // Drag affordance — kept even when unstyled so users still see grab cursors.\n \"cursor-grab active:cursor-grabbing\",\n !unstyled && DEFAULT_CARD_CLASSES,\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nKanbanCard.displayName = \"KanbanCard\";\n","import { Children, isValidElement, useCallback, useEffect, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { KanbanCard } from \"./KanbanCard\";\nimport { useKanban, KanbanColumnContext } from \"./Kanban.context\";\nimport type { KanbanColumnProps } from \"./Kanban.types\";\n\nconst DEFAULT_COLUMN_CLASSES =\n \"min-h-[200px] w-72 rounded-xl bg-zinc-50 p-3 dark:bg-zinc-800/50\";\n\n/**\n * Deep-recurse through the children tree counting Kanban.Card descendants\n * regardless of wrapping (Fragment, ContextMenu, motion.div, custom HOCs,\n * etc.). Used by `hideWhenEmpty` and the WIP-limit count chip.\n */\nfunction countCardChildren(children: React.ReactNode): number {\n let n = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n if (child.type === KanbanCard) {\n n += 1;\n return;\n }\n const inner = (child.props as { children?: React.ReactNode }).children;\n if (inner !== undefined) n += countCardChildren(inner);\n });\n return n;\n}\n\n/**\n * Find the document-order index of a Kanban.Card with the given id, deep-\n * recursing through wrappers. Used by same-column reorder to compute the\n * post-removal insert position.\n */\nfunction findCardIndex(children: React.ReactNode, cardId: string): number {\n let idx = -1;\n let i = 0;\n function walk(nodes: React.ReactNode): void {\n Children.forEach(nodes, (child) => {\n if (idx !== -1) return;\n if (!isValidElement(child)) return;\n if (child.type === KanbanCard) {\n if ((child.props as { id?: string }).id === cardId) idx = i;\n i += 1;\n return;\n }\n const inner = (child.props as { children?: React.ReactNode }).children;\n if (inner !== undefined) walk(inner);\n });\n }\n walk(children);\n return idx;\n}\n\nexport function KanbanColumn({\n children,\n id,\n title,\n className,\n unstyled,\n wipLimit,\n hideWhenEmpty,\n}: KanbanColumnProps) {\n const { onCardMove, draggedCard, dragSource, registerColumn } = useKanban();\n const [dragOver, setDragOver] = useState(false);\n const [dropIndex, setDropIndex] = useState<number | null>(null);\n const [dropY, setDropY] = useState<number | null>(null);\n const cardsRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => registerColumn(id), [id, registerColumn]);\n\n /**\n * Compute drop position from mouse Y. Walks the *DOM* (not the React\n * tree) and queries `[data-react-fancy-kanban-card]` so wrappers\n * (ContextMenu, custom Card surfaces, motion.div) don't break the\n * indicator placement.\n */\n const updateDrop = useCallback((clientY: number) => {\n const container = cardsRef.current;\n if (!container) {\n setDropIndex(null);\n setDropY(null);\n return;\n }\n\n // Limit to cards belonging to THIS column — important if a card\n // happens to nest a sub-board (rare, but cheap to defend).\n const all = Array.from(\n container.querySelectorAll<HTMLElement>(\n \"[data-react-fancy-kanban-card]\",\n ),\n );\n const cards = all.filter(\n (el) =>\n el.closest(\"[data-react-fancy-kanban-column]\") ===\n cardsRef.current?.closest(\"[data-react-fancy-kanban-column]\"),\n );\n\n const containerRect = container.getBoundingClientRect();\n\n if (cards.length === 0) {\n setDropIndex(0);\n setDropY(0);\n return;\n }\n\n let idx = cards.length;\n let yRel = 0;\n for (let i = 0; i < cards.length; i++) {\n const rect = cards[i]!.getBoundingClientRect();\n if (clientY < rect.top + rect.height / 2) {\n idx = i;\n yRel = rect.top - containerRect.top;\n break;\n }\n }\n if (idx === cards.length) {\n const last = cards[cards.length - 1]!.getBoundingClientRect();\n yRel = last.bottom - containerRect.top;\n }\n\n setDropIndex(idx);\n setDropY(yRel);\n }, []);\n\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n // Only react to card drags. Column drags are handled by the root.\n if (!draggedCard) return;\n e.preventDefault();\n e.stopPropagation();\n setDragOver(true);\n updateDrop(e.clientY);\n },\n [draggedCard, updateDrop],\n );\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n if (e.currentTarget.contains(e.relatedTarget as Node | null)) return;\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n }, []);\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n if (!draggedCard) return;\n e.preventDefault();\n e.stopPropagation();\n const target = dropIndex ?? 0;\n\n if (dragSource) {\n let finalIdx = target;\n if (dragSource === id) {\n const srcIdx = findCardIndex(children, draggedCard);\n if (srcIdx !== -1 && target > srcIdx) finalIdx = target - 1;\n if (srcIdx === finalIdx) {\n // No-op\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n return;\n }\n }\n onCardMove?.(draggedCard, dragSource, id, finalIdx);\n }\n\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n },\n [draggedCard, dragSource, dropIndex, id, onCardMove, children],\n );\n\n const cardCount = countCardChildren(children);\n if (hideWhenEmpty && cardCount === 0 && !draggedCard) return null;\n\n const showIndicator =\n draggedCard !== null &&\n dropIndex !== null &&\n dropY !== null &&\n dragOver;\n\n const overWip = wipLimit !== undefined && cardCount > wipLimit;\n\n return (\n <KanbanColumnContext.Provider value={id}>\n <div\n data-react-fancy-kanban-column=\"\"\n data-column-id={id}\n role=\"group\"\n aria-label={title}\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n className={cn(\n \"flex flex-col\",\n !unstyled && DEFAULT_COLUMN_CLASSES,\n dragOver && \"ring-2 ring-blue-400 ring-inset\",\n className,\n )}\n >\n {title && (\n <h3 className=\"mb-3 flex items-center gap-2 text-sm font-semibold text-zinc-600 dark:text-zinc-400\">\n <span className=\"flex-1\">{title}</span>\n <span\n className={cn(\n \"rounded-full px-1.5 py-0.5 text-[10px] font-semibold\",\n overWip\n ? \"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300\"\n : \"bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300\",\n )}\n >\n {cardCount}\n {wipLimit !== undefined ? `/${wipLimit}` : \"\"}\n </span>\n </h3>\n )}\n\n {/* Cards container — `relative` so the drop indicator overlay\n can position itself in the container's coordinate space.\n Children are rendered untouched so any wrapper hierarchy\n (ContextMenu, motion.div, etc.) keeps working. */}\n <div ref={cardsRef} className=\"relative flex flex-1 flex-col gap-2\">\n {children}\n\n {showIndicator && (\n <div\n data-react-fancy-kanban-drop-indicator=\"\"\n style={{ top: dropY }}\n className=\"pointer-events-none absolute left-0 right-0 h-0.5 -translate-y-1/2 rounded-full bg-blue-500/80 shadow-[0_0_0_3px_rgba(59,130,246,0.15)]\"\n />\n )}\n </div>\n </div>\n </KanbanColumnContext.Provider>\n );\n}\n\nKanbanColumn.displayName = \"KanbanColumn\";\n","import { useCallback } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useKanban, useKanbanColumn } from \"./Kanban.context\";\nimport type { KanbanColumnHandleProps } from \"./Kanban.types\";\n\n/**\n * Drag handle for column reordering.\n *\n * Mount inside a `Kanban.Column` to make that column draggable. The\n * column's parent `Kanban` listens for the drop and surfaces the new\n * position via `onColumnMove`. Without a handle, columns are static.\n *\n * Typically wrapped around the column header so users grab the title\n * to reorder; can also be a small grip icon.\n */\nexport function KanbanColumnHandle({\n children,\n className,\n}: KanbanColumnHandleProps) {\n const { setDraggedColumn } = useKanban();\n const columnId = useKanbanColumn();\n\n const handleDragStart = useCallback(\n (e: React.DragEvent) => {\n // Set a dataTransfer payload so the browser permits the drag — some\n // browsers refuse if dataTransfer is empty.\n e.dataTransfer.effectAllowed = \"move\";\n e.dataTransfer.setData(\"text/plain\", columnId);\n e.stopPropagation();\n setDraggedColumn(columnId);\n },\n [columnId, setDraggedColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setDraggedColumn(null);\n }, [setDraggedColumn]);\n\n return (\n <div\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n data-react-fancy-kanban-column-handle=\"\"\n className={cn(\n \"cursor-grab active:cursor-grabbing select-none\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nKanbanColumnHandle.displayName = \"KanbanColumnHandle\";\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { KanbanContext } from \"./Kanban.context\";\nimport { KanbanColumn } from \"./KanbanColumn\";\nimport { KanbanCard } from \"./KanbanCard\";\nimport { KanbanColumnHandle } from \"./KanbanColumnHandle\";\nimport type { KanbanProps } from \"./Kanban.types\";\n\n/**\n * Kanban board.\n *\n * Compound:\n * <Kanban onCardMove={...} onColumnMove={...}>\n * <Kanban.Column id=\"todo\" wipLimit={4}>\n * <Kanban.ColumnHandle>...header...</Kanban.ColumnHandle> // optional\n * <Kanban.Card id=\"...\">...</Kanban.Card>\n * </Kanban.Column>\n * </Kanban>\n *\n * Cards drag between columns AND within a column. Drop position is\n * computed from mouse Y at hover time and surfaced via the `toIndex`\n * argument on `onCardMove`.\n *\n * Columns drag horizontally to reorder when a `<Kanban.ColumnHandle>`\n * is mounted inside them. The root computes the drop index from\n * mouse X and surfaces it via `onColumnMove`.\n */\nfunction KanbanRoot({\n children,\n onCardMove,\n onColumnMove,\n className,\n}: KanbanProps) {\n const [draggedCard, setDraggedCard] = useState<string | null>(null);\n const [dragSource, setDragSource] = useState<string | null>(null);\n const [draggedColumn, setDraggedColumn] = useState<string | null>(null);\n\n const orderRef = useRef<string[]>([]);\n const [columnIds, setColumnIds] = useState<string[]>([]);\n\n const registerColumn = useCallback((id: string) => {\n if (!orderRef.current.includes(id)) {\n orderRef.current = [...orderRef.current, id];\n setColumnIds(orderRef.current);\n }\n return () => {\n orderRef.current = orderRef.current.filter((x) => x !== id);\n setColumnIds(orderRef.current);\n };\n }, []);\n\n const ctx = useMemo(\n () => ({\n draggedCard,\n setDraggedCard,\n dragSource,\n setDragSource,\n draggedColumn,\n setDraggedColumn,\n onCardMove,\n onColumnMove,\n columnIds,\n registerColumn,\n }),\n [\n draggedCard,\n dragSource,\n draggedColumn,\n onCardMove,\n onColumnMove,\n columnIds,\n registerColumn,\n ],\n );\n\n // ── Column-level drop handling ────────────────────────────────────────\n // Root listens only when a column is being dragged. Drop index is\n // computed from mouse X versus each column's horizontal midpoint.\n const containerRef = useRef<HTMLDivElement>(null);\n\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n if (!draggedColumn) return;\n e.preventDefault();\n },\n [draggedColumn],\n );\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n if (!draggedColumn || !containerRef.current) return;\n e.preventDefault();\n\n const cols = containerRef.current.querySelectorAll<HTMLElement>(\n '[data-react-fancy-kanban-column]',\n );\n const x = e.clientX;\n let dropIdx = cols.length;\n for (let i = 0; i < cols.length; i++) {\n const rect = cols[i]!.getBoundingClientRect();\n if (x < rect.left + rect.width / 2) {\n dropIdx = i;\n break;\n }\n }\n\n const sourceIdx = columnIds.indexOf(draggedColumn);\n // When moving rightward, dropping at index N visually means landing\n // at N - 1 after the source is removed.\n const finalIdx =\n sourceIdx >= 0 && dropIdx > sourceIdx ? dropIdx - 1 : dropIdx;\n\n if (finalIdx !== sourceIdx) {\n onColumnMove?.(draggedColumn, finalIdx);\n }\n setDraggedColumn(null);\n },\n [draggedColumn, columnIds, onColumnMove],\n );\n\n return (\n <KanbanContext.Provider value={ctx}>\n <div\n ref={containerRef}\n data-react-fancy-kanban=\"\"\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n role=\"application\"\n aria-roledescription=\"kanban board\"\n className={cn(\"flex gap-4 overflow-x-auto p-4\", className)}\n >\n {children}\n </div>\n </KanbanContext.Provider>\n );\n}\n\nexport const Kanban = Object.assign(KanbanRoot, {\n Column: KanbanColumn,\n Card: KanbanCard,\n ColumnHandle: KanbanColumnHandle,\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Kanban/Kanban.context.ts","../src/components/Kanban/KanbanCard.tsx","../src/components/Kanban/KanbanColumn.tsx","../src/components/Kanban/KanbanColumnHandle.tsx","../src/components/Kanban/Kanban.tsx"],"names":["createContext","useContext","useCallback","jsx","cn","Children","isValidElement","useState","useRef","useEffect","jsxs","useMemo"],"mappings":"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","file":"chunk-QAFAPHAF.cjs","sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { KanbanContextValue } from \"./Kanban.types\";\n\nexport const KanbanContext = createContext<KanbanContextValue | null>(null);\n\nexport function useKanban(): KanbanContextValue {\n const ctx = useContext(KanbanContext);\n if (!ctx) {\n throw new Error(\"Kanban compound components must be used within <Kanban>\");\n }\n return ctx;\n}\n\nexport const KanbanColumnContext = createContext<string>(\"\");\n\nexport function useKanbanColumn(): string {\n return useContext(KanbanColumnContext);\n}\n","import { useCallback } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useKanban, useKanbanColumn } from \"./Kanban.context\";\nimport type { KanbanCardProps } from \"./Kanban.types\";\n\nconst DEFAULT_CARD_CLASSES =\n \"rounded-lg border border-zinc-200 bg-white p-3 shadow-sm transition-shadow hover:shadow-md dark:border-zinc-700 dark:bg-zinc-900\";\n\nexport function KanbanCard({ children, id, className, unstyled }: KanbanCardProps) {\n const { setDraggedCard, setDragSource } = useKanban();\n const columnId = useKanbanColumn();\n\n const handleDragStart = useCallback(() => {\n setDraggedCard(id);\n setDragSource(columnId);\n }, [id, columnId, setDraggedCard, setDragSource]);\n\n const handleDragEnd = useCallback(() => {\n setDraggedCard(null);\n setDragSource(null);\n }, [setDraggedCard, setDragSource]);\n\n return (\n <div\n data-react-fancy-kanban-card=\"\"\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n className={cn(\n // Drag affordance — kept even when unstyled so users still see grab cursors.\n \"cursor-grab active:cursor-grabbing\",\n !unstyled && DEFAULT_CARD_CLASSES,\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nKanbanCard.displayName = \"KanbanCard\";\n","import { Children, isValidElement, useCallback, useEffect, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { KanbanCard } from \"./KanbanCard\";\nimport { useKanban, KanbanColumnContext } from \"./Kanban.context\";\nimport type { KanbanColumnProps } from \"./Kanban.types\";\n\nconst DEFAULT_COLUMN_CLASSES =\n \"min-h-[200px] w-72 rounded-xl bg-zinc-50 p-3 dark:bg-zinc-800/50\";\n\n/**\n * Deep-recurse through the children tree counting Kanban.Card descendants\n * regardless of wrapping (Fragment, ContextMenu, motion.div, custom HOCs,\n * etc.). Used by `hideWhenEmpty` and the WIP-limit count chip.\n */\nfunction countCardChildren(children: React.ReactNode): number {\n let n = 0;\n Children.forEach(children, (child) => {\n if (!isValidElement(child)) return;\n if (child.type === KanbanCard) {\n n += 1;\n return;\n }\n const inner = (child.props as { children?: React.ReactNode }).children;\n if (inner !== undefined) n += countCardChildren(inner);\n });\n return n;\n}\n\n/**\n * Find the document-order index of a Kanban.Card with the given id, deep-\n * recursing through wrappers. Used by same-column reorder to compute the\n * post-removal insert position.\n */\nfunction findCardIndex(children: React.ReactNode, cardId: string): number {\n let idx = -1;\n let i = 0;\n function walk(nodes: React.ReactNode): void {\n Children.forEach(nodes, (child) => {\n if (idx !== -1) return;\n if (!isValidElement(child)) return;\n if (child.type === KanbanCard) {\n if ((child.props as { id?: string }).id === cardId) idx = i;\n i += 1;\n return;\n }\n const inner = (child.props as { children?: React.ReactNode }).children;\n if (inner !== undefined) walk(inner);\n });\n }\n walk(children);\n return idx;\n}\n\nexport function KanbanColumn({\n children,\n id,\n title,\n className,\n unstyled,\n wipLimit,\n hideWhenEmpty,\n}: KanbanColumnProps) {\n const { onCardMove, draggedCard, dragSource, registerColumn } = useKanban();\n const [dragOver, setDragOver] = useState(false);\n const [dropIndex, setDropIndex] = useState<number | null>(null);\n const [dropY, setDropY] = useState<number | null>(null);\n const cardsRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => registerColumn(id), [id, registerColumn]);\n\n /**\n * Compute drop position from mouse Y. Walks the *DOM* (not the React\n * tree) and queries `[data-react-fancy-kanban-card]` so wrappers\n * (ContextMenu, custom Card surfaces, motion.div) don't break the\n * indicator placement.\n */\n const updateDrop = useCallback((clientY: number) => {\n const container = cardsRef.current;\n if (!container) {\n setDropIndex(null);\n setDropY(null);\n return;\n }\n\n // Limit to cards belonging to THIS column — important if a card\n // happens to nest a sub-board (rare, but cheap to defend).\n const all = Array.from(\n container.querySelectorAll<HTMLElement>(\n \"[data-react-fancy-kanban-card]\",\n ),\n );\n const cards = all.filter(\n (el) =>\n el.closest(\"[data-react-fancy-kanban-column]\") ===\n cardsRef.current?.closest(\"[data-react-fancy-kanban-column]\"),\n );\n\n const containerRect = container.getBoundingClientRect();\n\n if (cards.length === 0) {\n setDropIndex(0);\n setDropY(0);\n return;\n }\n\n let idx = cards.length;\n let yRel = 0;\n for (let i = 0; i < cards.length; i++) {\n const rect = cards[i]!.getBoundingClientRect();\n if (clientY < rect.top + rect.height / 2) {\n idx = i;\n yRel = rect.top - containerRect.top;\n break;\n }\n }\n if (idx === cards.length) {\n const last = cards[cards.length - 1]!.getBoundingClientRect();\n yRel = last.bottom - containerRect.top;\n }\n\n setDropIndex(idx);\n setDropY(yRel);\n }, []);\n\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n // Only react to card drags. Column drags are handled by the root.\n if (!draggedCard) return;\n e.preventDefault();\n e.stopPropagation();\n setDragOver(true);\n updateDrop(e.clientY);\n },\n [draggedCard, updateDrop],\n );\n\n const handleDragLeave = useCallback((e: React.DragEvent) => {\n if (e.currentTarget.contains(e.relatedTarget as Node | null)) return;\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n }, []);\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n if (!draggedCard) return;\n e.preventDefault();\n e.stopPropagation();\n const target = dropIndex ?? 0;\n\n if (dragSource) {\n let finalIdx = target;\n if (dragSource === id) {\n const srcIdx = findCardIndex(children, draggedCard);\n if (srcIdx !== -1 && target > srcIdx) finalIdx = target - 1;\n if (srcIdx === finalIdx) {\n // No-op\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n return;\n }\n }\n onCardMove?.(draggedCard, dragSource, id, finalIdx);\n }\n\n setDragOver(false);\n setDropIndex(null);\n setDropY(null);\n },\n [draggedCard, dragSource, dropIndex, id, onCardMove, children],\n );\n\n const cardCount = countCardChildren(children);\n if (hideWhenEmpty && cardCount === 0 && !draggedCard) return null;\n\n const showIndicator =\n draggedCard !== null &&\n dropIndex !== null &&\n dropY !== null &&\n dragOver;\n\n const overWip = wipLimit !== undefined && cardCount > wipLimit;\n\n return (\n <KanbanColumnContext.Provider value={id}>\n <div\n data-react-fancy-kanban-column=\"\"\n data-column-id={id}\n role=\"group\"\n aria-label={title}\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n className={cn(\n \"flex flex-col\",\n !unstyled && DEFAULT_COLUMN_CLASSES,\n dragOver && \"ring-2 ring-blue-400 ring-inset\",\n className,\n )}\n >\n {title && (\n <h3 className=\"mb-3 flex items-center gap-2 text-sm font-semibold text-zinc-600 dark:text-zinc-400\">\n <span className=\"flex-1\">{title}</span>\n <span\n className={cn(\n \"rounded-full px-1.5 py-0.5 text-[10px] font-semibold\",\n overWip\n ? \"bg-red-100 text-red-700 dark:bg-red-900/40 dark:text-red-300\"\n : \"bg-zinc-200 text-zinc-700 dark:bg-zinc-700 dark:text-zinc-300\",\n )}\n >\n {cardCount}\n {wipLimit !== undefined ? `/${wipLimit}` : \"\"}\n </span>\n </h3>\n )}\n\n {/* Cards container — `relative` so the drop indicator overlay\n can position itself in the container's coordinate space.\n Children are rendered untouched so any wrapper hierarchy\n (ContextMenu, motion.div, etc.) keeps working. */}\n <div ref={cardsRef} className=\"relative flex flex-1 flex-col gap-2\">\n {children}\n\n {showIndicator && (\n <div\n data-react-fancy-kanban-drop-indicator=\"\"\n style={{ top: dropY }}\n className=\"pointer-events-none absolute left-0 right-0 h-0.5 -translate-y-1/2 rounded-full bg-blue-500/80 shadow-[0_0_0_3px_rgba(59,130,246,0.15)]\"\n />\n )}\n </div>\n </div>\n </KanbanColumnContext.Provider>\n );\n}\n\nKanbanColumn.displayName = \"KanbanColumn\";\n","import { useCallback } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { useKanban, useKanbanColumn } from \"./Kanban.context\";\nimport type { KanbanColumnHandleProps } from \"./Kanban.types\";\n\n/**\n * Drag handle for column reordering.\n *\n * Mount inside a `Kanban.Column` to make that column draggable. The\n * column's parent `Kanban` listens for the drop and surfaces the new\n * position via `onColumnMove`. Without a handle, columns are static.\n *\n * Typically wrapped around the column header so users grab the title\n * to reorder; can also be a small grip icon.\n */\nexport function KanbanColumnHandle({\n children,\n className,\n}: KanbanColumnHandleProps) {\n const { setDraggedColumn } = useKanban();\n const columnId = useKanbanColumn();\n\n const handleDragStart = useCallback(\n (e: React.DragEvent) => {\n // Set a dataTransfer payload so the browser permits the drag — some\n // browsers refuse if dataTransfer is empty.\n e.dataTransfer.effectAllowed = \"move\";\n e.dataTransfer.setData(\"text/plain\", columnId);\n e.stopPropagation();\n setDraggedColumn(columnId);\n },\n [columnId, setDraggedColumn],\n );\n\n const handleDragEnd = useCallback(() => {\n setDraggedColumn(null);\n }, [setDraggedColumn]);\n\n return (\n <div\n draggable\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n data-react-fancy-kanban-column-handle=\"\"\n className={cn(\n \"cursor-grab active:cursor-grabbing select-none\",\n className,\n )}\n >\n {children}\n </div>\n );\n}\n\nKanbanColumnHandle.displayName = \"KanbanColumnHandle\";\n","import { useCallback, useMemo, useRef, useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { KanbanContext } from \"./Kanban.context\";\nimport { KanbanColumn } from \"./KanbanColumn\";\nimport { KanbanCard } from \"./KanbanCard\";\nimport { KanbanColumnHandle } from \"./KanbanColumnHandle\";\nimport type { KanbanProps } from \"./Kanban.types\";\n\n/**\n * Kanban board.\n *\n * Compound:\n * <Kanban onCardMove={...} onColumnMove={...}>\n * <Kanban.Column id=\"todo\" wipLimit={4}>\n * <Kanban.ColumnHandle>...header...</Kanban.ColumnHandle> // optional\n * <Kanban.Card id=\"...\">...</Kanban.Card>\n * </Kanban.Column>\n * </Kanban>\n *\n * Cards drag between columns AND within a column. Drop position is\n * computed from mouse Y at hover time and surfaced via the `toIndex`\n * argument on `onCardMove`.\n *\n * Columns drag horizontally to reorder when a `<Kanban.ColumnHandle>`\n * is mounted inside them. The root computes the drop index from\n * mouse X and surfaces it via `onColumnMove`.\n */\nfunction KanbanRoot({\n children,\n onCardMove,\n onColumnMove,\n className,\n}: KanbanProps) {\n const [draggedCard, setDraggedCard] = useState<string | null>(null);\n const [dragSource, setDragSource] = useState<string | null>(null);\n const [draggedColumn, setDraggedColumn] = useState<string | null>(null);\n\n const orderRef = useRef<string[]>([]);\n const [columnIds, setColumnIds] = useState<string[]>([]);\n\n const registerColumn = useCallback((id: string) => {\n if (!orderRef.current.includes(id)) {\n orderRef.current = [...orderRef.current, id];\n setColumnIds(orderRef.current);\n }\n return () => {\n orderRef.current = orderRef.current.filter((x) => x !== id);\n setColumnIds(orderRef.current);\n };\n }, []);\n\n const ctx = useMemo(\n () => ({\n draggedCard,\n setDraggedCard,\n dragSource,\n setDragSource,\n draggedColumn,\n setDraggedColumn,\n onCardMove,\n onColumnMove,\n columnIds,\n registerColumn,\n }),\n [\n draggedCard,\n dragSource,\n draggedColumn,\n onCardMove,\n onColumnMove,\n columnIds,\n registerColumn,\n ],\n );\n\n // ── Column-level drop handling ────────────────────────────────────────\n // Root listens only when a column is being dragged. Drop index is\n // computed from mouse X versus each column's horizontal midpoint.\n const containerRef = useRef<HTMLDivElement>(null);\n\n const handleDragOver = useCallback(\n (e: React.DragEvent) => {\n if (!draggedColumn) return;\n e.preventDefault();\n },\n [draggedColumn],\n );\n\n const handleDrop = useCallback(\n (e: React.DragEvent) => {\n if (!draggedColumn || !containerRef.current) return;\n e.preventDefault();\n\n const cols = containerRef.current.querySelectorAll<HTMLElement>(\n '[data-react-fancy-kanban-column]',\n );\n const x = e.clientX;\n let dropIdx = cols.length;\n for (let i = 0; i < cols.length; i++) {\n const rect = cols[i]!.getBoundingClientRect();\n if (x < rect.left + rect.width / 2) {\n dropIdx = i;\n break;\n }\n }\n\n const sourceIdx = columnIds.indexOf(draggedColumn);\n // When moving rightward, dropping at index N visually means landing\n // at N - 1 after the source is removed.\n const finalIdx =\n sourceIdx >= 0 && dropIdx > sourceIdx ? dropIdx - 1 : dropIdx;\n\n if (finalIdx !== sourceIdx) {\n onColumnMove?.(draggedColumn, finalIdx);\n }\n setDraggedColumn(null);\n },\n [draggedColumn, columnIds, onColumnMove],\n );\n\n return (\n <KanbanContext.Provider value={ctx}>\n <div\n ref={containerRef}\n data-react-fancy-kanban=\"\"\n onDragOver={handleDragOver}\n onDrop={handleDrop}\n role=\"application\"\n aria-roledescription=\"kanban board\"\n className={cn(\"flex gap-4 overflow-x-auto p-4\", className)}\n >\n {children}\n </div>\n </KanbanContext.Provider>\n );\n}\n\nexport const Kanban = Object.assign(KanbanRoot, {\n Column: KanbanColumn,\n Card: KanbanCard,\n ColumnHandle: KanbanColumnHandle,\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkT6YELZPJ_cjs = require('./chunk-T6YELZPJ.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkZU5Q77OT_cjs = require('./chunk-ZU5Q77OT.cjs');
|
|
5
5
|
var react = require('react');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
7
7
|
|
|
@@ -87,7 +87,7 @@ var ImageViewer = react.forwardRef(
|
|
|
87
87
|
{
|
|
88
88
|
ref,
|
|
89
89
|
"data-react-fancy-image-viewer": "",
|
|
90
|
-
className:
|
|
90
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
91
91
|
"relative isolate overflow-hidden rounded-md select-none",
|
|
92
92
|
checkerboard ? "fancy-checkerboard" : "bg-zinc-100 dark:bg-zinc-900",
|
|
93
93
|
className
|
|
@@ -99,7 +99,7 @@ var ImageViewer = react.forwardRef(
|
|
|
99
99
|
{
|
|
100
100
|
ref: containerRef,
|
|
101
101
|
"data-canvas-bg": "",
|
|
102
|
-
className:
|
|
102
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
103
103
|
"absolute inset-0 flex items-center justify-center",
|
|
104
104
|
isPanning ? "cursor-grabbing" : pannable && interactive ? "cursor-grab" : ""
|
|
105
105
|
),
|
|
@@ -125,7 +125,7 @@ var ImageViewer = react.forwardRef(
|
|
|
125
125
|
setStatus("error");
|
|
126
126
|
onError?.();
|
|
127
127
|
},
|
|
128
|
-
className:
|
|
128
|
+
className: chunkZU5Q77OT_cjs.cn(
|
|
129
129
|
"pointer-events-none block",
|
|
130
130
|
status === "error" && "hidden",
|
|
131
131
|
fitClasses[fit]
|
|
@@ -195,5 +195,5 @@ var ImageViewer = react.forwardRef(
|
|
|
195
195
|
ImageViewer.displayName = "ImageViewer";
|
|
196
196
|
|
|
197
197
|
exports.ImageViewer = ImageViewer;
|
|
198
|
-
//# sourceMappingURL=chunk-
|
|
199
|
-
//# sourceMappingURL=chunk-
|
|
198
|
+
//# sourceMappingURL=chunk-QDVDBUJM.cjs.map
|
|
199
|
+
//# sourceMappingURL=chunk-QDVDBUJM.cjs.map
|