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
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
var
|
|
3
|
+
var chunk4MIIXRZN_cjs = require('./chunk-4MIIXRZN.cjs');
|
|
4
|
+
var chunkMJHEPDDX_cjs = require('./chunk-MJHEPDDX.cjs');
|
|
5
|
+
var chunkBYV7NXC5_cjs = require('./chunk-BYV7NXC5.cjs');
|
|
6
|
+
var chunkLTHPJRFK_cjs = require('./chunk-LTHPJRFK.cjs');
|
|
7
7
|
var chunk6SHL7FYO_cjs = require('./chunk-6SHL7FYO.cjs');
|
|
8
8
|
var chunkQAO6QMNQ_cjs = require('./chunk-QAO6QMNQ.cjs');
|
|
9
9
|
var chunkJRBQKFVO_cjs = require('./chunk-JRBQKFVO.cjs');
|
|
@@ -270,9 +270,9 @@ function AppShell({
|
|
|
270
270
|
}),
|
|
271
271
|
[isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled]
|
|
272
272
|
);
|
|
273
|
-
const mobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
274
|
-
const drawerMobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
275
|
-
const topNavContent = hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
273
|
+
const mobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer-content", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : null;
|
|
274
|
+
const drawerMobileContentValue = hasSideNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer-content", children: sideNav }) : null;
|
|
275
|
+
const topNavContent = hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavMobileContentContext, { value: mobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavRenderContext, { value: "mobile-bar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: topNavPresenceRef, children: topNav }) }) }) : topNav;
|
|
276
276
|
const headerContent = hasTopNav || chunkQAO6QMNQ_cjs.isReactNode(banner) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: chunkSPDVNY2Z_cjs.cx(isAuto && styles.headerSticky), ref: headerRef, children: /* @__PURE__ */ jsxRuntime.jsxs("header", { style: { flexShrink: 0 }, children: [
|
|
277
277
|
chunkQAO6QMNQ_cjs.isReactNode(banner) ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.banner, children: banner }) : null,
|
|
278
278
|
hasTopNav ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: topNavPresenceRef, children: topNavContent }) : null
|
|
@@ -284,16 +284,16 @@ function AppShell({
|
|
|
284
284
|
className: styles.autoMobileTopBar,
|
|
285
285
|
role: "navigation",
|
|
286
286
|
children: [
|
|
287
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
288
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
287
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "topbar", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }),
|
|
288
|
+
/* @__PURE__ */ jsxRuntime.jsx(chunkBYV7NXC5_cjs.MobileNavToggle, {})
|
|
289
289
|
]
|
|
290
290
|
}
|
|
291
291
|
) }) : void 0;
|
|
292
|
-
const sideNavPanel = showSideNavInline ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
292
|
+
const sideNavPanel = showSideNavInline ? /* @__PURE__ */ jsxRuntime.jsx(chunkLTHPJRFK_cjs.LayoutPanel, { isScrollable: isFill, padding: 0, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.slotContents, ref: sideNavPresenceRef, children: sideNav }) }) : void 0;
|
|
293
293
|
const sideNavContent = sideNavPanel != null && isAuto ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles.sideNavSticky, children: sideNavPanel }) : sideNavPanel;
|
|
294
294
|
const contentClassName = variant === "default" && hasTopNavContent && showSideNavInline ? styles.contentTransparent : variant === "default" ? styles.contentSurface : void 0;
|
|
295
295
|
const mainInner = /* @__PURE__ */ jsxRuntime.jsx(
|
|
296
|
-
|
|
296
|
+
chunkLTHPJRFK_cjs.LayoutContent,
|
|
297
297
|
{
|
|
298
298
|
as: "main",
|
|
299
299
|
className: contentClassName,
|
|
@@ -309,7 +309,7 @@ function AppShell({
|
|
|
309
309
|
mainInner
|
|
310
310
|
] }) : mainInner;
|
|
311
311
|
const rootStyle = { ...style };
|
|
312
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
312
|
+
return /* @__PURE__ */ jsxRuntime.jsx(chunkBYV7NXC5_cjs.AppShellMobileContext, { value: mobileContextValue, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
313
313
|
"div",
|
|
314
314
|
{
|
|
315
315
|
className: chunkSPDVNY2Z_cjs.cx(appShellRecipe({ height, variant }), className),
|
|
@@ -327,7 +327,7 @@ function AppShell({
|
|
|
327
327
|
}
|
|
328
328
|
),
|
|
329
329
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
330
|
-
|
|
330
|
+
chunkLTHPJRFK_cjs.Layout,
|
|
331
331
|
{
|
|
332
332
|
content: mainContent,
|
|
333
333
|
hasDividers: navHasDividers,
|
|
@@ -341,8 +341,8 @@ function AppShell({
|
|
|
341
341
|
}
|
|
342
342
|
),
|
|
343
343
|
isBelowBreakpoint && !isMobileNavDisabled ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
344
|
-
hasSideNav && !hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
345
|
-
hasTopNav && hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
344
|
+
hasSideNav && !hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunkMJHEPDDX_cjs.SideNavRenderContext, { value: "drawer", children: sideNav }) : null,
|
|
345
|
+
hasTopNav && hasTopNavContent ? /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavMobileContentContext, { value: drawerMobileContentValue, children: /* @__PURE__ */ jsxRuntime.jsx(chunk4MIIXRZN_cjs.TopNavRenderContext, { value: "drawer", children: topNav }) }) : null
|
|
346
346
|
] }) : null
|
|
347
347
|
]
|
|
348
348
|
}
|
|
@@ -351,5 +351,5 @@ function AppShell({
|
|
|
351
351
|
AppShell.displayName = "AppShell";
|
|
352
352
|
|
|
353
353
|
exports.AppShell = AppShell;
|
|
354
|
-
//# sourceMappingURL=chunk-
|
|
355
|
-
//# sourceMappingURL=chunk-
|
|
354
|
+
//# sourceMappingURL=chunk-NGNVNRAZ.cjs.map
|
|
355
|
+
//# sourceMappingURL=chunk-NGNVNRAZ.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/AppShell/AppShell.recipe.ts","../src/components/AppShell/useSlotPresence.tsx","../src/internal/sharedResizeObserver.ts","../src/internal/useMediaQuery.ts","../src/components/AppShell/AppShell.tsx"],"names":["cva","useState","useRef","useCallback","observer","useEffect","useSyncExternalStore","css","useId","isReactNode","useMemo","jsx","SideNavRenderContext","TopNavMobileContentContext","TopNavRenderContext","cx","jsxs","MobileNavToggle","LayoutPanel","LayoutContent","AppShellMobileContext","mergeRefs","Layout","Fragment"],"mappings":"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","file":"chunk-NW36BN7N.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const appShellRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n variants: {\n height: {\n fill: {\n h: '100dvh',\n },\n auto: {\n minH: '100dvh',\n },\n },\n variant: {\n default: {\n bg: 'bg.subtle',\n },\n section: {\n bg: 'bg',\n },\n },\n },\n defaultVariants: {\n height: 'fill',\n variant: 'default',\n },\n});\n\nexport type AppShellVariants = RecipeVariantProps<typeof appShellRecipe>;\n","import {useCallback, useEffect, useRef, useState} from 'react';\n\nfunction hasChildContent(element: HTMLElement): boolean {\n for (const node of element.childNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {\n return true;\n }\n }\n\n return false;\n}\n\nexport function useSlotPresence(initialValue = false): {\n hasContent: boolean;\n ref: (node: HTMLDivElement | null) => void;\n} {\n const [hasContent, setHasContent] = useState(initialValue);\n const observerRef = useRef<MutationObserver | null>(null);\n\n const ref = useCallback((node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (node == null) {\n setHasContent(false);\n return;\n }\n\n setHasContent(hasChildContent(node));\n\n const observer = new MutationObserver(() => {\n setHasContent(hasChildContent(node));\n });\n observer.observe(node, {childList: true});\n observerRef.current = observer;\n }, []);\n\n useEffect(() => {\n return () => observerRef.current?.disconnect();\n }, []);\n\n return {hasContent, ref};\n}\n","type ResizeCallback = (entry: ResizeObserverEntry) => void;\n\nlet observer: ResizeObserver | null = null;\nconst callbacks = new Map<Element, ResizeCallback>();\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver(entries => {\n for (const entry of entries) {\n callbacks.get(entry.target)?.(entry);\n }\n });\n\n return observer;\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): void {\n callbacks.set(element, callback);\n getObserver().observe(element);\n}\n\nexport function unobserveResize(element: Element): void {\n callbacks.delete(element);\n\n if (observer == null) {\n return;\n }\n\n observer.unobserve(element);\n\n if (callbacks.size === 0) {\n observer.disconnect();\n observer = null;\n }\n}\n","import {useCallback, useSyncExternalStore} from 'react';\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\n/**\n * Subscribe to a browser media query using React's external-store API.\n */\nexport function useMediaQuery(query: string): boolean {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mediaQueryList = window.matchMedia(query);\n mediaQueryList.addEventListener('change', onStoreChange);\n return () => mediaQueryList.removeEventListener('change', onStoreChange);\n },\n [query],\n );\n\n const getSnapshot = useCallback(() => {\n return window.matchMedia(query).matches;\n }, [query]);\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useId, useMemo, useRef, useState} from 'react';\nimport {appShellRecipe} from 'components/AppShell/AppShell.recipe';\nimport {\n AppShellMobileContext,\n type AppShellMobileContextValue,\n} from 'components/AppShell/AppShellMobileContext';\nimport {useSlotPresence} from 'components/AppShell/useSlotPresence';\nimport {Layout, LayoutContent, LayoutPanel} from 'components/Layout';\nimport {SideNavRenderContext} from 'components/SideNav';\nimport {\n TopNavMobileContentContext,\n TopNavRenderContext,\n} from 'components/TopNav';\nimport {MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {observeResize, unobserveResize} from 'internal/sharedResizeObserver';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useMediaQuery} from 'internal/useMediaQuery';\nimport {css} from 'styled-system/css';\n\nexport type AppShellBreakpoint = 'sm' | 'md' | 'lg' | 'none';\nexport type AppShellVariant = 'default' | 'section';\nexport type AppShellHeight = 'fill' | 'auto';\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport interface AppShellProps {\n /**\n * System-wide content rendered above the top navigation.\n */\n banner?: ReactNode;\n /**\n * Main content rendered inside the shell's `<main>` landmark.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Padding applied to the main content area. Default is `0`.\n */\n contentPadding?: SpacingToken;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Height behavior. `fill` keeps scrolling inside the shell; `auto` lets the\n * page grow with content.\n */\n height?: AppShellHeight;\n /**\n * Disable generated mobile navigation.\n */\n isMobileNavDisabled?: boolean;\n /**\n * Breakpoint below which mobile navigation is used.\n * @default 'md'\n */\n mobileBreakpoint?: AppShellBreakpoint;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Side navigation slot, typically a SideNav.\n */\n sideNav?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Top navigation slot, typically a TopNav.\n */\n topNav?: ReactNode;\n /**\n * Background and divider style for the shell.\n */\n variant?: AppShellVariant;\n}\n\nconst BREAKPOINT_VALUES: Record<AppShellBreakpoint, number> = {\n sm: 640,\n md: 768,\n lg: 1024,\n none: 0,\n};\n\nconst styles = {\n skipLink: css({\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n zIndex: 9999,\n bg: 'bg',\n color: 'primary',\n textDecoration: 'none',\n fontWeight: 'semibold',\n _focus: {\n position: 'fixed',\n top: '2',\n insetInlineStart: '2',\n w: 'auto',\n h: 'auto',\n p: '2',\n m: 0,\n overflow: 'visible',\n clipPath: 'none',\n whiteSpace: 'normal',\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n headerSticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }),\n banner: css({\n flexShrink: 0,\n }),\n autoMobileTopBar: css({\n display: 'flex',\n alignItems: 'center',\n h: '12',\n px: '2',\n }),\n sideNavSticky: css({\n flexShrink: 0,\n overflow: 'clip',\n position: 'sticky',\n top: 'var(--appshell-header-height, 0px)',\n h: 'calc(100dvh - var(--appshell-header-height, 0px))',\n display: 'flex',\n flexDirection: 'column',\n }),\n elevatedWrapper: css({\n position: 'relative',\n display: 'flex',\n flex: 1,\n minH: 0,\n h: '100%',\n }),\n elevatedBackdrop: css({\n position: 'absolute',\n inset: 0,\n bg: 'bg',\n borderStartStartRadius: '2xl',\n pointerEvents: 'none',\n }),\n contentSurface: css({\n bg: 'bg',\n }),\n contentTransparent: css({\n bg: 'transparent',\n isolation: 'isolate',\n }),\n slotContents: css({\n display: 'contents',\n }),\n};\n\ntype AppShellRootStyle = CSSProperties & {\n '--appshell-header-height'?: string;\n};\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport function AppShell({\n banner,\n children,\n className,\n contentPadding,\n 'data-testid': dataTestId,\n height = 'fill',\n isMobileNavDisabled = false,\n mobileBreakpoint = 'md',\n ref,\n sideNav,\n style,\n topNav,\n variant = 'default',\n}: AppShellProps): React.JSX.Element {\n const mainContentId = useId();\n const breakpointQuery =\n mobileBreakpoint === 'none'\n ? '(max-width: 0px)'\n : `(max-width: ${BREAKPOINT_VALUES[mobileBreakpoint]}px)`;\n const isBelowBreakpoint = useMediaQuery(breakpointQuery);\n const [isMobileNavOpen, setIsMobileNavOpen] = useState(false);\n const {ref: topNavPresenceRef, hasContent: hasTopNavContent} =\n useSlotPresence(isReactNode(topNav));\n const {ref: sideNavPresenceRef, hasContent: hasSideNavContent} =\n useSlotPresence(isReactNode(sideNav));\n const hasTopNav = isReactNode(topNav);\n const hasSideNav = isReactNode(sideNav);\n const hasNavContent = hasTopNavContent || hasSideNavContent;\n const mobileNavEnabled = !isMobileNavDisabled && hasNavContent;\n const showSideNavInline = hasSideNav && !isBelowBreakpoint;\n const isAuto = height === 'auto';\n const isFill = height === 'fill';\n const navHasDividers = variant === 'section';\n const headerRef = useRef<HTMLDivElement>(null);\n const shellRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isAuto || headerRef.current == null || shellRef.current == null) {\n return;\n }\n\n const headerElement = headerRef.current;\n const shellElement = shellRef.current;\n const updateHeight = () => {\n shellElement.style.setProperty(\n '--appshell-header-height',\n `${headerElement.getBoundingClientRect().height}px`,\n );\n };\n\n observeResize(headerElement, updateHeight);\n return () => unobserveResize(headerElement);\n }, [isAuto]);\n\n const mobileContextValue = useMemo<AppShellMobileContextValue>(\n () => ({\n closeMobileNav: () => setIsMobileNavOpen(false),\n hasAutoToggle: true,\n isMobile: isBelowBreakpoint,\n isMobileNavEnabled: mobileNavEnabled,\n isMobileNavOpen,\n openMobileNav: () => mobileNavEnabled && setIsMobileNavOpen(true),\n toggleMobileNav: () => {\n if (mobileNavEnabled) {\n setIsMobileNavOpen(prev => !prev);\n }\n },\n }),\n [isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled],\n );\n\n /* eslint-disable @eslint-react/no-unstable-context-value -- sideNav ReactNode prop prevents stable memoization */\n const mobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n ) : null;\n const drawerMobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n {sideNav}\n </SideNavRenderContext>\n ) : null;\n /* eslint-enable @eslint-react/no-unstable-context-value */\n const topNavContent =\n hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? (\n <TopNavMobileContentContext value={mobileContentValue}>\n <TopNavRenderContext value=\"mobile-bar\">\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNav}\n </div>\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : (\n topNav\n );\n const headerContent =\n hasTopNav || isReactNode(banner) ? (\n <div className={cx(isAuto && styles.headerSticky)} ref={headerRef}>\n <header style={{flexShrink: 0}}>\n {isReactNode(banner) ? (\n <div className={styles.banner}>{banner}</div>\n ) : null}\n {hasTopNav ? (\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNavContent}\n </div>\n ) : null}\n </header>\n </div>\n ) : undefined;\n const autoMobileTopBar =\n !isMobileNavDisabled &&\n isBelowBreakpoint &&\n !hasTopNavContent &&\n hasSideNav ? (\n <header style={{flexShrink: 0}}>\n <div\n aria-label=\"Mobile navigation\"\n className={styles.autoMobileTopBar}\n role=\"navigation\">\n <SideNavRenderContext value=\"topbar\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n <MobileNavToggle />\n </div>\n </header>\n ) : undefined;\n const sideNavPanel = showSideNavInline ? (\n <LayoutPanel isScrollable={isFill} padding={0}>\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </LayoutPanel>\n ) : undefined;\n const sideNavContent =\n sideNavPanel != null && isAuto ? (\n <div className={styles.sideNavSticky}>{sideNavPanel}</div>\n ) : (\n sideNavPanel\n );\n const contentClassName =\n variant === 'default' && hasTopNavContent && showSideNavInline\n ? styles.contentTransparent\n : variant === 'default'\n ? styles.contentSurface\n : undefined;\n const mainInner = (\n <LayoutContent\n as=\"main\"\n className={contentClassName}\n id={mainContentId}\n isScrollable={isFill}\n padding={contentPadding ?? 0}>\n {children}\n </LayoutContent>\n );\n const shouldElevateWithCorner =\n variant === 'default' && hasTopNavContent && showSideNavInline;\n const mainContent = shouldElevateWithCorner ? (\n <div className={styles.elevatedWrapper}>\n <div className={styles.elevatedBackdrop} />\n {mainInner}\n </div>\n ) : (\n mainInner\n );\n const rootStyle: AppShellRootStyle = {...style};\n\n return (\n <AppShellMobileContext value={mobileContextValue}>\n <div\n className={cx(appShellRecipe({height, variant}), className)}\n data-testid={dataTestId}\n ref={mergeRefs(ref, shellRef)}\n style={rootStyle}>\n <a\n className={styles.skipLink}\n data-testid=\"skip-to-content\"\n href={`#${mainContentId}`}>\n Skip to content\n </a>\n <Layout\n content={mainContent}\n hasDividers={navHasDividers}\n header={\n <>\n {headerContent}\n {autoMobileTopBar}\n </>\n }\n height={height}\n padding={0}\n start={sideNavContent}\n />\n {isBelowBreakpoint && !isMobileNavDisabled ? (\n <>\n {hasSideNav && !hasTopNavContent ? (\n <SideNavRenderContext value=\"drawer\">\n {sideNav}\n </SideNavRenderContext>\n ) : null}\n {hasTopNav && hasTopNavContent ? (\n <TopNavMobileContentContext value={drawerMobileContentValue}>\n <TopNavRenderContext value=\"drawer\">\n {topNav}\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : null}\n </>\n ) : null}\n </div>\n </AppShellMobileContext>\n );\n}\n\nAppShell.displayName = 'AppShell';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/AppShell/AppShell.recipe.ts","../src/components/AppShell/useSlotPresence.tsx","../src/internal/sharedResizeObserver.ts","../src/internal/useMediaQuery.ts","../src/components/AppShell/AppShell.tsx"],"names":["cva","useState","useRef","useCallback","observer","useEffect","useSyncExternalStore","css","useId","isReactNode","useMemo","jsx","SideNavRenderContext","TopNavMobileContentContext","TopNavRenderContext","cx","jsxs","MobileNavToggle","LayoutPanel","LayoutContent","AppShellMobileContext","mergeRefs","Layout","Fragment"],"mappings":"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","file":"chunk-NGNVNRAZ.cjs","sourcesContent":["import {cva, type RecipeVariantProps} from 'styled-system/css';\n\nexport const appShellRecipe = cva({\n base: {\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n },\n variants: {\n height: {\n fill: {\n h: '100dvh',\n },\n auto: {\n minH: '100dvh',\n },\n },\n variant: {\n default: {\n bg: 'bg.subtle',\n },\n section: {\n bg: 'bg',\n },\n },\n },\n defaultVariants: {\n height: 'fill',\n variant: 'default',\n },\n});\n\nexport type AppShellVariants = RecipeVariantProps<typeof appShellRecipe>;\n","import {useCallback, useEffect, useRef, useState} from 'react';\n\nfunction hasChildContent(element: HTMLElement): boolean {\n for (const node of element.childNodes) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n return true;\n }\n\n if (node.nodeType === Node.TEXT_NODE && node.textContent?.trim() !== '') {\n return true;\n }\n }\n\n return false;\n}\n\nexport function useSlotPresence(initialValue = false): {\n hasContent: boolean;\n ref: (node: HTMLDivElement | null) => void;\n} {\n const [hasContent, setHasContent] = useState(initialValue);\n const observerRef = useRef<MutationObserver | null>(null);\n\n const ref = useCallback((node: HTMLDivElement | null) => {\n observerRef.current?.disconnect();\n observerRef.current = null;\n\n if (node == null) {\n setHasContent(false);\n return;\n }\n\n setHasContent(hasChildContent(node));\n\n const observer = new MutationObserver(() => {\n setHasContent(hasChildContent(node));\n });\n observer.observe(node, {childList: true});\n observerRef.current = observer;\n }, []);\n\n useEffect(() => {\n return () => observerRef.current?.disconnect();\n }, []);\n\n return {hasContent, ref};\n}\n","type ResizeCallback = (entry: ResizeObserverEntry) => void;\n\nlet observer: ResizeObserver | null = null;\nconst callbacks = new Map<Element, ResizeCallback>();\n\nfunction getObserver(): ResizeObserver {\n observer ??= new ResizeObserver(entries => {\n for (const entry of entries) {\n callbacks.get(entry.target)?.(entry);\n }\n });\n\n return observer;\n}\n\nexport function observeResize(\n element: Element,\n callback: ResizeCallback,\n): void {\n callbacks.set(element, callback);\n getObserver().observe(element);\n}\n\nexport function unobserveResize(element: Element): void {\n callbacks.delete(element);\n\n if (observer == null) {\n return;\n }\n\n observer.unobserve(element);\n\n if (callbacks.size === 0) {\n observer.disconnect();\n observer = null;\n }\n}\n","import {useCallback, useSyncExternalStore} from 'react';\n\nfunction getServerSnapshot(): boolean {\n return false;\n}\n\n/**\n * Subscribe to a browser media query using React's external-store API.\n */\nexport function useMediaQuery(query: string): boolean {\n const subscribe = useCallback(\n (onStoreChange: () => void) => {\n const mediaQueryList = window.matchMedia(query);\n mediaQueryList.addEventListener('change', onStoreChange);\n return () => mediaQueryList.removeEventListener('change', onStoreChange);\n },\n [query],\n );\n\n const getSnapshot = useCallback(() => {\n return window.matchMedia(query).matches;\n }, [query]);\n\n return useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useEffect, useId, useMemo, useRef, useState} from 'react';\nimport {appShellRecipe} from 'components/AppShell/AppShell.recipe';\nimport {\n AppShellMobileContext,\n type AppShellMobileContextValue,\n} from 'components/AppShell/AppShellMobileContext';\nimport {useSlotPresence} from 'components/AppShell/useSlotPresence';\nimport {Layout, LayoutContent, LayoutPanel} from 'components/Layout';\nimport {SideNavRenderContext} from 'components/SideNav';\nimport {\n TopNavMobileContentContext,\n TopNavRenderContext,\n} from 'components/TopNav';\nimport {MobileNavToggle} from 'internal/MobileNav';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport {mergeRefs} from 'internal/mergeRefs';\nimport {observeResize, unobserveResize} from 'internal/sharedResizeObserver';\nimport type {SpacingToken} from 'internal/spacingTokens';\nimport {useMediaQuery} from 'internal/useMediaQuery';\nimport {css} from 'styled-system/css';\n\nexport type AppShellBreakpoint = 'sm' | 'md' | 'lg' | 'none';\nexport type AppShellVariant = 'default' | 'section';\nexport type AppShellHeight = 'fill' | 'auto';\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport interface AppShellProps {\n /**\n * System-wide content rendered above the top navigation.\n */\n banner?: ReactNode;\n /**\n * Main content rendered inside the shell's `<main>` landmark.\n */\n children: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Padding applied to the main content area. Default is `0`.\n */\n contentPadding?: SpacingToken;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Height behavior. `fill` keeps scrolling inside the shell; `auto` lets the\n * page grow with content.\n */\n height?: AppShellHeight;\n /**\n * Disable generated mobile navigation.\n */\n isMobileNavDisabled?: boolean;\n /**\n * Breakpoint below which mobile navigation is used.\n * @default 'md'\n */\n mobileBreakpoint?: AppShellBreakpoint;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Side navigation slot, typically a SideNav.\n */\n sideNav?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Top navigation slot, typically a TopNav.\n */\n topNav?: ReactNode;\n /**\n * Background and divider style for the shell.\n */\n variant?: AppShellVariant;\n}\n\nconst BREAKPOINT_VALUES: Record<AppShellBreakpoint, number> = {\n sm: 640,\n md: 768,\n lg: 1024,\n none: 0,\n};\n\nconst styles = {\n skipLink: css({\n position: 'absolute',\n top: 0,\n insetInlineStart: 0,\n w: '1px',\n h: '1px',\n p: 0,\n m: '-1px',\n overflow: 'hidden',\n clipPath: 'inset(50%)',\n whiteSpace: 'nowrap',\n borderWidth: 0,\n zIndex: 9999,\n bg: 'bg',\n color: 'primary',\n textDecoration: 'none',\n fontWeight: 'semibold',\n _focus: {\n position: 'fixed',\n top: '2',\n insetInlineStart: '2',\n w: 'auto',\n h: 'auto',\n p: '2',\n m: 0,\n overflow: 'visible',\n clipPath: 'none',\n whiteSpace: 'normal',\n outlineWidth: 'focus',\n outlineStyle: 'solid',\n outlineColor: 'primary',\n outlineOffset: 'focusOffset',\n },\n }),\n headerSticky: css({\n position: 'sticky',\n top: 0,\n zIndex: 1,\n }),\n banner: css({\n flexShrink: 0,\n }),\n autoMobileTopBar: css({\n display: 'flex',\n alignItems: 'center',\n h: '12',\n px: '2',\n }),\n sideNavSticky: css({\n flexShrink: 0,\n overflow: 'clip',\n position: 'sticky',\n top: 'var(--appshell-header-height, 0px)',\n h: 'calc(100dvh - var(--appshell-header-height, 0px))',\n display: 'flex',\n flexDirection: 'column',\n }),\n elevatedWrapper: css({\n position: 'relative',\n display: 'flex',\n flex: 1,\n minH: 0,\n h: '100%',\n }),\n elevatedBackdrop: css({\n position: 'absolute',\n inset: 0,\n bg: 'bg',\n borderStartStartRadius: '2xl',\n pointerEvents: 'none',\n }),\n contentSurface: css({\n bg: 'bg',\n }),\n contentTransparent: css({\n bg: 'transparent',\n isolation: 'isolate',\n }),\n slotContents: css({\n display: 'contents',\n }),\n};\n\ntype AppShellRootStyle = CSSProperties & {\n '--appshell-header-height'?: string;\n};\n\n/**\n * Application-level layout shell with top navigation, side navigation,\n * banner, skip-to-content support, and responsive mobile navigation.\n */\nexport function AppShell({\n banner,\n children,\n className,\n contentPadding,\n 'data-testid': dataTestId,\n height = 'fill',\n isMobileNavDisabled = false,\n mobileBreakpoint = 'md',\n ref,\n sideNav,\n style,\n topNav,\n variant = 'default',\n}: AppShellProps): React.JSX.Element {\n const mainContentId = useId();\n const breakpointQuery =\n mobileBreakpoint === 'none'\n ? '(max-width: 0px)'\n : `(max-width: ${BREAKPOINT_VALUES[mobileBreakpoint]}px)`;\n const isBelowBreakpoint = useMediaQuery(breakpointQuery);\n const [isMobileNavOpen, setIsMobileNavOpen] = useState(false);\n const {ref: topNavPresenceRef, hasContent: hasTopNavContent} =\n useSlotPresence(isReactNode(topNav));\n const {ref: sideNavPresenceRef, hasContent: hasSideNavContent} =\n useSlotPresence(isReactNode(sideNav));\n const hasTopNav = isReactNode(topNav);\n const hasSideNav = isReactNode(sideNav);\n const hasNavContent = hasTopNavContent || hasSideNavContent;\n const mobileNavEnabled = !isMobileNavDisabled && hasNavContent;\n const showSideNavInline = hasSideNav && !isBelowBreakpoint;\n const isAuto = height === 'auto';\n const isFill = height === 'fill';\n const navHasDividers = variant === 'section';\n const headerRef = useRef<HTMLDivElement>(null);\n const shellRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (!isAuto || headerRef.current == null || shellRef.current == null) {\n return;\n }\n\n const headerElement = headerRef.current;\n const shellElement = shellRef.current;\n const updateHeight = () => {\n shellElement.style.setProperty(\n '--appshell-header-height',\n `${headerElement.getBoundingClientRect().height}px`,\n );\n };\n\n observeResize(headerElement, updateHeight);\n return () => unobserveResize(headerElement);\n }, [isAuto]);\n\n const mobileContextValue = useMemo<AppShellMobileContextValue>(\n () => ({\n closeMobileNav: () => setIsMobileNavOpen(false),\n hasAutoToggle: true,\n isMobile: isBelowBreakpoint,\n isMobileNavEnabled: mobileNavEnabled,\n isMobileNavOpen,\n openMobileNav: () => mobileNavEnabled && setIsMobileNavOpen(true),\n toggleMobileNav: () => {\n if (mobileNavEnabled) {\n setIsMobileNavOpen(prev => !prev);\n }\n },\n }),\n [isBelowBreakpoint, isMobileNavOpen, mobileNavEnabled],\n );\n\n /* eslint-disable @eslint-react/no-unstable-context-value -- sideNav ReactNode prop prevents stable memoization */\n const mobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n ) : null;\n const drawerMobileContentValue = hasSideNavContent ? (\n <SideNavRenderContext value=\"drawer-content\">\n {sideNav}\n </SideNavRenderContext>\n ) : null;\n /* eslint-enable @eslint-react/no-unstable-context-value */\n const topNavContent =\n hasTopNav && isBelowBreakpoint && !isMobileNavDisabled ? (\n <TopNavMobileContentContext value={mobileContentValue}>\n <TopNavRenderContext value=\"mobile-bar\">\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNav}\n </div>\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : (\n topNav\n );\n const headerContent =\n hasTopNav || isReactNode(banner) ? (\n <div className={cx(isAuto && styles.headerSticky)} ref={headerRef}>\n <header style={{flexShrink: 0}}>\n {isReactNode(banner) ? (\n <div className={styles.banner}>{banner}</div>\n ) : null}\n {hasTopNav ? (\n <div className={styles.slotContents} ref={topNavPresenceRef}>\n {topNavContent}\n </div>\n ) : null}\n </header>\n </div>\n ) : undefined;\n const autoMobileTopBar =\n !isMobileNavDisabled &&\n isBelowBreakpoint &&\n !hasTopNavContent &&\n hasSideNav ? (\n <header style={{flexShrink: 0}}>\n <div\n aria-label=\"Mobile navigation\"\n className={styles.autoMobileTopBar}\n role=\"navigation\">\n <SideNavRenderContext value=\"topbar\">\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </SideNavRenderContext>\n <MobileNavToggle />\n </div>\n </header>\n ) : undefined;\n const sideNavPanel = showSideNavInline ? (\n <LayoutPanel isScrollable={isFill} padding={0}>\n <div className={styles.slotContents} ref={sideNavPresenceRef}>\n {sideNav}\n </div>\n </LayoutPanel>\n ) : undefined;\n const sideNavContent =\n sideNavPanel != null && isAuto ? (\n <div className={styles.sideNavSticky}>{sideNavPanel}</div>\n ) : (\n sideNavPanel\n );\n const contentClassName =\n variant === 'default' && hasTopNavContent && showSideNavInline\n ? styles.contentTransparent\n : variant === 'default'\n ? styles.contentSurface\n : undefined;\n const mainInner = (\n <LayoutContent\n as=\"main\"\n className={contentClassName}\n id={mainContentId}\n isScrollable={isFill}\n padding={contentPadding ?? 0}>\n {children}\n </LayoutContent>\n );\n const shouldElevateWithCorner =\n variant === 'default' && hasTopNavContent && showSideNavInline;\n const mainContent = shouldElevateWithCorner ? (\n <div className={styles.elevatedWrapper}>\n <div className={styles.elevatedBackdrop} />\n {mainInner}\n </div>\n ) : (\n mainInner\n );\n const rootStyle: AppShellRootStyle = {...style};\n\n return (\n <AppShellMobileContext value={mobileContextValue}>\n <div\n className={cx(appShellRecipe({height, variant}), className)}\n data-testid={dataTestId}\n ref={mergeRefs(ref, shellRef)}\n style={rootStyle}>\n <a\n className={styles.skipLink}\n data-testid=\"skip-to-content\"\n href={`#${mainContentId}`}>\n Skip to content\n </a>\n <Layout\n content={mainContent}\n hasDividers={navHasDividers}\n header={\n <>\n {headerContent}\n {autoMobileTopBar}\n </>\n }\n height={height}\n padding={0}\n start={sideNavContent}\n />\n {isBelowBreakpoint && !isMobileNavDisabled ? (\n <>\n {hasSideNav && !hasTopNavContent ? (\n <SideNavRenderContext value=\"drawer\">\n {sideNav}\n </SideNavRenderContext>\n ) : null}\n {hasTopNav && hasTopNavContent ? (\n <TopNavMobileContentContext value={drawerMobileContentValue}>\n <TopNavRenderContext value=\"drawer\">\n {topNav}\n </TopNavRenderContext>\n </TopNavMobileContentContext>\n ) : null}\n </>\n ) : null}\n </div>\n </AppShellMobileContext>\n );\n}\n\nAppShell.displayName = 'AppShell';\n"]}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { useInputGroup } from './chunk-
|
|
2
|
-
import { inputStyles, inputRecipe } from './chunk-
|
|
3
|
-
import { Field, getNecessity } from './chunk-
|
|
1
|
+
import { useInputGroup } from './chunk-6KG76KUZ.js';
|
|
2
|
+
import { inputStyles, inputRecipe } from './chunk-KB36TWOU.js';
|
|
3
|
+
import { Field, getNecessity } from './chunk-USEA7DB5.js';
|
|
4
4
|
import { getStatusMessageID, getDescribedBy, getStatusIcon } from './chunk-G6HS52US.js';
|
|
5
|
-
import { Button } from './chunk-
|
|
6
|
-
import { Spinner } from './chunk-
|
|
5
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
6
|
+
import { Spinner } from './chunk-X2P5SPGB.js';
|
|
7
7
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
8
8
|
import { Icon } from './chunk-IUW777WZ.js';
|
|
9
9
|
import { cx } from './chunk-PPNETWIP.js';
|
|
@@ -138,5 +138,5 @@ function TextInput({
|
|
|
138
138
|
TextInput.displayName = "TextInput";
|
|
139
139
|
|
|
140
140
|
export { TextInput };
|
|
141
|
-
//# sourceMappingURL=chunk-
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
141
|
+
//# sourceMappingURL=chunk-NIKT7XSO.js.map
|
|
142
|
+
//# sourceMappingURL=chunk-NIKT7XSO.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/TextInput/TextInput.tsx"],"names":[],"mappings":"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","file":"chunk-JR353MN5.js","sourcesContent":["import {X} from 'lucide-react';\nimport {\n useId,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {useInputGroup} from 'components/InputGroup';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport type TextInputType = 'email' | 'password' | 'text';\n\nexport type TextInputProps = {\n /**\n * HTML autocomplete hint for the browser.\n */\n autoComplete?: string;\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the input, before the status icon.\n */\n endContent?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when the input has a value.\n * @default false\n */\n hasClear?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip shown beside the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called with the next string value.\n */\n onChange: (\n value: string,\n event: ChangeEvent<HTMLInputElement> | null,\n ) => void;\n /**\n * Called when Enter is pressed.\n */\n onEnter?: () => void;\n /**\n * Called when the input gains focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Keyboard event handler for the input.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Status displayed on the field.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the wrapper.\n */\n style?: CSSProperties;\n /**\n * HTML input type.\n */\n type?: TextInputType;\n /**\n * Controlled input value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * Single-line text input field.\n */\nexport function TextInput({\n autoComplete,\n label,\n value,\n onChange,\n onBlur,\n onFocus,\n type = 'text',\n size: sizeProp = 'md',\n placeholder,\n description,\n endContent,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n hasAutoFocus = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n onEnter,\n onKeyDown,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TextInputProps): React.JSX.Element {\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 inputGroup = useInputGroup();\n const effectiveDisabled = isDisabled || inputGroup?.isDisabled === true;\n const size = inputGroup?.size ?? sizeProp;\n const effectiveStatusType = status?.type ?? inputGroup?.statusType;\n\n const inputWrapper = (\n <div\n className={cx(\n inputRecipe({\n size,\n status: effectiveStatusType,\n isDisabled: effectiveDisabled,\n }),\n inputGroup != null ? className : undefined,\n )}\n style={inputGroup != null ? style : undefined}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-label={inputGroup != null ? label : undefined}\n aria-required={isRequired ?? undefined}\n autoComplete={autoComplete}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={inputStyles.control}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={effectiveDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(event.target.value, event)}\n onFocus={onFocus}\n onKeyDown={event => {\n if (event.key === 'Enter' && !event.nativeEvent.isComposing) {\n onEnter?.();\n }\n onKeyDown?.(event);\n }}\n placeholder={placeholder}\n ref={ref}\n required={isRequired ?? undefined}\n type={type}\n value={value}\n />\n {hasClear && value !== '' && !effectiveDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange('', null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {endContent}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n );\n\n if (inputGroup != null) {\n return inputWrapper;\n }\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...getNecessity(isOptional, isRequired)}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputWrapper}\n </Field>\n );\n}\n\nTextInput.displayName = 'TextInput';\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/TextInput/TextInput.tsx"],"names":[],"mappings":"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","file":"chunk-NIKT7XSO.js","sourcesContent":["import {X} from 'lucide-react';\nimport {\n useId,\n type ChangeEvent,\n type CSSProperties,\n type FocusEvent,\n type KeyboardEvent,\n type ReactNode,\n type Ref,\n} from 'react';\nimport {Button} from 'components/Button';\nimport {\n Field,\n getNecessity,\n type FieldNecessity,\n type InputSize,\n type InputStatus,\n} from 'components/Field';\nimport {inputRecipe, inputStyles} from 'components/Field/inputStyles';\nimport {\n getDescribedBy,\n getStatusIcon,\n getStatusMessageID,\n} from 'components/Field/inputUtils';\nimport {Icon, type IconComponent} from 'components/Icon';\nimport {useInputGroup} from 'components/InputGroup';\nimport {Spinner} from 'components/Spinner';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\n\nexport type TextInputType = 'email' | 'password' | 'text';\n\nexport type TextInputProps = {\n /**\n * HTML autocomplete hint for the browser.\n */\n autoComplete?: string;\n /**\n * Additional CSS class names applied to the input wrapper.\n */\n className?: string;\n /**\n * Test ID applied to the input element.\n */\n 'data-testid'?: string;\n /**\n * Supporting text rendered below the label.\n */\n description?: ReactNode;\n /**\n * Content rendered after the input, before the status icon.\n */\n endContent?: ReactNode;\n /**\n * Whether to focus the input on mount.\n * @default false\n */\n hasAutoFocus?: boolean;\n /**\n * Whether to show a clear button when the input has a value.\n * @default false\n */\n hasClear?: boolean;\n /**\n * HTML name attribute.\n */\n htmlName?: string;\n /**\n * Whether the input is disabled.\n * @default false\n */\n isDisabled?: boolean;\n /**\n * Whether to visually hide the label.\n * @default false\n */\n isLabelHidden?: boolean;\n /**\n * Whether the input is loading.\n * @default false\n */\n isLoading?: boolean;\n /**\n * Field label.\n */\n label: string;\n /**\n * Icon shown before the label.\n */\n labelIcon?: IconComponent;\n /**\n * Tooltip shown beside the label.\n */\n labelTooltip?: ReactNode;\n /**\n * Called when the input loses focus.\n */\n onBlur?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Called with the next string value.\n */\n onChange: (\n value: string,\n event: ChangeEvent<HTMLInputElement> | null,\n ) => void;\n /**\n * Called when Enter is pressed.\n */\n onEnter?: () => void;\n /**\n * Called when the input gains focus.\n */\n onFocus?: (event: FocusEvent<HTMLInputElement>) => void;\n /**\n * Keyboard event handler for the input.\n */\n onKeyDown?: (event: KeyboardEvent<HTMLInputElement>) => void;\n /**\n * Placeholder text.\n */\n placeholder?: string;\n /**\n * Ref forwarded to the input element.\n */\n ref?: Ref<HTMLInputElement>;\n /**\n * Visual size.\n */\n size?: InputSize;\n /**\n * Icon shown before the input.\n */\n startIcon?: IconComponent;\n /**\n * Status displayed on the field.\n */\n status?: InputStatus;\n /**\n * Inline styles applied to the wrapper.\n */\n style?: CSSProperties;\n /**\n * HTML input type.\n */\n type?: TextInputType;\n /**\n * Controlled input value.\n */\n value: string;\n} & FieldNecessity;\n\n/**\n * Single-line text input field.\n */\nexport function TextInput({\n autoComplete,\n label,\n value,\n onChange,\n onBlur,\n onFocus,\n type = 'text',\n size: sizeProp = 'md',\n placeholder,\n description,\n endContent,\n isLabelHidden = false,\n isOptional,\n isRequired,\n isDisabled = false,\n isLoading = false,\n hasClear = false,\n hasAutoFocus = false,\n htmlName,\n status,\n labelIcon,\n labelTooltip,\n startIcon,\n onEnter,\n onKeyDown,\n className,\n 'data-testid': dataTestId,\n style,\n ref,\n}: TextInputProps): React.JSX.Element {\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 inputGroup = useInputGroup();\n const effectiveDisabled = isDisabled || inputGroup?.isDisabled === true;\n const size = inputGroup?.size ?? sizeProp;\n const effectiveStatusType = status?.type ?? inputGroup?.statusType;\n\n const inputWrapper = (\n <div\n className={cx(\n inputRecipe({\n size,\n status: effectiveStatusType,\n isDisabled: effectiveDisabled,\n }),\n inputGroup != null ? className : undefined,\n )}\n style={inputGroup != null ? style : undefined}>\n {startIcon != null ? (\n <span className={inputStyles.iconSlot}>\n <Icon color=\"secondary\" icon={startIcon} size=\"sm\" />\n </span>\n ) : null}\n <input\n aria-busy={isLoading || undefined}\n aria-describedby={describedBy}\n aria-invalid={status?.type === 'error' || undefined}\n aria-label={inputGroup != null ? label : undefined}\n aria-required={isRequired ?? undefined}\n autoComplete={autoComplete}\n // eslint-disable-next-line jsx-a11y-x/no-autofocus\n autoFocus={hasAutoFocus}\n className={inputStyles.control}\n data-autofocus={hasAutoFocus || undefined}\n data-testid={dataTestId}\n disabled={effectiveDisabled}\n id={inputId}\n name={htmlName}\n onBlur={onBlur}\n onChange={event => onChange(event.target.value, event)}\n onFocus={onFocus}\n onKeyDown={event => {\n if (event.key === 'Enter' && !event.nativeEvent.isComposing) {\n onEnter?.();\n }\n onKeyDown?.(event);\n }}\n placeholder={placeholder}\n ref={ref}\n required={isRequired ?? undefined}\n type={type}\n value={value}\n />\n {hasClear && value !== '' && !effectiveDisabled ? (\n <Button\n icon={X}\n isIconOnly\n label={`Clear ${label}`}\n onClick={() => onChange('', null)}\n size=\"sm\"\n variant=\"ghost\"\n />\n ) : null}\n {endContent}\n {isLoading ? <Spinner size=\"sm\" /> : null}\n {status != null ? (\n <span className={inputStyles.iconSlot}>\n {getStatusIcon(status.type)}\n </span>\n ) : null}\n </div>\n );\n\n if (inputGroup != null) {\n return inputWrapper;\n }\n\n return (\n <Field\n className={className}\n description={description}\n descriptionID={descriptionID}\n inputId={inputId}\n isDisabled={isDisabled}\n isLabelHidden={isLabelHidden}\n {...getNecessity(isOptional, isRequired)}\n label={label}\n labelIcon={labelIcon}\n labelTooltip={labelTooltip}\n status={\n status == null ? undefined : {...status, messageID: statusMessageID}\n }\n style={style}>\n {inputWrapper}\n </Field>\n );\n}\n\nTextInput.displayName = 'TextInput';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useDialogContext } from './chunk-BKKLUIIU.js';
|
|
2
|
-
import { Button } from './chunk-
|
|
3
|
-
import { Heading, Text } from './chunk-
|
|
2
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
3
|
+
import { Heading, Text } from './chunk-5GSRIOXE.js';
|
|
4
4
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
5
5
|
import { sva } from './chunk-IAVZKGZS.js';
|
|
6
6
|
import { cva } from './chunk-FMEIPGUP.js';
|
|
@@ -360,6 +360,7 @@ function LayoutHeader({
|
|
|
360
360
|
endContent,
|
|
361
361
|
height,
|
|
362
362
|
label,
|
|
363
|
+
level = 4,
|
|
363
364
|
padding = 4,
|
|
364
365
|
ref,
|
|
365
366
|
startContent,
|
|
@@ -400,7 +401,7 @@ function LayoutHeader({
|
|
|
400
401
|
{
|
|
401
402
|
"data-dialog-autofocus": dialogContext != null ? "true" : void 0,
|
|
402
403
|
id: dialogContext?.titleId,
|
|
403
|
-
level
|
|
404
|
+
level,
|
|
404
405
|
tabIndex: dialogContext != null ? -1 : void 0,
|
|
405
406
|
children: title
|
|
406
407
|
}
|
|
@@ -454,5 +455,5 @@ function LayoutPanel({
|
|
|
454
455
|
LayoutPanel.displayName = "LayoutPanel";
|
|
455
456
|
|
|
456
457
|
export { Layout, LayoutContent, LayoutFooter, LayoutHeader, LayoutPanel };
|
|
457
|
-
//# sourceMappingURL=chunk-
|
|
458
|
-
//# sourceMappingURL=chunk-
|
|
458
|
+
//# sourceMappingURL=chunk-NSWKBWPP.js.map
|
|
459
|
+
//# sourceMappingURL=chunk-NSWKBWPP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/Layout/Layout.recipe.ts","../src/components/Layout/LayoutContext.ts","../src/components/Layout/Layout.tsx","../src/components/Layout/LayoutContent.tsx","../src/components/Layout/LayoutFooter.tsx","../src/components/Layout/LayoutHeader.tsx","../src/components/Layout/LayoutPanel.tsx"],"names":["jsx","jsxs"],"mappings":"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","file":"chunk-NSWKBWPP.js","sourcesContent":["import {cva, sva, type RecipeVariantProps} from 'styled-system/css';\n\nconst paddingVariants = {\n 0: {p: '0'},\n 0.5: {p: '0.5'},\n 1: {p: '1'},\n 1.5: {p: '1.5'},\n 2: {p: '2'},\n 3: {p: '3'},\n 4: {p: '4'},\n 5: {p: '5'},\n 6: {p: '6'},\n 8: {p: '8'},\n 10: {p: '10'},\n};\n\n// Same padding scale as `paddingVariants`, scoped to the `root` slot so it can\n// be used as an `sva` variant on the Layout shell.\nconst rootPaddingVariants = {\n 0: {root: {p: '0'}},\n 0.5: {root: {p: '0.5'}},\n 1: {root: {p: '1'}},\n 1.5: {root: {p: '1.5'}},\n 2: {root: {p: '2'}},\n 3: {root: {p: '3'}},\n 4: {root: {p: '4'}},\n 5: {root: {p: '5'}},\n 6: {root: {p: '6'}},\n 8: {root: {p: '8'}},\n 10: {root: {p: '10'}},\n};\n\nexport const layoutRecipe = sva({\n slots: ['root', 'middle', 'content'],\n base: {\n root: {\n display: 'flex',\n flexDirection: 'column',\n minW: 0,\n },\n middle: {\n display: 'flex',\n flex: 1,\n minH: 0,\n minW: 0,\n },\n content: {\n flex: 1,\n minW: 0,\n display: 'flex',\n flexDirection: 'column',\n },\n },\n variants: {\n height: {\n fill: {\n root: {h: '100%', minH: 0},\n },\n auto: {\n root: {minH: '100%'},\n },\n },\n padding: rootPaddingVariants,\n },\n defaultVariants: {\n height: 'fill',\n },\n});\n\nexport const layoutPanelRecipe = cva({\n base: {\n flexShrink: 0,\n overflow: 'clip',\n },\n variants: {\n isScrollable: {\n true: {overflow: 'auto'},\n },\n divider: {\n none: {},\n // Border on the edge adjacent to the content area: inline-end for a start\n // panel, inline-start for an end panel.\n start: {\n borderInlineEndWidth: 'default',\n borderInlineEndStyle: 'solid',\n borderInlineEndColor: 'border',\n },\n end: {\n borderInlineStartWidth: 'default',\n borderInlineStartStyle: 'solid',\n borderInlineStartColor: 'border',\n },\n },\n },\n defaultVariants: {\n isScrollable: true,\n divider: 'none',\n },\n});\n\nexport const layoutContentRecipe = cva({\n base: {\n flex: 1,\n minH: 0,\n minW: 0,\n overflow: 'clip',\n },\n variants: {\n isScrollable: {\n true: {overflow: 'auto'},\n },\n },\n defaultVariants: {\n isScrollable: true,\n },\n});\n\nexport const layoutHeaderRecipe = sva({\n slots: ['root', 'inner', 'titleArea', 'actions', 'closeButton'],\n base: {\n root: {\n flexShrink: 0,\n },\n inner: {\n display: 'flex',\n justifyContent: 'space-between',\n gap: '3',\n },\n titleArea: {\n flex: 1,\n minW: 0,\n '& > :focus': {\n outline: 'none',\n },\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n closeButton: {\n marginInlineEnd: '-2',\n marginBlockStart: '-2',\n },\n },\n variants: {\n // Cross-axis alignment of the start/title/end slots within the header row.\n align: {\n start: {inner: {alignItems: 'flex-start'}},\n center: {inner: {alignItems: 'center'}},\n end: {inner: {alignItems: 'flex-end'}},\n },\n hasDivider: {\n true: {\n root: {\n borderBlockEndWidth: 'default',\n borderBlockEndStyle: 'solid',\n borderBlockEndColor: 'border',\n },\n },\n },\n },\n defaultVariants: {\n align: 'start',\n hasDivider: false,\n },\n});\n\nexport const layoutFooterRecipe = sva({\n slots: ['root', 'inner', 'start', 'actions'],\n base: {\n root: {\n flexShrink: 0,\n },\n start: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flex: 1,\n minW: 0,\n marginInlineEnd: 'auto',\n },\n actions: {\n display: 'flex',\n alignItems: 'center',\n gap: '2',\n flexShrink: 0,\n },\n },\n variants: {\n hasDivider: {\n true: {\n root: {\n borderBlockStartWidth: 'default',\n borderBlockStartStyle: 'solid',\n borderBlockStartColor: 'border',\n },\n },\n },\n // Custom footers render arbitrary children, so the inner element drops the\n // action-row flex layout.\n isCustom: {\n false: {\n inner: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: '3',\n },\n },\n true: {},\n },\n },\n defaultVariants: {\n hasDivider: false,\n isCustom: false,\n },\n});\n\nexport const layoutRegionRecipe = cva({\n variants: {\n padding: paddingVariants,\n },\n defaultVariants: {\n padding: 4,\n },\n});\n\nexport type LayoutVariants = RecipeVariantProps<typeof layoutRecipe>;\nexport type LayoutRegionVariants = RecipeVariantProps<\n typeof layoutRegionRecipe\n>;\n","import {createContext, use} from 'react';\n\nexport type LayoutArea = 'header' | 'content' | 'start' | 'end' | 'footer';\n\nexport interface LayoutDividerContextValue {\n hasDividers: boolean;\n}\n\nexport const LayoutAreaContext = createContext<LayoutArea>('content');\nLayoutAreaContext.displayName = 'LayoutAreaContext';\nexport const LayoutDividerContext =\n createContext<LayoutDividerContextValue | null>(null);\nLayoutDividerContext.displayName = 'LayoutDividerContext';\n\nexport function useLayoutArea(): LayoutArea {\n return use(LayoutAreaContext);\n}\n\nexport function useLayoutDivider(): LayoutDividerContextValue | null {\n return use(LayoutDividerContext);\n}\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {useMemo} from 'react';\nimport {layoutRecipe} from 'components/Layout/Layout.recipe';\nimport {\n LayoutAreaContext,\n LayoutDividerContext,\n type LayoutArea,\n} from 'components/Layout/LayoutContext';\nimport type {LayoutHeight} from 'components/Layout/types';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport type {SpacingToken} from 'internal/spacingTokens';\n\n/**\n * Shell with header, side panels, content, and footer slots.\n */\nexport interface LayoutProps {\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Main content slot.\n */\n content?: ReactNode;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * End panel slot.\n */\n end?: ReactNode;\n /**\n * Footer slot.\n */\n footer?: ReactNode;\n /**\n * Whether child layout regions should show dividers.\n */\n hasDividers?: boolean;\n /**\n * Header slot.\n */\n header?: ReactNode;\n /**\n * Layout height behavior. Default is `fill`.\n */\n height?: LayoutHeight;\n /**\n * Outer padding for layout edges.\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the root element.\n */\n ref?: Ref<HTMLDivElement>;\n /**\n * Start panel slot.\n */\n start?: ReactNode;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n}\n\nfunction AreaProvider({\n area,\n children,\n}: {\n area: LayoutArea;\n children?: ReactNode;\n}): React.JSX.Element | null {\n if (!isReactNode(children)) {\n return null;\n }\n\n return <LayoutAreaContext value={area}>{children}</LayoutAreaContext>;\n}\n\nexport function Layout({\n className,\n content,\n 'data-testid': dataTestId,\n hasDividers = true,\n end,\n footer,\n header,\n height = 'fill',\n padding,\n ref,\n start,\n style,\n}: LayoutProps): React.JSX.Element {\n const dividerValue = useMemo(() => ({hasDividers}), [hasDividers]);\n const classes = layoutRecipe({height, padding});\n\n return (\n <LayoutDividerContext value={dividerValue}>\n <div\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={style}>\n <AreaProvider area=\"header\">{header}</AreaProvider>\n <div className={classes.middle}>\n <AreaProvider area=\"start\">{start}</AreaProvider>\n <div className={classes.content}>\n <AreaProvider area=\"content\">{content}</AreaProvider>\n </div>\n <AreaProvider area=\"end\">{end}</AreaProvider>\n </div>\n <AreaProvider area=\"footer\">{footer}</AreaProvider>\n </div>\n </LayoutDividerContext>\n );\n}\n\nLayout.displayName = 'Layout';\n","import type {ComponentPropsWithRef, ElementType} from 'react';\nimport {\n layoutContentRecipe,\n layoutRegionRecipe,\n} from 'components/Layout/Layout.recipe';\nimport {cx} from 'internal/cx';\nimport type {SpacingToken} from 'internal/spacingTokens';\n\n/**\n * Scrollable main content area within a Layout. Fills the remaining space\n * between panels and stretches to fill the available height.\n */\nexport interface LayoutContentProps extends ComponentPropsWithRef<'div'> {\n /**\n * HTML element to render. Default is `div`.\n */\n as?: ElementType;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether the content area scrolls when it overflows.\n */\n isScrollable?: boolean;\n /**\n * Accessible label. Automatically sets role=\"region\" when provided.\n */\n label?: string;\n /**\n * Inner padding.\n */\n padding?: SpacingToken;\n}\n\n/**\n * Scrollable main content area within a Layout. Fills the remaining space\n * between panels and stretches to fill the available height.\n */\nexport function LayoutContent({\n as: Element = 'div',\n children,\n className,\n 'data-testid': dataTestId,\n isScrollable = true,\n label,\n padding = 4,\n ref,\n role,\n style,\n ...rest\n}: LayoutContentProps): React.JSX.Element {\n return (\n <Element\n {...rest}\n aria-label={label}\n className={cx(\n layoutContentRecipe({isScrollable}),\n layoutRegionRecipe({padding}),\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role={role ?? (label != null ? 'region' : undefined)}\n style={style}>\n {children}\n </Element>\n );\n}\n\nLayoutContent.displayName = 'LayoutContent';\n","import type {CSSProperties, ReactNode, Ref} from 'react';\nimport {\n layoutFooterRecipe,\n layoutRegionRecipe,\n} from 'components/Layout/Layout.recipe';\nimport {useLayoutDivider} from 'components/Layout/LayoutContext';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport type {SpacingToken} from 'internal/spacingTokens';\n\ninterface LayoutFooterBaseProps {\n /**\n * Additional CSS class names applied to the footer.\n */\n className?: string;\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Fixed height for the footer.\n */\n height?: number | string;\n /**\n * Accessible label for the footer landmark.\n */\n label?: string;\n /**\n * Inner padding.\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the footer element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Inline styles applied to the footer.\n */\n style?: CSSProperties;\n}\n\ninterface LayoutFooterCustomProps extends LayoutFooterBaseProps {\n /**\n * Custom footer content rendered inside the footer shell.\n */\n children: ReactNode;\n primaryButton?: never;\n secondaryButton?: never;\n startContent?: never;\n}\n\ninterface LayoutFooterActionsProps extends LayoutFooterBaseProps {\n children?: never;\n /**\n * Primary action button, rendered rightmost.\n */\n primaryButton?: ReactNode;\n /**\n * Secondary action button, rendered left of the primary button.\n */\n secondaryButton?: ReactNode;\n /**\n * Content rendered at the start (left) of the footer.\n */\n startContent?: ReactNode;\n}\n\n/**\n * Footer landmark region within a Layout. Use action slots for the standard\n * footer layout, or children for a custom footer inside the same shell.\n */\nexport type LayoutFooterProps =\n | LayoutFooterActionsProps\n | LayoutFooterCustomProps;\n\n/**\n * Footer landmark region within a Layout.\n */\nexport function LayoutFooter({\n children,\n className,\n 'data-testid': dataTestId,\n height,\n label,\n padding = 4,\n primaryButton,\n ref,\n secondaryButton,\n startContent,\n style,\n}: LayoutFooterProps): React.JSX.Element {\n const dividerContext = useLayoutDivider();\n const hasDivider = dividerContext?.hasDividers ?? false;\n const rootStyle: CSSProperties = {height, ...style};\n const isCustom = isReactNode(children);\n const hasActions = isReactNode(primaryButton) || isReactNode(secondaryButton);\n const classes = layoutFooterRecipe({hasDivider, isCustom});\n\n return (\n <footer\n aria-label={label}\n className={cx(classes.root, className)}\n data-divider={hasDivider || undefined}\n data-testid={dataTestId}\n ref={ref}\n style={rootStyle}>\n <div className={cx(classes.inner, layoutRegionRecipe({padding}))}>\n {isCustom ? (\n children\n ) : (\n <>\n {isReactNode(startContent) ? (\n <div className={classes.start}>{startContent}</div>\n ) : null}\n {hasActions ? (\n <div className={classes.actions}>\n {secondaryButton}\n {primaryButton}\n </div>\n ) : null}\n </>\n )}\n </div>\n </footer>\n );\n}\n\nLayoutFooter.displayName = 'LayoutFooter';\n","import {X} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Button} from 'components/Button';\nimport {useDialogContext} from 'components/Dialog/DialogContext';\nimport {\n layoutHeaderRecipe,\n layoutRegionRecipe,\n} from 'components/Layout/Layout.recipe';\nimport {useLayoutDivider} from 'components/Layout/LayoutContext';\nimport {Heading, Text, type HeadingLevel} from 'components/Text';\nimport {cx} from 'internal/cx';\nimport isReactNode from 'internal/isReactNode';\nimport type {SpacingToken} from 'internal/spacingTokens';\n\n/**\n * Header landmark region within a Layout with a structured title,\n * optional subtitle, and start/end content slots.\n *\n * When rendered inside a Dialog, a close button is automatically\n * appended after `endContent`. The button calls `onOpenChange(false)`\n * on the parent Dialog and the title receives initial focus.\n */\nexport interface LayoutHeaderProps {\n /**\n * Cross-axis alignment of the start content, title, and end content within\n * the header row. Default is `start`.\n */\n align?: 'start' | 'center' | 'end';\n /**\n * Additional CSS class names applied to the header.\n */\n className?: string;\n /**\n * Test ID applied to the header.\n */\n 'data-testid'?: string;\n /**\n * Content rendered after the title area.\n */\n endContent?: ReactNode;\n /**\n * Fixed height for the header.\n */\n height?: number | string;\n /**\n * Accessible label for the header landmark.\n */\n label?: string;\n /**\n * Semantic heading level used for the title.\n * @default 4\n */\n level?: HeadingLevel;\n /**\n * Inner padding.\n */\n padding?: SpacingToken;\n /**\n * Ref forwarded to the header element.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Content rendered before the title area.\n */\n startContent?: ReactNode;\n /**\n * Inline styles applied to the header.\n */\n style?: CSSProperties;\n /**\n * Supporting text displayed below the title.\n */\n subtitle?: string;\n /**\n * Primary header title.\n */\n title: string;\n}\n\n/**\n * Header landmark region within a Layout with a structured title,\n * optional subtitle, and start/end content slots.\n *\n * When rendered inside a Dialog, a close button is automatically\n * appended after `endContent`. The button calls `onOpenChange(false)`\n * on the parent Dialog and the title receives initial focus.\n */\nexport function LayoutHeader({\n align = 'start',\n className,\n 'data-testid': dataTestId,\n endContent,\n height,\n label,\n level = 4,\n padding = 4,\n ref,\n startContent,\n style,\n subtitle,\n title,\n}: LayoutHeaderProps): React.JSX.Element {\n const dividerContext = useLayoutDivider();\n const dialogContext = useDialogContext();\n const hasDivider = dividerContext?.hasDividers ?? false;\n const rootStyle: CSSProperties = {height, ...style};\n const classes = layoutHeaderRecipe({align, hasDivider});\n\n const closeButton =\n dialogContext != null ? (\n <Button\n className={classes.closeButton}\n icon={X}\n isIconOnly\n label=\"Close\"\n onClick={() => dialogContext.onOpenChange(false)}\n variant=\"ghost\"\n />\n ) : null;\n const hasEnd = isReactNode(endContent) || closeButton != null;\n\n return (\n <header\n aria-label={label}\n className={cx(classes.root, className)}\n data-testid={dataTestId}\n ref={ref}\n style={rootStyle}>\n <div className={cx(classes.inner, layoutRegionRecipe({padding}))}>\n {isReactNode(startContent) ? (\n <div className={classes.actions}>{startContent}</div>\n ) : null}\n <div className={classes.titleArea}>\n <Heading\n data-dialog-autofocus={dialogContext != null ? 'true' : undefined}\n id={dialogContext?.titleId}\n level={level}\n tabIndex={dialogContext != null ? -1 : undefined}>\n {title}\n </Heading>\n {subtitle != null ? (\n <Text as=\"p\" color=\"secondary\" type=\"supporting\">\n {subtitle}\n </Text>\n ) : null}\n </div>\n {hasEnd ? (\n <div className={classes.actions}>\n {endContent}\n {closeButton}\n </div>\n ) : null}\n </div>\n </header>\n );\n}\n\nLayoutHeader.displayName = 'LayoutHeader';\n","import type {ComponentPropsWithRef} from 'react';\nimport {\n layoutPanelRecipe,\n layoutRegionRecipe,\n} from 'components/Layout/Layout.recipe';\nimport {useLayoutArea, useLayoutDivider} from 'components/Layout/LayoutContext';\nimport {cx} from 'internal/cx';\nimport type {SpacingToken} from 'internal/spacingTokens';\n\n/**\n * Side panel region within a Layout. Placed in the start or end slot,\n * with optional dividers and scrolling.\n */\nexport interface LayoutPanelProps extends ComponentPropsWithRef<'div'> {\n /**\n * Test ID applied to the root element.\n */\n 'data-testid'?: string;\n /**\n * Whether the panel scrolls when it overflows.\n */\n isScrollable?: boolean;\n /**\n * Accessible label. Automatically sets role=\"region\" when provided.\n */\n label?: string;\n /**\n * Inner padding.\n */\n padding?: SpacingToken;\n /**\n * Fixed width for the panel.\n */\n width?: number | string;\n}\n\n/**\n * Side panel region within a Layout. Placed in the start or end slot,\n * with optional dividers and scrolling.\n */\nexport function LayoutPanel({\n children,\n className,\n 'data-testid': dataTestId,\n isScrollable = true,\n label,\n padding = 4,\n ref,\n role,\n style,\n width,\n ...rest\n}: LayoutPanelProps): React.JSX.Element {\n const area = useLayoutArea();\n const dividerContext = useLayoutDivider();\n const hasDivider = dividerContext?.hasDividers ?? false;\n const divider =\n hasDivider && (area === 'start' || area === 'end') ? area : 'none';\n\n return (\n <div\n {...rest}\n aria-label={label}\n className={cx(\n layoutPanelRecipe({isScrollable, divider}),\n layoutRegionRecipe({padding}),\n className,\n )}\n data-testid={dataTestId}\n ref={ref}\n role={role ?? (label != null ? 'region' : undefined)}\n style={{width, ...style}}>\n {children}\n </div>\n );\n}\n\nLayoutPanel.displayName = 'LayoutPanel';\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { DropdownMenu } from './chunk-
|
|
1
|
+
import { DropdownMenu } from './chunk-PQXPYN23.js';
|
|
2
2
|
import { ButtonGroup } from './chunk-D3CHBU46.js';
|
|
3
|
-
import { Button } from './chunk-
|
|
3
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
4
4
|
import { ChevronDown } from 'lucide-react';
|
|
5
5
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
@@ -74,5 +74,5 @@ function SplitButton({
|
|
|
74
74
|
SplitButton.displayName = "SplitButton";
|
|
75
75
|
|
|
76
76
|
export { SplitButton };
|
|
77
|
-
//# sourceMappingURL=chunk-
|
|
78
|
-
//# sourceMappingURL=chunk-
|
|
77
|
+
//# sourceMappingURL=chunk-NYOZQE6P.js.map
|
|
78
|
+
//# sourceMappingURL=chunk-NYOZQE6P.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SplitButton/SplitButton.tsx"],"names":[],"mappings":";;;;;;AA2FO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,cAAA;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,YAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,EAAwC;AACtC,EAAA,uBACE,IAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,UAAA;AAAA,YACb,UAAA;AAAA,YACA,IAAA;AAAA,YACA,SAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA;AAAA,YACA,GAAA;AAAA,YACA,YAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,UAAA,EAAY,IAAA;AAAA,cACZ,KAAA,EAAO,SAAA;AAAA,cACP;AAAA,aACF;AAAA,YACA,YAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,UAAA;AAAA,YACA,KAAA;AAAA,YACA,SAAA;AAAA,YACA,YAAA;AAAA,YACC;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/components/SplitButton/SplitButton.tsx"],"names":[],"mappings":";;;;;;AA2FO,SAAS,WAAA,CAAY;AAAA,EAC1B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,aAAA,EAAe,UAAA;AAAA,EACf,UAAA;AAAA,EACA,YAAA;AAAA,EACA,IAAA;AAAA,EACA,UAAA,GAAa,KAAA;AAAA,EACb,SAAA;AAAA,EACA,UAAA;AAAA,EACA,KAAA;AAAA,EACA,KAAA;AAAA,EACA,SAAA,GAAY,cAAA;AAAA,EACZ,SAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA;AAAA,EACA,GAAA;AAAA,EACA,IAAA,GAAO,IAAA;AAAA,EACP,YAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA,GAAU;AACZ,CAAA,EAAwC;AACtC,EAAA,uBACE,IAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,UAAA;AAAA,MACA,KAAA;AAAA,MACA,IAAA;AAAA,MACA,KAAA;AAAA,MACA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,aAAA,EAAa,UAAA;AAAA,YACb,UAAA;AAAA,YACA,IAAA;AAAA,YACA,SAAA;AAAA,YACA,KAAA;AAAA,YACA,OAAA;AAAA,YACA,GAAA;AAAA,YACA,YAAA;AAAA,YACA;AAAA;AAAA,SACF;AAAA,wBACA,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,MAAA,EAAQ;AAAA,cACN,IAAA,EAAM,WAAA;AAAA,cACN,UAAA,EAAY,IAAA;AAAA,cACZ,KAAA,EAAO,SAAA;AAAA,cACP;AAAA,aACF;AAAA,YACA,YAAA;AAAA,YACA,UAAA,EAAY,KAAA;AAAA,YACZ,UAAA;AAAA,YACA,KAAA;AAAA,YACA,SAAA;AAAA,YACA,YAAA;AAAA,YACC;AAAA;AAAA;AACH;AAAA;AAAA,GACF;AAEJ;AAEA,WAAA,CAAY,WAAA,GAAc,aAAA","file":"chunk-NYOZQE6P.js","sourcesContent":["import {ChevronDown} from 'lucide-react';\nimport type {CSSProperties, ReactNode, Ref} from 'react';\nimport {Button, type ButtonProps, type ButtonSize} from 'components/Button';\nimport {ButtonGroup} from 'components/ButtonGroup';\nimport {DropdownMenu, type DropdownMenuOption} from 'components/DropdownMenu';\nimport type {IconComponent} from 'components/Icon';\n\n/**\n * A directly-clickable primary action paired with an attached chevron toggle\n * that opens a menu of related actions. A thin composition of `ButtonGroup`,\n * `Button`, and `DropdownMenu`.\n */\nexport interface SplitButtonProps extends Pick<\n ButtonProps,\n 'endContent' | 'isLoading' | 'onClick' | 'startContent'\n> {\n /**\n * Compound menu content (`<DropdownMenuItem>`), an alternative to `items`.\n */\n children?: ReactNode;\n /**\n * Additional CSS class names applied to the root element.\n */\n className?: string;\n /**\n * Test ID applied to the primary action button.\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 * Icon rendered before the primary action's label.\n */\n icon?: IconComponent;\n /**\n * Whether both the primary action and the menu toggle are disabled.\n */\n isDisabled?: boolean;\n /**\n * Controlled open state of the menu.\n */\n isMenuOpen?: boolean;\n /**\n * Data-driven menu items (alternative to `children`).\n */\n items?: ReadonlyArray<DropdownMenuOption>;\n /**\n * Visible text for the primary action. Also used as the group's accessible\n * label.\n */\n label: string;\n /**\n * Accessible label for the chevron toggle that opens the menu.\n * @default 'More actions'\n */\n menuLabel?: string;\n /**\n * Width of the menu surface.\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 primary action button.\n */\n ref?: Ref<HTMLElement>;\n /**\n * Default size for both buttons.\n * @default 'md'\n */\n size?: ButtonSize;\n /**\n * Inline styles applied to the root element.\n */\n style?: CSSProperties;\n /**\n * Visual style variant shared by both buttons.\n * @default 'secondary'\n */\n variant?: ButtonProps['variant'];\n}\n\n/**\n * A directly-clickable primary action paired with an attached chevron toggle\n * that opens a menu of related actions.\n */\nexport function SplitButton({\n children,\n className,\n 'data-testid': dataTestId,\n endContent,\n hasAutoFocus,\n icon,\n isDisabled = false,\n isLoading,\n isMenuOpen,\n items,\n label,\n menuLabel = 'More actions',\n menuWidth,\n onClick,\n onOpenChange,\n ref,\n size = 'md',\n startContent,\n style,\n variant = 'secondary',\n}: SplitButtonProps): React.JSX.Element {\n return (\n <ButtonGroup\n className={className}\n isDisabled={isDisabled}\n label={label}\n size={size}\n style={style}>\n <Button\n data-testid={dataTestId}\n endContent={endContent}\n icon={icon}\n isLoading={isLoading}\n label={label}\n onClick={onClick}\n ref={ref}\n startContent={startContent}\n variant={variant}\n />\n <DropdownMenu\n button={{\n icon: ChevronDown,\n isIconOnly: true,\n label: menuLabel,\n variant,\n }}\n hasAutoFocus={hasAutoFocus}\n hasChevron={false}\n isMenuOpen={isMenuOpen}\n items={items}\n menuWidth={menuWidth}\n onOpenChange={onOpenChange}>\n {children}\n </DropdownMenu>\n </ButtonGroup>\n );\n}\n\nSplitButton.displayName = 'SplitButton';\n"]}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { ToggleButtonGroup, ToggleButton } from './chunk-
|
|
2
|
-
import { MetadataList, MetadataListItem } from './chunk-
|
|
3
|
-
import { DropdownMenu, DropdownMenuItem } from './chunk-
|
|
1
|
+
import { ToggleButtonGroup, ToggleButton } from './chunk-6SKIBUCY.js';
|
|
2
|
+
import { MetadataList, MetadataListItem } from './chunk-HEF53COU.js';
|
|
3
|
+
import { DropdownMenu, DropdownMenuItem } from './chunk-PQXPYN23.js';
|
|
4
4
|
import { ButtonGroup } from './chunk-D3CHBU46.js';
|
|
5
5
|
import { plainDateToInstant, plainDateFromInstant, plainDateIsEqual, plainDateFormat, DATE_FORMAT_WITH_WEEKDAY, DATE_FORMAT_MONTH_YEAR, plainDateIsBefore, plainDateIsAfter, plainDateDayOfWeek } from './chunk-5HPXUDX6.js';
|
|
6
6
|
import { getBrowserTimezoneID, nowEpochMilliseconds } from './chunk-OX4ZMUF4.js';
|
|
7
|
-
import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-
|
|
8
|
-
import { Popover, usePopover } from './chunk-
|
|
7
|
+
import { Layout, LayoutHeader, LayoutFooter, LayoutContent } from './chunk-NSWKBWPP.js';
|
|
8
|
+
import { Popover, usePopover } from './chunk-GTZQT6MK.js';
|
|
9
9
|
import { Link } from './chunk-S4WWBV4N.js';
|
|
10
|
-
import { Button } from './chunk-
|
|
11
|
-
import { Spinner } from './chunk-
|
|
12
|
-
import { Text, Heading } from './chunk-
|
|
10
|
+
import { Button } from './chunk-EBV3EX3J.js';
|
|
11
|
+
import { Spinner } from './chunk-X2P5SPGB.js';
|
|
12
|
+
import { Text, Heading } from './chunk-5GSRIOXE.js';
|
|
13
13
|
import { Tooltip } from './chunk-KWZMXX4F.js';
|
|
14
14
|
import { useLatest_default } from './chunk-KEPCKSDE.js';
|
|
15
15
|
import { isReactNode } from './chunk-2PSZAWLC.js';
|
|
@@ -19,7 +19,7 @@ import { cva } from './chunk-FMEIPGUP.js';
|
|
|
19
19
|
import { css } from './chunk-OD4DHHZH.js';
|
|
20
20
|
import { cx } from './chunk-PPNETWIP.js';
|
|
21
21
|
import { Temporal } from '@js-temporal/polyfill';
|
|
22
|
-
import { createContext, use, useRef, useCallback, useMemo, useState, Suspense, useSyncExternalStore } from 'react';
|
|
22
|
+
import { createContext, use, useRef, useCallback, useMemo, useState, Suspense, useSyncExternalStore, Fragment as Fragment$1 } from 'react';
|
|
23
23
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
24
24
|
import { Pencil, Trash2, X, CalendarDays, MapPin, AlignLeft, Tag, ChevronLeft, ChevronRight, Check } from 'lucide-react';
|
|
25
25
|
|
|
@@ -1110,15 +1110,19 @@ function TimeGridEvent({
|
|
|
1110
1110
|
layout: "timeGrid"
|
|
1111
1111
|
});
|
|
1112
1112
|
const pluginEndContent = useMemo(
|
|
1113
|
-
() => plugins.map(
|
|
1114
|
-
|
|
1113
|
+
() => plugins.map((plugin, index) => {
|
|
1114
|
+
const content = plugin.renderTimeGridEventContent?.({
|
|
1115
1115
|
event,
|
|
1116
1116
|
hourHeight,
|
|
1117
1117
|
maxHour,
|
|
1118
1118
|
minHour,
|
|
1119
1119
|
timezoneID
|
|
1120
|
-
})
|
|
1121
|
-
|
|
1120
|
+
});
|
|
1121
|
+
return isReactNode(content) ? (
|
|
1122
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key -- stable plugin order
|
|
1123
|
+
/* @__PURE__ */ jsx(Fragment$1, { children: content }, index)
|
|
1124
|
+
) : null;
|
|
1125
|
+
}),
|
|
1122
1126
|
[event, hourHeight, maxHour, minHour, plugins, timezoneID]
|
|
1123
1127
|
);
|
|
1124
1128
|
const category = getCategory(categoryMap, event);
|
|
@@ -3521,5 +3525,5 @@ function setStartOfWeek2(date, weekStartsOn) {
|
|
|
3521
3525
|
}
|
|
3522
3526
|
|
|
3523
3527
|
export { Schedule, ScheduleContext, ScheduleEventPopoverContent, createEventFromISO, createScheduleDayView, createScheduleListView, createScheduleMonthlyView, createScheduleWeeklyView, defaultSchedulePlugins, useScheduleContext, useScheduleEventMovePlugin, useScheduleEventPopoverPlugin, useScheduleEventResizePlugin, useSchedulePaginationPlugin, useScheduleViewSelectorPlugin };
|
|
3524
|
-
//# sourceMappingURL=chunk-
|
|
3525
|
-
//# sourceMappingURL=chunk-
|
|
3528
|
+
//# sourceMappingURL=chunk-O3UT5D57.js.map
|
|
3529
|
+
//# sourceMappingURL=chunk-O3UT5D57.js.map
|