silver-ui 0.7.3 → 0.8.1
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/README.md +14 -4
- package/dist/{chunk-CQYBC3RJ.cjs → chunk-263EUXFI.cjs} +10 -9
- package/dist/chunk-263EUXFI.cjs.map +1 -0
- package/dist/{chunk-KEPCKSDE.js → chunk-2AY74YXP.js} +3 -2
- package/dist/chunk-2AY74YXP.js.map +1 -0
- package/dist/{chunk-USEA7DB5.js → chunk-2EGYYWPB.js} +4 -4
- package/dist/{chunk-USEA7DB5.js.map → chunk-2EGYYWPB.js.map} +1 -1
- package/dist/{chunk-PGBYMBGH.js → chunk-3CV6IEEY.js} +18 -17
- package/dist/chunk-3CV6IEEY.js.map +1 -0
- package/dist/{chunk-5FQKELP6.js → chunk-3IX2FJWH.js} +3 -2
- package/dist/chunk-3IX2FJWH.js.map +1 -0
- package/dist/{chunk-H7LOOHWU.cjs → chunk-3JCYTBXI.cjs} +3 -2
- package/dist/chunk-3JCYTBXI.cjs.map +1 -0
- package/dist/{chunk-PK3NJSHQ.js → chunk-3TPFJ7NS.js} +8 -7
- package/dist/{chunk-PK3NJSHQ.js.map → chunk-3TPFJ7NS.js.map} +1 -1
- package/dist/{chunk-3W3ST5Y3.cjs → chunk-3USKXV4M.cjs} +7 -6
- package/dist/chunk-3USKXV4M.cjs.map +1 -0
- package/dist/{chunk-S4IHNNA2.js → chunk-3UYPIVBY.js} +3 -2
- package/dist/{chunk-S4IHNNA2.js.map → chunk-3UYPIVBY.js.map} +1 -1
- package/dist/{chunk-5GSRIOXE.js → chunk-4G644ETX.js} +16 -15
- package/dist/{chunk-5GSRIOXE.js.map → chunk-4G644ETX.js.map} +1 -1
- package/dist/{chunk-AO4RVSCG.js → chunk-4MIAF6ZO.js} +6 -5
- package/dist/{chunk-AO4RVSCG.js.map → chunk-4MIAF6ZO.js.map} +1 -1
- package/dist/{chunk-MN2NCSQQ.js → chunk-4MX4DKWA.js} +3 -2
- package/dist/{chunk-MN2NCSQQ.js.map → chunk-4MX4DKWA.js.map} +1 -1
- package/dist/{chunk-RX2FXCIH.cjs → chunk-4VYOE2HE.cjs} +8 -8
- package/dist/{chunk-RX2FXCIH.cjs.map → chunk-4VYOE2HE.cjs.map} +1 -1
- package/dist/{chunk-5MCI3ILK.cjs → chunk-4XFA2XAB.cjs} +44 -43
- package/dist/{chunk-5MCI3ILK.cjs.map → chunk-4XFA2XAB.cjs.map} +1 -1
- package/dist/{chunk-HENIVDYQ.cjs → chunk-4ZJ3P6IF.cjs} +15 -14
- package/dist/chunk-4ZJ3P6IF.cjs.map +1 -0
- package/dist/{chunk-RLIBY7XB.cjs → chunk-5AUBRSYO.cjs} +3 -2
- package/dist/chunk-5AUBRSYO.cjs.map +1 -0
- package/dist/{chunk-ESWYWWY2.js → chunk-5DK3LMS7.js} +5 -4
- package/dist/chunk-5DK3LMS7.js.map +1 -0
- package/dist/{chunk-TP6RGZ6A.js → chunk-5EDJRYE4.js} +14 -13
- package/dist/{chunk-TP6RGZ6A.js.map → chunk-5EDJRYE4.js.map} +1 -1
- package/dist/{chunk-3PEK2Q54.cjs → chunk-5FNYOPUL.cjs} +3 -2
- package/dist/chunk-5FNYOPUL.cjs.map +1 -0
- package/dist/{chunk-ZDZ7FW6V.cjs → chunk-5KFM5ZNO.cjs} +10 -9
- package/dist/chunk-5KFM5ZNO.cjs.map +1 -0
- package/dist/{chunk-AC4E3WQA.cjs → chunk-5P5OSQT2.cjs} +13 -12
- package/dist/chunk-5P5OSQT2.cjs.map +1 -0
- package/dist/{chunk-E6AKSBSP.js → chunk-5SCHQS3L.js} +7 -6
- package/dist/{chunk-E6AKSBSP.js.map → chunk-5SCHQS3L.js.map} +1 -1
- package/dist/{chunk-6SMVH3ON.cjs → chunk-6I7MYAPX.cjs} +9 -8
- package/dist/chunk-6I7MYAPX.cjs.map +1 -0
- package/dist/{chunk-GJZAGTPV.cjs → chunk-7KUEWO4T.cjs} +6 -5
- package/dist/chunk-7KUEWO4T.cjs.map +1 -0
- package/dist/{chunk-VCM4MR7N.cjs → chunk-7TLGH4VK.cjs} +53 -52
- package/dist/{chunk-VCM4MR7N.cjs.map → chunk-7TLGH4VK.cjs.map} +1 -1
- package/dist/{chunk-HPNY32G6.js → chunk-7TYZLVLZ.js} +3 -2
- package/dist/{chunk-HPNY32G6.js.map → chunk-7TYZLVLZ.js.map} +1 -1
- package/dist/{chunk-GA77PPVL.cjs → chunk-A36BE56K.cjs} +8 -7
- package/dist/{chunk-GA77PPVL.cjs.map → chunk-A36BE56K.cjs.map} +1 -1
- package/dist/{chunk-WG4NNC3P.js → chunk-AJAHLIHQ.js} +6 -5
- package/dist/{chunk-WG4NNC3P.js.map → chunk-AJAHLIHQ.js.map} +1 -1
- package/dist/{chunk-5RFHYDQY.js → chunk-AUXMMTKN.js} +3 -2
- package/dist/chunk-AUXMMTKN.js.map +1 -0
- package/dist/{chunk-DDMUYVSV.cjs → chunk-B5HYXBPH.cjs} +17 -16
- package/dist/{chunk-DDMUYVSV.cjs.map → chunk-B5HYXBPH.cjs.map} +1 -1
- package/dist/{chunk-63QPCV4F.cjs → chunk-BJSF4VYC.cjs} +38 -37
- package/dist/chunk-BJSF4VYC.cjs.map +1 -0
- package/dist/{chunk-N6C37HXD.js → chunk-BKZFINUO.js} +8 -7
- package/dist/chunk-BKZFINUO.js.map +1 -0
- package/dist/{chunk-J242UTPO.cjs → chunk-BLKZDVFG.cjs} +12 -11
- package/dist/chunk-BLKZDVFG.cjs.map +1 -0
- package/dist/{chunk-QQCEGAUQ.cjs → chunk-BQMIYEFC.cjs} +12 -11
- package/dist/chunk-BQMIYEFC.cjs.map +1 -0
- package/dist/{chunk-2N3PIXZ5.cjs → chunk-CDN7FN6R.cjs} +8 -7
- package/dist/chunk-CDN7FN6R.cjs.map +1 -0
- package/dist/{chunk-YQIDUJW2.cjs → chunk-CKERNLXH.cjs} +6 -5
- package/dist/{chunk-YQIDUJW2.cjs.map → chunk-CKERNLXH.cjs.map} +1 -1
- package/dist/{chunk-PG4CZRTU.js → chunk-CRYF4JDH.js} +3 -2
- package/dist/chunk-CRYF4JDH.js.map +1 -0
- package/dist/{chunk-EZFQCREN.cjs → chunk-CZAKWWZE.cjs} +10 -9
- package/dist/chunk-CZAKWWZE.cjs.map +1 -0
- package/dist/{chunk-BUYZZOOU.js → chunk-D57CFXDZ.js} +3 -2
- package/dist/{chunk-BUYZZOOU.js.map → chunk-D57CFXDZ.js.map} +1 -1
- package/dist/{chunk-Y2GYPMLW.cjs → chunk-DDKW5FTM.cjs} +6 -5
- package/dist/{chunk-Y2GYPMLW.cjs.map → chunk-DDKW5FTM.cjs.map} +1 -1
- package/dist/{chunk-6KGF66TR.js → chunk-DRWW5XMD.js} +4 -3
- package/dist/{chunk-6KGF66TR.js.map → chunk-DRWW5XMD.js.map} +1 -1
- package/dist/{chunk-IU2YRN35.cjs → chunk-DUZBTPSH.cjs} +3 -2
- package/dist/{chunk-IU2YRN35.cjs.map → chunk-DUZBTPSH.cjs.map} +1 -1
- package/dist/{chunk-VK7DXUGH.cjs → chunk-E5TRE2YG.cjs} +3 -2
- package/dist/chunk-E5TRE2YG.cjs.map +1 -0
- package/dist/{chunk-AXTX3IOR.js → chunk-E65S6HVS.js} +4 -3
- package/dist/{chunk-AXTX3IOR.js.map → chunk-E65S6HVS.js.map} +1 -1
- package/dist/{chunk-ARUOMLOJ.cjs → chunk-ECVWXA4H.cjs} +3 -2
- package/dist/chunk-ECVWXA4H.cjs.map +1 -0
- package/dist/{chunk-FUU3I22W.js → chunk-EEB56QQX.js} +4 -3
- package/dist/{chunk-FUU3I22W.js.map → chunk-EEB56QQX.js.map} +1 -1
- package/dist/{chunk-NYTSAO5I.cjs → chunk-EFYWVWSL.cjs} +3 -2
- package/dist/{chunk-NYTSAO5I.cjs.map → chunk-EFYWVWSL.cjs.map} +1 -1
- package/dist/{chunk-NYOZQE6P.js → chunk-EZ2LRC7U.js} +6 -5
- package/dist/chunk-EZ2LRC7U.js.map +1 -0
- package/dist/{chunk-QM7NQK2K.js → chunk-F2ZT6DCV.js} +5 -4
- package/dist/{chunk-QM7NQK2K.js.map → chunk-F2ZT6DCV.js.map} +1 -1
- package/dist/{chunk-JWMS6LHN.cjs → chunk-FCFVJGWR.cjs} +9 -8
- package/dist/{chunk-JWMS6LHN.cjs.map → chunk-FCFVJGWR.cjs.map} +1 -1
- package/dist/{chunk-6OWEKKOC.js → chunk-FHLK5CTO.js} +6 -5
- package/dist/chunk-FHLK5CTO.js.map +1 -0
- package/dist/{chunk-MYSLJWCW.cjs → chunk-FKZATUBG.cjs} +11 -10
- package/dist/chunk-FKZATUBG.cjs.map +1 -0
- package/dist/{chunk-YQVWDHP4.cjs → chunk-FNBOLEST.cjs} +8 -7
- package/dist/{chunk-YQVWDHP4.cjs.map → chunk-FNBOLEST.cjs.map} +1 -1
- package/dist/{chunk-KWZMXX4F.js → chunk-FPKXEI3W.js} +4 -3
- package/dist/chunk-FPKXEI3W.js.map +1 -0
- package/dist/{chunk-OPBELSKN.js → chunk-FQJBEWGB.js} +8 -7
- package/dist/chunk-FQJBEWGB.js.map +1 -0
- package/dist/{chunk-UUVI3TYW.js → chunk-GCQTQJPW.js} +8 -7
- package/dist/chunk-GCQTQJPW.js.map +1 -0
- package/dist/{chunk-YAQB3UMC.js → chunk-GEU4SROO.js} +5 -4
- package/dist/{chunk-YAQB3UMC.js.map → chunk-GEU4SROO.js.map} +1 -1
- package/dist/{chunk-6ZPHID26.cjs → chunk-GIZ7DK3W.cjs} +10 -9
- package/dist/chunk-GIZ7DK3W.cjs.map +1 -0
- package/dist/{chunk-5K3C3INR.cjs → chunk-GOAIWDHB.cjs} +11 -10
- package/dist/chunk-GOAIWDHB.cjs.map +1 -0
- package/dist/{chunk-GQ73VKKN.js → chunk-H5BUXKYQ.js} +9 -8
- package/dist/{chunk-GQ73VKKN.js.map → chunk-H5BUXKYQ.js.map} +1 -1
- package/dist/{chunk-HN4W6TM6.cjs → chunk-H5Q63Z42.cjs} +10 -9
- package/dist/chunk-H5Q63Z42.cjs.map +1 -0
- package/dist/{chunk-O4PO6AMS.cjs → chunk-HAUMZ357.cjs} +3 -2
- package/dist/{chunk-O4PO6AMS.cjs.map → chunk-HAUMZ357.cjs.map} +1 -1
- package/dist/{chunk-6SFMORQF.cjs → chunk-HTY7SADT.cjs} +8 -7
- package/dist/chunk-HTY7SADT.cjs.map +1 -0
- package/dist/{chunk-WOVSJHY6.cjs → chunk-HW7GODZJ.cjs} +15 -14
- package/dist/chunk-HW7GODZJ.cjs.map +1 -0
- package/dist/{chunk-CKDB7QNT.cjs → chunk-I2QAN2HX.cjs} +21 -20
- package/dist/{chunk-CKDB7QNT.cjs.map → chunk-I2QAN2HX.cjs.map} +1 -1
- package/dist/{chunk-JIF5TZHC.cjs → chunk-IFRIXTF5.cjs} +3 -2
- package/dist/chunk-IFRIXTF5.cjs.map +1 -0
- package/dist/{chunk-JTPVAZE6.cjs → chunk-IHR3KEWH.cjs} +12 -11
- package/dist/{chunk-JTPVAZE6.cjs.map → chunk-IHR3KEWH.cjs.map} +1 -1
- package/dist/{chunk-EBV3EX3J.js → chunk-J2TQNGUM.js} +8 -7
- package/dist/chunk-J2TQNGUM.js.map +1 -0
- package/dist/{chunk-LWB2CTX6.cjs → chunk-J5VWFOOY.cjs} +5 -4
- package/dist/{chunk-LWB2CTX6.cjs.map → chunk-J5VWFOOY.cjs.map} +1 -1
- package/dist/{chunk-3NIDAKCF.cjs → chunk-J6XRX6DD.cjs} +3 -2
- package/dist/chunk-J6XRX6DD.cjs.map +1 -0
- package/dist/{chunk-6R2UZNVE.js → chunk-JCXI44K2.js} +7 -6
- package/dist/chunk-JCXI44K2.js.map +1 -0
- package/dist/{chunk-NIKT7XSO.js → chunk-JFFAICCY.js} +7 -6
- package/dist/chunk-JFFAICCY.js.map +1 -0
- package/dist/{chunk-UW3KCCBT.cjs → chunk-KZOUXGPD.cjs} +5 -4
- package/dist/{chunk-UW3KCCBT.cjs.map → chunk-KZOUXGPD.cjs.map} +1 -1
- package/dist/{chunk-OX2FNKIV.cjs → chunk-LDKE723G.cjs} +11 -10
- package/dist/{chunk-OX2FNKIV.cjs.map → chunk-LDKE723G.cjs.map} +1 -1
- package/dist/{chunk-BIKVMVWF.js → chunk-LHQM533G.js} +3 -2
- package/dist/{chunk-BIKVMVWF.js.map → chunk-LHQM533G.js.map} +1 -1
- package/dist/{chunk-KVJ27734.cjs → chunk-LIDE7FVO.cjs} +5 -4
- package/dist/{chunk-KVJ27734.cjs.map → chunk-LIDE7FVO.cjs.map} +1 -1
- package/dist/{chunk-EIJSWHG7.js → chunk-LT4P67TG.js} +6 -5
- package/dist/{chunk-EIJSWHG7.js.map → chunk-LT4P67TG.js.map} +1 -1
- package/dist/{chunk-3PCXFOOS.js → chunk-M5SZUUWM.js} +7 -6
- package/dist/chunk-M5SZUUWM.js.map +1 -0
- package/dist/{chunk-BQWUTDTN.js → chunk-MCCOQSSC.js} +3 -2
- package/dist/{chunk-BQWUTDTN.js.map → chunk-MCCOQSSC.js.map} +1 -1
- package/dist/{chunk-I2DXEPDF.js → chunk-MVDTWARG.js} +7 -6
- package/dist/chunk-MVDTWARG.js.map +1 -0
- package/dist/{chunk-VWG54F6X.cjs → chunk-MWETV5LK.cjs} +9 -8
- package/dist/{chunk-VWG54F6X.cjs.map → chunk-MWETV5LK.cjs.map} +1 -1
- package/dist/{chunk-OCYZKZ24.cjs → chunk-MWWAQVJ3.cjs} +4 -4
- package/dist/{chunk-OCYZKZ24.cjs.map → chunk-MWWAQVJ3.cjs.map} +1 -1
- package/dist/{chunk-BBLAZNCC.js → chunk-MYBFODRI.js} +9 -8
- package/dist/chunk-MYBFODRI.js.map +1 -0
- package/dist/{chunk-GLFWSLJB.cjs → chunk-NHM6CSX2.cjs} +11 -10
- package/dist/{chunk-GLFWSLJB.cjs.map → chunk-NHM6CSX2.cjs.map} +1 -1
- package/dist/{chunk-BF2DUOC3.cjs → chunk-NJR5SVHL.cjs} +15 -14
- package/dist/{chunk-BF2DUOC3.cjs.map → chunk-NJR5SVHL.cjs.map} +1 -1
- package/dist/{chunk-Q6YOSQAM.js → chunk-NP527IVS.js} +8 -7
- package/dist/chunk-NP527IVS.js.map +1 -0
- package/dist/{chunk-56PY2CD7.js → chunk-NSA33LOE.js} +6 -5
- package/dist/chunk-NSA33LOE.js.map +1 -0
- package/dist/{chunk-ZW2ZOEYM.cjs → chunk-OAEVUPAL.cjs} +11 -10
- package/dist/chunk-OAEVUPAL.cjs.map +1 -0
- package/dist/{chunk-KVEXSDEM.js → chunk-OI4GH7DO.js} +5 -4
- package/dist/{chunk-KVEXSDEM.js.map → chunk-OI4GH7DO.js.map} +1 -1
- package/dist/{chunk-AKAXQ4RL.js → chunk-OLJIILEI.js} +4 -3
- package/dist/{chunk-AKAXQ4RL.js.map → chunk-OLJIILEI.js.map} +1 -1
- package/dist/{chunk-S4WWBV4N.js → chunk-ONOKHFK3.js} +6 -5
- package/dist/chunk-ONOKHFK3.js.map +1 -0
- package/dist/{chunk-BSXUNRET.cjs → chunk-ONRLHP46.cjs} +3 -2
- package/dist/chunk-ONRLHP46.cjs.map +1 -0
- package/dist/{chunk-NSWKBWPP.js → chunk-OSYOGJC5.js} +6 -5
- package/dist/{chunk-NSWKBWPP.js.map → chunk-OSYOGJC5.js.map} +1 -1
- package/dist/{chunk-5UGHDUMO.js → chunk-OXBBLHTC.js} +3 -2
- package/dist/chunk-OXBBLHTC.js.map +1 -0
- package/dist/{chunk-PQXPYN23.js → chunk-OYBRYZKK.js} +8 -7
- package/dist/chunk-OYBRYZKK.js.map +1 -0
- package/dist/{chunk-4MIIXRZN.cjs → chunk-OZNCX6DY.cjs} +21 -20
- package/dist/chunk-OZNCX6DY.cjs.map +1 -0
- package/dist/{chunk-FHUOUARL.js → chunk-P6LEAMPW.js} +5 -4
- package/dist/{chunk-FHUOUARL.js.map → chunk-P6LEAMPW.js.map} +1 -1
- package/dist/{chunk-DE7JLNSO.js → chunk-PTDBPRZD.js} +3 -2
- package/dist/chunk-PTDBPRZD.js.map +1 -0
- package/dist/{chunk-LBOWHXOF.js → chunk-PYUPT3HU.js} +5 -4
- package/dist/chunk-PYUPT3HU.js.map +1 -0
- package/dist/{chunk-PZHRFASW.js → chunk-Q4UI2MP4.js} +3 -2
- package/dist/chunk-Q4UI2MP4.js.map +1 -0
- package/dist/{chunk-YGESCFX2.js → chunk-Q5DVIVMR.js} +4 -3
- package/dist/chunk-Q5DVIVMR.js.map +1 -0
- package/dist/{chunk-FQSVY4QB.js → chunk-QMFPPGSZ.js} +4 -3
- package/dist/chunk-QMFPPGSZ.js.map +1 -0
- package/dist/{chunk-JMVYWHJ7.js → chunk-QMZQ4I72.js} +5 -4
- package/dist/chunk-QMZQ4I72.js.map +1 -0
- package/dist/{chunk-PXTTIAC4.cjs → chunk-QOQ55IUO.cjs} +9 -8
- package/dist/chunk-QOQ55IUO.cjs.map +1 -0
- package/dist/{chunk-5HPXPF3F.js → chunk-R3ONJZXN.js} +6 -5
- package/dist/chunk-R3ONJZXN.js.map +1 -0
- package/dist/{chunk-EEOUWM2F.cjs → chunk-RCRUFF6F.cjs} +5 -4
- package/dist/{chunk-EEOUWM2F.cjs.map → chunk-RCRUFF6F.cjs.map} +1 -1
- package/dist/{chunk-V5XVXQWE.js → chunk-RKPEY2LR.js} +6 -5
- package/dist/{chunk-V5XVXQWE.js.map → chunk-RKPEY2LR.js.map} +1 -1
- package/dist/{chunk-X2P5SPGB.js → chunk-RM2XLAAU.js} +3 -3
- package/dist/{chunk-X2P5SPGB.js.map → chunk-RM2XLAAU.js.map} +1 -1
- package/dist/{chunk-D7TT4HUI.cjs → chunk-RNKQPVCB.cjs} +17 -16
- package/dist/{chunk-D7TT4HUI.cjs.map → chunk-RNKQPVCB.cjs.map} +1 -1
- package/dist/{chunk-FTNEAX24.js → chunk-RQUQSI67.js} +5 -4
- package/dist/chunk-RQUQSI67.js.map +1 -0
- package/dist/{chunk-54B36CSW.js → chunk-RRN6FK6U.js} +6 -5
- package/dist/{chunk-54B36CSW.js.map → chunk-RRN6FK6U.js.map} +1 -1
- package/dist/{chunk-KLPVBJGZ.cjs → chunk-RUPT4QAW.cjs} +6 -5
- package/dist/{chunk-KLPVBJGZ.cjs.map → chunk-RUPT4QAW.cjs.map} +1 -1
- package/dist/{chunk-UNS7OCEA.cjs → chunk-RYVQVW2U.cjs} +6 -5
- package/dist/{chunk-UNS7OCEA.cjs.map → chunk-RYVQVW2U.cjs.map} +1 -1
- package/dist/{chunk-OUUG4RHO.js → chunk-RZBOQQRG.js} +7 -6
- package/dist/chunk-RZBOQQRG.js.map +1 -0
- package/dist/{chunk-HC57X3U4.js → chunk-RZPKI7FD.js} +6 -5
- package/dist/chunk-RZPKI7FD.js.map +1 -0
- package/dist/{chunk-WTCH3QCQ.js → chunk-SHJNMFEV.js} +3 -2
- package/dist/chunk-SHJNMFEV.js.map +1 -0
- package/dist/{chunk-DVCDAKPK.cjs → chunk-T6E5MIIO.cjs} +7 -6
- package/dist/chunk-T6E5MIIO.cjs.map +1 -0
- package/dist/{chunk-UJDHRILS.cjs → chunk-TFPTFBHN.cjs} +7 -6
- package/dist/chunk-TFPTFBHN.cjs.map +1 -0
- package/dist/{chunk-XUCLNECV.js → chunk-TRDO4OBD.js} +4 -3
- package/dist/chunk-TRDO4OBD.js.map +1 -0
- package/dist/{chunk-LTHPJRFK.cjs → chunk-TRQQZ3FY.cjs} +10 -9
- package/dist/{chunk-LTHPJRFK.cjs.map → chunk-TRQQZ3FY.cjs.map} +1 -1
- package/dist/{chunk-PYN75QAG.js → chunk-TS3FMP6Z.js} +4 -3
- package/dist/chunk-TS3FMP6Z.js.map +1 -0
- package/dist/{chunk-QB2BSOM4.cjs → chunk-TT65RNBY.cjs} +3 -2
- package/dist/{chunk-QB2BSOM4.cjs.map → chunk-TT65RNBY.cjs.map} +1 -1
- package/dist/{chunk-KLCEDPJ4.cjs → chunk-TX4BD3JN.cjs} +19 -18
- package/dist/chunk-TX4BD3JN.cjs.map +1 -0
- package/dist/{chunk-CWZCBYVZ.cjs → chunk-U7NJKBAR.cjs} +14 -13
- package/dist/chunk-U7NJKBAR.cjs.map +1 -0
- package/dist/{chunk-6SKIBUCY.js → chunk-UCMIHJFE.js} +5 -4
- package/dist/chunk-UCMIHJFE.js.map +1 -0
- package/dist/{chunk-BNGYGCT2.js → chunk-UCSMB46R.js} +4 -3
- package/dist/{chunk-BNGYGCT2.js.map → chunk-UCSMB46R.js.map} +1 -1
- package/dist/{chunk-DTNIUZ3C.cjs → chunk-UGK3AL6Z.cjs} +8 -7
- package/dist/{chunk-DTNIUZ3C.cjs.map → chunk-UGK3AL6Z.cjs.map} +1 -1
- package/dist/{chunk-2AOR4EVA.cjs → chunk-UJS33XO7.cjs} +9 -8
- package/dist/chunk-UJS33XO7.cjs.map +1 -0
- package/dist/{chunk-BPAZTKMC.cjs → chunk-VOYIMBTO.cjs} +11 -10
- package/dist/{chunk-BPAZTKMC.cjs.map → chunk-VOYIMBTO.cjs.map} +1 -1
- package/dist/{chunk-ACGPBJIS.js → chunk-VRXTRDIP.js} +6 -5
- package/dist/chunk-VRXTRDIP.js.map +1 -0
- package/dist/{chunk-CPDWUT2H.cjs → chunk-W6UBDEMN.cjs} +3 -2
- package/dist/{chunk-CPDWUT2H.cjs.map → chunk-W6UBDEMN.cjs.map} +1 -1
- package/dist/{chunk-DXUFDJHA.cjs → chunk-WBVSDRWB.cjs} +11 -10
- package/dist/{chunk-DXUFDJHA.cjs.map → chunk-WBVSDRWB.cjs.map} +1 -1
- package/dist/{chunk-U7QJJ3NR.cjs → chunk-WHQNYDUT.cjs} +9 -8
- package/dist/{chunk-U7QJJ3NR.cjs.map → chunk-WHQNYDUT.cjs.map} +1 -1
- package/dist/{chunk-MJHEPDDX.cjs → chunk-WW6XXMJL.cjs} +21 -20
- package/dist/chunk-WW6XXMJL.cjs.map +1 -0
- package/dist/{chunk-HEF53COU.js → chunk-X6QULLGW.js} +4 -3
- package/dist/{chunk-HEF53COU.js.map → chunk-X6QULLGW.js.map} +1 -1
- package/dist/{chunk-BYV7NXC5.cjs → chunk-XB6G4W4P.cjs} +8 -7
- package/dist/chunk-XB6G4W4P.cjs.map +1 -0
- package/dist/{chunk-MDQSVB2Y.js → chunk-XBQKPRWG.js} +3 -2
- package/dist/chunk-XBQKPRWG.js.map +1 -0
- package/dist/{chunk-WLWSQKWI.js → chunk-XQIPFZUD.js} +9 -8
- package/dist/{chunk-WLWSQKWI.js.map → chunk-XQIPFZUD.js.map} +1 -1
- package/dist/{chunk-TACO5IWI.cjs → chunk-XTWTL3UB.cjs} +20 -19
- package/dist/chunk-XTWTL3UB.cjs.map +1 -0
- package/dist/{chunk-6KG76KUZ.js → chunk-XVJLFQJT.js} +4 -3
- package/dist/{chunk-6KG76KUZ.js.map → chunk-XVJLFQJT.js.map} +1 -1
- package/dist/{chunk-CVT7JW6C.cjs → chunk-XY5GXS62.cjs} +5 -4
- package/dist/{chunk-CVT7JW6C.cjs.map → chunk-XY5GXS62.cjs.map} +1 -1
- package/dist/{chunk-PKZSJX53.cjs → chunk-Y3TUHGI2.cjs} +3 -2
- package/dist/chunk-Y3TUHGI2.cjs.map +1 -0
- package/dist/{chunk-GKYGZWSQ.js → chunk-YBMIXGFM.js} +6 -5
- package/dist/{chunk-GKYGZWSQ.js.map → chunk-YBMIXGFM.js.map} +1 -1
- package/dist/{chunk-GTZQT6MK.js → chunk-YK5BUUZG.js} +6 -5
- package/dist/chunk-YK5BUUZG.js.map +1 -0
- package/dist/{chunk-L747HIHG.js → chunk-YKLFVO22.js} +5 -4
- package/dist/chunk-YKLFVO22.js.map +1 -0
- package/dist/{chunk-BKKLUIIU.js → chunk-YNGDGY2J.js} +3 -2
- package/dist/chunk-YNGDGY2J.js.map +1 -0
- package/dist/{chunk-2K4I2MB3.cjs → chunk-YPTBGFPT.cjs} +3 -2
- package/dist/{chunk-2K4I2MB3.cjs.map → chunk-YPTBGFPT.cjs.map} +1 -1
- package/dist/{chunk-O3UT5D57.js → chunk-YUKH75MR.js} +15 -14
- package/dist/{chunk-O3UT5D57.js.map → chunk-YUKH75MR.js.map} +1 -1
- package/dist/{chunk-IREOTHD3.cjs → chunk-Z2KSHRDD.cjs} +6 -5
- package/dist/chunk-Z2KSHRDD.cjs.map +1 -0
- package/dist/{chunk-VPWNRWNO.cjs → chunk-Z5EY2GRO.cjs} +3 -2
- package/dist/chunk-Z5EY2GRO.cjs.map +1 -0
- package/dist/{chunk-D3CHBU46.js → chunk-ZLJOIPTJ.js} +4 -3
- package/dist/{chunk-D3CHBU46.js.map → chunk-ZLJOIPTJ.js.map} +1 -1
- package/dist/{chunk-NGNVNRAZ.cjs → chunk-ZQWT5UEN.cjs} +18 -17
- package/dist/chunk-ZQWT5UEN.cjs.map +1 -0
- package/dist/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionContext.d.ts.map +1 -1
- package/dist/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/components/Accordion/index.cjs +4 -4
- package/dist/components/Accordion/index.js +1 -1
- package/dist/components/Accordion/useAccordionDevWarning.d.ts.map +1 -1
- package/dist/components/Accordion/useCollapsible.d.ts.map +1 -1
- package/dist/components/Alert/Alert.d.ts.map +1 -1
- package/dist/components/Alert/index.cjs +10 -10
- package/dist/components/Alert/index.js +9 -9
- package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -1
- package/dist/components/AlertDialog/index.cjs +16 -16
- package/dist/components/AlertDialog/index.js +14 -14
- package/dist/components/AlertDialog/useAlertDialog.d.ts.map +1 -1
- package/dist/components/AppShell/AppShell.d.ts.map +1 -1
- package/dist/components/AppShell/AppShellMobileContext.d.ts.map +1 -1
- package/dist/components/AppShell/index.cjs +21 -21
- package/dist/components/AppShell/index.js +18 -18
- package/dist/components/AppShell/useSlotPresence.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/AutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/BaseAutocompleteInput.d.ts.map +1 -1
- package/dist/components/AutocompleteInput/index.cjs +17 -17
- package/dist/components/AutocompleteInput/index.js +13 -13
- package/dist/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarSizeContext.d.ts.map +1 -1
- package/dist/components/Avatar/AvatarStatusDot.d.ts.map +1 -1
- package/dist/components/Avatar/index.cjs +4 -4
- package/dist/components/Avatar/index.js +1 -1
- package/dist/components/AvatarGroup/AvatarGroup.d.ts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroupContext.d.ts.map +1 -1
- package/dist/components/AvatarGroup/AvatarGroupOverflow.d.ts.map +1 -1
- package/dist/components/AvatarGroup/index.cjs +4 -4
- package/dist/components/AvatarGroup/index.js +2 -2
- package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/BreadcrumbsContext.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.cjs +5 -5
- package/dist/components/Breadcrumbs/index.js +2 -2
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/index.cjs +9 -9
- package/dist/components/Button/index.js +8 -8
- package/dist/components/ButtonGroup/ButtonGroup.d.ts.map +1 -1
- package/dist/components/ButtonGroup/ButtonGroupContext.d.ts.map +1 -1
- package/dist/components/ButtonGroup/index.cjs +3 -3
- package/dist/components/ButtonGroup/index.js +2 -2
- package/dist/components/Calendar/Calendar.d.ts.map +1 -1
- package/dist/components/Calendar/index.cjs +10 -10
- package/dist/components/Calendar/index.js +9 -9
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -1
- package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -1
- package/dist/components/CheckboxGroup/index.cjs +12 -12
- package/dist/components/CheckboxGroup/index.js +10 -10
- package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/components/CheckboxInput/index.cjs +9 -9
- package/dist/components/CheckboxInput/index.js +8 -8
- package/dist/components/CodeBlock/index.cjs +11 -11
- package/dist/components/CodeBlock/index.js +10 -10
- package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -1
- package/dist/components/ContextMenu/index.cjs +15 -15
- package/dist/components/ContextMenu/index.js +13 -13
- package/dist/components/DateInput/DateInput.d.ts.map +1 -1
- package/dist/components/DateInput/index.cjs +13 -13
- package/dist/components/DateInput/index.js +12 -12
- package/dist/components/DateRangeInput/DateRangeInput.d.ts.map +1 -1
- package/dist/components/DateRangeInput/index.cjs +13 -13
- package/dist/components/DateRangeInput/index.js +12 -12
- package/dist/components/DateTimeInput/DateTimeInput.d.ts.map +1 -1
- package/dist/components/DateTimeInput/index.cjs +15 -15
- package/dist/components/DateTimeInput/index.js +14 -14
- package/dist/components/Dialog/Dialog.d.ts.map +1 -1
- package/dist/components/Dialog/DialogContext.d.ts.map +1 -1
- package/dist/components/Dialog/index.cjs +8 -8
- package/dist/components/Dialog/index.js +4 -4
- package/dist/components/Dialog/useDialog.d.ts.map +1 -1
- package/dist/components/Divider/Divider.d.ts.map +1 -1
- package/dist/components/Divider/index.cjs +2 -2
- package/dist/components/Divider/index.js +1 -1
- package/dist/components/Drawer/Drawer.d.ts.map +1 -1
- package/dist/components/Drawer/index.cjs +5 -5
- package/dist/components/Drawer/index.js +3 -3
- package/dist/components/Drawer/useDrawer.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuContext.d.ts.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -1
- package/dist/components/DropdownMenu/index.cjs +16 -16
- package/dist/components/DropdownMenu/index.js +12 -12
- package/dist/components/DropdownMenu/menuUtils.d.ts.map +1 -1
- package/dist/components/EmptyState/EmptyState.d.ts.map +1 -1
- package/dist/components/EmptyState/index.cjs +5 -5
- package/dist/components/EmptyState/index.js +4 -4
- package/dist/components/Field/index.cjs +6 -6
- package/dist/components/Field/index.js +4 -4
- package/dist/components/FileInput/FileInput.d.ts.map +1 -1
- package/dist/components/FileInput/index.cjs +11 -11
- package/dist/components/FileInput/index.js +10 -10
- package/dist/components/HoverCard/HoverCard.d.ts.map +1 -1
- package/dist/components/HoverCard/index.cjs +4 -4
- package/dist/components/HoverCard/index.js +2 -2
- package/dist/components/HoverCard/useHoverCard.d.ts.map +1 -1
- package/dist/components/InputGroup/InputGroup.d.ts.map +1 -1
- package/dist/components/InputGroup/InputGroupContext.d.ts.map +1 -1
- package/dist/components/InputGroup/index.cjs +9 -9
- package/dist/components/InputGroup/index.js +5 -5
- package/dist/components/Item/Item.d.ts.map +1 -1
- package/dist/components/Item/index.cjs +7 -7
- package/dist/components/Item/index.js +6 -6
- package/dist/components/Kbd/Kbd.d.ts.map +1 -1
- package/dist/components/Kbd/index.cjs +2 -2
- package/dist/components/Kbd/index.js +1 -1
- package/dist/components/Layout/Layout.d.ts.map +1 -1
- package/dist/components/Layout/LayoutContext.d.ts.map +1 -1
- package/dist/components/Layout/LayoutFooter.d.ts.map +1 -1
- package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/components/Layout/LayoutPanel.d.ts.map +1 -1
- package/dist/components/Layout/index.cjs +15 -15
- package/dist/components/Layout/index.js +10 -10
- package/dist/components/Lightbox/Lightbox.d.ts.map +1 -1
- package/dist/components/Lightbox/index.cjs +12 -12
- package/dist/components/Lightbox/index.js +10 -10
- package/dist/components/Lightbox/useLightbox.d.ts.map +1 -1
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/LinkContext.d.ts.map +1 -1
- package/dist/components/Link/LinkProvider.d.ts.map +1 -1
- package/dist/components/Link/index.cjs +8 -8
- package/dist/components/Link/index.js +5 -5
- package/dist/components/Link/useLinkComponent.d.ts.map +1 -1
- package/dist/components/List/List.d.ts.map +1 -1
- package/dist/components/List/ListContext.d.ts.map +1 -1
- package/dist/components/List/ListItem.d.ts.map +1 -1
- package/dist/components/List/index.cjs +9 -9
- package/dist/components/List/index.js +7 -7
- package/dist/components/MetadataList/MetadataList.d.ts.map +1 -1
- package/dist/components/MetadataList/MetadataListContext.d.ts.map +1 -1
- package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
- package/dist/components/MetadataList/index.cjs +6 -6
- package/dist/components/MetadataList/index.js +4 -4
- package/dist/components/MultiSelect/MultiSelect.d.ts.map +1 -1
- package/dist/components/MultiSelect/index.cjs +13 -13
- package/dist/components/MultiSelect/index.js +12 -12
- package/dist/components/NumberInput/NumberInput.d.ts.map +1 -1
- package/dist/components/NumberInput/index.cjs +12 -12
- package/dist/components/NumberInput/index.js +11 -11
- package/dist/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/components/Pagination/index.cjs +10 -10
- package/dist/components/Pagination/index.js +9 -9
- package/dist/components/PasswordInput/PasswordInput.d.ts.map +1 -1
- package/dist/components/PasswordInput/index.cjs +13 -13
- package/dist/components/PasswordInput/index.js +12 -12
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/index.cjs +11 -11
- package/dist/components/Popover/index.js +9 -9
- package/dist/components/Popover/usePopover.d.ts.map +1 -1
- package/dist/components/Progress/Progress.d.ts.map +1 -1
- package/dist/components/Progress/index.cjs +2 -2
- package/dist/components/Progress/index.js +1 -1
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroupContext.d.ts.map +1 -1
- package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -1
- package/dist/components/RadioGroup/index.cjs +10 -10
- package/dist/components/RadioGroup/index.js +8 -8
- package/dist/components/Rating/Rating.d.ts.map +1 -1
- package/dist/components/Rating/index.cjs +2 -2
- package/dist/components/Rating/index.js +1 -1
- package/dist/components/Schedule/DayView.d.ts.map +1 -1
- package/dist/components/Schedule/ListView.d.ts.map +1 -1
- package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
- package/dist/components/Schedule/Schedule.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
- package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
- package/dist/components/Schedule/context.d.ts.map +1 -1
- package/dist/components/Schedule/index.cjs +34 -34
- package/dist/components/Schedule/index.js +19 -19
- package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -1
- package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -1
- package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -1
- package/dist/components/Schedule/plugins/PaginationPlugin.d.ts.map +1 -1
- package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -1
- package/dist/components/Schedule/plugins/ViewSelectorPlugin.d.ts.map +1 -1
- package/dist/components/Schedule/shared.d.ts.map +1 -1
- package/dist/components/Schedule/useCurrentTime.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInput.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputFilterEditor.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputTag.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputValueEditor.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/index.cjs +32 -32
- package/dist/components/SearchFilterInput/index.js +24 -24
- package/dist/components/SearchFilterInput/internalConfig.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/useSearchFilterInputConfig.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/useSearchFilterInputSource.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControl.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlContext.d.ts.map +1 -1
- package/dist/components/SegmentedControl/SegmentedControlItem.d.ts.map +1 -1
- package/dist/components/SegmentedControl/index.cjs +3 -3
- package/dist/components/SegmentedControl/index.js +1 -1
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/index.cjs +15 -15
- package/dist/components/Select/index.js +13 -13
- package/dist/components/SideNav/SideNav.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavContext.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavHeading.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavSection.d.ts.map +1 -1
- package/dist/components/SideNav/index.cjs +19 -19
- package/dist/components/SideNav/index.js +13 -13
- package/dist/components/SideNav/internal/SideNavCollapseButton.d.ts.map +1 -1
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/index.cjs +6 -6
- package/dist/components/Slider/index.js +5 -5
- package/dist/components/Spinner/index.cjs +5 -5
- package/dist/components/Spinner/index.js +4 -4
- package/dist/components/SplitButton/SplitButton.d.ts.map +1 -1
- package/dist/components/SplitButton/index.cjs +15 -15
- package/dist/components/SplitButton/index.js +14 -14
- package/dist/components/Stepper/Stepper.d.ts.map +1 -1
- package/dist/components/Stepper/index.cjs +5 -5
- package/dist/components/Stepper/index.js +4 -4
- package/dist/components/Stepper/internal/Step.d.ts.map +1 -1
- package/dist/components/Switch/Switch.d.ts.map +1 -1
- package/dist/components/Switch/index.cjs +6 -6
- package/dist/components/Switch/index.js +5 -5
- package/dist/components/Table/Table.d.ts.map +1 -1
- package/dist/components/Table/TableCell.d.ts.map +1 -1
- package/dist/components/Table/TableContext.d.ts.map +1 -1
- package/dist/components/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/components/Table/TableRow.d.ts.map +1 -1
- package/dist/components/Table/index.cjs +54 -54
- package/dist/components/Table/index.js +28 -28
- package/dist/components/Table/plugins/columnResize/useTableColumnResize.d.ts.map +1 -1
- package/dist/components/Table/plugins/columnSettings/useTableColumnSettings.d.ts.map +1 -1
- package/dist/components/Table/plugins/columnSettings/useTableColumnSettingsState.d.ts.map +1 -1
- package/dist/components/Table/plugins/filtering/useTableFilterState.d.ts.map +1 -1
- package/dist/components/Table/plugins/filtering/useTableFiltering.d.ts.map +1 -1
- package/dist/components/Table/plugins/pagination/useTablePagination.d.ts.map +1 -1
- package/dist/components/Table/plugins/selection/useTableSelection.d.ts.map +1 -1
- package/dist/components/Table/plugins/selection/useTableSelectionState.d.ts.map +1 -1
- package/dist/components/Table/plugins/sortable/useTableSortable.d.ts.map +1 -1
- package/dist/components/Table/plugins/sortable/useTableSortableState.d.ts.map +1 -1
- package/dist/components/Table/useBaseTablePlugins.d.ts.map +1 -1
- package/dist/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/components/Tabs/TabMenu.d.ts.map +1 -1
- package/dist/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/components/Tabs/TabsContext.d.ts.map +1 -1
- package/dist/components/Tabs/index.cjs +15 -15
- package/dist/components/Tabs/index.js +10 -10
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/index.cjs +7 -7
- package/dist/components/Tag/index.js +6 -6
- package/dist/components/TagsInput/TagsInput.d.ts.map +1 -1
- package/dist/components/TagsInput/index.cjs +15 -15
- package/dist/components/TagsInput/index.js +14 -14
- package/dist/components/Text/Heading.d.ts.map +1 -1
- package/dist/components/Text/Text.d.ts.map +1 -1
- package/dist/components/Text/index.cjs +5 -5
- package/dist/components/Text/index.js +3 -3
- package/dist/components/Text/useTruncation.d.ts.map +1 -1
- package/dist/components/TextArea/TextArea.d.ts.map +1 -1
- package/dist/components/TextArea/index.cjs +7 -7
- package/dist/components/TextArea/index.js +6 -6
- package/dist/components/TextInput/TextInput.d.ts.map +1 -1
- package/dist/components/TextInput/index.cjs +12 -12
- package/dist/components/TextInput/index.js +11 -11
- package/dist/components/Theme/Theme.d.ts.map +1 -1
- package/dist/components/Theme/index.cjs +2 -2
- package/dist/components/Theme/index.js +1 -1
- package/dist/components/Thumbnail/Thumbnail.d.ts.map +1 -1
- package/dist/components/Thumbnail/index.cjs +10 -10
- package/dist/components/Thumbnail/index.js +9 -9
- package/dist/components/TimeInput/TimeInput.d.ts.map +1 -1
- package/dist/components/TimeInput/index.cjs +11 -11
- package/dist/components/TimeInput/index.js +10 -10
- package/dist/components/Toast/Toast.d.ts.map +1 -1
- package/dist/components/Toast/ToastContext.d.ts.map +1 -1
- package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/components/Toast/index.cjs +12 -12
- package/dist/components/Toast/index.js +9 -9
- package/dist/components/Toast/useToast.d.ts.map +1 -1
- package/dist/components/ToggleButton/ToggleButton.d.ts.map +1 -1
- package/dist/components/ToggleButton/ToggleButtonGroup.d.ts.map +1 -1
- package/dist/components/ToggleButton/index.cjs +7 -7
- package/dist/components/ToggleButton/index.js +5 -5
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/components/Tooltip/index.cjs +4 -4
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/components/Tooltip/useTooltip.d.ts.map +1 -1
- package/dist/components/TopNav/TopNav.d.ts.map +1 -1
- package/dist/components/TopNav/TopNavContext.d.ts.map +1 -1
- package/dist/components/TopNav/TopNavHeading.d.ts.map +1 -1
- package/dist/components/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/components/TopNav/index.cjs +18 -18
- package/dist/components/TopNav/index.js +13 -13
- package/dist/components/TreeView/TreeView.d.ts.map +1 -1
- package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
- package/dist/components/TreeView/index.cjs +3 -3
- package/dist/components/TreeView/index.js +2 -2
- package/dist/index.cjs +246 -246
- package/dist/index.js +76 -76
- package/dist/internal/ActionElement.d.ts.map +1 -1
- package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
- package/dist/internal/MobileNav/MobileNav.d.ts.map +1 -1
- package/dist/internal/MobileNav/MobileNavToggle.d.ts.map +1 -1
- package/dist/internal/OverflowList.d.ts.map +1 -1
- package/dist/internal/linkAccessibility.d.ts.map +1 -1
- package/dist/internal/useBackdropDismiss.d.ts.map +1 -1
- package/dist/internal/useConstant.d.ts.map +1 -1
- package/dist/internal/useFocusTrap.d.ts.map +1 -1
- package/dist/internal/useGridFocus.d.ts.map +1 -1
- package/dist/internal/useHoverLayer.d.ts.map +1 -1
- package/dist/internal/useLatest.d.ts.map +1 -1
- package/dist/internal/useLayer.d.ts.map +1 -1
- package/dist/internal/useListboxNavigation.d.ts.map +1 -1
- package/dist/internal/useMediaQuery.d.ts.map +1 -1
- package/dist/internal/useScrollLock.d.ts.map +1 -1
- package/dist/internal/useSelectListbox.d.ts.map +1 -1
- package/dist/internal/useShallowEqualMemo.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +3 -2
- package/dist/chunk-2AOR4EVA.cjs.map +0 -1
- package/dist/chunk-2N3PIXZ5.cjs.map +0 -1
- package/dist/chunk-3NIDAKCF.cjs.map +0 -1
- package/dist/chunk-3PCXFOOS.js.map +0 -1
- package/dist/chunk-3PEK2Q54.cjs.map +0 -1
- package/dist/chunk-3W3ST5Y3.cjs.map +0 -1
- package/dist/chunk-4MIIXRZN.cjs.map +0 -1
- package/dist/chunk-56PY2CD7.js.map +0 -1
- package/dist/chunk-5FQKELP6.js.map +0 -1
- package/dist/chunk-5HPXPF3F.js.map +0 -1
- package/dist/chunk-5K3C3INR.cjs.map +0 -1
- package/dist/chunk-5RFHYDQY.js.map +0 -1
- package/dist/chunk-5UGHDUMO.js.map +0 -1
- package/dist/chunk-63QPCV4F.cjs.map +0 -1
- package/dist/chunk-6OWEKKOC.js.map +0 -1
- package/dist/chunk-6R2UZNVE.js.map +0 -1
- package/dist/chunk-6SFMORQF.cjs.map +0 -1
- package/dist/chunk-6SKIBUCY.js.map +0 -1
- package/dist/chunk-6SMVH3ON.cjs.map +0 -1
- package/dist/chunk-6ZPHID26.cjs.map +0 -1
- package/dist/chunk-AC4E3WQA.cjs.map +0 -1
- package/dist/chunk-ACGPBJIS.js.map +0 -1
- package/dist/chunk-ARUOMLOJ.cjs.map +0 -1
- package/dist/chunk-BBLAZNCC.js.map +0 -1
- package/dist/chunk-BKKLUIIU.js.map +0 -1
- package/dist/chunk-BSXUNRET.cjs.map +0 -1
- package/dist/chunk-BYV7NXC5.cjs.map +0 -1
- package/dist/chunk-CQYBC3RJ.cjs.map +0 -1
- package/dist/chunk-CWZCBYVZ.cjs.map +0 -1
- package/dist/chunk-DE7JLNSO.js.map +0 -1
- package/dist/chunk-DVCDAKPK.cjs.map +0 -1
- package/dist/chunk-EBV3EX3J.js.map +0 -1
- package/dist/chunk-ESWYWWY2.js.map +0 -1
- package/dist/chunk-EZFQCREN.cjs.map +0 -1
- package/dist/chunk-FQSVY4QB.js.map +0 -1
- package/dist/chunk-FTNEAX24.js.map +0 -1
- package/dist/chunk-GJZAGTPV.cjs.map +0 -1
- package/dist/chunk-GTZQT6MK.js.map +0 -1
- package/dist/chunk-H7LOOHWU.cjs.map +0 -1
- package/dist/chunk-HC57X3U4.js.map +0 -1
- package/dist/chunk-HENIVDYQ.cjs.map +0 -1
- package/dist/chunk-HN4W6TM6.cjs.map +0 -1
- package/dist/chunk-I2DXEPDF.js.map +0 -1
- package/dist/chunk-IREOTHD3.cjs.map +0 -1
- package/dist/chunk-J242UTPO.cjs.map +0 -1
- package/dist/chunk-JIF5TZHC.cjs.map +0 -1
- package/dist/chunk-JMVYWHJ7.js.map +0 -1
- package/dist/chunk-KEPCKSDE.js.map +0 -1
- package/dist/chunk-KLCEDPJ4.cjs.map +0 -1
- package/dist/chunk-KWZMXX4F.js.map +0 -1
- package/dist/chunk-L747HIHG.js.map +0 -1
- package/dist/chunk-LBOWHXOF.js.map +0 -1
- package/dist/chunk-MDQSVB2Y.js.map +0 -1
- package/dist/chunk-MJHEPDDX.cjs.map +0 -1
- package/dist/chunk-MYSLJWCW.cjs.map +0 -1
- package/dist/chunk-N6C37HXD.js.map +0 -1
- package/dist/chunk-NGNVNRAZ.cjs.map +0 -1
- package/dist/chunk-NIKT7XSO.js.map +0 -1
- package/dist/chunk-NYOZQE6P.js.map +0 -1
- package/dist/chunk-OPBELSKN.js.map +0 -1
- package/dist/chunk-OUUG4RHO.js.map +0 -1
- package/dist/chunk-PG4CZRTU.js.map +0 -1
- package/dist/chunk-PGBYMBGH.js.map +0 -1
- package/dist/chunk-PKZSJX53.cjs.map +0 -1
- package/dist/chunk-PQXPYN23.js.map +0 -1
- package/dist/chunk-PXTTIAC4.cjs.map +0 -1
- package/dist/chunk-PYN75QAG.js.map +0 -1
- package/dist/chunk-PZHRFASW.js.map +0 -1
- package/dist/chunk-Q6YOSQAM.js.map +0 -1
- package/dist/chunk-QQCEGAUQ.cjs.map +0 -1
- package/dist/chunk-RLIBY7XB.cjs.map +0 -1
- package/dist/chunk-S4WWBV4N.js.map +0 -1
- package/dist/chunk-TACO5IWI.cjs.map +0 -1
- package/dist/chunk-UJDHRILS.cjs.map +0 -1
- package/dist/chunk-UUVI3TYW.js.map +0 -1
- package/dist/chunk-VK7DXUGH.cjs.map +0 -1
- package/dist/chunk-VPWNRWNO.cjs.map +0 -1
- package/dist/chunk-WOVSJHY6.cjs.map +0 -1
- package/dist/chunk-WTCH3QCQ.js.map +0 -1
- package/dist/chunk-XUCLNECV.js.map +0 -1
- package/dist/chunk-YGESCFX2.js.map +0 -1
- package/dist/chunk-ZDZ7FW6V.cjs.map +0 -1
- package/dist/chunk-ZW2ZOEYM.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Lightbox/Lightbox.recipe.ts","../src/components/Lightbox/Lightbox.tsx","../src/components/Lightbox/useLightbox.tsx"],"names":["sva","useRef","useState","useMemo","useScrollLock","useCallback","useEffect","useIsomorphicLayoutEffect","jsx","cx","mergeRefs","jsxs","Button","X","ChevronLeft","isReactNode","ChevronRight"],"mappings":"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","file":"chunk-GLFWSLJB.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const lightboxRecipe = sva({\n slots: [\n 'dialog',\n 'container',\n 'mediaGroup',\n 'mediaWrap',\n 'image',\n 'video',\n 'caption',\n 'close',\n 'nav',\n 'counter',\n 'controlButton',\n ],\n base: {\n dialog: {\n position: 'fixed',\n inset: 0,\n w: '100dvw',\n h: '100dvh',\n maxW: 'none',\n maxH: 'none',\n m: 0,\n p: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'hidden',\n outline: 'none',\n _backdrop: {\n bg: 'overlay.scrim.strong',\n backdropFilter: 'blur(2px)',\n },\n },\n container: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'full',\n h: 'full',\n p: '8',\n },\n mediaGroup: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n maxW: 'full',\n maxH: 'full',\n minH: 0,\n },\n mediaWrap: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n minH: 0,\n userSelect: 'none',\n },\n image: {\n display: 'block',\n maxW: '100%',\n maxH: 'calc(100dvh - 7rem)',\n objectFit: 'contain',\n pointerEvents: 'none',\n transitionProperty: 'transform',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0ms',\n },\n },\n video: {\n maxW: '100%',\n maxH: 'calc(100dvh - 7rem)',\n objectFit: 'contain',\n outline: 'none',\n },\n caption: {\n w: 'full',\n maxW: 'min(90dvw, 48rem)',\n px: '3',\n pt: '2',\n color: 'fg.onPrimary',\n fontFamily: 'body',\n fontSize: 'lg',\n lineHeight: 'normal',\n textAlign: 'center',\n },\n close: {\n position: 'absolute',\n top: '3',\n right: '3',\n zIndex: 1,\n },\n nav: {\n position: 'absolute',\n top: '50%',\n zIndex: 1,\n transform: 'translateY(-50%)',\n },\n counter: {\n position: 'absolute',\n top: '3',\n left: '3',\n zIndex: 1,\n color: 'fg.onPrimary',\n fontFamily: 'body',\n fontSize: 'md',\n },\n controlButton: {\n bg: 'overlay.scrim',\n color: 'fg.onPrimary',\n _hover: {\n bg: 'overlay.scrim.strong',\n },\n _active: {\n bg: 'overlay.scrim.strong',\n },\n },\n },\n variants: {\n // Media viewport cursor reflects the active zoom/pan interaction. A single\n // value keeps the precedence deterministic: dragging > zoomed > zoomable.\n cursor: {\n default: {},\n zoomable: {mediaWrap: {cursor: 'zoom-in'}},\n zoomed: {mediaWrap: {cursor: 'grab'}},\n dragging: {mediaWrap: {cursor: 'grabbing'}},\n },\n // While dragging, drop the transform transition so the image tracks the\n // pointer exactly instead of easing behind it.\n isDragging: {\n true: {image: {transitionProperty: 'none'}},\n false: {},\n },\n // Horizontal placement for the prev/next gallery navigation controls.\n position: {\n prev: {nav: {left: '3'}},\n next: {nav: {right: '3'}},\n },\n },\n defaultVariants: {\n cursor: 'default',\n isDragging: false,\n },\n});\n\nexport type LightboxVariants = RecipeVariantProps<typeof lightboxRecipe>;\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-interactions */\n\nimport {ChevronLeft, ChevronRight, X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {lightboxRecipe} from 'components/Lightbox/Lightbox.recipe';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useIsomorphicLayoutEffect} from 'internal/useIsomorphicLayoutEffect';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type LightboxMediaType = 'image' | 'video';\n\nexport interface LightboxMedia {\n /**\n * Accessible image alt text, or video label.\n */\n alt: string;\n /**\n * Optional caption shown below the media.\n */\n caption?: ReactNode;\n /**\n * Optional WebVTT captions source for video media.\n */\n captionsSrc?: string;\n /**\n * Media source URL.\n */\n src: string;\n /**\n * Media type.\n * @default 'image'\n */\n type?: LightboxMediaType;\n}\n\nexport interface LightboxProps {\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Initial gallery index for uncontrolled usage.\n * @default 0\n */\n defaultIndex?: number;\n /**\n * Whether videos autoplay when opened.\n * @default false\n */\n hasAutoPlay?: boolean;\n /**\n * Whether images can be double-clicked to zoom.\n * @default false\n */\n hasZoom?: boolean;\n /**\n * Controlled gallery index.\n */\n index?: number;\n /**\n * Whether the lightbox is open.\n */\n isOpen: boolean;\n /**\n * Media to display.\n */\n media: LightboxMedia | ReadonlyArray<LightboxMedia>;\n /**\n * Called when gallery index changes.\n */\n onIndexChange?: (index: number) => void;\n /**\n * Called when the lightbox requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n}\n\nfunction isMediaArray(\n media: LightboxMedia | ReadonlyArray<LightboxMedia>,\n): media is ReadonlyArray<LightboxMedia> {\n return Array.isArray(media);\n}\n\n/**\n * Fullscreen dialog for viewing image or video media, with optional gallery navigation.\n */\nexport function Lightbox({\n className,\n 'data-testid': dataTestId,\n defaultIndex = 0,\n hasAutoPlay = false,\n hasZoom = false,\n index: indexFromProps,\n isOpen,\n media,\n onIndexChange,\n onOpenChange,\n ref,\n style,\n}: LightboxProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const triggerRef = useRef<Element | null>(null);\n const [uncontrolledIndex, setUncontrolledIndex] = useState(defaultIndex);\n const [zoom, setZoom] = useState(1);\n const [pan, setPan] = useState({x: 0, y: 0});\n const [isDragging, setIsDragging] = useState(false);\n const dragStartRef = useRef({x: 0, y: 0, panX: 0, panY: 0});\n const isControlled = indexFromProps !== undefined;\n const index = isControlled ? indexFromProps : uncontrolledIndex;\n const mediaItems: ReadonlyArray<LightboxMedia> = useMemo(\n () => (isMediaArray(media) ? media : [media]),\n [media],\n );\n const currentIndex =\n mediaItems.length === 0\n ? 0\n : Math.min(Math.max(index, 0), mediaItems.length - 1);\n const currentItem =\n mediaItems.length === 0 ? undefined : mediaItems[currentIndex];\n const hasMedia = currentItem != null;\n const isGallery = mediaItems.length > 1;\n const isVideo = (currentItem?.type ?? 'image') === 'video';\n const canPrev = isGallery && currentIndex > 0;\n const canNext = isGallery && currentIndex < mediaItems.length - 1;\n const imageTransform =\n zoom === 1\n ? undefined\n : `scale(${zoom}) translate(${pan.x / zoom}px, ${pan.y / zoom}px)`;\n const cursor = isDragging\n ? 'dragging'\n : !isVideo && zoom > 1\n ? 'zoomed'\n : !isVideo && hasZoom && zoom === 1\n ? 'zoomable'\n : 'default';\n const classes = lightboxRecipe({cursor, isDragging});\n\n useScrollLock(isOpen);\n\n const setIndex = useCallback(\n (nextIndex: number) => {\n if (!isControlled) {\n setUncontrolledIndex(nextIndex);\n }\n onIndexChange?.(nextIndex);\n },\n [isControlled, onIndexChange],\n );\n\n useEffect(() => {\n // eslint-disable-next-line @eslint-react/set-state-in-effect\n setZoom(1);\n // eslint-disable-next-line @eslint-react/set-state-in-effect\n setPan({x: 0, y: 0});\n }, [currentIndex, currentItem?.src, isOpen]);\n\n useEffect(() => {\n if (!isGallery) {\n return;\n }\n\n for (const nextIndex of [currentIndex - 1, currentIndex + 1]) {\n if (nextIndex < 0 || nextIndex >= mediaItems.length) {\n continue;\n }\n const item = mediaItems[nextIndex];\n if (item.type === 'video') {\n continue;\n }\n\n const image = new Image();\n image.src = item.src;\n }\n }, [currentIndex, isGallery, mediaItems]);\n\n useIsomorphicLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n if (isOpen && !dialog.open) {\n triggerRef.current = document.activeElement;\n dialog.showModal();\n } else if (!isOpen && dialog.open) {\n dialog.close();\n if (triggerRef.current instanceof HTMLElement) {\n triggerRef.current.focus();\n }\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (!isDragging) {\n return;\n }\n const handlePointerMove = (event: PointerEvent) => {\n setPan({\n x: dragStartRef.current.panX + event.clientX - dragStartRef.current.x,\n y: dragStartRef.current.panY + event.clientY - dragStartRef.current.y,\n });\n };\n const handlePointerUp = () => setIsDragging(false);\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', handlePointerUp);\n return () => {\n window.removeEventListener('pointermove', handlePointerMove);\n window.removeEventListener('pointerup', handlePointerUp);\n };\n }, [isDragging]);\n\n const close = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n const goPrev = useCallback(() => {\n if (canPrev) {\n setIndex(currentIndex - 1);\n }\n }, [canPrev, currentIndex, setIndex]);\n const goNext = useCallback(() => {\n if (canNext) {\n setIndex(currentIndex + 1);\n }\n }, [canNext, currentIndex, setIndex]);\n\n return (\n <dialog\n aria-label=\"Media lightbox\"\n className={cx(classes.dialog, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n close();\n }}\n onClick={(event: ReactMouseEvent<HTMLDialogElement>) => {\n if (event.target === event.currentTarget) {\n close();\n }\n }}\n onKeyDown={event => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n goPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n goNext();\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div className={classes.container}>\n <div className={classes.close}>\n <Button\n className={classes.controlButton}\n icon={X}\n isIconOnly\n label=\"Close\"\n onClick={close}\n />\n </div>\n {canPrev ? (\n <div className={lightboxRecipe({position: 'prev'}).nav}>\n <Button\n className={classes.controlButton}\n icon={ChevronLeft}\n isIconOnly\n label=\"Previous\"\n onClick={goPrev}\n />\n </div>\n ) : null}\n {hasMedia ? (\n <div className={classes.mediaGroup}>\n {/* eslint-disable-next-line jsx-a11y-x/no-static-element-interactions -- media viewport supports image zoom/pan gestures */}\n <div\n className={classes.mediaWrap}\n onDoubleClick={() => {\n if (!hasZoom || isVideo) {\n return;\n }\n setZoom(zoom === 1 ? 2 : 1);\n setPan({x: 0, y: 0});\n }}\n onPointerDown={event => {\n if (!hasZoom || isVideo || zoom <= 1) {\n return;\n }\n setIsDragging(true);\n dragStartRef.current = {\n x: event.clientX,\n y: event.clientY,\n panX: pan.x,\n panY: pan.y,\n };\n }}>\n {isVideo ? (\n // eslint-disable-next-line jsx-a11y-x/media-has-caption -- captions are rendered only when callers provide a real WebVTT source\n <video\n aria-label={currentItem.alt}\n autoPlay={hasAutoPlay}\n className={classes.video}\n controls\n src={currentItem.src}>\n {currentItem.captionsSrc != null ? (\n <track\n kind=\"captions\"\n label=\"Captions\"\n src={currentItem.captionsSrc}\n />\n ) : null}\n </video>\n ) : (\n <img\n alt={currentItem.alt}\n className={classes.image}\n draggable={false}\n src={currentItem.src}\n style={{transform: imageTransform}}\n />\n )}\n </div>\n {isReactNode(currentItem.caption) ? (\n <div className={classes.caption}>{currentItem.caption}</div>\n ) : null}\n </div>\n ) : null}\n {canNext ? (\n <div className={lightboxRecipe({position: 'next'}).nav}>\n <Button\n className={classes.controlButton}\n icon={ChevronRight}\n isIconOnly\n label=\"Next\"\n onClick={goNext}\n />\n </div>\n ) : null}\n {isGallery ? (\n <div className={classes.counter}>\n {currentIndex + 1} / {mediaItems.length}\n </div>\n ) : null}\n </div>\n </dialog>\n );\n}\n\nLightbox.displayName = 'Lightbox';\n","import {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {\n Lightbox,\n type LightboxMedia,\n type LightboxProps,\n} from 'components/Lightbox/Lightbox';\n\ntype LightboxOptions = Omit<\n LightboxProps,\n | 'defaultIndex'\n | 'index'\n | 'isOpen'\n | 'media'\n | 'onIndexChange'\n | 'onOpenChange'\n>;\n\nexport interface UseLightboxOptions extends LightboxOptions {\n /**\n * Media to display in the lightbox.\n */\n media: LightboxMedia | ReadonlyArray<LightboxMedia>;\n}\n\nexport interface UseLightboxReturn {\n /**\n * Close the lightbox.\n */\n close: () => void;\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Returns trigger props that open at the given gallery index.\n */\n getTriggerProps: (index: number) => {\n 'aria-haspopup': 'dialog';\n onClick: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n role: 'button';\n tabIndex: 0;\n };\n /**\n * Current gallery index.\n */\n index: number;\n /**\n * Whether the lightbox is open.\n */\n isOpen: boolean;\n /**\n * Open the lightbox, optionally at a specific gallery index.\n */\n open: (index?: number) => void;\n /**\n * Trigger props that open the first item.\n */\n triggerProps: {\n 'aria-haspopup': 'dialog';\n onClick: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n role: 'button';\n tabIndex: 0;\n };\n}\n\n/**\n * State helper for Lightbox triggers and rendering.\n */\nexport function useLightbox(options: UseLightboxOptions): UseLightboxReturn {\n const {media, ...lightboxProps} = options;\n const [isOpen, setIsOpen] = useState(false);\n const [index, setIndex] = useState(0);\n\n const open = useCallback((nextIndex = 0) => {\n setIndex(nextIndex);\n setIsOpen(true);\n }, []);\n const close = useCallback(() => setIsOpen(false), []);\n const getTriggerProps = useCallback(\n (nextIndex: number) => ({\n 'aria-haspopup': 'dialog' as const,\n onClick: () => open(nextIndex),\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n open(nextIndex);\n }\n },\n role: 'button' as const,\n tabIndex: 0 as const,\n }),\n [open],\n );\n const triggerProps = useMemo(() => getTriggerProps(0), [getTriggerProps]);\n const element = (\n <Lightbox\n {...lightboxProps}\n index={index}\n isOpen={isOpen}\n media={media}\n onIndexChange={setIndex}\n onOpenChange={setIsOpen}\n />\n );\n\n return {close, element, getTriggerProps, index, isOpen, open, triggerProps};\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Lightbox/Lightbox.recipe.ts","../src/components/Lightbox/Lightbox.tsx","../src/components/Lightbox/useLightbox.tsx"],"names":["sva","useRef","useState","useMemo","useScrollLock","useCallback","useEffect","useIsomorphicLayoutEffect","jsx","cx","mergeRefs","jsxs","Button","X","ChevronLeft","isReactNode","ChevronRight"],"mappings":"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","file":"chunk-NHM6CSX2.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const lightboxRecipe = sva({\n slots: [\n 'dialog',\n 'container',\n 'mediaGroup',\n 'mediaWrap',\n 'image',\n 'video',\n 'caption',\n 'close',\n 'nav',\n 'counter',\n 'controlButton',\n ],\n base: {\n dialog: {\n position: 'fixed',\n inset: 0,\n w: '100dvw',\n h: '100dvh',\n maxW: 'none',\n maxH: 'none',\n m: 0,\n p: 0,\n borderWidth: 0,\n bg: 'transparent',\n overflow: 'hidden',\n outline: 'none',\n _backdrop: {\n bg: 'overlay.scrim.strong',\n backdropFilter: 'blur(2px)',\n },\n },\n container: {\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n w: 'full',\n h: 'full',\n p: '8',\n },\n mediaGroup: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n maxW: 'full',\n maxH: 'full',\n minH: 0,\n },\n mediaWrap: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n overflow: 'hidden',\n minH: 0,\n userSelect: 'none',\n },\n image: {\n display: 'block',\n maxW: '100%',\n maxH: 'calc(100dvh - 7rem)',\n objectFit: 'contain',\n pointerEvents: 'none',\n transitionProperty: 'transform',\n transitionDuration: 'normal',\n transitionTimingFunction: 'default',\n '@media (prefers-reduced-motion: reduce)': {\n transitionDuration: '0ms',\n },\n },\n video: {\n maxW: '100%',\n maxH: 'calc(100dvh - 7rem)',\n objectFit: 'contain',\n outline: 'none',\n },\n caption: {\n w: 'full',\n maxW: 'min(90dvw, 48rem)',\n px: '3',\n pt: '2',\n color: 'fg.onPrimary',\n fontFamily: 'body',\n fontSize: 'lg',\n lineHeight: 'normal',\n textAlign: 'center',\n },\n close: {\n position: 'absolute',\n top: '3',\n right: '3',\n zIndex: 1,\n },\n nav: {\n position: 'absolute',\n top: '50%',\n zIndex: 1,\n transform: 'translateY(-50%)',\n },\n counter: {\n position: 'absolute',\n top: '3',\n left: '3',\n zIndex: 1,\n color: 'fg.onPrimary',\n fontFamily: 'body',\n fontSize: 'md',\n },\n controlButton: {\n bg: 'overlay.scrim',\n color: 'fg.onPrimary',\n _hover: {\n bg: 'overlay.scrim.strong',\n },\n _active: {\n bg: 'overlay.scrim.strong',\n },\n },\n },\n variants: {\n // Media viewport cursor reflects the active zoom/pan interaction. A single\n // value keeps the precedence deterministic: dragging > zoomed > zoomable.\n cursor: {\n default: {},\n zoomable: {mediaWrap: {cursor: 'zoom-in'}},\n zoomed: {mediaWrap: {cursor: 'grab'}},\n dragging: {mediaWrap: {cursor: 'grabbing'}},\n },\n // While dragging, drop the transform transition so the image tracks the\n // pointer exactly instead of easing behind it.\n isDragging: {\n true: {image: {transitionProperty: 'none'}},\n false: {},\n },\n // Horizontal placement for the prev/next gallery navigation controls.\n position: {\n prev: {nav: {left: '3'}},\n next: {nav: {right: '3'}},\n },\n },\n defaultVariants: {\n cursor: 'default',\n isDragging: false,\n },\n});\n\nexport type LightboxVariants = RecipeVariantProps<typeof lightboxRecipe>;\n","/* eslint-disable jsx-a11y-x/no-noninteractive-element-interactions */\n'use client';\n\nimport {ChevronLeft, ChevronRight, X} from 'lucide-react';\nimport {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type MouseEvent as ReactMouseEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {lightboxRecipe} from 'components/Lightbox/Lightbox.recipe';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useIsomorphicLayoutEffect} from 'internal/useIsomorphicLayoutEffect';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type LightboxMediaType = 'image' | 'video';\n\nexport interface LightboxMedia {\n /**\n * Accessible image alt text, or video label.\n */\n alt: string;\n /**\n * Optional caption shown below the media.\n */\n caption?: ReactNode;\n /**\n * Optional WebVTT captions source for video media.\n */\n captionsSrc?: string;\n /**\n * Media source URL.\n */\n src: string;\n /**\n * Media type.\n * @default 'image'\n */\n type?: LightboxMediaType;\n}\n\nexport interface LightboxProps {\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Initial gallery index for uncontrolled usage.\n * @default 0\n */\n defaultIndex?: number;\n /**\n * Whether videos autoplay when opened.\n * @default false\n */\n hasAutoPlay?: boolean;\n /**\n * Whether images can be double-clicked to zoom.\n * @default false\n */\n hasZoom?: boolean;\n /**\n * Controlled gallery index.\n */\n index?: number;\n /**\n * Whether the lightbox is open.\n */\n isOpen: boolean;\n /**\n * Media to display.\n */\n media: LightboxMedia | ReadonlyArray<LightboxMedia>;\n /**\n * Called when gallery index changes.\n */\n onIndexChange?: (index: number) => void;\n /**\n * Called when the lightbox requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n}\n\nfunction isMediaArray(\n media: LightboxMedia | ReadonlyArray<LightboxMedia>,\n): media is ReadonlyArray<LightboxMedia> {\n return Array.isArray(media);\n}\n\n/**\n * Fullscreen dialog for viewing image or video media, with optional gallery navigation.\n */\nexport function Lightbox({\n className,\n 'data-testid': dataTestId,\n defaultIndex = 0,\n hasAutoPlay = false,\n hasZoom = false,\n index: indexFromProps,\n isOpen,\n media,\n onIndexChange,\n onOpenChange,\n ref,\n style,\n}: LightboxProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const triggerRef = useRef<Element | null>(null);\n const [uncontrolledIndex, setUncontrolledIndex] = useState(defaultIndex);\n const [zoom, setZoom] = useState(1);\n const [pan, setPan] = useState({x: 0, y: 0});\n const [isDragging, setIsDragging] = useState(false);\n const dragStartRef = useRef({x: 0, y: 0, panX: 0, panY: 0});\n const isControlled = indexFromProps !== undefined;\n const index = isControlled ? indexFromProps : uncontrolledIndex;\n const mediaItems: ReadonlyArray<LightboxMedia> = useMemo(\n () => (isMediaArray(media) ? media : [media]),\n [media],\n );\n const currentIndex =\n mediaItems.length === 0\n ? 0\n : Math.min(Math.max(index, 0), mediaItems.length - 1);\n const currentItem =\n mediaItems.length === 0 ? undefined : mediaItems[currentIndex];\n const hasMedia = currentItem != null;\n const isGallery = mediaItems.length > 1;\n const isVideo = (currentItem?.type ?? 'image') === 'video';\n const canPrev = isGallery && currentIndex > 0;\n const canNext = isGallery && currentIndex < mediaItems.length - 1;\n const imageTransform =\n zoom === 1\n ? undefined\n : `scale(${zoom}) translate(${pan.x / zoom}px, ${pan.y / zoom}px)`;\n const cursor = isDragging\n ? 'dragging'\n : !isVideo && zoom > 1\n ? 'zoomed'\n : !isVideo && hasZoom && zoom === 1\n ? 'zoomable'\n : 'default';\n const classes = lightboxRecipe({cursor, isDragging});\n\n useScrollLock(isOpen);\n\n const setIndex = useCallback(\n (nextIndex: number) => {\n if (!isControlled) {\n setUncontrolledIndex(nextIndex);\n }\n onIndexChange?.(nextIndex);\n },\n [isControlled, onIndexChange],\n );\n\n useEffect(() => {\n // eslint-disable-next-line @eslint-react/set-state-in-effect\n setZoom(1);\n // eslint-disable-next-line @eslint-react/set-state-in-effect\n setPan({x: 0, y: 0});\n }, [currentIndex, currentItem?.src, isOpen]);\n\n useEffect(() => {\n if (!isGallery) {\n return;\n }\n\n for (const nextIndex of [currentIndex - 1, currentIndex + 1]) {\n if (nextIndex < 0 || nextIndex >= mediaItems.length) {\n continue;\n }\n const item = mediaItems[nextIndex];\n if (item.type === 'video') {\n continue;\n }\n\n const image = new Image();\n image.src = item.src;\n }\n }, [currentIndex, isGallery, mediaItems]);\n\n useIsomorphicLayoutEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n if (isOpen && !dialog.open) {\n triggerRef.current = document.activeElement;\n dialog.showModal();\n } else if (!isOpen && dialog.open) {\n dialog.close();\n if (triggerRef.current instanceof HTMLElement) {\n triggerRef.current.focus();\n }\n }\n }, [isOpen]);\n\n useEffect(() => {\n if (!isDragging) {\n return;\n }\n const handlePointerMove = (event: PointerEvent) => {\n setPan({\n x: dragStartRef.current.panX + event.clientX - dragStartRef.current.x,\n y: dragStartRef.current.panY + event.clientY - dragStartRef.current.y,\n });\n };\n const handlePointerUp = () => setIsDragging(false);\n window.addEventListener('pointermove', handlePointerMove);\n window.addEventListener('pointerup', handlePointerUp);\n return () => {\n window.removeEventListener('pointermove', handlePointerMove);\n window.removeEventListener('pointerup', handlePointerUp);\n };\n }, [isDragging]);\n\n const close = useCallback(() => {\n onOpenChange(false);\n }, [onOpenChange]);\n const goPrev = useCallback(() => {\n if (canPrev) {\n setIndex(currentIndex - 1);\n }\n }, [canPrev, currentIndex, setIndex]);\n const goNext = useCallback(() => {\n if (canNext) {\n setIndex(currentIndex + 1);\n }\n }, [canNext, currentIndex, setIndex]);\n\n return (\n <dialog\n aria-label=\"Media lightbox\"\n className={cx(classes.dialog, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n close();\n }}\n onClick={(event: ReactMouseEvent<HTMLDialogElement>) => {\n if (event.target === event.currentTarget) {\n close();\n }\n }}\n onKeyDown={event => {\n if (event.key === 'ArrowLeft') {\n event.preventDefault();\n goPrev();\n } else if (event.key === 'ArrowRight') {\n event.preventDefault();\n goNext();\n }\n }}\n ref={mergeRefs(ref, dialogRef)}\n style={style}>\n <div className={classes.container}>\n <div className={classes.close}>\n <Button\n className={classes.controlButton}\n icon={X}\n isIconOnly\n label=\"Close\"\n onClick={close}\n />\n </div>\n {canPrev ? (\n <div className={lightboxRecipe({position: 'prev'}).nav}>\n <Button\n className={classes.controlButton}\n icon={ChevronLeft}\n isIconOnly\n label=\"Previous\"\n onClick={goPrev}\n />\n </div>\n ) : null}\n {hasMedia ? (\n <div className={classes.mediaGroup}>\n {/* eslint-disable-next-line jsx-a11y-x/no-static-element-interactions -- media viewport supports image zoom/pan gestures */}\n <div\n className={classes.mediaWrap}\n onDoubleClick={() => {\n if (!hasZoom || isVideo) {\n return;\n }\n setZoom(zoom === 1 ? 2 : 1);\n setPan({x: 0, y: 0});\n }}\n onPointerDown={event => {\n if (!hasZoom || isVideo || zoom <= 1) {\n return;\n }\n setIsDragging(true);\n dragStartRef.current = {\n x: event.clientX,\n y: event.clientY,\n panX: pan.x,\n panY: pan.y,\n };\n }}>\n {isVideo ? (\n // eslint-disable-next-line jsx-a11y-x/media-has-caption -- captions are rendered only when callers provide a real WebVTT source\n <video\n aria-label={currentItem.alt}\n autoPlay={hasAutoPlay}\n className={classes.video}\n controls\n src={currentItem.src}>\n {currentItem.captionsSrc != null ? (\n <track\n kind=\"captions\"\n label=\"Captions\"\n src={currentItem.captionsSrc}\n />\n ) : null}\n </video>\n ) : (\n <img\n alt={currentItem.alt}\n className={classes.image}\n draggable={false}\n src={currentItem.src}\n style={{transform: imageTransform}}\n />\n )}\n </div>\n {isReactNode(currentItem.caption) ? (\n <div className={classes.caption}>{currentItem.caption}</div>\n ) : null}\n </div>\n ) : null}\n {canNext ? (\n <div className={lightboxRecipe({position: 'next'}).nav}>\n <Button\n className={classes.controlButton}\n icon={ChevronRight}\n isIconOnly\n label=\"Next\"\n onClick={goNext}\n />\n </div>\n ) : null}\n {isGallery ? (\n <div className={classes.counter}>\n {currentIndex + 1} / {mediaItems.length}\n </div>\n ) : null}\n </div>\n </dialog>\n );\n}\n\nLightbox.displayName = 'Lightbox';\n","'use client';\n\nimport {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {\n Lightbox,\n type LightboxMedia,\n type LightboxProps,\n} from 'components/Lightbox/Lightbox';\n\ntype LightboxOptions = Omit<\n LightboxProps,\n | 'defaultIndex'\n | 'index'\n | 'isOpen'\n | 'media'\n | 'onIndexChange'\n | 'onOpenChange'\n>;\n\nexport interface UseLightboxOptions extends LightboxOptions {\n /**\n * Media to display in the lightbox.\n */\n media: LightboxMedia | ReadonlyArray<LightboxMedia>;\n}\n\nexport interface UseLightboxReturn {\n /**\n * Close the lightbox.\n */\n close: () => void;\n /**\n * Render this element in your tree.\n */\n element: ReactNode;\n /**\n * Returns trigger props that open at the given gallery index.\n */\n getTriggerProps: (index: number) => {\n 'aria-haspopup': 'dialog';\n onClick: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n role: 'button';\n tabIndex: 0;\n };\n /**\n * Current gallery index.\n */\n index: number;\n /**\n * Whether the lightbox is open.\n */\n isOpen: boolean;\n /**\n * Open the lightbox, optionally at a specific gallery index.\n */\n open: (index?: number) => void;\n /**\n * Trigger props that open the first item.\n */\n triggerProps: {\n 'aria-haspopup': 'dialog';\n onClick: () => void;\n onKeyDown: (event: React.KeyboardEvent) => void;\n role: 'button';\n tabIndex: 0;\n };\n}\n\n/**\n * State helper for Lightbox triggers and rendering.\n */\nexport function useLightbox(options: UseLightboxOptions): UseLightboxReturn {\n const {media, ...lightboxProps} = options;\n const [isOpen, setIsOpen] = useState(false);\n const [index, setIndex] = useState(0);\n\n const open = useCallback((nextIndex = 0) => {\n setIndex(nextIndex);\n setIsOpen(true);\n }, []);\n const close = useCallback(() => setIsOpen(false), []);\n const getTriggerProps = useCallback(\n (nextIndex: number) => ({\n 'aria-haspopup': 'dialog' as const,\n onClick: () => open(nextIndex),\n onKeyDown: (event: React.KeyboardEvent) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault();\n open(nextIndex);\n }\n },\n role: 'button' as const,\n tabIndex: 0 as const,\n }),\n [open],\n );\n const triggerProps = useMemo(() => getTriggerProps(0), [getTriggerProps]);\n const element = (\n <Lightbox\n {...lightboxProps}\n index={index}\n isOpen={isOpen}\n media={media}\n onIndexChange={setIndex}\n onOpenChange={setIsOpen}\n />\n );\n\n return {close, element, getTriggerProps, index, isOpen, open, triggerProps};\n}\n"]}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
|
-
var
|
|
4
|
+
var chunkRUPT4QAW_cjs = require('./chunk-RUPT4QAW.cjs');
|
|
4
5
|
var chunkJK4YAQ2N_cjs = require('./chunk-JK4YAQ2N.cjs');
|
|
5
6
|
var chunkVPHB56GK_cjs = require('./chunk-VPHB56GK.cjs');
|
|
6
|
-
var
|
|
7
|
+
var chunk4VYOE2HE_cjs = require('./chunk-4VYOE2HE.cjs');
|
|
7
8
|
var chunkXPHXAZCE_cjs = require('./chunk-XPHXAZCE.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
9
|
+
var chunkFKZATUBG_cjs = require('./chunk-FKZATUBG.cjs');
|
|
10
|
+
var chunkHW7GODZJ_cjs = require('./chunk-HW7GODZJ.cjs');
|
|
11
|
+
var chunkMWWAQVJ3_cjs = require('./chunk-MWWAQVJ3.cjs');
|
|
11
12
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
12
13
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
13
14
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
@@ -149,7 +150,7 @@ function DateInput({
|
|
|
149
150
|
const [isOpen, setIsOpen] = react.useState(false);
|
|
150
151
|
const [pendingInput, setPendingInput] = react.useState(null);
|
|
151
152
|
const displayValue = pendingInput ?? formatDate(value);
|
|
152
|
-
const necessity =
|
|
153
|
+
const necessity = chunk4VYOE2HE_cjs.getNecessity(isOptional, isRequired);
|
|
153
154
|
const handleCalendarChange = react.useCallback(
|
|
154
155
|
(nextValue) => {
|
|
155
156
|
onChange(nextValue);
|
|
@@ -206,7 +207,7 @@ function DateInput({
|
|
|
206
207
|
inputRef.current?.focus();
|
|
207
208
|
}, [onChange]);
|
|
208
209
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
209
|
-
|
|
210
|
+
chunk4VYOE2HE_cjs.Field,
|
|
210
211
|
{
|
|
211
212
|
className,
|
|
212
213
|
description,
|
|
@@ -234,10 +235,10 @@ function DateInput({
|
|
|
234
235
|
ref: wrapperRef,
|
|
235
236
|
children: [
|
|
236
237
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
237
|
-
|
|
238
|
+
chunkFKZATUBG_cjs.Popover,
|
|
238
239
|
{
|
|
239
240
|
content: /* @__PURE__ */ jsxRuntime.jsx(
|
|
240
|
-
|
|
241
|
+
chunkRUPT4QAW_cjs.Calendar,
|
|
241
242
|
{
|
|
242
243
|
getIsDateDisabled,
|
|
243
244
|
hasAutoFocus: isOpen,
|
|
@@ -257,7 +258,7 @@ function DateInput({
|
|
|
257
258
|
onOpenChange: setIsOpen,
|
|
258
259
|
padding: 3,
|
|
259
260
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
260
|
-
|
|
261
|
+
chunkHW7GODZJ_cjs.Button,
|
|
261
262
|
{
|
|
262
263
|
icon: lucideReact.CalendarIcon,
|
|
263
264
|
isDisabled,
|
|
@@ -295,7 +296,7 @@ function DateInput({
|
|
|
295
296
|
}
|
|
296
297
|
),
|
|
297
298
|
hasClear && value != null && !isDisabled && !isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
298
|
-
|
|
299
|
+
chunkHW7GODZJ_cjs.Button,
|
|
299
300
|
{
|
|
300
301
|
icon: lucideReact.X,
|
|
301
302
|
isIconOnly: true,
|
|
@@ -305,7 +306,7 @@ function DateInput({
|
|
|
305
306
|
variant: "ghost"
|
|
306
307
|
}
|
|
307
308
|
) : null,
|
|
308
|
-
isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
309
|
+
isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkMWWAQVJ3_cjs.Spinner, { size: "sm" }) : null,
|
|
309
310
|
status != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: chunkVPHB56GK_cjs.inputStyles.iconSlot, children: chunkXPHXAZCE_cjs.getStatusIcon(status.type) }) : null
|
|
310
311
|
]
|
|
311
312
|
}
|
|
@@ -316,5 +317,5 @@ function DateInput({
|
|
|
316
317
|
DateInput.displayName = "DateInput";
|
|
317
318
|
|
|
318
319
|
exports.DateInput = DateInput;
|
|
319
|
-
//# sourceMappingURL=chunk-
|
|
320
|
-
//# sourceMappingURL=chunk-
|
|
320
|
+
//# sourceMappingURL=chunk-NJR5SVHL.cjs.map
|
|
321
|
+
//# sourceMappingURL=chunk-NJR5SVHL.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/internal/parseDateInput.ts","../src/components/DateInput/DateInput.tsx"],"names":["plainDateCreate","css","plainDateFormat","DATE_FORMAT_LONG","plainDateIsBefore","plainDateIsAfter","useId","isReactNode","getStatusMessageID","getDescribedBy","useRef","useState","getNecessity","useCallback","jsx","Field","jsxs","cx","inputRecipe","Popover","Calendar","Button","CalendarIcon","inputStyles","mergeRefs","X","Spinner","getStatusIcon"],"mappings":"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","file":"chunk-BF2DUOC3.cjs","sourcesContent":["import {plainDateCreate, type PlainDate} from 'internal/plainDate';\n\nconst MONTH_NAMES: Partial<Record<string, number>> = {\n jan: 1,\n january: 1,\n feb: 2,\n february: 2,\n mar: 3,\n march: 3,\n apr: 4,\n april: 4,\n may: 5,\n jun: 6,\n june: 6,\n jul: 7,\n july: 7,\n aug: 8,\n august: 8,\n sep: 9,\n september: 9,\n oct: 10,\n october: 10,\n nov: 11,\n november: 11,\n dec: 12,\n december: 12,\n};\n\n/**\n * Parses common date input formats into a PlainDate.\n * Supports: \"2026-05-21\", \"05/21/2026\", \"May 21, 2026\", \"21 May 2026\", etc.\n * Returns null if the input cannot be parsed.\n */\nexport function parseDateInput(input: string): PlainDate | null {\n const trimmed = input.trim();\n if (trimmed === '') {\n return null;\n }\n\n // ISO format: 2026-05-21\n const isoMatch = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/.exec(trimmed);\n if (isoMatch != null) {\n return tryCreate(\n parseInt(isoMatch[1], 10),\n parseInt(isoMatch[2], 10),\n parseInt(isoMatch[3], 10),\n );\n }\n\n // US format: 05/21/2026, 5/21/2026, or 3/4/25 (2-digit year)\n const usMatch = /^(\\d{1,2})[/\\-.](\\d{1,2})[/\\-.](\\d{2,4})$/.exec(trimmed);\n if (usMatch != null) {\n let year = parseInt(usMatch[3], 10);\n if (year < 100) {\n year += year < 50 ? 2000 : 1900;\n }\n return tryCreate(year, parseInt(usMatch[1], 10), parseInt(usMatch[2], 10));\n }\n\n // Named month: \"May 21, 2026\" or \"May 21 2026\"\n const namedMonthFirst = /^([A-Za-z]+)\\s+(\\d{1,2}),?\\s+(\\d{4})$/.exec(trimmed);\n if (namedMonthFirst != null) {\n const month = MONTH_NAMES[namedMonthFirst[1].toLowerCase()];\n if (month != null) {\n return tryCreate(\n parseInt(namedMonthFirst[3], 10),\n month,\n parseInt(namedMonthFirst[2], 10),\n );\n }\n }\n\n // Named month reversed: \"21 May 2026\"\n const namedMonthLast = /^(\\d{1,2})\\s+([A-Za-z]+),?\\s+(\\d{4})$/.exec(trimmed);\n if (namedMonthLast != null) {\n const month = MONTH_NAMES[namedMonthLast[2].toLowerCase()];\n if (month != null) {\n return tryCreate(\n parseInt(namedMonthLast[3], 10),\n month,\n parseInt(namedMonthLast[1], 10),\n );\n }\n }\n\n return null;\n}\n\nfunction tryCreate(year: number, month: number, day: number): PlainDate | null {\n try {\n return plainDateCreate(year, month, day);\n } catch {\n return null;\n }\n}\n","import {CalendarIcon, X} from 'lucide-react';\nimport {\n useCallback,\n useId,\n useRef,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Calendar, type CalendarHandle} from 'components/Calendar';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport type {IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {parseDateInput} from 'internal/parseDateInput';\nimport {\n DATE_FORMAT_LONG,\n plainDateFormat,\n plainDateIsAfter,\n plainDateIsBefore,\n type PlainDate,\n} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport type {PlainDate} from 'internal/plainDate';\n\nconst styles = {\n wrapper: css({ps: '1', gap: '1'}),\n} as const;\n\nexport type DateInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Whether to show a clear button when a value is selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Custom HTML id applied to the input element.\n */\n htmlId?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Called when the selected date changes.\n */\n onChange: (value: PlainDate | null) => void;\n /**\n * Placeholder text shown when no date is selected. Typed dates accept a\n * range of formats, including \"May 21, 2026\", \"5/21/2026\", and \"2026-05-21\".\n * @default 'e.g. May 21, 2026'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the input.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Currently selected date. Pass `null` for an empty input.\n */\n value: PlainDate | null;\n} & FieldNecessity;\n\nfunction formatDate(value: PlainDate | null | undefined): string {\n return value == null ? '' : plainDateFormat(value, DATE_FORMAT_LONG);\n}\n\nfunction isDateAllowed(\n date: PlainDate,\n options: {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n max?: PlainDate;\n min?: PlainDate;\n },\n): boolean {\n if (options.min != null && plainDateIsBefore(date, options.min)) {\n return false;\n }\n if (options.max != null && plainDateIsAfter(date, options.max)) {\n return false;\n }\n if (options.getIsDateDisabled?.(date)) {\n return false;\n }\n return true;\n}\n\n/**\n * A date picker input that combines a text input with a calendar popover.\n * Users can type a date directly or select one from the calendar.\n */\nexport function DateInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n placeholder = 'e.g. May 21, 2026',\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n htmlId,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateInputProps): React.JSX.Element {\n const generatedId = useId();\n const inputId = htmlId ?? generatedId;\n const popoverId = `${inputId}-calendar`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const calendarRef = useRef<CalendarHandle | null>(null);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [pendingInput, setPendingInput] = useState<string | null>(null);\n\n const displayValue = pendingInput ?? formatDate(value);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const handleCalendarChange = useCallback(\n (nextValue: PlainDate) => {\n onChange(nextValue);\n setPendingInput(null);\n setIsOpen(false);\n inputRef.current?.focus();\n },\n [onChange],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value;\n setPendingInput(text);\n\n const parsed = parseDateInput(text);\n if (\n parsed != null &&\n isDateAllowed(parsed, {min, max, getIsDateDisabled})\n ) {\n onChange(parsed);\n calendarRef.current?.navigateTo(parsed);\n }\n },\n [getIsDateDisabled, max, min, onChange],\n );\n\n const commitPendingInput = useCallback(() => {\n if (pendingInput == null) {\n return;\n }\n\n if (pendingInput.trim() === '') {\n if (value != null) {\n onChange(null);\n }\n setPendingInput(null);\n return;\n }\n\n const parsed = parseDateInput(pendingInput);\n if (\n parsed != null &&\n isDateAllowed(parsed, {min, max, getIsDateDisabled})\n ) {\n onChange(parsed);\n }\n setPendingInput(null);\n }, [getIsDateDisabled, max, min, onChange, pendingInput, value]);\n\n const handleBlur = useCallback(() => {\n commitPendingInput();\n }, [commitPendingInput]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n commitPendingInput();\n }\n },\n [commitPendingInput],\n );\n\n const handleClear = useCallback(() => {\n onChange(null);\n setPendingInput(null);\n inputRef.current?.focus();\n }, [onChange]);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled: isDisabled,\n }),\n styles.wrapper,\n )}\n ref={wrapperRef}>\n <Popover\n content={\n <Calendar\n getIsDateDisabled={getIsDateDisabled}\n hasAutoFocus={isOpen}\n max={max}\n min={min}\n onChange={handleCalendarChange}\n ref={calendarRef}\n value={value ?? undefined}\n viewDate={value ?? undefined}\n />\n }\n hasAutoFocus={false}\n id={popoverId}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={`Choose ${label}`}\n onOpenChange={setIsOpen}\n padding={3}>\n <Button\n icon={CalendarIcon}\n isDisabled={isDisabled}\n isIconOnly\n label={`Choose ${label}`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Popover>\n <input\n aria-busy={isLoading || undefined}\n aria-controls={popoverId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={status?.type === 'error' || undefined}\n aria-required={isRequired ?? undefined}\n autoComplete=\"off\"\n className={inputStyles.control}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n onBlur={handleBlur}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergeRefs(ref, inputRef)}\n role=\"combobox\"\n type=\"text\"\n value={displayValue}\n />\n {hasClear && value != null && !isDisabled && !isLoading ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={handleClear}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n </Field>\n );\n}\n\nDateInput.displayName = 'DateInput';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/internal/parseDateInput.ts","../src/components/DateInput/DateInput.tsx"],"names":["plainDateCreate","css","plainDateFormat","DATE_FORMAT_LONG","plainDateIsBefore","plainDateIsAfter","useId","isReactNode","getStatusMessageID","getDescribedBy","useRef","useState","getNecessity","useCallback","jsx","Field","jsxs","cx","inputRecipe","Popover","Calendar","Button","CalendarIcon","inputStyles","mergeRefs","X","Spinner","getStatusIcon"],"mappings":"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","file":"chunk-NJR5SVHL.cjs","sourcesContent":["import {plainDateCreate, type PlainDate} from 'internal/plainDate';\n\nconst MONTH_NAMES: Partial<Record<string, number>> = {\n jan: 1,\n january: 1,\n feb: 2,\n february: 2,\n mar: 3,\n march: 3,\n apr: 4,\n april: 4,\n may: 5,\n jun: 6,\n june: 6,\n jul: 7,\n july: 7,\n aug: 8,\n august: 8,\n sep: 9,\n september: 9,\n oct: 10,\n october: 10,\n nov: 11,\n november: 11,\n dec: 12,\n december: 12,\n};\n\n/**\n * Parses common date input formats into a PlainDate.\n * Supports: \"2026-05-21\", \"05/21/2026\", \"May 21, 2026\", \"21 May 2026\", etc.\n * Returns null if the input cannot be parsed.\n */\nexport function parseDateInput(input: string): PlainDate | null {\n const trimmed = input.trim();\n if (trimmed === '') {\n return null;\n }\n\n // ISO format: 2026-05-21\n const isoMatch = /^(\\d{4})-(\\d{1,2})-(\\d{1,2})$/.exec(trimmed);\n if (isoMatch != null) {\n return tryCreate(\n parseInt(isoMatch[1], 10),\n parseInt(isoMatch[2], 10),\n parseInt(isoMatch[3], 10),\n );\n }\n\n // US format: 05/21/2026, 5/21/2026, or 3/4/25 (2-digit year)\n const usMatch = /^(\\d{1,2})[/\\-.](\\d{1,2})[/\\-.](\\d{2,4})$/.exec(trimmed);\n if (usMatch != null) {\n let year = parseInt(usMatch[3], 10);\n if (year < 100) {\n year += year < 50 ? 2000 : 1900;\n }\n return tryCreate(year, parseInt(usMatch[1], 10), parseInt(usMatch[2], 10));\n }\n\n // Named month: \"May 21, 2026\" or \"May 21 2026\"\n const namedMonthFirst = /^([A-Za-z]+)\\s+(\\d{1,2}),?\\s+(\\d{4})$/.exec(trimmed);\n if (namedMonthFirst != null) {\n const month = MONTH_NAMES[namedMonthFirst[1].toLowerCase()];\n if (month != null) {\n return tryCreate(\n parseInt(namedMonthFirst[3], 10),\n month,\n parseInt(namedMonthFirst[2], 10),\n );\n }\n }\n\n // Named month reversed: \"21 May 2026\"\n const namedMonthLast = /^(\\d{1,2})\\s+([A-Za-z]+),?\\s+(\\d{4})$/.exec(trimmed);\n if (namedMonthLast != null) {\n const month = MONTH_NAMES[namedMonthLast[2].toLowerCase()];\n if (month != null) {\n return tryCreate(\n parseInt(namedMonthLast[3], 10),\n month,\n parseInt(namedMonthLast[1], 10),\n );\n }\n }\n\n return null;\n}\n\nfunction tryCreate(year: number, month: number, day: number): PlainDate | null {\n try {\n return plainDateCreate(year, month, day);\n } catch {\n return null;\n }\n}\n","'use client';\n\nimport {CalendarIcon, X} from 'lucide-react';\nimport {\n useCallback,\n useId,\n useRef,\n useState,\n type ChangeEvent,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Calendar, type CalendarHandle} from 'components/Calendar';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport type {IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {parseDateInput} from 'internal/parseDateInput';\nimport {\n DATE_FORMAT_LONG,\n plainDateFormat,\n plainDateIsAfter,\n plainDateIsBefore,\n type PlainDate,\n} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport type {PlainDate} from 'internal/plainDate';\n\nconst styles = {\n wrapper: css({ps: '1', gap: '1'}),\n} as const;\n\nexport type DateInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Whether to show a clear button when a value is selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Custom HTML id applied to the input element.\n */\n htmlId?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Called when the selected date changes.\n */\n onChange: (value: PlainDate | null) => void;\n /**\n * Placeholder text shown when no date is selected. Typed dates accept a\n * range of formats, including \"May 21, 2026\", \"5/21/2026\", and \"2026-05-21\".\n * @default 'e.g. May 21, 2026'\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the input.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Currently selected date. Pass `null` for an empty input.\n */\n value: PlainDate | null;\n} & FieldNecessity;\n\nfunction formatDate(value: PlainDate | null | undefined): string {\n return value == null ? '' : plainDateFormat(value, DATE_FORMAT_LONG);\n}\n\nfunction isDateAllowed(\n date: PlainDate,\n options: {\n getIsDateDisabled?: (date: PlainDate) => boolean;\n max?: PlainDate;\n min?: PlainDate;\n },\n): boolean {\n if (options.min != null && plainDateIsBefore(date, options.min)) {\n return false;\n }\n if (options.max != null && plainDateIsAfter(date, options.max)) {\n return false;\n }\n if (options.getIsDateDisabled?.(date)) {\n return false;\n }\n return true;\n}\n\n/**\n * A date picker input that combines a text input with a calendar popover.\n * Users can type a date directly or select one from the calendar.\n */\nexport function DateInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n placeholder = 'e.g. May 21, 2026',\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n htmlId,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateInputProps): React.JSX.Element {\n const generatedId = useId();\n const inputId = htmlId ?? generatedId;\n const popoverId = `${inputId}-calendar`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const inputRef = useRef<HTMLInputElement | null>(null);\n const calendarRef = useRef<CalendarHandle | null>(null);\n const wrapperRef = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [pendingInput, setPendingInput] = useState<string | null>(null);\n\n const displayValue = pendingInput ?? formatDate(value);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n const handleCalendarChange = useCallback(\n (nextValue: PlainDate) => {\n onChange(nextValue);\n setPendingInput(null);\n setIsOpen(false);\n inputRef.current?.focus();\n },\n [onChange],\n );\n\n const handleInputChange = useCallback(\n (event: ChangeEvent<HTMLInputElement>) => {\n const text = event.target.value;\n setPendingInput(text);\n\n const parsed = parseDateInput(text);\n if (\n parsed != null &&\n isDateAllowed(parsed, {min, max, getIsDateDisabled})\n ) {\n onChange(parsed);\n calendarRef.current?.navigateTo(parsed);\n }\n },\n [getIsDateDisabled, max, min, onChange],\n );\n\n const commitPendingInput = useCallback(() => {\n if (pendingInput == null) {\n return;\n }\n\n if (pendingInput.trim() === '') {\n if (value != null) {\n onChange(null);\n }\n setPendingInput(null);\n return;\n }\n\n const parsed = parseDateInput(pendingInput);\n if (\n parsed != null &&\n isDateAllowed(parsed, {min, max, getIsDateDisabled})\n ) {\n onChange(parsed);\n }\n setPendingInput(null);\n }, [getIsDateDisabled, max, min, onChange, pendingInput, value]);\n\n const handleBlur = useCallback(() => {\n commitPendingInput();\n }, [commitPendingInput]);\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLInputElement>) => {\n if (event.key === 'Enter') {\n event.preventDefault();\n commitPendingInput();\n }\n },\n [commitPendingInput],\n );\n\n const handleClear = useCallback(() => {\n onChange(null);\n setPendingInput(null);\n inputRef.current?.focus();\n }, [onChange]);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled: isDisabled,\n }),\n styles.wrapper,\n )}\n ref={wrapperRef}>\n <Popover\n content={\n <Calendar\n getIsDateDisabled={getIsDateDisabled}\n hasAutoFocus={isOpen}\n max={max}\n min={min}\n onChange={handleCalendarChange}\n ref={calendarRef}\n value={value ?? undefined}\n viewDate={value ?? undefined}\n />\n }\n hasAutoFocus={false}\n id={popoverId}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={`Choose ${label}`}\n onOpenChange={setIsOpen}\n padding={3}>\n <Button\n icon={CalendarIcon}\n isDisabled={isDisabled}\n isIconOnly\n label={`Choose ${label}`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Popover>\n <input\n aria-busy={isLoading || undefined}\n aria-controls={popoverId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={status?.type === 'error' || undefined}\n aria-required={isRequired ?? undefined}\n autoComplete=\"off\"\n className={inputStyles.control}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n onBlur={handleBlur}\n onChange={handleInputChange}\n onKeyDown={handleKeyDown}\n placeholder={placeholder}\n ref={mergeRefs(ref, inputRef)}\n role=\"combobox\"\n type=\"text\"\n value={displayValue}\n />\n {hasClear && value != null && !isDisabled && !isLoading ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={handleClear}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n </Field>\n );\n}\n\nDateInput.displayName = 'DateInput';\n"]}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
'use client';
|
|
2
|
+
import { Calendar } from './chunk-Q5DVIVMR.js';
|
|
2
3
|
import { plainDateFormat, DATE_FORMAT_SHORT_WITH_YEAR } from './chunk-5HPXUDX6.js';
|
|
3
4
|
import { inputStyles, inputRecipe } from './chunk-KB36TWOU.js';
|
|
4
|
-
import { getNecessity, Field } from './chunk-
|
|
5
|
+
import { getNecessity, Field } from './chunk-2EGYYWPB.js';
|
|
5
6
|
import { getStatusMessageID, getDescribedBy, getStatusIcon } from './chunk-G6HS52US.js';
|
|
6
|
-
import { Popover } from './chunk-
|
|
7
|
-
import { Button } from './chunk-
|
|
8
|
-
import { Spinner } from './chunk-
|
|
7
|
+
import { Popover } from './chunk-YK5BUUZG.js';
|
|
8
|
+
import { Button } from './chunk-J2TQNGUM.js';
|
|
9
|
+
import { Spinner } from './chunk-RM2XLAAU.js';
|
|
9
10
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
10
11
|
import { css } from './chunk-OD4DHHZH.js';
|
|
11
12
|
import { cx } from './chunk-PPNETWIP.js';
|
|
@@ -165,5 +166,5 @@ function DateRangeInput({
|
|
|
165
166
|
DateRangeInput.displayName = "DateRangeInput";
|
|
166
167
|
|
|
167
168
|
export { DateRangeInput };
|
|
168
|
-
//# sourceMappingURL=chunk-
|
|
169
|
-
//# sourceMappingURL=chunk-
|
|
169
|
+
//# sourceMappingURL=chunk-NP527IVS.js.map
|
|
170
|
+
//# sourceMappingURL=chunk-NP527IVS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/DateRangeInput/DateRangeInput.tsx"],"names":[],"mappings":"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","file":"chunk-NP527IVS.js","sourcesContent":["'use client';\n\nimport {CalendarIcon, X} from 'lucide-react';\nimport {\n useId,\n useMemo,\n useState,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {Calendar} from 'components/Calendar';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport type {IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport type {DateRange} from 'internal/dateTypes';\nimport isReactNode from 'internal/isReactNode';\nimport {\n DATE_FORMAT_SHORT_WITH_YEAR,\n plainDateFormat,\n type PlainDate,\n} from 'internal/plainDate';\nimport {css} from 'styled-system/css';\n\nexport type {DateRange} from 'internal/dateTypes';\n\nconst styles = {\n wrapper: css({ps: '1', gap: '1'}),\n} as const;\n\nexport type DateRangeInputProps = {\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Returns true for dates that should be disabled.\n */\n getIsDateDisabled?: (date: PlainDate) => boolean;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Whether to show a clear button when a value is selected.\n * @default false\n */\n hasClear?: boolean;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Maximum selectable date.\n */\n max?: PlainDate;\n /**\n * Minimum selectable date.\n */\n min?: PlainDate;\n /**\n * Number of calendar months shown in the popover.\n * @default 2\n */\n numberOfMonths?: 1 | 2;\n /**\n * Called when the selected date range changes.\n */\n onChange: (value: DateRange | null) => void;\n /**\n * Placeholder text shown when no range is selected.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the input.\n * @default 'md'\n */\n size?: InputSize;\n /**\n * Validation status displayed below the input.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the input wrapper.\n */\n style?: CSSProperties;\n /**\n * Currently selected date range. Pass `null` for an empty input.\n */\n value: DateRange | null;\n} & FieldNecessity;\n\nfunction formatRange(value: DateRange | null | undefined): string {\n if (value == null) {\n return '';\n }\n return `${plainDateFormat(value.start, DATE_FORMAT_SHORT_WITH_YEAR)} - ${plainDateFormat(value.end, DATE_FORMAT_SHORT_WITH_YEAR)}`;\n}\n\n/**\n * A date range picker input that opens a calendar popover for selecting a start and end date.\n */\nexport function DateRangeInput({\n label,\n value,\n onChange,\n min,\n max,\n getIsDateDisabled,\n numberOfMonths = 2,\n placeholder = 'Select a date range',\n size = 'md',\n description,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n status,\n labelIcon,\n labelTooltip,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: DateRangeInputProps): React.JSX.Element {\n const inputId = useId();\n const popoverId = `${inputId}-calendar`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const [isOpen, setIsOpen] = useState(false);\n const displayValue = useMemo(() => formatRange(value), [value]);\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n <div\n className={cx(\n inputRecipe({\n size,\n status: status?.type,\n isDisabled,\n }),\n styles.wrapper,\n )}>\n <Popover\n content={\n <Calendar\n getIsDateDisabled={getIsDateDisabled}\n max={max}\n min={min}\n mode=\"range\"\n numberOfMonths={numberOfMonths}\n onChange={nextValue => {\n onChange(nextValue);\n setIsOpen(false);\n }}\n value={value ?? undefined}\n viewDate={value?.start}\n />\n }\n hasAutoFocus\n id={popoverId}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={`Choose ${label}`}\n onOpenChange={setIsOpen}\n padding={3}>\n <Button\n icon={CalendarIcon}\n isDisabled={isDisabled}\n isIconOnly\n label={`Choose ${label}`}\n size=\"sm\"\n variant=\"ghost\"\n />\n </Popover>\n <input\n aria-busy={isLoading || undefined}\n aria-controls={popoverId}\n aria-describedby={describedBy}\n aria-expanded={isOpen}\n aria-haspopup=\"dialog\"\n aria-invalid={status?.type === 'error' || undefined}\n aria-required={isRequired ?? undefined}\n className={inputStyles.control}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n placeholder={placeholder}\n readOnly\n ref={ref}\n role=\"combobox\"\n type=\"text\"\n value={displayValue}\n />\n {hasClear && value != null && !isDisabled && !isLoading ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange(null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n </Field>\n );\n}\n\nDateRangeInput.displayName = 'DateRangeInput';\n"]}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
1
|
+
'use client';
|
|
2
|
+
import { resolveDismissBehavior, useBackdropDismiss } from './chunk-D57CFXDZ.js';
|
|
3
|
+
import { DialogContext } from './chunk-YNGDGY2J.js';
|
|
4
|
+
import { useScrollLock } from './chunk-Q4UI2MP4.js';
|
|
4
5
|
import { mergeRefs } from './chunk-SGLIDI6R.js';
|
|
5
6
|
import { sva } from './chunk-IAVZKGZS.js';
|
|
6
7
|
import { cx } from './chunk-PPNETWIP.js';
|
|
@@ -183,5 +184,5 @@ function useDialog(defaultOptions) {
|
|
|
183
184
|
}
|
|
184
185
|
|
|
185
186
|
export { Dialog, useDialog };
|
|
186
|
-
//# sourceMappingURL=chunk-
|
|
187
|
-
//# sourceMappingURL=chunk-
|
|
187
|
+
//# sourceMappingURL=chunk-NSA33LOE.js.map
|
|
188
|
+
//# sourceMappingURL=chunk-NSA33LOE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Dialog/Dialog.recipe.ts","../src/components/Dialog/Dialog.tsx","../src/components/Dialog/useDialog.tsx"],"names":["useMemo","jsx"],"mappings":"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","file":"chunk-NSA33LOE.js","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const dialogRecipe = sva({\n slots: ['root', 'inner'],\n base: {\n root: {\n position: 'fixed',\n m: 'auto',\n p: 0,\n borderWidth: 0,\n bg: 'bg',\n color: 'fg',\n borderRadius: 'md',\n boxShadow: 'xl',\n flexDirection: 'column',\n overscrollBehavior: 'contain',\n _backdrop: {\n bg: 'overlay.scrim',\n backdropFilter: 'blur(2px)',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n inner: {\n display: 'flex',\n flexDirection: 'column',\n flex: '1 1 auto',\n minH: 0,\n overflow: 'hidden',\n borderRadius: 'inherit',\n },\n },\n variants: {\n // When closed, the native <dialog> UA style (display: none) applies; opening\n // switches on the flex column layout.\n isOpen: {\n true: {root: {display: 'flex'}},\n false: {},\n },\n variant: {\n standard: {},\n fullscreen: {\n root: {\n w: '100dvw',\n h: '100dvh',\n maxW: '100dvw',\n maxH: '100dvh',\n borderRadius: 0,\n m: 0,\n inset: 0,\n },\n },\n },\n },\n defaultVariants: {\n isOpen: false,\n variant: 'standard',\n },\n});\n\nexport type DialogVariants = RecipeVariantProps<typeof dialogRecipe>;\n","/* eslint-disable jsx-a11y-x/click-events-have-key-events, jsx-a11y-x/no-noninteractive-element-interactions */\n'use client';\nimport {\n useEffect,\n useId,\n useMemo,\n useRef,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {dialogRecipe} from 'components/Dialog/Dialog.recipe';\nimport {DialogContext} from 'components/Dialog/DialogContext';\nimport {cx} from 'internal/cx';\nimport {\n resolveDismissBehavior,\n type DismissBehavior,\n} from 'internal/dismissBehavior';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {useBackdropDismiss} from 'internal/useBackdropDismiss';\nimport {useScrollLock} from 'internal/useScrollLock';\n\nexport type DialogVariant = 'fullscreen' | 'standard';\nexport type DialogRole = 'alertdialog' | 'dialog';\nexport type DialogDismissBehavior = DismissBehavior;\n\nexport interface DialogPosition {\n bottom?: number | string;\n left?: number | string;\n right?: number | string;\n top?: number | string;\n}\n\nexport interface DialogProps {\n /**\n * Dialog body content.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the dialog.\n */\n className?: string;\n /**\n * Test ID applied to the dialog.\n */\n 'data-testid'?: string;\n /**\n * Controls whether Escape and backdrop clicks request dismissal. Pass a\n * boolean to enable or disable both behaviors together.\n * @default {isEscapeDismissEnabled: true, isBackdropDismissEnabled: true}\n */\n dismissBehavior?: DialogDismissBehavior;\n /**\n * Whether the dialog is open.\n */\n isOpen: boolean;\n /**\n * Accessible label for the dialog. When provided, sets `aria-label`\n * directly. When omitted, the dialog uses `aria-labelledby` to\n * reference the heading rendered by a child `LayoutHeader`.\n *\n * Omit this prop when using a `LayoutHeader` inside the dialog.\n * Set it when the dialog has no visible heading.\n */\n label?: string;\n /**\n * Maximum height of the dialog. Numbers are treated as pixels.\n * @default '75vh'\n */\n maxHeight?: number | string;\n /**\n * Called when the dialog requests an open-state change.\n */\n onOpenChange: (isOpen: boolean) => void;\n /**\n * Fixed positioning offsets for the dialog.\n */\n position?: Readonly<DialogPosition>;\n /**\n * Ref forwarded to the dialog element.\n */\n ref?: Ref<HTMLDialogElement>;\n /**\n * ARIA role exposed by the dialog.\n * @default 'dialog'\n */\n role?: DialogRole;\n /**\n * Inline styles applied to the dialog.\n */\n style?: CSSProperties;\n /**\n * Display variant.\n * @default 'standard'\n */\n variant?: DialogVariant;\n /**\n * Dialog width. Numbers are treated as pixels.\n * @default 400\n */\n width?: number | string;\n}\n\nfunction formatSize(value: number | string): string {\n return typeof value === 'number' ? `${value}px` : value;\n}\n\n/**\n * A modal dialog surface with backdrop, focus management,\n * and configurable dismiss behavior.\n */\nexport function Dialog({\n isOpen,\n label,\n onOpenChange,\n width = 400,\n maxHeight = '75vh',\n position,\n variant = 'standard',\n dismissBehavior,\n children,\n className,\n 'data-testid': dataTestId,\n role = 'dialog',\n style,\n ref,\n}: DialogProps): React.JSX.Element {\n const dialogRef = useRef<HTMLDialogElement>(null);\n const titleId = useId();\n const isFullscreen = variant === 'fullscreen';\n const {isBackdropDismissEnabled, isEscapeDismissEnabled} =\n resolveDismissBehavior(dismissBehavior);\n const backdropDismiss = useBackdropDismiss<HTMLDialogElement>({\n isEnabled: isBackdropDismissEnabled,\n onDismiss: () => onOpenChange(false),\n });\n const dialogContextValue = useMemo(\n () => ({onOpenChange, titleId}),\n [onOpenChange, titleId],\n );\n const classes = dialogRecipe({isOpen, variant});\n\n useEffect(() => {\n const dialog = dialogRef.current;\n if (dialog == null) {\n return;\n }\n\n if (isOpen) {\n if (!dialog.open) {\n dialog.showModal();\n }\n // Override the dialog's default initial focus when an autofocus target is\n // present. Focus restoration on close is left to the native <dialog>,\n // which restores focus to the element that was focused before\n // showModal() — avoiding races with external focus management.\n const autofocusTarget =\n dialog.querySelector<HTMLElement>('[data-autofocus=\"true\"]') ??\n dialog.querySelector<HTMLElement>('[data-dialog-autofocus=\"true\"]');\n autofocusTarget?.focus();\n } else if (dialog.open) {\n dialog.close();\n }\n }, [isOpen]);\n\n useScrollLock(isOpen);\n\n const positionStyle =\n position != null && !isFullscreen\n ? {\n bottom:\n position.bottom == null ? 'auto' : formatSize(position.bottom),\n left: position.left == null ? 'auto' : formatSize(position.left),\n margin: 0,\n right: position.right == null ? 'auto' : formatSize(position.right),\n top: position.top == null ? 'auto' : formatSize(position.top),\n }\n : undefined;\n\n return (\n <dialog\n aria-label={label}\n aria-labelledby={label == null ? titleId : undefined}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onCancel={event => {\n event.preventDefault();\n if (isEscapeDismissEnabled) {\n onOpenChange(false);\n }\n }}\n onClick={backdropDismiss.onClick}\n onPointerDown={backdropDismiss.onPointerDown}\n ref={mergeRefs(ref, dialogRef)}\n role={role === 'dialog' ? undefined : role}\n style={{\n width: isFullscreen ? undefined : formatSize(width),\n maxHeight: isFullscreen ? undefined : formatSize(maxHeight),\n ...positionStyle,\n ...style,\n }}>\n <DialogContext value={dialogContextValue}>\n <div className={classes.inner}>{children}</div>\n </DialogContext>\n </dialog>\n );\n}\n\nDialog.displayName = 'Dialog';\n","'use client';\n\nimport {useCallback, useMemo, useState, type ReactNode} from 'react';\nimport {Dialog, type DialogProps} from 'components/Dialog/Dialog';\n\nexport type DialogOptions = Partial<\n Omit<DialogProps, 'children' | 'isOpen' | 'onOpenChange'>\n>;\n\nexport interface UseDialogReturn {\n element: ReactNode;\n hide: () => void;\n isOpen: boolean;\n show: (content: ReactNode, options?: DialogOptions) => void;\n}\n\nexport function useDialog(defaultOptions?: DialogOptions): UseDialogReturn {\n const [isOpen, setIsOpen] = useState(false);\n const [content, setContent] = useState<ReactNode>(null);\n // Options passed to the most recent `show()` call. Each call replaces these\n // rather than merging, so per-call options never bleed into later calls.\n // `defaultOptions` remains the baseline, applied beneath them below.\n const [callOptions, setCallOptions] = useState<DialogOptions | undefined>();\n\n const show = useCallback(\n (nextContent: ReactNode, nextOptions?: DialogOptions) => {\n setContent(nextContent);\n setCallOptions(nextOptions);\n setIsOpen(true);\n },\n [],\n );\n\n const hide = useCallback(() => setIsOpen(false), []);\n\n const element = useMemo(\n () => (\n <Dialog\n {...(defaultOptions ?? {})}\n {...(callOptions ?? {})}\n isOpen={isOpen}\n label={callOptions?.label ?? defaultOptions?.label}\n onOpenChange={setIsOpen}>\n {content}\n </Dialog>\n ),\n [content, defaultOptions, isOpen, callOptions],\n );\n\n return {element, hide, isOpen, show};\n}\n"]}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
'use client';
|
|
1
2
|
'use strict';
|
|
2
3
|
|
|
3
|
-
var
|
|
4
|
+
var chunkLDKE723G_cjs = require('./chunk-LDKE723G.cjs');
|
|
4
5
|
var chunkXPHXAZCE_cjs = require('./chunk-XPHXAZCE.cjs');
|
|
5
6
|
var chunkXLNRO3S6_cjs = require('./chunk-XLNRO3S6.cjs');
|
|
6
|
-
var
|
|
7
|
+
var chunkMWWAQVJ3_cjs = require('./chunk-MWWAQVJ3.cjs');
|
|
7
8
|
var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
|
|
8
|
-
var
|
|
9
|
-
var
|
|
9
|
+
var chunkI2QAN2HX_cjs = require('./chunk-I2QAN2HX.cjs');
|
|
10
|
+
var chunk7KUEWO4T_cjs = require('./chunk-7KUEWO4T.cjs');
|
|
10
11
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
11
12
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
12
13
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
@@ -195,7 +196,7 @@ function CheckboxInput({
|
|
|
195
196
|
}
|
|
196
197
|
),
|
|
197
198
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", className: classes.box, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
198
|
-
|
|
199
|
+
chunkMWWAQVJ3_cjs.Spinner,
|
|
199
200
|
{
|
|
200
201
|
size: "sm",
|
|
201
202
|
variant: isCheckedOrIndeterminate ? "onMedia" : "default"
|
|
@@ -205,11 +206,11 @@ function CheckboxInput({
|
|
|
205
206
|
const labelContent = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
206
207
|
labelIcon != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkJ4PIYOWT_cjs.Icon, { color: "secondary", icon: labelIcon, size: "sm" }) : null,
|
|
207
208
|
label,
|
|
208
|
-
statusText != null ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
209
|
+
statusText != null ? /* @__PURE__ */ jsxRuntime.jsxs(chunkI2QAN2HX_cjs.Text, { as: "span", className: classes.indicator, type: "supporting", children: [
|
|
209
210
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: " \xB7 " }),
|
|
210
211
|
statusText
|
|
211
212
|
] }) : null,
|
|
212
|
-
chunkQAO6QMNQ_cjs.isReactNode(labelTooltip) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
213
|
+
chunkQAO6QMNQ_cjs.isReactNode(labelTooltip) ? /* @__PURE__ */ jsxRuntime.jsx(chunk7KUEWO4T_cjs.Tooltip, { content: labelTooltip, children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.tooltipIcon, children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4PIYOWT_cjs.Icon, { icon: lucideReact.Info, size: "sm" }) }) }) : null
|
|
213
214
|
] });
|
|
214
215
|
const labelNode = /* @__PURE__ */ jsxRuntime.jsx("label", { className: classes.label, htmlFor: inputId, children: isLabelHidden ? /* @__PURE__ */ jsxRuntime.jsx(chunk2MXK2SDR_cjs.VisuallyHidden, { children: labelContent }) : labelContent });
|
|
215
216
|
const statusNode = status?.message != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -226,7 +227,7 @@ function CheckboxInput({
|
|
|
226
227
|
}
|
|
227
228
|
) : null;
|
|
228
229
|
const item = /* @__PURE__ */ jsxRuntime.jsx(
|
|
229
|
-
|
|
230
|
+
chunkLDKE723G_cjs.Item,
|
|
230
231
|
{
|
|
231
232
|
description: chunkQAO6QMNQ_cjs.isReactNode(description) ? /* @__PURE__ */ jsxRuntime.jsx("span", { id: descriptionId, children: description }) : void 0,
|
|
232
233
|
endContent,
|
|
@@ -246,5 +247,5 @@ function CheckboxInput({
|
|
|
246
247
|
CheckboxInput.displayName = "CheckboxInput";
|
|
247
248
|
|
|
248
249
|
exports.CheckboxInput = CheckboxInput;
|
|
249
|
-
//# sourceMappingURL=chunk-
|
|
250
|
-
//# sourceMappingURL=chunk-
|
|
250
|
+
//# sourceMappingURL=chunk-OAEVUPAL.cjs.map
|
|
251
|
+
//# sourceMappingURL=chunk-OAEVUPAL.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/CheckboxInput/CheckboxInput.recipe.ts","../src/components/CheckboxInput/CheckboxInput.tsx"],"names":["sva","useId","useRef","getStatusMessageID","getDescribedBy","isReactNode","useEffect","jsxs","jsx","cx","mergeRefs","Spinner","Icon","Minus","Check","Fragment","Text","Tooltip","Info","VisuallyHidden","fieldRecipe","Item"],"mappings":"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","file":"chunk-OAEVUPAL.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxInputRecipe = sva({\n slots: [\n 'root',\n 'boxWrap',\n 'input',\n 'box',\n 'icon',\n 'label',\n 'indicator',\n 'tooltipIcon',\n ],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n },\n boxWrap: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n input: {\n position: 'absolute',\n inset: 0,\n opacity: 0,\n cursor: 'pointer',\n _disabled: {\n cursor: 'not-allowed',\n },\n },\n box: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderWidth: 'default',\n borderStyle: 'solid',\n borderColor: 'border.emphasized',\n borderRadius: 'sm',\n bg: 'bg',\n color: 'fg.onPrimary',\n pointerEvents: 'none',\n _peerFocusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n icon: {\n w: '70%',\n h: '70%',\n mt: '1px',\n },\n label: {\n cursor: 'pointer',\n },\n indicator: {\n fontWeight: 'normal',\n color: 'fg.muted',\n },\n tooltipIcon: {\n display: 'inline-flex',\n color: 'fg.muted',\n },\n },\n variants: {\n size: {\n sm: {box: {w: '4.5', h: '4.5'}},\n md: {box: {w: '5.5', h: '5.5'}},\n lg: {box: {w: '6.5', h: '6.5'}},\n },\n isChecked: {\n true: {box: {bg: 'primary', borderColor: 'primary'}},\n false: {},\n },\n isDisabled: {\n true: {\n box: {opacity: 0.55},\n label: {cursor: 'not-allowed'},\n },\n false: {},\n },\n },\n defaultVariants: {\n size: 'md',\n isChecked: false,\n isDisabled: false,\n },\n});\n\nexport type CheckboxInputVariants = RecipeVariantProps<\n typeof checkboxInputRecipe\n>;\n","'use client';\n\nimport {Check, Info, Minus} from 'lucide-react';\nimport {\n useEffect,\n useId,\n useRef,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {checkboxInputRecipe} from 'components/CheckboxInput/CheckboxInput.recipe';\nimport type {FieldNecessity, InputStatus} from 'components/Field';\nimport {fieldRecipe} from 'components/Field/Field.recipe';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Item} from 'components/Item';\nimport {Spinner} from 'components/Spinner';\nimport {Text} from 'components/Text';\nimport {Tooltip} from 'components/Tooltip';\nimport {VisuallyHidden} from 'internal/VisuallyHidden';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\n\nexport type CheckboxInputSize = 'sm' | 'md' | 'lg';\nexport type CheckboxInputValue = boolean | 'indeterminate';\n\nexport type CheckboxInputProps = {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * `'end'` pushes it to the trailing edge; `'inline'` keeps it next to the label.\n * @default 'inline'\n */\n endContentPosition?: 'end' | 'inline';\n /**\n * HTML name attribute for native form submission.\n */\n htmlName?: string;\n /**\n * HTML value attribute for native form submission.\n */\n htmlValue?: string;\n /**\n * Whether the checkbox is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the checkbox is in a loading state.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Whether the checkbox is read-only.\n * @default false\n */\n isReadOnly?: boolean;\n /**\n * Field label text.\n */\n label: string;\n /**\n * Optional content shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called when the checked state changes.\n */\n onChange: (checked: boolean, event: ChangeEvent<HTMLInputElement>) => void;\n /**\n * Called when the input receives focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size of the checkbox.\n * @default 'md'\n */\n size?: CheckboxInputSize;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Validation status displayed below the checkbox.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Current checked state: true, false, or 'indeterminate'.\n */\n value: CheckboxInputValue;\n /**\n * Width of the checkbox item.\n * @default 'full'\n */\n width?: 'auto' | 'full';\n} & FieldNecessity;\n\n/**\n * A checkbox input with label, description, and validation support.\n */\nexport function CheckboxInput({\n label,\n value,\n onChange,\n description,\n endContent,\n endContentPosition = 'inline',\n htmlName,\n htmlValue,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isReadOnly = false,\n isLoading = false,\n status,\n labelIcon,\n labelTooltip,\n size = 'md',\n startContent,\n onFocus,\n onBlur,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n width = 'full',\n}: CheckboxInputProps): React.JSX.Element {\n const inputId = useId();\n const descriptionId = useId();\n const inputRef = useRef<HTMLInputElement>(null);\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(\n isReactNode(description) ? descriptionId : undefined,\n statusMessageID,\n );\n const isIndeterminate = value === 'indeterminate';\n const isChecked = value === true;\n const isCheckedOrIndeterminate = isChecked || isIndeterminate;\n const classes = checkboxInputRecipe({\n size,\n isChecked: isCheckedOrIndeterminate,\n isDisabled,\n });\n\n useEffect(() => {\n if (inputRef.current != null) {\n inputRef.current.indeterminate = isIndeterminate;\n }\n }, [isIndeterminate]);\n\n const statusText = isOptional ? 'Optional' : isRequired ? 'Required' : null;\n\n const control = (\n <span className={classes.boxWrap}>\n <input\n aria-busy={isLoading || undefined}\n aria-checked={isIndeterminate ? 'mixed' : undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-readonly={isReadOnly || undefined}\n checked={isChecked}\n // `peer` is the marker class Panda's `_peerFocusVisible` selector on\n // the box targets (`.peer:is(:focus-visible,…) ~ &`); without it the\n // box's keyboard focus ring never renders.\n className={cx('peer', classes.input)}\n data-testid={dataTestId}\n disabled={isDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => {\n if (isReadOnly) {\n event.preventDefault();\n return;\n }\n onChange(event.target.checked, event);\n }}\n onClick={event => {\n // For checkboxes the native toggle happens during `click`, before\n // `change` fires, so blocking only `onChange` lets the box flip\n // momentarily until React resets it. Preventing the click stops the\n // toggle outright — and covers label clicks and Space-key activation,\n // which both dispatch a click on the input.\n if (isReadOnly) {\n event.preventDefault();\n }\n }}\n onFocus={onFocus}\n readOnly={isReadOnly}\n ref={mergeRefs(ref, inputRef)}\n required={isRequired}\n type=\"checkbox\"\n value={htmlValue}\n />\n <span aria-hidden=\"true\" className={classes.box}>\n {isLoading ? (\n <Spinner\n size=\"sm\"\n variant={isCheckedOrIndeterminate ? 'onMedia' : 'default'}\n />\n ) : isIndeterminate ? (\n <Icon className={classes.icon} icon={Minus} />\n ) : isChecked ? (\n <Icon className={classes.icon} icon={Check} />\n ) : null}\n </span>\n </span>\n );\n\n const labelContent = (\n <>\n {labelIcon != null ? (\n <Icon color=\"secondary\" icon={labelIcon} size=\"sm\" />\n ) : null}\n {label}\n {statusText != null ? (\n <Text as=\"span\" className={classes.indicator} type=\"supporting\">\n <span aria-hidden=\"true\"> · </span>\n {statusText}\n </Text>\n ) : null}\n {isReactNode(labelTooltip) ? (\n <Tooltip content={labelTooltip}>\n <span className={classes.tooltipIcon}>\n <Icon icon={Info} size=\"sm\" />\n </span>\n </Tooltip>\n ) : null}\n </>\n );\n\n const labelNode = (\n <label className={classes.label} htmlFor={inputId}>\n {isLabelHidden ? (\n <VisuallyHidden>{labelContent}</VisuallyHidden>\n ) : (\n labelContent\n )}\n </label>\n );\n\n const statusNode =\n status?.message != null ? (\n <div\n aria-live={status.type === 'error' ? 'assertive' : 'polite'}\n className={\n fieldRecipe({\n statusType: status.type,\n statusVariant: 'detached',\n }).status\n }\n id={statusMessageID}\n role={status.type === 'error' ? 'alert' : 'status'}>\n {status.message}\n </div>\n ) : null;\n\n const item = (\n <Item\n description={\n isReactNode(description) ? (\n <span id={descriptionId}>{description}</span>\n ) : undefined\n }\n endContent={endContent}\n endContentPosition={endContentPosition}\n isDisabled={isDisabled}\n label={labelNode}\n leadingContent={control}\n startContent={startContent}\n width={width}\n />\n );\n\n return (\n <div className={cx(classes.root, className)} style={style}>\n {item}\n {statusNode}\n </div>\n );\n}\n\nCheckboxInput.displayName = 'CheckboxInput';\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
1
|
+
'use client';
|
|
2
|
+
import { resolveDismissBehavior, useBackdropDismiss } from './chunk-D57CFXDZ.js';
|
|
3
|
+
import { useScrollLock } from './chunk-Q4UI2MP4.js';
|
|
3
4
|
import { mergeRefs } from './chunk-SGLIDI6R.js';
|
|
4
5
|
import { sva } from './chunk-IAVZKGZS.js';
|
|
5
6
|
import { cx } from './chunk-PPNETWIP.js';
|
|
@@ -210,5 +211,5 @@ function useDrawer(defaultOptions) {
|
|
|
210
211
|
}
|
|
211
212
|
|
|
212
213
|
export { Drawer, useDrawer };
|
|
213
|
-
//# sourceMappingURL=chunk-
|
|
214
|
-
//# sourceMappingURL=chunk-
|
|
214
|
+
//# sourceMappingURL=chunk-OI4GH7DO.js.map
|
|
215
|
+
//# sourceMappingURL=chunk-OI4GH7DO.js.map
|