@alkimi.org/ui-kit 0.9.8 → 0.9.10
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.github.md +589 -589
- package/README.md +589 -589
- package/README.npm.md +589 -589
- package/dist/{chunk-MQMO7DMT.mjs → chunk-2R3FRGV4.mjs} +2 -2
- package/dist/chunk-2R3FRGV4.mjs.map +1 -0
- package/dist/chunk-2RQVAC3C.mjs +3 -0
- package/dist/chunk-2RQVAC3C.mjs.map +1 -0
- package/dist/{chunk-DKMCJGI4.mjs → chunk-36L2E4K7.mjs} +2 -2
- package/dist/chunk-36L2E4K7.mjs.map +1 -0
- package/dist/{chunk-RKRTEMMZ.js → chunk-4PODZIEU.js} +2 -2
- package/dist/chunk-4PODZIEU.js.map +1 -0
- package/dist/{chunk-GRXC46JC.js → chunk-4X3MFRSQ.js} +2 -2
- package/dist/chunk-4X3MFRSQ.js.map +1 -0
- package/dist/{chunk-QC5MA4WL.mjs → chunk-57XZUJL4.mjs} +2 -2
- package/dist/chunk-57XZUJL4.mjs.map +1 -0
- package/dist/{chunk-ULIOO55I.js → chunk-5ESMRNR3.js} +2 -2
- package/dist/chunk-5ESMRNR3.js.map +1 -0
- package/dist/{chunk-CT2CRYC2.js → chunk-5RIDFCU4.js} +2 -2
- package/dist/chunk-5RIDFCU4.js.map +1 -0
- package/dist/{chunk-FZ3NXOFK.mjs → chunk-6HUPRCXQ.mjs} +2 -2
- package/dist/chunk-6HUPRCXQ.mjs.map +1 -0
- package/dist/{chunk-EWRKHBIV.js → chunk-6N5E7FKO.js} +2 -2
- package/dist/chunk-6N5E7FKO.js.map +1 -0
- package/dist/{chunk-3TLCOZ5R.js → chunk-7ENKXOF3.js} +2 -2
- package/dist/chunk-7ENKXOF3.js.map +1 -0
- package/dist/{chunk-G76GSW2A.js → chunk-7HVZPUTO.js} +2 -2
- package/dist/chunk-7HVZPUTO.js.map +1 -0
- package/dist/{chunk-AEZ5XKKG.mjs → chunk-7J43VVOI.mjs} +2 -2
- package/dist/chunk-7J43VVOI.mjs.map +1 -0
- package/dist/{chunk-WFD523CV.js → chunk-AHQNHOS2.js} +1 -1
- package/dist/chunk-AHQNHOS2.js.map +1 -0
- package/dist/{chunk-S5TKCF6T.mjs → chunk-AJM7GGVC.mjs} +1 -1
- package/dist/chunk-AJM7GGVC.mjs.map +1 -0
- package/dist/chunk-B4YKLEVL.mjs +3 -0
- package/dist/chunk-B4YKLEVL.mjs.map +1 -0
- package/dist/{chunk-TDMRUCR6.js → chunk-BUS3E5OY.js} +2 -2
- package/dist/chunk-BUS3E5OY.js.map +1 -0
- package/dist/{chunk-WAX33IZF.mjs → chunk-CA75YECJ.mjs} +2 -2
- package/dist/chunk-CA75YECJ.mjs.map +1 -0
- package/dist/{chunk-DHHZMQ72.js → chunk-CVGE3ROD.js} +2 -2
- package/dist/chunk-CVGE3ROD.js.map +1 -0
- package/dist/{chunk-BV7RXRSL.js → chunk-DEGPIR53.js} +2 -2
- package/dist/chunk-DEGPIR53.js.map +1 -0
- package/dist/chunk-DP2FXFMQ.mjs +3 -0
- package/dist/chunk-DP2FXFMQ.mjs.map +1 -0
- package/dist/{chunk-7ONK6HHN.mjs → chunk-DRPEVJT7.mjs} +1 -1
- package/dist/chunk-DRPEVJT7.mjs.map +1 -0
- package/dist/{chunk-C7GTPYMH.mjs → chunk-DVS5O7CS.mjs} +2 -2
- package/dist/chunk-DVS5O7CS.mjs.map +1 -0
- package/dist/{chunk-7FUNOEYE.mjs → chunk-EA66F2ZN.mjs} +2 -2
- package/dist/chunk-EA66F2ZN.mjs.map +1 -0
- package/dist/{chunk-CMV76O4U.mjs → chunk-EBSYGLCA.mjs} +2 -2
- package/dist/chunk-EBSYGLCA.mjs.map +1 -0
- package/dist/{chunk-4LUOGI24.mjs → chunk-HV2SGTFQ.mjs} +2 -2
- package/dist/chunk-HV2SGTFQ.mjs.map +1 -0
- package/dist/{chunk-3PEPOFYU.js → chunk-IFNCRMNZ.js} +1 -1
- package/dist/chunk-IFNCRMNZ.js.map +1 -0
- package/dist/{chunk-TUNSVCR4.js → chunk-IFS4OO3L.js} +2 -2
- package/dist/chunk-IFS4OO3L.js.map +1 -0
- package/dist/{chunk-372VUZFE.js → chunk-INXG2ITG.js} +3 -3
- package/dist/chunk-INXG2ITG.js.map +1 -0
- package/dist/chunk-IOHKGN45.js +3 -0
- package/dist/chunk-IOHKGN45.js.map +1 -0
- package/dist/{chunk-XNMRXE55.mjs → chunk-IUCIWRTI.mjs} +2 -2
- package/dist/chunk-IUCIWRTI.mjs.map +1 -0
- package/dist/chunk-JNK2KBEK.mjs +3 -0
- package/dist/chunk-JNK2KBEK.mjs.map +1 -0
- package/dist/chunk-JVQJZ5HP.js +3 -0
- package/dist/chunk-JVQJZ5HP.js.map +1 -0
- package/dist/{chunk-MPUHONET.js → chunk-K5ARCQIP.js} +2 -2
- package/dist/chunk-K5ARCQIP.js.map +1 -0
- package/dist/{chunk-BLHKJHNV.mjs → chunk-KBEHHIN6.mjs} +2 -2
- package/dist/chunk-KBEHHIN6.mjs.map +1 -0
- package/dist/{chunk-EJTY2ABY.js → chunk-KCEGGK36.js} +2 -2
- package/dist/chunk-KCEGGK36.js.map +1 -0
- package/dist/{chunk-4LR7SOCY.mjs → chunk-KYBTGVFM.mjs} +1 -1
- package/dist/chunk-KYBTGVFM.mjs.map +1 -0
- package/dist/{chunk-UAUSYTY4.mjs → chunk-LNIGQUON.mjs} +2 -2
- package/dist/chunk-LNIGQUON.mjs.map +1 -0
- package/dist/chunk-M2PMK5S2.js +3 -0
- package/dist/chunk-M2PMK5S2.js.map +1 -0
- package/dist/chunk-MKLABTST.js +3 -0
- package/dist/chunk-MKLABTST.js.map +1 -0
- package/dist/{chunk-QMJVRGPB.mjs → chunk-N3ZLPC5C.mjs} +2 -2
- package/dist/chunk-N3ZLPC5C.mjs.map +1 -0
- package/dist/chunk-N4LDE7DZ.mjs +3 -0
- package/dist/chunk-N4LDE7DZ.mjs.map +1 -0
- package/dist/{chunk-7SOZ6MOV.js → chunk-NFHHEYXW.js} +2 -2
- package/dist/chunk-NFHHEYXW.js.map +1 -0
- package/dist/{chunk-RJMIOBXZ.js → chunk-NIHULISF.js} +2 -2
- package/dist/chunk-NIHULISF.js.map +1 -0
- package/dist/{chunk-Z6RAFZ3C.mjs → chunk-NMI6DEUG.mjs} +1 -1
- package/dist/chunk-NMI6DEUG.mjs.map +1 -0
- package/dist/{chunk-WY4HCUAP.mjs → chunk-NMU4NNZ2.mjs} +2 -2
- package/dist/chunk-NMU4NNZ2.mjs.map +1 -0
- package/dist/{chunk-YBV4CPVD.mjs → chunk-O2FPBOOV.mjs} +2 -2
- package/dist/chunk-O2FPBOOV.mjs.map +1 -0
- package/dist/{chunk-I5INE4KG.js → chunk-OCAU343S.js} +2 -2
- package/dist/chunk-OCAU343S.js.map +1 -0
- package/dist/{chunk-QVMQ55JW.mjs → chunk-PBOK6TUC.mjs} +2 -2
- package/dist/chunk-PBOK6TUC.mjs.map +1 -0
- package/dist/chunk-QJ7457IP.js +3 -0
- package/dist/chunk-QJ7457IP.js.map +1 -0
- package/dist/{chunk-XQILGD5B.js → chunk-QP7CDVWG.js} +2 -2
- package/dist/chunk-QP7CDVWG.js.map +1 -0
- package/dist/{chunk-UNR6ATUH.js → chunk-S7CZVGW7.js} +2 -2
- package/dist/chunk-S7CZVGW7.js.map +1 -0
- package/dist/chunk-SKA5YFCS.mjs +3 -0
- package/dist/chunk-SKA5YFCS.mjs.map +1 -0
- package/dist/{chunk-RRAIGAHU.js → chunk-SN3YJA4C.js} +2 -2
- package/dist/chunk-SN3YJA4C.js.map +1 -0
- package/dist/{chunk-CJOYCVKY.js → chunk-SOZAPZ65.js} +2 -2
- package/dist/chunk-SOZAPZ65.js.map +1 -0
- package/dist/chunk-SUZ2FZQ2.js +3 -0
- package/dist/chunk-SUZ2FZQ2.js.map +1 -0
- package/dist/{chunk-5X26XR44.js → chunk-TLGEA7LM.js} +2 -2
- package/dist/chunk-TLGEA7LM.js.map +1 -0
- package/dist/chunk-TOTBP4CJ.js +3 -0
- package/dist/chunk-TOTBP4CJ.js.map +1 -0
- package/dist/{chunk-K4GMCVHO.js → chunk-UAJUT7B7.js} +2 -2
- package/dist/chunk-UAJUT7B7.js.map +1 -0
- package/dist/{chunk-FUYXCJOQ.js → chunk-VBARF35N.js} +1 -1
- package/dist/chunk-VBARF35N.js.map +1 -0
- package/dist/chunk-VNPIYQD6.mjs +3 -0
- package/dist/chunk-VNPIYQD6.mjs.map +1 -0
- package/dist/{chunk-NEOUFWZN.mjs → chunk-VSRWPJJB.mjs} +2 -2
- package/dist/chunk-VSRWPJJB.mjs.map +1 -0
- package/dist/{chunk-KLU33CJI.mjs → chunk-VUHWNO54.mjs} +2 -2
- package/dist/chunk-VUHWNO54.mjs.map +1 -0
- package/dist/{chunk-CNRZOMR4.mjs → chunk-W4PJBJNX.mjs} +2 -2
- package/dist/chunk-W4PJBJNX.mjs.map +1 -0
- package/dist/chunk-WMHK5YWO.js +3 -0
- package/dist/chunk-WMHK5YWO.js.map +1 -0
- package/dist/{chunk-3BVMHDYA.js → chunk-XNLDCAFS.js} +1 -1
- package/dist/chunk-XNLDCAFS.js.map +1 -0
- package/dist/{chunk-L36V45FD.mjs → chunk-XQS62AJH.mjs} +2 -2
- package/dist/chunk-XQS62AJH.mjs.map +1 -0
- package/dist/chunk-XYO4VLMF.js.map +1 -1
- package/dist/{chunk-5TVDBV74.mjs → chunk-YK3UJT7O.mjs} +2 -2
- package/dist/chunk-YK3UJT7O.mjs.map +1 -0
- package/dist/chunk-ZWYGJJTH.mjs +3 -0
- package/dist/chunk-ZWYGJJTH.mjs.map +1 -0
- package/dist/chunk-ZX7652AR.mjs +3 -0
- package/dist/chunk-ZX7652AR.mjs.map +1 -0
- package/dist/components/GeometricFluidGrid.js +1 -1
- package/dist/components/GeometricFluidGrid.js.map +1 -1
- package/dist/components/GeometricFluidGrid.mjs +1 -1
- package/dist/components/GlitchLink.js +1 -1
- package/dist/components/GlitchLink.js.map +1 -1
- package/dist/components/GlitchLink.mjs +1 -1
- package/dist/components/PixelLoad.js +1 -1
- package/dist/components/PixelLoad.js.map +1 -1
- package/dist/components/PixelLoad.mjs +1 -1
- package/dist/components/TextDecoder.js +1 -1
- package/dist/components/TextDecoder.js.map +1 -1
- package/dist/components/TextDecoder.mjs +1 -1
- package/dist/components/accordion.js +1 -1
- package/dist/components/accordion.js.map +1 -1
- package/dist/components/accordion.mjs +1 -1
- package/dist/components/avatar.js +1 -1
- package/dist/components/avatar.js.map +1 -1
- package/dist/components/avatar.mjs +1 -1
- package/dist/components/breadcrumb.js +1 -1
- package/dist/components/breadcrumb.js.map +1 -1
- package/dist/components/breadcrumb.mjs +1 -1
- package/dist/components/breadcrumb.mjs.map +1 -1
- package/dist/components/button.js +1 -1
- package/dist/components/button.js.map +1 -1
- package/dist/components/button.mjs +1 -1
- package/dist/components/calendar.js +1 -1
- package/dist/components/calendar.js.map +1 -1
- package/dist/components/calendar.mjs +1 -1
- package/dist/components/card.js +1 -1
- package/dist/components/card.js.map +1 -1
- package/dist/components/card.mjs +1 -1
- package/dist/components/card.mjs.map +1 -1
- package/dist/components/checkbox.js +1 -1
- package/dist/components/checkbox.js.map +1 -1
- package/dist/components/checkbox.mjs +1 -1
- package/dist/components/combobox.js +1 -1
- package/dist/components/combobox.js.map +1 -1
- package/dist/components/combobox.mjs +1 -1
- package/dist/components/command.js +1 -1
- package/dist/components/command.js.map +1 -1
- package/dist/components/command.mjs +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/date-picker.mjs +1 -1
- package/dist/components/date-range-picker.js +1 -1
- package/dist/components/date-range-picker.js.map +1 -1
- package/dist/components/date-range-picker.mjs +1 -1
- package/dist/components/dialog.js +1 -1
- package/dist/components/dialog.js.map +1 -1
- package/dist/components/dialog.mjs +1 -1
- package/dist/components/drawer.js +1 -1
- package/dist/components/drawer.js.map +1 -1
- package/dist/components/drawer.mjs +1 -1
- package/dist/components/dropdown-menu.js +1 -1
- package/dist/components/dropdown-menu.js.map +1 -1
- package/dist/components/dropdown-menu.mjs +1 -1
- package/dist/components/field.js +1 -1
- package/dist/components/field.js.map +1 -1
- package/dist/components/field.mjs +1 -1
- package/dist/components/file-upload.js +1 -1
- package/dist/components/file-upload.js.map +1 -1
- package/dist/components/file-upload.mjs +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/input.mjs +1 -1
- package/dist/components/label.js +1 -1
- package/dist/components/label.js.map +1 -1
- package/dist/components/label.mjs +1 -1
- package/dist/components/popover.js +1 -1
- package/dist/components/popover.js.map +1 -1
- package/dist/components/popover.mjs +1 -1
- package/dist/components/progress.js +1 -1
- package/dist/components/progress.js.map +1 -1
- package/dist/components/progress.mjs +1 -1
- package/dist/components/progress.mjs.map +1 -1
- package/dist/components/radio-group.js +1 -1
- package/dist/components/radio-group.js.map +1 -1
- package/dist/components/radio-group.mjs +1 -1
- package/dist/components/scroll-area.js +1 -1
- package/dist/components/scroll-area.js.map +1 -1
- package/dist/components/scroll-area.mjs +1 -1
- package/dist/components/separator.js +1 -1
- package/dist/components/separator.js.map +1 -1
- package/dist/components/separator.mjs +1 -1
- package/dist/components/sheet.js +1 -1
- package/dist/components/sheet.js.map +1 -1
- package/dist/components/sheet.mjs +1 -1
- package/dist/components/sidebar.js +1 -1
- package/dist/components/sidebar.js.map +1 -1
- package/dist/components/sidebar.mjs +1 -1
- package/dist/components/skeleton.js +1 -1
- package/dist/components/skeleton.js.map +1 -1
- package/dist/components/skeleton.mjs +1 -1
- package/dist/components/slider.js +1 -1
- package/dist/components/slider.js.map +1 -1
- package/dist/components/slider.mjs +1 -1
- package/dist/components/slider.mjs.map +1 -1
- package/dist/components/switch.js +1 -1
- package/dist/components/switch.js.map +1 -1
- package/dist/components/switch.mjs +1 -1
- package/dist/components/switch.mjs.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/table.mjs +1 -1
- package/dist/components/tabs.js +1 -1
- package/dist/components/tabs.js.map +1 -1
- package/dist/components/tabs.mjs +1 -1
- package/dist/components/textarea.js +1 -1
- package/dist/components/textarea.js.map +1 -1
- package/dist/components/textarea.mjs +1 -1
- package/dist/components/toast.d.mts +5 -4
- package/dist/components/toast.d.ts +5 -4
- package/dist/components/toast.js +1 -1
- package/dist/components/toast.js.map +1 -1
- package/dist/components/toast.mjs +1 -1
- package/dist/components/tooltip.js +1 -1
- package/dist/components/tooltip.js.map +1 -1
- package/dist/components/tooltip.mjs +1 -1
- package/dist/components/tree-select.js +1 -1
- package/dist/components/tree-select.js.map +1 -1
- package/dist/components/tree-select.mjs +1 -1
- package/dist/index.css +1 -1
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1 -1
- package/dist/styles.css +1 -1
- package/dist/styles.css.map +1 -1
- package/package.json +109 -107
- package/dist/chunk-2KM266QO.mjs +0 -3
- package/dist/chunk-2KM266QO.mjs.map +0 -1
- package/dist/chunk-372VUZFE.js.map +0 -1
- package/dist/chunk-3BVMHDYA.js.map +0 -1
- package/dist/chunk-3FBDNJG5.js +0 -3
- package/dist/chunk-3FBDNJG5.js.map +0 -1
- package/dist/chunk-3NIUPM3O.js +0 -3
- package/dist/chunk-3NIUPM3O.js.map +0 -1
- package/dist/chunk-3PEPOFYU.js.map +0 -1
- package/dist/chunk-3TLCOZ5R.js.map +0 -1
- package/dist/chunk-4LR7SOCY.mjs.map +0 -1
- package/dist/chunk-4LUOGI24.mjs.map +0 -1
- package/dist/chunk-5L5DM2X5.js +0 -3
- package/dist/chunk-5L5DM2X5.js.map +0 -1
- package/dist/chunk-5TVDBV74.mjs.map +0 -1
- package/dist/chunk-5X26XR44.js.map +0 -1
- package/dist/chunk-7FUNOEYE.mjs.map +0 -1
- package/dist/chunk-7ONK6HHN.mjs.map +0 -1
- package/dist/chunk-7SOZ6MOV.js.map +0 -1
- package/dist/chunk-7X6SCSGJ.mjs +0 -3
- package/dist/chunk-7X6SCSGJ.mjs.map +0 -1
- package/dist/chunk-7YRREWHH.js +0 -3
- package/dist/chunk-7YRREWHH.js.map +0 -1
- package/dist/chunk-AEZ5XKKG.mjs.map +0 -1
- package/dist/chunk-BLHKJHNV.mjs.map +0 -1
- package/dist/chunk-BV7RXRSL.js.map +0 -1
- package/dist/chunk-C2EJGAYA.js +0 -3
- package/dist/chunk-C2EJGAYA.js.map +0 -1
- package/dist/chunk-C7GTPYMH.mjs.map +0 -1
- package/dist/chunk-CJOYCVKY.js.map +0 -1
- package/dist/chunk-CMV76O4U.mjs.map +0 -1
- package/dist/chunk-CNRZOMR4.mjs.map +0 -1
- package/dist/chunk-CT2CRYC2.js.map +0 -1
- package/dist/chunk-DHHZMQ72.js.map +0 -1
- package/dist/chunk-DKMCJGI4.mjs.map +0 -1
- package/dist/chunk-E7OHIWSF.mjs +0 -3
- package/dist/chunk-E7OHIWSF.mjs.map +0 -1
- package/dist/chunk-EJTY2ABY.js.map +0 -1
- package/dist/chunk-EWRKHBIV.js.map +0 -1
- package/dist/chunk-FUYXCJOQ.js.map +0 -1
- package/dist/chunk-FZ3NXOFK.mjs.map +0 -1
- package/dist/chunk-G76GSW2A.js.map +0 -1
- package/dist/chunk-GRXC46JC.js.map +0 -1
- package/dist/chunk-I5INE4KG.js.map +0 -1
- package/dist/chunk-IXP2VV7S.mjs +0 -3
- package/dist/chunk-IXP2VV7S.mjs.map +0 -1
- package/dist/chunk-JDM2VZ4X.mjs +0 -3
- package/dist/chunk-JDM2VZ4X.mjs.map +0 -1
- package/dist/chunk-JNH6ZYK7.js +0 -3
- package/dist/chunk-JNH6ZYK7.js.map +0 -1
- package/dist/chunk-JUB5C3UU.js +0 -3
- package/dist/chunk-JUB5C3UU.js.map +0 -1
- package/dist/chunk-K4GMCVHO.js.map +0 -1
- package/dist/chunk-KGNX6UST.mjs +0 -3
- package/dist/chunk-KGNX6UST.mjs.map +0 -1
- package/dist/chunk-KLU33CJI.mjs.map +0 -1
- package/dist/chunk-KUASF3Q3.mjs +0 -3
- package/dist/chunk-KUASF3Q3.mjs.map +0 -1
- package/dist/chunk-L36V45FD.mjs.map +0 -1
- package/dist/chunk-LCKRYIEJ.js +0 -3
- package/dist/chunk-LCKRYIEJ.js.map +0 -1
- package/dist/chunk-LFPVTYLX.mjs +0 -3
- package/dist/chunk-LFPVTYLX.mjs.map +0 -1
- package/dist/chunk-MPUHONET.js.map +0 -1
- package/dist/chunk-MQMO7DMT.mjs.map +0 -1
- package/dist/chunk-NEOUFWZN.mjs.map +0 -1
- package/dist/chunk-QC5MA4WL.mjs.map +0 -1
- package/dist/chunk-QMJVRGPB.mjs.map +0 -1
- package/dist/chunk-QVMQ55JW.mjs.map +0 -1
- package/dist/chunk-RJMIOBXZ.js.map +0 -1
- package/dist/chunk-RKRTEMMZ.js.map +0 -1
- package/dist/chunk-RRAIGAHU.js.map +0 -1
- package/dist/chunk-S5TKCF6T.mjs.map +0 -1
- package/dist/chunk-TDMRUCR6.js.map +0 -1
- package/dist/chunk-TQJCIZQO.mjs +0 -3
- package/dist/chunk-TQJCIZQO.mjs.map +0 -1
- package/dist/chunk-TUNSVCR4.js.map +0 -1
- package/dist/chunk-UAUSYTY4.mjs.map +0 -1
- package/dist/chunk-ULIOO55I.js.map +0 -1
- package/dist/chunk-UNR6ATUH.js.map +0 -1
- package/dist/chunk-WAX33IZF.mjs.map +0 -1
- package/dist/chunk-WFD523CV.js.map +0 -1
- package/dist/chunk-WY4HCUAP.mjs.map +0 -1
- package/dist/chunk-XNMRXE55.mjs.map +0 -1
- package/dist/chunk-XQILGD5B.js.map +0 -1
- package/dist/chunk-YBV4CPVD.mjs.map +0 -1
- package/dist/chunk-Z6RAFZ3C.mjs.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-BUS3E5OY.js"],"names":[],"mappings":"AAAA,uWAAY;AACZ,sDAAuC,uEAAwB,+CAAwC,IAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAAC,UAAW,CAAC,CAAC,SAAS,CAAC,gCAAC,oUAAqU,CAAC,CAAC,CAAC,yEAAyE,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,cAAc","file":"C:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-BUS3E5OY.js","sourcesContent":[null]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as Y,b as J,c as Q,d as Z}from"./chunk-QC5MA4WL.mjs";import{a as $}from"./chunk-YBV4CPVD.mjs";import{a as j,f as W,g as U,i as q,j as X}from"./chunk-QVMQ55JW.mjs";import{a as z}from"./chunk-CNRZOMR4.mjs";import{a as K}from"./chunk-NEOUFWZN.mjs";import{a as L,b as I}from"./chunk-BLHKJHNV.mjs";import{a as o}from"./chunk-S5TKCF6T.mjs";import*as e from"react";import{Slot as T}from"@radix-ui/react-slot";import{cva as ie}from"class-variance-authority";import{PanelLeft as se,X as de,Menu as le}from"lucide-react";import{Fragment as D,jsx as r,jsxs as b}from"react/jsx-runtime";var ce="sidebar_state",pe=3600*24*7,ue="16.75rem",ee="23rem",be="calc(3rem + 0.75rem)",fe="b",ae=e.createContext(null),te=e.createContext(!1);function E(){let a=e.useContext(ae);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}var me=e.forwardRef(({defaultOpen:a=!0,open:t,onOpenChange:n,className:i,style:s,children:c,...u},l)=>{let[R,g]=e.useState(!1),[f,v]=e.useState(a),[w,y]=e.useState(!1),[P,x]=e.useState(a),S=t??P,h=e.useCallback(d=>{let p=typeof d=="function"?d(S):d;n?n(p):x(p),document.cookie=`${ce}=${p}; path=/; max-age=${pe}`},[n,S]),m=e.useCallback(()=>{h(d=>!d)},[h]),k=e.useCallback(()=>{let d=getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-md").trim();d&&window.matchMedia(`(min-width: ${d})`).matches||g(p=>!p)},[g]);e.useEffect(()=>{let d=p=>{p.key===fe&&(p.metaKey||p.ctrlKey)&&(p.preventDefault(),m())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[m]);let _=S?"expanded":"collapsed",[H,A]=e.useState(0),O=e.useRef(null),B=e.useRef([]),V=e.Children.toArray(c),C=V.filter(d=>e.isValidElement(d)&&d.type?.displayName==="SidebarBanner"),ne=V.filter(d=>!e.isValidElement(d)||d.type?.displayName!=="SidebarBanner");C.length>0&&(B.current=C);let N=C.length>0,M=!N&&B.current.length>0,F=N||M,oe=e.useMemo(()=>({state:_,isOpen:f,setOpen:h,openMobile:R,setOpenMobile:g,toggleSidebar:m,toggleMobileSidebar:k,setIsFullyOpen:v,isAnimating:w,setIsAnimating:y,isBannerClosing:M}),[_,f,h,R,g,m,k,v,w,y,M]);return e.useEffect(()=>{let d=O.current;if(!d){A(0);return}let p=()=>{A(d.offsetHeight)};p();let G=new ResizeObserver(p);return G.observe(d),()=>G.disconnect()},[C.length]),r(ae.Provider,{value:oe,children:r(Y,{delayDuration:0,children:r("div",{style:{"--sidebar-width":ue,"--sidebar-width-icon":be,"--sidebar-top":N?`${H}px`:"0px",...s},className:o("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",F&&"flex-col",i),ref:l,...u,children:F?b(D,{children:[r("div",{className:"relative overflow-hidden transition-[height] duration-200 ease-linear",style:{height:M?"0px":H>0?`${H}px`:"auto"},children:r("div",{ref:O,className:"fixed top-0 left-0 right-0 z-20 w-full transition-transform duration-200 ease-linear data-[state=closed]:-translate-y-full","data-state":N?"open":"closed",onTransitionEnd:()=>{M&&(B.current=[])},children:N?C:B.current})}),r("div",{className:"flex flex-1",children:ne})]}):c})})})});me.displayName="SidebarProvider";var ge=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"banner",className:o("w-full",a),...t}));ge.displayName="SidebarBanner";var ve=e.forwardRef(({side:a="left",variant:t="sidebar",collapsible:n="offcanvas",className:i,children:s,...c},u)=>{let{state:l,openMobile:R,setOpenMobile:g,setIsFullyOpen:f,setIsAnimating:v,isBannerClosing:w}=E(),y=e.useRef(null),P=e.useRef(!0);return e.useEffect(()=>{let x=y.current;if(!x)return;if(P.current){P.current=!1,f(l==="expanded"),v(!1);return}v(!0);let S=setTimeout(()=>{f(l==="expanded"),v(!1)},300),h=m=>{m.target===x&&(m.propertyName==="left"||m.propertyName==="right"||m.propertyName==="width")&&(clearTimeout(S),f(l==="expanded"),v(!1))};return x.addEventListener("transitionend",h),()=>{x.removeEventListener("transitionend",h),clearTimeout(S)}},[l,f,v]),n==="none"?r("aside",{className:o("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),ref:u,...c,children:s}):b(D,{children:[r(j,{open:R,onOpenChange:g,children:b(W,{"data-sidebar":"sidebar","data-mobile":"true",className:"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{width:ee,maxWidth:ee},side:a,children:[b(U,{className:"sr-only",children:[r(q,{children:"Sidebar"}),r(X,{children:"Displays the mobile sidebar."})]}),r(te.Provider,{value:!0,children:r("div",{className:"flex h-full w-full flex-col",children:s})})]})}),b("aside",{ref:u,className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":l==="collapsed"?n:"","data-variant":t,"data-side":a,children:[r("div",{className:o("w-(--sidebar-width) transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),r("div",{ref:y,"data-banner-closing":w,className:o("fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",w&&"transition-[left,right,width,top,height]","top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)",i),...c,children:r("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:r("div",{className:"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border flex-1 min-h-0",children:s})})})]})]})});ve.displayName="Sidebar";var re=e.forwardRef(({className:a,onClick:t,...n},i)=>{let{toggleSidebar:s,toggleMobileSidebar:c,openMobile:u}=E();return b(D,{children:[b(I,{"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("md:hidden bg-transparent hover:bg-transparent",a),onClick:l=>{t?.(l),c()},...n,children:[u?r("span",{className:o(L({variant:"secondary",size:"icon"})),children:r(de,{size:16})}):r("span",{className:o(L({variant:"outline",size:"icon"})),children:r(le,{size:16})}),r("span",{className:"sr-only",children:"Toggle Sidebar"})]}),b(I,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("hidden md:inline-flex h-7 w-7",a),onClick:l=>{t?.(l),s()},...n,children:[r("span",{className:"rounded-full p-2",children:r(se,{size:16})}),r("span",{className:"sr-only",children:"Toggle Sidebar"})]})]})});re.displayName="SidebarTrigger";var he=e.forwardRef(({className:a,...t},n)=>{let{toggleSidebar:i}=E();return r("button",{ref:n,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:i,title:"Toggle Sidebar",className:o("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...t})});he.displayName="SidebarRail";var Re=e.memo(e.forwardRef(({className:a,...t},n)=>r("main",{ref:n,className:o("relative flex min-w-0 w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",a),...t})));Re.displayName="SidebarInset";var xe=e.forwardRef(({className:a,...t},n)=>r(K,{ref:n,"data-sidebar":"input",className:o("h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...t}));xe.displayName="SidebarInput";var Se=e.forwardRef(({className:a,showTrigger:t=!1,children:n,...i},s)=>{let{state:c}=E(),u=e.useContext(te),l=c==="collapsed"&&!u;return b("div",{ref:s,"data-sidebar":"header",className:o("flex w-full gap-2 p-2 items-center",l?"justify-center items-center":"justify-between items-start",a),...i,children:[!l&&r("div",{className:"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden",children:r("div",{className:"whitespace-nowrap",children:n})}),t&&r(re,{})]})});Se.displayName="SidebarHeader";var we=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"footer",className:o("flex flex-col gap-2 p-2",a),...t}));we.displayName="SidebarFooter";var ye=e.forwardRef(({className:a,...t},n)=>r($,{ref:n,"data-sidebar":"separator",className:o("mx-2 w-auto bg-border",a),...t}));ye.displayName="SidebarSeparator";var Ce=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"content",className:o("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",a),...t}));Ce.displayName="SidebarContent";var Ne=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"group",className:o("relative flex w-full min-w-0 flex-col","group-data-[collapsible=icon]:p-0",a),...t}));Ne.displayName="SidebarGroup";var Me=e.forwardRef(({className:a,asChild:t=!1,...n},i)=>r(t?T:"div",{ref:i,"data-sidebar":"group-label",className:o("flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...n}));Me.displayName="SidebarGroupLabel";var Te=e.forwardRef(({className:a,asChild:t=!1,...n},i)=>r(t?T:"button",{ref:i,"data-sidebar":"group-action",className:o("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",a),...n}));Te.displayName="SidebarGroupAction";var Ee=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"group-content",className:o("w-full text-sm",a),...t}));Ee.displayName="SidebarGroupContent";var Pe=e.forwardRef(({className:a,...t},n)=>r("ul",{ref:n,"data-sidebar":"menu",className:o("flex w-full min-w-0 flex-col gap-1",a),...t}));Pe.displayName="SidebarMenu";var Be=e.forwardRef(({className:a,...t},n)=>r("li",{ref:n,"data-sidebar":"menu-item",className:o("group/menu-item relative",a),...t}));Be.displayName="SidebarMenuItem";var He=ie("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"",outline:"bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),Le=e.forwardRef(({asChild:a=!1,isActive:t=!1,variant:n="default",size:i="default",tooltip:s,className:c,...u},l)=>{let R=a?T:"button",{state:g}=E(),f=r(R,{ref:l,"data-sidebar":"menu-button","data-size":i,"data-active":t,className:o(He({variant:n,size:i}),c),...u});return s?(typeof s=="string"&&(s={children:s}),b(J,{children:[r(Q,{asChild:!0,children:f}),r(Z,{side:"right",align:"center",hidden:g!=="collapsed",...s})]})):f});Le.displayName="SidebarMenuButton";var Ie=e.forwardRef(({className:a,asChild:t=!1,showOnHover:n=!1,...i},s)=>r(t?T:"button",{ref:s,"data-sidebar":"menu-action",className:o("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",n&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0",a),...i}));Ie.displayName="SidebarMenuAction";var ze=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"menu-badge",className:o("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...t}));ze.displayName="SidebarMenuBadge";var De=e.forwardRef(({className:a,showIcon:t=!1,...n},i)=>{let s=e.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return b("div",{ref:i,"data-sidebar":"menu-skeleton",className:o("flex h-8 items-center gap-2 rounded-md px-2",a),...n,children:[t&&r(z,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),r(z,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})});De.displayName="SidebarMenuSkeleton";var ke=e.forwardRef(({className:a,...t},n)=>r("ul",{ref:n,"data-sidebar":"menu-sub",className:o("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...t}));ke.displayName="SidebarMenuSub";var _e=e.forwardRef(({...a},t)=>r("li",{ref:t,...a}));_e.displayName="SidebarMenuSubItem";var Ae=e.forwardRef(({asChild:a=!1,size:t="md",isActive:n,className:i,...s},c)=>r(a?T:"a",{ref:c,"data-sidebar":"menu-sub-button","data-size":t,"data-active":n,className:o("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...s}));Ae.displayName="SidebarMenuSubButton";export{E as a,me as b,ge as c,ve as d,re as e,he as f,Re as g,xe as h,Se as i,we as j,ye as k,Ce as l,Ne as m,Me as n,Te as o,Ee as p,Pe as q,Be as r,Le as s,Ie as t,ze as u,De as v,ke as w,_e as x,Ae as y};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as Y,b as J,c as Q,d as Z}from"./chunk-57XZUJL4.mjs";import{a as $}from"./chunk-O2FPBOOV.mjs";import{a as j,f as W,g as U,i as q,j as X}from"./chunk-PBOK6TUC.mjs";import{a as z}from"./chunk-W4PJBJNX.mjs";import{a as K}from"./chunk-VSRWPJJB.mjs";import{a as L,b as I}from"./chunk-KBEHHIN6.mjs";import{a as o}from"./chunk-AJM7GGVC.mjs";import*as e from"react";import{Slot as T}from"@radix-ui/react-slot";import{cva as ie}from"class-variance-authority";import{PanelLeft as se,X as de,Menu as le}from"lucide-react";import{Fragment as D,jsx as r,jsxs as b}from"react/jsx-runtime";var ce="sidebar_state",pe=3600*24*7,ue="16.75rem",ee="23rem",be="calc(3rem + 0.75rem)",fe="b",ae=e.createContext(null),te=e.createContext(!1);function E(){let a=e.useContext(ae);if(!a)throw new Error("useSidebar must be used within a SidebarProvider.");return a}var me=e.forwardRef(({defaultOpen:a=!0,open:t,onOpenChange:n,className:i,style:s,children:c,...u},l)=>{let[R,g]=e.useState(!1),[f,v]=e.useState(a),[w,y]=e.useState(!1),[P,x]=e.useState(a),S=t??P,h=e.useCallback(d=>{let p=typeof d=="function"?d(S):d;n?n(p):x(p),document.cookie=`${ce}=${p}; path=/; max-age=${pe}`},[n,S]),m=e.useCallback(()=>{h(d=>!d)},[h]),k=e.useCallback(()=>{let d=getComputedStyle(document.documentElement).getPropertyValue("--breakpoint-md").trim();d&&window.matchMedia(`(min-width: ${d})`).matches||g(p=>!p)},[g]);e.useEffect(()=>{let d=p=>{p.key===fe&&(p.metaKey||p.ctrlKey)&&(p.preventDefault(),m())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[m]);let _=S?"expanded":"collapsed",[H,A]=e.useState(0),O=e.useRef(null),B=e.useRef([]),V=e.Children.toArray(c),C=V.filter(d=>e.isValidElement(d)&&d.type?.displayName==="SidebarBanner"),ne=V.filter(d=>!e.isValidElement(d)||d.type?.displayName!=="SidebarBanner");C.length>0&&(B.current=C);let N=C.length>0,M=!N&&B.current.length>0,F=N||M,oe=e.useMemo(()=>({state:_,isOpen:f,setOpen:h,openMobile:R,setOpenMobile:g,toggleSidebar:m,toggleMobileSidebar:k,setIsFullyOpen:v,isAnimating:w,setIsAnimating:y,isBannerClosing:M}),[_,f,h,R,g,m,k,v,w,y,M]);return e.useEffect(()=>{let d=O.current;if(!d){A(0);return}let p=()=>{A(d.offsetHeight)};p();let G=new ResizeObserver(p);return G.observe(d),()=>G.disconnect()},[C.length]),r(ae.Provider,{value:oe,children:r(Y,{delayDuration:0,children:r("div",{style:{"--sidebar-width":ue,"--sidebar-width-icon":be,"--sidebar-top":N?`${H}px`:"0px",...s},className:o("group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar",F&&"flex-col",i),ref:l,...u,children:F?b(D,{children:[r("div",{className:"relative overflow-hidden transition-[height] duration-200 ease-linear",style:{height:M?"0px":H>0?`${H}px`:"auto"},children:r("div",{ref:O,className:"fixed top-0 left-0 right-0 z-20 w-full transition-transform duration-200 ease-linear data-[state=closed]:-translate-y-full","data-state":N?"open":"closed",onTransitionEnd:()=>{M&&(B.current=[])},children:N?C:B.current})}),r("div",{className:"flex flex-1",children:ne})]}):c})})})});me.displayName="SidebarProvider";var ge=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"banner",className:o("w-full",a),...t}));ge.displayName="SidebarBanner";var ve=e.forwardRef(({side:a="left",variant:t="sidebar",collapsible:n="offcanvas",className:i,children:s,...c},u)=>{let{state:l,openMobile:R,setOpenMobile:g,setIsFullyOpen:f,setIsAnimating:v,isBannerClosing:w}=E(),y=e.useRef(null),P=e.useRef(!0);return e.useEffect(()=>{let x=y.current;if(!x)return;if(P.current){P.current=!1,f(l==="expanded"),v(!1);return}v(!0);let S=setTimeout(()=>{f(l==="expanded"),v(!1)},300),h=m=>{m.target===x&&(m.propertyName==="left"||m.propertyName==="right"||m.propertyName==="width")&&(clearTimeout(S),f(l==="expanded"),v(!1))};return x.addEventListener("transitionend",h),()=>{x.removeEventListener("transitionend",h),clearTimeout(S)}},[l,f,v]),n==="none"?r("aside",{className:o("flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground",i),ref:u,...c,children:s}):b(D,{children:[r(j,{open:R,onOpenChange:g,children:b(W,{"data-sidebar":"sidebar","data-mobile":"true",className:"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden",style:{width:ee,maxWidth:ee},side:a,children:[b(U,{className:"sr-only",children:[r(q,{children:"Sidebar"}),r(X,{children:"Displays the mobile sidebar."})]}),r(te.Provider,{value:!0,children:r("div",{className:"flex h-full w-full flex-col",children:s})})]})}),b("aside",{ref:u,className:"group peer hidden text-sidebar-foreground md:block","data-state":l,"data-collapsible":l==="collapsed"?n:"","data-variant":t,"data-side":a,children:[r("div",{className:o("w-(--sidebar-width) transition-[width] duration-200 ease-linear","group-data-[collapsible=offcanvas]:w-0",t==="floating"||t==="inset"?"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)")}),r("div",{ref:y,"data-banner-closing":w,className:o("fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex",w&&"transition-[left,right,width,top,height]","top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]",a==="left"?"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]":"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]",t==="floating"||t==="inset"?"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]":"group-data-[collapsible=icon]:w-(--sidebar-width-icon)",i),...c,children:r("div",{"data-sidebar":"sidebar",className:"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow",children:r("div",{className:"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border flex-1 min-h-0",children:s})})})]})]})});ve.displayName="Sidebar";var re=e.forwardRef(({className:a,onClick:t,...n},i)=>{let{toggleSidebar:s,toggleMobileSidebar:c,openMobile:u}=E();return b(D,{children:[b(I,{"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("md:hidden bg-transparent hover:bg-transparent",a),onClick:l=>{t?.(l),c()},...n,children:[u?r("span",{className:o(L({variant:"secondary",size:"icon"})),children:r(de,{size:16})}):r("span",{className:o(L({variant:"outline",size:"icon"})),children:r(le,{size:16})}),r("span",{className:"sr-only",children:"Toggle Sidebar"})]}),b(I,{ref:i,"data-sidebar":"trigger",variant:"ghost",size:"icon",className:o("hidden md:inline-flex h-7 w-7",a),onClick:l=>{t?.(l),s()},...n,children:[r("span",{className:"rounded-full p-2",children:r(se,{size:16})}),r("span",{className:"sr-only",children:"Toggle Sidebar"})]})]})});re.displayName="SidebarTrigger";var he=e.forwardRef(({className:a,...t},n)=>{let{toggleSidebar:i}=E();return r("button",{ref:n,"data-sidebar":"rail","aria-label":"Toggle Sidebar",tabIndex:-1,onClick:i,title:"Toggle Sidebar",className:o("absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex","in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize","[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize","group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar","[[data-side=left][data-collapsible=offcanvas]_&]:-right-2","[[data-side=right][data-collapsible=offcanvas]_&]:-left-2",a),...t})});he.displayName="SidebarRail";var Re=e.memo(e.forwardRef(({className:a,...t},n)=>r("main",{ref:n,className:o("relative flex min-w-0 w-full flex-1 flex-col","md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow",a),...t})));Re.displayName="SidebarInset";var xe=e.forwardRef(({className:a,...t},n)=>r(K,{ref:n,"data-sidebar":"input",className:o("h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring",a),...t}));xe.displayName="SidebarInput";var Se=e.forwardRef(({className:a,showTrigger:t=!1,children:n,...i},s)=>{let{state:c}=E(),u=e.useContext(te),l=c==="collapsed"&&!u;return b("div",{ref:s,"data-sidebar":"header",className:o("flex w-full gap-2 p-2 items-center",l?"justify-center items-center":"justify-between items-start",a),...i,children:[!l&&r("div",{className:"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden",children:r("div",{className:"whitespace-nowrap",children:n})}),t&&r(re,{})]})});Se.displayName="SidebarHeader";var we=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"footer",className:o("flex flex-col gap-2 p-2",a),...t}));we.displayName="SidebarFooter";var ye=e.forwardRef(({className:a,...t},n)=>r($,{ref:n,"data-sidebar":"separator",className:o("mx-2 w-auto bg-border",a),...t}));ye.displayName="SidebarSeparator";var Ce=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"content",className:o("flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2",a),...t}));Ce.displayName="SidebarContent";var Ne=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"group",className:o("relative flex w-full min-w-0 flex-col","group-data-[collapsible=icon]:p-0",a),...t}));Ne.displayName="SidebarGroup";var Me=e.forwardRef(({className:a,asChild:t=!1,...n},i)=>r(t?T:"div",{ref:i,"data-sidebar":"group-label",className:o("flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0",a),...n}));Me.displayName="SidebarGroupLabel";var Te=e.forwardRef(({className:a,asChild:t=!1,...n},i)=>r(t?T:"button",{ref:i,"data-sidebar":"group-action",className:o("absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","group-data-[collapsible=icon]:hidden",a),...n}));Te.displayName="SidebarGroupAction";var Ee=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"group-content",className:o("w-full text-sm",a),...t}));Ee.displayName="SidebarGroupContent";var Pe=e.forwardRef(({className:a,...t},n)=>r("ul",{ref:n,"data-sidebar":"menu",className:o("flex w-full min-w-0 flex-col gap-1",a),...t}));Pe.displayName="SidebarMenu";var Be=e.forwardRef(({className:a,...t},n)=>r("li",{ref:n,"data-sidebar":"menu-item",className:o("group/menu-item relative",a),...t}));Be.displayName="SidebarMenuItem";var He=ie("peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0",{variants:{variant:{default:"",outline:"bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]"},size:{default:"h-8 text-sm",sm:"h-7 text-xs",lg:"h-12 text-sm group-data-[collapsible=icon]:!p-0"}},defaultVariants:{variant:"default",size:"default"}}),Le=e.forwardRef(({asChild:a=!1,isActive:t=!1,variant:n="default",size:i="default",tooltip:s,className:c,...u},l)=>{let R=a?T:"button",{state:g}=E(),f=r(R,{ref:l,"data-sidebar":"menu-button","data-size":i,"data-active":t,className:o(He({variant:n,size:i}),c),...u});return s?(typeof s=="string"&&(s={children:s}),b(J,{children:[r(Q,{asChild:!0,children:f}),r(Z,{side:"right",align:"center",hidden:g!=="collapsed",...s})]})):f});Le.displayName="SidebarMenuButton";var Ie=e.forwardRef(({className:a,asChild:t=!1,showOnHover:n=!1,...i},s)=>r(t?T:"button",{ref:s,"data-sidebar":"menu-action",className:o("absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0","after:absolute after:-inset-2 after:md:hidden","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",n&&"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0",a),...i}));Ie.displayName="SidebarMenuAction";var ze=e.forwardRef(({className:a,...t},n)=>r("div",{ref:n,"data-sidebar":"menu-badge",className:o("pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground","peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground","peer-data-[size=sm]/menu-button:top-1","peer-data-[size=default]/menu-button:top-1.5","peer-data-[size=lg]/menu-button:top-2.5","group-data-[collapsible=icon]:hidden",a),...t}));ze.displayName="SidebarMenuBadge";var De=e.forwardRef(({className:a,showIcon:t=!1,...n},i)=>{let s=e.useMemo(()=>`${Math.floor(Math.random()*40)+50}%`,[]);return b("div",{ref:i,"data-sidebar":"menu-skeleton",className:o("flex h-8 items-center gap-2 rounded-md px-2",a),...n,children:[t&&r(z,{className:"size-4 rounded-md","data-sidebar":"menu-skeleton-icon"}),r(z,{className:"h-4 max-w-[--skeleton-width] flex-1","data-sidebar":"menu-skeleton-text",style:{"--skeleton-width":s}})]})});De.displayName="SidebarMenuSkeleton";var ke=e.forwardRef(({className:a,...t},n)=>r("ul",{ref:n,"data-sidebar":"menu-sub",className:o("mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5","group-data-[collapsible=icon]:hidden",a),...t}));ke.displayName="SidebarMenuSub";var _e=e.forwardRef(({...a},t)=>r("li",{ref:t,...a}));_e.displayName="SidebarMenuSubItem";var Ae=e.forwardRef(({asChild:a=!1,size:t="md",isActive:n,className:i,...s},c)=>r(a?T:"a",{ref:c,"data-sidebar":"menu-sub-button","data-size":t,"data-active":n,className:o("flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground","data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground",t==="sm"&&"text-xs",t==="md"&&"text-sm","group-data-[collapsible=icon]:hidden",i),...s}));Ae.displayName="SidebarMenuSubButton";export{E as a,me as b,ge as c,ve as d,re as e,he as f,Re as g,xe as h,Se as i,we as j,ye as k,Ce as l,Ne as m,Me as n,Te as o,Ee as p,Pe as q,Be as r,Le as s,Ie as t,ze as u,De as v,ke as w,_e as x,Ae as y};
|
|
3
|
+
//# sourceMappingURL=chunk-CA75YECJ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/sidebar.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\nimport { PanelLeft, X, Menu } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Button, buttonVariants } from \"@/components/button\"\r\nimport { Input } from \"@/components/input\"\r\nimport { Separator } from \"@/components/separator\"\r\nimport {\r\n Sheet,\r\n SheetContent,\r\n SheetDescription,\r\n SheetHeader,\r\n SheetTitle,\r\n} from \"@/components/sheet\"\r\nimport { Skeleton } from \"@/components/skeleton\"\r\nimport {\r\n Tooltip,\r\n TooltipContent,\r\n TooltipProvider,\r\n TooltipTrigger,\r\n} from \"@/components/tooltip\"\r\n\r\nconst SIDEBAR_COOKIE_NAME = \"sidebar_state\"\r\nconst SIDEBAR_COOKIE_MAX_AGE = 60 * 60 * 24 * 7\r\nconst SIDEBAR_WIDTH = \"16.75rem\"\r\nconst SIDEBAR_WIDTH_MOBILE = \"23rem\"\r\nconst SIDEBAR_WIDTH_ICON = \"calc(3rem + 0.75rem)\"\r\nconst SIDEBAR_KEYBOARD_SHORTCUT = \"b\"\r\n\r\ntype SidebarContextProps = {\r\n state: \"expanded\" | \"collapsed\"\r\n isOpen: boolean\r\n setOpen: (open: boolean) => void\r\n openMobile: boolean\r\n setOpenMobile: (open: boolean) => void\r\n toggleSidebar: () => void\r\n toggleMobileSidebar: () => void\r\n setIsFullyOpen: (open: boolean) => void\r\n isAnimating: boolean\r\n setIsAnimating: (animating: boolean) => void\r\n isBannerClosing: boolean\r\n}\r\n\r\nconst SidebarContext = React.createContext<SidebarContextProps | null>(null)\r\nconst SidebarMobileContext = React.createContext(false)\r\n\r\nfunction useSidebar() {\r\n const context = React.useContext(SidebarContext)\r\n if (!context) {\r\n throw new Error(\"useSidebar must be used within a SidebarProvider.\")\r\n }\r\n\r\n return context\r\n}\r\n\r\nconst SidebarProvider = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n defaultOpen?: boolean\r\n open?: boolean\r\n onOpenChange?: (open: boolean) => void\r\n }\r\n>(\r\n (\r\n {\r\n defaultOpen = true,\r\n open: openProp,\r\n onOpenChange: setOpenProp,\r\n className,\r\n style,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const [openMobile, setOpenMobile] = React.useState(false)\r\n const [isFullyOpen, setIsFullyOpen] = React.useState(defaultOpen)\r\n const [isAnimating, setIsAnimating] = React.useState(false)\r\n\r\n const [_open, _setOpen] = React.useState(defaultOpen)\r\n const open = openProp ?? _open\r\n const setOpen = React.useCallback(\r\n (value: boolean | ((value: boolean) => boolean)) => {\r\n const openState = typeof value === \"function\" ? value(open) : value\r\n if (setOpenProp) {\r\n setOpenProp(openState)\r\n } else {\r\n _setOpen(openState)\r\n }\r\n\r\n document.cookie = `${SIDEBAR_COOKIE_NAME}=${openState}; path=/; max-age=${SIDEBAR_COOKIE_MAX_AGE}`\r\n },\r\n [setOpenProp, open]\r\n )\r\n\r\n const toggleSidebar = React.useCallback(() => {\r\n setOpen((open) => !open)\r\n }, [setOpen])\r\n\r\n const toggleMobileSidebar = React.useCallback(() => {\r\n const mdBreakpoint = getComputedStyle(document.documentElement)\r\n .getPropertyValue(\"--breakpoint-md\")\r\n .trim()\r\n if (\r\n mdBreakpoint &&\r\n window.matchMedia(`(min-width: ${mdBreakpoint})`).matches\r\n ) {\r\n return\r\n }\r\n setOpenMobile((open) => !open)\r\n }, [setOpenMobile])\r\n\r\n React.useEffect(() => {\r\n const handleKeyDown = (event: KeyboardEvent) => {\r\n if (\r\n event.key === SIDEBAR_KEYBOARD_SHORTCUT &&\r\n (event.metaKey || event.ctrlKey)\r\n ) {\r\n event.preventDefault()\r\n toggleSidebar()\r\n }\r\n }\r\n\r\n window.addEventListener(\"keydown\", handleKeyDown)\r\n return () => window.removeEventListener(\"keydown\", handleKeyDown)\r\n }, [toggleSidebar])\r\n\r\n const state = open ? \"expanded\" : \"collapsed\"\r\n\r\n const [bannerHeight, setBannerHeight] = React.useState(0)\r\n const bannerRef = React.useRef<HTMLDivElement>(null)\r\n const previousBannerChildrenRef = React.useRef<React.ReactNode[]>([])\r\n\r\n // Separate banner children (SidebarBanner) from layout children (Sidebar, SidebarInset)\r\n const childArray = React.Children.toArray(children)\r\n const bannerChildren = childArray.filter(\r\n (child) =>\r\n React.isValidElement(child) &&\r\n (child.type as React.FC & { displayName?: string })?.displayName ===\r\n \"SidebarBanner\"\r\n )\r\n const layoutChildren = childArray.filter(\r\n (child) =>\r\n !React.isValidElement(child) ||\r\n (child.type as React.FC & { displayName?: string })?.displayName !==\r\n \"SidebarBanner\"\r\n )\r\n\r\n // Store previous banner children for closing animation\r\n if (bannerChildren.length > 0) {\r\n previousBannerChildrenRef.current = bannerChildren\r\n }\r\n\r\n const hasBanner = bannerChildren.length > 0\r\n const isClosing = !hasBanner && previousBannerChildrenRef.current.length > 0\r\n const displayBanner = hasBanner || isClosing\r\n\r\n const contextValue = React.useMemo<SidebarContextProps>(\r\n () => ({\r\n state,\r\n isOpen: isFullyOpen,\r\n setOpen,\r\n openMobile,\r\n setOpenMobile,\r\n toggleSidebar,\r\n toggleMobileSidebar,\r\n setIsFullyOpen,\r\n isAnimating,\r\n setIsAnimating,\r\n isBannerClosing: isClosing,\r\n }),\r\n [\r\n state,\r\n isFullyOpen,\r\n setOpen,\r\n openMobile,\r\n setOpenMobile,\r\n toggleSidebar,\r\n toggleMobileSidebar,\r\n setIsFullyOpen,\r\n isAnimating,\r\n setIsAnimating,\r\n isClosing,\r\n ]\r\n )\r\n\r\n // Measure banner height\r\n React.useEffect(() => {\r\n const banner = bannerRef.current\r\n if (!banner) {\r\n setBannerHeight(0)\r\n return\r\n }\r\n\r\n const updateHeight = () => {\r\n setBannerHeight(banner.offsetHeight)\r\n }\r\n\r\n updateHeight()\r\n const resizeObserver = new ResizeObserver(updateHeight)\r\n resizeObserver.observe(banner)\r\n\r\n return () => resizeObserver.disconnect()\r\n }, [bannerChildren.length])\r\n\r\n return (\r\n <SidebarContext.Provider value={contextValue}>\r\n <TooltipProvider delayDuration={0}>\r\n <div\r\n style={\r\n {\r\n \"--sidebar-width\": SIDEBAR_WIDTH,\r\n \"--sidebar-width-icon\": SIDEBAR_WIDTH_ICON,\r\n \"--sidebar-top\": hasBanner ? `${bannerHeight}px` : \"0px\",\r\n ...style,\r\n } as React.CSSProperties\r\n }\r\n className={cn(\r\n \"group/sidebar-wrapper flex min-h-svh w-full has-data-[variant=inset]:bg-sidebar\",\r\n displayBanner && \"flex-col\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {displayBanner ? (\r\n <>\r\n <div\r\n className=\"relative overflow-hidden transition-[height] duration-200 ease-linear\"\r\n style={\r\n {\r\n height: isClosing\r\n ? \"0px\"\r\n : bannerHeight > 0\r\n ? `${bannerHeight}px`\r\n : \"auto\",\r\n } as React.CSSProperties\r\n }\r\n >\r\n <div\r\n ref={bannerRef}\r\n className=\"fixed top-0 left-0 right-0 z-20 w-full transition-transform duration-200 ease-linear data-[state=closed]:-translate-y-full\"\r\n data-state={hasBanner ? \"open\" : \"closed\"}\r\n onTransitionEnd={() => {\r\n if (isClosing) {\r\n previousBannerChildrenRef.current = []\r\n }\r\n }}\r\n >\r\n {hasBanner\r\n ? bannerChildren\r\n : previousBannerChildrenRef.current}\r\n </div>\r\n </div>\r\n <div className=\"flex flex-1\">{layoutChildren}</div>\r\n </>\r\n ) : (\r\n children\r\n )}\r\n </div>\r\n </TooltipProvider>\r\n </SidebarContext.Provider>\r\n )\r\n }\r\n)\r\nSidebarProvider.displayName = \"SidebarProvider\"\r\n\r\nconst SidebarBanner = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"banner\"\r\n className={cn(\"w-full\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarBanner.displayName = \"SidebarBanner\"\r\n\r\nconst Sidebar = React.forwardRef<\r\n HTMLElement,\r\n React.ComponentProps<\"aside\"> & {\r\n side?: \"left\" | \"right\"\r\n variant?: \"sidebar\" | \"floating\" | \"inset\"\r\n collapsible?: \"offcanvas\" | \"icon\" | \"none\"\r\n }\r\n>(\r\n (\r\n {\r\n side = \"left\",\r\n variant = \"sidebar\",\r\n collapsible = \"offcanvas\",\r\n className,\r\n children,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const {\r\n state,\r\n openMobile,\r\n setOpenMobile,\r\n setIsFullyOpen,\r\n setIsAnimating,\r\n isBannerClosing,\r\n } = useSidebar()\r\n const sidebarRef = React.useRef<HTMLDivElement>(null)\r\n const isFirstRenderRef = React.useRef(true)\r\n\r\n // Track when the sidebar animation completes\r\n React.useEffect(() => {\r\n const sidebar = sidebarRef.current\r\n if (!sidebar) return\r\n\r\n // On first render, set isFullyOpen immediately without waiting for animation\r\n if (isFirstRenderRef.current) {\r\n isFirstRenderRef.current = false\r\n setIsFullyOpen(state === \"expanded\")\r\n setIsAnimating(false)\r\n return\r\n }\r\n\r\n // Mark as animating when state changes\r\n setIsAnimating(true)\r\n\r\n // Fallback timeout in case transitionend doesn't fire\r\n const fallbackTimeout = setTimeout(() => {\r\n setIsFullyOpen(state === \"expanded\")\r\n setIsAnimating(false)\r\n }, 300) // Slightly longer than the 200ms transition duration\r\n\r\n const handleTransitionEnd = (event: TransitionEvent) => {\r\n // Only respond to transitions on the sidebar itself, not children\r\n if (event.target !== sidebar) return\r\n\r\n // Check if we're transitioning width, left, or right properties\r\n if (\r\n event.propertyName === \"left\" ||\r\n event.propertyName === \"right\" ||\r\n event.propertyName === \"width\"\r\n ) {\r\n clearTimeout(fallbackTimeout)\r\n setIsFullyOpen(state === \"expanded\")\r\n setIsAnimating(false)\r\n }\r\n }\r\n\r\n sidebar.addEventListener(\"transitionend\", handleTransitionEnd)\r\n return () => {\r\n sidebar.removeEventListener(\"transitionend\", handleTransitionEnd)\r\n clearTimeout(fallbackTimeout)\r\n }\r\n }, [state, setIsFullyOpen, setIsAnimating])\r\n\r\n if (collapsible === \"none\") {\r\n return (\r\n <aside\r\n className={cn(\r\n \"flex h-full w-(--sidebar-width) flex-col bg-sidebar text-sidebar-foreground\",\r\n className\r\n )}\r\n ref={ref}\r\n {...props}\r\n >\r\n {children}\r\n </aside>\r\n )\r\n }\r\n\r\n return (\r\n <>\r\n {/* Mobile Sheet - visible only on mobile (< md) */}\r\n <Sheet open={openMobile} onOpenChange={setOpenMobile}>\r\n <SheetContent\r\n data-sidebar=\"sidebar\"\r\n data-mobile=\"true\"\r\n className=\"md:hidden bg-sidebar p-0 text-sidebar-foreground [&>button]:hidden\"\r\n style={\r\n {\r\n width: SIDEBAR_WIDTH_MOBILE,\r\n maxWidth: SIDEBAR_WIDTH_MOBILE,\r\n } as React.CSSProperties\r\n }\r\n side={side}\r\n >\r\n <SheetHeader className=\"sr-only\">\r\n <SheetTitle>Sidebar</SheetTitle>\r\n <SheetDescription>Displays the mobile sidebar.</SheetDescription>\r\n </SheetHeader>\r\n <SidebarMobileContext.Provider value={true}>\r\n <div className=\"flex h-full w-full flex-col\">{children}</div>\r\n </SidebarMobileContext.Provider>\r\n </SheetContent>\r\n </Sheet>\r\n\r\n {/* Desktop Sidebar - visible only on desktop (md+) */}\r\n <aside\r\n ref={ref}\r\n className=\"group peer hidden text-sidebar-foreground md:block\"\r\n data-state={state}\r\n data-collapsible={state === \"collapsed\" ? collapsible : \"\"}\r\n data-variant={variant}\r\n data-side={side}\r\n >\r\n {/* Spacer to reserve horizontal space */}\r\n <div\r\n className={cn(\r\n \"w-(--sidebar-width) transition-[width] duration-200 ease-linear\",\r\n \"group-data-[collapsible=offcanvas]:w-0\",\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4)))]\"\r\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\"\r\n )}\r\n />\r\n {/* Fixed sidebar */}\r\n <div\r\n ref={sidebarRef}\r\n data-banner-closing={isBannerClosing}\r\n className={cn(\r\n \"fixed z-10 hidden w-(--sidebar-width) transition-[left,right,width] duration-200 ease-linear md:flex\",\r\n isBannerClosing && \"transition-[left,right,width,top,height]\",\r\n \"top-(--sidebar-top) h-[calc(100svh-var(--sidebar-top))]\",\r\n side === \"left\"\r\n ? \"left-0 group-data-[collapsible=offcanvas]:left-[calc(var(--sidebar-width)*-1)]\"\r\n : \"right-0 group-data-[collapsible=offcanvas]:right-[calc(var(--sidebar-width)*-1)]\",\r\n variant === \"floating\" || variant === \"inset\"\r\n ? \"p-2 group-data-[collapsible=icon]:w-[calc(var(--sidebar-width-icon)+(--spacing(4))+2px)]\"\r\n : \"group-data-[collapsible=icon]:w-(--sidebar-width-icon)\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <div\r\n data-sidebar=\"sidebar\"\r\n className=\"flex h-full w-full flex-col group-data-[variant=floating]:rounded-lg group-data-[variant=floating]:border group-data-[variant=floating]:border-sidebar-border group-data-[variant=floating]:shadow\"\r\n >\r\n <div className=\"flex flex-col my-2.5 ml-2.5 rounded-2xl border bg-sidebar border-sidebar-border flex-1 min-h-0\">\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n </aside>\r\n </>\r\n )\r\n }\r\n)\r\nSidebar.displayName = \"Sidebar\"\r\n\r\nconst SidebarTrigger = React.forwardRef<\r\n React.ElementRef<typeof Button>,\r\n React.ComponentProps<typeof Button>\r\n>(({ className, onClick, ...props }, ref) => {\r\n const { toggleSidebar, toggleMobileSidebar, openMobile } = useSidebar()\r\n\r\n return (\r\n <>\r\n {/* Mobile trigger - visible below md */}\r\n <Button\r\n data-sidebar=\"trigger\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn(\r\n \"md:hidden bg-transparent hover:bg-transparent\",\r\n className\r\n )}\r\n onClick={(event) => {\r\n onClick?.(event)\r\n toggleMobileSidebar()\r\n }}\r\n {...props}\r\n >\r\n {openMobile ? (\r\n <span\r\n className={cn(\r\n buttonVariants({ variant: \"secondary\", size: \"icon\" })\r\n )}\r\n >\r\n <X size={16} />\r\n </span>\r\n ) : (\r\n <span\r\n className={cn(buttonVariants({ variant: \"outline\", size: \"icon\" }))}\r\n >\r\n <Menu size={16} />\r\n </span>\r\n )}\r\n <span className=\"sr-only\">Toggle Sidebar</span>\r\n </Button>\r\n\r\n {/* Desktop trigger - visible at md+ */}\r\n <Button\r\n ref={ref}\r\n data-sidebar=\"trigger\"\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className={cn(\"hidden md:inline-flex h-7 w-7\", className)}\r\n onClick={(event) => {\r\n onClick?.(event)\r\n toggleSidebar()\r\n }}\r\n {...props}\r\n >\r\n <span className=\"rounded-full p-2\">\r\n <PanelLeft size={16} />\r\n </span>\r\n <span className=\"sr-only\">Toggle Sidebar</span>\r\n </Button>\r\n </>\r\n )\r\n})\r\nSidebarTrigger.displayName = \"SidebarTrigger\"\r\n\r\nconst SidebarRail = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\">\r\n>(({ className, ...props }, ref) => {\r\n const { toggleSidebar } = useSidebar()\r\n\r\n return (\r\n <button\r\n ref={ref}\r\n data-sidebar=\"rail\"\r\n aria-label=\"Toggle Sidebar\"\r\n tabIndex={-1}\r\n onClick={toggleSidebar}\r\n title=\"Toggle Sidebar\"\r\n className={cn(\r\n \"absolute inset-y-0 z-20 hidden w-4 -translate-x-1/2 transition-all ease-linear after:absolute after:inset-y-0 after:left-1/2 after:w-[2px] hover:after:bg-border group-data-[side=left]:-right-4 group-data-[side=right]:left-0 sm:flex\",\r\n \"in-data-[side=left]:cursor-w-resize in-data-[side=right]:cursor-e-resize\",\r\n \"[[data-side=left][data-state=collapsed]_&]:cursor-e-resize [[data-side=right][data-state=collapsed]_&]:cursor-w-resize\",\r\n \"group-data-[collapsible=offcanvas]:translate-x-0 group-data-[collapsible=offcanvas]:after:left-full group-data-[collapsible=offcanvas]:hover:bg-sidebar\",\r\n \"[[data-side=left][data-collapsible=offcanvas]_&]:-right-2\",\r\n \"[[data-side=right][data-collapsible=offcanvas]_&]:-left-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarRail.displayName = \"SidebarRail\"\r\n\r\nconst SidebarInset = React.memo(\r\n React.forwardRef<HTMLDivElement, React.ComponentProps<\"main\">>(\r\n ({ className, ...props }, ref) => {\r\n return (\r\n <main\r\n ref={ref}\r\n className={cn(\r\n \"relative flex min-w-0 w-full flex-1 flex-col\",\r\n \"md:peer-data-[variant=inset]:m-2 md:peer-data-[state=collapsed]:peer-data-[variant=inset]:ml-2 md:peer-data-[variant=inset]:ml-0 md:peer-data-[variant=inset]:rounded-xl md:peer-data-[variant=inset]:shadow\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n }\r\n )\r\n)\r\nSidebarInset.displayName = \"SidebarInset\"\r\n\r\nconst SidebarInput = React.forwardRef<\r\n React.ElementRef<typeof Input>,\r\n React.ComponentProps<typeof Input>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <Input\r\n ref={ref}\r\n data-sidebar=\"input\"\r\n className={cn(\r\n \"h-8 w-full bg-sidebar shadow-none focus-visible:ring-2 focus-visible:ring-sidebar-ring\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarInput.displayName = \"SidebarInput\"\r\n\r\nconst SidebarHeader = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n showTrigger?: boolean\r\n }\r\n>(({ className, showTrigger = false, children, ...props }, ref) => {\r\n const { state } = useSidebar()\r\n const isMobile = React.useContext(SidebarMobileContext)\r\n\r\n const isCollapsed = state === \"collapsed\" && !isMobile\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"header\"\r\n className={cn(\r\n \"flex w-full gap-2 p-2 items-center\",\r\n isCollapsed\r\n ? \"justify-center items-center\"\r\n : \"justify-between items-start\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {!isCollapsed && (\r\n <div className=\"transition-all duration-200 w-full h-fit flex justify-between overflow-hidden\">\r\n <div className=\"whitespace-nowrap\">{children}</div>\r\n </div>\r\n )}\r\n\r\n {showTrigger && <SidebarTrigger />}\r\n </div>\r\n )\r\n})\r\nSidebarHeader.displayName = \"SidebarHeader\"\r\n\r\nconst SidebarFooter = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"footer\"\r\n className={cn(\"flex flex-col gap-2 p-2\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarFooter.displayName = \"SidebarFooter\"\r\n\r\nconst SidebarSeparator = React.forwardRef<\r\n React.ElementRef<typeof Separator>,\r\n React.ComponentProps<typeof Separator>\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <Separator\r\n ref={ref}\r\n data-sidebar=\"separator\"\r\n className={cn(\"mx-2 w-auto bg-border\", className)}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarSeparator.displayName = \"SidebarSeparator\"\r\n\r\nconst SidebarContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"content\"\r\n className={cn(\r\n \"flex min-h-0 flex-1 flex-col gap-2 overflow-auto group-data-[collapsible=icon]:overflow-hidden p-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarContent.displayName = \"SidebarContent\"\r\n\r\nconst SidebarGroup = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => {\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"group\"\r\n className={cn(\r\n \"relative flex w-full min-w-0 flex-col\",\r\n \"group-data-[collapsible=icon]:p-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarGroup.displayName = \"SidebarGroup\"\r\n\r\nconst SidebarGroupLabel = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & { asChild?: boolean }\r\n>(({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"div\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-label\"\r\n className={cn(\r\n \"flex h-8 shrink-0 items-center rounded-md text-xs font-medium text-secondary-text outline-none ring-sidebar-ring transition-[margin,opacity] duration-200 ease-linear focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n \"group-data-[collapsible=icon]:-mt-8 group-data-[collapsible=icon]:opacity-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarGroupLabel.displayName = \"SidebarGroupLabel\"\r\n\r\nconst SidebarGroupAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & { asChild?: boolean }\r\n>(({ className, asChild = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"group-action\"\r\n className={cn(\r\n \"absolute right-3 top-3.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 [&>svg]:size-4 [&>svg]:shrink-0\",\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarGroupAction.displayName = \"SidebarGroupAction\"\r\n\r\nconst SidebarGroupContent = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"group-content\"\r\n className={cn(\"w-full text-sm\", className)}\r\n {...props}\r\n />\r\n))\r\nSidebarGroupContent.displayName = \"SidebarGroupContent\"\r\n\r\nconst SidebarMenu = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu\"\r\n className={cn(\"flex w-full min-w-0 flex-col gap-1\", className)}\r\n {...props}\r\n />\r\n))\r\nSidebarMenu.displayName = \"SidebarMenu\"\r\n\r\nconst SidebarMenuItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ className, ...props }, ref) => (\r\n <li\r\n ref={ref}\r\n data-sidebar=\"menu-item\"\r\n className={cn(\"group/menu-item relative\", className)}\r\n {...props}\r\n />\r\n))\r\nSidebarMenuItem.displayName = \"SidebarMenuItem\"\r\n\r\nconst sidebarMenuButtonVariants = cva(\r\n \"peer/menu-button flex w-full items-center gap-2 overflow-hidden rounded-md p-2 text-left text-sm outline-none ring-sidebar-ring transition-[width,height,padding] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 group-has-[[data-sidebar=menu-action]]/menu-item:pr-8 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-[active=true]:bg-sidebar-accent data-[active=true]:font-medium data-[active=true]:text-sidebar-accent-foreground data-[state=open]:hover:bg-sidebar-accent data-[state=open]:hover:text-sidebar-accent-foreground group-data-[collapsible=icon]:!size-8 group-data-[collapsible=icon]:!p-2 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0\",\r\n {\r\n variants: {\r\n variant: {\r\n default: \"\",\r\n outline:\r\n \"bg-sidebar shadow-[0_0_0_1px_var(--sidebar-border)] hover:bg-sidebar-accent hover:text-sidebar-accent-foreground hover:shadow-[0_0_0_1px_var(--sidebar-accent)]\",\r\n },\r\n size: {\r\n default: \"h-8 text-sm\",\r\n sm: \"h-7 text-xs\",\r\n lg: \"h-12 text-sm group-data-[collapsible=icon]:!p-0\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nconst SidebarMenuButton = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean\r\n isActive?: boolean\r\n tooltip?: string | React.ComponentProps<typeof TooltipContent>\r\n } & VariantProps<typeof sidebarMenuButtonVariants>\r\n>(\r\n (\r\n {\r\n asChild = false,\r\n isActive = false,\r\n variant = \"default\",\r\n size = \"default\",\r\n tooltip,\r\n className,\r\n ...props\r\n },\r\n ref\r\n ) => {\r\n const Comp = asChild ? Slot : \"button\"\r\n const { state } = useSidebar()\r\n\r\n const button = (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(sidebarMenuButtonVariants({ variant, size }), className)}\r\n {...props}\r\n />\r\n )\r\n\r\n if (!tooltip) {\r\n return button\r\n }\r\n\r\n if (typeof tooltip === \"string\") {\r\n tooltip = {\r\n children: tooltip,\r\n }\r\n }\r\n\r\n return (\r\n <Tooltip>\r\n <TooltipTrigger asChild>{button}</TooltipTrigger>\r\n <TooltipContent\r\n side=\"right\"\r\n align=\"center\"\r\n hidden={state !== \"collapsed\"}\r\n {...tooltip}\r\n />\r\n </Tooltip>\r\n )\r\n }\r\n)\r\nSidebarMenuButton.displayName = \"SidebarMenuButton\"\r\n\r\nconst SidebarMenuAction = React.forwardRef<\r\n HTMLButtonElement,\r\n React.ComponentProps<\"button\"> & {\r\n asChild?: boolean\r\n showOnHover?: boolean\r\n }\r\n>(({ className, asChild = false, showOnHover = false, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-action\"\r\n className={cn(\r\n \"absolute right-1 top-1.5 flex aspect-square w-5 items-center justify-center rounded-md p-0 text-sidebar-foreground outline-none ring-sidebar-ring transition-transform hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 peer-hover/menu-button:text-sidebar-accent-foreground [&>svg]:size-4 [&>svg]:shrink-0\",\r\n \"after:absolute after:-inset-2 after:md:hidden\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n showOnHover &&\r\n \"group-focus-within/menu-item:opacity-100 group-hover/menu-item:opacity-100 data-[state=open]:opacity-100 peer-data-[active=true]/menu-button:text-base-accent-foreground md:opacity-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarMenuAction.displayName = \"SidebarMenuAction\"\r\n\r\nconst SidebarMenuBadge = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\">\r\n>(({ className, ...props }, ref) => (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-badge\"\r\n className={cn(\r\n \"pointer-events-none absolute right-1 flex h-5 min-w-5 select-none items-center justify-center rounded-md px-1 text-xs font-medium tabular-nums text-sidebar-foreground\",\r\n \"peer-hover/menu-button:text-sidebar-accent-foreground peer-data-[active=true]/menu-button:text-sidebar-accent-foreground\",\r\n \"peer-data-[size=sm]/menu-button:top-1\",\r\n \"peer-data-[size=default]/menu-button:top-1.5\",\r\n \"peer-data-[size=lg]/menu-button:top-2.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSidebarMenuBadge.displayName = \"SidebarMenuBadge\"\r\n\r\nconst SidebarMenuSkeleton = React.forwardRef<\r\n HTMLDivElement,\r\n React.ComponentProps<\"div\"> & {\r\n showIcon?: boolean\r\n }\r\n>(({ className, showIcon = false, ...props }, ref) => {\r\n const width = React.useMemo(() => {\r\n return `${Math.floor(Math.random() * 40) + 50}%`\r\n }, [])\r\n\r\n return (\r\n <div\r\n ref={ref}\r\n data-sidebar=\"menu-skeleton\"\r\n className={cn(\"flex h-8 items-center gap-2 rounded-md px-2\", className)}\r\n {...props}\r\n >\r\n {showIcon && (\r\n <Skeleton\r\n className=\"size-4 rounded-md\"\r\n data-sidebar=\"menu-skeleton-icon\"\r\n />\r\n )}\r\n <Skeleton\r\n className=\"h-4 max-w-[--skeleton-width] flex-1\"\r\n data-sidebar=\"menu-skeleton-text\"\r\n style={\r\n {\r\n \"--skeleton-width\": width,\r\n } as React.CSSProperties\r\n }\r\n />\r\n </div>\r\n )\r\n})\r\nSidebarMenuSkeleton.displayName = \"SidebarMenuSkeleton\"\r\n\r\nconst SidebarMenuSub = React.forwardRef<\r\n HTMLUListElement,\r\n React.ComponentProps<\"ul\">\r\n>(({ className, ...props }, ref) => (\r\n <ul\r\n ref={ref}\r\n data-sidebar=\"menu-sub\"\r\n className={cn(\r\n \"mx-3.5 flex min-w-0 translate-x-px flex-col gap-1 border-l border-sidebar-border px-2.5 py-0.5\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nSidebarMenuSub.displayName = \"SidebarMenuSub\"\r\n\r\nconst SidebarMenuSubItem = React.forwardRef<\r\n HTMLLIElement,\r\n React.ComponentProps<\"li\">\r\n>(({ ...props }, ref) => <li ref={ref} {...props} />)\r\nSidebarMenuSubItem.displayName = \"SidebarMenuSubItem\"\r\n\r\nconst SidebarMenuSubButton = React.forwardRef<\r\n HTMLAnchorElement,\r\n React.ComponentProps<\"a\"> & {\r\n asChild?: boolean\r\n size?: \"sm\" | \"md\"\r\n isActive?: boolean\r\n }\r\n>(({ asChild = false, size = \"md\", isActive, className, ...props }, ref) => {\r\n const Comp = asChild ? Slot : \"a\"\r\n\r\n return (\r\n <Comp\r\n ref={ref}\r\n data-sidebar=\"menu-sub-button\"\r\n data-size={size}\r\n data-active={isActive}\r\n className={cn(\r\n \"flex h-7 min-w-0 -translate-x-px items-center gap-2 overflow-hidden rounded-md px-2 text-sidebar-foreground outline-none ring-sidebar-ring hover:bg-sidebar-accent hover:text-sidebar-accent-foreground focus-visible:ring-2 active:bg-sidebar-accent active:text-sidebar-accent-foreground disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-sidebar-accent-foreground\",\r\n \"data-[active=true]:bg-sidebar-accent data-[active=true]:text-sidebar-accent-foreground\",\r\n size === \"sm\" && \"text-xs\",\r\n size === \"md\" && \"text-sm\",\r\n \"group-data-[collapsible=icon]:hidden\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nSidebarMenuSubButton.displayName = \"SidebarMenuSubButton\"\r\n\r\nexport {\r\n Sidebar,\r\n SidebarBanner,\r\n SidebarContent,\r\n SidebarFooter,\r\n SidebarGroup,\r\n SidebarGroupAction,\r\n SidebarGroupContent,\r\n SidebarGroupLabel,\r\n SidebarHeader,\r\n SidebarInput,\r\n SidebarInset,\r\n SidebarMenu,\r\n SidebarMenuAction,\r\n SidebarMenuBadge,\r\n SidebarMenuButton,\r\n SidebarMenuItem,\r\n SidebarMenuSkeleton,\r\n SidebarMenuSub,\r\n SidebarMenuSubButton,\r\n SidebarMenuSubItem,\r\n SidebarProvider,\r\n SidebarRail,\r\n SidebarSeparator,\r\n SidebarTrigger,\r\n useSidebar,\r\n}\r\n"],"mappings":"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","names":["React","Slot","cva","PanelLeft","X","Menu","Fragment","jsx","jsxs","SIDEBAR_COOKIE_NAME","SIDEBAR_COOKIE_MAX_AGE","SIDEBAR_WIDTH","SIDEBAR_WIDTH_MOBILE","SIDEBAR_WIDTH_ICON","SIDEBAR_KEYBOARD_SHORTCUT","SidebarContext","SidebarMobileContext","useSidebar","context","SidebarProvider","defaultOpen","openProp","setOpenProp","className","style","children","props","ref","openMobile","setOpenMobile","isFullyOpen","setIsFullyOpen","isAnimating","setIsAnimating","_open","_setOpen","open","setOpen","value","openState","toggleSidebar","toggleMobileSidebar","mdBreakpoint","handleKeyDown","event","state","bannerHeight","setBannerHeight","bannerRef","previousBannerChildrenRef","childArray","bannerChildren","child","layoutChildren","hasBanner","isClosing","displayBanner","contextValue","banner","updateHeight","resizeObserver","TooltipProvider","cn","SidebarBanner","Sidebar","side","variant","collapsible","isBannerClosing","sidebarRef","isFirstRenderRef","sidebar","fallbackTimeout","handleTransitionEnd","Sheet","SheetContent","SheetHeader","SheetTitle","SheetDescription","SidebarTrigger","onClick","Button","buttonVariants","X","Menu","PanelLeft","SidebarRail","SidebarInset","SidebarInput","Input","SidebarHeader","showTrigger","isMobile","isCollapsed","SidebarFooter","SidebarSeparator","Separator","SidebarContent","SidebarGroup","SidebarGroupLabel","asChild","Slot","SidebarGroupAction","SidebarGroupContent","SidebarMenu","SidebarMenuItem","sidebarMenuButtonVariants","cva","SidebarMenuButton","isActive","size","tooltip","Comp","button","Tooltip","TooltipTrigger","TooltipContent","SidebarMenuAction","showOnHover","SidebarMenuBadge","SidebarMenuSkeleton","showIcon","width","Skeleton","SidebarMenuSub","SidebarMenuSubItem","SidebarMenuSubButton"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
-
var
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
var _chunk4X3MFRSQjs = require('./chunk-4X3MFRSQ.js');var _chunkVBARF35Njs = require('./chunk-VBARF35N.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _datefns = require('date-fns');var _reactpopover = require('@radix-ui/react-popover'); var e = _interopRequireWildcard(_reactpopover);var _jsxruntime = require('react/jsx-runtime');var y=e.Root,h=e.Trigger,c=r.forwardRef(({className:o,align:a="start",sideOffset:i=4,...n},s)=>_jsxruntime.jsx.call(void 0, e.Portal,{children:_jsxruntime.jsx.call(void 0, e.Content,{ref:s,align:a,sideOffset:i,className:_chunkVBARF35Njs.a.call(void 0, "z-50 w-auto rounded-md border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...n})}));c.displayName=e.Content.displayName;var R=r.forwardRef(({date:o,onDateChange:a,placeholder:i="Pick a date",disabled:n=!1,className:s,calendarProps:f,formatStr:P="PPP"},v)=>{let[u,p]=r.useState(!1);return _jsxruntime.jsxs.call(void 0, y,{open:u,onOpenChange:p,children:[_jsxruntime.jsx.call(void 0, h,{asChild:!0,children:_jsxruntime.jsxs.call(void 0, "button",{ref:v,type:"button",className:_chunkVBARF35Njs.a.call(void 0, "flex my-2 h-9 w-full items-center rounded-3xl border border-border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",!o&&"text-secondary-text",s),disabled:n,children:[_jsxruntime.jsx.call(void 0, _lucidereact.CalendarIcon,{className:"mr-2 h-4 w-4"}),o?_datefns.format.call(void 0, o,P):_jsxruntime.jsx.call(void 0, "span",{children:i})]})}),_jsxruntime.jsx.call(void 0, c,{className:"w-auto p-0 rounded-3xl",align:"start",children:_jsxruntime.jsx.call(void 0, _chunk4X3MFRSQjs.a,{mode:"single",selected:o,onSelect:g=>{_optionalChain([a, 'optionalCall', _ => _(g)]),p(!1)},defaultMonth:o,...f})})]})});R.displayName="DatePicker";exports.a = R;
|
|
3
|
+
//# sourceMappingURL=chunk-CVGE3ROD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-CVGE3ROD.js"],"names":[],"mappings":"AAAA,22BAAY;AACZ,sDAAuC,sDAAwC,uEAAwB,2CAA4C,mCAAkC,uGAA0C,+CAAkD,IAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,6BAAC,CAAE,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,6BAAC,CAAE,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,gCAAC,8aAA+a,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,8BAAC,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,6BAAC,CAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,8BAAC,QAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,gCAAC,sTAAuT,CAAC,CAAC,CAAC,EAAE,qBAAqB,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,6BAAC,yBAAE,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,6BAAC,CAAE,CAAC,CAAC,CAAC,CAAC,6BAAC,MAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,6BAAC,CAAE,CAAC,CAAC,SAAS,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,6BAAC,kBAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,iBAAC,CAAC,wBAAE,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,cAAc","file":"C:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-CVGE3ROD.js","sourcesContent":[null]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }"use client";
|
|
2
|
-
var
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
var _chunkXNLDCAFSjs = require('./chunk-XNLDCAFS.js');var _chunkQP7CDVWGjs = require('./chunk-QP7CDVWG.js');var _chunkVBARF35Njs = require('./chunk-VBARF35N.js');var _react = require('react'); var i = _interopRequireWildcard(_react);var _reactdialog = require('@radix-ui/react-dialog'); var e = _interopRequireWildcard(_reactdialog);var _vaul = require('vaul');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var y=i.createContext({}),b= exports.a =({children:a,open:o,onOpenChange:n,...s})=>{let[p,c]=i.useState(!1),f=o!==void 0,m=f?o:p,r=f?n:R=>{c(R)};return _jsxruntime.jsx.call(void 0, e.Root,{open:m,onOpenChange:r,...s,children:_jsxruntime.jsx.call(void 0, y.Provider,{value:{open:m,onOpenChange:r},children:a})})};b.displayName="Dialog";var M=e.Trigger,P= exports.c =e.Portal,L= exports.d =e.Close,C= exports.e =i.forwardRef(({className:a,...o},n)=>_jsxruntime.jsx.call(void 0, e.Overlay,{ref:n,className:_chunkVBARF35Njs.a.call(void 0, "fixed inset-0 z-50 bg-background/80 backdrop-blur-sm data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...o}));C.displayName=e.Overlay.displayName;var x=i.forwardRef(({className:a,children:o,showCloseButton:n=!0,closeOnOverlayClick:s=!0,...p},c)=>{let f=_chunkXNLDCAFSjs.a.call(void 0, "md"),m=i.useContext(y);return f?_jsxruntime.jsxs.call(void 0, P,{children:[_jsxruntime.jsx.call(void 0, C,{}),_jsxruntime.jsxs.call(void 0, e.Content,{ref:c,className:_chunkVBARF35Njs.a.call(void 0, "fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border border-border bg-background shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 sm:rounded-3xl overflow-auto",a),onPointerDownOutside:r=>{s||r.preventDefault()},onEscapeKeyDown:r=>{s||r.preventDefault()},...p,children:[o,n&&_jsxruntime.jsx.call(void 0, e.Close,{asChild:!0,children:_jsxruntime.jsxs.call(void 0, _chunkQP7CDVWGjs.b,{variant:"secondary",size:"icon",className:"absolute right-4 top-4 rounded-full transition-opacity hover:opacity-100 focus:outline-none disabled:pointer-events-none",children:[_jsxruntime.jsx.call(void 0, _lucidereact.X,{className:"h-4 w-4"}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Close"})]})})]})]}):_jsxruntime.jsx.call(void 0, P,{children:_jsxruntime.jsx.call(void 0, _vaul.Drawer.Root,{open:m.open,onOpenChange:m.onOpenChange,dismissible:s,children:_jsxruntime.jsxs.call(void 0, _vaul.Drawer.Portal,{children:[_jsxruntime.jsx.call(void 0, _vaul.Drawer.Overlay,{className:"fixed inset-0 z-50 bg-background/80 backdrop-blur-sm"}),_jsxruntime.jsxs.call(void 0, _vaul.Drawer.Content,{ref:c,className:_chunkVBARF35Njs.a.call(void 0, "fixed inset-x-0 bottom-0 z-50 mt-24 flex flex-col rounded-t-3xl border border-border bg-background shadow-lg outline-none",a),"aria-describedby":void 0,onPointerDownOutside:r=>{s||r.preventDefault()},onEscapeKeyDown:r=>{s||r.preventDefault()},...p,children:[_jsxruntime.jsx.call(void 0, "div",{className:"mx-auto mt-2 h-2 w-[100px] rounded-full bg-muted"}),n&&_jsxruntime.jsxs.call(void 0, _chunkQP7CDVWGjs.b,{variant:"secondary",size:"icon",onClick:()=>_optionalChain([m, 'access', _ => _.onOpenChange, 'optionalCall', _2 => _2(!1)]),className:"absolute right-4 top-4 rounded-full transition-opacity hover:opacity-100 focus:outline-none",children:[_jsxruntime.jsx.call(void 0, _lucidereact.X,{className:"h-4 w-4"}),_jsxruntime.jsx.call(void 0, "span",{className:"sr-only",children:"Close"})]}),_jsxruntime.jsx.call(void 0, "div",{children:o})]})]})})})});x.displayName=e.Content.displayName;var N=({className:a,...o})=>_jsxruntime.jsx.call(void 0, "div",{className:_chunkVBARF35Njs.a.call(void 0, "flex flex-col space-y-1.5 text-left md:text-center",a),...o});N.displayName="DialogHeader";var w=({className:a,...o})=>_jsxruntime.jsx.call(void 0, "div",{className:_chunkVBARF35Njs.a.call(void 0, "flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...o});w.displayName="DialogFooter";var h=i.forwardRef(({className:a,...o},n)=>_jsxruntime.jsx.call(void 0, e.Title,{ref:n,className:_chunkVBARF35Njs.a.call(void 0, "text-lg font-semibold leading-none tracking-tight",a),...o}));h.displayName=e.Title.displayName;var T=i.forwardRef(({className:a,...o},n)=>_jsxruntime.jsx.call(void 0, e.Description,{ref:n,className:_chunkVBARF35Njs.a.call(void 0, "text-sm text-muted-foreground",a),...o}));T.displayName=e.Description.displayName;exports.a = b; exports.b = M; exports.c = P; exports.d = L; exports.e = C; exports.f = x; exports.g = N; exports.h = w; exports.i = h; exports.j = T;
|
|
3
|
+
//# sourceMappingURL=chunk-DEGPIR53.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["c:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-DEGPIR53.js"],"names":[],"mappings":"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","file":"C:\\Users\\Dell\\Documents\\NextJS\\alkimi-ui-kit\\dist\\chunk-DEGPIR53.js","sourcesContent":[null]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a}from"./chunk-AJM7GGVC.mjs";import*as d from"react";import*as e from"@radix-ui/react-dropdown-menu";import{Check as m,ChevronRight as u,Circle as c}from"lucide-react";import{jsx as i,jsxs as s}from"react/jsx-runtime";var g=e.Root,N=e.Trigger,x=e.Group,C=e.Portal,I=e.Sub,S=e.RadioGroup,l=d.forwardRef(({className:o,inset:t,children:n,...r},p)=>s(e.SubTrigger,{ref:p,className:a("flex cursor-default select-none items-center rounded-[12px] px-2 py-1.5 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-[state=open]:bg-secondary",t&&"pl-8",o),...r,children:[n,i(u,{className:"ml-auto h-4 w-4"})]}));l.displayName=e.SubTrigger.displayName;var f=d.forwardRef(({className:o,...t},n)=>i(e.SubContent,{ref:n,className:a("z-50 min-w-32 overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...t}));f.displayName=e.SubContent.displayName;var w=d.forwardRef(({className:o,sideOffset:t=4,...n},r)=>i(e.Portal,{children:i(e.Content,{ref:r,sideOffset:t,className:a("z-50 min-w-32 overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...n})}));w.displayName=e.Content.displayName;var M=d.forwardRef(({className:o,inset:t,...n},r)=>i(e.Item,{ref:r,className:a("relative flex cursor-pointer select-none items-center rounded-[12px] p-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50",t&&"pl-8",o),...n}));M.displayName=e.Item.displayName;var v=d.forwardRef(({className:o,children:t,checked:n,...r},p)=>s(e.CheckboxItem,{ref:p,className:a("relative flex cursor-default select-none items-center rounded-[12px] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50",o),checked:n,...r,children:[i("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i(e.ItemIndicator,{children:i(m,{className:"h-4 w-4"})})}),t]}));v.displayName=e.CheckboxItem.displayName;var D=d.forwardRef(({className:o,children:t,...n},r)=>s(e.RadioItem,{ref:r,className:a("relative flex cursor-default select-none items-center rounded-[12px] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50",o),...n,children:[i("span",{className:"absolute left-2 flex h-3.5 w-3.5 items-center justify-center",children:i(e.ItemIndicator,{children:i(c,{className:"h-2 w-2 fill-current"})})}),t]}));D.displayName=e.RadioItem.displayName;var P=d.forwardRef(({className:o,inset:t,...n},r)=>i(e.Label,{ref:r,className:a("px-2 py-1.5 text-sm font-semibold",t&&"pl-8",o),...n}));P.displayName=e.Label.displayName;var R=d.forwardRef(({className:o,...t},n)=>i(e.Separator,{ref:n,className:a("-mx-1 my-1 h-px bg-muted",o),...t}));R.displayName=e.Separator.displayName;var b=({className:o,...t})=>i("span",{className:a("ml-auto text-xs tracking-widest opacity-60",o),...t});b.displayName="DropdownMenuShortcut";export{g as a,N as b,x as c,C as d,I as e,S as f,l as g,f as h,w as i,M as j,v as k,D as l,P as m,R as n,b as o};
|
|
3
|
+
//# sourceMappingURL=chunk-DP2FXFMQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/dropdown-menu.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as DropdownMenuPrimitive from \"@radix-ui/react-dropdown-menu\"\r\nimport { Check, ChevronRight, Circle } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst DropdownMenu = DropdownMenuPrimitive.Root\r\n\r\nconst DropdownMenuTrigger = DropdownMenuPrimitive.Trigger\r\n\r\nconst DropdownMenuGroup = DropdownMenuPrimitive.Group\r\n\r\nconst DropdownMenuPortal = DropdownMenuPrimitive.Portal\r\n\r\nconst DropdownMenuSub = DropdownMenuPrimitive.Sub\r\n\r\nconst DropdownMenuRadioGroup = DropdownMenuPrimitive.RadioGroup\r\n\r\nconst DropdownMenuSubTrigger = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.SubTrigger>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, children, ...props }, ref) => (\r\n <DropdownMenuPrimitive.SubTrigger\r\n ref={ref}\r\n className={cn(\r\n \"flex cursor-default select-none items-center rounded-[12px] px-2 py-1.5 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-[state=open]:bg-secondary\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRight className=\"ml-auto h-4 w-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n))\r\nDropdownMenuSubTrigger.displayName =\r\n DropdownMenuPrimitive.SubTrigger.displayName\r\n\r\nconst DropdownMenuSubContent = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.SubContent>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.SubContent>\r\n>(({ className, ...props }, ref) => (\r\n <DropdownMenuPrimitive.SubContent\r\n ref={ref}\r\n className={cn(\r\n \"z-50 min-w-32 overflow-hidden rounded-md border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-lg data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDropdownMenuSubContent.displayName =\r\n DropdownMenuPrimitive.SubContent.displayName\r\n\r\nconst DropdownMenuContent = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Content>\r\n>(({ className, sideOffset = 4, ...props }, ref) => (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n ref={ref}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 min-w-32 overflow-hidden rounded-xl border border-border bg-dropdown-menu p-1 text-dropdown-menu-foreground shadow-md data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n))\r\nDropdownMenuContent.displayName = DropdownMenuPrimitive.Content.displayName\r\n\r\nconst DropdownMenuItem = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.Item>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <DropdownMenuPrimitive.Item\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-pointer select-none items-center rounded-[12px] p-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDropdownMenuItem.displayName = DropdownMenuPrimitive.Item.displayName\r\n\r\nconst DropdownMenuCheckboxItem = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.CheckboxItem>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.CheckboxItem>\r\n>(({ className, children, checked, ...props }, ref) => (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-[12px] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50\",\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <Check className=\"h-4 w-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n))\r\nDropdownMenuCheckboxItem.displayName =\r\n DropdownMenuPrimitive.CheckboxItem.displayName\r\n\r\nconst DropdownMenuRadioItem = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.RadioItem>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.RadioItem>\r\n>(({ className, children, ...props }, ref) => (\r\n <DropdownMenuPrimitive.RadioItem\r\n ref={ref}\r\n className={cn(\r\n \"relative flex cursor-default select-none items-center rounded-[12px] py-1.5 pl-8 pr-2 text-sm outline-none transition-colors hover:bg-secondary focus:bg-secondary active:opacity-50 data-disabled:pointer-events-none data-disabled:opacity-50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <Circle className=\"h-2 w-2 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n))\r\nDropdownMenuRadioItem.displayName = DropdownMenuPrimitive.RadioItem.displayName\r\n\r\nconst DropdownMenuLabel = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.Label>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean\r\n }\r\n>(({ className, inset, ...props }, ref) => (\r\n <DropdownMenuPrimitive.Label\r\n ref={ref}\r\n className={cn(\r\n \"px-2 py-1.5 text-sm font-semibold\",\r\n inset && \"pl-8\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nDropdownMenuLabel.displayName = DropdownMenuPrimitive.Label.displayName\r\n\r\nconst DropdownMenuSeparator = React.forwardRef<\r\n React.ElementRef<typeof DropdownMenuPrimitive.Separator>,\r\n React.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator>\r\n>(({ className, ...props }, ref) => (\r\n <DropdownMenuPrimitive.Separator\r\n ref={ref}\r\n className={cn(\"-mx-1 my-1 h-px bg-muted\", className)}\r\n {...props}\r\n />\r\n))\r\nDropdownMenuSeparator.displayName = DropdownMenuPrimitive.Separator.displayName\r\n\r\nconst DropdownMenuShortcut = ({\r\n className,\r\n ...props\r\n}: React.HTMLAttributes<HTMLSpanElement>) => {\r\n return (\r\n <span\r\n className={cn(\"ml-auto text-xs tracking-widest opacity-60\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\nDropdownMenuShortcut.displayName = \"DropdownMenuShortcut\"\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuGroup,\r\n DropdownMenuPortal,\r\n DropdownMenuSub,\r\n DropdownMenuSubContent,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuRadioGroup,\r\n}\r\n"],"mappings":"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","names":["React","DropdownMenuPrimitive","Check","ChevronRight","Circle","jsx","jsxs","DropdownMenu","DropdownMenuTrigger","DropdownMenuGroup","DropdownMenuPortal","DropdownMenuSub","DropdownMenuRadioGroup","DropdownMenuSubTrigger","className","inset","children","props","ref","cn","ChevronRight","DropdownMenuSubContent","DropdownMenuContent","sideOffset","DropdownMenuItem","DropdownMenuCheckboxItem","checked","Check","DropdownMenuRadioItem","Circle","DropdownMenuLabel","DropdownMenuSeparator","DropdownMenuShortcut"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import{useCallback as S,useEffect as L,useRef as P,useState as C}from"react";import{jsx as D,jsxs as N}from"react/jsx-runtime";function T(s){return typeof s=="object"&&"src"in s}function z(s){return T(s)?s.src:s}function J({src:s,alt:w,duration:I=600,steps:d=15,className:E,onAnimationComplete:M,objectFit:f="cover"}){let p=P(null),h=P(null),[y,x]=C("loading"),[r,H]=C(null),v=z(s),b=S((t,a,e,n)=>{t.imageSmoothingEnabled=!0,t.clearRect(0,0,e,n);let i=a.naturalWidth/a.naturalHeight,c=e/n,o,l,u,m;f==="contain"?(i>c?(o=e,l=e/i):(l=n,o=n*i),u=(e-o)/2,m=(n-l)/2):(i>c?(l=n,o=n*i):(o=e,l=e/i),u=(e-o)/2,m=(n-l)/2),t.drawImage(a,u,m,o,l)},[f]),g=S((t,a,e,n,i)=>{t.imageSmoothingEnabled=!1;let c=Math.max(1,Math.floor(n/e)),o=Math.max(1,Math.floor(i/e));t.clearRect(0,0,n,i),t.drawImage(a,0,0,c,o),t.drawImage(h.current,0,0,c,o,0,0,n,i)},[]),R=S((t,a,e,n)=>{let i=Math.max(e,n)/4,c=I/d,o=0;x("animating");let l=()=>{let u=o/d,m=Math.max(1,Math.floor(i*(1-u)));m<=1?b(t,a,e,n):g(t,a,m,e,n),o++,o<=d?window.setTimeout(l,c):(b(t,a,e,n),x("complete"),M?.())};l()},[I,d,g,b,M]);return L(()=>{let t=p.current;if(!t)return;let a=()=>{let{width:n,height:i}=t.getBoundingClientRect();H({width:Math.floor(n),height:Math.floor(i)})},e=new ResizeObserver(a);return e.observe(t),a(),()=>{e.disconnect()}},[]),L(()=>{if(!r||r.width<=0||r.height<=0)return;let t=h.current;if(!t)return;let a=t.getContext("2d");if(!a)return;t.width=r.width,t.height=r.height;let e=new window.Image;return e.crossOrigin="anonymous",e.onload=()=>{let n=Math.max(r.width,r.height)/4;g(a,e,n,r.width,r.height),R(a,e,r.width,r.height)},e.onerror=()=>{console.error("PixelLoad: Failed to load image")},e.src=v,()=>{e.onload=null,e.onerror=null}},[v,r,R,g]),N("div",{ref:p,className:`relative w-full h-full ${E||""}`,children:[D("canvas",{ref:h,className:"absolute top-0 left-0 w-full h-full",style:{objectFit:f},role:"img","aria-label":w}),y==="complete"&&D("img",{src:v,alt:w,className:"sr-only","aria-hidden":!0})]})}export{J as a};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-DRPEVJT7.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/PixelLoad.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport { type StaticImageData } from \"next/image\"\r\nimport { JSX, useCallback, useEffect, useRef, useState } from \"react\"\r\n\r\ntype PixelLoadStatus = \"loading\" | \"animating\" | \"complete\"\r\n\r\ntype ImageSrc = string | StaticImageData\r\n\r\nexport interface PixelLoadProps {\r\n src: ImageSrc\r\n alt: string\r\n duration?: number\r\n steps?: number\r\n className?: string\r\n onAnimationComplete?: () => void\r\n objectFit?: \"contain\" | \"cover\" | \"fill\" | \"none\" | \"scale-down\"\r\n}\r\n\r\nfunction isStaticImageData(src: ImageSrc): src is StaticImageData {\r\n return typeof src === \"object\" && \"src\" in src\r\n}\r\n\r\nfunction getImageSrc(src: ImageSrc): string {\r\n return isStaticImageData(src) ? src.src : src\r\n}\r\n\r\nexport function PixelLoad({\r\n src,\r\n alt,\r\n duration = 600,\r\n steps = 15,\r\n className,\r\n onAnimationComplete,\r\n objectFit = \"cover\",\r\n}: PixelLoadProps): JSX.Element {\r\n const containerRef = useRef<HTMLDivElement>(null)\r\n const canvasRef = useRef<HTMLCanvasElement>(null)\r\n const [status, setStatus] = useState<PixelLoadStatus>(\"loading\")\r\n const [dimensions, setDimensions] = useState<{\r\n width: number\r\n height: number\r\n } | null>(null)\r\n\r\n const imageSrc = getImageSrc(src)\r\n\r\n const drawFull = useCallback(\r\n (\r\n ctx: CanvasRenderingContext2D,\r\n img: HTMLImageElement,\r\n w: number,\r\n h: number\r\n ): void => {\r\n ctx.imageSmoothingEnabled = true\r\n ctx.clearRect(0, 0, w, h)\r\n\r\n const imgRatio = img.naturalWidth / img.naturalHeight\r\n const containerRatio = w / h\r\n\r\n let drawW: number\r\n let drawH: number\r\n let drawX: number\r\n let drawY: number\r\n\r\n if (objectFit === \"contain\") {\r\n if (imgRatio > containerRatio) {\r\n drawW = w\r\n drawH = w / imgRatio\r\n } else {\r\n drawH = h\r\n drawW = h * imgRatio\r\n }\r\n drawX = (w - drawW) / 2\r\n drawY = (h - drawH) / 2\r\n } else {\r\n if (imgRatio > containerRatio) {\r\n drawH = h\r\n drawW = h * imgRatio\r\n } else {\r\n drawW = w\r\n drawH = w / imgRatio\r\n }\r\n drawX = (w - drawW) / 2\r\n drawY = (h - drawH) / 2\r\n }\r\n\r\n ctx.drawImage(img, drawX, drawY, drawW, drawH)\r\n },\r\n [objectFit]\r\n )\r\n\r\n const drawPixelated = useCallback(\r\n (\r\n ctx: CanvasRenderingContext2D,\r\n img: HTMLImageElement,\r\n pixelSize: number,\r\n w: number,\r\n h: number\r\n ): void => {\r\n ctx.imageSmoothingEnabled = false\r\n\r\n const sw = Math.max(1, Math.floor(w / pixelSize))\r\n const sh = Math.max(1, Math.floor(h / pixelSize))\r\n\r\n ctx.clearRect(0, 0, w, h)\r\n ctx.drawImage(img, 0, 0, sw, sh)\r\n ctx.drawImage(canvasRef.current!, 0, 0, sw, sh, 0, 0, w, h)\r\n },\r\n []\r\n )\r\n\r\n const runAnimation = useCallback(\r\n (\r\n ctx: CanvasRenderingContext2D,\r\n img: HTMLImageElement,\r\n w: number,\r\n h: number\r\n ): void => {\r\n const minPixelSize = Math.max(w, h) / 4\r\n const intervalMs = duration / steps\r\n let currentStep = 0\r\n\r\n setStatus(\"animating\")\r\n\r\n const animate = (): void => {\r\n const progress = currentStep / steps\r\n const pixelSize = Math.max(1, Math.floor(minPixelSize * (1 - progress)))\r\n\r\n if (pixelSize <= 1) {\r\n drawFull(ctx, img, w, h)\r\n } else {\r\n drawPixelated(ctx, img, pixelSize, w, h)\r\n }\r\n\r\n currentStep++\r\n\r\n if (currentStep <= steps) {\r\n window.setTimeout(animate, intervalMs)\r\n } else {\r\n drawFull(ctx, img, w, h)\r\n setStatus(\"complete\")\r\n onAnimationComplete?.()\r\n }\r\n }\r\n\r\n animate()\r\n },\r\n [duration, steps, drawPixelated, drawFull, onAnimationComplete]\r\n )\r\n\r\n useEffect(() => {\r\n const container = containerRef.current\r\n if (!container) return\r\n\r\n const updateDimensions = (): void => {\r\n const { width, height } = container.getBoundingClientRect()\r\n setDimensions({ width: Math.floor(width), height: Math.floor(height) })\r\n }\r\n\r\n const resizeObserver = new ResizeObserver(updateDimensions)\r\n resizeObserver.observe(container)\r\n updateDimensions()\r\n\r\n return (): void => {\r\n resizeObserver.disconnect()\r\n }\r\n }, [])\r\n\r\n useEffect(() => {\r\n if (!dimensions) return\r\n\r\n if (dimensions.width <= 0 || dimensions.height <= 0) return\r\n\r\n const canvas = canvasRef.current\r\n if (!canvas) return\r\n\r\n const ctx = canvas.getContext(\"2d\")\r\n if (!ctx) return\r\n\r\n canvas.width = dimensions.width\r\n canvas.height = dimensions.height\r\n\r\n const img = new window.Image()\r\n img.crossOrigin = \"anonymous\"\r\n\r\n img.onload = (): void => {\r\n const minPixelSize = Math.max(dimensions.width, dimensions.height) / 4\r\n drawPixelated(ctx, img, minPixelSize, dimensions.width, dimensions.height)\r\n runAnimation(ctx, img, dimensions.width, dimensions.height)\r\n }\r\n\r\n img.onerror = (): void => {\r\n console.error(\"PixelLoad: Failed to load image\")\r\n }\r\n\r\n img.src = imageSrc\r\n\r\n return (): void => {\r\n img.onload = null\r\n img.onerror = null\r\n }\r\n }, [imageSrc, dimensions, runAnimation, drawPixelated])\r\n\r\n return (\r\n <div\r\n ref={containerRef}\r\n className={`relative w-full h-full ${className || \"\"}`}\r\n >\r\n <canvas\r\n ref={canvasRef}\r\n className=\"absolute top-0 left-0 w-full h-full\"\r\n style={{ objectFit }}\r\n role=\"img\"\r\n aria-label={alt}\r\n />\r\n {status === \"complete\" && (\r\n <img\r\n src={imageSrc}\r\n alt={alt}\r\n className=\"sr-only\"\r\n aria-hidden\r\n />\r\n )}\r\n </div>\r\n )\r\n}\r\n"],"mappings":"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","names":["useCallback","useEffect","useRef","useState","jsx","jsxs","isStaticImageData","src","getImageSrc","PixelLoad","alt","duration","steps","className","onAnimationComplete","objectFit","containerRef","canvasRef","status","setStatus","dimensions","setDimensions","imageSrc","drawFull","ctx","img","w","h","imgRatio","containerRatio","drawW","drawH","drawX","drawY","drawPixelated","pixelSize","sw","sh","runAnimation","minPixelSize","intervalMs","currentStep","animate","progress","container","updateDimensions","width","height","resizeObserver","canvas"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as n}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as n}from"./chunk-AJM7GGVC.mjs";import*as r from"react";import{Eye as h,MoreVertical as u}from"lucide-react";import{jsx as e,jsxs as x}from"react/jsx-runtime";var f=r.createContext({}),b={default:"rounded-3xl",sm:"rounded-2xl"},m="[&_tr:not([data-has-action-column])>th:first-child]:sticky [&_tr:not([data-has-action-column])>th:first-child]:left-0 [&_tr:not([data-has-action-column])>th:first-child]:z-10 [&_tr:not([data-has-action-column])>th:first-child]:bg-background [&_tr:not([data-has-action-column])>th:first-child]:after:absolute [&_tr:not([data-has-action-column])>th:first-child]:after:right-0 [&_tr:not([data-has-action-column])>th:first-child]:after:top-0 [&_tr:not([data-has-action-column])>th:first-child]:after:h-full [&_tr:not([data-has-action-column])>th:first-child]:after:w-px [&_tr:not([data-has-action-column])>th:first-child]:after:bg-border [&_tr:not([data-has-action-column])>td:first-child]:sticky [&_tr:not([data-has-action-column])>td:first-child]:left-0 [&_tr:not([data-has-action-column])>td:first-child]:z-10 [&_tr:not([data-has-action-column])>td:first-child]:bg-background [&_tr:not([data-has-action-column])>td:first-child]:after:absolute [&_tr:not([data-has-action-column])>td:first-child]:after:right-0 [&_tr:not([data-has-action-column])>td:first-child]:after:top-0 [&_tr:not([data-has-action-column])>td:first-child]:after:h-full [&_tr:not([data-has-action-column])>td:first-child]:after:w-px [&_tr:not([data-has-action-column])>td:first-child]:after:bg-border [&_tbody_tr:not([data-has-action-column]):hover>td:first-child]:bg-muted",p="[&_tr[data-has-action-column]>*:first-child]:sticky [&_tr[data-has-action-column]>*:first-child]:left-0 [&_tr[data-has-action-column]>*:first-child]:z-10 [&_tr[data-has-action-column]>*:first-child]:bg-background [&_tr[data-has-action-column]>*:first-child]:transition-colors [&_tr[data-has-action-column]>*:nth-child(2)]:sticky [&_tr[data-has-action-column]>*:nth-child(2)]:left-12 [&_tr[data-has-action-column]>*:nth-child(2)]:z-10 [&_tr[data-has-action-column]>*:nth-child(2)]:bg-background [&_tr[data-has-action-column]>*:nth-child(2)]:transition-colors [&_tr[data-has-action-column]>*:nth-child(2)]:after:absolute [&_tr[data-has-action-column]>*:nth-child(2)]:after:right-0 [&_tr[data-has-action-column]>*:nth-child(2)]:after:top-0 [&_tr[data-has-action-column]>*:nth-child(2)]:after:h-full [&_tr[data-has-action-column]>*:nth-child(2)]:after:w-px [&_tr[data-has-action-column]>*:nth-child(2)]:after:bg-border [&_tbody_tr[data-has-action-column]:hover>td:first-child]:bg-muted [&_tbody_tr[data-has-action-column]:hover>td:nth-child(2)]:bg-muted";function y({className:a,stickyFirstColumn:t,rounded:o="default",...l}){return e(f.Provider,{value:{stickyFirstColumn:t},children:e("div",{"data-slot":"table-container",className:n("relative bg-background w-full overflow-x-auto border border-border",b[o],t&&m,t&&p),children:e("table",{"data-slot":"table",className:n("w-full caption-bottom text-sm",a),...l})})})}function k({className:a,...t}){return e("thead",{"data-slot":"table-header",className:n("[&_tr]:border-b text-secondary-text",a),...t})}function v({className:a,...t}){return e("tbody",{"data-slot":"table-body",className:n("[&_tr:last-child]:border-0",a),...t})}function R({className:a,...t}){return e("tfoot",{"data-slot":"table-footer",className:n("bg-muted/50 border-t font-medium [&>tr]:last:border-b-0",a),...t})}function T({className:a,isClickable:t,actionIcon:o,children:l,...i}){let s=o==="eye"?e(h,{className:"h-4 w-4"}):o==="more"?e(u,{className:"h-4 w-4"}):null;return x("tr",{"data-slot":"table-row","data-has-action-column":o!==void 0?"":void 0,className:n("border-b border-border/50 transition-colors",t&&"cursor-pointer hover:bg-muted/50",a),...i,children:[o!==void 0&&e(_,{className:"w-12",children:s}),l]})}function P({className:a,isSticky:t,...o}){return e("th",{"data-slot":"table-head",className:n("text-secondary-text h-10 px-4 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0",t&&"sticky left-0 z-10 bg-background after:absolute after:right-0 after:top-0 after:h-full after:w-px after:bg-border",a),...o})}function _({className:a,isSticky:t,...o}){return e("td",{"data-slot":"table-cell",className:n("p-4 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",t&&"sticky left-0 z-10 bg-background after:absolute after:right-0 after:top-0 after:h-full after:w-px after:bg-border",a),...o})}function w({className:a,onClick:t,children:o,asChild:l=!1,...i}){let s=c=>{c.stopPropagation(),t?.(c)};return l&&r.isValidElement(o)?r.cloneElement(o,{onClick:c=>{c.stopPropagation();let d=o.props.onClick;d?.(c)},className:n("inline-flex items-center justify-center rounded-full p-1 text-secondary-text transition-colors hover:bg-muted/50 hover:text-primary-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-accent",o.props.className,a)}):e("button",{type:"button","data-slot":"table-cell-action",className:n("inline-flex items-center justify-center rounded-full p-1 text-secondary-text transition-colors hover:text-primary-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-accent",a),onClick:s,...i,children:o})}function N({className:a,...t}){return e("caption",{"data-slot":"table-caption",className:n("text-muted-foreground mt-4 text-sm",a),...t})}export{y as a,k as b,v as c,R as d,T as e,P as f,_ as g,w as h,N as i};
|
|
3
|
+
//# sourceMappingURL=chunk-DVS5O7CS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/table.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { Eye, MoreVertical } from \"lucide-react\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\ninterface TableContextValue {\r\n stickyFirstColumn?: boolean\r\n}\r\n\r\nconst TableContext = React.createContext<TableContextValue>({})\r\n\r\nexport interface TableProps extends React.ComponentProps<\"table\"> {\r\n stickyFirstColumn?: boolean\r\n rounded?: \"default\" | \"sm\"\r\n}\r\n\r\nconst roundedMap = {\r\n default: \"rounded-3xl\",\r\n sm: \"rounded-2xl\",\r\n} as const\r\n\r\n// Sticky first column (rows without action icon)\r\nconst stickyFirstColumnStyles =\r\n \"[&_tr:not([data-has-action-column])>th:first-child]:sticky [&_tr:not([data-has-action-column])>th:first-child]:left-0 [&_tr:not([data-has-action-column])>th:first-child]:z-10 [&_tr:not([data-has-action-column])>th:first-child]:bg-background [&_tr:not([data-has-action-column])>th:first-child]:after:absolute [&_tr:not([data-has-action-column])>th:first-child]:after:right-0 [&_tr:not([data-has-action-column])>th:first-child]:after:top-0 [&_tr:not([data-has-action-column])>th:first-child]:after:h-full [&_tr:not([data-has-action-column])>th:first-child]:after:w-px [&_tr:not([data-has-action-column])>th:first-child]:after:bg-border [&_tr:not([data-has-action-column])>td:first-child]:sticky [&_tr:not([data-has-action-column])>td:first-child]:left-0 [&_tr:not([data-has-action-column])>td:first-child]:z-10 [&_tr:not([data-has-action-column])>td:first-child]:bg-background [&_tr:not([data-has-action-column])>td:first-child]:after:absolute [&_tr:not([data-has-action-column])>td:first-child]:after:right-0 [&_tr:not([data-has-action-column])>td:first-child]:after:top-0 [&_tr:not([data-has-action-column])>td:first-child]:after:h-full [&_tr:not([data-has-action-column])>td:first-child]:after:w-px [&_tr:not([data-has-action-column])>td:first-child]:after:bg-border [&_tbody_tr:not([data-has-action-column]):hover>td:first-child]:bg-muted\"\r\n\r\n// Sticky first two columns (rows with action icon): icon at left-0, data column at left-12\r\nconst stickyActionColumnStyles =\r\n \"[&_tr[data-has-action-column]>*:first-child]:sticky [&_tr[data-has-action-column]>*:first-child]:left-0 [&_tr[data-has-action-column]>*:first-child]:z-10 [&_tr[data-has-action-column]>*:first-child]:bg-background [&_tr[data-has-action-column]>*:first-child]:transition-colors [&_tr[data-has-action-column]>*:nth-child(2)]:sticky [&_tr[data-has-action-column]>*:nth-child(2)]:left-12 [&_tr[data-has-action-column]>*:nth-child(2)]:z-10 [&_tr[data-has-action-column]>*:nth-child(2)]:bg-background [&_tr[data-has-action-column]>*:nth-child(2)]:transition-colors [&_tr[data-has-action-column]>*:nth-child(2)]:after:absolute [&_tr[data-has-action-column]>*:nth-child(2)]:after:right-0 [&_tr[data-has-action-column]>*:nth-child(2)]:after:top-0 [&_tr[data-has-action-column]>*:nth-child(2)]:after:h-full [&_tr[data-has-action-column]>*:nth-child(2)]:after:w-px [&_tr[data-has-action-column]>*:nth-child(2)]:after:bg-border [&_tbody_tr[data-has-action-column]:hover>td:first-child]:bg-muted [&_tbody_tr[data-has-action-column]:hover>td:nth-child(2)]:bg-muted\"\r\n\r\nfunction Table({ className, stickyFirstColumn, rounded = \"default\", ...props }: TableProps) {\r\n return (\r\n <TableContext.Provider value={{ stickyFirstColumn }}>\r\n <div\r\n data-slot=\"table-container\"\r\n className={cn(\r\n \"relative bg-background w-full overflow-x-auto border border-border\",\r\n roundedMap[rounded],\r\n stickyFirstColumn && stickyFirstColumnStyles,\r\n stickyFirstColumn && stickyActionColumnStyles\r\n )}\r\n >\r\n <table\r\n data-slot=\"table\"\r\n className={cn(\"w-full caption-bottom text-sm\", className)}\r\n {...props}\r\n />\r\n </div>\r\n </TableContext.Provider>\r\n )\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\r\n return (\r\n <thead\r\n data-slot=\"table-header\"\r\n className={cn(\"[&_tr]:border-b text-secondary-text\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\r\n return (\r\n <tbody\r\n data-slot=\"table-body\"\r\n className={cn(\"[&_tr:last-child]:border-0\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\r\n return (\r\n <tfoot\r\n data-slot=\"table-footer\"\r\n className={cn(\r\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport interface TableRowProps extends React.ComponentProps<\"tr\"> {\r\n isClickable?: boolean\r\n actionIcon?: \"eye\" | \"more\" | null\r\n}\r\n\r\nfunction TableRow({\r\n className,\r\n isClickable,\r\n actionIcon,\r\n children,\r\n ...props\r\n}: TableRowProps) {\r\n const iconComponent =\r\n actionIcon === \"eye\" ? (\r\n <Eye className=\"h-4 w-4\" />\r\n ) : actionIcon === \"more\" ? (\r\n <MoreVertical className=\"h-4 w-4\" />\r\n ) : null\r\n\r\n return (\r\n <tr\r\n data-slot=\"table-row\"\r\n data-has-action-column={actionIcon !== undefined ? \"\" : undefined}\r\n className={cn(\r\n \"border-b border-border/50 transition-colors\",\r\n isClickable && \"cursor-pointer hover:bg-muted/50\",\r\n className\r\n )}\r\n {...props}\r\n >\r\n {actionIcon !== undefined && (\r\n <TableCell className=\"w-12\">{iconComponent}</TableCell>\r\n )}\r\n {children}\r\n </tr>\r\n )\r\n}\r\n\r\nexport interface TableHeadProps extends React.ComponentProps<\"th\"> {\r\n isSticky?: boolean\r\n}\r\n\r\nfunction TableHead({ className, isSticky, ...props }: TableHeadProps) {\r\n return (\r\n <th\r\n data-slot=\"table-head\"\r\n className={cn(\r\n \"text-secondary-text h-10 px-4 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n isSticky &&\r\n \"sticky left-0 z-10 bg-background after:absolute after:right-0 after:top-0 after:h-full after:w-px after:bg-border\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport interface TableCellProps extends React.ComponentProps<\"td\"> {\r\n isSticky?: boolean\r\n}\r\n\r\nfunction TableCell({ className, isSticky, ...props }: TableCellProps) {\r\n return (\r\n <td\r\n data-slot=\"table-cell\"\r\n className={cn(\r\n \"p-4 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\r\n isSticky &&\r\n \"sticky left-0 z-10 bg-background after:absolute after:right-0 after:top-0 after:h-full after:w-px after:bg-border\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport interface TableCellActionProps extends React.ComponentProps<\"button\"> {\r\n asChild?: boolean\r\n}\r\n\r\nfunction TableCellAction({\r\n className,\r\n onClick,\r\n children,\r\n asChild = false,\r\n ...props\r\n}: TableCellActionProps) {\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.stopPropagation()\r\n onClick?.(e)\r\n }\r\n\r\n if (asChild && React.isValidElement(children)) {\r\n return React.cloneElement(\r\n children as React.ReactElement<{\r\n onClick?: (e: React.MouseEvent) => void\r\n className?: string\r\n }>,\r\n {\r\n onClick: (e: React.MouseEvent) => {\r\n e.stopPropagation()\r\n const childOnClick = (\r\n children as React.ReactElement<{\r\n onClick?: (e: React.MouseEvent) => void\r\n }>\r\n ).props.onClick\r\n childOnClick?.(e)\r\n },\r\n className: cn(\r\n \"inline-flex items-center justify-center rounded-full p-1 text-secondary-text transition-colors hover:bg-muted/50 hover:text-primary-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-accent\",\r\n (children as React.ReactElement<{ className?: string }>).props\r\n .className,\r\n className\r\n ),\r\n }\r\n )\r\n }\r\n\r\n return (\r\n <button\r\n type=\"button\"\r\n data-slot=\"table-cell-action\"\r\n className={cn(\r\n \"inline-flex items-center justify-center rounded-full p-1 text-secondary-text transition-colors hover:text-primary-accent focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-primary-accent\",\r\n className\r\n )}\r\n onClick={handleClick}\r\n {...props}\r\n >\r\n {children}\r\n </button>\r\n )\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<\"caption\">) {\r\n return (\r\n <caption\r\n data-slot=\"table-caption\"\r\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCellAction,\r\n TableCaption,\r\n}\r\n"],"mappings":"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","names":["React","Eye","MoreVertical","jsx","jsxs","TableContext","roundedMap","stickyFirstColumnStyles","stickyActionColumnStyles","Table","className","stickyFirstColumn","rounded","props","cn","TableHeader","TableBody","TableFooter","TableRow","isClickable","actionIcon","children","iconComponent","Eye","MoreVertical","TableCell","TableHead","isSticky","TableCellAction","onClick","asChild","handleClick","e","childOnClick","TableCaption"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as l}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as l}from"./chunk-N3ZLPC5C.mjs";import{a as d}from"./chunk-AJM7GGVC.mjs";import*as r from"react";import{CalendarIcon as b}from"lucide-react";import{format as C}from"date-fns";import*as e from"@radix-ui/react-popover";import{jsx as t,jsxs as m}from"react/jsx-runtime";var y=e.Root,h=e.Trigger,c=r.forwardRef(({className:o,align:a="start",sideOffset:i=4,...n},s)=>t(e.Portal,{children:t(e.Content,{ref:s,align:a,sideOffset:i,className:d("z-50 w-auto rounded-md border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2",o),...n})}));c.displayName=e.Content.displayName;var R=r.forwardRef(({date:o,onDateChange:a,placeholder:i="Pick a date",disabled:n=!1,className:s,calendarProps:f,formatStr:P="PPP"},v)=>{let[u,p]=r.useState(!1);return m(y,{open:u,onOpenChange:p,children:[t(h,{asChild:!0,children:m("button",{ref:v,type:"button",className:d("flex my-2 h-9 w-full items-center rounded-3xl border border-border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",!o&&"text-secondary-text",s),disabled:n,children:[t(b,{className:"mr-2 h-4 w-4"}),o?C(o,P):t("span",{children:i})]})}),t(c,{className:"w-auto p-0 rounded-3xl",align:"start",children:t(l,{mode:"single",selected:o,onSelect:g=>{a?.(g),p(!1)},defaultMonth:o,...f})})]})});R.displayName="DatePicker";export{R as a};
|
|
3
|
+
//# sourceMappingURL=chunk-EA66F2ZN.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/date-picker.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { CalendarIcon } from \"lucide-react\"\r\nimport { format } from \"date-fns\"\r\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\nimport { Calendar } from \"@/components/calendar\"\r\n\r\nconst Popover = PopoverPrimitive.Root\r\nconst PopoverTrigger = PopoverPrimitive.Trigger\r\n\r\nconst PopoverContent = React.forwardRef<\r\n React.ElementRef<typeof PopoverPrimitive.Content>,\r\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\r\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\r\n <PopoverPrimitive.Portal>\r\n <PopoverPrimitive.Content\r\n ref={ref}\r\n align={align}\r\n sideOffset={sideOffset}\r\n className={cn(\r\n \"z-50 w-auto rounded-md border bg-popover p-0 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n </PopoverPrimitive.Portal>\r\n))\r\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\r\n\r\nexport interface DatePickerProps {\r\n date?: Date\r\n onDateChange?: (date: Date | undefined) => void\r\n placeholder?: string\r\n disabled?: boolean\r\n className?: string\r\n calendarProps?: Omit<\r\n React.ComponentProps<typeof Calendar>,\r\n \"mode\" | \"selected\" | \"onSelect\"\r\n >\r\n formatStr?: string\r\n}\r\n\r\nconst DatePicker = React.forwardRef<HTMLButtonElement, DatePickerProps>(\r\n (\r\n {\r\n date,\r\n onDateChange,\r\n placeholder = \"Pick a date\",\r\n disabled = false,\r\n className,\r\n calendarProps,\r\n formatStr = \"PPP\",\r\n },\r\n ref\r\n ) => {\r\n const [open, setOpen] = React.useState(false)\r\n\r\n return (\r\n <Popover open={open} onOpenChange={setOpen}>\r\n <PopoverTrigger asChild>\r\n <button\r\n ref={ref}\r\n type=\"button\"\r\n className={cn(\r\n \"flex my-2 h-9 w-full items-center rounded-3xl border border-border bg-background hover:bg-secondary px-4 py-2 text-sm text-primary-accent ring-offset-background focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50\",\r\n !date && \"text-secondary-text\",\r\n className\r\n )}\r\n disabled={disabled}\r\n >\r\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\r\n {date ? format(date, formatStr) : <span>{placeholder}</span>}\r\n </button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0 rounded-3xl\" align=\"start\">\r\n <Calendar\r\n mode=\"single\"\r\n selected={date}\r\n onSelect={(selectedDate) => {\r\n onDateChange?.(selectedDate)\r\n setOpen(false)\r\n }}\r\n defaultMonth={date}\r\n {...calendarProps}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n )\r\n }\r\n)\r\n\r\nDatePicker.displayName = \"DatePicker\"\r\n\r\nexport { DatePicker }\r\n"],"mappings":";kFAEA,UAAYA,MAAW,QACvB,OAAS,gBAAAC,MAAoB,eAC7B,OAAS,UAAAC,MAAc,WACvB,UAAYC,MAAsB,0BAa9B,cAAAC,EA6CM,QAAAC,MA7CN,oBARJ,IAAMC,EAA2B,OAC3BC,EAAkC,UAElCC,EAAuB,aAG3B,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAQ,QAAS,WAAAC,EAAa,EAAG,GAAGC,CAAM,EAAGC,IAC3DT,EAAkB,SAAjB,CACC,SAAAA,EAAkB,UAAjB,CACC,IAAKS,EACL,MAAOH,EACP,WAAYC,EACZ,UAAWG,EACT,+aACAL,CACF,EACC,GAAGG,EACN,EACF,CACD,EACDJ,EAAe,YAA+B,UAAQ,YAetD,IAAMO,EAAmB,aACvB,CACE,CACE,KAAAC,EACA,aAAAC,EACA,YAAAC,EAAc,cACd,SAAAC,EAAW,GACX,UAAAV,EACA,cAAAW,EACA,UAAAC,EAAY,KACd,EACAR,IACG,CACH,GAAM,CAACS,EAAMC,CAAO,EAAU,WAAS,EAAK,EAE5C,OACElB,EAACC,EAAA,CAAQ,KAAMgB,EAAM,aAAcC,EACjC,UAAAnB,EAACG,EAAA,CAAe,QAAO,GACrB,SAAAF,EAAC,UACC,IAAKQ,EACL,KAAK,SACL,UAAWC,EACT,uTACA,CAACE,GAAQ,sBACTP,CACF,EACA,SAAUU,EAEV,UAAAf,EAACoB,EAAA,CAAa,UAAU,eAAe,EACtCR,EAAOS,EAAOT,EAAMK,CAAS,EAAIjB,EAAC,QAAM,SAAAc,EAAY,GACvD,EACF,EACAd,EAACI,EAAA,CAAe,UAAU,yBAAyB,MAAM,QACvD,SAAAJ,EAACsB,EAAA,CACC,KAAK,SACL,SAAUV,EACV,SAAWW,GAAiB,CAC1BV,IAAeU,CAAY,EAC3BJ,EAAQ,EAAK,CACf,EACA,aAAcP,EACb,GAAGI,EACN,EACF,GACF,CAEJ,CACF,EAEAL,EAAW,YAAc","names":["React","CalendarIcon","format","PopoverPrimitive","jsx","jsxs","Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","cn","DatePicker","date","onDateChange","placeholder","disabled","calendarProps","formatStr","open","setOpen","CalendarIcon","format","Calendar","selectedDate"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as w}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as w}from"./chunk-AJM7GGVC.mjs";import R,{useState as q,useEffect as E,useMemo as $,useRef as p}from"react";import{jsx as h,jsxs as I}from"react/jsx-runtime";var j="!<>-_\\/[]{}\u2014=+*^?#________",C=e=>e[Math.floor(Math.random()*e.length)],S=e=>{if(typeof e=="string"||typeof e=="number")return String(e);if(Array.isArray(e))return e.map(S).join("");if(R.isValidElement(e)){let s=e.props;return(s.text||"")+(s.label||"")+(s.title||"")+S(s.children)}return""},N=(e,s,i)=>{if(typeof e=="string"||typeof e=="number"){let l=String(e),c=[];for(let m=0;m<l.length;m++)c.push(h(R.Fragment,{children:s[i.current]||""},`char-${i.current}`)),i.current++;return c}if(Array.isArray(e))return e.map((l,c)=>h(R.Fragment,{children:N(l,s,i)},`arr-${c}-${i.current}`));if(R.isValidElement(e)){let l=e.props,c={};return l.children&&(c.children=N(l.children,s,i)),R.cloneElement(e,c)}return e};function L({children:e,className:s,duration:i=40,symbols:l=j,delay:c=0,isLoading:m=!1,speed:T=.28}){let[D,_]=q(null),[P,y]=q(!1),A=p(null),g=p(0),b=p([]),t=p(null),F=p(!1),f=$(()=>S(e),[e]),k=()=>{let r=[];for(let u=0;u<f.length;u++){let n=f[u],o=Math.floor(Math.random()*(i*.5)),a=o+Math.floor(Math.random()*(i*.5));r.push({to:n,start:o,end:a})}b.current=r,g.current=0,y(!1)},d=p([]),v=()=>{let r=[];d.current.length!==f.length&&(d.current=new Array(f.length).fill(void 0));for(let n=0;n<f.length;n++){let o=f[n];o===" "?r.push(" "):((!d.current[n]||Math.random()<T)&&(d.current[n]=C(l)),r.push(I("span",{className:"relative inline-block",children:[h("span",{className:"invisible select-none","aria-hidden":"true",children:o}),h("span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none",children:d.current[n]})]},n)))}_(N(e,r,{current:0})),t.current=requestAnimationFrame(v)},x=()=>{let r=0,u=[];for(let o=0;o<b.current.length;o++){let a=b.current[o];g.current>=a.end?(r++,u.push(a.to)):(g.current>=a.start&&(!a.char||Math.random()<T)&&(a.char=C(l)),u.push(I("span",{className:"relative inline-block",children:[h("span",{className:"invisible select-none","aria-hidden":"true",children:a.to===" "?"\xA0":a.to}),g.current>=a.start&&h("span",{className:"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none",children:a.char})]},o)))}_(N(e,u,{current:0})),r===b.current.length?y(!0):(g.current++,t.current=requestAnimationFrame(x))},M=p(!1);return E(()=>{if(m)return M.current=!0,F.current=!0,y(!1),t.current&&cancelAnimationFrame(t.current),t.current=requestAnimationFrame(v),()=>{t.current&&cancelAnimationFrame(t.current)};if(M.current)return M.current=!1,k(),t.current=requestAnimationFrame(x),()=>{t.current&&cancelAnimationFrame(t.current)}},[m,f]),E(()=>{if(m)return;let r=new IntersectionObserver(u=>{if(u[0].isIntersecting&&!F.current){F.current=!0;let n=setTimeout(()=>{k(),t.current=requestAnimationFrame(x)},c);return()=>clearTimeout(n)}},{threshold:.1});return A.current&&r.observe(A.current),()=>{r.disconnect(),t.current&&cancelAnimationFrame(t.current)}},[f,c,m]),h("span",{ref:A,className:w("inline-block whitespace-pre-wrap",s),children:P?e:D})}export{L as a};
|
|
3
|
+
//# sourceMappingURL=chunk-EBSYGLCA.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/TextDecoder.tsx"],"sourcesContent":["\"use client\"\r\nimport { cn } from \"@/lib/utils\"\r\nimport React, {\r\n useState,\r\n useEffect,\r\n useMemo,\r\n useRef,\r\n ReactNode,\r\n} from \"react\"\r\n\r\nconst SYMBOLS = \"!<>-_\\\\/[]{}—=+*^?#________\"\r\n\r\nconst randomChar = (symbols: string) =>\r\n symbols[Math.floor(Math.random() * symbols.length)]\r\n\r\nconst extractText = (node: ReactNode): string => {\r\n if (typeof node === \"string\" || typeof node === \"number\") return String(node)\r\n if (Array.isArray(node)) return node.map(extractText).join(\"\")\r\n if (React.isValidElement(node)) {\r\n const props = node.props as any\r\n return (\r\n (props.text || \"\") +\r\n (props.label || \"\") +\r\n (props.title || \"\") +\r\n extractText(props.children)\r\n )\r\n }\r\n return \"\"\r\n}\r\n\r\nconst injectScrambledText = (\r\n node: ReactNode,\r\n scrambledChars: (string | ReactNode)[],\r\n indexObj: { current: number }\r\n): ReactNode => {\r\n if (typeof node === \"string\" || typeof node === \"number\") {\r\n const text = String(node)\r\n const result: (string | ReactNode)[] = []\r\n for (let i = 0; i < text.length; i++) {\r\n result.push(\r\n <React.Fragment key={`char-${indexObj.current}`}>\r\n {scrambledChars[indexObj.current] || \"\"}\r\n </React.Fragment>\r\n )\r\n indexObj.current++\r\n }\r\n return result\r\n }\r\n\r\n if (Array.isArray(node)) {\r\n return node.map((child, idx) => (\r\n <React.Fragment key={`arr-${idx}-${indexObj.current}`}>\r\n {injectScrambledText(child, scrambledChars, indexObj)}\r\n </React.Fragment>\r\n ))\r\n }\r\n\r\n if (React.isValidElement(node)) {\r\n const props = node.props as any\r\n const newProps: any = {}\r\n\r\n if (props.children) {\r\n newProps.children = injectScrambledText(\r\n props.children,\r\n scrambledChars,\r\n indexObj\r\n )\r\n }\r\n return React.cloneElement(node, newProps)\r\n }\r\n return node\r\n}\r\n\r\nexport interface TextDecoderProps {\r\n children: ReactNode\r\n className?: string\r\n duration?: number\r\n symbols?: string\r\n delay?: number\r\n isLoading?: boolean\r\n speed?: number\r\n}\r\n\r\nexport default function TextDecoder ({\r\n children,\r\n className,\r\n duration = 40,\r\n symbols = SYMBOLS,\r\n delay = 0,\r\n isLoading = false,\r\n speed = 0.28,\r\n}: TextDecoderProps) {\r\n const [outputNodes, setOutputNodes] = useState<ReactNode>(null)\r\n const [isComplete, setIsComplete] = useState(false)\r\n const elementRef = useRef<HTMLSpanElement>(null)\r\n const frameRef = useRef(0)\r\n const queueRef = useRef<\r\n { to: string; start: number; end: number; char?: string }[]\r\n >([])\r\n const rafRef = useRef<number | null>(null)\r\n const hasAnimatedRef = useRef(false)\r\n\r\n const fullText = useMemo(() => extractText(children), [children])\r\n\r\n const setupQueue = () => {\r\n const newQueue = []\r\n for (let i = 0; i < fullText.length; i++) {\r\n const to = fullText[i]\r\n const start = Math.floor(Math.random() * (duration * 0.5))\r\n const end = start + Math.floor(Math.random() * (duration * 0.5))\r\n newQueue.push({ to, start, end })\r\n }\r\n queueRef.current = newQueue\r\n frameRef.current = 0\r\n setIsComplete(false)\r\n }\r\n\r\n const loadingCharsRef = useRef<(string | undefined)[]>([])\r\n\r\n const updateLoading = () => {\r\n const currentScrambledChars: (string | ReactNode)[] = []\r\n\r\n if (loadingCharsRef.current.length !== fullText.length) {\r\n loadingCharsRef.current = new Array(fullText.length).fill(undefined)\r\n }\r\n\r\n for (let i = 0; i < fullText.length; i++) {\r\n const char = fullText[i]\r\n\r\n if (char === \" \") {\r\n currentScrambledChars.push(\" \")\r\n } else {\r\n if (!loadingCharsRef.current[i] || Math.random() < speed) {\r\n loadingCharsRef.current[i] = randomChar(symbols)\r\n }\r\n\r\n currentScrambledChars.push(\r\n <span key={i} className=\"relative inline-block\">\r\n <span className=\"invisible select-none\" aria-hidden=\"true\">\r\n {char}\r\n </span>\r\n <span className=\"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none\">\r\n {loadingCharsRef.current[i]}\r\n </span>\r\n </span>\r\n )\r\n }\r\n }\r\n\r\n const indexObj = { current: 0 }\r\n setOutputNodes(\r\n injectScrambledText(children, currentScrambledChars, indexObj)\r\n )\r\n\r\n rafRef.current = requestAnimationFrame(updateLoading)\r\n }\r\n\r\n const update = () => {\r\n let complete = 0\r\n const currentScrambledChars: (string | ReactNode)[] = []\r\n\r\n for (let i = 0; i < queueRef.current.length; i++) {\r\n const item = queueRef.current[i]\r\n\r\n if (frameRef.current >= item.end) {\r\n complete++\r\n currentScrambledChars.push(item.to)\r\n } else {\r\n if (frameRef.current >= item.start) {\r\n if (!item.char || Math.random() < speed) {\r\n item.char = randomChar(symbols)\r\n }\r\n }\r\n\r\n currentScrambledChars.push(\r\n <span key={i} className=\"relative inline-block\">\r\n <span className=\"invisible select-none\" aria-hidden=\"true\">\r\n {item.to === \" \" ? \"\\u00A0\" : item.to}\r\n </span>\r\n {frameRef.current >= item.start && (\r\n <span className=\"absolute inset-0 flex items-center justify-center opacity-50 font-mono leading-none\">\r\n {item.char}\r\n </span>\r\n )}\r\n </span>\r\n )\r\n }\r\n }\r\n\r\n const indexObj = { current: 0 }\r\n setOutputNodes(\r\n injectScrambledText(children, currentScrambledChars, indexObj)\r\n )\r\n\r\n if (complete === queueRef.current.length) {\r\n setIsComplete(true)\r\n } else {\r\n frameRef.current++\r\n rafRef.current = requestAnimationFrame(update)\r\n }\r\n }\r\n\r\n const wasLoadingRef = useRef(false)\r\n\r\n useEffect(() => {\r\n if (isLoading) {\r\n wasLoadingRef.current = true\r\n hasAnimatedRef.current = true\r\n setIsComplete(false)\r\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\r\n rafRef.current = requestAnimationFrame(updateLoading)\r\n return () => {\r\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\r\n }\r\n }\r\n\r\n if (wasLoadingRef.current) {\r\n wasLoadingRef.current = false\r\n setupQueue()\r\n rafRef.current = requestAnimationFrame(update)\r\n return () => {\r\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\r\n }\r\n }\r\n }, [isLoading, fullText])\r\n\r\n useEffect(() => {\r\n if (isLoading) return\r\n\r\n const observer = new IntersectionObserver(\r\n (entries) => {\r\n if (entries[0].isIntersecting && !hasAnimatedRef.current) {\r\n hasAnimatedRef.current = true\r\n const timeoutId = setTimeout(() => {\r\n setupQueue()\r\n rafRef.current = requestAnimationFrame(update)\r\n }, delay)\r\n return () => clearTimeout(timeoutId)\r\n }\r\n },\r\n { threshold: 0.1 }\r\n )\r\n\r\n if (elementRef.current) observer.observe(elementRef.current)\r\n\r\n return () => {\r\n observer.disconnect()\r\n if (rafRef.current) cancelAnimationFrame(rafRef.current)\r\n }\r\n }, [fullText, delay, isLoading])\r\n\r\n return (\r\n <span\r\n ref={elementRef}\r\n className={cn(\"inline-block whitespace-pre-wrap\", className)}\r\n >\r\n {isComplete ? children : outputNodes}\r\n </span>\r\n )\r\n}\r\n"],"mappings":"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","names":["React","useState","useEffect","useMemo","useRef","jsx","jsxs","SYMBOLS","randomChar","symbols","extractText","node","props","injectScrambledText","scrambledChars","indexObj","text","result","i","child","idx","newProps","TextDecoder","children","className","duration","delay","isLoading","speed","outputNodes","setOutputNodes","isComplete","setIsComplete","elementRef","frameRef","queueRef","rafRef","hasAnimatedRef","fullText","setupQueue","newQueue","to","start","end","loadingCharsRef","updateLoading","currentScrambledChars","char","update","complete","item","wasLoadingRef","observer","entries","timeoutId","cn"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as f}from"./chunk-
|
|
2
|
+
import{a as f}from"./chunk-AJM7GGVC.mjs";import*as n from"react";import*as o from"@radix-ui/react-avatar";import{jsx as h}from"react/jsx-runtime";var d=(a="default")=>{let t=a.startsWith("0x")?a.slice(2):a,e=2246822507,s=3266489909,l=668265263,r=3735928559,i=1103547991;for(let c=0;c<t.length;c++){let m=t.charCodeAt(c);r=Math.imul(r^m,e),r=r<<13|r>>>19,i=Math.imul(i^m,s),i=i<<17|i>>>15}return r^=r>>>16,r=Math.imul(r,l),i^=i>>>13,i=Math.imul(i,e),{h1:Math.abs(r),h2:Math.abs(i)}},p=(a="default")=>{let{h1:t,h2:e}=d(a),s=t%360,l=(s+120+e%120)%360,r=70+(t>>4)%30,i=70+(e>>4)%30,c=50+(t>>8)%15,m=50+(e>>8)%15,u=`hsl(${s}, ${r}%, ${c}%)`,v=`hsl(${l}, ${i}%, ${m}%)`;return{backgroundColor:"#F8F8F8",backgroundImage:`
|
|
3
3
|
radial-gradient(at 0% 0%, ${u} 0%, transparent 80%),
|
|
4
4
|
radial-gradient(at 100% 100%, ${v} 0%, transparent 80%)
|
|
5
5
|
`}},b=(a="default")=>{let{h1:t}=d(a),e=t%360,s=70+(t>>4)%30,l=50+(t>>8)%15;return`hsl(${e}, ${s}%, ${l}%)`},R=n.forwardRef(({className:a,...t},e)=>h(o.Root,{ref:e,className:f("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",a),...t}));R.displayName=o.Root.displayName;var g=n.forwardRef(({className:a,...t},e)=>h(o.Image,{ref:e,className:f("aspect-square h-full w-full",a),...t}));g.displayName=o.Image.displayName;var P=n.forwardRef(({className:a,seed:t,...e},s)=>{let l=n.useMemo(()=>p(t),[t]);return h(o.Fallback,{ref:s,style:l,className:f("flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner",a),...e})});P.displayName=o.Fallback.displayName;export{p as a,b,R as c,g as d,P as e};
|
|
6
|
-
//# sourceMappingURL=chunk-
|
|
6
|
+
//# sourceMappingURL=chunk-HV2SGTFQ.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/avatar.tsx"],"sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\r\nimport { cn } from \"@/lib/utils\"\r\n\r\n/**\r\n * Generates hash values from a seed string.\r\n * This is the core function that ensures consistency between gradient and single color.\r\n */\r\nconst generateHashes = (seed: string = \"default\") => {\r\n // 1. Remove '0x' to jump straight into the unique data\r\n const cleanSeed = seed.startsWith(\"0x\") ? seed.slice(2) : seed\r\n\r\n // Primes for high-variance bit-mixing\r\n const P1 = 0x85ebca6b\r\n const P2 = 0xc2b2ae35\r\n const P3 = 0x27d4eb2f\r\n\r\n let h1 = 0xdeadbeef\r\n let h2 = 0x41c6ce57\r\n\r\n for (let i = 0; i < cleanSeed.length; i++) {\r\n const char = cleanSeed.charCodeAt(i)\r\n h1 = Math.imul(h1 ^ char, P1)\r\n h1 = (h1 << 13) | (h1 >>> 19)\r\n\r\n h2 = Math.imul(h2 ^ char, P2)\r\n h2 = (h2 << 17) | (h2 >>> 15)\r\n }\r\n\r\n // Final mix\r\n h1 ^= h1 >>> 16\r\n h1 = Math.imul(h1, P3)\r\n h2 ^= h2 >>> 13\r\n h2 = Math.imul(h2, P1)\r\n\r\n return { h1: Math.abs(h1), h2: Math.abs(h2) }\r\n}\r\n\r\n/**\r\n * Creates a mesh-style radial gradient that mimics a 3D sphere.\r\n * Base color: #F8F8F8\r\n * Top: Two distinct HSL blobs that occupy roughly the upper 3/4.\r\n */\r\nconst getSphericalGradient = (seed: string = \"default\") => {\r\n const { h1, h2 } = generateHashes(seed)\r\n\r\n // Map Hashes to HSL\r\n const hue1 = h1 % 360\r\n // Force second hue to be at least 120 degrees away for maximum contrast\r\n const hue2 = (hue1 + 120 + (h2 % 120)) % 360\r\n\r\n const sat1 = 70 + ((h1 >> 4) % 30)\r\n const sat2 = 70 + ((h2 >> 4) % 30)\r\n\r\n const light1 = 50 + ((h1 >> 8) % 15)\r\n const light2 = 50 + ((h2 >> 8) % 15)\r\n\r\n const color1 = `hsl(${hue1}, ${sat1}%, ${light1}%)`\r\n const color2 = `hsl(${hue2}, ${sat2}%, ${light2}%)`\r\n\r\n return {\r\n backgroundColor: \"#F8F8F8\",\r\n backgroundImage: `\r\n radial-gradient(at 0% 0%, ${color1} 0%, transparent 80%),\r\n radial-gradient(at 100% 100%, ${color2} 0%, transparent 80%)\r\n `,\r\n }\r\n}\r\n\r\n/**\r\n * Generates a unique single color from a seed string.\r\n * This color is in sync with the spherical gradient - the same seed will produce\r\n * a color that matches the primary color (color1) of the gradient.\r\n * Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.\r\n *\r\n * @param seed - The seed string (e.g., username, user ID)\r\n * @returns A single HSL color string (e.g., \"hsl(120, 85%, 60%)\")\r\n */\r\nconst getSeedColor = (seed: string = \"default\"): string => {\r\n const { h1 } = generateHashes(seed)\r\n\r\n const hue = h1 % 360\r\n const saturation = 70 + ((h1 >> 4) % 30) // 70-100%\r\n const lightness = 50 + ((h1 >> 8) % 15) // 50-65%\r\n\r\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\r\n}\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n))\r\nAvatar.displayName = AvatarPrimitive.Root.displayName\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn(\"aspect-square h-full w-full\", className)}\r\n {...props}\r\n />\r\n))\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\r\n\r\ninterface FallbackProps extends React.ComponentPropsWithoutRef<\r\n typeof AvatarPrimitive.Fallback\r\n> {\r\n seed?: string\r\n}\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n FallbackProps\r\n>(({ className, seed, ...props }, ref) => {\r\n const gradientStyle = React.useMemo(() => getSphericalGradient(seed), [seed])\r\n\r\n return (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n style={gradientStyle}\r\n className={cn(\r\n \"flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n )\r\n})\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\r\n\r\nexport {\r\n Avatar,\r\n AvatarImage,\r\n AvatarFallback,\r\n getSphericalGradient,\r\n getSeedColor,\r\n}\r\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAqB,yBA2F/B,cAAAC,MAAA,oBApFF,IAAMC,EAAiB,CAACC,EAAe,YAAc,CAEnD,IAAMC,EAAYD,EAAK,WAAW,IAAI,EAAIA,EAAK,MAAM,CAAC,EAAIA,EAGpDE,EAAK,WACLC,EAAK,WACLC,EAAK,UAEPC,EAAK,WACLC,EAAK,WAET,QAASC,EAAI,EAAGA,EAAIN,EAAU,OAAQM,IAAK,CACzC,IAAMC,EAAOP,EAAU,WAAWM,CAAC,EACnCF,EAAK,KAAK,KAAKA,EAAKG,EAAMN,CAAE,EAC5BG,EAAMA,GAAM,GAAOA,IAAO,GAE1BC,EAAK,KAAK,KAAKA,EAAKE,EAAML,CAAE,EAC5BG,EAAMA,GAAM,GAAOA,IAAO,EAC5B,CAGA,OAAAD,GAAMA,IAAO,GACbA,EAAK,KAAK,KAAKA,EAAID,CAAE,EACrBE,GAAMA,IAAO,GACbA,EAAK,KAAK,KAAKA,EAAIJ,CAAE,EAEd,CAAE,GAAI,KAAK,IAAIG,CAAE,EAAG,GAAI,KAAK,IAAIC,CAAE,CAAE,CAC9C,EAOMG,EAAuB,CAACT,EAAe,YAAc,CACzD,GAAM,CAAE,GAAAK,EAAI,GAAAC,CAAG,EAAIP,EAAeC,CAAI,EAGhCU,EAAOL,EAAK,IAEZM,GAAQD,EAAO,IAAOJ,EAAK,KAAQ,IAEnCM,EAAO,IAAOP,GAAM,GAAK,GACzBQ,EAAO,IAAOP,GAAM,GAAK,GAEzBQ,EAAS,IAAOT,GAAM,GAAK,GAC3BU,EAAS,IAAOT,GAAM,GAAK,GAE3BU,EAAS,OAAON,CAAI,KAAKE,CAAI,MAAME,CAAM,KACzCG,EAAS,OAAON,CAAI,KAAKE,CAAI,MAAME,CAAM,KAE/C,MAAO,CACL,gBAAiB,UACjB,gBAAiB;AAAA,kCACaC,CAAM;AAAA,sCACFC,CAAM;AAAA,KAE1C,CACF,EAWMC,EAAe,CAAClB,EAAe,YAAsB,CACzD,GAAM,CAAE,GAAAK,CAAG,EAAIN,EAAeC,CAAI,EAE5BmB,EAAMd,EAAK,IACXe,EAAa,IAAOf,GAAM,GAAK,GAC/BgB,EAAY,IAAOhB,GAAM,GAAK,GAEpC,MAAO,OAAOc,CAAG,KAAKC,CAAU,MAAMC,CAAS,IACjD,EAEMC,EAAe,aAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1B3B,EAAiB,OAAhB,CACC,IAAK2B,EACL,UAAWC,EACT,gEACAH,CACF,EACC,GAAGC,EACN,CACD,EACDF,EAAO,YAA8B,OAAK,YAE1C,IAAMK,EAAoB,aAGxB,CAAC,CAAE,UAAAJ,EAAW,GAAGC,CAAM,EAAGC,IAC1B3B,EAAiB,QAAhB,CACC,IAAK2B,EACL,UAAWC,EAAG,8BAA+BH,CAAS,EACrD,GAAGC,EACN,CACD,EACDG,EAAY,YAA8B,QAAM,YAQhD,IAAMC,EAAuB,aAG3B,CAAC,CAAE,UAAAL,EAAW,KAAAvB,EAAM,GAAGwB,CAAM,EAAGC,IAAQ,CACxC,IAAMI,EAAsB,UAAQ,IAAMpB,EAAqBT,CAAI,EAAG,CAACA,CAAI,CAAC,EAE5E,OACEF,EAAiB,WAAhB,CACC,IAAK2B,EACL,MAAOI,EACP,UAAWH,EACT,kGACAH,CACF,EACC,GAAGC,EACN,CAEJ,CAAC,EACDI,EAAe,YAA8B,WAAS","names":["React","AvatarPrimitive","jsx","generateHashes","seed","cleanSeed","P1","P2","P3","h1","h2","i","char","getSphericalGradient","hue1","hue2","sat1","sat2","light1","light2","color1","color2","getSeedColor","hue","saturation","lightness","Avatar","className","props","ref","cn","AvatarImage","AvatarFallback","gradientStyle"]}
|