silver-ui 0.6.0 → 0.7.2
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 -0
- package/dist/{chunk-DYMZ4DLN.cjs → chunk-2AOR4EVA.cjs} +8 -8
- package/dist/{chunk-DYMZ4DLN.cjs.map → chunk-2AOR4EVA.cjs.map} +1 -1
- package/dist/chunk-2N3PIXZ5.cjs +165 -0
- package/dist/chunk-2N3PIXZ5.cjs.map +1 -0
- package/dist/{chunk-GUUCIG7U.js → chunk-3PCXFOOS.js} +16 -10
- package/dist/chunk-3PCXFOOS.js.map +1 -0
- package/dist/{chunk-ISWZQUVA.cjs → chunk-4MIIXRZN.cjs} +12 -12
- package/dist/{chunk-ISWZQUVA.cjs.map → chunk-4MIIXRZN.cjs.map} +1 -1
- package/dist/{chunk-WHDDBOJN.js → chunk-54B36CSW.js} +4 -4
- package/dist/{chunk-WHDDBOJN.js.map → chunk-54B36CSW.js.map} +1 -1
- package/dist/{chunk-NXTDP6AX.js → chunk-5GSRIOXE.js} +14 -2
- package/dist/chunk-5GSRIOXE.js.map +1 -0
- package/dist/{chunk-BGLT7XH6.js → chunk-5HPXPF3F.js} +5 -5
- package/dist/{chunk-BGLT7XH6.js.map → chunk-5HPXPF3F.js.map} +1 -1
- package/dist/{chunk-U4L75VA4.cjs → chunk-5MCI3ILK.cjs} +40 -40
- package/dist/{chunk-U4L75VA4.cjs.map → chunk-5MCI3ILK.cjs.map} +1 -1
- package/dist/{chunk-TNYAYXKC.cjs → chunk-63QPCV4F.cjs} +35 -35
- package/dist/{chunk-TNYAYXKC.cjs.map → chunk-63QPCV4F.cjs.map} +1 -1
- package/dist/{chunk-FIOCTAXT.js → chunk-6KG76KUZ.js} +3 -3
- package/dist/{chunk-FIOCTAXT.js.map → chunk-6KG76KUZ.js.map} +1 -1
- package/dist/{chunk-RU7JPU7V.js → chunk-6KGF66TR.js} +3 -3
- package/dist/{chunk-RU7JPU7V.js.map → chunk-6KGF66TR.js.map} +1 -1
- package/dist/{chunk-FQN22DO5.js → chunk-6OWEKKOC.js} +6 -6
- package/dist/{chunk-FQN22DO5.js.map → chunk-6OWEKKOC.js.map} +1 -1
- package/dist/{chunk-BDFNEQR3.js → chunk-6R2UZNVE.js} +6 -6
- package/dist/{chunk-BDFNEQR3.js.map → chunk-6R2UZNVE.js.map} +1 -1
- package/dist/{chunk-AFJEAYR4.cjs → chunk-6SFMORQF.cjs} +5 -5
- package/dist/{chunk-AFJEAYR4.cjs.map → chunk-6SFMORQF.cjs.map} +1 -1
- package/dist/{chunk-XTLNUYCK.js → chunk-6SKIBUCY.js} +3 -3
- package/dist/{chunk-XTLNUYCK.js.map → chunk-6SKIBUCY.js.map} +1 -1
- package/dist/{chunk-VRQ66IBW.cjs → chunk-6SMVH3ON.cjs} +6 -6
- package/dist/{chunk-VRQ66IBW.cjs.map → chunk-6SMVH3ON.cjs.map} +1 -1
- package/dist/{chunk-WINDLDH3.cjs → chunk-6ZPHID26.cjs} +9 -9
- package/dist/{chunk-WINDLDH3.cjs.map → chunk-6ZPHID26.cjs.map} +1 -1
- package/dist/chunk-7VUDE5BI.js +91 -0
- package/dist/chunk-7VUDE5BI.js.map +1 -0
- package/dist/{chunk-DFEAB7Z3.cjs → chunk-AC4E3WQA.cjs} +10 -10
- package/dist/{chunk-DFEAB7Z3.cjs.map → chunk-AC4E3WQA.cjs.map} +1 -1
- package/dist/{chunk-4EUUZQAM.js → chunk-ACGPBJIS.js} +5 -5
- package/dist/{chunk-4EUUZQAM.js.map → chunk-ACGPBJIS.js.map} +1 -1
- package/dist/{chunk-DWZR2AGT.js → chunk-AO4RVSCG.js} +4 -4
- package/dist/{chunk-DWZR2AGT.js.map → chunk-AO4RVSCG.js.map} +1 -1
- package/dist/{chunk-P7TSM63O.js → chunk-AXTX3IOR.js} +3 -3
- package/dist/{chunk-P7TSM63O.js.map → chunk-AXTX3IOR.js.map} +1 -1
- package/dist/{chunk-KCI4I42U.js → chunk-BBLAZNCC.js} +8 -8
- package/dist/{chunk-KCI4I42U.js.map → chunk-BBLAZNCC.js.map} +1 -1
- package/dist/{chunk-ZUAWNT66.cjs → chunk-BF2DUOC3.cjs} +18 -18
- package/dist/{chunk-ZUAWNT66.cjs.map → chunk-BF2DUOC3.cjs.map} +1 -1
- package/dist/{chunk-6FC5YF2O.cjs → chunk-BPAZTKMC.cjs} +8 -8
- package/dist/{chunk-6FC5YF2O.cjs.map → chunk-BPAZTKMC.cjs.map} +1 -1
- package/dist/{chunk-CNDUYO7I.cjs → chunk-BYV7NXC5.cjs} +5 -5
- package/dist/{chunk-CNDUYO7I.cjs.map → chunk-BYV7NXC5.cjs.map} +1 -1
- package/dist/{chunk-MHAXS4GO.cjs → chunk-CKDB7QNT.cjs} +14 -2
- package/dist/chunk-CKDB7QNT.cjs.map +1 -0
- package/dist/{chunk-J4LJXCXB.cjs → chunk-CQYBC3RJ.cjs} +9 -9
- package/dist/{chunk-J4LJXCXB.cjs.map → chunk-CQYBC3RJ.cjs.map} +1 -1
- package/dist/{chunk-U5HW5P7Q.cjs → chunk-CWZCBYVZ.cjs} +11 -11
- package/dist/{chunk-U5HW5P7Q.cjs.map → chunk-CWZCBYVZ.cjs.map} +1 -1
- package/dist/{chunk-UZGPFPIV.cjs → chunk-D7TT4HUI.cjs} +17 -17
- package/dist/{chunk-UZGPFPIV.cjs.map → chunk-D7TT4HUI.cjs.map} +1 -1
- package/dist/{chunk-FWBYCTUB.cjs → chunk-DDMUYVSV.cjs} +15 -15
- package/dist/{chunk-FWBYCTUB.cjs.map → chunk-DDMUYVSV.cjs.map} +1 -1
- package/dist/{chunk-P5LMEANN.cjs → chunk-DTNIUZ3C.cjs} +5 -5
- package/dist/{chunk-P5LMEANN.cjs.map → chunk-DTNIUZ3C.cjs.map} +1 -1
- package/dist/{chunk-5JROXZBG.cjs → chunk-DVCDAKPK.cjs} +4 -4
- package/dist/{chunk-5JROXZBG.cjs.map → chunk-DVCDAKPK.cjs.map} +1 -1
- package/dist/{chunk-45OSUS5A.js → chunk-E6AKSBSP.js} +6 -6
- package/dist/{chunk-45OSUS5A.js.map → chunk-E6AKSBSP.js.map} +1 -1
- package/dist/{chunk-HMJINNXZ.js → chunk-EBV3EX3J.js} +3 -3
- package/dist/{chunk-HMJINNXZ.js.map → chunk-EBV3EX3J.js.map} +1 -1
- package/dist/chunk-ESWYWWY2.js +162 -0
- package/dist/chunk-ESWYWWY2.js.map +1 -0
- package/dist/{chunk-G5PU2EL2.js → chunk-FHUOUARL.js} +4 -4
- package/dist/{chunk-G5PU2EL2.js.map → chunk-FHUOUARL.js.map} +1 -1
- package/dist/{chunk-RXKDRZF3.js → chunk-FTNEAX24.js} +3 -3
- package/dist/{chunk-RXKDRZF3.js.map → chunk-FTNEAX24.js.map} +1 -1
- package/dist/{chunk-TQDJVPHP.js → chunk-FUU3I22W.js} +3 -3
- package/dist/{chunk-TQDJVPHP.js.map → chunk-FUU3I22W.js.map} +1 -1
- package/dist/{chunk-ERVWZILR.js → chunk-GKYGZWSQ.js} +3 -3
- package/dist/{chunk-ERVWZILR.js.map → chunk-GKYGZWSQ.js.map} +1 -1
- package/dist/{chunk-CABYRYVA.cjs → chunk-GLFWSLJB.cjs} +6 -6
- package/dist/{chunk-CABYRYVA.cjs.map → chunk-GLFWSLJB.cjs.map} +1 -1
- package/dist/{chunk-UYZQGHFI.js → chunk-GQ73VKKN.js} +8 -8
- package/dist/{chunk-UYZQGHFI.js.map → chunk-GQ73VKKN.js.map} +1 -1
- package/dist/{chunk-JHMUMJF3.js → chunk-GTZQT6MK.js} +4 -4
- package/dist/{chunk-JHMUMJF3.js.map → chunk-GTZQT6MK.js.map} +1 -1
- package/dist/{chunk-ZSB43DEI.js → chunk-HC57X3U4.js} +6 -6
- package/dist/{chunk-ZSB43DEI.js.map → chunk-HC57X3U4.js.map} +1 -1
- package/dist/{chunk-WAWHHXSR.js → chunk-HEF53COU.js} +3 -3
- package/dist/{chunk-WAWHHXSR.js.map → chunk-HEF53COU.js.map} +1 -1
- package/dist/{chunk-7EE6DCRP.cjs → chunk-HENIVDYQ.cjs} +18 -18
- package/dist/{chunk-7EE6DCRP.cjs.map → chunk-HENIVDYQ.cjs.map} +1 -1
- package/dist/{chunk-MHEPDHL5.cjs → chunk-HN4W6TM6.cjs} +14 -14
- package/dist/{chunk-MHEPDHL5.cjs.map → chunk-HN4W6TM6.cjs.map} +1 -1
- package/dist/{chunk-DPSAPA6B.js → chunk-I2DXEPDF.js} +5 -5
- package/dist/{chunk-DPSAPA6B.js.map → chunk-I2DXEPDF.js.map} +1 -1
- package/dist/{chunk-NG2H3PYA.cjs → chunk-J242UTPO.cjs} +16 -16
- package/dist/{chunk-NG2H3PYA.cjs.map → chunk-J242UTPO.cjs.map} +1 -1
- package/dist/{chunk-K2WT7A64.js → chunk-JMVYWHJ7.js} +3 -3
- package/dist/{chunk-K2WT7A64.js.map → chunk-JMVYWHJ7.js.map} +1 -1
- package/dist/{chunk-VREW3BK6.cjs → chunk-JTPVAZE6.cjs} +11 -11
- package/dist/{chunk-VREW3BK6.cjs.map → chunk-JTPVAZE6.cjs.map} +1 -1
- package/dist/{chunk-FLDTPAG4.cjs → chunk-JWMS6LHN.cjs} +6 -6
- package/dist/{chunk-FLDTPAG4.cjs.map → chunk-JWMS6LHN.cjs.map} +1 -1
- package/dist/{chunk-3M23WX6K.js → chunk-KB36TWOU.js} +4 -3
- package/dist/chunk-KB36TWOU.js.map +1 -0
- package/dist/{chunk-DK6USFZP.cjs → chunk-KLCEDPJ4.cjs} +19 -19
- package/dist/{chunk-DK6USFZP.cjs.map → chunk-KLCEDPJ4.cjs.map} +1 -1
- package/dist/{chunk-INQ34SVW.cjs → chunk-KLPVBJGZ.cjs} +5 -5
- package/dist/{chunk-INQ34SVW.cjs.map → chunk-KLPVBJGZ.cjs.map} +1 -1
- package/dist/{chunk-LLSWAAFH.js → chunk-L747HIHG.js} +4 -4
- package/dist/{chunk-LLSWAAFH.js.map → chunk-L747HIHG.js.map} +1 -1
- package/dist/{chunk-7TJ2O56S.js → chunk-LBOWHXOF.js} +23 -5
- package/dist/chunk-LBOWHXOF.js.map +1 -0
- package/dist/{chunk-H7VK36SZ.cjs → chunk-LTHPJRFK.cjs} +9 -8
- package/dist/chunk-LTHPJRFK.cjs.map +1 -0
- package/dist/{chunk-6ZV7HGZT.cjs → chunk-LWB2CTX6.cjs} +4 -4
- package/dist/{chunk-6ZV7HGZT.cjs.map → chunk-LWB2CTX6.cjs.map} +1 -1
- package/dist/{chunk-ENVDR66N.cjs → chunk-MJHEPDDX.cjs} +17 -17
- package/dist/{chunk-ENVDR66N.cjs.map → chunk-MJHEPDDX.cjs.map} +1 -1
- package/dist/{chunk-RAMDISDK.cjs → chunk-MYSLJWCW.cjs} +6 -6
- package/dist/{chunk-RAMDISDK.cjs.map → chunk-MYSLJWCW.cjs.map} +1 -1
- package/dist/{chunk-WEXTGWRE.js → chunk-N6C37HXD.js} +4 -4
- package/dist/{chunk-WEXTGWRE.js.map → chunk-N6C37HXD.js.map} +1 -1
- package/dist/{chunk-NW36BN7N.cjs → chunk-NGNVNRAZ.cjs} +17 -17
- package/dist/{chunk-NW36BN7N.cjs.map → chunk-NGNVNRAZ.cjs.map} +1 -1
- package/dist/{chunk-JR353MN5.js → chunk-NIKT7XSO.js} +7 -7
- package/dist/{chunk-JR353MN5.js.map → chunk-NIKT7XSO.js.map} +1 -1
- package/dist/{chunk-6I5QWA6A.js → chunk-NSWKBWPP.js} +6 -5
- package/dist/chunk-NSWKBWPP.js.map +1 -0
- package/dist/{chunk-2SN3KVWF.js → chunk-NYOZQE6P.js} +4 -4
- package/dist/{chunk-2SN3KVWF.js.map → chunk-NYOZQE6P.js.map} +1 -1
- package/dist/{chunk-CZUMVOPH.js → chunk-O3UT5D57.js} +19 -15
- package/dist/chunk-O3UT5D57.js.map +1 -0
- package/dist/{chunk-GU65FGY6.cjs → chunk-OCYZKZ24.cjs} +4 -4
- package/dist/{chunk-GU65FGY6.cjs.map → chunk-OCYZKZ24.cjs.map} +1 -1
- package/dist/{chunk-M64WMYYV.js → chunk-OPBELSKN.js} +6 -6
- package/dist/{chunk-M64WMYYV.js.map → chunk-OPBELSKN.js.map} +1 -1
- package/dist/{chunk-WM7NEOME.js → chunk-OUUG4RHO.js} +7 -7
- package/dist/{chunk-WM7NEOME.js.map → chunk-OUUG4RHO.js.map} +1 -1
- package/dist/{chunk-SKZNSOB7.cjs → chunk-OX2FNKIV.cjs} +6 -6
- package/dist/{chunk-SKZNSOB7.cjs.map → chunk-OX2FNKIV.cjs.map} +1 -1
- package/dist/{chunk-HKGFMJFK.js → chunk-PGBYMBGH.js} +16 -16
- package/dist/{chunk-HKGFMJFK.js.map → chunk-PGBYMBGH.js.map} +1 -1
- package/dist/{chunk-UT45YVPI.js → chunk-PK3NJSHQ.js} +8 -8
- package/dist/{chunk-UT45YVPI.js.map → chunk-PK3NJSHQ.js.map} +1 -1
- package/dist/{chunk-C6EWA3H2.js → chunk-PQXPYN23.js} +6 -6
- package/dist/{chunk-C6EWA3H2.js.map → chunk-PQXPYN23.js.map} +1 -1
- package/dist/{chunk-PHFJBQXU.cjs → chunk-PXTTIAC4.cjs} +8 -8
- package/dist/{chunk-PHFJBQXU.cjs.map → chunk-PXTTIAC4.cjs.map} +1 -1
- package/dist/{chunk-KG7RHDVX.js → chunk-Q6YOSQAM.js} +8 -8
- package/dist/{chunk-KG7RHDVX.js.map → chunk-Q6YOSQAM.js.map} +1 -1
- package/dist/{chunk-K2V3IOAX.js → chunk-QM7NQK2K.js} +3 -3
- package/dist/{chunk-K2V3IOAX.js.map → chunk-QM7NQK2K.js.map} +1 -1
- package/dist/{chunk-QTOFQB26.cjs → chunk-QQCEGAUQ.cjs} +16 -16
- package/dist/{chunk-QTOFQB26.cjs.map → chunk-QQCEGAUQ.cjs.map} +1 -1
- package/dist/chunk-RNUQWYJJ.cjs +93 -0
- package/dist/chunk-RNUQWYJJ.cjs.map +1 -0
- package/dist/{chunk-R3ZS6FU6.cjs → chunk-RX2FXCIH.cjs} +6 -6
- package/dist/{chunk-R3ZS6FU6.cjs.map → chunk-RX2FXCIH.cjs.map} +1 -1
- package/dist/{chunk-HPOURAKV.cjs → chunk-TACO5IWI.cjs} +14 -14
- package/dist/{chunk-HPOURAKV.cjs.map → chunk-TACO5IWI.cjs.map} +1 -1
- package/dist/{chunk-4JJFQZVY.js → chunk-TP6RGZ6A.js} +12 -12
- package/dist/{chunk-4JJFQZVY.js.map → chunk-TP6RGZ6A.js.map} +1 -1
- package/dist/{chunk-PNM7MPUX.cjs → chunk-U7QJJ3NR.cjs} +8 -8
- package/dist/{chunk-PNM7MPUX.cjs.map → chunk-U7QJJ3NR.cjs.map} +1 -1
- package/dist/{chunk-H5VMHDRD.cjs → chunk-UJDHRILS.cjs} +24 -6
- package/dist/chunk-UJDHRILS.cjs.map +1 -0
- package/dist/{chunk-EVCQCZMM.cjs → chunk-UNS7OCEA.cjs} +5 -5
- package/dist/{chunk-EVCQCZMM.cjs.map → chunk-UNS7OCEA.cjs.map} +1 -1
- package/dist/{chunk-SEDUAMDW.js → chunk-USEA7DB5.js} +3 -3
- package/dist/{chunk-SEDUAMDW.js.map → chunk-USEA7DB5.js.map} +1 -1
- package/dist/{chunk-LDYUVGD4.js → chunk-UUVI3TYW.js} +6 -6
- package/dist/{chunk-LDYUVGD4.js.map → chunk-UUVI3TYW.js.map} +1 -1
- package/dist/{chunk-QYZXTIB2.cjs → chunk-UW3KCCBT.cjs} +4 -4
- package/dist/{chunk-QYZXTIB2.cjs.map → chunk-UW3KCCBT.cjs.map} +1 -1
- package/dist/{chunk-PU4PBI3H.js → chunk-V5XVXQWE.js} +4 -4
- package/dist/{chunk-PU4PBI3H.js.map → chunk-V5XVXQWE.js.map} +1 -1
- package/dist/{chunk-GJKRSQEA.cjs → chunk-VCM4MR7N.cjs} +51 -47
- package/dist/chunk-VCM4MR7N.cjs.map +1 -0
- package/dist/{chunk-VXBVSYPA.cjs → chunk-VPHB56GK.cjs} +4 -3
- package/dist/chunk-VPHB56GK.cjs.map +1 -0
- package/dist/{chunk-TVWU4XBL.cjs → chunk-VWG54F6X.cjs} +6 -6
- package/dist/{chunk-TVWU4XBL.cjs.map → chunk-VWG54F6X.cjs.map} +1 -1
- package/dist/{chunk-DAO4UXR4.js → chunk-WG4NNC3P.js} +3 -3
- package/dist/{chunk-DAO4UXR4.js.map → chunk-WG4NNC3P.js.map} +1 -1
- package/dist/{chunk-LF6I2B7G.js → chunk-WLWSQKWI.js} +9 -9
- package/dist/{chunk-LF6I2B7G.js.map → chunk-WLWSQKWI.js.map} +1 -1
- package/dist/{chunk-VXOIOPGZ.cjs → chunk-WOVSJHY6.cjs} +5 -5
- package/dist/{chunk-VXOIOPGZ.cjs.map → chunk-WOVSJHY6.cjs.map} +1 -1
- package/dist/{chunk-QHXI2QDK.js → chunk-X2P5SPGB.js} +3 -3
- package/dist/{chunk-QHXI2QDK.js.map → chunk-X2P5SPGB.js.map} +1 -1
- package/dist/{chunk-JC66FRQX.js → chunk-XUCLNECV.js} +3 -3
- package/dist/{chunk-JC66FRQX.js.map → chunk-XUCLNECV.js.map} +1 -1
- package/dist/{chunk-VW52NVGM.cjs → chunk-Y2GYPMLW.cjs} +5 -5
- package/dist/{chunk-VW52NVGM.cjs.map → chunk-Y2GYPMLW.cjs.map} +1 -1
- package/dist/{chunk-ATK3F3MC.js → chunk-YAQB3UMC.js} +4 -4
- package/dist/{chunk-ATK3F3MC.js.map → chunk-YAQB3UMC.js.map} +1 -1
- package/dist/{chunk-B5QX6KGJ.js → chunk-YGESCFX2.js} +3 -3
- package/dist/{chunk-B5QX6KGJ.js.map → chunk-YGESCFX2.js.map} +1 -1
- package/dist/{chunk-PYJX2SBC.cjs → chunk-YQIDUJW2.cjs} +5 -5
- package/dist/{chunk-PYJX2SBC.cjs.map → chunk-YQIDUJW2.cjs.map} +1 -1
- package/dist/{chunk-UMS46KF4.cjs → chunk-YQVWDHP4.cjs} +7 -7
- package/dist/{chunk-UMS46KF4.cjs.map → chunk-YQVWDHP4.cjs.map} +1 -1
- package/dist/{chunk-NFEL5GNX.cjs → chunk-ZDZ7FW6V.cjs} +14 -14
- package/dist/{chunk-NFEL5GNX.cjs.map → chunk-ZDZ7FW6V.cjs.map} +1 -1
- package/dist/{chunk-3IDT3PZC.cjs → chunk-ZW2ZOEYM.cjs} +19 -13
- package/dist/chunk-ZW2ZOEYM.cjs.map +1 -0
- package/dist/components/Alert/index.cjs +5 -5
- package/dist/components/Alert/index.js +4 -4
- package/dist/components/AlertDialog/index.cjs +7 -7
- package/dist/components/AlertDialog/index.js +5 -5
- package/dist/components/AppShell/index.cjs +12 -12
- package/dist/components/AppShell/index.js +9 -9
- package/dist/components/AutocompleteInput/index.cjs +11 -11
- package/dist/components/AutocompleteInput/index.js +7 -7
- package/dist/components/Badge/Badge.d.ts.map +1 -1
- package/dist/components/Badge/Badge.recipe.d.ts +75 -41
- package/dist/components/Badge/Badge.recipe.d.ts.map +1 -1
- package/dist/components/Badge/index.cjs +3 -2
- package/dist/components/Badge/index.js +2 -1
- package/dist/components/Button/index.cjs +4 -4
- package/dist/components/Button/index.js +3 -3
- package/dist/components/Calendar/index.cjs +5 -5
- package/dist/components/Calendar/index.js +4 -4
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts +83 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts +17 -0
- package/dist/components/CheckboxGroup/CheckboxGroup.recipe.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts +13 -0
- package/dist/components/CheckboxGroup/CheckboxGroupContext.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts +58 -0
- package/dist/components/CheckboxGroup/CheckboxGroupItem.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/index.cjs +35 -0
- package/dist/components/CheckboxGroup/index.cjs.map +1 -0
- package/dist/components/CheckboxGroup/index.d.ts +4 -0
- package/dist/components/CheckboxGroup/index.d.ts.map +1 -0
- package/dist/components/CheckboxGroup/index.js +22 -0
- package/dist/components/CheckboxGroup/index.js.map +1 -0
- package/dist/components/CheckboxInput/CheckboxInput.d.ts +11 -2
- package/dist/components/CheckboxInput/CheckboxInput.d.ts.map +1 -1
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts +6 -0
- package/dist/components/CheckboxInput/CheckboxInput.recipe.d.ts.map +1 -1
- package/dist/components/CheckboxInput/index.cjs +5 -5
- package/dist/components/CheckboxInput/index.js +4 -4
- package/dist/components/CodeBlock/index.cjs +5 -5
- package/dist/components/CodeBlock/index.js +4 -4
- package/dist/components/ContextMenu/index.cjs +9 -9
- package/dist/components/ContextMenu/index.js +7 -7
- package/dist/components/DateInput/index.cjs +9 -9
- package/dist/components/DateInput/index.js +8 -8
- package/dist/components/DateRangeInput/index.cjs +9 -9
- package/dist/components/DateRangeInput/index.js +8 -8
- package/dist/components/DateTimeInput/index.cjs +11 -11
- package/dist/components/DateTimeInput/index.js +10 -10
- package/dist/components/DropdownMenu/index.cjs +10 -10
- package/dist/components/DropdownMenu/index.js +6 -6
- package/dist/components/EmptyState/index.cjs +3 -3
- package/dist/components/EmptyState/index.js +2 -2
- package/dist/components/Field/index.cjs +4 -4
- package/dist/components/Field/index.js +2 -2
- package/dist/components/Field/inputStyles.d.ts.map +1 -1
- package/dist/components/FileInput/index.cjs +6 -6
- package/dist/components/FileInput/index.js +5 -5
- package/dist/components/InputGroup/index.cjs +7 -7
- package/dist/components/InputGroup/index.js +3 -3
- package/dist/components/Item/index.cjs +3 -3
- package/dist/components/Item/index.js +2 -2
- package/dist/components/Layout/LayoutHeader.d.ts +7 -1
- package/dist/components/Layout/LayoutHeader.d.ts.map +1 -1
- package/dist/components/Layout/index.cjs +9 -9
- package/dist/components/Layout/index.js +4 -4
- package/dist/components/Lightbox/index.cjs +6 -6
- package/dist/components/Lightbox/index.js +4 -4
- package/dist/components/List/index.cjs +5 -5
- package/dist/components/List/index.js +3 -3
- package/dist/components/MetadataList/index.cjs +4 -4
- package/dist/components/MetadataList/index.js +2 -2
- package/dist/components/MultiSelect/index.cjs +9 -9
- package/dist/components/MultiSelect/index.js +8 -8
- package/dist/components/NumberInput/index.cjs +8 -8
- package/dist/components/NumberInput/index.js +7 -7
- package/dist/components/Pagination/index.cjs +5 -5
- package/dist/components/Pagination/index.js +4 -4
- package/dist/components/PasswordInput/index.cjs +9 -9
- package/dist/components/PasswordInput/index.js +8 -8
- package/dist/components/Popover/index.cjs +6 -6
- package/dist/components/Popover/index.js +4 -4
- package/dist/components/RadioGroup/index.cjs +6 -6
- package/dist/components/RadioGroup/index.js +4 -4
- package/dist/components/Schedule/TimeGridView.d.ts.map +1 -1
- package/dist/components/Schedule/index.cjs +25 -25
- package/dist/components/Schedule/index.js +10 -10
- package/dist/components/SearchFilterInput/index.cjs +25 -25
- package/dist/components/SearchFilterInput/index.js +17 -17
- package/dist/components/Select/index.cjs +10 -10
- package/dist/components/Select/index.js +8 -8
- package/dist/components/SideNav/index.cjs +12 -12
- package/dist/components/SideNav/index.js +6 -6
- package/dist/components/Slider/index.cjs +4 -4
- package/dist/components/Slider/index.js +3 -3
- package/dist/components/Spinner/index.cjs +3 -3
- package/dist/components/Spinner/index.js +2 -2
- package/dist/components/SplitButton/index.cjs +8 -8
- package/dist/components/SplitButton/index.js +7 -7
- package/dist/components/Stepper/index.cjs +3 -3
- package/dist/components/Stepper/index.js +2 -2
- package/dist/components/Switch/index.cjs +4 -4
- package/dist/components/Switch/index.js +3 -3
- package/dist/components/Table/index.cjs +48 -48
- package/dist/components/Table/index.js +22 -22
- package/dist/components/Tabs/index.cjs +10 -10
- package/dist/components/Tabs/index.js +5 -5
- package/dist/components/TagsInput/index.cjs +9 -9
- package/dist/components/TagsInput/index.js +8 -8
- package/dist/components/Text/index.cjs +3 -3
- package/dist/components/Text/index.js +1 -1
- package/dist/components/TextArea/index.cjs +6 -6
- package/dist/components/TextArea/index.js +5 -5
- package/dist/components/TextInput/index.cjs +8 -8
- package/dist/components/TextInput/index.js +7 -7
- package/dist/components/Thumbnail/index.cjs +5 -5
- package/dist/components/Thumbnail/index.js +4 -4
- package/dist/components/TimeInput/index.cjs +7 -7
- package/dist/components/TimeInput/index.js +6 -6
- package/dist/components/Toast/ToastViewport.d.ts.map +1 -1
- package/dist/components/Toast/index.cjs +7 -7
- package/dist/components/Toast/index.js +4 -4
- package/dist/components/ToggleButton/index.cjs +5 -5
- package/dist/components/ToggleButton/index.js +3 -3
- package/dist/components/TopNav/index.cjs +10 -10
- package/dist/components/TopNav/index.js +5 -5
- package/dist/index.cjs +216 -207
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +52 -51
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/dist/chunk-3IDT3PZC.cjs.map +0 -1
- package/dist/chunk-3M23WX6K.js.map +0 -1
- package/dist/chunk-6I5QWA6A.js.map +0 -1
- package/dist/chunk-7TJ2O56S.js.map +0 -1
- package/dist/chunk-CZUMVOPH.js.map +0 -1
- package/dist/chunk-GJKRSQEA.cjs.map +0 -1
- package/dist/chunk-GUUCIG7U.js.map +0 -1
- package/dist/chunk-H2EMKCWT.js +0 -78
- package/dist/chunk-H2EMKCWT.js.map +0 -1
- package/dist/chunk-H5VMHDRD.cjs.map +0 -1
- package/dist/chunk-H7VK36SZ.cjs.map +0 -1
- package/dist/chunk-KUXFEAT4.cjs +0 -80
- package/dist/chunk-KUXFEAT4.cjs.map +0 -1
- package/dist/chunk-MHAXS4GO.cjs.map +0 -1
- package/dist/chunk-NXTDP6AX.js.map +0 -1
- package/dist/chunk-VXBVSYPA.cjs.map +0 -1
package/README.md
CHANGED
|
@@ -153,6 +153,7 @@ mode details, scoped theming examples, and per-instance overrides.
|
|
|
153
153
|
### Forms
|
|
154
154
|
|
|
155
155
|
- **CheckboxInput** — checkbox with label and description
|
|
156
|
+
- **CheckboxGroup** — controlled checkbox group for multi-value selection
|
|
156
157
|
- **AutocompleteInput** — searchable autocomplete input (combobox)
|
|
157
158
|
- **DateInput** — date picker field
|
|
158
159
|
- **DateRangeInput** — date range picker field
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkAC4E3WQA_cjs = require('./chunk-AC4E3WQA.cjs');
|
|
4
4
|
var chunkRU6JG3FS_cjs = require('./chunk-RU6JG3FS.cjs');
|
|
5
5
|
var chunkSPDVNY2Z_cjs = require('./chunk-SPDVNY2Z.cjs');
|
|
6
6
|
var react = require('react');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
|
|
9
|
-
var ContextMenuItem =
|
|
9
|
+
var ContextMenuItem = chunkAC4E3WQA_cjs.DropdownMenuItem;
|
|
10
10
|
var styles = {
|
|
11
11
|
trigger: chunkRU6JG3FS_cjs.css({
|
|
12
12
|
display: "contents"
|
|
@@ -156,9 +156,9 @@ function ContextMenu({
|
|
|
156
156
|
},
|
|
157
157
|
[isDisabled, show]
|
|
158
158
|
);
|
|
159
|
-
const handleMenuKeyDown =
|
|
159
|
+
const handleMenuKeyDown = chunkAC4E3WQA_cjs.useMenuKeyboard(menuRef, hide);
|
|
160
160
|
const menuNode = react.useMemo(
|
|
161
|
-
() => items == null ? menuContent :
|
|
161
|
+
() => items == null ? menuContent : chunkAC4E3WQA_cjs.renderMenuItems(items),
|
|
162
162
|
[items, menuContent]
|
|
163
163
|
);
|
|
164
164
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -192,11 +192,11 @@ function ContextMenu({
|
|
|
192
192
|
left: position.x,
|
|
193
193
|
position: "fixed",
|
|
194
194
|
top: position.y,
|
|
195
|
-
width:
|
|
195
|
+
width: chunkAC4E3WQA_cjs.formatMenuWidth(menuWidth),
|
|
196
196
|
...style
|
|
197
197
|
},
|
|
198
198
|
tabIndex: -1,
|
|
199
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
199
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(chunkAC4E3WQA_cjs.DropdownMenuContext, { value: contextValue, children: menuNode })
|
|
200
200
|
}
|
|
201
201
|
)
|
|
202
202
|
] });
|
|
@@ -205,5 +205,5 @@ ContextMenu.displayName = "ContextMenu";
|
|
|
205
205
|
|
|
206
206
|
exports.ContextMenu = ContextMenu;
|
|
207
207
|
exports.ContextMenuItem = ContextMenuItem;
|
|
208
|
-
//# sourceMappingURL=chunk-
|
|
209
|
-
//# sourceMappingURL=chunk-
|
|
208
|
+
//# sourceMappingURL=chunk-2AOR4EVA.cjs.map
|
|
209
|
+
//# sourceMappingURL=chunk-2AOR4EVA.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ContextMenu/ContextMenu.tsx"],"names":["DropdownMenuItem","css","useId","useRef","useState","useCallback","useEffect","useImperativeHandle","useMemo","useMenuKeyboard","renderMenuItems","jsxs","Fragment","jsx","cx","formatMenuWidth","DropdownMenuContext"],"mappings":"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","file":"chunk-DYMZ4DLN.cjs","sourcesContent":["import {\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {\n DropdownMenuContext,\n DropdownMenuItem,\n type DropdownMenuDivider,\n type DropdownMenuItemData,\n type DropdownMenuItemProps,\n type DropdownMenuOption,\n type DropdownMenuSection,\n} from 'components/DropdownMenu';\nimport {\n formatMenuWidth,\n renderMenuItems,\n useMenuKeyboard,\n} from 'components/DropdownMenu/menuUtils';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type ContextMenuSize = ButtonSize;\nexport type ContextMenuItemData = DropdownMenuItemData;\nexport type ContextMenuItemProps = DropdownMenuItemProps;\nexport type ContextMenuDivider = DropdownMenuDivider;\nexport type ContextMenuSection = DropdownMenuSection;\nexport type ContextMenuOption = DropdownMenuOption;\nexport const ContextMenuItem = DropdownMenuItem;\n\ninterface ContextMenuBaseProps {\n /**\n * The region that triggers the context menu on right-click.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the menu surface.\n */\n className?: string;\n /**\n * Test ID applied to the trigger wrapper.\n */\n 'data-testid'?: string;\n /**\n * Whether to auto-focus the first menu item on open.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether the context menu is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Width of the menu surface.\n * @default 160\n */\n menuWidth?: number | string;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the trigger wrapper.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Menu item size.\n * @default 'md'\n */\n size?: ContextMenuSize;\n /**\n * Inline styles applied to the menu surface.\n */\n style?: CSSProperties;\n}\n\ninterface ContextMenuDataProps extends ContextMenuBaseProps {\n items: ReadonlyArray<ContextMenuOption>;\n menuContent?: never;\n}\n\ninterface ContextMenuCompoundProps extends ContextMenuBaseProps {\n items?: never;\n menuContent: ReactNode;\n}\n\nexport type ContextMenuProps = ContextMenuDataProps | ContextMenuCompoundProps;\n\nconst styles = {\n trigger: css({\n display: 'contents',\n }),\n menu: css({\n display: 'none',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n minW: '40',\n m: 0,\n overflowY: 'auto',\n p: '1',\n borderWidth: 0,\n borderRadius: 'md',\n _open: {\n display: 'flex',\n },\n bg: 'bg',\n boxShadow: 'lg',\n borderStyle: 'solid',\n borderColor: 'border',\n }),\n} as const;\n\nfunction isPopoverOpen(element: HTMLElement | null): boolean {\n if (element == null) {\n return false;\n }\n if (element.hasAttribute('popover-open')) {\n return true;\n }\n try {\n return element.matches(':popover-open');\n } catch {\n return false;\n }\n}\n\n/**\n * Right-click context menu for contextual actions on a region.\n */\nexport function ContextMenu({\n children,\n className,\n 'data-testid': dataTestId,\n hasAutoFocus = true,\n isDisabled = false,\n menuWidth = 160,\n onOpenChange,\n ref,\n size = 'md',\n style,\n ...props\n}: ContextMenuProps): React.JSX.Element {\n const menuId = useId();\n const menuRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [position, setPosition] = useState({x: 0, y: 0});\n const items = 'items' in props ? props.items : undefined;\n const menuContent = 'menuContent' in props ? props.menuContent : undefined;\n\n const hide = useCallback(() => {\n if (!isOpen) {\n return;\n }\n menuRef.current?.hidePopover();\n setIsOpen(false);\n onOpenChange?.(false);\n }, [isOpen, onOpenChange]);\n\n const focusFirstItem = useCallback(() => {\n const firstItem = menuRef.current?.querySelector<HTMLElement>(\n '[role=\"menuitem\"]:not(:disabled):not([aria-disabled=\"true\"])',\n );\n firstItem?.focus();\n }, []);\n\n const show = useCallback(\n (x: number, y: number) => {\n setPosition({x, y});\n if (isPopoverOpen(menuRef.current)) {\n menuRef.current?.hidePopover();\n }\n menuRef.current?.showPopover();\n setIsOpen(true);\n onOpenChange?.(true);\n requestAnimationFrame(() => {\n if (menuRef.current != null) {\n const rect = menuRef.current.getBoundingClientRect();\n const margin = 4;\n const clampedX = Math.min(x, window.innerWidth - rect.width - margin);\n const clampedY = Math.min(\n y,\n window.innerHeight - rect.height - margin,\n );\n setPosition({\n x: Math.max(0, clampedX),\n y: Math.max(0, clampedY),\n });\n }\n if (hasAutoFocus) {\n focusFirstItem();\n }\n });\n },\n [focusFirstItem, hasAutoFocus, onOpenChange],\n );\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleMouseDown = (event: globalThis.MouseEvent) => {\n const target = event.target;\n if (\n target instanceof Node &&\n (menuRef.current?.contains(target) === true ||\n triggerRef.current?.contains(target) === true)\n ) {\n return;\n }\n hide();\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, [hide, isOpen]);\n\n useImperativeHandle(ref, () => triggerRef.current as HTMLDivElement);\n\n const contextValue = useMemo(\n () => ({\n closeMenu: hide,\n menuSize: size,\n }),\n [hide, size],\n );\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n return;\n }\n event.preventDefault();\n show(event.clientX, event.clientY);\n },\n [isDisabled, show],\n );\n\n const handleTriggerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (isDisabled) {\n return;\n }\n if (\n event.key !== 'ContextMenu' &&\n !(event.shiftKey && event.key === 'F10')\n ) {\n return;\n }\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n show(rect.left, rect.bottom);\n },\n [isDisabled, show],\n );\n\n const handleMenuKeyDown = useMenuKeyboard(menuRef, hide);\n\n const menuNode = useMemo(\n (): ReactNode => (items == null ? menuContent : renderMenuItems(items)),\n [items, menuContent],\n );\n\n return (\n <>\n <div\n aria-controls={isOpen ? menuId : undefined}\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n className={styles.trigger}\n data-testid={dataTestId}\n onContextMenu={handleContextMenu}\n onKeyDown={handleTriggerKeyDown}\n ref={triggerRef}\n role=\"button\"\n tabIndex={0}>\n {children}\n </div>\n <div\n aria-label=\"Context menu\"\n className={cx(styles.menu, className)}\n id={menuId}\n onKeyDown={handleMenuKeyDown}\n popover=\"manual\"\n ref={menuRef}\n role=\"menu\"\n style={{\n left: position.x,\n position: 'fixed',\n top: position.y,\n width: formatMenuWidth(menuWidth),\n ...style,\n }}\n tabIndex={-1}>\n <DropdownMenuContext value={contextValue}>\n {menuNode}\n </DropdownMenuContext>\n </div>\n </>\n );\n}\n\nContextMenu.displayName = 'ContextMenu';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/ContextMenu/ContextMenu.tsx"],"names":["DropdownMenuItem","css","useId","useRef","useState","useCallback","useEffect","useImperativeHandle","useMemo","useMenuKeyboard","renderMenuItems","jsxs","Fragment","jsx","cx","formatMenuWidth","DropdownMenuContext"],"mappings":"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","file":"chunk-2AOR4EVA.cjs","sourcesContent":["import {\n useCallback,\n useEffect,\n useId,\n useImperativeHandle,\n useMemo,\n useRef,\n useState,\n type CSSProperties,\n type KeyboardEvent,\n type MouseEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport type {ButtonSize} from 'components/Button';\nimport {\n DropdownMenuContext,\n DropdownMenuItem,\n type DropdownMenuDivider,\n type DropdownMenuItemData,\n type DropdownMenuItemProps,\n type DropdownMenuOption,\n type DropdownMenuSection,\n} from 'components/DropdownMenu';\nimport {\n formatMenuWidth,\n renderMenuItems,\n useMenuKeyboard,\n} from 'components/DropdownMenu/menuUtils';\nimport {cx} from 'internal/cx';\nimport {css} from 'styled-system/css';\n\nexport type ContextMenuSize = ButtonSize;\nexport type ContextMenuItemData = DropdownMenuItemData;\nexport type ContextMenuItemProps = DropdownMenuItemProps;\nexport type ContextMenuDivider = DropdownMenuDivider;\nexport type ContextMenuSection = DropdownMenuSection;\nexport type ContextMenuOption = DropdownMenuOption;\nexport const ContextMenuItem = DropdownMenuItem;\n\ninterface ContextMenuBaseProps {\n /**\n * The region that triggers the context menu on right-click.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the menu surface.\n */\n className?: string;\n /**\n * Test ID applied to the trigger wrapper.\n */\n 'data-testid'?: string;\n /**\n * Whether to auto-focus the first menu item on open.\n * @default true\n */\n hasAutoFocus?: boolean;\n /**\n * Whether the context menu is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Width of the menu surface.\n * @default 160\n */\n menuWidth?: number | string;\n /**\n * Called when the menu open state changes.\n */\n onOpenChange?: (isOpen: boolean) => void;\n /**\n * Ref forwarded to the trigger wrapper.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Menu item size.\n * @default 'md'\n */\n size?: ContextMenuSize;\n /**\n * Inline styles applied to the menu surface.\n */\n style?: CSSProperties;\n}\n\ninterface ContextMenuDataProps extends ContextMenuBaseProps {\n items: ReadonlyArray<ContextMenuOption>;\n menuContent?: never;\n}\n\ninterface ContextMenuCompoundProps extends ContextMenuBaseProps {\n items?: never;\n menuContent: ReactNode;\n}\n\nexport type ContextMenuProps = ContextMenuDataProps | ContextMenuCompoundProps;\n\nconst styles = {\n trigger: css({\n display: 'contents',\n }),\n menu: css({\n display: 'none',\n flexDirection: 'column',\n gap: '0.5',\n maxH: '80',\n minW: '40',\n m: 0,\n overflowY: 'auto',\n p: '1',\n borderWidth: 0,\n borderRadius: 'md',\n _open: {\n display: 'flex',\n },\n bg: 'bg',\n boxShadow: 'lg',\n borderStyle: 'solid',\n borderColor: 'border',\n }),\n} as const;\n\nfunction isPopoverOpen(element: HTMLElement | null): boolean {\n if (element == null) {\n return false;\n }\n if (element.hasAttribute('popover-open')) {\n return true;\n }\n try {\n return element.matches(':popover-open');\n } catch {\n return false;\n }\n}\n\n/**\n * Right-click context menu for contextual actions on a region.\n */\nexport function ContextMenu({\n children,\n className,\n 'data-testid': dataTestId,\n hasAutoFocus = true,\n isDisabled = false,\n menuWidth = 160,\n onOpenChange,\n ref,\n size = 'md',\n style,\n ...props\n}: ContextMenuProps): React.JSX.Element {\n const menuId = useId();\n const menuRef = useRef<HTMLDivElement | null>(null);\n const triggerRef = useRef<HTMLDivElement | null>(null);\n const [isOpen, setIsOpen] = useState(false);\n const [position, setPosition] = useState({x: 0, y: 0});\n const items = 'items' in props ? props.items : undefined;\n const menuContent = 'menuContent' in props ? props.menuContent : undefined;\n\n const hide = useCallback(() => {\n if (!isOpen) {\n return;\n }\n menuRef.current?.hidePopover();\n setIsOpen(false);\n onOpenChange?.(false);\n }, [isOpen, onOpenChange]);\n\n const focusFirstItem = useCallback(() => {\n const firstItem = menuRef.current?.querySelector<HTMLElement>(\n '[role=\"menuitem\"]:not(:disabled):not([aria-disabled=\"true\"])',\n );\n firstItem?.focus();\n }, []);\n\n const show = useCallback(\n (x: number, y: number) => {\n setPosition({x, y});\n if (isPopoverOpen(menuRef.current)) {\n menuRef.current?.hidePopover();\n }\n menuRef.current?.showPopover();\n setIsOpen(true);\n onOpenChange?.(true);\n requestAnimationFrame(() => {\n if (menuRef.current != null) {\n const rect = menuRef.current.getBoundingClientRect();\n const margin = 4;\n const clampedX = Math.min(x, window.innerWidth - rect.width - margin);\n const clampedY = Math.min(\n y,\n window.innerHeight - rect.height - margin,\n );\n setPosition({\n x: Math.max(0, clampedX),\n y: Math.max(0, clampedY),\n });\n }\n if (hasAutoFocus) {\n focusFirstItem();\n }\n });\n },\n [focusFirstItem, hasAutoFocus, onOpenChange],\n );\n\n useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n const handleMouseDown = (event: globalThis.MouseEvent) => {\n const target = event.target;\n if (\n target instanceof Node &&\n (menuRef.current?.contains(target) === true ||\n triggerRef.current?.contains(target) === true)\n ) {\n return;\n }\n hide();\n };\n\n document.addEventListener('mousedown', handleMouseDown);\n return () => {\n document.removeEventListener('mousedown', handleMouseDown);\n };\n }, [hide, isOpen]);\n\n useImperativeHandle(ref, () => triggerRef.current as HTMLDivElement);\n\n const contextValue = useMemo(\n () => ({\n closeMenu: hide,\n menuSize: size,\n }),\n [hide, size],\n );\n\n const handleContextMenu = useCallback(\n (event: MouseEvent<HTMLDivElement>) => {\n if (isDisabled) {\n return;\n }\n event.preventDefault();\n show(event.clientX, event.clientY);\n },\n [isDisabled, show],\n );\n\n const handleTriggerKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n if (isDisabled) {\n return;\n }\n if (\n event.key !== 'ContextMenu' &&\n !(event.shiftKey && event.key === 'F10')\n ) {\n return;\n }\n event.preventDefault();\n const rect = event.currentTarget.getBoundingClientRect();\n show(rect.left, rect.bottom);\n },\n [isDisabled, show],\n );\n\n const handleMenuKeyDown = useMenuKeyboard(menuRef, hide);\n\n const menuNode = useMemo(\n (): ReactNode => (items == null ? menuContent : renderMenuItems(items)),\n [items, menuContent],\n );\n\n return (\n <>\n <div\n aria-controls={isOpen ? menuId : undefined}\n aria-expanded={isOpen}\n aria-haspopup=\"menu\"\n className={styles.trigger}\n data-testid={dataTestId}\n onContextMenu={handleContextMenu}\n onKeyDown={handleTriggerKeyDown}\n ref={triggerRef}\n role=\"button\"\n tabIndex={0}>\n {children}\n </div>\n <div\n aria-label=\"Context menu\"\n className={cx(styles.menu, className)}\n id={menuId}\n onKeyDown={handleMenuKeyDown}\n popover=\"manual\"\n ref={menuRef}\n role=\"menu\"\n style={{\n left: position.x,\n position: 'fixed',\n top: position.y,\n width: formatMenuWidth(menuWidth),\n ...style,\n }}\n tabIndex={-1}>\n <DropdownMenuContext value={contextValue}>\n {menuNode}\n </DropdownMenuContext>\n </div>\n </>\n );\n}\n\nContextMenu.displayName = 'ContextMenu';\n"]}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZW2ZOEYM_cjs = require('./chunk-ZW2ZOEYM.cjs');
|
|
4
|
+
var chunkRX2FXCIH_cjs = require('./chunk-RX2FXCIH.cjs');
|
|
5
|
+
var chunkXPHXAZCE_cjs = require('./chunk-XPHXAZCE.cjs');
|
|
6
|
+
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
7
|
+
var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
|
|
8
|
+
var react = require('react');
|
|
9
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
|
|
11
|
+
// src/components/CheckboxGroup/CheckboxGroup.recipe.ts
|
|
12
|
+
var checkboxGroupRecipe = chunkJRBQKFVO_cjs.cva({
|
|
13
|
+
base: {
|
|
14
|
+
display: "flex"
|
|
15
|
+
},
|
|
16
|
+
variants: {
|
|
17
|
+
orientation: {
|
|
18
|
+
vertical: {
|
|
19
|
+
flexDirection: "column",
|
|
20
|
+
gap: "0.5"
|
|
21
|
+
},
|
|
22
|
+
horizontal: {
|
|
23
|
+
flexDirection: "row",
|
|
24
|
+
flexWrap: "wrap",
|
|
25
|
+
columnGap: "4",
|
|
26
|
+
rowGap: "0"
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
defaultVariants: {
|
|
31
|
+
orientation: "vertical"
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
var CheckboxGroupContext = react.createContext(null);
|
|
35
|
+
CheckboxGroupContext.displayName = "CheckboxGroupContext";
|
|
36
|
+
function CheckboxGroup({
|
|
37
|
+
children,
|
|
38
|
+
className,
|
|
39
|
+
"data-testid": dataTestId,
|
|
40
|
+
description,
|
|
41
|
+
htmlName,
|
|
42
|
+
isDisabled = false,
|
|
43
|
+
isLabelHidden = false,
|
|
44
|
+
isOptional,
|
|
45
|
+
isRequired,
|
|
46
|
+
label,
|
|
47
|
+
labelTooltip,
|
|
48
|
+
onChange,
|
|
49
|
+
orientation = "vertical",
|
|
50
|
+
ref,
|
|
51
|
+
size = "md",
|
|
52
|
+
status,
|
|
53
|
+
style,
|
|
54
|
+
value
|
|
55
|
+
}) {
|
|
56
|
+
const inputId = react.useId();
|
|
57
|
+
const labelId = `${inputId}-label`;
|
|
58
|
+
const descriptionID = chunkQAO6QMNQ_cjs.isReactNode(description) ? `${inputId}-description` : void 0;
|
|
59
|
+
const statusMessageID = chunkXPHXAZCE_cjs.getStatusMessageID(inputId, status);
|
|
60
|
+
const describedBy = chunkXPHXAZCE_cjs.getDescribedBy(descriptionID, statusMessageID);
|
|
61
|
+
const handleItemChange = react.useCallback(
|
|
62
|
+
(itemValue, isChecked) => {
|
|
63
|
+
if (isChecked) {
|
|
64
|
+
onChange(value.includes(itemValue) ? value : [...value, itemValue]);
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
onChange(value.filter((currentValue) => currentValue !== itemValue));
|
|
68
|
+
},
|
|
69
|
+
[onChange, value]
|
|
70
|
+
);
|
|
71
|
+
const selectedValues = react.useMemo(() => new Set(value), [value]);
|
|
72
|
+
const contextValue = react.useMemo(
|
|
73
|
+
() => ({
|
|
74
|
+
htmlName,
|
|
75
|
+
isDisabled,
|
|
76
|
+
onChange: handleItemChange,
|
|
77
|
+
orientation,
|
|
78
|
+
selectedValues,
|
|
79
|
+
size
|
|
80
|
+
}),
|
|
81
|
+
[handleItemChange, htmlName, isDisabled, orientation, selectedValues, size]
|
|
82
|
+
);
|
|
83
|
+
const necessity = chunkRX2FXCIH_cjs.getNecessity(isOptional, isRequired);
|
|
84
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85
|
+
chunkRX2FXCIH_cjs.Field,
|
|
86
|
+
{
|
|
87
|
+
className,
|
|
88
|
+
"data-testid": dataTestId,
|
|
89
|
+
inputId,
|
|
90
|
+
isDisabled,
|
|
91
|
+
isLabelHidden,
|
|
92
|
+
...necessity,
|
|
93
|
+
description,
|
|
94
|
+
descriptionID,
|
|
95
|
+
label,
|
|
96
|
+
labelAs: "span",
|
|
97
|
+
labelId,
|
|
98
|
+
labelTooltip,
|
|
99
|
+
ref,
|
|
100
|
+
status: status == null ? void 0 : { ...status, messageID: statusMessageID },
|
|
101
|
+
statusVariant: "detached",
|
|
102
|
+
style,
|
|
103
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
104
|
+
"div",
|
|
105
|
+
{
|
|
106
|
+
"aria-describedby": describedBy,
|
|
107
|
+
"aria-invalid": status?.type === "error" || void 0,
|
|
108
|
+
"aria-labelledby": labelId,
|
|
109
|
+
className: checkboxGroupRecipe({ orientation }),
|
|
110
|
+
id: inputId,
|
|
111
|
+
role: "group",
|
|
112
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CheckboxGroupContext, { value: contextValue, children })
|
|
113
|
+
}
|
|
114
|
+
)
|
|
115
|
+
}
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
CheckboxGroup.displayName = "CheckboxGroup";
|
|
119
|
+
function CheckboxGroupItem({
|
|
120
|
+
className,
|
|
121
|
+
"data-testid": dataTestId,
|
|
122
|
+
description,
|
|
123
|
+
endContent,
|
|
124
|
+
endContentPosition = "inline",
|
|
125
|
+
isDisabled: isItemDisabled = false,
|
|
126
|
+
label,
|
|
127
|
+
ref,
|
|
128
|
+
startContent,
|
|
129
|
+
style,
|
|
130
|
+
value
|
|
131
|
+
}) {
|
|
132
|
+
const context = react.use(CheckboxGroupContext);
|
|
133
|
+
if (context == null) {
|
|
134
|
+
throw new Error("CheckboxGroupItem must be used within a CheckboxGroup");
|
|
135
|
+
}
|
|
136
|
+
const isDisabled = context.isDisabled || isItemDisabled;
|
|
137
|
+
const isChecked = context.selectedValues.has(value);
|
|
138
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
139
|
+
chunkZW2ZOEYM_cjs.CheckboxInput,
|
|
140
|
+
{
|
|
141
|
+
className,
|
|
142
|
+
"data-testid": dataTestId,
|
|
143
|
+
description,
|
|
144
|
+
endContent,
|
|
145
|
+
endContentPosition,
|
|
146
|
+
htmlName: context.htmlName,
|
|
147
|
+
htmlValue: value,
|
|
148
|
+
isDisabled,
|
|
149
|
+
label,
|
|
150
|
+
onChange: (checked) => context.onChange(value, checked),
|
|
151
|
+
ref,
|
|
152
|
+
size: context.size,
|
|
153
|
+
startContent,
|
|
154
|
+
style,
|
|
155
|
+
value: isChecked,
|
|
156
|
+
width: context.orientation === "horizontal" ? "auto" : "full"
|
|
157
|
+
}
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
CheckboxGroupItem.displayName = "CheckboxGroupItem";
|
|
161
|
+
|
|
162
|
+
exports.CheckboxGroup = CheckboxGroup;
|
|
163
|
+
exports.CheckboxGroupItem = CheckboxGroupItem;
|
|
164
|
+
//# sourceMappingURL=chunk-2N3PIXZ5.cjs.map
|
|
165
|
+
//# sourceMappingURL=chunk-2N3PIXZ5.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/CheckboxGroup/CheckboxGroup.recipe.ts","../src/components/CheckboxGroup/CheckboxGroupContext.tsx","../src/components/CheckboxGroup/CheckboxGroup.tsx","../src/components/CheckboxGroup/CheckboxGroupItem.tsx"],"names":["cva","createContext","useId","isReactNode","getStatusMessageID","getDescribedBy","useCallback","useMemo","getNecessity","jsx","Field","use","CheckboxInput"],"mappings":"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","file":"chunk-2N3PIXZ5.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const checkboxGroupRecipe = cva({\n base: {\n display: 'flex',\n },\n variants: {\n orientation: {\n vertical: {\n flexDirection: 'column',\n gap: '0.5',\n },\n horizontal: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n columnGap: '4',\n rowGap: '0',\n },\n },\n },\n defaultVariants: {\n orientation: 'vertical',\n },\n});\n\nexport type CheckboxGroupVariants = RecipeVariantProps<\n typeof checkboxGroupRecipe\n>;\n","import {createContext} from 'react';\nimport type {CheckboxInputSize} from 'components/CheckboxInput';\n\nexport type CheckboxGroupOrientation = 'horizontal' | 'vertical';\nexport type CheckboxGroupSize = CheckboxInputSize;\n\nexport interface CheckboxGroupContextValue {\n htmlName?: string;\n isDisabled: boolean;\n onChange: (value: string, isChecked: boolean) => void;\n orientation: CheckboxGroupOrientation;\n selectedValues: Set<string>;\n size: CheckboxGroupSize;\n}\n\nexport const CheckboxGroupContext =\n createContext<CheckboxGroupContextValue | null>(null);\n\nCheckboxGroupContext.displayName = 'CheckboxGroupContext';\n","import {\n useCallback,\n useId,\n useMemo,\n type CSSProperties,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {checkboxGroupRecipe} from 'components/CheckboxGroup/CheckboxGroup.recipe';\nimport {\n CheckboxGroupContext,\n type CheckboxGroupOrientation,\n type CheckboxGroupSize,\n} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputStatus,\n} from 'components/Field';\nimport {getDescribedBy, getStatusMessageID} from 'components/Field/inputUtils';\nimport isReactNode from 'internal/isReactNode';\n\nexport type {CheckboxGroupOrientation} from 'components/CheckboxGroup/CheckboxGroupContext';\n\nexport type CheckboxGroupProps = {\n /**\n * Checkbox items to render.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the field root.\n */\n className?: string;\n /**\n * Test ID applied to the field root.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the label.\n */\n description?: ReactNode;\n /**\n * HTML name attribute shared by checkbox inputs for native form submission.\n */\n htmlName?: string;\n /**\n * Whether all checkbox items are 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 * Label text for the checkbox group.\n */\n label: string;\n /**\n * Tooltip content shown next to the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Callback fired when the selected values change.\n * Memoize with `useCallback` to avoid unnecessary re-renders of checkbox items.\n */\n onChange: (value: string[]) => void;\n /**\n * Layout direction of the checkbox items.\n * @default 'vertical'\n */\n orientation?: CheckboxGroupOrientation;\n /**\n * Ref forwarded to the field root.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Size of the checkbox controls.\n * @default 'md'\n */\n size?: CheckboxGroupSize;\n /**\n * Validation status displayed below the group.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the field root.\n */\n style?: CSSProperties;\n /**\n * The currently selected values.\n */\n value: string[];\n} & FieldNecessity;\n\n/**\n * A controlled checkbox group for multi-value selection.\n */\nexport function CheckboxGroup({\n children,\n className,\n 'data-testid': dataTestId,\n description,\n htmlName,\n isDisabled = false,\n isLabelHidden = false,\n isOptional,\n isRequired,\n label,\n labelTooltip,\n onChange,\n orientation = 'vertical',\n ref,\n size = 'md',\n status,\n style,\n value,\n}: CheckboxGroupProps): React.JSX.Element {\n const inputId = useId();\n const labelId = `${inputId}-label`;\n const descriptionID = isReactNode(description)\n ? `${inputId}-description`\n : undefined;\n const statusMessageID = getStatusMessageID(inputId, status);\n const describedBy = getDescribedBy(descriptionID, statusMessageID);\n const handleItemChange = useCallback(\n (itemValue: string, isChecked: boolean) => {\n if (isChecked) {\n onChange(value.includes(itemValue) ? value : [...value, itemValue]);\n return;\n }\n\n onChange(value.filter(currentValue => currentValue !== itemValue));\n },\n [onChange, value],\n );\n const selectedValues = useMemo(() => new Set(value), [value]);\n const contextValue = useMemo(\n () => ({\n htmlName,\n isDisabled,\n onChange: handleItemChange,\n orientation,\n selectedValues,\n size,\n }),\n [handleItemChange, htmlName, isDisabled, orientation, selectedValues, size],\n );\n\n const necessity = getNecessity(isOptional, isRequired);\n\n return (\n <Field\n className={className}\n data-testid={dataTestId}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...necessity}\n description={description}\n descriptionID={descriptionID}\n label={label}\n labelAs=\"span\"\n labelId={labelId}\n labelTooltip={labelTooltip}\n ref={ref}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n statusVariant=\"detached\"\n style={style}>\n <div\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-labelledby={labelId}\n className={checkboxGroupRecipe({orientation})}\n id={inputId}\n role=\"group\">\n <CheckboxGroupContext value={contextValue}>\n {children}\n </CheckboxGroupContext>\n </div>\n </Field>\n );\n}\n\nCheckboxGroup.displayName = 'CheckboxGroup';\n","import {use, type CSSProperties, type ReactNode, type Ref} from 'react';\nimport {CheckboxGroupContext} from 'components/CheckboxGroup/CheckboxGroupContext';\nimport {CheckboxInput, type CheckboxInputProps} from 'components/CheckboxInput';\n\nexport interface CheckboxGroupItemProps {\n /**\n * Additional CSS class names applied to the item root.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text displayed below the item label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the label and description.\n */\n endContent?: ReactNode;\n /**\n * Where to place `endContent` within the item.\n * @default 'inline'\n */\n endContentPosition?: CheckboxInputProps['endContentPosition'];\n /**\n * Whether this checkbox item is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Label text for the checkbox item.\n */\n label: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Content rendered after the checkbox control and before the label.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the item root.\n */\n style?: CSSProperties;\n /**\n * Value represented by this checkbox item.\n */\n value: string;\n}\n\n/**\n * An individual checkbox option within a `CheckboxGroup`.\n */\nexport function CheckboxGroupItem({\n className,\n 'data-testid': dataTestId,\n description,\n endContent,\n endContentPosition = 'inline',\n isDisabled: isItemDisabled = false,\n label,\n ref,\n startContent,\n style,\n value,\n}: CheckboxGroupItemProps): React.JSX.Element {\n const context = use(CheckboxGroupContext);\n if (context == null) {\n throw new Error('CheckboxGroupItem must be used within a CheckboxGroup');\n }\n\n const isDisabled = context.isDisabled || isItemDisabled;\n const isChecked = context.selectedValues.has(value);\n\n return (\n <CheckboxInput\n className={className}\n data-testid={dataTestId}\n description={description}\n endContent={endContent}\n endContentPosition={endContentPosition}\n htmlName={context.htmlName}\n htmlValue={value}\n isDisabled={isDisabled}\n label={label}\n onChange={checked => context.onChange(value, checked)}\n ref={ref}\n size={context.size}\n startContent={startContent}\n style={style}\n value={isChecked}\n width={context.orientation === 'horizontal' ? 'auto' : 'full'}\n />\n );\n}\n\nCheckboxGroupItem.displayName = 'CheckboxGroupItem';\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Item } from './chunk-
|
|
1
|
+
import { Item } from './chunk-GKYGZWSQ.js';
|
|
2
2
|
import { getStatusMessageID, getDescribedBy } from './chunk-G6HS52US.js';
|
|
3
3
|
import { fieldRecipe } from './chunk-U7ALNPFJ.js';
|
|
4
|
-
import { Spinner } from './chunk-
|
|
4
|
+
import { Spinner } from './chunk-X2P5SPGB.js';
|
|
5
5
|
import { VisuallyHidden } from './chunk-V2V5TTTL.js';
|
|
6
|
-
import { Text } from './chunk-
|
|
6
|
+
import { Text } from './chunk-5GSRIOXE.js';
|
|
7
7
|
import { Tooltip } from './chunk-KWZMXX4F.js';
|
|
8
8
|
import { mergeRefs } from './chunk-SGLIDI6R.js';
|
|
9
9
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
@@ -67,7 +67,8 @@ var checkboxInputRecipe = sva({
|
|
|
67
67
|
},
|
|
68
68
|
icon: {
|
|
69
69
|
w: "70%",
|
|
70
|
-
h: "70%"
|
|
70
|
+
h: "70%",
|
|
71
|
+
mt: "1px"
|
|
71
72
|
},
|
|
72
73
|
label: {
|
|
73
74
|
cursor: "pointer"
|
|
@@ -84,7 +85,8 @@ var checkboxInputRecipe = sva({
|
|
|
84
85
|
variants: {
|
|
85
86
|
size: {
|
|
86
87
|
sm: { box: { w: "4.5", h: "4.5" } },
|
|
87
|
-
md: { box: { w: "5.5", h: "5.5" } }
|
|
88
|
+
md: { box: { w: "5.5", h: "5.5" } },
|
|
89
|
+
lg: { box: { w: "6.5", h: "6.5" } }
|
|
88
90
|
},
|
|
89
91
|
isChecked: {
|
|
90
92
|
true: { box: { bg: "primary", borderColor: "primary" } },
|
|
@@ -112,6 +114,7 @@ function CheckboxInput({
|
|
|
112
114
|
endContent,
|
|
113
115
|
endContentPosition = "inline",
|
|
114
116
|
htmlName,
|
|
117
|
+
htmlValue,
|
|
115
118
|
isLabelHidden = false,
|
|
116
119
|
isOptional,
|
|
117
120
|
isRequired,
|
|
@@ -128,7 +131,8 @@ function CheckboxInput({
|
|
|
128
131
|
className,
|
|
129
132
|
"data-testid": dataTestId,
|
|
130
133
|
style,
|
|
131
|
-
ref
|
|
134
|
+
ref,
|
|
135
|
+
width = "full"
|
|
132
136
|
}) {
|
|
133
137
|
const inputId = useId();
|
|
134
138
|
const descriptionId = useId();
|
|
@@ -184,7 +188,8 @@ function CheckboxInput({
|
|
|
184
188
|
readOnly: isReadOnly,
|
|
185
189
|
ref: mergeRefs(ref, inputRef),
|
|
186
190
|
required: isRequired,
|
|
187
|
-
type: "checkbox"
|
|
191
|
+
type: "checkbox",
|
|
192
|
+
value: htmlValue
|
|
188
193
|
}
|
|
189
194
|
),
|
|
190
195
|
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: classes.box, children: isLoading ? /* @__PURE__ */ jsx(
|
|
@@ -227,7 +232,8 @@ function CheckboxInput({
|
|
|
227
232
|
isDisabled,
|
|
228
233
|
label: labelNode,
|
|
229
234
|
leadingContent: control,
|
|
230
|
-
startContent
|
|
235
|
+
startContent,
|
|
236
|
+
width
|
|
231
237
|
}
|
|
232
238
|
);
|
|
233
239
|
return /* @__PURE__ */ jsxs("div", { className: cx(classes.root, className), style, children: [
|
|
@@ -238,5 +244,5 @@ function CheckboxInput({
|
|
|
238
244
|
CheckboxInput.displayName = "CheckboxInput";
|
|
239
245
|
|
|
240
246
|
export { CheckboxInput };
|
|
241
|
-
//# sourceMappingURL=chunk-
|
|
242
|
-
//# sourceMappingURL=chunk-
|
|
247
|
+
//# sourceMappingURL=chunk-3PCXFOOS.js.map
|
|
248
|
+
//# sourceMappingURL=chunk-3PCXFOOS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/CheckboxInput/CheckboxInput.recipe.ts","../src/components/CheckboxInput/CheckboxInput.tsx"],"names":[],"mappings":"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","file":"chunk-3PCXFOOS.js","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","import {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,10 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkBYV7NXC5_cjs = require('./chunk-BYV7NXC5.cjs');
|
|
4
4
|
var chunkQB2BSOM4_cjs = require('./chunk-QB2BSOM4.cjs');
|
|
5
5
|
var chunk3PEK2Q54_cjs = require('./chunk-3PEK2Q54.cjs');
|
|
6
6
|
var chunk2MXK2SDR_cjs = require('./chunk-2MXK2SDR.cjs');
|
|
7
|
-
var
|
|
7
|
+
var chunkCKDB7QNT_cjs = require('./chunk-CKDB7QNT.cjs');
|
|
8
8
|
var chunkVPWNRWNO_cjs = require('./chunk-VPWNRWNO.cjs');
|
|
9
9
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
10
10
|
var chunkJ4PIYOWT_cjs = require('./chunk-J4PIYOWT.cjs');
|
|
@@ -126,7 +126,7 @@ function TopNav({
|
|
|
126
126
|
}) {
|
|
127
127
|
const renderMode = useTopNavRenderMode();
|
|
128
128
|
const mobileContent = useTopNavMobileContent();
|
|
129
|
-
const { hasAutoToggle } =
|
|
129
|
+
const { hasAutoToggle } = chunkBYV7NXC5_cjs.useAppShellMobile();
|
|
130
130
|
const resolvedStartContent = startContent ?? children;
|
|
131
131
|
if (process.env.NODE_ENV !== "production") {
|
|
132
132
|
if (chunkQAO6QMNQ_cjs.isReactNode(startContent) && chunkQAO6QMNQ_cjs.isReactNode(children)) {
|
|
@@ -152,7 +152,7 @@ function TopNav({
|
|
|
152
152
|
chunkQAO6QMNQ_cjs.isReactNode(heading) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: classes2.heading, children: heading }) : null,
|
|
153
153
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes2.mobileEnd, children: [
|
|
154
154
|
endContent,
|
|
155
|
-
hasMobileDrawerContent && hasAutoToggle ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
+
hasMobileDrawerContent && hasAutoToggle ? /* @__PURE__ */ jsxRuntime.jsx(chunkBYV7NXC5_cjs.MobileNavToggle, {}) : null
|
|
156
156
|
] })
|
|
157
157
|
]
|
|
158
158
|
}
|
|
@@ -163,7 +163,7 @@ function TopNav({
|
|
|
163
163
|
return null;
|
|
164
164
|
}
|
|
165
165
|
const classes2 = topNavRecipe();
|
|
166
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
166
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(chunkBYV7NXC5_cjs.MobileNav, { header: heading, children: [
|
|
167
167
|
hasCollapsibleContent ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: classes2.drawerItems, children: [
|
|
168
168
|
resolvedStartContent,
|
|
169
169
|
centerContent
|
|
@@ -255,9 +255,9 @@ function TopNavHeading({
|
|
|
255
255
|
children: [
|
|
256
256
|
chunkQAO6QMNQ_cjs.isReactNode(logo) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.logo, children: logo }) : null,
|
|
257
257
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: classes.text, children: [
|
|
258
|
-
superheading != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
259
|
-
heading != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
260
|
-
subheading != null ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
258
|
+
superheading != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Text, { color: "secondary", type: "supporting", children: superheading }) : null,
|
|
259
|
+
heading != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Text, { type: "large", weight: "semibold", children: heading }) : null,
|
|
260
|
+
subheading != null ? /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Text, { color: "secondary", type: "supporting", children: subheading }) : null
|
|
261
261
|
] }),
|
|
262
262
|
chunkQAO6QMNQ_cjs.isReactNode(headerEndContent) ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: classes.endContent, children: headerEndContent }) : null
|
|
263
263
|
]
|
|
@@ -347,11 +347,11 @@ function TopNavItem({
|
|
|
347
347
|
target
|
|
348
348
|
}) {
|
|
349
349
|
const renderMode = useTopNavRenderMode();
|
|
350
|
-
const { closeMobileNav } =
|
|
350
|
+
const { closeMobileNav } = chunkBYV7NXC5_cjs.useAppShellMobile();
|
|
351
351
|
const isDrawer = renderMode === "drawer";
|
|
352
352
|
const opensInNewTab = target === "_blank";
|
|
353
353
|
const linkRel = chunk3PEK2Q54_cjs.useRel({ target, rel });
|
|
354
|
-
const labelContent = children ?? /* @__PURE__ */ jsxRuntime.jsx(
|
|
354
|
+
const labelContent = children ?? /* @__PURE__ */ jsxRuntime.jsx(chunkCKDB7QNT_cjs.Text, { color: "inherit", size: "md", type: "body", weight: "inherit", children: label });
|
|
355
355
|
const handleClick = (event) => {
|
|
356
356
|
if (isDisabled) {
|
|
357
357
|
event.preventDefault();
|
|
@@ -405,5 +405,5 @@ exports.TopNavHeading = TopNavHeading;
|
|
|
405
405
|
exports.TopNavItem = TopNavItem;
|
|
406
406
|
exports.TopNavMobileContentContext = TopNavMobileContentContext;
|
|
407
407
|
exports.TopNavRenderContext = TopNavRenderContext;
|
|
408
|
-
//# sourceMappingURL=chunk-
|
|
409
|
-
//# sourceMappingURL=chunk-
|
|
408
|
+
//# sourceMappingURL=chunk-4MIIXRZN.cjs.map
|
|
409
|
+
//# sourceMappingURL=chunk-4MIIXRZN.cjs.map
|