silver-ui 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -65
- package/dist/{chunk-FNRYGCO3.js → chunk-2SN3KVWF.js} +4 -4
- package/dist/{chunk-FNRYGCO3.js.map → chunk-2SN3KVWF.js.map} +1 -1
- package/dist/{chunk-BSPWX2OZ.cjs → chunk-3IDT3PZC.cjs} +10 -10
- package/dist/{chunk-BSPWX2OZ.cjs.map → chunk-3IDT3PZC.cjs.map} +1 -1
- package/dist/chunk-3PEK2Q54.cjs +31 -0
- package/dist/chunk-3PEK2Q54.cjs.map +1 -0
- package/dist/{chunk-4SUQFPWH.js → chunk-45OSUS5A.js} +6 -6
- package/dist/{chunk-4SUQFPWH.js.map → chunk-45OSUS5A.js.map} +1 -1
- package/dist/{chunk-L7XJZJCM.js → chunk-4EUUZQAM.js} +5 -5
- package/dist/{chunk-L7XJZJCM.js.map → chunk-4EUUZQAM.js.map} +1 -1
- package/dist/{chunk-Q3HMGFGI.js → chunk-4JJFQZVY.js} +98 -77
- package/dist/chunk-4JJFQZVY.js.map +1 -0
- package/dist/chunk-5FQKELP6.js +28 -0
- package/dist/chunk-5FQKELP6.js.map +1 -0
- package/dist/{chunk-TTDNCN5G.cjs → chunk-5JROXZBG.cjs} +13 -39
- package/dist/chunk-5JROXZBG.cjs.map +1 -0
- package/dist/{chunk-OUZX7STE.cjs → chunk-5K3C3INR.cjs} +25 -53
- package/dist/chunk-5K3C3INR.cjs.map +1 -0
- package/dist/{chunk-AEYJ6PWC.js → chunk-5RFHYDQY.js} +16 -11
- package/dist/chunk-5RFHYDQY.js.map +1 -0
- package/dist/{chunk-PGTOVMP7.cjs → chunk-6FC5YF2O.cjs} +10 -10
- package/dist/{chunk-PGTOVMP7.cjs.map → chunk-6FC5YF2O.cjs.map} +1 -1
- package/dist/{chunk-6EYLEVC6.js → chunk-6I5QWA6A.js} +13 -6
- package/dist/chunk-6I5QWA6A.js.map +1 -0
- package/dist/{chunk-F7BFO3SD.cjs → chunk-6ZV7HGZT.cjs} +24 -8
- package/dist/chunk-6ZV7HGZT.cjs.map +1 -0
- package/dist/{chunk-2WTHSGDP.cjs → chunk-7EE6DCRP.cjs} +14 -14
- package/dist/{chunk-2WTHSGDP.cjs.map → chunk-7EE6DCRP.cjs.map} +1 -1
- package/dist/{chunk-HIH6MS5D.js → chunk-7TJ2O56S.js} +4 -4
- package/dist/{chunk-HIH6MS5D.js.map → chunk-7TJ2O56S.js.map} +1 -1
- package/dist/chunk-A2AC6WL5.cjs +4 -0
- package/dist/chunk-A2AC6WL5.cjs.map +1 -0
- package/dist/{chunk-BIJ6YDWJ.cjs → chunk-AFJEAYR4.cjs} +15 -8
- package/dist/chunk-AFJEAYR4.cjs.map +1 -0
- package/dist/chunk-AFXU6XIS.js +3 -0
- package/dist/chunk-AFXU6XIS.js.map +1 -0
- package/dist/{chunk-L5PJCLV6.js → chunk-AKAXQ4RL.js} +16 -25
- package/dist/chunk-AKAXQ4RL.js.map +1 -0
- package/dist/{chunk-OTQAREYU.js → chunk-ATK3F3MC.js} +4 -4
- package/dist/{chunk-OTQAREYU.js.map → chunk-ATK3F3MC.js.map} +1 -1
- package/dist/{chunk-2VL66QBX.js → chunk-B5QX6KGJ.js} +3 -3
- package/dist/{chunk-2VL66QBX.js.map → chunk-B5QX6KGJ.js.map} +1 -1
- package/dist/{chunk-TOQ4MGM5.js → chunk-BDFNEQR3.js} +6 -6
- package/dist/{chunk-TOQ4MGM5.js.map → chunk-BDFNEQR3.js.map} +1 -1
- package/dist/{chunk-UARQIMPS.js → chunk-BGLT7XH6.js} +5 -5
- package/dist/{chunk-UARQIMPS.js.map → chunk-BGLT7XH6.js.map} +1 -1
- package/dist/{chunk-2AWSJF22.js → chunk-BNGYGCT2.js} +8 -8
- package/dist/chunk-BNGYGCT2.js.map +1 -0
- package/dist/{chunk-TH537HOM.js → chunk-C6EWA3H2.js} +6 -6
- package/dist/{chunk-TH537HOM.js.map → chunk-C6EWA3H2.js.map} +1 -1
- package/dist/{chunk-2F5TDBRT.cjs → chunk-CABYRYVA.cjs} +8 -8
- package/dist/{chunk-2F5TDBRT.cjs.map → chunk-CABYRYVA.cjs.map} +1 -1
- package/dist/{chunk-7CTHD4G6.cjs → chunk-CNDUYO7I.cjs} +5 -5
- package/dist/{chunk-7CTHD4G6.cjs.map → chunk-CNDUYO7I.cjs.map} +1 -1
- package/dist/{chunk-3VJIUZAY.cjs → chunk-CVT7JW6C.cjs} +16 -25
- package/dist/chunk-CVT7JW6C.cjs.map +1 -0
- package/dist/{chunk-GSTINE4X.js → chunk-CZUMVOPH.js} +1771 -575
- package/dist/chunk-CZUMVOPH.js.map +1 -0
- package/dist/{chunk-MGJLBHPJ.js → chunk-DAO4UXR4.js} +4 -4
- package/dist/{chunk-MGJLBHPJ.js.map → chunk-DAO4UXR4.js.map} +1 -1
- package/dist/{chunk-HWD4HDQ5.cjs → chunk-DFEAB7Z3.cjs} +10 -10
- package/dist/{chunk-HWD4HDQ5.cjs.map → chunk-DFEAB7Z3.cjs.map} +1 -1
- package/dist/{chunk-GY2ZZR4Z.cjs → chunk-DK6USFZP.cjs} +18 -18
- package/dist/{chunk-GY2ZZR4Z.cjs.map → chunk-DK6USFZP.cjs.map} +1 -1
- package/dist/{chunk-WPMWHKJX.js → chunk-DPSAPA6B.js} +5 -5
- package/dist/{chunk-WPMWHKJX.js.map → chunk-DPSAPA6B.js.map} +1 -1
- package/dist/{chunk-AV7D3SXF.js → chunk-DWZR2AGT.js} +4 -4
- package/dist/{chunk-AV7D3SXF.js.map → chunk-DWZR2AGT.js.map} +1 -1
- package/dist/{chunk-2RZNX26F.cjs → chunk-DXUFDJHA.cjs} +12 -13
- package/dist/chunk-DXUFDJHA.cjs.map +1 -0
- package/dist/{chunk-67UUGI3M.cjs → chunk-DYMZ4DLN.cjs} +8 -8
- package/dist/{chunk-67UUGI3M.cjs.map → chunk-DYMZ4DLN.cjs.map} +1 -1
- package/dist/{chunk-JM4Q7ZQH.cjs → chunk-EEOUWM2F.cjs} +8 -8
- package/dist/chunk-EEOUWM2F.cjs.map +1 -0
- package/dist/{chunk-KC4EKXGF.js → chunk-EIJSWHG7.js} +9 -10
- package/dist/chunk-EIJSWHG7.js.map +1 -0
- package/dist/{chunk-FCUUGJTM.cjs → chunk-ENVDR66N.cjs} +132 -160
- package/dist/chunk-ENVDR66N.cjs.map +1 -0
- package/dist/{chunk-J2YKUHQM.js → chunk-ERVWZILR.js} +14 -23
- package/dist/chunk-ERVWZILR.js.map +1 -0
- package/dist/{chunk-IX26TMZD.cjs → chunk-EVCQCZMM.cjs} +5 -5
- package/dist/{chunk-IX26TMZD.cjs.map → chunk-EVCQCZMM.cjs.map} +1 -1
- package/dist/{chunk-E42WOTIC.js → chunk-FIOCTAXT.js} +3 -3
- package/dist/{chunk-E42WOTIC.js.map → chunk-FIOCTAXT.js.map} +1 -1
- package/dist/{chunk-LW3DJOF4.cjs → chunk-FLDTPAG4.cjs} +6 -6
- package/dist/{chunk-LW3DJOF4.cjs.map → chunk-FLDTPAG4.cjs.map} +1 -1
- package/dist/{chunk-XHJRAEGW.js → chunk-FQN22DO5.js} +5 -5
- package/dist/{chunk-XHJRAEGW.js.map → chunk-FQN22DO5.js.map} +1 -1
- package/dist/{chunk-XPGIWOJO.cjs → chunk-FWBYCTUB.cjs} +18 -18
- package/dist/chunk-FWBYCTUB.cjs.map +1 -0
- package/dist/{chunk-UXGHFKLA.js → chunk-G5PU2EL2.js} +4 -4
- package/dist/{chunk-UXGHFKLA.js.map → chunk-G5PU2EL2.js.map} +1 -1
- package/dist/{chunk-UXQSSRBQ.cjs → chunk-GJKRSQEA.cjs} +1781 -581
- package/dist/chunk-GJKRSQEA.cjs.map +1 -0
- package/dist/{chunk-JSAYTQTJ.cjs → chunk-GJZAGTPV.cjs} +7 -7
- package/dist/chunk-GJZAGTPV.cjs.map +1 -0
- package/dist/{chunk-BSI4BQEX.cjs → chunk-GU65FGY6.cjs} +4 -4
- package/dist/{chunk-BSI4BQEX.cjs.map → chunk-GU65FGY6.cjs.map} +1 -1
- package/dist/{chunk-W5F7PYT2.js → chunk-GUUCIG7U.js} +6 -6
- package/dist/{chunk-W5F7PYT2.js.map → chunk-GUUCIG7U.js.map} +1 -1
- package/dist/{chunk-XZZI3JYK.cjs → chunk-H5VMHDRD.cjs} +6 -6
- package/dist/{chunk-XZZI3JYK.cjs.map → chunk-H5VMHDRD.cjs.map} +1 -1
- package/dist/{chunk-ZPJW3PP7.cjs → chunk-H7VK36SZ.cjs} +16 -9
- package/dist/chunk-H7VK36SZ.cjs.map +1 -0
- package/dist/{chunk-2Y7ULSEU.js → chunk-HKGFMJFK.js} +17 -17
- package/dist/{chunk-2Y7ULSEU.js.map → chunk-HKGFMJFK.js.map} +1 -1
- package/dist/{chunk-THTVYP5V.js → chunk-HMJINNXZ.js} +21 -32
- package/dist/chunk-HMJINNXZ.js.map +1 -0
- package/dist/{chunk-VV72PGKH.cjs → chunk-HPOURAKV.cjs} +27 -27
- package/dist/chunk-HPOURAKV.cjs.map +1 -0
- package/dist/{chunk-I2NG2P5K.cjs → chunk-INQ34SVW.cjs} +5 -5
- package/dist/{chunk-I2NG2P5K.cjs.map → chunk-INQ34SVW.cjs.map} +1 -1
- package/dist/{chunk-D5OX6II7.cjs → chunk-IREOTHD3.cjs} +8 -8
- package/dist/chunk-IREOTHD3.cjs.map +1 -0
- package/dist/{chunk-GW6P4FJ4.cjs → chunk-ISWZQUVA.cjs} +25 -40
- package/dist/chunk-ISWZQUVA.cjs.map +1 -0
- package/dist/{chunk-J3X465QT.cjs → chunk-J4LJXCXB.cjs} +9 -9
- package/dist/{chunk-J3X465QT.cjs.map → chunk-J4LJXCXB.cjs.map} +1 -1
- package/dist/{chunk-PBQMHXVO.js → chunk-JC66FRQX.js} +3 -3
- package/dist/{chunk-PBQMHXVO.js.map → chunk-JC66FRQX.js.map} +1 -1
- package/dist/{chunk-S5CMLG2E.js → chunk-JHMUMJF3.js} +9 -5
- package/dist/chunk-JHMUMJF3.js.map +1 -0
- package/dist/{chunk-CUHJDV6K.js → chunk-JR353MN5.js} +6 -6
- package/dist/{chunk-CUHJDV6K.js.map → chunk-JR353MN5.js.map} +1 -1
- package/dist/{chunk-JS6MRT6M.js → chunk-K2V3IOAX.js} +4 -4
- package/dist/{chunk-JS6MRT6M.js.map → chunk-K2V3IOAX.js.map} +1 -1
- package/dist/{chunk-VH3G4IUX.js → chunk-K2WT7A64.js} +12 -38
- package/dist/chunk-K2WT7A64.js.map +1 -0
- package/dist/{chunk-OERNLR2P.js → chunk-KCI4I42U.js} +8 -8
- package/dist/{chunk-OERNLR2P.js.map → chunk-KCI4I42U.js.map} +1 -1
- package/dist/{chunk-EBJPUXFQ.js → chunk-KEPCKSDE.js} +31 -11
- package/dist/chunk-KEPCKSDE.js.map +1 -0
- package/dist/{chunk-OF5NULAO.js → chunk-KG7RHDVX.js} +7 -7
- package/dist/{chunk-OF5NULAO.js.map → chunk-KG7RHDVX.js.map} +1 -1
- package/dist/{chunk-6PIVWNUR.js → chunk-KWZMXX4F.js} +5 -5
- package/dist/chunk-KWZMXX4F.js.map +1 -0
- package/dist/{chunk-DZZEJY3J.js → chunk-LDYUVGD4.js} +120 -148
- package/dist/chunk-LDYUVGD4.js.map +1 -0
- package/dist/{chunk-VD52FLHL.js → chunk-LF6I2B7G.js} +9 -9
- package/dist/{chunk-VD52FLHL.js.map → chunk-LF6I2B7G.js.map} +1 -1
- package/dist/{chunk-3IYM5MAC.js → chunk-LLSWAAFH.js} +4 -4
- package/dist/{chunk-3IYM5MAC.js.map → chunk-LLSWAAFH.js.map} +1 -1
- package/dist/{chunk-LBGC6EC5.js → chunk-M64WMYYV.js} +15 -15
- package/dist/chunk-M64WMYYV.js.map +1 -0
- package/dist/{chunk-3Z5PF75J.cjs → chunk-MHAXS4GO.cjs} +17 -19
- package/dist/chunk-MHAXS4GO.cjs.map +1 -0
- package/dist/{chunk-TKTCN4JE.cjs → chunk-MHEPDHL5.cjs} +9 -9
- package/dist/{chunk-TKTCN4JE.cjs.map → chunk-MHEPDHL5.cjs.map} +1 -1
- package/dist/{chunk-Z7OUMVR5.cjs → chunk-NFEL5GNX.cjs} +9 -9
- package/dist/{chunk-Z7OUMVR5.cjs.map → chunk-NFEL5GNX.cjs.map} +1 -1
- package/dist/{chunk-X4I5YARV.cjs → chunk-NG2H3PYA.cjs} +11 -11
- package/dist/{chunk-X4I5YARV.cjs.map → chunk-NG2H3PYA.cjs.map} +1 -1
- package/dist/{chunk-VO4FG3L2.cjs → chunk-NW36BN7N.cjs} +17 -17
- package/dist/{chunk-VO4FG3L2.cjs.map → chunk-NW36BN7N.cjs.map} +1 -1
- package/dist/{chunk-RJEZBOSH.js → chunk-NXTDP6AX.js} +12 -14
- package/dist/chunk-NXTDP6AX.js.map +1 -0
- package/dist/{chunk-N77K3NQY.cjs → chunk-P5LMEANN.cjs} +7 -7
- package/dist/{chunk-N77K3NQY.cjs.map → chunk-P5LMEANN.cjs.map} +1 -1
- package/dist/{chunk-4HXNBLCJ.js → chunk-P7TSM63O.js} +3 -3
- package/dist/{chunk-4HXNBLCJ.js.map → chunk-P7TSM63O.js.map} +1 -1
- package/dist/chunk-PG4CZRTU.js +77 -0
- package/dist/chunk-PG4CZRTU.js.map +1 -0
- package/dist/{chunk-SUT35RHA.cjs → chunk-PHFJBQXU.cjs} +8 -8
- package/dist/{chunk-SUT35RHA.cjs.map → chunk-PHFJBQXU.cjs.map} +1 -1
- package/dist/{chunk-YJEX32HZ.cjs → chunk-PNM7MPUX.cjs} +8 -8
- package/dist/{chunk-YJEX32HZ.cjs.map → chunk-PNM7MPUX.cjs.map} +1 -1
- package/dist/{chunk-MEXR5ONE.js → chunk-PU4PBI3H.js} +5 -5
- package/dist/{chunk-MEXR5ONE.js.map → chunk-PU4PBI3H.js.map} +1 -1
- package/dist/{chunk-2GMDMZKI.cjs → chunk-PYJX2SBC.cjs} +5 -5
- package/dist/{chunk-2GMDMZKI.cjs.map → chunk-PYJX2SBC.cjs.map} +1 -1
- package/dist/{chunk-U5M4JZBX.js → chunk-PYN75QAG.js} +6 -6
- package/dist/chunk-PYN75QAG.js.map +1 -0
- package/dist/{chunk-2VAUVJVG.js → chunk-QHXI2QDK.js} +3 -3
- package/dist/{chunk-2VAUVJVG.js.map → chunk-QHXI2QDK.js.map} +1 -1
- package/dist/{chunk-RRXOSNCX.cjs → chunk-QTOFQB26.cjs} +11 -11
- package/dist/{chunk-RRXOSNCX.cjs.map → chunk-QTOFQB26.cjs.map} +1 -1
- package/dist/{chunk-DV4K35UC.cjs → chunk-QYZXTIB2.cjs} +4 -4
- package/dist/{chunk-DV4K35UC.cjs.map → chunk-QYZXTIB2.cjs.map} +1 -1
- package/dist/{chunk-FFF57VHO.cjs → chunk-R3ZS6FU6.cjs} +8 -8
- package/dist/{chunk-FFF57VHO.cjs.map → chunk-R3ZS6FU6.cjs.map} +1 -1
- package/dist/{chunk-L5JS6P62.cjs → chunk-RAMDISDK.cjs} +14 -10
- package/dist/chunk-RAMDISDK.cjs.map +1 -0
- package/dist/{chunk-SUWRSJAN.cjs → chunk-RLIBY7XB.cjs} +16 -11
- package/dist/chunk-RLIBY7XB.cjs.map +1 -0
- package/dist/{chunk-I47WOF6E.js → chunk-RU7JPU7V.js} +3 -3
- package/dist/{chunk-I47WOF6E.js.map → chunk-RU7JPU7V.js.map} +1 -1
- package/dist/{chunk-HNDDNW52.js → chunk-RXKDRZF3.js} +3 -3
- package/dist/{chunk-HNDDNW52.js.map → chunk-RXKDRZF3.js.map} +1 -1
- package/dist/{chunk-EFBSEJBD.js → chunk-S4WWBV4N.js} +22 -47
- package/dist/chunk-S4WWBV4N.js.map +1 -0
- package/dist/{chunk-6J326CN6.js → chunk-SEDUAMDW.js} +4 -4
- package/dist/{chunk-6J326CN6.js.map → chunk-SEDUAMDW.js.map} +1 -1
- package/dist/{chunk-TSKFGLGQ.cjs → chunk-SKZNSOB7.cjs} +18 -27
- package/dist/chunk-SKZNSOB7.cjs.map +1 -0
- package/dist/{chunk-YDNEAHVK.cjs → chunk-TNYAYXKC.cjs} +37 -37
- package/dist/{chunk-YDNEAHVK.cjs.map → chunk-TNYAYXKC.cjs.map} +1 -1
- package/dist/{chunk-JJNXQ7EL.js → chunk-TQDJVPHP.js} +3 -3
- package/dist/{chunk-JJNXQ7EL.js.map → chunk-TQDJVPHP.js.map} +1 -1
- package/dist/{chunk-MEUELWGO.cjs → chunk-TVWU4XBL.cjs} +8 -8
- package/dist/{chunk-MEUELWGO.cjs.map → chunk-TVWU4XBL.cjs.map} +1 -1
- package/dist/{chunk-HWP2UGOC.cjs → chunk-U4L75VA4.cjs} +126 -105
- package/dist/chunk-U4L75VA4.cjs.map +1 -0
- package/dist/{chunk-6DAZ2ZOW.cjs → chunk-U5HW5P7Q.cjs} +11 -11
- package/dist/{chunk-6DAZ2ZOW.cjs.map → chunk-U5HW5P7Q.cjs.map} +1 -1
- package/dist/{chunk-R4DGCQTA.cjs → chunk-UMS46KF4.cjs} +7 -7
- package/dist/{chunk-R4DGCQTA.cjs.map → chunk-UMS46KF4.cjs.map} +1 -1
- package/dist/{chunk-75KSHZTV.js → chunk-UT45YVPI.js} +7 -7
- package/dist/{chunk-75KSHZTV.js.map → chunk-UT45YVPI.js.map} +1 -1
- package/dist/{chunk-LKGHYNLH.js → chunk-UYZQGHFI.js} +10 -10
- package/dist/chunk-UYZQGHFI.js.map +1 -0
- package/dist/{chunk-IGJEZLHP.cjs → chunk-UZGPFPIV.cjs} +17 -17
- package/dist/{chunk-IGJEZLHP.cjs.map → chunk-UZGPFPIV.cjs.map} +1 -1
- package/dist/{chunk-Q4HAXT5C.cjs → chunk-VK7DXUGH.cjs} +31 -11
- package/dist/chunk-VK7DXUGH.cjs.map +1 -0
- package/dist/chunk-VPWNRWNO.cjs +81 -0
- package/dist/chunk-VPWNRWNO.cjs.map +1 -0
- package/dist/{chunk-K4K4FU3D.cjs → chunk-VREW3BK6.cjs} +11 -11
- package/dist/{chunk-K4K4FU3D.cjs.map → chunk-VREW3BK6.cjs.map} +1 -1
- package/dist/{chunk-ANACERIO.cjs → chunk-VRQ66IBW.cjs} +6 -6
- package/dist/{chunk-ANACERIO.cjs.map → chunk-VRQ66IBW.cjs.map} +1 -1
- package/dist/{chunk-HXIU3SIQ.cjs → chunk-VW52NVGM.cjs} +5 -5
- package/dist/{chunk-HXIU3SIQ.cjs.map → chunk-VW52NVGM.cjs.map} +1 -1
- package/dist/{chunk-5XMWGK3O.cjs → chunk-VXOIOPGZ.cjs} +25 -36
- package/dist/chunk-VXOIOPGZ.cjs.map +1 -0
- package/dist/{chunk-4RDA4W4N.js → chunk-WAWHHXSR.js} +23 -7
- package/dist/chunk-WAWHHXSR.js.map +1 -0
- package/dist/{chunk-65MJZYO6.js → chunk-WEXTGWRE.js} +14 -29
- package/dist/chunk-WEXTGWRE.js.map +1 -0
- package/dist/{chunk-ECDYAZ2R.js → chunk-WHDDBOJN.js} +5 -5
- package/dist/{chunk-ECDYAZ2R.js.map → chunk-WHDDBOJN.js.map} +1 -1
- package/dist/{chunk-ESRDHDYN.cjs → chunk-WINDLDH3.cjs} +9 -9
- package/dist/{chunk-ESRDHDYN.cjs.map → chunk-WINDLDH3.cjs.map} +1 -1
- package/dist/{chunk-ADSG24VE.js → chunk-WM7NEOME.js} +6 -6
- package/dist/{chunk-ADSG24VE.js.map → chunk-WM7NEOME.js.map} +1 -1
- package/dist/{chunk-H4L456EW.js → chunk-XTLNUYCK.js} +12 -5
- package/dist/chunk-XTLNUYCK.js.map +1 -0
- package/dist/{chunk-QO5C7TIV.js → chunk-ZSB43DEI.js} +5 -5
- package/dist/{chunk-QO5C7TIV.js.map → chunk-ZSB43DEI.js.map} +1 -1
- package/dist/{chunk-V4ZH2H2P.cjs → chunk-ZUAWNT66.cjs} +14 -14
- package/dist/{chunk-V4ZH2H2P.cjs.map → chunk-ZUAWNT66.cjs.map} +1 -1
- package/dist/components/Alert/index.cjs +10 -8
- package/dist/components/Alert/index.js +9 -7
- package/dist/components/AlertDialog/index.cjs +12 -10
- package/dist/components/AlertDialog/index.js +10 -8
- package/dist/components/AppShell/index.cjs +18 -15
- package/dist/components/AppShell/index.js +15 -12
- package/dist/components/AutocompleteInput/index.cjs +17 -14
- package/dist/components/AutocompleteInput/index.js +13 -10
- package/dist/components/Breadcrumbs/BreadcrumbItem.d.ts.map +1 -1
- package/dist/components/Breadcrumbs/index.cjs +5 -10
- package/dist/components/Breadcrumbs/index.js +2 -7
- package/dist/components/Button/Button.d.ts +5 -3
- package/dist/components/Button/Button.d.ts.map +1 -1
- package/dist/components/Button/index.cjs +9 -7
- package/dist/components/Button/index.js +8 -6
- package/dist/components/Calendar/index.cjs +10 -8
- package/dist/components/Calendar/index.js +9 -7
- package/dist/components/CheckboxInput/index.cjs +9 -8
- package/dist/components/CheckboxInput/index.js +8 -7
- package/dist/components/CodeBlock/index.cjs +10 -8
- package/dist/components/CodeBlock/index.js +9 -7
- package/dist/components/ContextMenu/index.cjs +14 -12
- package/dist/components/ContextMenu/index.js +12 -10
- package/dist/components/DateInput/index.cjs +13 -11
- package/dist/components/DateInput/index.js +12 -10
- package/dist/components/DateRangeInput/index.cjs +13 -11
- package/dist/components/DateRangeInput/index.js +12 -10
- package/dist/components/DateTimeInput/index.cjs +15 -13
- package/dist/components/DateTimeInput/index.js +14 -12
- package/dist/components/DropdownMenu/index.cjs +15 -13
- package/dist/components/DropdownMenu/index.js +11 -9
- 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/index.cjs +11 -9
- package/dist/components/FileInput/index.js +10 -8
- package/dist/components/HoverCard/HoverCard.d.ts +6 -6
- 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/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 -8
- package/dist/components/Item/index.js +6 -7
- package/dist/components/Layout/Layout.recipe.d.ts +17 -0
- package/dist/components/Layout/Layout.recipe.d.ts.map +1 -1
- package/dist/components/Layout/LayoutHeader.d.ts +6 -1
- package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/components/Layout/index.cjs +14 -12
- package/dist/components/Layout/index.js +9 -7
- package/dist/components/Lightbox/index.cjs +11 -9
- package/dist/components/Lightbox/index.js +9 -7
- package/dist/components/Link/Link.d.ts +4 -5
- package/dist/components/Link/Link.d.ts.map +1 -1
- package/dist/components/Link/Link.recipe.d.ts.map +1 -1
- package/dist/components/Link/index.cjs +9 -6
- package/dist/components/Link/index.js +6 -3
- package/dist/components/List/index.cjs +9 -10
- package/dist/components/List/index.js +7 -8
- package/dist/components/MetadataList/MetadataList.recipe.d.ts +9 -1
- package/dist/components/MetadataList/MetadataList.recipe.d.ts.map +1 -1
- package/dist/components/MetadataList/MetadataListItem.d.ts +6 -1
- package/dist/components/MetadataList/MetadataListItem.d.ts.map +1 -1
- package/dist/components/MetadataList/index.cjs +9 -6
- package/dist/components/MetadataList/index.js +7 -4
- package/dist/components/MultiSelect/index.cjs +13 -11
- package/dist/components/MultiSelect/index.js +12 -10
- package/dist/components/NumberInput/index.cjs +12 -10
- package/dist/components/NumberInput/index.js +11 -9
- package/dist/components/Pagination/index.cjs +10 -8
- package/dist/components/Pagination/index.js +9 -7
- package/dist/components/PasswordInput/index.cjs +13 -11
- package/dist/components/PasswordInput/index.js +12 -10
- package/dist/components/Popover/Popover.d.ts +13 -1
- package/dist/components/Popover/Popover.d.ts.map +1 -1
- package/dist/components/Popover/index.cjs +11 -9
- package/dist/components/Popover/index.js +9 -7
- package/dist/components/RadioGroup/index.cjs +10 -9
- package/dist/components/RadioGroup/index.js +8 -7
- package/dist/components/Schedule/CalendarEvent.d.ts +18 -4
- package/dist/components/Schedule/CalendarEvent.d.ts.map +1 -1
- package/dist/components/Schedule/DayView.d.ts +7 -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/ListView.recipe.d.ts +56 -0
- package/dist/components/Schedule/ListView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/MonthlyView.d.ts.map +1 -1
- package/dist/components/Schedule/MonthlyView.recipe.d.ts +47 -0
- package/dist/components/Schedule/MonthlyView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/ScheduleEvent.recipe.d.ts +17 -0
- package/dist/components/Schedule/ScheduleEvent.recipe.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.d.ts +7 -1
- package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
- package/dist/components/Schedule/TimeGridView.recipe.d.ts +43 -0
- package/dist/components/Schedule/TimeGridView.recipe.d.ts.map +1 -0
- package/dist/components/Schedule/WeeklyView.d.ts +7 -1
- package/dist/components/Schedule/WeeklyView.d.ts.map +1 -1
- package/dist/components/Schedule/index.cjs +44 -21
- package/dist/components/Schedule/index.d.ts +6 -2
- package/dist/components/Schedule/index.d.ts.map +1 -1
- package/dist/components/Schedule/index.js +17 -10
- package/dist/components/Schedule/plugins/EventMovePlugin.d.ts +23 -0
- package/dist/components/Schedule/plugins/EventMovePlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts +31 -0
- package/dist/components/Schedule/plugins/EventPopoverPlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/EventResizePlugin.d.ts +24 -0
- package/dist/components/Schedule/plugins/EventResizePlugin.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts +39 -0
- package/dist/components/Schedule/plugins/ScheduleEventPopoverContent.d.ts.map +1 -0
- package/dist/components/Schedule/plugins/index.d.ts +4 -0
- package/dist/components/Schedule/plugins/index.d.ts.map +1 -1
- package/dist/components/Schedule/shared.d.ts +58 -3
- package/dist/components/Schedule/shared.d.ts.map +1 -1
- package/dist/components/Schedule/types.d.ts +47 -1
- package/dist/components/Schedule/types.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.d.ts.map +1 -1
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts +4 -0
- package/dist/components/SearchFilterInput/SearchFilterInputEditPopover.recipe.d.ts.map +1 -0
- package/dist/components/SearchFilterInput/index.cjs +32 -29
- package/dist/components/SearchFilterInput/index.js +24 -21
- package/dist/components/Select/index.cjs +15 -13
- package/dist/components/Select/index.js +13 -11
- package/dist/components/SideNav/SideNav.d.ts.map +1 -1
- package/dist/components/SideNav/SideNav.recipe.d.ts +26 -7
- package/dist/components/SideNav/SideNav.recipe.d.ts.map +1 -1
- package/dist/components/SideNav/SideNavItem.d.ts.map +1 -1
- package/dist/components/SideNav/index.cjs +18 -15
- package/dist/components/SideNav/index.js +12 -9
- 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/index.cjs +13 -11
- package/dist/components/SplitButton/index.js +12 -10
- package/dist/components/Stepper/index.cjs +5 -5
- package/dist/components/Stepper/index.js +4 -4
- package/dist/components/Switch/index.cjs +6 -6
- package/dist/components/Switch/index.js +5 -5
- package/dist/components/Table/index.cjs +54 -51
- package/dist/components/Table/index.js +28 -25
- package/dist/components/Tabs/Tab.d.ts.map +1 -1
- package/dist/components/Tabs/index.cjs +15 -13
- package/dist/components/Tabs/index.js +10 -8
- package/dist/components/Tag/Tag.d.ts.map +1 -1
- package/dist/components/Tag/index.cjs +8 -5
- package/dist/components/Tag/index.js +7 -4
- package/dist/components/TagsInput/index.cjs +15 -12
- package/dist/components/TagsInput/index.js +14 -11
- package/dist/components/Text/Heading.d.ts +5 -5
- package/dist/components/Text/Heading.d.ts.map +1 -1
- package/dist/components/Text/Text.d.ts +5 -5
- 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/TextArea/index.cjs +7 -7
- package/dist/components/TextArea/index.js +6 -6
- package/dist/components/TextInput/index.cjs +12 -10
- package/dist/components/TextInput/index.js +11 -9
- package/dist/components/Thumbnail/index.cjs +10 -8
- package/dist/components/Thumbnail/index.js +9 -7
- package/dist/components/TimeInput/index.cjs +11 -9
- package/dist/components/TimeInput/index.js +10 -8
- package/dist/components/Toast/index.cjs +12 -10
- package/dist/components/Toast/index.js +9 -7
- package/dist/components/ToggleButton/ToggleButton.recipe.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 +6 -6
- 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/TopNav/TopNavItem.d.ts.map +1 -1
- package/dist/components/TopNav/index.cjs +16 -13
- package/dist/components/TopNav/index.js +11 -8
- package/dist/components/TreeView/TreeViewItem.d.ts.map +1 -1
- package/dist/components/TreeView/index.cjs +3 -2
- package/dist/components/TreeView/index.js +2 -1
- package/dist/index.cjs +233 -214
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -57
- package/dist/index.js.map +1 -1
- package/dist/internal/ActionElement.d.ts +45 -0
- package/dist/internal/ActionElement.d.ts.map +1 -0
- package/dist/internal/HoverLayerTrigger.d.ts +3 -4
- package/dist/internal/HoverLayerTrigger.d.ts.map +1 -1
- package/dist/internal/useLayer.d.ts +12 -0
- package/dist/internal/useLayer.d.ts.map +1 -1
- package/dist/internal/useSelectListbox.d.ts +5 -5
- package/dist/internal/useSelectListbox.d.ts.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-2AWSJF22.js.map +0 -1
- package/dist/chunk-2RZNX26F.cjs.map +0 -1
- package/dist/chunk-3VJIUZAY.cjs.map +0 -1
- package/dist/chunk-3Z5PF75J.cjs.map +0 -1
- package/dist/chunk-4RDA4W4N.js.map +0 -1
- package/dist/chunk-5XMWGK3O.cjs.map +0 -1
- package/dist/chunk-65MJZYO6.js.map +0 -1
- package/dist/chunk-6EYLEVC6.js.map +0 -1
- package/dist/chunk-6PIVWNUR.js.map +0 -1
- package/dist/chunk-AEYJ6PWC.js.map +0 -1
- package/dist/chunk-BIJ6YDWJ.cjs.map +0 -1
- package/dist/chunk-D5OX6II7.cjs.map +0 -1
- package/dist/chunk-DZZEJY3J.js.map +0 -1
- package/dist/chunk-EBJPUXFQ.js.map +0 -1
- package/dist/chunk-EFBSEJBD.js.map +0 -1
- package/dist/chunk-F7BFO3SD.cjs.map +0 -1
- package/dist/chunk-FCUUGJTM.cjs.map +0 -1
- package/dist/chunk-GSTINE4X.js.map +0 -1
- package/dist/chunk-GW6P4FJ4.cjs.map +0 -1
- package/dist/chunk-H4L456EW.js.map +0 -1
- package/dist/chunk-HWP2UGOC.cjs.map +0 -1
- package/dist/chunk-J2YKUHQM.js.map +0 -1
- package/dist/chunk-JM4Q7ZQH.cjs.map +0 -1
- package/dist/chunk-JSAYTQTJ.cjs.map +0 -1
- package/dist/chunk-KC4EKXGF.js.map +0 -1
- package/dist/chunk-L5JS6P62.cjs.map +0 -1
- package/dist/chunk-L5PJCLV6.js.map +0 -1
- package/dist/chunk-LBGC6EC5.js.map +0 -1
- package/dist/chunk-LKGHYNLH.js.map +0 -1
- package/dist/chunk-OUZX7STE.cjs.map +0 -1
- package/dist/chunk-Q3HMGFGI.js.map +0 -1
- package/dist/chunk-Q4HAXT5C.cjs.map +0 -1
- package/dist/chunk-RJEZBOSH.js.map +0 -1
- package/dist/chunk-S5CMLG2E.js.map +0 -1
- package/dist/chunk-SUWRSJAN.cjs.map +0 -1
- package/dist/chunk-THTVYP5V.js.map +0 -1
- package/dist/chunk-TSKFGLGQ.cjs.map +0 -1
- package/dist/chunk-TTDNCN5G.cjs.map +0 -1
- package/dist/chunk-U5M4JZBX.js.map +0 -1
- package/dist/chunk-UXQSSRBQ.cjs.map +0 -1
- package/dist/chunk-VH3G4IUX.js.map +0 -1
- package/dist/chunk-VV72PGKH.cjs.map +0 -1
- package/dist/chunk-XPGIWOJO.cjs.map +0 -1
- package/dist/chunk-ZPJW3PP7.cjs.map +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var chunkOUZX7STE_cjs = require('./chunk-OUZX7STE.cjs');
|
|
3
|
+
var chunkRAMDISDK_cjs = require('./chunk-RAMDISDK.cjs');
|
|
5
4
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
5
|
+
var chunkVPWNRWNO_cjs = require('./chunk-VPWNRWNO.cjs');
|
|
6
6
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
7
7
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
8
8
|
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
@@ -169,7 +169,6 @@ function Tab({
|
|
|
169
169
|
value
|
|
170
170
|
}) {
|
|
171
171
|
const context = useTabsContext();
|
|
172
|
-
const LinkComponent = chunkOUZX7STE_cjs.useLinkComponent(as);
|
|
173
172
|
const isSelected = context.value === value;
|
|
174
173
|
const displayIcon = isSelected && selectedIcon != null ? selectedIcon : icon;
|
|
175
174
|
const classes = tabsRecipe({
|
|
@@ -187,49 +186,24 @@ function Tab({
|
|
|
187
186
|
] }),
|
|
188
187
|
chunkQAO6QMNQ_cjs.isReactNode(endContent) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.endContent, children: endContent }) : null
|
|
189
188
|
] });
|
|
190
|
-
if (href != null) {
|
|
191
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
192
|
-
LinkComponent,
|
|
193
|
-
{
|
|
194
|
-
"aria-controls": controls,
|
|
195
|
-
"aria-disabled": isDisabled || void 0,
|
|
196
|
-
"aria-selected": isSelected,
|
|
197
|
-
className: rootClassName,
|
|
198
|
-
"data-tab-disabled": isDisabled ? "true" : void 0,
|
|
199
|
-
"data-tab-value": isDisabled ? void 0 : value,
|
|
200
|
-
"data-testid": dataTestId,
|
|
201
|
-
href,
|
|
202
|
-
id,
|
|
203
|
-
onClick: (event) => {
|
|
204
|
-
if (isDisabled) {
|
|
205
|
-
event.preventDefault();
|
|
206
|
-
return;
|
|
207
|
-
}
|
|
208
|
-
context.onChange(value);
|
|
209
|
-
},
|
|
210
|
-
ref,
|
|
211
|
-
role: "tab",
|
|
212
|
-
style,
|
|
213
|
-
tabIndex: isSelected && !isDisabled ? 0 : -1,
|
|
214
|
-
to: LinkComponent === "a" ? void 0 : href,
|
|
215
|
-
children: content
|
|
216
|
-
}
|
|
217
|
-
);
|
|
218
|
-
}
|
|
219
189
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
220
|
-
|
|
190
|
+
chunkVPWNRWNO_cjs.ActionElement,
|
|
221
191
|
{
|
|
222
192
|
"aria-controls": controls,
|
|
223
|
-
"aria-disabled": isDisabled
|
|
193
|
+
"aria-disabled": href != null && isDisabled ? true : void 0,
|
|
224
194
|
"aria-selected": isSelected,
|
|
195
|
+
as,
|
|
225
196
|
className: rootClassName,
|
|
226
197
|
"data-tab-disabled": isDisabled ? "true" : void 0,
|
|
227
198
|
"data-tab-value": isDisabled ? void 0 : value,
|
|
228
199
|
"data-testid": dataTestId,
|
|
229
|
-
|
|
200
|
+
href,
|
|
230
201
|
id,
|
|
231
|
-
|
|
202
|
+
isDisabled: href == null ? isDisabled : void 0,
|
|
203
|
+
isLink: href != null,
|
|
204
|
+
onClick: (event) => {
|
|
232
205
|
if (isDisabled) {
|
|
206
|
+
event.preventDefault();
|
|
233
207
|
return;
|
|
234
208
|
}
|
|
235
209
|
context.onChange(value);
|
|
@@ -440,7 +414,7 @@ function TabMenu({
|
|
|
440
414
|
focusMenuItem(event, nextIndex);
|
|
441
415
|
};
|
|
442
416
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
443
|
-
|
|
417
|
+
chunkRAMDISDK_cjs.Popover,
|
|
444
418
|
{
|
|
445
419
|
content: /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes.menu, children: options.map((option) => {
|
|
446
420
|
const isSelected = option.value === context.value;
|
|
@@ -513,5 +487,5 @@ exports.TabMenu = TabMenu;
|
|
|
513
487
|
exports.Tabs = Tabs;
|
|
514
488
|
exports.TabsContext = TabsContext;
|
|
515
489
|
exports.useTabsContext = useTabsContext;
|
|
516
|
-
//# sourceMappingURL=chunk-
|
|
517
|
-
//# sourceMappingURL=chunk-
|
|
490
|
+
//# sourceMappingURL=chunk-5JROXZBG.cjs.map
|
|
491
|
+
//# sourceMappingURL=chunk-5JROXZBG.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Tabs/Tabs.recipe.ts","../src/components/Tabs/TabsContext.ts","../src/components/Tabs/Tab.tsx","../src/components/Tabs/Tabs.tsx","../src/components/Tabs/TabMenu.recipe.ts","../src/components/Tabs/TabMenu.tsx"],"names":["sva","createContext","use","cx","jsxs","Fragment","jsx","Icon","isReactNode","ActionElement","useMemo","useState","useRef","Popover","Check","mergeRefs","ChevronDown"],"mappings":"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","file":"chunk-5JROXZBG.cjs","sourcesContent":["import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const tabsRecipe = sva({\n slots: [\n 'root',\n 'tab',\n 'icon',\n 'label',\n 'labelText',\n 'labelSizer',\n 'endContent',\n ],\n base: {\n root: {\n display: 'flex',\n alignItems: 'stretch',\n maxW: 'full',\n minW: 0,\n },\n tab: {\n position: 'relative',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n gap: '1',\n mb: '-1px',\n px: '3',\n borderWidth: 0,\n borderBottomWidth: 'emphasized',\n borderBottomStyle: 'solid',\n borderBottomColor: 'transparent',\n bg: 'transparent',\n color: 'fg.muted',\n cursor: 'pointer',\n fontFamily: 'body',\n fontSize: 'md',\n fontWeight: 'normal',\n lineHeight: 'normal',\n textDecoration: 'none',\n whiteSpace: 'nowrap',\n transitionProperty: 'color, background-color, border-color',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {\n bg: 'bg.subtle',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n },\n icon: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n },\n label: {\n display: 'inline-grid',\n },\n labelText: {\n gridRowStart: 1,\n gridColumnStart: 1,\n },\n labelSizer: {\n gridRowStart: 1,\n gridColumnStart: 1,\n visibility: 'hidden',\n pointerEvents: 'none',\n fontWeight: 'semibold',\n },\n endContent: {\n display: 'inline-flex',\n alignItems: 'center',\n flexShrink: 0,\n },\n },\n variants: {\n size: {\n sm: {tab: {h: 'component.sm'}},\n md: {tab: {h: 'component.md'}},\n lg: {tab: {h: 'component.lg'}},\n },\n layout: {\n hug: {},\n fill: {\n root: {w: 'full'},\n tab: {flex: 1},\n },\n },\n isSelected: {\n true: {\n tab: {\n borderBottomColor: 'fg',\n color: 'fg',\n fontWeight: 'semibold',\n },\n },\n false: {},\n },\n isDisabled: {\n true: {\n tab: {\n color: 'fg.disabled',\n cursor: 'not-allowed',\n _hover: {\n bg: 'transparent',\n },\n },\n },\n false: {},\n },\n hasDivider: {\n true: {\n root: {\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n },\n false: {},\n },\n },\n defaultVariants: {\n size: 'md',\n layout: 'hug',\n isSelected: false,\n isDisabled: false,\n hasDivider: false,\n },\n});\n\nexport type TabsVariants = RecipeVariantProps<typeof tabsRecipe>;\n","import {createContext, use} from 'react';\n\nexport type TabsSize = 'lg' | 'md' | 'sm';\nexport type TabsLayout = 'fill' | 'hug';\n\nexport interface TabsContextValue {\n layout: TabsLayout;\n onChange: (value: string) => void;\n size: TabsSize;\n value: string;\n}\n\nexport const TabsContext = createContext<TabsContextValue | null>(null);\n\nTabsContext.displayName = 'TabsContext';\n\nexport function useTabsContext(): TabsContextValue {\n const context = use(TabsContext);\n if (context == null) {\n throw new Error('Tabs children must be used within a Tabs.');\n }\n return context;\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport type {LinkComponent} from 'components/Link';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {useTabsContext} from 'components/Tabs/TabsContext';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport interface TabProps {\n /**\n * Custom link component used when href is set.\n */\n as?: LinkComponent;\n /**\n * Additional CSS class names applied to the tab.\n */\n className?: string;\n /**\n * ID of the tabpanel controlled by this tab. Use this for in-page tabs, and\n * render the corresponding panel with `id={controls}`, `role=\"tabpanel\"`,\n * and `aria-labelledby` pointing to this tab's `id`.\n */\n controls?: string;\n /**\n * Test ID applied to the tab.\n */\n 'data-testid'?: string;\n /**\n * Content rendered after the label.\n */\n endContent?: ReactNode;\n /**\n * Optional link URL. When set, the tab renders as a link.\n */\n href?: string;\n /**\n * Icon shown before the label.\n */\n icon?: IconComponent;\n /**\n * ID applied to the tab element. Provide this with `controls` when rendering\n * your own tabpanel so the panel can reference the tab with\n * `aria-labelledby`.\n */\n id?: string;\n /**\n * Whether the tab is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Visible tab label.\n */\n label: string;\n /**\n * Ref forwarded to the tab root.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Icon shown when selected. Falls back to icon.\n */\n selectedIcon?: IconComponent;\n /**\n * Inline styles applied to the tab.\n */\n style?: CSSProperties;\n /**\n * Unique tab value.\n */\n value: string;\n}\n\n/**\n * A single tab inside `Tabs`.\n */\nexport function Tab({\n as,\n className,\n 'data-testid': dataTestId,\n controls,\n endContent,\n href,\n id,\n icon,\n isDisabled = false,\n label,\n ref,\n selectedIcon,\n style,\n value,\n}: TabProps): React.JSX.Element {\n const context = useTabsContext();\n const isSelected = context.value === value;\n const displayIcon = isSelected && selectedIcon != null ? selectedIcon : icon;\n const classes = tabsRecipe({\n size: context.size,\n layout: context.layout,\n isSelected,\n isDisabled,\n });\n const rootClassName = cx(classes.tab, className);\n const content = (\n <>\n {displayIcon != null ? (\n <span className={classes.icon}>\n <Icon icon={displayIcon} size={context.size} />\n </span>\n ) : null}\n <span className={classes.label}>\n <span className={classes.labelText}>{label}</span>\n <span aria-hidden=\"true\" className={classes.labelSizer}>\n {label}\n </span>\n </span>\n {isReactNode(endContent) ? (\n <span className={classes.endContent}>{endContent}</span>\n ) : null}\n </>\n );\n\n return (\n <ActionElement\n aria-controls={controls}\n aria-disabled={href != null && isDisabled ? true : undefined}\n aria-selected={isSelected}\n as={as}\n className={rootClassName}\n data-tab-disabled={isDisabled ? 'true' : undefined}\n data-tab-value={isDisabled ? undefined : value}\n data-testid={dataTestId}\n href={href}\n id={id}\n isDisabled={href == null ? isDisabled : undefined}\n isLink={href != null}\n onClick={event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n context.onChange(value);\n }}\n ref={ref}\n role=\"tab\"\n style={style}\n tabIndex={isSelected && !isDisabled ? 0 : -1}\n type=\"button\">\n {content}\n </ActionElement>\n );\n}\n\nTab.displayName = 'Tab';\n","import {\n useMemo,\n type CSSProperties,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {\n TabsContext,\n type TabsLayout,\n type TabsSize,\n} from 'components/Tabs/TabsContext';\nimport {cx} from 'internal/cx';\n\nexport interface TabsProps {\n /**\n * Tab and TabMenu children.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the tablist element.\n */\n className?: string;\n /**\n * Test ID applied to the tablist element.\n */\n 'data-testid'?: string;\n /**\n * Whether to show a bottom divider.\n * @default false\n */\n hasDivider?: boolean;\n /**\n * Accessible label for the tabs.\n * @default 'Tabs'\n */\n label?: string;\n /**\n * Tab layout mode.\n * @default 'hug'\n */\n layout?: TabsLayout;\n /**\n * Called when a tab is selected.\n */\n onChange: (value: string) => void;\n /**\n * Ref forwarded to the tablist element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Tab size.\n * @default 'md'\n */\n size?: TabsSize;\n /**\n * Inline styles applied to the tablist element.\n */\n style?: CSSProperties;\n /**\n * Current selected tab value.\n */\n value: string;\n}\n\n/**\n * Controlled tab wrapper.\n *\n * Uses `tablist` / `tabpanel` semantics, so reach for it when selecting an\n * option shows or hides associated content panels. To pick a value without\n * swapping panels — a styled radio group for filters, settings, or view modes —\n * use {@link SegmentedControl} instead.\n */\nexport function Tabs({\n children,\n className,\n 'data-testid': dataTestId,\n hasDivider = false,\n label = 'Tabs',\n layout = 'hug',\n onChange,\n ref,\n size = 'md',\n style,\n value,\n}: TabsProps): React.JSX.Element {\n const contextValue = useMemo(\n () => ({layout, onChange, size, value}),\n [layout, onChange, size, value],\n );\n const classes = tabsRecipe({hasDivider, layout});\n\n const handleKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n if (\n event.key !== 'ArrowLeft' &&\n event.key !== 'ArrowRight' &&\n event.key !== 'Home' &&\n event.key !== 'End'\n ) {\n return;\n }\n\n const activeTab = (event.target as HTMLElement).closest<HTMLElement>(\n '[role=\"tab\"]',\n );\n if (activeTab == null || !event.currentTarget.contains(activeTab)) {\n return;\n }\n\n const tabs = Array.from(\n event.currentTarget.querySelectorAll<HTMLElement>(\n '[role=\"tab\"]:not([data-tab-disabled=\"true\"])',\n ),\n );\n const currentIndex = tabs.indexOf(activeTab);\n if (currentIndex === -1) {\n return;\n }\n\n event.preventDefault();\n\n const nextIndex =\n event.key === 'Home'\n ? 0\n : event.key === 'End'\n ? tabs.length - 1\n : event.key === 'ArrowRight'\n ? (currentIndex + 1) % tabs.length\n : (currentIndex - 1 + tabs.length) % tabs.length;\n const nextTab = tabs[nextIndex];\n nextTab.focus();\n\n const nextValue = nextTab.dataset.tabValue;\n if (nextValue != null) {\n onChange(nextValue);\n }\n };\n\n return (\n <TabsContext value={contextValue}>\n <div\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n onKeyDown={handleKeyDown}\n ref={ref as Ref<HTMLDivElement>}\n role=\"tablist\"\n style={style}\n tabIndex={-1}>\n {children}\n </div>\n </TabsContext>\n );\n}\n\nTabs.displayName = 'Tabs';\n","import {sva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const tabMenuRecipe = sva({\n slots: ['chevron', 'menu', 'item', 'itemContent', 'itemIcon', 'check'],\n base: {\n chevron: {\n display: 'inline-flex',\n },\n menu: {\n display: 'flex',\n flexDirection: 'column',\n gap: '0.5',\n minW: '40',\n p: '1',\n },\n item: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n gap: '2',\n w: 'full',\n px: '2',\n py: '2',\n borderWidth: 0,\n borderRadius: 'md',\n bg: 'transparent',\n color: 'fg',\n cursor: 'pointer',\n fontFamily: 'body',\n textAlign: 'start',\n _hover: {bg: 'bg.subtle'},\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffsetTight',\n },\n },\n itemContent: {\n display: 'inline-flex',\n alignItems: 'center',\n gap: '2',\n minW: 0,\n },\n itemIcon: {\n display: 'inline-flex',\n color: 'fg.muted',\n },\n check: {\n display: 'inline-flex',\n color: 'primary',\n },\n },\n variants: {\n isOpen: {\n true: {chevron: {transform: 'rotate(180deg)'}},\n false: {},\n },\n isItemSelected: {\n true: {item: {fontWeight: 'medium'}},\n false: {},\n },\n },\n defaultVariants: {\n isOpen: false,\n isItemSelected: false,\n },\n});\n\nexport type TabMenuVariants = RecipeVariantProps<typeof tabMenuRecipe>;\n","import {Check, ChevronDown} from 'lucide-react';\nimport {\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type Ref,\n} from 'react';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {Popover} from 'components/Popover';\nimport {tabMenuRecipe} from 'components/Tabs/TabMenu.recipe';\nimport {tabsRecipe} from 'components/Tabs/Tabs.recipe';\nimport {useTabsContext} from 'components/Tabs/TabsContext';\nimport {cx} from 'internal/cx';\nimport {mergeRefs} from 'internal/mergeRefs';\n\nexport interface TabMenuOption {\n /**\n * Icon rendered before the option label.\n */\n icon?: IconComponent;\n /**\n * Visible option label.\n */\n label: string;\n /**\n * Tab value selected by this option.\n */\n value: string;\n}\n\nexport interface TabMenuProps {\n /**\n * Additional CSS class names applied to the trigger.\n */\n className?: string;\n /**\n * Test ID applied to the trigger.\n */\n 'data-testid'?: string;\n /**\n * ID applied to the menu trigger tab.\n */\n id?: string;\n /**\n * Whether the menu trigger is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Trigger and menu heading label.\n */\n label: string;\n /**\n * Menu options.\n */\n options: ReadonlyArray<TabMenuOption>;\n /**\n * Ref forwarded to the trigger button.\n */\n ref?: Ref<HTMLButtonElement>;\n /**\n * Inline styles applied to the trigger.\n */\n style?: CSSProperties;\n}\n\n/**\n * Overflow menu for additional tabs.\n */\nexport function TabMenu({\n className,\n 'data-testid': dataTestId,\n id,\n isDisabled = false,\n label,\n options,\n ref,\n style,\n}: TabMenuProps): React.JSX.Element {\n const context = useTabsContext();\n const [isOpen, setIsOpen] = useState(false);\n const triggerRef = useRef<HTMLButtonElement>(null);\n const selectedOption = options.find(option => option.value === context.value);\n const triggerLabel = selectedOption?.label ?? label;\n const hasSelectedOption = selectedOption != null;\n const triggerClasses = tabsRecipe({\n size: context.size,\n layout: context.layout,\n isSelected: hasSelectedOption,\n isDisabled,\n });\n const classes = tabMenuRecipe({isOpen});\n\n const focusMenuItem = (\n event: KeyboardEvent<HTMLElement>,\n nextIndex: number,\n ) => {\n const menu = event.currentTarget.closest<HTMLElement>('[role=\"menu\"]');\n const items = Array.from(\n menu?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? [],\n );\n items[nextIndex]?.focus();\n };\n\n const handleMenuKeyDown = (event: KeyboardEvent<HTMLElement>) => {\n const menu = event.currentTarget.closest<HTMLElement>('[role=\"menu\"]');\n const items = Array.from(\n menu?.querySelectorAll<HTMLButtonElement>('[role=\"menuitem\"]') ?? [],\n );\n const activeIndex = items.indexOf(\n document.activeElement as HTMLButtonElement,\n );\n\n if (event.key === 'Escape') {\n event.preventDefault();\n setIsOpen(false);\n triggerRef.current?.focus();\n return;\n }\n\n if (items.length === 0) {\n return;\n }\n\n if (event.key === 'Home') {\n event.preventDefault();\n focusMenuItem(event, 0);\n return;\n }\n\n if (event.key === 'End') {\n event.preventDefault();\n focusMenuItem(event, items.length - 1);\n return;\n }\n\n if (event.key !== 'ArrowDown' && event.key !== 'ArrowUp') {\n return;\n }\n\n event.preventDefault();\n\n const currentIndex = activeIndex === -1 ? 0 : activeIndex;\n const nextIndex =\n event.key === 'ArrowDown'\n ? (currentIndex + 1) % items.length\n : (currentIndex - 1 + items.length) % items.length;\n focusMenuItem(event, nextIndex);\n };\n\n return (\n <Popover\n content={\n <div className={classes.menu}>\n {options.map(option => {\n const isSelected = option.value === context.value;\n return (\n <button\n aria-current={isSelected ? 'true' : undefined}\n className={tabMenuRecipe({isItemSelected: isSelected}).item}\n key={option.value}\n onClick={() => {\n context.onChange(option.value);\n setIsOpen(false);\n }}\n onKeyDown={handleMenuKeyDown}\n role=\"menuitem\"\n type=\"button\">\n <span className={classes.itemContent}>\n {option.icon != null ? (\n <span className={classes.itemIcon}>\n <Icon color=\"secondary\" icon={option.icon} size=\"sm\" />\n </span>\n ) : null}\n {option.label}\n </span>\n {isSelected ? (\n <span className={classes.check}>\n <Icon color=\"accent\" icon={Check} size=\"sm\" />\n </span>\n ) : null}\n </button>\n );\n })}\n </div>\n }\n hasAutoFocus\n hasCloseButton={false}\n isEnabled={!isDisabled}\n isOpen={isOpen}\n label={label}\n onOpenChange={setIsOpen}\n role=\"menu\">\n <button\n aria-disabled={isDisabled || undefined}\n aria-selected={hasSelectedOption}\n className={cx(triggerClasses.tab, className)}\n data-tab-disabled={isDisabled ? 'true' : undefined}\n data-tab-value={\n hasSelectedOption && !isDisabled ? context.value : undefined\n }\n data-testid={dataTestId}\n disabled={isDisabled}\n id={id}\n onKeyDown={event => {\n if (event.key !== 'ArrowDown') {\n return;\n }\n\n event.preventDefault();\n setIsOpen(true);\n }}\n ref={mergeRefs(triggerRef, ref)}\n role=\"tab\"\n style={style}\n tabIndex={hasSelectedOption && !isDisabled ? 0 : -1}\n type=\"button\">\n {triggerLabel}\n <span className={classes.chevron}>\n <Icon icon={ChevronDown} size=\"sm\" />\n </span>\n </button>\n </Popover>\n );\n}\n\nTabMenu.displayName = 'TabMenu';\n"]}
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var chunk3PEK2Q54_cjs = require('./chunk-3PEK2Q54.cjs');
|
|
3
4
|
var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
|
|
4
|
-
var
|
|
5
|
+
var chunkGJZAGTPV_cjs = require('./chunk-GJZAGTPV.cjs');
|
|
6
|
+
var chunkVPWNRWNO_cjs = require('./chunk-VPWNRWNO.cjs');
|
|
5
7
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
6
8
|
var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
|
|
7
9
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
8
10
|
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
9
11
|
var lucideReact = require('lucide-react');
|
|
10
|
-
var react = require('react');
|
|
11
12
|
var jsxRuntime = require('react/jsx-runtime');
|
|
13
|
+
var react = require('react');
|
|
12
14
|
|
|
13
15
|
// src/components/Link/Link.recipe.ts
|
|
14
16
|
var linkRecipe = chunkJRBQKFVO_cjs.cva({
|
|
15
17
|
base: {
|
|
16
18
|
display: "inline-flex",
|
|
19
|
+
appearance: "none",
|
|
17
20
|
alignItems: "center",
|
|
21
|
+
padding: 0,
|
|
22
|
+
border: 0,
|
|
23
|
+
background: "none",
|
|
18
24
|
gap: "1",
|
|
19
25
|
fontFamily: "body",
|
|
20
26
|
fontWeight: "inherit",
|
|
21
27
|
lineHeight: "normal",
|
|
28
|
+
textAlign: "inherit",
|
|
22
29
|
textDecoration: "none",
|
|
23
30
|
cursor: "pointer",
|
|
24
31
|
transitionProperty: "color, text-decoration-color, opacity",
|
|
@@ -92,35 +99,6 @@ var linkRecipe = chunkJRBQKFVO_cjs.cva({
|
|
|
92
99
|
hasUnderline: false
|
|
93
100
|
}
|
|
94
101
|
});
|
|
95
|
-
var LinkContext = react.createContext(null);
|
|
96
|
-
LinkContext.displayName = "LinkContext";
|
|
97
|
-
|
|
98
|
-
// src/components/Link/useLinkComponent.ts
|
|
99
|
-
function useLinkComponent(as) {
|
|
100
|
-
const context = react.use(LinkContext);
|
|
101
|
-
return as ?? context?.component ?? "a";
|
|
102
|
-
}
|
|
103
|
-
function getAriaLabel(label, opensInNewTab) {
|
|
104
|
-
if (!opensInNewTab) {
|
|
105
|
-
return label;
|
|
106
|
-
}
|
|
107
|
-
return label != null ? `${label} (opens in new tab)` : void 0;
|
|
108
|
-
}
|
|
109
|
-
function useRel({
|
|
110
|
-
isExternalLink = false,
|
|
111
|
-
target,
|
|
112
|
-
rel
|
|
113
|
-
}) {
|
|
114
|
-
return react.useMemo(() => {
|
|
115
|
-
if (!isExternalLink && target !== "_blank") {
|
|
116
|
-
return rel;
|
|
117
|
-
}
|
|
118
|
-
const relValues = new Set((rel ?? "").split(/\s+/).filter(Boolean));
|
|
119
|
-
relValues.add("noopener");
|
|
120
|
-
relValues.add("noreferrer");
|
|
121
|
-
return Array.from(relValues).join(" ");
|
|
122
|
-
}, [isExternalLink, target, rel]);
|
|
123
|
-
}
|
|
124
102
|
function Link({
|
|
125
103
|
"aria-controls": ariaControls,
|
|
126
104
|
"aria-current": ariaCurrent,
|
|
@@ -153,12 +131,10 @@ function Link({
|
|
|
153
131
|
children,
|
|
154
132
|
onClick
|
|
155
133
|
}) {
|
|
156
|
-
const
|
|
157
|
-
const href = hrefFromProps ?? "#";
|
|
158
|
-
const isFallbackHref = hrefFromProps == null;
|
|
134
|
+
const renderAsLink = hrefFromProps != null;
|
|
159
135
|
const target = targetFromProps ?? (isExternalLink ? "_blank" : void 0);
|
|
160
|
-
const opensInNewTab = target === "_blank";
|
|
161
|
-
const rel = useRel({ isExternalLink, target, rel: relFromProps });
|
|
136
|
+
const opensInNewTab = renderAsLink && target === "_blank";
|
|
137
|
+
const rel = chunk3PEK2Q54_cjs.useRel({ isExternalLink, target, rel: relFromProps });
|
|
162
138
|
const ariaAttrs = {
|
|
163
139
|
"aria-controls": ariaControls,
|
|
164
140
|
"aria-current": ariaCurrent,
|
|
@@ -174,31 +150,30 @@ function Link({
|
|
|
174
150
|
"aria-roledescription": ariaRoledescription
|
|
175
151
|
};
|
|
176
152
|
const handleClick = (event) => {
|
|
177
|
-
if (isDisabled || isFallbackHref) {
|
|
178
|
-
event.preventDefault();
|
|
179
|
-
}
|
|
180
153
|
if (isDisabled) {
|
|
154
|
+
event.preventDefault();
|
|
181
155
|
return;
|
|
182
156
|
}
|
|
183
157
|
onClick?.(event);
|
|
184
158
|
};
|
|
185
159
|
const element = /* @__PURE__ */ jsxRuntime.jsxs(
|
|
186
|
-
|
|
160
|
+
chunkVPWNRWNO_cjs.ActionElement,
|
|
187
161
|
{
|
|
188
162
|
...ariaAttrs,
|
|
189
163
|
"aria-disabled": isDisabled || void 0,
|
|
190
|
-
"aria-label": getAriaLabel(label, opensInNewTab),
|
|
164
|
+
"aria-label": chunk3PEK2Q54_cjs.getAriaLabel(label, opensInNewTab),
|
|
165
|
+
as,
|
|
191
166
|
className: chunkSPDVNY2Z_cjs.cx(linkRecipe({ color, hasUnderline, size, weight }), className),
|
|
192
167
|
"data-testid": dataTestId,
|
|
193
|
-
href: isDisabled ? void 0 :
|
|
168
|
+
href: isDisabled ? void 0 : hrefFromProps,
|
|
169
|
+
isDisabled: !renderAsLink ? isDisabled : void 0,
|
|
170
|
+
isLink: renderAsLink,
|
|
194
171
|
onClick: handleClick,
|
|
195
172
|
ref,
|
|
196
|
-
rel: isDisabled ? void 0
|
|
197
|
-
role: isDisabled && hrefFromProps != null ? "link" : void 0,
|
|
173
|
+
rel: !isDisabled && renderAsLink ? rel : void 0,
|
|
198
174
|
style,
|
|
199
175
|
tabIndex: isDisabled ? -1 : void 0,
|
|
200
|
-
target: isDisabled ? void 0
|
|
201
|
-
to: isDisabled ? void 0 : Component === "a" ? void 0 : href,
|
|
176
|
+
target: !isDisabled && renderAsLink ? target : void 0,
|
|
202
177
|
children: [
|
|
203
178
|
children,
|
|
204
179
|
opensInNewTab && label == null ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -210,7 +185,7 @@ function Link({
|
|
|
210
185
|
}
|
|
211
186
|
);
|
|
212
187
|
if (tooltip != null) {
|
|
213
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
188
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkGJZAGTPV_cjs.Tooltip, { content: tooltip, children: element });
|
|
214
189
|
}
|
|
215
190
|
return element;
|
|
216
191
|
}
|
|
@@ -228,14 +203,11 @@ function LinkProvider({
|
|
|
228
203
|
children
|
|
229
204
|
}) {
|
|
230
205
|
const value = react.useMemo(() => ({ component }), [component]);
|
|
231
|
-
return /* @__PURE__ */ jsxRuntime.jsx(LinkContext, { value, children });
|
|
206
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkVPWNRWNO_cjs.LinkContext, { value, children });
|
|
232
207
|
}
|
|
233
208
|
LinkProvider.displayName = "LinkProvider";
|
|
234
209
|
|
|
235
210
|
exports.Link = Link;
|
|
236
211
|
exports.LinkProvider = LinkProvider;
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
exports.useRel = useRel;
|
|
240
|
-
//# sourceMappingURL=chunk-OUZX7STE.cjs.map
|
|
241
|
-
//# sourceMappingURL=chunk-OUZX7STE.cjs.map
|
|
212
|
+
//# sourceMappingURL=chunk-5K3C3INR.cjs.map
|
|
213
|
+
//# sourceMappingURL=chunk-5K3C3INR.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Link/Link.recipe.ts","../src/components/Link/Link.tsx","../src/components/Link/LinkProvider.tsx"],"names":["cva","useRel","jsxs","ActionElement","getAriaLabel","cx","Fragment","jsx","VisuallyHidden","Icon","ExternalLink","Tooltip","css","useMemo","LinkContext"],"mappings":"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","file":"chunk-5K3C3INR.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const linkRecipe = cva({\n base: {\n display: 'inline-flex',\n appearance: 'none',\n alignItems: 'center',\n padding: 0,\n border: 0,\n background: 'none',\n gap: '1',\n fontFamily: 'body',\n fontWeight: 'inherit',\n lineHeight: 'normal',\n textAlign: 'inherit',\n textDecoration: 'none',\n cursor: 'pointer',\n transitionProperty: 'color, text-decoration-color, opacity',\n transitionDuration: 'fast',\n transitionTimingFunction: 'default',\n _hover: {\n textDecoration: 'underline',\n },\n _focusVisible: {\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n '&[aria-disabled=\"true\"]': {\n cursor: 'not-allowed',\n opacity: 0.5,\n },\n },\n variants: {\n size: {\n xs: {fontSize: 'xs'},\n sm: {fontSize: 'sm'},\n md: {fontSize: 'md'},\n lg: {fontSize: 'lg'},\n xl: {fontSize: 'xl'},\n '2xl': {fontSize: '2xl'},\n '3xl': {fontSize: '3xl'},\n '4xl': {fontSize: '4xl'},\n '5xl': {fontSize: '5xl'},\n '6xl': {fontSize: '6xl'},\n inherit: {fontSize: 'inherit'},\n },\n color: {\n primary: {\n color: 'fg',\n },\n secondary: {\n color: 'fg.muted',\n },\n disabled: {\n color: 'fg.disabled',\n },\n placeholder: {\n color: 'fg.muted',\n },\n active: {\n color: 'primary',\n },\n inherit: {\n color: 'inherit',\n },\n },\n weight: {\n normal: {fontWeight: 'normal'},\n medium: {fontWeight: 'medium'},\n semibold: {fontWeight: 'semibold'},\n bold: {fontWeight: 'bold'},\n inherit: {fontWeight: 'inherit'},\n },\n hasUnderline: {\n true: {\n textDecoration: 'underline',\n },\n false: {},\n },\n },\n defaultVariants: {\n color: 'active',\n size: 'md',\n hasUnderline: false,\n },\n});\n\nexport type LinkVariants = RecipeVariantProps<typeof linkRecipe>;\n","import {ExternalLink} from 'lucide-react';\nimport type {CSSProperties, MouseEventHandler, ReactNode, Ref} from 'react';\nimport {Icon} from 'components/Icon';\nimport {linkRecipe} from 'components/Link/Link.recipe';\nimport type {LinkComponent} from 'components/Link/types';\nimport type {TextColor, TextSize, TextWeight} from 'components/Text';\nimport {Tooltip} from 'components/Tooltip';\nimport {VisuallyHidden} from 'internal';\nimport {ActionElement} from 'internal/ActionElement';\nimport {cx} from 'internal/cx';\nimport {getAriaLabel, useRel} from 'internal/linkAccessibility';\nimport {css} from 'styled-system/css';\n\n/**\n * A polymorphic link component with built-in accessibility, external link handling,\n * and router integration via LinkProvider. Supports custom link components (e.g.\n * React Router's Link) through the `as` prop or a parent `LinkProvider`.\n */\nexport interface LinkProps {\n /**\n * Identifies the element(s) whose contents are controlled by the link.\n */\n 'aria-controls'?: string;\n /**\n * Indicates the current item in a set (e.g. current page in navigation).\n */\n 'aria-current'?: 'page' | 'step' | 'location' | 'date' | 'time' | 'true';\n /**\n * Identifies the element(s) that describe the link.\n */\n 'aria-describedby'?: string;\n /**\n * Accessible description for the link.\n */\n 'aria-description'?: string;\n /**\n * Identifies the element that provides a detailed description.\n */\n 'aria-details'?: string;\n /**\n * Indicates whether a controlled element is expanded or collapsed.\n */\n 'aria-expanded'?: boolean;\n /**\n * Indicates the link opens an interactive popup element.\n */\n 'aria-haspopup'?: boolean | 'menu' | 'listbox' | 'tree' | 'grid' | 'dialog';\n /**\n * Indicates whether the element is exposed to the accessibility API.\n */\n 'aria-hidden'?: boolean;\n /**\n * Keyboard shortcuts that activate or focus the link.\n */\n 'aria-keyshortcuts'?: string;\n /**\n * Identifies the element(s) that label the link.\n */\n 'aria-labelledby'?: string;\n /**\n * Identifies element(s) owned by the link that are not DOM children.\n */\n 'aria-owns'?: string;\n /**\n * Human-readable description of the role of the link.\n */\n 'aria-roledescription'?: string;\n /**\n * Custom element type to render instead of `<a>`. Useful for integrating with routers.\n * If you want to set this globally, use LinkProvider at the top level of your app.\n */\n as?: LinkComponent;\n /**\n * Link content.\n */\n children: ReactNode;\n /**\n * Optionally, rendering by setting the className.\n */\n className?: string;\n /**\n * Color variant controlling the link text color. Default is `active`.\n */\n color?: TextColor;\n /**\n * Test id applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Show a persistent underline on the link text.\n */\n hasUnderline?: boolean;\n /**\n * URL destination. Custom link components receive this as both `href` and\n * `to` so router links and anchor-like links can share the same Silver UI API.\n * When omitted, Link renders as a native `<button>`.\n */\n href?: string;\n /**\n * Visually and functionally disable the link. Prevents navigation and removes from tab order.\n */\n isDisabled?: boolean;\n /**\n * Mark as an external link. Adds an icon and rel=\"noopener noreferrer\".\n * Defaults target to \"_blank\" unless target is set explicitly.\n */\n isExternalLink?: boolean;\n /**\n * Accessible label (aria-label). It is recommended to set this if your link does not contain sufficient text to make its purpose clear.\n */\n label?: string;\n /**\n * Click handler. Not called when the link is disabled.\n */\n onClick?: MouseEventHandler<HTMLElement>;\n /**\n * Ref forwarded to the underlying anchor or button element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * HTML rel attribute.\n */\n rel?: string;\n /**\n * Font size variant. Default is `md`.\n */\n size?: TextSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * HTML target attribute.\n */\n target?: string;\n /**\n * Tooltip text shown on hover.\n */\n tooltip?: string;\n /**\n * Font weight variant. Default is inherited from parent styles.\n */\n weight?: TextWeight;\n}\n\nexport function Link({\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-description': ariaDescription,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-roledescription': ariaRoledescription,\n as,\n label,\n href: hrefFromProps,\n hasUnderline = false,\n isDisabled = false,\n isExternalLink = false,\n target: targetFromProps,\n rel: relFromProps,\n size,\n tooltip,\n color,\n weight,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n children,\n onClick,\n}: LinkProps): React.JSX.Element {\n const renderAsLink = hrefFromProps != null;\n const target = targetFromProps ?? (isExternalLink ? '_blank' : undefined);\n const opensInNewTab = renderAsLink && target === '_blank';\n const rel = useRel({isExternalLink, target, rel: relFromProps});\n\n const ariaAttrs = {\n 'aria-controls': ariaControls,\n 'aria-current': ariaCurrent,\n 'aria-description': ariaDescription,\n 'aria-describedby': ariaDescribedby,\n 'aria-details': ariaDetails,\n 'aria-expanded': ariaExpanded,\n 'aria-haspopup': ariaHaspopup,\n 'aria-hidden': ariaHidden,\n 'aria-keyshortcuts': ariaKeyshortcuts,\n 'aria-labelledby': ariaLabelledby,\n 'aria-owns': ariaOwns,\n 'aria-roledescription': ariaRoledescription,\n };\n\n const handleClick: MouseEventHandler<HTMLElement> = event => {\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n\n onClick?.(event);\n };\n\n const element = (\n <ActionElement\n {...ariaAttrs}\n aria-disabled={isDisabled || undefined}\n aria-label={getAriaLabel(label, opensInNewTab)}\n as={as}\n className={cx(linkRecipe({color, hasUnderline, size, weight}), className)}\n data-testid={dataTestId}\n href={isDisabled ? undefined : hrefFromProps}\n isDisabled={!renderAsLink ? isDisabled : undefined}\n isLink={renderAsLink}\n onClick={handleClick}\n ref={ref}\n rel={!isDisabled && renderAsLink ? rel : undefined}\n style={style}\n tabIndex={isDisabled ? -1 : undefined}\n target={!isDisabled && renderAsLink ? target : undefined}>\n {children}\n {opensInNewTab && label == null ? (\n <>\n {' '}\n <VisuallyHidden>(opens in new tab)</VisuallyHidden>\n </>\n ) : null}\n {isExternalLink ? (\n <span aria-hidden=\"true\" className={styles.externalLink}>\n <Icon icon={ExternalLink} size=\"sm\" />\n </span>\n ) : null}\n </ActionElement>\n );\n\n if (tooltip != null) {\n return <Tooltip content={tooltip}>{element}</Tooltip>;\n }\n\n return element;\n}\n\nLink.displayName = 'Link';\n\nconst styles = {\n externalLink: css({\n display: 'inline-flex',\n flexShrink: 0,\n fontSize: '0.875em',\n lineHeight: 1,\n }),\n};\n","import {useMemo, type ReactNode} from 'react';\nimport {LinkContext} from 'components/Link/LinkContext';\nimport type {LinkComponent} from 'components/Link/types';\n\nexport interface LinkProviderProps {\n children: ReactNode;\n component: LinkComponent;\n}\n\nexport function LinkProvider({\n component,\n children,\n}: LinkProviderProps): React.JSX.Element {\n const value = useMemo(() => ({component}), [component]);\n\n return <LinkContext value={value}>{children}</LinkContext>;\n}\n\nLinkProvider.displayName = 'LinkProvider';\n"]}
|
|
@@ -129,16 +129,16 @@ function getSelectListboxOptions(options) {
|
|
|
129
129
|
});
|
|
130
130
|
}
|
|
131
131
|
function useSelectListbox({
|
|
132
|
-
clearQueryOnCommit = false,
|
|
133
|
-
closeOnCommit = false,
|
|
134
132
|
description,
|
|
135
133
|
isDefaultOpen = false,
|
|
136
134
|
isDisabled = false,
|
|
135
|
+
isHighlightClearedOnCommit = true,
|
|
137
136
|
isLoading = false,
|
|
137
|
+
isListboxClosedOnCommit = false,
|
|
138
|
+
isQueryClearedOnCommit = false,
|
|
138
139
|
onCommitOption,
|
|
139
140
|
options,
|
|
140
141
|
selectedValues,
|
|
141
|
-
shouldClearOnCommit = true,
|
|
142
142
|
status
|
|
143
143
|
}) {
|
|
144
144
|
const inputId = useId();
|
|
@@ -191,17 +191,17 @@ function useSelectListbox({
|
|
|
191
191
|
if (onCommitOption(option) === false) {
|
|
192
192
|
return;
|
|
193
193
|
}
|
|
194
|
-
if (
|
|
194
|
+
if (isListboxClosedOnCommit) {
|
|
195
195
|
setIsOpen(false);
|
|
196
196
|
}
|
|
197
|
-
if (
|
|
197
|
+
if (isQueryClearedOnCommit) {
|
|
198
198
|
setQuery("");
|
|
199
199
|
}
|
|
200
200
|
},
|
|
201
201
|
onOpenChange: setIsOpen,
|
|
202
202
|
options: visibleSelectableOptions,
|
|
203
203
|
selectedValues,
|
|
204
|
-
shouldClearOnCommit
|
|
204
|
+
shouldClearOnCommit: isHighlightClearedOnCommit
|
|
205
205
|
});
|
|
206
206
|
const handleOptionClick = useCallback(
|
|
207
207
|
(event) => {
|
|
@@ -210,14 +210,19 @@ function useSelectListbox({
|
|
|
210
210
|
if (option == null || onCommitOption(option) === false) {
|
|
211
211
|
return;
|
|
212
212
|
}
|
|
213
|
-
if (
|
|
213
|
+
if (isListboxClosedOnCommit) {
|
|
214
214
|
setIsOpen(false);
|
|
215
215
|
}
|
|
216
|
-
if (
|
|
216
|
+
if (isQueryClearedOnCommit) {
|
|
217
217
|
setQuery("");
|
|
218
218
|
}
|
|
219
219
|
},
|
|
220
|
-
[
|
|
220
|
+
[
|
|
221
|
+
isListboxClosedOnCommit,
|
|
222
|
+
isQueryClearedOnCommit,
|
|
223
|
+
onCommitOption,
|
|
224
|
+
optionByValue
|
|
225
|
+
]
|
|
221
226
|
);
|
|
222
227
|
const handleOptionMouseEnter = useCallback(
|
|
223
228
|
(event) => {
|
|
@@ -320,5 +325,5 @@ function renderSelectListboxOptions({
|
|
|
320
325
|
}
|
|
321
326
|
|
|
322
327
|
export { renderSelectListboxOptions, useSelectListbox };
|
|
323
|
-
//# sourceMappingURL=chunk-
|
|
324
|
-
//# sourceMappingURL=chunk-
|
|
328
|
+
//# sourceMappingURL=chunk-5RFHYDQY.js.map
|
|
329
|
+
//# sourceMappingURL=chunk-5RFHYDQY.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/internal/useListboxNavigation.ts","../src/internal/useSelectListbox.tsx"],"names":["useState","useMemo","useCallback"],"mappings":"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","file":"chunk-5RFHYDQY.js","sourcesContent":["import {\n useCallback,\n useMemo,\n useState,\n type Dispatch,\n type KeyboardEvent,\n type SetStateAction,\n} from 'react';\n\nexport type ListboxNavigationOption = {\n isDisabled?: boolean;\n value: string;\n};\n\nexport type UseListboxNavigationOptions = {\n shouldClearOnCommit?: boolean;\n inputId: string;\n isDisabled?: boolean;\n isOpen: boolean;\n onCommit: (value: string) => void;\n onOpenChange: (isOpen: boolean) => void;\n options: ReadonlyArray<ListboxNavigationOption>;\n selectedValues?: ReadonlySet<string>;\n};\n\nexport type UseListboxNavigationResult = {\n activeDescendantId: string | undefined;\n getOptionId: (optionValue: string) => string;\n handleKeyboardNavigation: (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>,\n ) => void;\n highlightedValue: string | null;\n setHighlightedValue: Dispatch<SetStateAction<string | null>>;\n};\n\nexport function useListboxNavigation({\n inputId,\n isDisabled = false,\n isOpen,\n onCommit,\n onOpenChange,\n options,\n selectedValues,\n shouldClearOnCommit = true,\n}: UseListboxNavigationOptions): UseListboxNavigationResult {\n const [highlightedValue, setHighlightedValue] = useState<string | null>(null);\n const enabledOptions = useMemo(\n () => options.filter(option => !option.isDisabled),\n [options],\n );\n\n const getOptionId = useCallback(\n (optionValue: string): string =>\n `${inputId}-option-${optionValue.replace(/[^a-zA-Z0-9_-]/g, '-')}`,\n [inputId],\n );\n\n const activeDescendantId =\n isOpen && highlightedValue != null\n ? getOptionId(highlightedValue)\n : undefined;\n\n const getInitialHighlight = useCallback(\n (direction: 'first' | 'last' = 'first'): string | null => {\n if (enabledOptions.length === 0) {\n return null;\n }\n\n const selectedEnabledOption = enabledOptions.find(option =>\n selectedValues?.has(option.value),\n );\n if (selectedEnabledOption != null) {\n return selectedEnabledOption.value;\n }\n\n return direction === 'last'\n ? enabledOptions[enabledOptions.length - 1].value\n : enabledOptions[0].value;\n },\n [enabledOptions, selectedValues],\n );\n\n const moveHighlight = useCallback(\n (direction: 1 | -1): void => {\n if (enabledOptions.length === 0) {\n setHighlightedValue(null);\n return;\n }\n\n setHighlightedValue(currentValue => {\n const currentIndex = enabledOptions.findIndex(\n option => option.value === currentValue,\n );\n const nextIndex =\n currentIndex === -1\n ? direction === 1\n ? 0\n : enabledOptions.length - 1\n : (currentIndex + direction + enabledOptions.length) %\n enabledOptions.length;\n return enabledOptions[nextIndex].value;\n });\n },\n [enabledOptions],\n );\n\n const handleKeyboardNavigation = useCallback(\n (event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>): void => {\n if (isDisabled) {\n return;\n }\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowUp') {\n event.preventDefault();\n if (!isOpen) {\n onOpenChange(true);\n setHighlightedValue(\n getInitialHighlight(event.key === 'ArrowUp' ? 'last' : 'first'),\n );\n return;\n }\n\n moveHighlight(event.key === 'ArrowDown' ? 1 : -1);\n return;\n }\n\n if (event.key === 'Home' && isOpen) {\n event.preventDefault();\n setHighlightedValue(getInitialHighlight('first'));\n return;\n }\n\n if (event.key === 'End' && isOpen) {\n event.preventDefault();\n setHighlightedValue(getInitialHighlight('last'));\n return;\n }\n\n if (event.key === 'Enter' && isOpen && highlightedValue != null) {\n event.preventDefault();\n onCommit(highlightedValue);\n if (shouldClearOnCommit) {\n setHighlightedValue(null);\n }\n return;\n }\n\n if (event.key === 'Escape' && isOpen) {\n event.preventDefault();\n onOpenChange(false);\n setHighlightedValue(null);\n }\n },\n [\n getInitialHighlight,\n highlightedValue,\n isDisabled,\n isOpen,\n moveHighlight,\n onCommit,\n onOpenChange,\n shouldClearOnCommit,\n ],\n );\n\n return {\n activeDescendantId,\n getOptionId,\n handleKeyboardNavigation,\n highlightedValue,\n setHighlightedValue,\n };\n}\n","import {\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type Dispatch,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type RefObject,\n type SetStateAction,\n} from 'react';\nimport type {InputStatus} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport isReactNode from 'internal/isReactNode';\nimport {useListboxNavigation} from 'internal/useListboxNavigation';\n\nexport interface SelectListboxOptionData {\n isDisabled?: boolean;\n label?: string;\n value: string;\n}\n\nexport interface SelectListboxDivider {\n type: 'divider';\n}\n\nexport interface SelectListboxSection<TOption extends SelectListboxOptionData> {\n options: ReadonlyArray<TOption>;\n title?: string;\n type: 'section';\n}\n\nexport type SelectListboxOption<TOption extends SelectListboxOptionData> =\n | SelectListboxDivider\n | SelectListboxSection<TOption>\n | TOption\n | string;\n\nfunction normalizeSelectListboxOption<TOption extends SelectListboxOptionData>(\n option: string | TOption,\n): TOption {\n return (\n typeof option === 'string'\n ? {label: option, value: option}\n : {...option, label: option.label ?? option.value}\n ) as TOption;\n}\n\nfunction getSelectListboxOptions<TOption extends SelectListboxOptionData>(\n options: ReadonlyArray<SelectListboxOption<TOption>>,\n): TOption[] {\n return options.flatMap(option => {\n if (typeof option === 'string') {\n return [normalizeSelectListboxOption<TOption>(option)];\n }\n if ('type' in option) {\n return option.type === 'section'\n ? option.options.map(normalizeSelectListboxOption<TOption>)\n : [];\n }\n return [normalizeSelectListboxOption<TOption>(option)];\n });\n}\n\nexport type UseSelectListboxOptions<TOption extends SelectListboxOptionData> = {\n description: ReactNode;\n isDefaultOpen?: boolean;\n isDisabled?: boolean;\n isHighlightClearedOnCommit?: boolean;\n isLoading?: boolean;\n isListboxClosedOnCommit?: boolean;\n isQueryClearedOnCommit?: boolean;\n onCommitOption: (option: TOption) => unknown;\n options: ReadonlyArray<SelectListboxOption<TOption>>;\n selectedValues: ReadonlySet<string>;\n status: InputStatus | undefined;\n};\n\nexport type UseSelectListboxResult<TOption extends SelectListboxOptionData> = {\n activeDescendantId: string | undefined;\n describedBy: string | undefined;\n descriptionID: string | undefined;\n filteredValues: ReadonlySet<string>;\n getOptionId: (optionValue: string) => string;\n handleKeyboardNavigation: (\n event: KeyboardEvent<HTMLInputElement | HTMLButtonElement>,\n ) => void;\n handleOptionClick: (event: MouseEvent<HTMLElement>) => void;\n handleOptionMouseEnter: (event: MouseEvent<HTMLElement>) => void;\n highlightedValue: string | null;\n inputId: string;\n isInteractionDisabled: boolean;\n isOpen: boolean;\n listboxId: string;\n optionByValue: ReadonlyMap<string, TOption>;\n query: string;\n selectableOptions: ReadonlyArray<TOption>;\n setHighlightedValue: Dispatch<SetStateAction<string | null>>;\n setIsOpen: Dispatch<SetStateAction<boolean>>;\n setQuery: Dispatch<SetStateAction<string>>;\n statusMessageID: string | undefined;\n triggerRef: RefObject<HTMLDivElement | null>;\n visibleSelectableOptions: ReadonlyArray<TOption>;\n};\n\nexport function useSelectListbox<TOption extends SelectListboxOptionData>({\n description,\n isDefaultOpen = false,\n isDisabled = false,\n isHighlightClearedOnCommit = true,\n isLoading = false,\n isListboxClosedOnCommit = false,\n isQueryClearedOnCommit = false,\n onCommitOption,\n options,\n selectedValues,\n status,\n}: UseSelectListboxOptions<TOption>): UseSelectListboxResult<TOption> {\n const inputId = useId();\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(isDefaultOpen);\n const [query, setQuery] = useState('');\n const triggerRef = useRef<HTMLDivElement>(null);\n const listboxId = `${inputId}-listbox`;\n const selectableOptions = useMemo(\n () => getSelectListboxOptions(options),\n [options],\n );\n const optionByValue = useMemo(\n () => new Map(selectableOptions.map(option => [option.value, option])),\n [selectableOptions],\n );\n const filteredValues = useMemo(() => {\n if (query.trim() === '') {\n return new Set(selectableOptions.map(option => option.value));\n }\n const lowerQuery = query.toLowerCase();\n return new Set(\n selectableOptions\n .filter(option =>\n (option.label ?? option.value).toLowerCase().includes(lowerQuery),\n )\n .map(option => option.value),\n );\n }, [query, selectableOptions]);\n const visibleSelectableOptions = useMemo(\n () => selectableOptions.filter(option => filteredValues.has(option.value)),\n [filteredValues, selectableOptions],\n );\n const isInteractionDisabled = isDisabled || isLoading;\n\n const {\n activeDescendantId,\n getOptionId,\n handleKeyboardNavigation,\n highlightedValue,\n setHighlightedValue,\n } = useListboxNavigation({\n inputId,\n isDisabled: isInteractionDisabled,\n isOpen,\n onCommit: optionValue => {\n const option = optionByValue.get(optionValue);\n if (option == null) {\n return;\n }\n\n if (onCommitOption(option) === false) {\n return;\n }\n\n if (isListboxClosedOnCommit) {\n setIsOpen(false);\n }\n if (isQueryClearedOnCommit) {\n setQuery('');\n }\n },\n onOpenChange: setIsOpen,\n options: visibleSelectableOptions,\n selectedValues,\n shouldClearOnCommit: isHighlightClearedOnCommit,\n });\n\n const handleOptionClick = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const optionValue = event.currentTarget.dataset.value;\n const option =\n optionValue == null ? undefined : optionByValue.get(optionValue);\n if (option == null || onCommitOption(option) === false) {\n return;\n }\n\n if (isListboxClosedOnCommit) {\n setIsOpen(false);\n }\n if (isQueryClearedOnCommit) {\n setQuery('');\n }\n },\n [\n isListboxClosedOnCommit,\n isQueryClearedOnCommit,\n onCommitOption,\n optionByValue,\n ],\n );\n\n const handleOptionMouseEnter = useCallback(\n (event: MouseEvent<HTMLElement>) => {\n const optionValue = event.currentTarget.dataset.value;\n const option =\n optionValue == null ? undefined : optionByValue.get(optionValue);\n if (option != null && !option.isDisabled) {\n setHighlightedValue(option.value);\n }\n },\n [optionByValue, setHighlightedValue],\n );\n\n return {\n activeDescendantId,\n describedBy,\n descriptionID,\n filteredValues,\n getOptionId,\n handleKeyboardNavigation,\n handleOptionClick,\n handleOptionMouseEnter,\n highlightedValue,\n inputId,\n isInteractionDisabled,\n isOpen,\n listboxId,\n optionByValue,\n query,\n selectableOptions,\n setHighlightedValue,\n setIsOpen,\n setQuery,\n statusMessageID,\n triggerRef,\n visibleSelectableOptions,\n };\n}\n\nexport type RenderSelectListboxOptionsConfig<\n TOption extends SelectListboxOptionData,\n> = {\n dividerClassName: string;\n inputId: string;\n options: ReadonlyArray<SelectListboxOption<TOption>>;\n renderOption: (option: TOption) => ReactNode;\n sectionHeadingClassName: string;\n};\n\nexport function renderSelectListboxOptions<\n TOption extends SelectListboxOptionData,\n>({\n dividerClassName,\n inputId,\n options,\n renderOption,\n sectionHeadingClassName,\n}: RenderSelectListboxOptionsConfig<TOption>): ReactNode[] {\n const optionNodes: ReactNode[] = [];\n let dividerCount = 0;\n let sectionCount = 0;\n\n for (const option of options) {\n if (typeof option === 'string') {\n optionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(option)),\n );\n } else if ('type' in option) {\n if (option.type === 'divider') {\n dividerCount += 1;\n optionNodes.push(\n <div\n className={dividerClassName}\n key={`divider-${dividerCount}`}\n role=\"separator\"\n />,\n );\n } else {\n const sectionKey =\n option.title ??\n option.options.map(sectionOption => sectionOption.value).join('|');\n sectionCount += 1;\n const sectionHeadingId =\n option.title == null\n ? undefined\n : `${inputId}-section-${sectionKey.replace(\n /[^a-zA-Z0-9_-]/g,\n '-',\n )}-${sectionCount}`;\n const sectionOptionNodes: ReactNode[] = [];\n for (const sectionOption of option.options) {\n sectionOptionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(sectionOption)),\n );\n }\n optionNodes.push(\n <div\n aria-labelledby={sectionHeadingId}\n key={`section-${sectionKey}-${sectionCount}`}\n role=\"group\">\n {option.title != null ? (\n <div className={sectionHeadingClassName} id={sectionHeadingId}>\n {option.title}\n </div>\n ) : null}\n {sectionOptionNodes}\n </div>,\n );\n }\n } else {\n optionNodes.push(\n renderOption(normalizeSelectListboxOption<TOption>(option)),\n );\n }\n }\n\n return optionNodes;\n}\n"]}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkXPHXAZCE_cjs = require('./chunk-XPHXAZCE.cjs');
|
|
4
|
-
var
|
|
5
|
-
var chunk3Z5PF75J_cjs = require('./chunk-3Z5PF75J.cjs');
|
|
4
|
+
var chunkGU65FGY6_cjs = require('./chunk-GU65FGY6.cjs');
|
|
6
5
|
var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
|
|
7
|
-
var
|
|
6
|
+
var chunkMHAXS4GO_cjs = require('./chunk-MHAXS4GO.cjs');
|
|
7
|
+
var chunkGJZAGTPV_cjs = require('./chunk-GJZAGTPV.cjs');
|
|
8
8
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
9
9
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
10
10
|
var chunkZ6RT3WPE_cjs = require('./chunk-Z6RT3WPE.cjs');
|
|
@@ -240,7 +240,7 @@ function Switch({
|
|
|
240
240
|
className: classes.track,
|
|
241
241
|
"data-selected": isSelected ? "true" : void 0,
|
|
242
242
|
"data-switch-track": "",
|
|
243
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.thumb, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
243
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.thumb, children: isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunkGU65FGY6_cjs.Spinner, { size: "sm" }) : null })
|
|
244
244
|
}
|
|
245
245
|
),
|
|
246
246
|
isLoading ? /* @__PURE__ */ jsxRuntime.jsx(chunk2MXK2SDR_cjs.VisuallyHidden, { children: /* @__PURE__ */ jsxRuntime.jsx("span", { role: "status", children: "Loading" }) }) : null
|
|
@@ -248,14 +248,14 @@ function Switch({
|
|
|
248
248
|
const labelNode = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.labelWrapper, children: [
|
|
249
249
|
/* @__PURE__ */ jsxRuntime.jsxs("label", { className: classes.label, htmlFor: inputId, children: [
|
|
250
250
|
labelIcon != null ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.labelIcon, children: /* @__PURE__ */ jsxRuntime.jsx(chunkJ4PIYOWT_cjs.Icon, { color: "secondary", icon: labelIcon, size: "sm" }) }) : null,
|
|
251
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
252
|
-
requirednessText != null ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
251
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { as: "span", color: "inherit", type: "label", children: label }),
|
|
252
|
+
requirednessText != null ? /* @__PURE__ */ jsxRuntime.jsxs(chunkMHAXS4GO_cjs.Text, { as: "span", className: classes.requiredness, type: "supporting", children: [
|
|
253
253
|
/* @__PURE__ */ jsxRuntime.jsx("span", { "aria-hidden": "true", children: " \xB7 " }),
|
|
254
254
|
requirednessText
|
|
255
255
|
] }) : null,
|
|
256
|
-
chunkQAO6QMNQ_cjs.isReactNode(labelTooltip) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
256
|
+
chunkQAO6QMNQ_cjs.isReactNode(labelTooltip) ? /* @__PURE__ */ jsxRuntime.jsx(chunkGJZAGTPV_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
|
|
257
257
|
] }),
|
|
258
|
-
chunkQAO6QMNQ_cjs.isReactNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
258
|
+
chunkQAO6QMNQ_cjs.isReactNode(description) ? /* @__PURE__ */ jsxRuntime.jsx(chunkMHAXS4GO_cjs.Text, { as: "span", color: "secondary", id: descriptionID, type: "supporting", children: description }) : null
|
|
259
259
|
] });
|
|
260
260
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: chunkSPDVNY2Z_cjs.cx(classes.field, className), style, children: [
|
|
261
261
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes.row, children: [
|
|
@@ -277,5 +277,5 @@ function Switch({
|
|
|
277
277
|
Switch.displayName = "Switch";
|
|
278
278
|
|
|
279
279
|
exports.Switch = Switch;
|
|
280
|
-
//# sourceMappingURL=chunk-
|
|
281
|
-
//# sourceMappingURL=chunk-
|
|
280
|
+
//# sourceMappingURL=chunk-6FC5YF2O.cjs.map
|
|
281
|
+
//# sourceMappingURL=chunk-6FC5YF2O.cjs.map
|