@alkimi.org/ui-kit 0.9.9 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.github.md +589 -589
- package/README.md +589 -589
- package/README.npm.md +589 -589
- package/dist/{chunk-INXG2ITG.js → chunk-372VUZFE.js} +3 -3
- package/dist/chunk-372VUZFE.js.map +1 -0
- package/dist/{chunk-XNLDCAFS.js → chunk-3BVMHDYA.js} +1 -1
- package/dist/chunk-3BVMHDYA.js.map +1 -0
- package/dist/{chunk-IFNCRMNZ.js → chunk-3PEPOFYU.js} +1 -1
- package/dist/chunk-3PEPOFYU.js.map +1 -0
- package/dist/{chunk-7ENKXOF3.js → chunk-3TLCOZ5R.js} +2 -2
- package/dist/chunk-3TLCOZ5R.js.map +1 -0
- package/dist/{chunk-KYBTGVFM.mjs → chunk-4LR7SOCY.mjs} +1 -1
- package/dist/chunk-4LR7SOCY.mjs.map +1 -0
- package/dist/{chunk-HV2SGTFQ.mjs → chunk-4LUOGI24.mjs} +2 -2
- package/dist/chunk-4LUOGI24.mjs.map +1 -0
- package/dist/chunk-4PTRLHCB.mjs +3 -0
- package/dist/chunk-4PTRLHCB.mjs.map +1 -0
- package/dist/chunk-574USYNO.mjs +3 -0
- package/dist/chunk-574USYNO.mjs.map +1 -0
- package/dist/chunk-5L5DM2X5.js +3 -0
- package/dist/chunk-5L5DM2X5.js.map +1 -0
- package/dist/{chunk-YK3UJT7O.mjs → chunk-5TVDBV74.mjs} +2 -2
- package/dist/chunk-5TVDBV74.mjs.map +1 -0
- package/dist/{chunk-TLGEA7LM.js → chunk-5X26XR44.js} +2 -2
- package/dist/chunk-5X26XR44.js.map +1 -0
- package/dist/{chunk-EA66F2ZN.mjs → chunk-7FUNOEYE.mjs} +2 -2
- package/dist/chunk-7FUNOEYE.mjs.map +1 -0
- package/dist/{chunk-4F4J7RIS.js → chunk-7J2ETVGK.js} +2 -2
- package/dist/chunk-7J2ETVGK.js.map +1 -0
- package/dist/{chunk-DRPEVJT7.mjs → chunk-7ONK6HHN.mjs} +1 -1
- package/dist/chunk-7ONK6HHN.mjs.map +1 -0
- package/dist/{chunk-NFHHEYXW.js → chunk-7SOZ6MOV.js} +2 -2
- package/dist/chunk-7SOZ6MOV.js.map +1 -0
- package/dist/chunk-7Y3KH5OM.mjs +3 -0
- package/dist/chunk-7Y3KH5OM.mjs.map +1 -0
- package/dist/{chunk-7J43VVOI.mjs → chunk-AEZ5XKKG.mjs} +2 -2
- package/dist/chunk-AEZ5XKKG.mjs.map +1 -0
- package/dist/{chunk-KBEHHIN6.mjs → chunk-BLHKJHNV.mjs} +2 -2
- package/dist/chunk-BLHKJHNV.mjs.map +1 -0
- package/dist/{chunk-DEGPIR53.js → chunk-BV7RXRSL.js} +2 -2
- package/dist/chunk-BV7RXRSL.js.map +1 -0
- package/dist/{chunk-DVS5O7CS.mjs → chunk-C7GTPYMH.mjs} +2 -2
- package/dist/chunk-C7GTPYMH.mjs.map +1 -0
- package/dist/{chunk-EBSYGLCA.mjs → chunk-CMV76O4U.mjs} +2 -2
- package/dist/chunk-CMV76O4U.mjs.map +1 -0
- package/dist/{chunk-W4PJBJNX.mjs → chunk-CNRZOMR4.mjs} +2 -2
- package/dist/chunk-CNRZOMR4.mjs.map +1 -0
- package/dist/{chunk-5RIDFCU4.js → chunk-CT2CRYC2.js} +2 -2
- package/dist/chunk-CT2CRYC2.js.map +1 -0
- package/dist/{chunk-TFNJNZMW.mjs → chunk-DATWXRPT.mjs} +2 -2
- package/dist/chunk-DATWXRPT.mjs.map +1 -0
- package/dist/{chunk-CVGE3ROD.js → chunk-DHHZMQ72.js} +2 -2
- package/dist/chunk-DHHZMQ72.js.map +1 -0
- package/dist/chunk-DIKQRVZO.js +3 -0
- package/dist/chunk-DIKQRVZO.js.map +1 -0
- package/dist/{chunk-36L2E4K7.mjs → chunk-DKMCJGI4.mjs} +2 -2
- package/dist/chunk-DKMCJGI4.mjs.map +1 -0
- package/dist/chunk-EIM5R7AJ.js +3 -0
- package/dist/chunk-EIM5R7AJ.js.map +1 -0
- package/dist/{chunk-KCEGGK36.js → chunk-EJTY2ABY.js} +2 -2
- package/dist/chunk-EJTY2ABY.js.map +1 -0
- package/dist/{chunk-6N5E7FKO.js → chunk-EWRKHBIV.js} +2 -2
- package/dist/chunk-EWRKHBIV.js.map +1 -0
- package/dist/{chunk-VBARF35N.js → chunk-FUYXCJOQ.js} +1 -1
- package/dist/chunk-FUYXCJOQ.js.map +1 -0
- package/dist/{chunk-6HUPRCXQ.mjs → chunk-FZ3NXOFK.mjs} +2 -2
- package/dist/chunk-FZ3NXOFK.mjs.map +1 -0
- package/dist/{chunk-7HVZPUTO.js → chunk-G76GSW2A.js} +2 -2
- package/dist/chunk-G76GSW2A.js.map +1 -0
- package/dist/{chunk-4X3MFRSQ.js → chunk-GRXC46JC.js} +2 -2
- package/dist/chunk-GRXC46JC.js.map +1 -0
- package/dist/{chunk-OCAU343S.js → chunk-I5INE4KG.js} +2 -2
- package/dist/chunk-I5INE4KG.js.map +1 -0
- package/dist/chunk-IKJ4QRNB.mjs +3 -0
- package/dist/chunk-IKJ4QRNB.mjs.map +1 -0
- package/dist/{chunk-UAJUT7B7.js → chunk-K4GMCVHO.js} +2 -2
- package/dist/chunk-K4GMCVHO.js.map +1 -0
- package/dist/{chunk-VUHWNO54.mjs → chunk-KLU33CJI.mjs} +2 -2
- package/dist/chunk-KLU33CJI.mjs.map +1 -0
- package/dist/{chunk-XQS62AJH.mjs → chunk-L36V45FD.mjs} +2 -2
- package/dist/chunk-L36V45FD.mjs.map +1 -0
- package/dist/chunk-LQMOWEA7.js +3 -0
- package/dist/chunk-LQMOWEA7.js.map +1 -0
- package/dist/{chunk-2R3FRGV4.mjs → chunk-MQMO7DMT.mjs} +2 -2
- package/dist/chunk-MQMO7DMT.mjs.map +1 -0
- package/dist/{chunk-VSRWPJJB.mjs → chunk-NEOUFWZN.mjs} +2 -2
- package/dist/chunk-NEOUFWZN.mjs.map +1 -0
- package/dist/chunk-NKELJSLY.mjs +3 -0
- package/dist/chunk-NKELJSLY.mjs.map +1 -0
- package/dist/chunk-NKLBPY3T.mjs +3 -0
- package/dist/chunk-NKLBPY3T.mjs.map +1 -0
- package/dist/chunk-PD43W3YN.mjs +3 -0
- package/dist/chunk-PD43W3YN.mjs.map +1 -0
- package/dist/{chunk-57XZUJL4.mjs → chunk-QC5MA4WL.mjs} +2 -2
- package/dist/chunk-QC5MA4WL.mjs.map +1 -0
- package/dist/{chunk-N3ZLPC5C.mjs → chunk-QMJVRGPB.mjs} +2 -2
- package/dist/chunk-QMJVRGPB.mjs.map +1 -0
- package/dist/{chunk-PBOK6TUC.mjs → chunk-QVMQ55JW.mjs} +2 -2
- package/dist/chunk-QVMQ55JW.mjs.map +1 -0
- package/dist/{chunk-NIHULISF.js → chunk-RJMIOBXZ.js} +2 -2
- package/dist/chunk-RJMIOBXZ.js.map +1 -0
- package/dist/{chunk-4PODZIEU.js → chunk-RKRTEMMZ.js} +2 -2
- package/dist/chunk-RKRTEMMZ.js.map +1 -0
- package/dist/{chunk-SN3YJA4C.js → chunk-RRAIGAHU.js} +2 -2
- package/dist/chunk-RRAIGAHU.js.map +1 -0
- package/dist/{chunk-AJM7GGVC.mjs → chunk-S5TKCF6T.mjs} +1 -1
- package/dist/chunk-S5TKCF6T.mjs.map +1 -0
- package/dist/{chunk-BUS3E5OY.js → chunk-TDMRUCR6.js} +2 -2
- package/dist/chunk-TDMRUCR6.js.map +1 -0
- package/dist/{chunk-LNIGQUON.mjs → chunk-UAUSYTY4.mjs} +2 -2
- package/dist/chunk-UAUSYTY4.mjs.map +1 -0
- package/dist/chunk-UJZP6L4S.js +3 -0
- package/dist/chunk-UJZP6L4S.js.map +1 -0
- package/dist/{chunk-5ESMRNR3.js → chunk-ULIOO55I.js} +2 -2
- package/dist/chunk-ULIOO55I.js.map +1 -0
- package/dist/{chunk-S7CZVGW7.js → chunk-UNR6ATUH.js} +2 -2
- package/dist/chunk-UNR6ATUH.js.map +1 -0
- package/dist/chunk-USPGZYMV.js +3 -0
- package/dist/chunk-USPGZYMV.js.map +1 -0
- package/dist/{chunk-7Z2JFWQY.js → chunk-VBPIXXIA.js} +2 -2
- package/dist/chunk-VBPIXXIA.js.map +1 -0
- package/dist/{chunk-CA75YECJ.mjs → chunk-WAX33IZF.mjs} +2 -2
- package/dist/chunk-WAX33IZF.mjs.map +1 -0
- package/dist/{chunk-AHQNHOS2.js → chunk-WFD523CV.js} +1 -1
- package/dist/chunk-WFD523CV.js.map +1 -0
- package/dist/{chunk-NMU4NNZ2.mjs → chunk-WY4HCUAP.mjs} +2 -2
- package/dist/chunk-WY4HCUAP.mjs.map +1 -0
- package/dist/chunk-WYRD4UAK.js +3 -0
- package/dist/chunk-WYRD4UAK.js.map +1 -0
- package/dist/chunk-WZ5F5VT3.mjs +3 -0
- package/dist/chunk-WZ5F5VT3.mjs.map +1 -0
- package/dist/{chunk-QP7CDVWG.js → chunk-XQILGD5B.js} +2 -2
- package/dist/chunk-XQILGD5B.js.map +1 -0
- package/dist/chunk-XSJKREFJ.mjs +3 -0
- package/dist/chunk-XSJKREFJ.mjs.map +1 -0
- package/dist/chunk-XYO4VLMF.js.map +1 -1
- package/dist/{chunk-O2FPBOOV.mjs → chunk-YBV4CPVD.mjs} +2 -2
- package/dist/chunk-YBV4CPVD.mjs.map +1 -0
- package/dist/chunk-YKXP3INY.js +3 -0
- package/dist/chunk-YKXP3INY.js.map +1 -0
- package/dist/{chunk-Y5LKHHUX.js → chunk-Z5V4P3EC.js} +2 -2
- package/dist/chunk-Z5V4P3EC.js.map +1 -0
- package/dist/{chunk-NMI6DEUG.mjs → chunk-Z6RAFZ3C.mjs} +1 -1
- package/dist/chunk-Z6RAFZ3C.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.d.mts +4 -1
- package/dist/components/combobox.d.ts +4 -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.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.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 -109
- package/dist/chunk-2R3FRGV4.mjs.map +0 -1
- package/dist/chunk-36L2E4K7.mjs.map +0 -1
- package/dist/chunk-4F4J7RIS.js.map +0 -1
- package/dist/chunk-4PODZIEU.js.map +0 -1
- package/dist/chunk-4TH3WPF3.js +0 -3
- package/dist/chunk-4TH3WPF3.js.map +0 -1
- package/dist/chunk-4X3MFRSQ.js.map +0 -1
- package/dist/chunk-57XZUJL4.mjs.map +0 -1
- package/dist/chunk-5ESMRNR3.js.map +0 -1
- package/dist/chunk-5RIDFCU4.js.map +0 -1
- package/dist/chunk-6HUPRCXQ.mjs.map +0 -1
- package/dist/chunk-6N5E7FKO.js.map +0 -1
- package/dist/chunk-7ENKXOF3.js.map +0 -1
- package/dist/chunk-7HVZPUTO.js.map +0 -1
- package/dist/chunk-7J43VVOI.mjs.map +0 -1
- package/dist/chunk-7Z2JFWQY.js.map +0 -1
- package/dist/chunk-AHQNHOS2.js.map +0 -1
- package/dist/chunk-AJM7GGVC.mjs.map +0 -1
- package/dist/chunk-BA7YSYLL.js +0 -3
- package/dist/chunk-BA7YSYLL.js.map +0 -1
- package/dist/chunk-BUS3E5OY.js.map +0 -1
- package/dist/chunk-CA75YECJ.mjs.map +0 -1
- package/dist/chunk-CCNH4HFX.js +0 -3
- package/dist/chunk-CCNH4HFX.js.map +0 -1
- package/dist/chunk-CPD4PX64.js +0 -3
- package/dist/chunk-CPD4PX64.js.map +0 -1
- package/dist/chunk-CVGE3ROD.js.map +0 -1
- package/dist/chunk-DEGPIR53.js.map +0 -1
- package/dist/chunk-DRPEVJT7.mjs.map +0 -1
- package/dist/chunk-DVS5O7CS.mjs.map +0 -1
- package/dist/chunk-EA66F2ZN.mjs.map +0 -1
- package/dist/chunk-EBSYGLCA.mjs.map +0 -1
- package/dist/chunk-HF6H7CTA.js +0 -3
- package/dist/chunk-HF6H7CTA.js.map +0 -1
- package/dist/chunk-HV2SGTFQ.mjs.map +0 -1
- package/dist/chunk-IFNCRMNZ.js.map +0 -1
- package/dist/chunk-INXG2ITG.js.map +0 -1
- package/dist/chunk-IZE2MHHY.mjs +0 -3
- package/dist/chunk-IZE2MHHY.mjs.map +0 -1
- package/dist/chunk-KBEHHIN6.mjs.map +0 -1
- package/dist/chunk-KCEGGK36.js.map +0 -1
- package/dist/chunk-KYBTGVFM.mjs.map +0 -1
- package/dist/chunk-L2WR54R7.mjs +0 -3
- package/dist/chunk-L2WR54R7.mjs.map +0 -1
- package/dist/chunk-LNIGQUON.mjs.map +0 -1
- package/dist/chunk-N3ZLPC5C.mjs.map +0 -1
- package/dist/chunk-N43UVAL7.mjs +0 -3
- package/dist/chunk-N43UVAL7.mjs.map +0 -1
- package/dist/chunk-NFHHEYXW.js.map +0 -1
- package/dist/chunk-NIHULISF.js.map +0 -1
- package/dist/chunk-NMI6DEUG.mjs.map +0 -1
- package/dist/chunk-NMU4NNZ2.mjs.map +0 -1
- package/dist/chunk-O2FPBOOV.mjs.map +0 -1
- package/dist/chunk-OCAU343S.js.map +0 -1
- package/dist/chunk-PBOK6TUC.mjs.map +0 -1
- package/dist/chunk-QP4A5SPE.mjs +0 -3
- package/dist/chunk-QP4A5SPE.mjs.map +0 -1
- package/dist/chunk-QP7CDVWG.js.map +0 -1
- package/dist/chunk-QUDNJOXZ.mjs +0 -3
- package/dist/chunk-QUDNJOXZ.mjs.map +0 -1
- package/dist/chunk-S7CZVGW7.js.map +0 -1
- package/dist/chunk-SN3YJA4C.js.map +0 -1
- package/dist/chunk-T63HKL4M.js +0 -3
- package/dist/chunk-T63HKL4M.js.map +0 -1
- package/dist/chunk-TFNJNZMW.mjs.map +0 -1
- package/dist/chunk-TLGEA7LM.js.map +0 -1
- package/dist/chunk-TXOT3G2Z.mjs +0 -3
- package/dist/chunk-TXOT3G2Z.mjs.map +0 -1
- package/dist/chunk-UAJUT7B7.js.map +0 -1
- package/dist/chunk-VBARF35N.js.map +0 -1
- package/dist/chunk-VSRWPJJB.mjs.map +0 -1
- package/dist/chunk-VUHWNO54.mjs.map +0 -1
- package/dist/chunk-W4PJBJNX.mjs.map +0 -1
- package/dist/chunk-WMHK5YWO.js +0 -3
- package/dist/chunk-WMHK5YWO.js.map +0 -1
- package/dist/chunk-X3QDPETP.mjs +0 -3
- package/dist/chunk-X3QDPETP.mjs.map +0 -1
- package/dist/chunk-XNLDCAFS.js.map +0 -1
- package/dist/chunk-XQS62AJH.mjs.map +0 -1
- package/dist/chunk-Y5LKHHUX.js.map +0 -1
- package/dist/chunk-YHYWSBWL.mjs +0 -3
- package/dist/chunk-YHYWSBWL.mjs.map +0 -1
- package/dist/chunk-YK3UJT7O.mjs.map +0 -1
- package/dist/chunk-ZJBCOTJL.mjs +0 -3
- package/dist/chunk-ZJBCOTJL.mjs.map +0 -1
- package/dist/chunk-ZUBIKQDO.js +0 -3
- package/dist/chunk-ZUBIKQDO.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
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; } }"use client";
|
|
2
|
-
var
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var n = _interopRequireWildcard(_react);var _reactavatar = require('@radix-ui/react-avatar'); var o = _interopRequireWildcard(_reactavatar);var _jsxruntime = require('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= exports.a =(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
|
-
`}},b= exports.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= exports.c =n.forwardRef(({className:a,...t},e)=>_jsxruntime.jsx.call(void 0, o.Root,{ref:e,className:
|
|
6
|
-
//# sourceMappingURL=chunk-
|
|
5
|
+
`}},b= exports.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= exports.c =n.forwardRef(({className:a,...t},e)=>_jsxruntime.jsx.call(void 0, o.Root,{ref:e,className:_chunkFUYXCJOQjs.a.call(void 0, "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)=>_jsxruntime.jsx.call(void 0, o.Image,{ref:e,className:_chunkFUYXCJOQjs.a.call(void 0, "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 _jsxruntime.jsx.call(void 0, o.Fallback,{ref:s,style:l,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner",a),...e})});P.displayName=o.Fallback.displayName;exports.a = p; exports.b = b; exports.c = R; exports.d = g; exports.e = P;
|
|
6
|
+
//# sourceMappingURL=chunk-372VUZFE.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-372VUZFE.js","../src/components/avatar.tsx"],"names":["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","jsx","cn","AvatarImage","AvatarFallback","gradientStyle"],"mappings":"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","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-372VUZFE.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Generates hash values from a seed string.\n * This is the core function that ensures consistency between gradient and single color.\n */\nconst generateHashes = (seed: string = \"default\") => {\n // 1. Remove '0x' to jump straight into the unique data\n const cleanSeed = seed.startsWith(\"0x\") ? seed.slice(2) : seed\n\n // Primes for high-variance bit-mixing\n const P1 = 0x85ebca6b\n const P2 = 0xc2b2ae35\n const P3 = 0x27d4eb2f\n\n let h1 = 0xdeadbeef\n let h2 = 0x41c6ce57\n\n for (let i = 0; i < cleanSeed.length; i++) {\n const char = cleanSeed.charCodeAt(i)\n h1 = Math.imul(h1 ^ char, P1)\n h1 = (h1 << 13) | (h1 >>> 19)\n\n h2 = Math.imul(h2 ^ char, P2)\n h2 = (h2 << 17) | (h2 >>> 15)\n }\n\n // Final mix\n h1 ^= h1 >>> 16\n h1 = Math.imul(h1, P3)\n h2 ^= h2 >>> 13\n h2 = Math.imul(h2, P1)\n\n return { h1: Math.abs(h1), h2: Math.abs(h2) }\n}\n\n/**\n * Creates a mesh-style radial gradient that mimics a 3D sphere.\n * Base color: #F8F8F8\n * Top: Two distinct HSL blobs that occupy roughly the upper 3/4.\n */\nconst getSphericalGradient = (seed: string = \"default\") => {\n const { h1, h2 } = generateHashes(seed)\n\n // Map Hashes to HSL\n const hue1 = h1 % 360\n // Force second hue to be at least 120 degrees away for maximum contrast\n const hue2 = (hue1 + 120 + (h2 % 120)) % 360\n\n const sat1 = 70 + ((h1 >> 4) % 30)\n const sat2 = 70 + ((h2 >> 4) % 30)\n\n const light1 = 50 + ((h1 >> 8) % 15)\n const light2 = 50 + ((h2 >> 8) % 15)\n\n const color1 = `hsl(${hue1}, ${sat1}%, ${light1}%)`\n const color2 = `hsl(${hue2}, ${sat2}%, ${light2}%)`\n\n return {\n backgroundColor: \"#F8F8F8\",\n backgroundImage: `\n radial-gradient(at 0% 0%, ${color1} 0%, transparent 80%),\n radial-gradient(at 100% 100%, ${color2} 0%, transparent 80%)\n `,\n }\n}\n\n/**\n * Generates a unique single color from a seed string.\n * This color is in sync with the spherical gradient - the same seed will produce\n * a color that matches the primary color (color1) of the gradient.\n * Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.\n *\n * @param seed - The seed string (e.g., username, user ID)\n * @returns A single HSL color string (e.g., \"hsl(120, 85%, 60%)\")\n */\nconst getSeedColor = (seed: string = \"default\"): string => {\n const { h1 } = generateHashes(seed)\n\n const hue = h1 % 360\n const saturation = 70 + ((h1 >> 4) % 30) // 70-100%\n const lightness = 50 + ((h1 >> 8) % 15) // 50-65%\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\ninterface FallbackProps extends React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n> {\n seed?: string\n}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n FallbackProps\n>(({ className, seed, ...props }, ref) => {\n const gradientStyle = React.useMemo(() => getSphericalGradient(seed), [seed])\n\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n style={gradientStyle}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner\",\n className\n )}\n {...props}\n />\n )\n})\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n getSphericalGradient,\n getSeedColor,\n}\n"]}
|
|
@@ -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; } }"use client";
|
|
2
2
|
var _react = require('react'); var e = _interopRequireWildcard(_react);var r={content:["./src/**/*.{ts,tsx}","./stories/**/*.{ts,tsx}"],theme:{extend:{screens:{sm:"448px",md:"576px",lg:"986px",xl:"1280px","2xl":"1400px"}}}},c=r;function x(n){let[i,o]=e.useState(!1);return e.useEffect(()=>{let a=`(min-width: ${c.theme.extend.screens[n]})`,t=window.matchMedia(a),s=()=>o(t.matches);return s(),t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[n]),i}exports.a = x;
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-3BVMHDYA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3BVMHDYA.js","../src/lib/use-media-query.ts","../tailwind.config.ts"],"names":["config","tailwind_config_default","useMediaQuery","breakpoint","matches","setMatches","query","media","updateMatch"],"mappings":"AAAA,uWAAY;ACEZ,uEAAuB,ICAjBA,CAAAA,CAAS,CACb,OAAA,CAAS,CACP,qBAAA,CACA,yBACF,CAAA,CACA,KAAA,CAAO,CACL,MAAA,CAAQ,CACN,OAAA,CAAS,CACP,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,OAAA,CACN,EAAA,CAAM,QAAA,CACN,KAAA,CAAO,QACT,CACF,CACF,CACF,CAAA,CAEOC,CAAAA,CAAQD,CAAAA,CDXR,SAASE,CAAAA,CAAcC,CAAAA,CAA8D,CAC1F,GAAM,CAACC,CAAAA,CAASC,CAAU,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAElD,OAAM,CAAA,CAAA,SAAA,CAAU,CAAA,CAAA,EAAM,CAEpB,IAAMC,CAAAA,CAAQ,CAAA,YAAA,EADAL,CAAAA,CAAe,KAAA,CAAM,MAAA,CAAO,OAAA,CAAQE,CAAU,CAC1B,CAAA,CAAA,CAAA,CAC5BI,CAAAA,CAAQ,MAAA,CAAO,UAAA,CAAWD,CAAK,CAAA,CAE/BE,CAAAA,CAAc,CAAA,CAAA,EAAMH,CAAAA,CAAWE,CAAAA,CAAM,OAAO,CAAA,CAClD,OAAAC,CAAAA,CAAY,CAAA,CAEZD,CAAAA,CAAM,gBAAA,CAAiB,QAAA,CAAUC,CAAW,CAAA,CACrC,CAAA,CAAA,EAAMD,CAAAA,CAAM,mBAAA,CAAoB,QAAA,CAAUC,CAAW,CAC9D,CAAA,CAAG,CAACL,CAAU,CAAC,CAAA,CAERC,CACT,CAAA,cAAA","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3BVMHDYA.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport tailwindConfig from \"../../tailwind.config\"\n\n/**\n * Hook to detect if a Tailwind breakpoint is active\n * Uses the actual breakpoint values from tailwind.config.ts\n */\nexport function useMediaQuery(breakpoint: keyof typeof tailwindConfig.theme.extend.screens) {\n const [matches, setMatches] = React.useState(false)\n\n React.useEffect(() => {\n const value = tailwindConfig.theme.extend.screens[breakpoint]\n const query = `(min-width: ${value})`\n const media = window.matchMedia(query)\n\n const updateMatch = () => setMatches(media.matches)\n updateMatch()\n\n media.addEventListener(\"change\", updateMatch)\n return () => media.removeEventListener(\"change\", updateMatch)\n }, [breakpoint])\n\n return matches\n}\n","import type { Config } from 'tailwindcss'\n\nconst config = {\n content: [\n \"./src/**/*.{ts,tsx}\",\n \"./stories/**/*.{ts,tsx}\",\n ],\n theme: {\n extend: {\n screens: {\n 'sm': '448px',\n 'md': '576px',\n 'lg': '986px',\n 'xl': '1280px',\n '2xl': '1400px',\n },\n },\n },\n} satisfies Config\n\nexport default config\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
2
|
var _chunkXYO4VLMFjs = require('./chunk-XYO4VLMF.js');var _react = require('react');var _jsxruntime = require('react/jsx-runtime');var m=17,B=1,P=5,q=(d,i)=>{if(d<i){let e=1-d/i;return e*e*(3-2*e)}return 0},v=class{constructor(i){_chunkXYO4VLMFjs.a.call(void 0, this,"x",0);_chunkXYO4VLMFjs.a.call(void 0, this,"y",0);_chunkXYO4VLMFjs.a.call(void 0, this,"anchorX",0);_chunkXYO4VLMFjs.a.call(void 0, this,"anchorY",0);_chunkXYO4VLMFjs.a.call(void 0, this,"vx",0);_chunkXYO4VLMFjs.a.call(void 0, this,"vy",0);_chunkXYO4VLMFjs.a.call(void 0, this,"nodes",[]);_chunkXYO4VLMFjs.a.call(void 0, this,"opacity",0);_chunkXYO4VLMFjs.a.call(void 0, this,"glitchZones",[]);_chunkXYO4VLMFjs.a.call(void 0, this,"maxReach",180);this.anchorX=i.x,this.anchorY=i.y,this.x=this.anchorX,this.y=this.anchorY,this.init()}init(){this.nodes=[];let i=3+Math.floor(Math.random()*3);for(let e=0;e<i;e++){let n=15+Math.random()*25,b=(Math.random()-.5)*60,u=(Math.random()-.5)*60;this.nodes.push({offsetX:b,offsetY:u,vx:(Math.random()-.5)*.1,vy:(Math.random()-.5)*.1,radius:n,t:Math.random()*100})}this.opacity=1}update(){let i=this.anchorX-this.x,e=this.anchorY-this.y,n=5e-4,b=i*n,u=e*n,g=(Math.random()-.5)*.01,r=(Math.random()-.5)*.01;if(this.vx+=b+g,this.vy+=u+r,this.vx*=.96,this.vy*=.96,this.x+=this.vx,this.y+=this.vy,this.nodes.forEach(s=>{s.t+=.005,s.offsetX+=Math.sin(s.t)*.1+s.vx,s.offsetY+=Math.cos(s.t*.9)*.1+s.vy;let y=70;(s.offsetX>y||s.offsetX<-y)&&(s.vx*=-1),(s.offsetY>y||s.offsetY<-y)&&(s.vy*=-1),s.radius+=Math.sin(s.t*2)*.1}),this.glitchZones=this.glitchZones.filter(s=>s.life>0),this.glitchZones.forEach(s=>s.life--),Math.random()<.03){let y=h=>Math.round((h-m/2)/m)*m+m/2,X=this.x+(Math.random()-.5)*80,w=this.y+(Math.random()-.5)*80,p=y(X),a=y(w);if((Math.random()>.6?"line":"dot")==="line"){let h=Math.random()>.5,x=40+Math.random()*80,t=2;this.glitchZones.push({x:h?p-t/2:p-x/2,y:h?a-x/2:a-t/2,w:h?t:x,h:h?x:t,life:8+Math.random()*12})}else this.glitchZones.push({x:p-4/2,y:a-4/2,w:4,h:4,life:6+Math.random()*10})}}},F=class{constructor(i,e){_chunkXYO4VLMFjs.a.call(void 0, this,"x");_chunkXYO4VLMFjs.a.call(void 0, this,"y");_chunkXYO4VLMFjs.a.call(void 0, this,"opacity");_chunkXYO4VLMFjs.a.call(void 0, this,"decay");_chunkXYO4VLMFjs.a.call(void 0, this,"nodes");_chunkXYO4VLMFjs.a.call(void 0, this,"maxReach",60);this.x=i,this.y=e,this.opacity=.8,this.decay=.03,this.nodes=[];let n=2;for(let b=0;b<n;b++)this.nodes.push({offsetX:(Math.random()-.5)*10,offsetY:(Math.random()-.5)*10,vx:(Math.random()-.5)*1,vy:(Math.random()-.5)*1,radius:5+Math.random()*10,t:0})}update(){this.opacity-=this.decay,this.nodes.forEach(i=>{i.offsetX+=i.vx,i.offsetY+=i.vy,i.radius*=.95})}},H=({variant:d="animated"})=>{let i=_react.useRef.call(void 0, null);return _react.useEffect.call(void 0, ()=>{let e=i.current;if(!e)return;let n=e.getContext("2d");if(!n)return;let b,u=[],g=[],r={x:-1e3,y:-1e3,lastX:-1e3,lastY:-1e3},s=()=>{u=[];let a=e.width,c=e.height;u.push(new v({x:a-a*.15,y:c*.15})),u.push(new v({x:a*.4,y:c*.4})),u.push(new v({x:a*.05+50,y:c-c*.15})),u.push(new v({x:a-a*.05-50,y:c-c*.05-50}))},y=()=>{let a=e.getBoundingClientRect(),c=a.width,h=a.height;c===0||h===0||e.width===c&&e.height===h||(e.width=c,e.height=h,s())},X=a=>{let c=e.getBoundingClientRect();r.x=a.clientX-c.left,r.y=a.clientY-c.top,r.lastX===-1e3&&(r.lastX=r.x,r.lastY=r.y);let h=r.x-r.lastX,x=r.y-r.lastY;Math.sqrt(h*h+x*x)>20&&(g.push(new F(r.x,r.y)),r.lastX=r.x,r.lastY=r.y)},w=()=>{let a=e.width,c=e.height;if(n.fillStyle="#050505",n.fillRect(0,0,a,c),d==="static"){for(let t=m/2;t<a;t+=m)for(let f=m/2;f<c;f+=m)n.fillStyle="rgba(47, 47, 47, 1)",n.fillRect(t-.5,f-.5,1,1);return}u.forEach(t=>t.update());for(let t=g.length-1;t>=0;t--)g[t].update(),g[t].opacity<=0&&g.splice(t,1);let h=[...u,...g],x=[];u.forEach(t=>x.push(...t.glitchZones));for(let t=m/2;t<a;t+=m)for(let f=m/2;f<c;f+=m){let C=!1;for(let o of x)if(t>=o.x&&t<=o.x+o.w&&f>=o.y&&f<=o.y+o.h){C=!0;break}if(C){if(n.fillStyle="rgba(182, 243, 191, 0.95)",Math.random()>.1){let o=Math.random()>.5?P*.7:B*2;n.beginPath(),n.arc(t,f,o/2,0,Math.PI*2),n.fill()}continue}let M=0,I=!1;for(let o of h)if(Math.abs(t-o.x)<o.maxReach&&Math.abs(f-o.y)<o.maxReach){I=!0;break}if(!I){n.fillStyle="rgba(47, 47, 47, 1)",n.fillRect(t-.5,f-.5,1,1);continue}for(let o of h){let E=t-o.x,Z=f-o.y;if(Math.abs(E)>o.maxReach||Math.abs(Z)>o.maxReach)continue;let R=0;for(let Y of o.nodes){let z=E-Y.offsetX,G=Z-Y.offsetY,S=Math.sqrt(z*z+G*G);R+=q(S,Y.radius)}R>1&&(R=1),M+=R*o.opacity}if(M>1&&(M=1),M>.01){let G=Math.floor(255+-73*M),S=Math.floor(255+-12*M),A=Math.floor(255+-64*M),k=M*.5,L=B+M*(P-B);n.fillStyle=`rgba(${G}, ${S}, ${A}, ${k})`,n.beginPath(),n.arc(t,f,L/2,0,Math.PI*2),n.fill()}else n.fillStyle="rgba(47, 47, 47, 1)",n.fillRect(t-.5,f-.5,1,1)}b=requestAnimationFrame(w)},p=new ResizeObserver(()=>{y(),d==="static"&&w()});return p.observe(e),d==="animated"&&window.addEventListener("mousemove",X),y(),w(),()=>{p.disconnect(),d==="animated"&&window.removeEventListener("mousemove",X),cancelAnimationFrame(b)}},[d]),_jsxruntime.jsx.call(void 0, "canvas",{ref:i,className:"fixed inset-0 -z-999 w-full h-full pointer-events-none"})},D= exports.a =H;exports.a = D;
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-3PEPOFYU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3PEPOFYU.js","../src/components/GeometricFluidGrid.tsx"],"names":["GAP","BASE_SIZE","MAX_SIZE","getFalloff","dist","radius","val","AnchoredBlob","anchorConfig","__publicField","nodeCount","i","r","ox","oy","dx","dy","k","ax","ay","wx","wy","node","maxDist","g","snap","v","rawCx","rawCy","cx","cy","isVert","len","thickness","TrailBlob","x","y","count","GeometricFluidGrid","variant","canvasRef","useRef","useEffect","canvas","ctx","animationFrameId","orbs","trail","mouse","initWorld","w","h","resize","rect","newW","newH","handleMouseMove","e","draw","orb","renderList","allGlitches","o","isGlitching","size","totalInfluence","nearby","entity","localInf","nx","ny","b","alpha","resizeObserver","jsx","GeometricFluidGrid_default"],"mappings":"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","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3PEPOFYU.js","sourcesContent":[null,"\"use client\"\nimport React, { useEffect, useRef } from \"react\"\n\n// --- CONFIGURATION ---\nconst GAP = 17\nconst BASE_SIZE = 1\nconst MAX_SIZE = 5\n\n// --- TYPES ---\ninterface Node {\n offsetX: number\n offsetY: number\n vx: number\n vy: number\n radius: number\n t: number\n}\n\ninterface GlitchZone {\n x: number\n y: number\n w: number\n h: number\n life: number\n}\n\ninterface MouseState {\n x: number\n y: number\n lastX: number\n lastY: number\n}\n\n// --- MATH HELPERS ---\nconst getFalloff = (dist: number, radius: number): number => {\n if (dist < radius) {\n const val = 1 - dist / radius\n return val * val * (3 - 2 * val)\n }\n return 0\n}\n\n// --- CLASSES ---\nclass AnchoredBlob {\n // Current Position\n x: number = 0\n y: number = 0\n\n // Anchor Position (Home base)\n anchorX: number = 0\n anchorY: number = 0\n\n // Movement\n vx: number = 0\n vy: number = 0\n\n // Appearance\n nodes: Node[] = []\n opacity: number = 0\n\n // Glitch State\n glitchZones: GlitchZone[] = []\n maxReach: number = 180\n\n constructor(anchorConfig: { x: number; y: number }) {\n this.anchorX = anchorConfig.x\n this.anchorY = anchorConfig.y\n this.x = this.anchorX\n this.y = this.anchorY\n this.init()\n }\n\n init() {\n // 1. Create Internal Nodes (The \"Blob\" composition)\n this.nodes = []\n const nodeCount = 3 + Math.floor(Math.random() * 3) // 3 to 5 nodes\n\n for (let i = 0; i < nodeCount; i++) {\n // Significantly smaller radius (15-40px) to reduce central bulk\n const r = 15 + Math.random() * 25\n // Wider initial spread\n const ox = (Math.random() - 0.5) * 60\n const oy = (Math.random() - 0.5) * 60\n\n this.nodes.push({\n offsetX: ox,\n offsetY: oy,\n vx: (Math.random() - 0.5) * 0.1, // Slower internal movement (was 0.4)\n vy: (Math.random() - 0.5) * 0.1,\n radius: r,\n t: Math.random() * 100,\n })\n }\n\n this.opacity = 1\n }\n\n update() {\n // --- 1. Tethered Movement Logic ---\n const dx = this.anchorX - this.x\n const dy = this.anchorY - this.y\n\n // Spring constant (very loose)\n const k = 0.0005\n const ax = dx * k\n const ay = dy * k\n\n // Random wandering force - Reduced significantly for slower drift\n const wx = (Math.random() - 0.5) * 0.01 // was 0.05\n const wy = (Math.random() - 0.5) * 0.01 // was 0.05\n\n this.vx += ax + wx\n this.vy += ay + wy\n\n this.vx *= 0.96\n this.vy *= 0.96\n\n this.x += this.vx\n this.y += this.vy\n\n // --- 2. Internal Node Animation ---\n this.nodes.forEach((node) => {\n // Slow down time step\n node.t += 0.005 // was 0.02\n\n // Slower oscillation and movement\n node.offsetX += Math.sin(node.t) * 0.1 + node.vx // amp was 0.4\n node.offsetY += Math.cos(node.t * 0.9) * 0.1 + node.vy\n\n // Constrain to \"nucleus\"\n const maxDist = 70\n if (node.offsetX > maxDist || node.offsetX < -maxDist) node.vx *= -1\n if (node.offsetY > maxDist || node.offsetY < -maxDist) node.vy *= -1\n\n // Pulse size\n node.radius += Math.sin(node.t * 2) * 0.1\n })\n\n // --- 3. Manage Glitch Zones ---\n // Remove dead glitches\n this.glitchZones = this.glitchZones.filter((g) => g.life > 0)\n this.glitchZones.forEach((g) => g.life--)\n\n // Randomly spawn new glitches\n if (Math.random() < 0.03) {\n // 3% chance per frame\n const spread = 80\n\n // Snap random positions to exact grid points to ensure clean lines\n const snap = (v: number) =>\n Math.round((v - GAP / 2) / GAP) * GAP + GAP / 2\n\n const rawCx = this.x + (Math.random() - 0.5) * spread\n const rawCy = this.y + (Math.random() - 0.5) * spread\n\n const cx = snap(rawCx)\n const cy = snap(rawCy)\n\n const type = Math.random() > 0.6 ? \"line\" : \"dot\"\n\n if (type === \"line\") {\n const isVert = Math.random() > 0.5\n // Medium length: 40-120px\n const len = 40 + Math.random() * 80\n\n // Thickness is essentially zero (just a sliver) centered on the grid line\n // to guarantee we only pick up exactly one row/column of dots\n const thickness = 2\n\n this.glitchZones.push({\n x: isVert ? cx - thickness / 2 : cx - len / 2,\n y: isVert ? cy - len / 2 : cy - thickness / 2,\n w: isVert ? thickness : len,\n h: isVert ? len : thickness,\n life: 8 + Math.random() * 12,\n })\n } else {\n // Single dot\n // Box just large enough to catch one grid point\n const size = 4\n\n this.glitchZones.push({\n x: cx - size / 2,\n y: cy - size / 2,\n w: size,\n h: size,\n life: 6 + Math.random() * 10,\n })\n }\n }\n }\n}\n\nclass TrailBlob {\n x: number\n y: number\n opacity: number\n decay: number\n nodes: Node[]\n maxReach: number = 60\n\n constructor(x: number, y: number) {\n this.x = x\n this.y = y\n this.opacity = 0.8\n this.decay = 0.03\n\n this.nodes = []\n const count = 2\n for (let i = 0; i < count; i++) {\n this.nodes.push({\n offsetX: (Math.random() - 0.5) * 10,\n offsetY: (Math.random() - 0.5) * 10,\n vx: (Math.random() - 0.5) * 1,\n vy: (Math.random() - 0.5) * 1,\n radius: 5 + Math.random() * 10,\n t: 0,\n })\n }\n }\n\n update() {\n this.opacity -= this.decay\n this.nodes.forEach((node) => {\n node.offsetX += node.vx\n node.offsetY += node.vy\n node.radius *= 0.95\n })\n }\n}\n\ninterface GeometricFluidGridProps {\n variant?: \"animated\" | \"static\"\n}\n\nconst GeometricFluidGrid: React.FC<GeometricFluidGridProps> = ({\n variant = \"animated\",\n}) => {\n const canvasRef = useRef<HTMLCanvasElement>(null)\n\n useEffect(() => {\n const canvas = canvasRef.current\n if (!canvas) return\n\n const ctx = canvas.getContext(\"2d\")\n if (!ctx) return\n\n let animationFrameId: number\n let orbs: AnchoredBlob[] = []\n let trail: TrailBlob[] = []\n let mouse: MouseState = { x: -1000, y: -1000, lastX: -1000, lastY: -1000 }\n\n const initWorld = () => {\n orbs = []\n const w = canvas.width\n const h = canvas.height\n\n // 1. Top Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.15,\n y: h * 0.15,\n })\n )\n\n // 2. ~40% from top and ~40% from left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.4,\n y: h * 0.4,\n })\n )\n\n // 3. Bottom Left\n orbs.push(\n new AnchoredBlob({\n x: w * 0.05 + 50,\n y: h - h * 0.15,\n })\n )\n\n // 4. Bottom Right\n orbs.push(\n new AnchoredBlob({\n x: w - w * 0.05 - 50,\n y: h - h * 0.05 - 50,\n })\n )\n }\n\n const resize = () => {\n const rect = canvas.getBoundingClientRect()\n const newW = rect.width\n const newH = rect.height\n\n // Skip if the element has no size (e.g. during a layout transition)\n if (newW === 0 || newH === 0) return\n\n // Skip if size hasn't actually changed\n if (canvas.width === newW && canvas.height === newH) return\n\n canvas.width = newW\n canvas.height = newH\n initWorld()\n }\n\n const handleMouseMove = (e: MouseEvent) => {\n const rect = canvas.getBoundingClientRect()\n mouse.x = e.clientX - rect.left\n mouse.y = e.clientY - rect.top\n\n if (mouse.lastX === -1000) {\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n\n const dx = mouse.x - mouse.lastX\n const dy = mouse.y - mouse.lastY\n const dist = Math.sqrt(dx * dx + dy * dy)\n\n if (dist > 20) {\n trail.push(new TrailBlob(mouse.x, mouse.y))\n mouse.lastX = mouse.x\n mouse.lastY = mouse.y\n }\n }\n\n const draw = () => {\n const w = canvas.width\n const h = canvas.height\n\n // Clear Screen\n ctx.fillStyle = \"#050505\"\n ctx.fillRect(0, 0, w, h)\n\n // Static variant: just render uniform dots\n if (variant === \"static\") {\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n ctx.fillStyle = \"rgba(47, 47, 47, 1)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n return // No animation loop for static variant\n }\n\n // Animated variant: update and render with animations\n // Update Logic\n orbs.forEach((orb) => orb.update())\n for (let i = trail.length - 1; i >= 0; i--) {\n trail[i].update()\n if (trail[i].opacity <= 0) trail.splice(i, 1)\n }\n\n const renderList = [...orbs, ...trail]\n\n // Collect all glitch zones for easier checking inside the loop\n // We flat map them to a simple array to iterate quickly\n const allGlitches: GlitchZone[] = []\n orbs.forEach((o) => allGlitches.push(...o.glitchZones))\n\n for (let x = GAP / 2; x < w; x += GAP) {\n for (let y = GAP / 2; y < h; y += GAP) {\n // --- GLITCH CHECK ---\n // Check if this specific grid dot is inside a glitch zone\n let isGlitching = false\n for (const g of allGlitches) {\n // Simple AABB check\n if (x >= g.x && x <= g.x + g.w && y >= g.y && y <= g.y + g.h) {\n isGlitching = true\n break\n }\n }\n\n if (isGlitching) {\n // Glitched Dot: Bright\n // We use the grid itself to manifest the glitch\n ctx.fillStyle = \"rgba(182, 243, 191, 0.95)\"\n\n // Randomly skip some dots in the glitch line for a \"broken\" look\n if (Math.random() > 0.1) {\n const size = Math.random() > 0.5 ? MAX_SIZE * 0.7 : BASE_SIZE * 2\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n }\n continue // Skip standard influence calculation for this dot\n }\n\n // --- STANDARD INFLUENCE CHECK ---\n let totalInfluence = 0\n\n // Optimization: Is near blob?\n let nearby = false\n for (const entity of renderList) {\n if (\n Math.abs(x - entity.x) < entity.maxReach &&\n Math.abs(y - entity.y) < entity.maxReach\n ) {\n nearby = true\n break\n }\n }\n\n if (!nearby) {\n // Passive Background Dot\n ctx.fillStyle = \"rgba(47, 47, 47, 1)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n continue\n }\n\n // Calculate Influence\n for (const entity of renderList) {\n const dx = x - entity.x\n const dy = y - entity.y\n\n if (\n Math.abs(dx) > entity.maxReach ||\n Math.abs(dy) > entity.maxReach\n )\n continue\n\n let localInf = 0\n for (const node of entity.nodes) {\n const nx = dx - node.offsetX\n const ny = dy - node.offsetY\n const dist = Math.sqrt(nx * nx + ny * ny)\n localInf += getFalloff(dist, node.radius)\n }\n if (localInf > 1) localInf = 1\n totalInfluence += localInf * entity.opacity\n }\n\n if (totalInfluence > 1) totalInfluence = 1\n\n // Draw Cell\n if (totalInfluence > 0.01) {\n // Gradient: White (Edge) to Green (#B6F3BF - Center)\n const edgeR = 255,\n centerR = 182\n const edgeG = 255,\n centerG = 243\n const edgeB = 255,\n centerB = 191\n\n // Interpolate from White (0 influence) to Green (1 influence)\n const r = Math.floor(edgeR + (centerR - edgeR) * totalInfluence)\n const g = Math.floor(edgeG + (centerG - edgeG) * totalInfluence)\n const b = Math.floor(edgeB + (centerB - edgeB) * totalInfluence)\n\n const alpha = totalInfluence * 0.5\n const size = BASE_SIZE + totalInfluence * (MAX_SIZE - BASE_SIZE)\n\n ctx.fillStyle = `rgba(${r}, ${g}, ${b}, ${alpha})`\n ctx.beginPath()\n ctx.arc(x, y, size / 2, 0, Math.PI * 2)\n ctx.fill()\n } else {\n ctx.fillStyle = \"rgba(47, 47, 47, 1)\"\n ctx.fillRect(x - 0.5, y - 0.5, 1, 1)\n }\n }\n }\n\n animationFrameId = requestAnimationFrame(draw)\n }\n\n // Use ResizeObserver to detect element-level size changes\n // (catches CSS breakpoints, container queries, layout shifts — not just window resize)\n const resizeObserver = new ResizeObserver(() => {\n resize()\n // For the static variant, draw() returns early without scheduling\n // another frame, so we must explicitly redraw after a resize.\n if (variant === \"static\") {\n draw()\n }\n })\n resizeObserver.observe(canvas)\n\n if (variant === \"animated\") {\n window.addEventListener(\"mousemove\", handleMouseMove)\n }\n\n resize()\n draw()\n\n return () => {\n resizeObserver.disconnect()\n if (variant === \"animated\") {\n window.removeEventListener(\"mousemove\", handleMouseMove)\n }\n cancelAnimationFrame(animationFrameId)\n }\n }, [variant])\n\n return (\n <canvas\n ref={canvasRef}\n className=\"fixed inset-0 -z-999 w-full h-full pointer-events-none\"\n />\n )\n}\n\nexport default GeometricFluidGrid\n"]}
|
|
@@ -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 _chunkGRXC46JCjs = require('./chunk-GRXC46JC.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.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 o = _interopRequireWildcard(_reactpopover);var _jsxruntime = require('react/jsx-runtime');var C=o.Root,x=o.Trigger,c=r.forwardRef(({className:e,align:a="start",sideOffset:n=4,...i},s)=>_jsxruntime.jsx.call(void 0, o.Portal,{children:_jsxruntime.jsx.call(void 0, o.Content,{ref:s,align:a,sideOffset:n,className:_chunkFUYXCJOQjs.a.call(void 0, "z-50 w-auto rounded-3xl border border-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",e),...i})}));c.displayName=o.Content.displayName;var k=r.forwardRef(({dateRange:e,onDateRangeChange:a,placeholder:n="Pick a date range",disabled:i=!1,className:s,calendarProps:P,formatStr:d="LLL dd, y",numberOfMonths:u=2},v)=>{let[g,b]=r.useState(!1),y=()=>_optionalChain([e, 'optionalAccess', _ => _.from])?e.to?`${_datefns.format.call(void 0, e.from,d)} - ${_datefns.format.call(void 0, e.to,d)}`:_datefns.format.call(void 0, e.from,d):n;return _jsxruntime.jsxs.call(void 0, C,{open:g,onOpenChange:b,modal:!0,children:[_jsxruntime.jsx.call(void 0, x,{asChild:!0,children:_jsxruntime.jsxs.call(void 0, "button",{ref:v,type:"button",className:_chunkFUYXCJOQjs.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",!_optionalChain([e, 'optionalAccess', _2 => _2.from])&&"text-secondary-text",s),disabled:i,children:[_jsxruntime.jsx.call(void 0, _lucidereact.CalendarIcon,{className:"mr-2 h-4 w-4 shrink-0"}),_jsxruntime.jsx.call(void 0, "span",{className:"truncate",children:y()})]})}),_jsxruntime.jsx.call(void 0, c,{className:"w-auto p-0",align:"start",children:_jsxruntime.jsx.call(void 0, _chunkGRXC46JCjs.a,{mode:"range",selected:e,onSelect:h=>{_optionalChain([a, 'optionalCall', _3 => _3(h)])},defaultMonth:_optionalChain([e, 'optionalAccess', _4 => _4.from]),numberOfMonths:u,...P})})]})});k.displayName="DateRangePicker";exports.a = k;
|
|
3
|
+
//# sourceMappingURL=chunk-3TLCOZ5R.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3TLCOZ5R.js","../src/components/date-range-picker.tsx"],"names":["Popover","PopoverTrigger","PopoverContent","className","align","sideOffset","props","ref","jsx","cn","DateRangePicker","dateRange","onDateRangeChange","placeholder","disabled","calendarProps","formatStr","numberOfMonths","open","setOpen","formatDisplayValue"],"mappings":"AAAA,22BAAY;AACZ,sDAAuC,sDAAwC,uECCxD,2CACM,mCACN,uGACW,+CAc9B,IAREA,CAAAA,CAA2B,CAAA,CAAA,IAAA,CAC3BC,CAAAA,CAAkC,CAAA,CAAA,OAAA,CAElCC,CAAAA,CAAuB,CAAA,CAAA,UAAA,CAG3B,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,KAAA,CAAAC,CAAAA,CAAQ,OAAA,CAAS,UAAA,CAAAC,CAAAA,CAAa,CAAA,CAAG,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC3DC,6BAAAA,CAAkB,CAAA,MAAA,CAAjB,CACC,QAAA,CAAAA,6BAAAA,CAAkB,CAAA,OAAA,CAAjB,CACC,GAAA,CAAKD,CAAAA,CACL,KAAA,CAAOH,CAAAA,CACP,UAAA,CAAYC,CAAAA,CACZ,SAAA,CAAWI,gCAAAA,6bACT,CACAN,CACF,CAAA,CACC,GAAGG,CAAAA,CACN,CAAA,CACF,CACD,CAAA,CACDJ,CAAAA,CAAe,WAAA,CAA+B,CAAA,CAAA,OAAA,CAAQ,WAAA,CAgBtD,IAAMQ,CAAAA,CAAwB,CAAA,CAAA,UAAA,CAI5B,CACE,CACE,SAAA,CAAAC,CAAAA,CACA,iBAAA,CAAAC,CAAAA,CACA,WAAA,CAAAC,CAAAA,CAAc,mBAAA,CACd,QAAA,CAAAC,CAAAA,CAAW,CAAA,CAAA,CACX,SAAA,CAAAX,CAAAA,CACA,aAAA,CAAAY,CAAAA,CACA,SAAA,CAAAC,CAAAA,CAAY,WAAA,CACZ,cAAA,CAAAC,CAAAA,CAAiB,CACnB,CAAA,CACAV,CAAAA,CAAAA,EACG,CACH,GAAM,CAACW,CAAAA,CAAMC,CAAO,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,CAAA,CAAK,CAAA,CAEtCC,CAAAA,CAAqB,CAAA,CAAA,kBACpBT,CAAAA,2BAAW,MAAA,CAIZA,CAAAA,CAAU,EAAA,CACL,CAAA,EAAA","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-3TLCOZ5R.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { format } from \"date-fns\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\nimport type { DateRange } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Calendar } from \"@/components/calendar\"\n\nconst Popover = PopoverPrimitive.Root\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-auto rounded-3xl border border-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\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport interface DateRangePickerProps {\n dateRange?: DateRange\n onDateRangeChange?: (dateRange: DateRange | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\"\n >\n formatStr?: string\n numberOfMonths?: number\n}\n\nconst DateRangePicker = React.forwardRef<\n HTMLButtonElement,\n DateRangePickerProps\n>(\n (\n {\n dateRange,\n onDateRangeChange,\n placeholder = \"Pick a date range\",\n disabled = false,\n className,\n calendarProps,\n formatStr = \"LLL dd, y\",\n numberOfMonths = 2,\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n\n const formatDisplayValue = () => {\n if (!dateRange?.from) {\n return placeholder\n }\n\n if (dateRange.to) {\n return `${format(dateRange.from, formatStr)} - ${format(dateRange.to, formatStr)}`\n }\n\n return format(dateRange.from, formatStr)\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen} modal>\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n className={cn(\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\",\n !dateRange?.from && \"text-secondary-text\",\n className\n )}\n disabled={disabled}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4 shrink-0\" />\n <span className=\"truncate\">{formatDisplayValue()}</span>\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\n <Calendar\n mode=\"range\"\n selected={dateRange}\n onSelect={(range) => {\n onDateRangeChange?.(range)\n }}\n defaultMonth={dateRange?.from}\n numberOfMonths={numberOfMonths}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nDateRangePicker.displayName = \"DateRangePicker\"\n\nexport { DateRangePicker }\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import*as e from"react";var r={content:["./src/**/*.{ts,tsx}","./stories/**/*.{ts,tsx}"],theme:{extend:{screens:{sm:"448px",md:"576px",lg:"986px",xl:"1280px","2xl":"1400px"}}}},c=r;function x(n){let[i,o]=e.useState(!1);return e.useEffect(()=>{let a=`(min-width: ${c.theme.extend.screens[n]})`,t=window.matchMedia(a),s=()=>o(t.matches);return s(),t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[n]),i}export{x as a};
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
3
|
+
//# sourceMappingURL=chunk-4LR7SOCY.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/lib/use-media-query.ts","../tailwind.config.ts"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport tailwindConfig from \"../../tailwind.config\"\n\n/**\n * Hook to detect if a Tailwind breakpoint is active\n * Uses the actual breakpoint values from tailwind.config.ts\n */\nexport function useMediaQuery(breakpoint: keyof typeof tailwindConfig.theme.extend.screens) {\n const [matches, setMatches] = React.useState(false)\n\n React.useEffect(() => {\n const value = tailwindConfig.theme.extend.screens[breakpoint]\n const query = `(min-width: ${value})`\n const media = window.matchMedia(query)\n\n const updateMatch = () => setMatches(media.matches)\n updateMatch()\n\n media.addEventListener(\"change\", updateMatch)\n return () => media.removeEventListener(\"change\", updateMatch)\n }, [breakpoint])\n\n return matches\n}\n","import type { Config } from 'tailwindcss'\n\nconst config = {\n content: [\n \"./src/**/*.{ts,tsx}\",\n \"./stories/**/*.{ts,tsx}\",\n ],\n theme: {\n extend: {\n screens: {\n 'sm': '448px',\n 'md': '576px',\n 'lg': '986px',\n 'xl': '1280px',\n '2xl': '1400px',\n },\n },\n },\n} satisfies Config\n\nexport default config\n"],"mappings":";AAEA,UAAYA,MAAW,QCAvB,IAAMC,EAAS,CACb,QAAS,CACP,sBACA,yBACF,EACA,MAAO,CACL,OAAQ,CACN,QAAS,CACP,GAAM,QACN,GAAM,QACN,GAAM,QACN,GAAM,SACN,MAAO,QACT,CACF,CACF,CACF,EAEOC,EAAQD,EDXR,SAASE,EAAcC,EAA8D,CAC1F,GAAM,CAACC,EAASC,CAAU,EAAU,WAAS,EAAK,EAElD,OAAM,YAAU,IAAM,CAEpB,IAAMC,EAAQ,eADAC,EAAe,MAAM,OAAO,QAAQJ,CAAU,CAC1B,IAC5BK,EAAQ,OAAO,WAAWF,CAAK,EAE/BG,EAAc,IAAMJ,EAAWG,EAAM,OAAO,EAClD,OAAAC,EAAY,EAEZD,EAAM,iBAAiB,SAAUC,CAAW,EACrC,IAAMD,EAAM,oBAAoB,SAAUC,CAAW,CAC9D,EAAG,CAACN,CAAU,CAAC,EAERC,CACT","names":["React","config","tailwind_config_default","useMediaQuery","breakpoint","matches","setMatches","query","tailwind_config_default","media","updateMatch"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as f}from"./chunk-
|
|
2
|
+
import{a as f}from"./chunk-S5TKCF6T.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-4LUOGI24.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/avatar.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AvatarPrimitive from \"@radix-ui/react-avatar\"\nimport { cn } from \"@/lib/utils\"\n\n/**\n * Generates hash values from a seed string.\n * This is the core function that ensures consistency between gradient and single color.\n */\nconst generateHashes = (seed: string = \"default\") => {\n // 1. Remove '0x' to jump straight into the unique data\n const cleanSeed = seed.startsWith(\"0x\") ? seed.slice(2) : seed\n\n // Primes for high-variance bit-mixing\n const P1 = 0x85ebca6b\n const P2 = 0xc2b2ae35\n const P3 = 0x27d4eb2f\n\n let h1 = 0xdeadbeef\n let h2 = 0x41c6ce57\n\n for (let i = 0; i < cleanSeed.length; i++) {\n const char = cleanSeed.charCodeAt(i)\n h1 = Math.imul(h1 ^ char, P1)\n h1 = (h1 << 13) | (h1 >>> 19)\n\n h2 = Math.imul(h2 ^ char, P2)\n h2 = (h2 << 17) | (h2 >>> 15)\n }\n\n // Final mix\n h1 ^= h1 >>> 16\n h1 = Math.imul(h1, P3)\n h2 ^= h2 >>> 13\n h2 = Math.imul(h2, P1)\n\n return { h1: Math.abs(h1), h2: Math.abs(h2) }\n}\n\n/**\n * Creates a mesh-style radial gradient that mimics a 3D sphere.\n * Base color: #F8F8F8\n * Top: Two distinct HSL blobs that occupy roughly the upper 3/4.\n */\nconst getSphericalGradient = (seed: string = \"default\") => {\n const { h1, h2 } = generateHashes(seed)\n\n // Map Hashes to HSL\n const hue1 = h1 % 360\n // Force second hue to be at least 120 degrees away for maximum contrast\n const hue2 = (hue1 + 120 + (h2 % 120)) % 360\n\n const sat1 = 70 + ((h1 >> 4) % 30)\n const sat2 = 70 + ((h2 >> 4) % 30)\n\n const light1 = 50 + ((h1 >> 8) % 15)\n const light2 = 50 + ((h2 >> 8) % 15)\n\n const color1 = `hsl(${hue1}, ${sat1}%, ${light1}%)`\n const color2 = `hsl(${hue2}, ${sat2}%, ${light2}%)`\n\n return {\n backgroundColor: \"#F8F8F8\",\n backgroundImage: `\n radial-gradient(at 0% 0%, ${color1} 0%, transparent 80%),\n radial-gradient(at 100% 100%, ${color2} 0%, transparent 80%)\n `,\n }\n}\n\n/**\n * Generates a unique single color from a seed string.\n * This color is in sync with the spherical gradient - the same seed will produce\n * a color that matches the primary color (color1) of the gradient.\n * Useful for leaderboards, badges, or other UI elements that need a consistent identifier color.\n *\n * @param seed - The seed string (e.g., username, user ID)\n * @returns A single HSL color string (e.g., \"hsl(120, 85%, 60%)\")\n */\nconst getSeedColor = (seed: string = \"default\"): string => {\n const { h1 } = generateHashes(seed)\n\n const hue = h1 % 360\n const saturation = 70 + ((h1 >> 4) % 30) // 70-100%\n const lightness = 50 + ((h1 >> 8) % 15) // 50-65%\n\n return `hsl(${hue}, ${saturation}%, ${lightness}%)`\n}\n\nconst Avatar = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Root\n ref={ref}\n className={cn(\n \"relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full\",\n className\n )}\n {...props}\n />\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Image>,\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n <AvatarPrimitive.Image\n ref={ref}\n className={cn(\"aspect-square h-full w-full\", className)}\n {...props}\n />\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\ninterface FallbackProps extends React.ComponentPropsWithoutRef<\n typeof AvatarPrimitive.Fallback\n> {\n seed?: string\n}\n\nconst AvatarFallback = React.forwardRef<\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\n FallbackProps\n>(({ className, seed, ...props }, ref) => {\n const gradientStyle = React.useMemo(() => getSphericalGradient(seed), [seed])\n\n return (\n <AvatarPrimitive.Fallback\n ref={ref}\n style={gradientStyle}\n className={cn(\n \"flex h-full w-full items-center justify-center rounded-full text-white font-medium shadow-inner\",\n className\n )}\n {...props}\n />\n )\n})\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport {\n Avatar,\n AvatarImage,\n AvatarFallback,\n getSphericalGradient,\n getSeedColor,\n}\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"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as c}from"./chunk-S5TKCF6T.mjs";import*as n from"react";import*as e from"@radix-ui/react-accordion";import{ChevronRight as m}from"lucide-react";import{cva as p}from"class-variance-authority";import{Fragment as P,jsx as o,jsxs as s}from"react/jsx-runtime";var f=p("rounded-3xl",{variants:{variant:{default:"border border-border bg-background",ghost:""}},defaultVariants:{variant:"default"}}),l=n.forwardRef(({className:i,...r},t)=>o(e.Root,{ref:t,className:c("flex flex-col gap-4",i),...r}));l.displayName="Accordion";var R=n.forwardRef(({className:i,variant:r,...t},a)=>o(e.Item,{ref:a,className:c(f({variant:r}),i),...t}));R.displayName="AccordionItem";var v=n.forwardRef(({className:i,children:r,aside:t,...a},d)=>o(e.Header,{className:"flex",children:s(e.Trigger,{ref:d,className:c("flex flex-1 cursor-pointer items-center gap-4 px-4.5 py-3.5 text-sm transition-all text-left [&[data-state=open]>svg]:rotate-90 active:opacity-50 data-disabled:cursor-not-allowed",i),...a,children:[o(m,{className:"h-4 w-4 shrink-0 transition-transform duration-200 in-data-disabled:opacity-40"}),o("span",{className:"in-data-disabled:opacity-40",children:r}),t&&o("span",{className:"ml-auto",children:t})]})}));v.displayName=e.Trigger.displayName;var A=n.forwardRef(({className:i,children:r,description:t,...a},d)=>s(e.Content,{ref:d,className:"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...a,children:[t&&s(P,{children:[o("div",{className:"pl-12.5 pr-4.5 pb-3 text-sm text-secondary-text",children:t}),o("div",{className:"border-t border-border"})]}),o("div",{className:c("px-4.5 pb-4 pt-3",i),children:r})]}));A.displayName=e.Content.displayName;export{l as a,R as b,v as c,A as d};
|
|
3
|
+
//# sourceMappingURL=chunk-4PTRLHCB.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/accordion.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as AccordionPrimitive from \"@radix-ui/react-accordion\"\nimport { ChevronRight } from \"lucide-react\"\n\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst accordionItemVariants = cva(\"rounded-3xl\", {\n variants: {\n variant: {\n default: \"border border-border bg-background\",\n ghost: \"\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n})\n\nconst Accordion = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Root>\n>(({ className, ...props }, ref) => (\n <AccordionPrimitive.Root\n ref={ref}\n className={cn(\"flex flex-col gap-4\", className)}\n {...props}\n />\n))\nAccordion.displayName = \"Accordion\"\n\nconst AccordionItem = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item> &\n VariantProps<typeof accordionItemVariants>\n>(({ className, variant, ...props }, ref) => (\n <AccordionPrimitive.Item\n ref={ref}\n className={cn(accordionItemVariants({ variant }), className)}\n {...props}\n />\n))\nAccordionItem.displayName = \"AccordionItem\"\n\nconst AccordionTrigger = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Trigger>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger> & {\n aside?: React.ReactNode\n }\n>(({ className, children, aside, ...props }, ref) => (\n <AccordionPrimitive.Header className=\"flex\">\n <AccordionPrimitive.Trigger\n ref={ref}\n className={cn(\n \"flex flex-1 cursor-pointer items-center gap-4 px-4.5 py-3.5 text-sm transition-all text-left [&[data-state=open]>svg]:rotate-90 active:opacity-50 data-disabled:cursor-not-allowed\",\n className\n )}\n {...props}\n >\n <ChevronRight className=\"h-4 w-4 shrink-0 transition-transform duration-200 in-data-disabled:opacity-40\" />\n <span className=\"in-data-disabled:opacity-40\">{children}</span>\n {aside && <span className=\"ml-auto\">{aside}</span>}\n </AccordionPrimitive.Trigger>\n </AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n React.ElementRef<typeof AccordionPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content> & {\n description?: React.ReactNode\n }\n>(({ className, children, description, ...props }, ref) => (\n <AccordionPrimitive.Content\n ref={ref}\n className=\"overflow-hidden text-sm data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n {...props}\n >\n {description && (\n <>\n <div className=\"pl-12.5 pr-4.5 pb-3 text-sm text-secondary-text\">\n {description}\n </div>\n <div className=\"border-t border-border\" />\n </>\n )}\n\n <div className={cn(\"px-4.5 pb-4 pt-3\", className)}>{children}</div>\n </AccordionPrimitive.Content>\n))\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionItem, AccordionTrigger, AccordionContent }\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAwB,4BACpC,OAAS,gBAAAC,MAAoB,eAE7B,OAAS,OAAAC,MAA8B,2BAoBrC,OAwDI,YAAAC,EAxDJ,OAAAC,EA4BE,QAAAC,MA5BF,oBAhBF,IAAMC,EAAwBC,EAAI,cAAe,CAC/C,SAAU,CACR,QAAS,CACP,QAAS,qCACT,MAAO,EACT,CACF,EACA,gBAAiB,CACf,QAAS,SACX,CACF,CAAC,EAEKC,EAAkB,aAGtB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC1BP,EAAoB,OAAnB,CACC,IAAKO,EACL,UAAWC,EAAG,sBAAuBH,CAAS,EAC7C,GAAGC,EACN,CACD,EACDF,EAAU,YAAc,YAExB,IAAMK,EAAsB,aAI1B,CAAC,CAAE,UAAAJ,EAAW,QAAAK,EAAS,GAAGJ,CAAM,EAAGC,IACnCP,EAAoB,OAAnB,CACC,IAAKO,EACL,UAAWC,EAAGN,EAAsB,CAAE,QAAAQ,CAAQ,CAAC,EAAGL,CAAS,EAC1D,GAAGC,EACN,CACD,EACDG,EAAc,YAAc,gBAE5B,IAAME,EAAyB,aAK7B,CAAC,CAAE,UAAAN,EAAW,SAAAO,EAAU,MAAAC,EAAO,GAAGP,CAAM,EAAGC,IAC3CP,EAAoB,SAAnB,CAA0B,UAAU,OACnC,SAAAC,EAAoB,UAAnB,CACC,IAAKM,EACL,UAAWC,EACT,qLACAH,CACF,EACC,GAAGC,EAEJ,UAAAN,EAACc,EAAA,CAAa,UAAU,iFAAiF,EACzGd,EAAC,QAAK,UAAU,8BAA+B,SAAAY,EAAS,EACvDC,GAASb,EAAC,QAAK,UAAU,UAAW,SAAAa,EAAM,GAC7C,EACF,CACD,EACDF,EAAiB,YAAiC,UAAQ,YAE1D,IAAMI,EAAyB,aAK7B,CAAC,CAAE,UAAAV,EAAW,SAAAO,EAAU,YAAAI,EAAa,GAAGV,CAAM,EAAGC,IACjDN,EAAoB,UAAnB,CACC,IAAKM,EACL,UAAU,4GACT,GAAGD,EAEH,UAAAU,GACCf,EAAAF,EAAA,CACE,UAAAC,EAAC,OAAI,UAAU,kDACZ,SAAAgB,EACH,EACAhB,EAAC,OAAI,UAAU,yBAAyB,GAC1C,EAGFA,EAAC,OAAI,UAAWQ,EAAG,mBAAoBH,CAAS,EAAI,SAAAO,EAAS,GAC/D,CACD,EACDG,EAAiB,YAAiC,UAAQ","names":["React","AccordionPrimitive","ChevronRight","cva","Fragment","jsx","jsxs","accordionItemVariants","cva","Accordion","className","props","ref","cn","AccordionItem","variant","AccordionTrigger","children","aside","ChevronRight","AccordionContent","description"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import{a as z}from"./chunk-NKELJSLY.mjs";import{a as j,b as U,c as X}from"./chunk-FZ3NXOFK.mjs";import{a as E}from"./chunk-S5TKCF6T.mjs";import*as i from"react";import{Check as ne,ChevronDown as G,ChevronRight as ae,Search as se,X as ce}from"lucide-react";import{Fragment as ie,jsx as o,jsxs as x}from"react/jsx-runtime";function M(e){let n=[e.value];if(e.children)for(let a of e.children)n.push(...M(a));return n}function $(e,n){if(!e.children||e.children.length===0)return n.has(e.value)?"checked":"unchecked";let a=M(e),r=a.filter(l=>n.has(l)).length;return r===0?"unchecked":r===a.length?"checked":"indeterminate"}function J(e,n){let a=n.toLowerCase().trim();if(!a)return e;let r=[];for(let l of e){let f=l.label.toLowerCase().includes(a);if(l.children&&l.children.length>0){let h=J(l.children,n);f?r.push(l):h&&h.length>0&&r.push({...l,children:h})}else f&&r.push(l)}return r.length>0?r:null}function le(e,n){let a=n.toLowerCase().trim(),r=new Set;function l(f){let h=!1;for(let g of f){let w=g.label.toLowerCase().includes(a),S=!1;g.children&&(S=l(g.children)),(w||S)&&(r.add(g.value),h=!0)}return h}return l(e),r}function N(e,n){for(let a of e){if(a.value===n)return a;if(a.children){let r=N(a.children,n);if(r)return r}}}function Q(e){let n=new Set;for(let a of e)if(a.children&&a.children.length>0){n.add(a.value);for(let r of Q(a.children))n.add(r)}return n}function oe(e,n){if(!n)return e;let a=n.toLowerCase().trim();if(!a)return e;let r=e.toLowerCase().indexOf(a);return r===-1?e:x(ie,{children:[e.slice(0,r),o("span",{className:"font-semibold underline",children:e.slice(r,r+a.length)}),e.slice(r+a.length)]})}function W({node:e,depth:n,multiple:a,selectedSet:r,expandedValues:l,focusedValue:f,onToggleExpand:h,onSelect:g,onFocus:w,searchTerm:S}){let V=e.children&&e.children.length>0,y=l.has(e.value),v=a?$(e,r):r.has(e.value)?"checked":"unchecked",A=n*20;return x("div",{role:"treeitem","aria-expanded":V?y:void 0,"aria-selected":v==="checked",children:[x("div",{className:E("relative flex items-center gap-2 rounded-sm px-2 py-1.5 my-0.5 text-sm cursor-pointer select-none outline-none active:opacity-50","hover:bg-muted",v==="checked"&&!a&&"bg-muted"),style:{paddingLeft:`${8+A}px`},onClick:()=>g(e),onFocus:()=>w(e.value),"data-tree-value":e.value,tabIndex:f===e.value?0:-1,children:[V?o("button",{type:"button",className:"h-4 w-4 shrink-0 flex items-center justify-center rounded-sm hover:bg-secondary active:opacity-50",onClick:m=>{m.stopPropagation(),h(e.value)},"aria-label":y?`Collapse ${e.label}`:`Expand ${e.label}`,tabIndex:-1,children:y?o(G,{className:"h-3.5 w-3.5"}):o(ae,{className:"h-3.5 w-3.5"})}):o("span",{className:"h-4 w-4 shrink-0"}),a?o(z,{checked:v==="checked"?!0:v==="indeterminate"?"indeterminate":!1,onCheckedChange:()=>g(e),onClick:m=>m.stopPropagation(),className:"shrink-0","aria-label":e.label}):o(ne,{className:E("h-4 w-4 shrink-0",v==="checked"?"opacity-100":"opacity-0")}),o("span",{className:"truncate",children:oe(e.label,S)})]}),V&&y&&o("div",{role:"group",children:e.children.map(m=>o(W,{node:m,depth:n+1,multiple:a,selectedSet:r,expandedValues:l,focusedValue:f,onToggleExpand:h,onSelect:g,onFocus:w,searchTerm:S},m.value))})]})}function ge({nodes:e,value:n,onValueChange:a,multiple:r=!1,values:l=[],onValuesChange:f,placeholder:h="Select...",searchPlaceholder:g="Search...",emptyMessage:w="No results found.",disabled:S=!1,className:V,error:y=!1,defaultExpandedValues:v,expandAll:A=!1}){let[m,B]=i.useState(!1),[b,K]=i.useState(""),[p,k]=i.useState(null),[D,L]=i.useState(()=>A?Q(e):v?new Set(v):new Set),P=i.useRef(null),I=i.useRef(null),C=i.useMemo(()=>new Set(r?l:n?[n]:[]),[r,l,n]),F=i.useMemo(()=>b?J(e,b):e,[e,b]);i.useEffect(()=>{if(b){P.current||(P.current=new Set(D));let t=le(e,b);L(t)}else P.current&&(L(P.current),P.current=null)},[b,e]);let Y=i.useCallback(t=>{B(t),t||(K(""),k(null))},[]),T=i.useCallback(t=>{L(s=>{let d=new Set(s);return d.has(t)?d.delete(t):d.add(t),d})},[]),H=i.useCallback(t=>{if(r){let s=M(t),d=$(t,C),c;if(d==="checked"){let u=new Set(s);c=l.filter(R=>!u.has(R))}else{let u=s.filter(R=>!C.has(R));c=[...l,...u]}f?.(c)}else{if(t.children&&t.children.length>0){T(t.value);return}let d=t.value===n?"":t.value;a?.(d),B(!1)}},[r,l,n,C,f,a,T]),Z=i.useCallback((t,s)=>{s.preventDefault(),s.stopPropagation();let d=N(e,t);if(d){let c=new Set(M(d)),u=l.filter(R=>!c.has(R));f?.(u)}},[e,l,f]),q=i.useMemo(()=>{if(!r)return[];let t=[];function s(d){for(let c of d){let u=$(c,C);u==="checked"?t.push(c.value):u==="indeterminate"&&c.children&&s(c.children)}}return s(e),t},[e,C,r]),O=i.useCallback(()=>I.current?Array.from(I.current.querySelectorAll("[data-tree-value]")):[],[]),_=i.useCallback(t=>{let s=O(),d=s.findIndex(c=>c.dataset.treeValue===p);switch(t.key){case"ArrowDown":{t.preventDefault();let c=Math.min(d+1,s.length-1),u=s[c]?.dataset.treeValue;u&&(k(u),s[c]?.focus());break}case"ArrowUp":{t.preventDefault();let c=Math.max(d-1,0),u=s[c]?.dataset.treeValue;u&&(k(u),s[c]?.focus());break}case"ArrowRight":{if(t.preventDefault(),p){let c=N(e,p);if(c?.children?.length)if(!D.has(p))T(p);else{let u=c.children[0].value;k(u),requestAnimationFrame(()=>{O().find(re=>re.dataset.treeValue===u)?.focus()})}}break}case"ArrowLeft":{t.preventDefault(),p&&D.has(p)&&T(p);break}case"Enter":case" ":{if(t.preventDefault(),p){let c=N(e,p);c&&H(c)}break}case"Home":{t.preventDefault();let c=s[0]?.dataset.treeValue;c&&(k(c),s[0]?.focus());break}case"End":{t.preventDefault();let c=s[s.length-1]?.dataset.treeValue;c&&(k(c),s[s.length-1]?.focus());break}}},[p,e,D,O,T,H]),ee=()=>r?l.length===0?h:l.length===1?N(e,l[0])?.label??l[0]:`${l.length} selected`:n?N(e,n)?.label??n:h,te=()=>{if(!r||q.length===0)return null;let t=q.map(s=>N(e,s)).filter(Boolean);return o("div",{className:"max-h-[100px] overflow-y-auto px-2 py-1.5 border-b border-border",children:o("div",{className:"flex flex-wrap gap-1",children:t.map(s=>x("div",{className:"inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs",children:[o("span",{className:"truncate max-w-[120px]",children:s.label}),o(ce,{className:"h-3 w-3 cursor-pointer shrink-0",onClick:d=>Z(s.value,d),"aria-label":`Remove ${s.label}`})]},s.value))})})};return x(j,{open:m,onOpenChange:Y,children:[o(U,{asChild:!0,children:x("button",{type:"button",role:"combobox","aria-expanded":m,"aria-haspopup":"tree",disabled:S,className:E("cursor-pointer flex my-2 h-9 w-full items-center justify-between 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 active:opacity-50 disabled:cursor-not-allowed disabled:opacity-50",!n&&!l.length&&"text-secondary-text",y&&"border-destructive-foreground focus-visible:ring-destructive-foreground",V),children:[o("span",{className:"truncate",children:ee()}),o(G,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),x(X,{className:"p-0",align:"start",style:{width:"var(--radix-popover-trigger-width)"},children:[x("div",{className:"flex items-center border-b px-3",children:[o(se,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),o("input",{value:b,onChange:t=>K(t.target.value),placeholder:g,className:"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50","aria-label":"Search tree"})]}),te(),o("div",{className:"max-h-[300px] overflow-y-auto",children:F&&F.length>0?o("div",{ref:I,role:"tree","aria-label":"Options",className:"p-1",onKeyDown:_,children:F.map(t=>o(W,{node:t,depth:0,multiple:r,selectedSet:C,expandedValues:D,focusedValue:p,onToggleExpand:T,onSelect:H,onFocus:k,searchTerm:b},t.value))}):o("div",{className:"py-6 text-center text-sm text-muted-foreground",children:w})})]})]})}export{ge as a};
|
|
3
|
+
//# sourceMappingURL=chunk-574USYNO.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tree-select.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Check, ChevronDown, ChevronRight, Search, X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Checkbox } from \"@/components/checkbox\"\nimport { Popover, PopoverContent, PopoverTrigger } from \"@/components/popover\"\n\n// --- Public types ---\n\nexport interface TreeSelectNode {\n value: string\n label: string\n children?: TreeSelectNode[]\n}\n\nexport interface TreeSelectProps {\n nodes: TreeSelectNode[]\n value?: string\n onValueChange?: (value: string) => void\n multiple?: boolean\n values?: string[]\n onValuesChange?: (values: string[]) => void\n placeholder?: string\n searchPlaceholder?: string\n emptyMessage?: string\n disabled?: boolean\n className?: string\n error?: boolean\n defaultExpandedValues?: string[]\n expandAll?: boolean\n}\n\n// --- Internal types ---\n\ntype CheckState = \"checked\" | \"indeterminate\" | \"unchecked\"\n\n// --- Utility functions ---\n\nfunction getAllDescendantValues(node: TreeSelectNode): string[] {\n const values: string[] = [node.value]\n if (node.children) {\n for (const child of node.children) {\n values.push(...getAllDescendantValues(child))\n }\n }\n return values\n}\n\nfunction getCheckState(\n node: TreeSelectNode,\n selectedSet: Set<string>\n): CheckState {\n if (!node.children || node.children.length === 0) {\n return selectedSet.has(node.value) ? \"checked\" : \"unchecked\"\n }\n\n const descendants = getAllDescendantValues(node)\n const selectedCount = descendants.filter((v) => selectedSet.has(v)).length\n\n if (selectedCount === 0) return \"unchecked\"\n if (selectedCount === descendants.length) return \"checked\"\n return \"indeterminate\"\n}\n\nfunction filterTree(\n nodes: TreeSelectNode[],\n searchTerm: string\n): TreeSelectNode[] | null {\n const term = searchTerm.toLowerCase().trim()\n if (!term) return nodes\n\n const result: TreeSelectNode[] = []\n\n for (const node of nodes) {\n const labelMatches = node.label.toLowerCase().includes(term)\n\n if (node.children && node.children.length > 0) {\n const filteredChildren = filterTree(node.children, searchTerm)\n\n if (labelMatches) {\n result.push(node)\n } else if (filteredChildren && filteredChildren.length > 0) {\n result.push({ ...node, children: filteredChildren })\n }\n } else if (labelMatches) {\n result.push(node)\n }\n }\n\n return result.length > 0 ? result : null\n}\n\nfunction getValuesOfMatchingNodes(\n nodes: TreeSelectNode[],\n searchTerm: string\n): Set<string> {\n const term = searchTerm.toLowerCase().trim()\n const result = new Set<string>()\n\n function walk(nodeList: TreeSelectNode[]): boolean {\n let hasMatch = false\n for (const node of nodeList) {\n const labelMatches = node.label.toLowerCase().includes(term)\n let childHasMatch = false\n\n if (node.children) {\n childHasMatch = walk(node.children)\n }\n\n if (labelMatches || childHasMatch) {\n result.add(node.value)\n hasMatch = true\n }\n }\n return hasMatch\n }\n\n walk(nodes)\n return result\n}\n\nfunction findNodeByValue(\n nodes: TreeSelectNode[],\n value: string\n): TreeSelectNode | undefined {\n for (const node of nodes) {\n if (node.value === value) return node\n if (node.children) {\n const found = findNodeByValue(node.children, value)\n if (found) return found\n }\n }\n return undefined\n}\n\nfunction collectAllBranchValues(nodes: TreeSelectNode[]): Set<string> {\n const result = new Set<string>()\n for (const node of nodes) {\n if (node.children && node.children.length > 0) {\n result.add(node.value)\n for (const v of collectAllBranchValues(node.children)) {\n result.add(v)\n }\n }\n }\n return result\n}\n\nfunction renderHighlightedLabel(\n label: string,\n searchTerm: string\n): React.ReactNode {\n if (!searchTerm) return label\n\n const term = searchTerm.toLowerCase().trim()\n if (!term) return label\n\n const index = label.toLowerCase().indexOf(term)\n if (index === -1) return label\n\n return (\n <>\n {label.slice(0, index)}\n <span className=\"font-semibold underline\">\n {label.slice(index, index + term.length)}\n </span>\n {label.slice(index + term.length)}\n </>\n )\n}\n\n// --- TreeNodeItem (internal) ---\n\ninterface TreeNodeItemProps {\n node: TreeSelectNode\n depth: number\n multiple: boolean\n selectedSet: Set<string>\n expandedValues: Set<string>\n focusedValue: string | null\n onToggleExpand: (value: string) => void\n onSelect: (node: TreeSelectNode) => void\n onFocus: (value: string) => void\n searchTerm: string\n}\n\nfunction TreeNodeItem({\n node,\n depth,\n multiple,\n selectedSet,\n expandedValues,\n focusedValue,\n onToggleExpand,\n onSelect,\n onFocus,\n searchTerm,\n}: TreeNodeItemProps) {\n const hasChildren = node.children && node.children.length > 0\n const isExpanded = expandedValues.has(node.value)\n const checkState = multiple\n ? getCheckState(node, selectedSet)\n : selectedSet.has(node.value)\n ? \"checked\"\n : \"unchecked\"\n\n const indentPx = depth * 20\n\n return (\n <div\n role=\"treeitem\"\n aria-expanded={hasChildren ? isExpanded : undefined}\n aria-selected={checkState === \"checked\"}\n >\n <div\n className={cn(\n \"relative flex items-center gap-2 rounded-sm px-2 py-1.5 my-0.5 text-sm cursor-pointer select-none outline-none active:opacity-50\",\n \"hover:bg-muted\",\n checkState === \"checked\" && !multiple && \"bg-muted\"\n // This adds a focus ring when the node is focused, but it's not needed for the tree-select component.\n // focusedValue === node.value && \"z-10 ring-2 ring-ring\"\n )}\n style={{ paddingLeft: `${8 + indentPx}px` }}\n onClick={() => onSelect(node)}\n onFocus={() => onFocus(node.value)}\n data-tree-value={node.value}\n tabIndex={focusedValue === node.value ? 0 : -1}\n >\n {hasChildren ? (\n <button\n type=\"button\"\n className=\"h-4 w-4 shrink-0 flex items-center justify-center rounded-sm hover:bg-secondary active:opacity-50\"\n onClick={(e) => {\n e.stopPropagation()\n onToggleExpand(node.value)\n }}\n aria-label={\n isExpanded ? `Collapse ${node.label}` : `Expand ${node.label}`\n }\n tabIndex={-1}\n >\n {isExpanded ? (\n <ChevronDown className=\"h-3.5 w-3.5\" />\n ) : (\n <ChevronRight className=\"h-3.5 w-3.5\" />\n )}\n </button>\n ) : (\n <span className=\"h-4 w-4 shrink-0\" />\n )}\n\n {multiple ? (\n <Checkbox\n checked={\n checkState === \"checked\"\n ? true\n : checkState === \"indeterminate\"\n ? \"indeterminate\"\n : false\n }\n onCheckedChange={() => onSelect(node)}\n onClick={(e) => e.stopPropagation()}\n className=\"shrink-0\"\n aria-label={node.label}\n />\n ) : (\n <Check\n className={cn(\n \"h-4 w-4 shrink-0\",\n checkState === \"checked\" ? \"opacity-100\" : \"opacity-0\"\n )}\n />\n )}\n\n <span className=\"truncate\">\n {renderHighlightedLabel(node.label, searchTerm)}\n </span>\n </div>\n\n {hasChildren && isExpanded && (\n <div role=\"group\">\n {node.children!.map((child) => (\n <TreeNodeItem\n key={child.value}\n node={child}\n depth={depth + 1}\n multiple={multiple}\n selectedSet={selectedSet}\n expandedValues={expandedValues}\n focusedValue={focusedValue}\n onToggleExpand={onToggleExpand}\n onSelect={onSelect}\n onFocus={onFocus}\n searchTerm={searchTerm}\n />\n ))}\n </div>\n )}\n </div>\n )\n}\n\n// --- TreeSelect (main component) ---\n\nexport function TreeSelect({\n nodes,\n value,\n onValueChange,\n multiple = false,\n values = [],\n onValuesChange,\n placeholder = \"Select...\",\n searchPlaceholder = \"Search...\",\n emptyMessage = \"No results found.\",\n disabled = false,\n className,\n error = false,\n defaultExpandedValues,\n expandAll = false,\n}: TreeSelectProps) {\n const [open, setOpen] = React.useState(false)\n const [searchTerm, setSearchTerm] = React.useState(\"\")\n const [focusedValue, setFocusedValue] = React.useState<string | null>(null)\n const [expandedValues, setExpandedValues] = React.useState<Set<string>>(\n () => {\n if (expandAll) return collectAllBranchValues(nodes)\n if (defaultExpandedValues) return new Set(defaultExpandedValues)\n return new Set<string>()\n }\n )\n\n const preSearchExpandedRef = React.useRef<Set<string> | null>(null)\n const treeRef = React.useRef<HTMLDivElement>(null)\n\n const selectedSet = React.useMemo(\n () => new Set(multiple ? values : value ? [value] : []),\n [multiple, values, value]\n )\n\n const filteredNodes = React.useMemo(\n () => (searchTerm ? filterTree(nodes, searchTerm) : nodes),\n [nodes, searchTerm]\n )\n\n // Auto-expand matching ancestors during search\n React.useEffect(() => {\n if (searchTerm) {\n if (!preSearchExpandedRef.current) {\n preSearchExpandedRef.current = new Set(expandedValues)\n }\n const matchingAncestors = getValuesOfMatchingNodes(nodes, searchTerm)\n setExpandedValues(matchingAncestors)\n } else if (preSearchExpandedRef.current) {\n setExpandedValues(preSearchExpandedRef.current)\n preSearchExpandedRef.current = null\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [searchTerm, nodes])\n\n const handleOpenChange = React.useCallback((isOpen: boolean) => {\n setOpen(isOpen)\n if (!isOpen) {\n setSearchTerm(\"\")\n setFocusedValue(null)\n }\n }, [])\n\n const handleToggleExpand = React.useCallback((nodeValue: string) => {\n setExpandedValues((prev) => {\n const next = new Set(prev)\n if (next.has(nodeValue)) {\n next.delete(nodeValue)\n } else {\n next.add(nodeValue)\n }\n return next\n })\n }, [])\n\n const handleSelect = React.useCallback(\n (node: TreeSelectNode) => {\n if (multiple) {\n const allDescendants = getAllDescendantValues(node)\n const currentState = getCheckState(node, selectedSet)\n\n let newValues: string[]\n if (currentState === \"checked\") {\n const toRemove = new Set(allDescendants)\n newValues = values.filter((v) => !toRemove.has(v))\n } else {\n const toAdd = allDescendants.filter((v) => !selectedSet.has(v))\n newValues = [...values, ...toAdd]\n }\n onValuesChange?.(newValues)\n } else {\n // Single-select: clicking a parent toggles expand instead of selecting\n const hasChildren = node.children && node.children.length > 0\n if (hasChildren) {\n handleToggleExpand(node.value)\n return\n }\n const newValue = node.value === value ? \"\" : node.value\n onValueChange?.(newValue)\n setOpen(false)\n }\n },\n [\n multiple,\n values,\n value,\n selectedSet,\n onValuesChange,\n onValueChange,\n handleToggleExpand,\n ]\n )\n\n const handleRemoveChip = React.useCallback(\n (chipValue: string, e: React.MouseEvent) => {\n e.preventDefault()\n e.stopPropagation()\n const node = findNodeByValue(nodes, chipValue)\n if (node) {\n const toRemove = new Set(getAllDescendantValues(node))\n const newValues = values.filter((v) => !toRemove.has(v))\n onValuesChange?.(newValues)\n }\n },\n [nodes, values, onValuesChange]\n )\n\n // Smart chips: minimal set representing the selection\n const chipValues = React.useMemo(() => {\n if (!multiple) return []\n\n const chips: string[] = []\n\n function walk(nodeList: TreeSelectNode[]) {\n for (const node of nodeList) {\n const state = getCheckState(node, selectedSet)\n if (state === \"checked\") {\n chips.push(node.value)\n } else if (state === \"indeterminate\" && node.children) {\n walk(node.children)\n }\n }\n }\n\n walk(nodes)\n return chips\n }, [nodes, selectedSet, multiple])\n\n // Keyboard navigation\n const getVisibleNodes = React.useCallback((): HTMLElement[] => {\n if (!treeRef.current) return []\n return Array.from(treeRef.current.querySelectorAll(\"[data-tree-value]\"))\n }, [])\n\n const handleTreeKeyDown = React.useCallback(\n (e: React.KeyboardEvent) => {\n const visibleNodes = getVisibleNodes()\n const currentIndex = visibleNodes.findIndex(\n (el) => el.dataset.treeValue === focusedValue\n )\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault()\n const nextIndex = Math.min(currentIndex + 1, visibleNodes.length - 1)\n const nextValue = visibleNodes[nextIndex]?.dataset.treeValue\n if (nextValue) {\n setFocusedValue(nextValue)\n visibleNodes[nextIndex]?.focus()\n }\n break\n }\n case \"ArrowUp\": {\n e.preventDefault()\n const prevIndex = Math.max(currentIndex - 1, 0)\n const prevValue = visibleNodes[prevIndex]?.dataset.treeValue\n if (prevValue) {\n setFocusedValue(prevValue)\n visibleNodes[prevIndex]?.focus()\n }\n break\n }\n case \"ArrowRight\": {\n e.preventDefault()\n if (focusedValue) {\n const node = findNodeByValue(nodes, focusedValue)\n if (node?.children?.length) {\n if (!expandedValues.has(focusedValue)) {\n handleToggleExpand(focusedValue)\n } else {\n const firstChildValue = node.children[0].value\n setFocusedValue(firstChildValue)\n requestAnimationFrame(() => {\n const els = getVisibleNodes()\n const el = els.find(\n (n) => n.dataset.treeValue === firstChildValue\n )\n el?.focus()\n })\n }\n }\n }\n break\n }\n case \"ArrowLeft\": {\n e.preventDefault()\n if (focusedValue && expandedValues.has(focusedValue)) {\n handleToggleExpand(focusedValue)\n }\n break\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault()\n if (focusedValue) {\n const node = findNodeByValue(nodes, focusedValue)\n if (node) handleSelect(node)\n }\n break\n }\n case \"Home\": {\n e.preventDefault()\n const firstValue = visibleNodes[0]?.dataset.treeValue\n if (firstValue) {\n setFocusedValue(firstValue)\n visibleNodes[0]?.focus()\n }\n break\n }\n case \"End\": {\n e.preventDefault()\n const lastValue =\n visibleNodes[visibleNodes.length - 1]?.dataset.treeValue\n if (lastValue) {\n setFocusedValue(lastValue)\n visibleNodes[visibleNodes.length - 1]?.focus()\n }\n break\n }\n }\n },\n [\n focusedValue,\n nodes,\n expandedValues,\n getVisibleNodes,\n handleToggleExpand,\n handleSelect,\n ]\n )\n\n const getDisplayText = () => {\n if (multiple) {\n if (values.length === 0) return placeholder\n if (values.length === 1) {\n const node = findNodeByValue(nodes, values[0])\n return node?.label ?? values[0]\n }\n return `${values.length} selected`\n }\n if (value) {\n const node = findNodeByValue(nodes, value)\n return node?.label ?? value\n }\n return placeholder\n }\n\n const renderSelectedChips = () => {\n if (!multiple || chipValues.length === 0) return null\n\n const chipNodes = chipValues\n .map((v) => findNodeByValue(nodes, v))\n .filter(Boolean) as TreeSelectNode[]\n\n return (\n <div className=\"max-h-[100px] overflow-y-auto px-2 py-1.5 border-b border-border\">\n <div className=\"flex flex-wrap gap-1\">\n {chipNodes.map((node) => (\n <div\n key={node.value}\n className=\"inline-flex items-center gap-1 rounded-md bg-secondary px-2 py-0.5 text-xs\"\n >\n <span className=\"truncate max-w-[120px]\">{node.label}</span>\n <X\n className=\"h-3 w-3 cursor-pointer shrink-0\"\n onClick={(e) => handleRemoveChip(node.value, e)}\n aria-label={`Remove ${node.label}`}\n />\n </div>\n ))}\n </div>\n </div>\n )\n }\n\n return (\n <Popover open={open} onOpenChange={handleOpenChange}>\n <PopoverTrigger asChild>\n <button\n type=\"button\"\n role=\"combobox\"\n aria-expanded={open}\n aria-haspopup=\"tree\"\n disabled={disabled}\n className={cn(\n \"cursor-pointer flex my-2 h-9 w-full items-center justify-between 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 active:opacity-50 disabled:cursor-not-allowed disabled:opacity-50\",\n !value && !values.length && \"text-secondary-text\",\n error &&\n \"border-destructive-foreground focus-visible:ring-destructive-foreground\",\n className\n )}\n >\n <span className=\"truncate\">{getDisplayText()}</span>\n <ChevronDown className=\"ml-2 h-4 w-4 shrink-0 opacity-50\" />\n </button>\n </PopoverTrigger>\n <PopoverContent\n className=\"p-0\"\n align=\"start\"\n style={{ width: \"var(--radix-popover-trigger-width)\" }}\n >\n <div className=\"flex items-center border-b px-3\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <input\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\"\n aria-label=\"Search tree\"\n />\n </div>\n\n {renderSelectedChips()}\n\n <div className=\"max-h-[300px] overflow-y-auto\">\n {filteredNodes && filteredNodes.length > 0 ? (\n <div\n ref={treeRef}\n role=\"tree\"\n aria-label=\"Options\"\n className=\"p-1\"\n onKeyDown={handleTreeKeyDown}\n >\n {filteredNodes.map((node) => (\n <TreeNodeItem\n key={node.value}\n node={node}\n depth={0}\n multiple={multiple}\n selectedSet={selectedSet}\n expandedValues={expandedValues}\n focusedValue={focusedValue}\n onToggleExpand={handleToggleExpand}\n onSelect={handleSelect}\n onFocus={setFocusedValue}\n searchTerm={searchTerm}\n />\n ))}\n </div>\n ) : (\n <div className=\"py-6 text-center text-sm text-muted-foreground\">\n {emptyMessage}\n </div>\n )}\n </div>\n </PopoverContent>\n </Popover>\n )\n}\n"],"mappings":";yIAEA,UAAYA,MAAW,QACvB,OAAS,SAAAC,GAAO,eAAAC,EAAa,gBAAAC,GAAc,UAAAC,GAAQ,KAAAC,OAAS,eAgKxD,mBAAAC,GAEE,OAAAC,EAFF,QAAAC,MAAA,oBA3HJ,SAASC,EAAuBC,EAAgC,CAC9D,IAAMC,EAAmB,CAACD,EAAK,KAAK,EACpC,GAAIA,EAAK,SACP,QAAWE,KAASF,EAAK,SACvBC,EAAO,KAAK,GAAGF,EAAuBG,CAAK,CAAC,EAGhD,OAAOD,CACT,CAEA,SAASE,EACPH,EACAI,EACY,CACZ,GAAI,CAACJ,EAAK,UAAYA,EAAK,SAAS,SAAW,EAC7C,OAAOI,EAAY,IAAIJ,EAAK,KAAK,EAAI,UAAY,YAGnD,IAAMK,EAAcN,EAAuBC,CAAI,EACzCM,EAAgBD,EAAY,OAAQE,GAAMH,EAAY,IAAIG,CAAC,CAAC,EAAE,OAEpE,OAAID,IAAkB,EAAU,YAC5BA,IAAkBD,EAAY,OAAe,UAC1C,eACT,CAEA,SAASG,EACPC,EACAC,EACyB,CACzB,IAAMC,EAAOD,EAAW,YAAY,EAAE,KAAK,EAC3C,GAAI,CAACC,EAAM,OAAOF,EAElB,IAAMG,EAA2B,CAAC,EAElC,QAAWZ,KAAQS,EAAO,CACxB,IAAMI,EAAeb,EAAK,MAAM,YAAY,EAAE,SAASW,CAAI,EAE3D,GAAIX,EAAK,UAAYA,EAAK,SAAS,OAAS,EAAG,CAC7C,IAAMc,EAAmBN,EAAWR,EAAK,SAAUU,CAAU,EAEzDG,EACFD,EAAO,KAAKZ,CAAI,EACPc,GAAoBA,EAAiB,OAAS,GACvDF,EAAO,KAAK,CAAE,GAAGZ,EAAM,SAAUc,CAAiB,CAAC,CAEvD,MAAWD,GACTD,EAAO,KAAKZ,CAAI,CAEpB,CAEA,OAAOY,EAAO,OAAS,EAAIA,EAAS,IACtC,CAEA,SAASG,GACPN,EACAC,EACa,CACb,IAAMC,EAAOD,EAAW,YAAY,EAAE,KAAK,EACrCE,EAAS,IAAI,IAEnB,SAASI,EAAKC,EAAqC,CACjD,IAAIC,EAAW,GACf,QAAWlB,KAAQiB,EAAU,CAC3B,IAAMJ,EAAeb,EAAK,MAAM,YAAY,EAAE,SAASW,CAAI,EACvDQ,EAAgB,GAEhBnB,EAAK,WACPmB,EAAgBH,EAAKhB,EAAK,QAAQ,IAGhCa,GAAgBM,KAClBP,EAAO,IAAIZ,EAAK,KAAK,EACrBkB,EAAW,GAEf,CACA,OAAOA,CACT,CAEA,OAAAF,EAAKP,CAAK,EACHG,CACT,CAEA,SAASQ,EACPX,EACAY,EAC4B,CAC5B,QAAWrB,KAAQS,EAAO,CACxB,GAAIT,EAAK,QAAUqB,EAAO,OAAOrB,EACjC,GAAIA,EAAK,SAAU,CACjB,IAAMsB,EAAQF,EAAgBpB,EAAK,SAAUqB,CAAK,EAClD,GAAIC,EAAO,OAAOA,CACpB,CACF,CAEF,CAEA,SAASC,EAAuBd,EAAsC,CACpE,IAAMG,EAAS,IAAI,IACnB,QAAWZ,KAAQS,EACjB,GAAIT,EAAK,UAAYA,EAAK,SAAS,OAAS,EAAG,CAC7CY,EAAO,IAAIZ,EAAK,KAAK,EACrB,QAAWO,KAAKgB,EAAuBvB,EAAK,QAAQ,EAClDY,EAAO,IAAIL,CAAC,CAEhB,CAEF,OAAOK,CACT,CAEA,SAASY,GACPC,EACAf,EACiB,CACjB,GAAI,CAACA,EAAY,OAAOe,EAExB,IAAMd,EAAOD,EAAW,YAAY,EAAE,KAAK,EAC3C,GAAI,CAACC,EAAM,OAAOc,EAElB,IAAMC,EAAQD,EAAM,YAAY,EAAE,QAAQd,CAAI,EAC9C,OAAIe,IAAU,GAAWD,EAGvB3B,EAAAF,GAAA,CACG,UAAA6B,EAAM,MAAM,EAAGC,CAAK,EACrB7B,EAAC,QAAK,UAAU,0BACb,SAAA4B,EAAM,MAAMC,EAAOA,EAAQf,EAAK,MAAM,EACzC,EACCc,EAAM,MAAMC,EAAQf,EAAK,MAAM,GAClC,CAEJ,CAiBA,SAASgB,EAAa,CACpB,KAAA3B,EACA,MAAA4B,EACA,SAAAC,EACA,YAAAzB,EACA,eAAA0B,EACA,aAAAC,EACA,eAAAC,EACA,SAAAC,EACA,QAAAC,EACA,WAAAxB,CACF,EAAsB,CACpB,IAAMyB,EAAcnC,EAAK,UAAYA,EAAK,SAAS,OAAS,EACtDoC,EAAaN,EAAe,IAAI9B,EAAK,KAAK,EAC1CqC,EAAaR,EACf1B,EAAcH,EAAMI,CAAW,EAC/BA,EAAY,IAAIJ,EAAK,KAAK,EACxB,UACA,YAEAsC,EAAWV,EAAQ,GAEzB,OACE9B,EAAC,OACC,KAAK,WACL,gBAAeqC,EAAcC,EAAa,OAC1C,gBAAeC,IAAe,UAE9B,UAAAvC,EAAC,OACC,UAAWyC,EACT,mIACA,iBACAF,IAAe,WAAa,CAACR,GAAY,UAG3C,EACA,MAAO,CAAE,YAAa,GAAG,EAAIS,CAAQ,IAAK,EAC1C,QAAS,IAAML,EAASjC,CAAI,EAC5B,QAAS,IAAMkC,EAAQlC,EAAK,KAAK,EACjC,kBAAiBA,EAAK,MACtB,SAAU+B,IAAiB/B,EAAK,MAAQ,EAAI,GAE3C,UAAAmC,EACCtC,EAAC,UACC,KAAK,SACL,UAAU,oGACV,QAAU2C,GAAM,CACdA,EAAE,gBAAgB,EAClBR,EAAehC,EAAK,KAAK,CAC3B,EACA,aACEoC,EAAa,YAAYpC,EAAK,KAAK,GAAK,UAAUA,EAAK,KAAK,GAE9D,SAAU,GAET,SAAAoC,EACCvC,EAAC4C,EAAA,CAAY,UAAU,cAAc,EAErC5C,EAAC6C,GAAA,CAAa,UAAU,cAAc,EAE1C,EAEA7C,EAAC,QAAK,UAAU,mBAAmB,EAGpCgC,EACChC,EAAC8C,EAAA,CACC,QACEN,IAAe,UACX,GACAA,IAAe,gBACb,gBACA,GAER,gBAAiB,IAAMJ,EAASjC,CAAI,EACpC,QAAUwC,GAAMA,EAAE,gBAAgB,EAClC,UAAU,WACV,aAAYxC,EAAK,MACnB,EAEAH,EAAC+C,GAAA,CACC,UAAWL,EACT,mBACAF,IAAe,UAAY,cAAgB,WAC7C,EACF,EAGFxC,EAAC,QAAK,UAAU,WACb,SAAA2B,GAAuBxB,EAAK,MAAOU,CAAU,EAChD,GACF,EAECyB,GAAeC,GACdvC,EAAC,OAAI,KAAK,QACP,SAAAG,EAAK,SAAU,IAAKE,GACnBL,EAAC8B,EAAA,CAEC,KAAMzB,EACN,MAAO0B,EAAQ,EACf,SAAUC,EACV,YAAazB,EACb,eAAgB0B,EAChB,aAAcC,EACd,eAAgBC,EAChB,SAAUC,EACV,QAASC,EACT,WAAYxB,GAVPR,EAAM,KAWb,CACD,EACH,GAEJ,CAEJ,CAIO,SAAS2C,GAAW,CACzB,MAAApC,EACA,MAAAY,EACA,cAAAyB,EACA,SAAAjB,EAAW,GACX,OAAA5B,EAAS,CAAC,EACV,eAAA8C,EACA,YAAAC,EAAc,YACd,kBAAAC,EAAoB,YACpB,aAAAC,EAAe,oBACf,SAAAC,EAAW,GACX,UAAAC,EACA,MAAAC,EAAQ,GACR,sBAAAC,EACA,UAAAC,EAAY,EACd,EAAoB,CAClB,GAAM,CAACC,EAAMC,CAAO,EAAU,WAAS,EAAK,EACtC,CAAC/C,EAAYgD,CAAa,EAAU,WAAS,EAAE,EAC/C,CAAC3B,EAAc4B,CAAe,EAAU,WAAwB,IAAI,EACpE,CAAC7B,EAAgB8B,CAAiB,EAAU,WAChD,IACML,EAAkBhC,EAAuBd,CAAK,EAC9C6C,EAA8B,IAAI,IAAIA,CAAqB,EACxD,IAAI,GAEf,EAEMO,EAA6B,SAA2B,IAAI,EAC5DC,EAAgB,SAAuB,IAAI,EAE3C1D,EAAoB,UACxB,IAAM,IAAI,IAAIyB,EAAW5B,EAASoB,EAAQ,CAACA,CAAK,EAAI,CAAC,CAAC,EACtD,CAACQ,EAAU5B,EAAQoB,CAAK,CAC1B,EAEM0C,EAAsB,UAC1B,IAAOrD,EAAaF,EAAWC,EAAOC,CAAU,EAAID,EACpD,CAACA,EAAOC,CAAU,CACpB,EAGM,YAAU,IAAM,CACpB,GAAIA,EAAY,CACTmD,EAAqB,UACxBA,EAAqB,QAAU,IAAI,IAAI/B,CAAc,GAEvD,IAAMkC,EAAoBjD,GAAyBN,EAAOC,CAAU,EACpEkD,EAAkBI,CAAiB,CACrC,MAAWH,EAAqB,UAC9BD,EAAkBC,EAAqB,OAAO,EAC9CA,EAAqB,QAAU,KAGnC,EAAG,CAACnD,EAAYD,CAAK,CAAC,EAEtB,IAAMwD,EAAyB,cAAaC,GAAoB,CAC9DT,EAAQS,CAAM,EACTA,IACHR,EAAc,EAAE,EAChBC,EAAgB,IAAI,EAExB,EAAG,CAAC,CAAC,EAECQ,EAA2B,cAAaC,GAAsB,CAClER,EAAmBS,GAAS,CAC1B,IAAMC,EAAO,IAAI,IAAID,CAAI,EACzB,OAAIC,EAAK,IAAIF,CAAS,EACpBE,EAAK,OAAOF,CAAS,EAErBE,EAAK,IAAIF,CAAS,EAEbE,CACT,CAAC,CACH,EAAG,CAAC,CAAC,EAECC,EAAqB,cACxBvE,GAAyB,CACxB,GAAI6B,EAAU,CACZ,IAAM2C,EAAiBzE,EAAuBC,CAAI,EAC5CyE,EAAetE,EAAcH,EAAMI,CAAW,EAEhDsE,EACJ,GAAID,IAAiB,UAAW,CAC9B,IAAME,EAAW,IAAI,IAAIH,CAAc,EACvCE,EAAYzE,EAAO,OAAQM,GAAM,CAACoE,EAAS,IAAIpE,CAAC,CAAC,CACnD,KAAO,CACL,IAAMqE,EAAQJ,EAAe,OAAQjE,GAAM,CAACH,EAAY,IAAIG,CAAC,CAAC,EAC9DmE,EAAY,CAAC,GAAGzE,EAAQ,GAAG2E,CAAK,CAClC,CACA7B,IAAiB2B,CAAS,CAC5B,KAAO,CAGL,GADoB1E,EAAK,UAAYA,EAAK,SAAS,OAAS,EAC3C,CACfmE,EAAmBnE,EAAK,KAAK,EAC7B,MACF,CACA,IAAM6E,EAAW7E,EAAK,QAAUqB,EAAQ,GAAKrB,EAAK,MAClD8C,IAAgB+B,CAAQ,EACxBpB,EAAQ,EAAK,CACf,CACF,EACA,CACE5B,EACA5B,EACAoB,EACAjB,EACA2C,EACAD,EACAqB,CACF,CACF,EAEMW,EAAyB,cAC7B,CAACC,EAAmBvC,IAAwB,CAC1CA,EAAE,eAAe,EACjBA,EAAE,gBAAgB,EAClB,IAAMxC,EAAOoB,EAAgBX,EAAOsE,CAAS,EAC7C,GAAI/E,EAAM,CACR,IAAM2E,EAAW,IAAI,IAAI5E,EAAuBC,CAAI,CAAC,EAC/C0E,EAAYzE,EAAO,OAAQM,GAAM,CAACoE,EAAS,IAAIpE,CAAC,CAAC,EACvDwC,IAAiB2B,CAAS,CAC5B,CACF,EACA,CAACjE,EAAOR,EAAQ8C,CAAc,CAChC,EAGMiC,EAAmB,UAAQ,IAAM,CACrC,GAAI,CAACnD,EAAU,MAAO,CAAC,EAEvB,IAAMoD,EAAkB,CAAC,EAEzB,SAASjE,EAAKC,EAA4B,CACxC,QAAWjB,KAAQiB,EAAU,CAC3B,IAAMiE,EAAQ/E,EAAcH,EAAMI,CAAW,EACzC8E,IAAU,UACZD,EAAM,KAAKjF,EAAK,KAAK,EACZkF,IAAU,iBAAmBlF,EAAK,UAC3CgB,EAAKhB,EAAK,QAAQ,CAEtB,CACF,CAEA,OAAAgB,EAAKP,CAAK,EACHwE,CACT,EAAG,CAACxE,EAAOL,EAAayB,CAAQ,CAAC,EAG3BsD,EAAwB,cAAY,IACnCrB,EAAQ,QACN,MAAM,KAAKA,EAAQ,QAAQ,iBAAiB,mBAAmB,CAAC,EAD1C,CAAC,EAE7B,CAAC,CAAC,EAECsB,EAA0B,cAC7B5C,GAA2B,CAC1B,IAAM6C,EAAeF,EAAgB,EAC/BG,EAAeD,EAAa,UAC/BE,GAAOA,EAAG,QAAQ,YAAcxD,CACnC,EAEA,OAAQS,EAAE,IAAK,CACb,IAAK,YAAa,CAChBA,EAAE,eAAe,EACjB,IAAMgD,EAAY,KAAK,IAAIF,EAAe,EAAGD,EAAa,OAAS,CAAC,EAC9DI,EAAYJ,EAAaG,CAAS,GAAG,QAAQ,UAC/CC,IACF9B,EAAgB8B,CAAS,EACzBJ,EAAaG,CAAS,GAAG,MAAM,GAEjC,KACF,CACA,IAAK,UAAW,CACdhD,EAAE,eAAe,EACjB,IAAMkD,EAAY,KAAK,IAAIJ,EAAe,EAAG,CAAC,EACxCK,EAAYN,EAAaK,CAAS,GAAG,QAAQ,UAC/CC,IACFhC,EAAgBgC,CAAS,EACzBN,EAAaK,CAAS,GAAG,MAAM,GAEjC,KACF,CACA,IAAK,aAAc,CAEjB,GADAlD,EAAE,eAAe,EACbT,EAAc,CAChB,IAAM/B,EAAOoB,EAAgBX,EAAOsB,CAAY,EAChD,GAAI/B,GAAM,UAAU,OAClB,GAAI,CAAC8B,EAAe,IAAIC,CAAY,EAClCoC,EAAmBpC,CAAY,MAC1B,CACL,IAAM6D,EAAkB5F,EAAK,SAAS,CAAC,EAAE,MACzC2D,EAAgBiC,CAAe,EAC/B,sBAAsB,IAAM,CACdT,EAAgB,EACb,KACZU,IAAMA,GAAE,QAAQ,YAAcD,CACjC,GACI,MAAM,CACZ,CAAC,CACH,CAEJ,CACA,KACF,CACA,IAAK,YAAa,CAChBpD,EAAE,eAAe,EACbT,GAAgBD,EAAe,IAAIC,CAAY,GACjDoC,EAAmBpC,CAAY,EAEjC,KACF,CACA,IAAK,QACL,IAAK,IAAK,CAER,GADAS,EAAE,eAAe,EACbT,EAAc,CAChB,IAAM/B,EAAOoB,EAAgBX,EAAOsB,CAAY,EAC5C/B,GAAMuE,EAAavE,CAAI,CAC7B,CACA,KACF,CACA,IAAK,OAAQ,CACXwC,EAAE,eAAe,EACjB,IAAMsD,EAAaT,EAAa,CAAC,GAAG,QAAQ,UACxCS,IACFnC,EAAgBmC,CAAU,EAC1BT,EAAa,CAAC,GAAG,MAAM,GAEzB,KACF,CACA,IAAK,MAAO,CACV7C,EAAE,eAAe,EACjB,IAAMuD,EACJV,EAAaA,EAAa,OAAS,CAAC,GAAG,QAAQ,UAC7CU,IACFpC,EAAgBoC,CAAS,EACzBV,EAAaA,EAAa,OAAS,CAAC,GAAG,MAAM,GAE/C,KACF,CACF,CACF,EACA,CACEtD,EACAtB,EACAqB,EACAqD,EACAhB,EACAI,CACF,CACF,EAEMyB,GAAiB,IACjBnE,EACE5B,EAAO,SAAW,EAAU+C,EAC5B/C,EAAO,SAAW,EACPmB,EAAgBX,EAAOR,EAAO,CAAC,CAAC,GAChC,OAASA,EAAO,CAAC,EAEzB,GAAGA,EAAO,MAAM,YAErBoB,EACWD,EAAgBX,EAAOY,CAAK,GAC5B,OAASA,EAEjB2B,EAGHiD,GAAsB,IAAM,CAChC,GAAI,CAACpE,GAAYmD,EAAW,SAAW,EAAG,OAAO,KAEjD,IAAMkB,EAAYlB,EACf,IAAKzE,GAAMa,EAAgBX,EAAOF,CAAC,CAAC,EACpC,OAAO,OAAO,EAEjB,OACEV,EAAC,OAAI,UAAU,mEACb,SAAAA,EAAC,OAAI,UAAU,uBACZ,SAAAqG,EAAU,IAAKlG,GACdF,EAAC,OAEC,UAAU,6EAEV,UAAAD,EAAC,QAAK,UAAU,yBAA0B,SAAAG,EAAK,MAAM,EACrDH,EAACsG,GAAA,CACC,UAAU,kCACV,QAAU3D,GAAMsC,EAAiB9E,EAAK,MAAOwC,CAAC,EAC9C,aAAY,UAAUxC,EAAK,KAAK,GAClC,IARKA,EAAK,KASZ,CACD,EACH,EACF,CAEJ,EAEA,OACEF,EAACsG,EAAA,CAAQ,KAAM5C,EAAM,aAAcS,EACjC,UAAApE,EAACwG,EAAA,CAAe,QAAO,GACrB,SAAAvG,EAAC,UACC,KAAK,SACL,KAAK,WACL,gBAAe0D,EACf,gBAAc,OACd,SAAUL,EACV,UAAWZ,EACT,wWACA,CAAClB,GAAS,CAACpB,EAAO,QAAU,sBAC5BoD,GACE,0EACFD,CACF,EAEA,UAAAvD,EAAC,QAAK,UAAU,WAAY,SAAAmG,GAAe,EAAE,EAC7CnG,EAAC4C,EAAA,CAAY,UAAU,mCAAmC,GAC5D,EACF,EACA3C,EAACwG,EAAA,CACC,UAAU,MACV,MAAM,QACN,MAAO,CAAE,MAAO,oCAAqC,EAErD,UAAAxG,EAAC,OAAI,UAAU,kCACb,UAAAD,EAAC0G,GAAA,CAAO,UAAU,mCAAmC,EACrD1G,EAAC,SACC,MAAOa,EACP,SAAW8B,GAAMkB,EAAclB,EAAE,OAAO,KAAK,EAC7C,YAAaS,EACb,UAAU,yJACV,aAAW,cACb,GACF,EAECgD,GAAoB,EAErBpG,EAAC,OAAI,UAAU,gCACZ,SAAAkE,GAAiBA,EAAc,OAAS,EACvClE,EAAC,OACC,IAAKiE,EACL,KAAK,OACL,aAAW,UACX,UAAU,MACV,UAAWsB,EAEV,SAAArB,EAAc,IAAK/D,GAClBH,EAAC8B,EAAA,CAEC,KAAM3B,EACN,MAAO,EACP,SAAU6B,EACV,YAAazB,EACb,eAAgB0B,EAChB,aAAcC,EACd,eAAgBoC,EAChB,SAAUI,EACV,QAASZ,EACT,WAAYjD,GAVPV,EAAK,KAWZ,CACD,EACH,EAEAH,EAAC,OAAI,UAAU,iDACZ,SAAAqD,EACH,EAEJ,GACF,GACF,CAEJ","names":["React","Check","ChevronDown","ChevronRight","Search","X","Fragment","jsx","jsxs","getAllDescendantValues","node","values","child","getCheckState","selectedSet","descendants","selectedCount","v","filterTree","nodes","searchTerm","term","result","labelMatches","filteredChildren","getValuesOfMatchingNodes","walk","nodeList","hasMatch","childHasMatch","findNodeByValue","value","found","collectAllBranchValues","renderHighlightedLabel","label","index","TreeNodeItem","depth","multiple","expandedValues","focusedValue","onToggleExpand","onSelect","onFocus","hasChildren","isExpanded","checkState","indentPx","cn","e","ChevronDown","ChevronRight","Checkbox","Check","TreeSelect","onValueChange","onValuesChange","placeholder","searchPlaceholder","emptyMessage","disabled","className","error","defaultExpandedValues","expandAll","open","setOpen","setSearchTerm","setFocusedValue","setExpandedValues","preSearchExpandedRef","treeRef","filteredNodes","matchingAncestors","handleOpenChange","isOpen","handleToggleExpand","nodeValue","prev","next","handleSelect","allDescendants","currentState","newValues","toRemove","toAdd","newValue","handleRemoveChip","chipValue","chipValues","chips","state","getVisibleNodes","handleTreeKeyDown","visibleNodes","currentIndex","el","nextIndex","nextValue","prevIndex","prevValue","firstChildValue","n","firstValue","lastValue","getDisplayText","renderSelectedChips","chipNodes","X","Popover","PopoverTrigger","PopoverContent","Search"]}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true});"use client";
|
|
2
|
+
var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _jsxruntime = require('react/jsx-runtime');function d({className:t,...n}){return _jsxruntime.jsx.call(void 0, "div",{className:_chunkFUYXCJOQjs.a.call(void 0, "animate-pulse rounded-md bg-muted",t),...n})}exports.a = d;
|
|
3
|
+
//# sourceMappingURL=chunk-5L5DM2X5.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-5L5DM2X5.js","../src/components/skeleton.tsx"],"names":["Skeleton","className","props","jsx","cn"],"mappings":"AAAA,qFAAY;AACZ,sDAAuC,+CCMnC,SALKA,CAAAA,CAAS,CAChB,SAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAyC,CACvC,OACEC,6BAAAA,KAAC,CAAA,CACC,SAAA,CAAWC,gCAAAA,mCAAG,CAAqCH,CAAS,CAAA,CAC3D,GAAGC,CAAAA,CACN,CAEJ,CAAA,cAAA","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-5L5DM2X5.js","sourcesContent":[null,"import { cn } from \"@/lib/utils\"\n\nfunction Skeleton({\n className,\n ...props\n}: React.HTMLAttributes<HTMLDivElement>) {\n return (\n <div\n className={cn(\"animate-pulse rounded-md bg-muted\", className)}\n {...props}\n />\n )\n}\n\nexport { Skeleton }\n"]}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import{a as t}from"./chunk-
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
import{a as t}from"./chunk-S5TKCF6T.mjs";import*as c from"react";import*as r from"@radix-ui/react-scroll-area";import{jsx as l,jsxs as p}from"react/jsx-runtime";var S=c.forwardRef(({className:o,children:e,...i},a)=>p(r.Root,{ref:a,className:t("relative overflow-hidden",o),...i,children:[l(r.Viewport,{className:"h-full w-full rounded-[inherit]",children:e}),l(m,{}),l(r.Corner,{})]}));S.displayName=r.Root.displayName;var m=c.forwardRef(({className:o,orientation:e="vertical",...i},a)=>l(r.ScrollAreaScrollbar,{ref:a,orientation:e,className:t("flex touch-none select-none transition-colors",e==="vertical"&&"h-full w-2.5 border-l border-l-transparent p-[1px]",e==="horizontal"&&"h-2.5 flex-col border-t border-t-transparent p-[1px]",o),...i,children:l(r.ScrollAreaThumb,{className:"relative flex-1 rounded-full bg-muted/40"})}));m.displayName=r.ScrollAreaScrollbar.displayName;export{S as a,m as b};
|
|
3
|
+
//# sourceMappingURL=chunk-5TVDBV74.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/scroll-area.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport * as ScrollAreaPrimitive from \"@radix-ui/react-scroll-area\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst ScrollArea = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.Root>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.Root>\n>(({ className, children, ...props }, ref) => (\n <ScrollAreaPrimitive.Root\n ref={ref}\n className={cn(\"relative overflow-hidden\", className)}\n {...props}\n >\n <ScrollAreaPrimitive.Viewport className=\"h-full w-full rounded-[inherit]\">\n {children}\n </ScrollAreaPrimitive.Viewport>\n <ScrollBar />\n <ScrollAreaPrimitive.Corner />\n </ScrollAreaPrimitive.Root>\n))\nScrollArea.displayName = ScrollAreaPrimitive.Root.displayName\n\nconst ScrollBar = React.forwardRef<\n React.ComponentRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>,\n React.ComponentPropsWithoutRef<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>\n>(({ className, orientation = \"vertical\", ...props }, ref) => (\n <ScrollAreaPrimitive.ScrollAreaScrollbar\n ref={ref}\n orientation={orientation}\n className={cn(\n \"flex touch-none select-none transition-colors\",\n orientation === \"vertical\" &&\n \"h-full w-2.5 border-l border-l-transparent p-[1px]\",\n orientation === \"horizontal\" &&\n \"h-2.5 flex-col border-t border-t-transparent p-[1px]\",\n className\n )}\n {...props}\n >\n <ScrollAreaPrimitive.ScrollAreaThumb className=\"relative flex-1 rounded-full bg-muted/40\" />\n </ScrollAreaPrimitive.ScrollAreaScrollbar>\n))\nScrollBar.displayName = ScrollAreaPrimitive.ScrollAreaScrollbar.displayName\n\nexport { ScrollArea, ScrollBar }\n"],"mappings":";yCAEA,UAAYA,MAAW,QACvB,UAAYC,MAAyB,8BAQnC,OAKE,OAAAC,EALF,QAAAC,MAAA,oBAJF,IAAMC,EAAmB,aAGvB,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAM,EAAGC,IACpCL,EAAqB,OAApB,CACC,IAAKK,EACL,UAAWC,EAAG,2BAA4BJ,CAAS,EAClD,GAAGE,EAEJ,UAAAL,EAAqB,WAApB,CAA6B,UAAU,kCACrC,SAAAI,EACH,EACAJ,EAACQ,EAAA,EAAU,EACXR,EAAqB,SAApB,EAA2B,GAC9B,CACD,EACDE,EAAW,YAAkC,OAAK,YAElD,IAAMM,EAAkB,aAGtB,CAAC,CAAE,UAAAL,EAAW,YAAAM,EAAc,WAAY,GAAGJ,CAAM,EAAGC,IACpDN,EAAqB,sBAApB,CACC,IAAKM,EACL,YAAaG,EACb,UAAWF,EACT,gDACAE,IAAgB,YACd,qDACFA,IAAgB,cACd,uDACFN,CACF,EACC,GAAGE,EAEJ,SAAAL,EAAqB,kBAApB,CAAoC,UAAU,2CAA2C,EAC5F,CACD,EACDQ,EAAU,YAAkC,sBAAoB","names":["React","ScrollAreaPrimitive","jsx","jsxs","ScrollArea","className","children","props","ref","cn","ScrollBar","orientation"]}
|
|
@@ -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 _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var r = _interopRequireWildcard(_react);var _lucidereact = require('lucide-react');var _jsxruntime = require('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 _jsxruntime.jsx.call(void 0, f.Provider,{value:{stickyFirstColumn:t},children:_jsxruntime.jsx.call(void 0, "div",{"data-slot":"table-container",className:_chunkFUYXCJOQjs.a.call(void 0, "relative bg-background w-full overflow-x-auto border border-border",b[o],t&&m,t&&p),children:_jsxruntime.jsx.call(void 0, "table",{"data-slot":"table",className:_chunkFUYXCJOQjs.a.call(void 0, "w-full caption-bottom text-sm",a),...l})})})}function k({className:a,...t}){return _jsxruntime.jsx.call(void 0, "thead",{"data-slot":"table-header",className:_chunkFUYXCJOQjs.a.call(void 0, "[&_tr]:border-b text-secondary-text",a),...t})}function v({className:a,...t}){return _jsxruntime.jsx.call(void 0, "tbody",{"data-slot":"table-body",className:_chunkFUYXCJOQjs.a.call(void 0, "[&_tr:last-child]:border-0",a),...t})}function R({className:a,...t}){return _jsxruntime.jsx.call(void 0, "tfoot",{"data-slot":"table-footer",className:_chunkFUYXCJOQjs.a.call(void 0, "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"?_jsxruntime.jsx.call(void 0, _lucidereact.Eye,{className:"h-4 w-4"}):o==="more"?_jsxruntime.jsx.call(void 0, _lucidereact.MoreVertical,{className:"h-4 w-4"}):null;return _jsxruntime.jsxs.call(void 0, "tr",{"data-slot":"table-row","data-has-action-column":o!==void 0?"":void 0,className:_chunkFUYXCJOQjs.a.call(void 0, "border-b border-border/50 transition-colors",t&&"cursor-pointer hover:bg-muted/50",a),...i,children:[o!==void 0&&_jsxruntime.jsx.call(void 0, _,{className:"w-12",children:s}),l]})}function P({className:a,isSticky:t,...o}){return _jsxruntime.jsx.call(void 0, "th",{"data-slot":"table-head",className:_chunkFUYXCJOQjs.a.call(void 0, "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 _jsxruntime.jsx.call(void 0, "td",{"data-slot":"table-cell",className:_chunkFUYXCJOQjs.a.call(void 0, "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(),_optionalChain([t, 'optionalCall', _2 => _2(c)])};return l&&r.isValidElement(o)?r.cloneElement(o,{onClick:c=>{c.stopPropagation();let d=o.props.onClick;_optionalChain([d, 'optionalCall', _3 => _3(c)])},className:_chunkFUYXCJOQjs.a.call(void 0, "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)}):_jsxruntime.jsx.call(void 0, "button",{type:"button","data-slot":"table-cell-action",className:_chunkFUYXCJOQjs.a.call(void 0, "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 _jsxruntime.jsx.call(void 0, "caption",{"data-slot":"table-caption",className:_chunkFUYXCJOQjs.a.call(void 0, "text-muted-foreground mt-4 text-sm",a),...t})}exports.a = y; exports.b = k; exports.c = v; exports.d = R; exports.e = T; exports.f = P; exports.g = _; exports.h = w; exports.i = N;
|
|
3
|
+
//# sourceMappingURL=chunk-5X26XR44.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-5X26XR44.js","../src/components/table.tsx"],"names":["TableContext","roundedMap","stickyFirstColumnStyles","stickyActionColumnStyles","Table","className","stickyFirstColumn","rounded","props","jsx","cn","TableHeader","TableBody","TableFooter","TableRow","isClickable","actionIcon","children","iconComponent","Eye","MoreVertical","jsxs","TableCell","TableHead","isSticky","TableCellAction","onClick","asChild","handleClick","e","childOnClick","TableCaption"],"mappings":"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","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-5X26XR44.js","sourcesContent":[null,"\"use client\"\n\nimport * as React from \"react\"\nimport { Eye, MoreVertical } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\ninterface TableContextValue {\n stickyFirstColumn?: boolean\n}\n\nconst TableContext = React.createContext<TableContextValue>({})\n\nexport interface TableProps extends React.ComponentProps<\"table\"> {\n stickyFirstColumn?: boolean\n rounded?: \"default\" | \"sm\"\n}\n\nconst roundedMap = {\n default: \"rounded-3xl\",\n sm: \"rounded-2xl\",\n} as const\n\n// Sticky first column (rows without action icon)\nconst stickyFirstColumnStyles =\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\"\n\n// Sticky first two columns (rows with action icon): icon at left-0, data column at left-12\nconst stickyActionColumnStyles =\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\"\n\nfunction Table({ className, stickyFirstColumn, rounded = \"default\", ...props }: TableProps) {\n return (\n <TableContext.Provider value={{ stickyFirstColumn }}>\n <div\n data-slot=\"table-container\"\n className={cn(\n \"relative bg-background w-full overflow-x-auto border border-border\",\n roundedMap[rounded],\n stickyFirstColumn && stickyFirstColumnStyles,\n stickyFirstColumn && stickyActionColumnStyles\n )}\n >\n <table\n data-slot=\"table\"\n className={cn(\"w-full caption-bottom text-sm\", className)}\n {...props}\n />\n </div>\n </TableContext.Provider>\n )\n}\n\nfunction TableHeader({ className, ...props }: React.ComponentProps<\"thead\">) {\n return (\n <thead\n data-slot=\"table-header\"\n className={cn(\"[&_tr]:border-b text-secondary-text\", className)}\n {...props}\n />\n )\n}\n\nfunction TableBody({ className, ...props }: React.ComponentProps<\"tbody\">) {\n return (\n <tbody\n data-slot=\"table-body\"\n className={cn(\"[&_tr:last-child]:border-0\", className)}\n {...props}\n />\n )\n}\n\nfunction TableFooter({ className, ...props }: React.ComponentProps<\"tfoot\">) {\n return (\n <tfoot\n data-slot=\"table-footer\"\n className={cn(\n \"bg-muted/50 border-t font-medium [&>tr]:last:border-b-0\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport interface TableRowProps extends React.ComponentProps<\"tr\"> {\n isClickable?: boolean\n actionIcon?: \"eye\" | \"more\" | null\n}\n\nfunction TableRow({\n className,\n isClickable,\n actionIcon,\n children,\n ...props\n}: TableRowProps) {\n const iconComponent =\n actionIcon === \"eye\" ? (\n <Eye className=\"h-4 w-4\" />\n ) : actionIcon === \"more\" ? (\n <MoreVertical className=\"h-4 w-4\" />\n ) : null\n\n return (\n <tr\n data-slot=\"table-row\"\n data-has-action-column={actionIcon !== undefined ? \"\" : undefined}\n className={cn(\n \"border-b border-border/50 transition-colors\",\n isClickable && \"cursor-pointer hover:bg-muted/50\",\n className\n )}\n {...props}\n >\n {actionIcon !== undefined && (\n <TableCell className=\"w-12\">{iconComponent}</TableCell>\n )}\n {children}\n </tr>\n )\n}\n\nexport interface TableHeadProps extends React.ComponentProps<\"th\"> {\n isSticky?: boolean\n}\n\nfunction TableHead({ className, isSticky, ...props }: TableHeadProps) {\n return (\n <th\n data-slot=\"table-head\"\n className={cn(\n \"text-secondary-text h-10 px-4 text-left align-middle font-medium whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n isSticky &&\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\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport interface TableCellProps extends React.ComponentProps<\"td\"> {\n isSticky?: boolean\n}\n\nfunction TableCell({ className, isSticky, ...props }: TableCellProps) {\n return (\n <td\n data-slot=\"table-cell\"\n className={cn(\n \"p-4 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0\",\n isSticky &&\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\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport interface TableCellActionProps extends React.ComponentProps<\"button\"> {\n asChild?: boolean\n}\n\nfunction TableCellAction({\n className,\n onClick,\n children,\n asChild = false,\n ...props\n}: TableCellActionProps) {\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\n e.stopPropagation()\n onClick?.(e)\n }\n\n if (asChild && React.isValidElement(children)) {\n return React.cloneElement(\n children as React.ReactElement<{\n onClick?: (e: React.MouseEvent) => void\n className?: string\n }>,\n {\n onClick: (e: React.MouseEvent) => {\n e.stopPropagation()\n const childOnClick = (\n children as React.ReactElement<{\n onClick?: (e: React.MouseEvent) => void\n }>\n ).props.onClick\n childOnClick?.(e)\n },\n className: cn(\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\",\n (children as React.ReactElement<{ className?: string }>).props\n .className,\n className\n ),\n }\n )\n }\n\n return (\n <button\n type=\"button\"\n data-slot=\"table-cell-action\"\n className={cn(\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\",\n className\n )}\n onClick={handleClick}\n {...props}\n >\n {children}\n </button>\n )\n}\n\nfunction TableCaption({\n className,\n ...props\n}: React.ComponentProps<\"caption\">) {\n return (\n <caption\n data-slot=\"table-caption\"\n className={cn(\"text-muted-foreground mt-4 text-sm\", className)}\n {...props}\n />\n )\n}\n\nexport {\n Table,\n TableHeader,\n TableBody,\n TableFooter,\n TableHead,\n TableRow,\n TableCell,\n TableCellAction,\n TableCaption,\n}\n"]}
|
|
@@ -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-QMJVRGPB.mjs";import{a as d}from"./chunk-S5TKCF6T.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-7FUNOEYE.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/date-picker.tsx"],"sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { CalendarIcon } from \"lucide-react\"\nimport { format } from \"date-fns\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Calendar } from \"@/components/calendar\"\n\nconst Popover = PopoverPrimitive.Root\nconst PopoverTrigger = PopoverPrimitive.Trigger\n\nconst PopoverContent = React.forwardRef<\n React.ElementRef<typeof PopoverPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof PopoverPrimitive.Content>\n>(({ className, align = \"start\", sideOffset = 4, ...props }, ref) => (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n ref={ref}\n align={align}\n sideOffset={sideOffset}\n className={cn(\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\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n))\nPopoverContent.displayName = PopoverPrimitive.Content.displayName\n\nexport interface DatePickerProps {\n date?: Date\n onDateChange?: (date: Date | undefined) => void\n placeholder?: string\n disabled?: boolean\n className?: string\n calendarProps?: Omit<\n React.ComponentProps<typeof Calendar>,\n \"mode\" | \"selected\" | \"onSelect\"\n >\n formatStr?: string\n}\n\nconst DatePicker = React.forwardRef<HTMLButtonElement, DatePickerProps>(\n (\n {\n date,\n onDateChange,\n placeholder = \"Pick a date\",\n disabled = false,\n className,\n calendarProps,\n formatStr = \"PPP\",\n },\n ref\n ) => {\n const [open, setOpen] = React.useState(false)\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <PopoverTrigger asChild>\n <button\n ref={ref}\n type=\"button\"\n className={cn(\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\",\n !date && \"text-secondary-text\",\n className\n )}\n disabled={disabled}\n >\n <CalendarIcon className=\"mr-2 h-4 w-4\" />\n {date ? format(date, formatStr) : <span>{placeholder}</span>}\n </button>\n </PopoverTrigger>\n <PopoverContent className=\"w-auto p-0 rounded-3xl\" align=\"start\">\n <Calendar\n mode=\"single\"\n selected={date}\n onSelect={(selectedDate) => {\n onDateChange?.(selectedDate)\n setOpen(false)\n }}\n defaultMonth={date}\n {...calendarProps}\n />\n </PopoverContent>\n </Popover>\n )\n }\n)\n\nDatePicker.displayName = \"DatePicker\"\n\nexport { DatePicker }\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 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; } }"use client";
|
|
2
|
-
var
|
|
3
|
-
//# sourceMappingURL=chunk-
|
|
2
|
+
var _chunkBV7RXRSLjs = require('./chunk-BV7RXRSL.js');var _chunkFUYXCJOQjs = require('./chunk-FUYXCJOQ.js');var _react = require('react'); var d = _interopRequireWildcard(_react);var _cmdk = require('cmdk');var _lucidereact = require('lucide-react');var _jsxruntime = require('react/jsx-runtime');var p=d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsx.call(void 0, _cmdk.Command,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",e),...t}));p.displayName=_cmdk.Command.displayName;var P=({children:e,...t})=>_jsxruntime.jsx.call(void 0, _chunkBV7RXRSLjs.a,{...t,children:_jsxruntime.jsx.call(void 0, _chunkBV7RXRSLjs.f,{className:"overflow-hidden p-0 shadow-lg",children:_jsxruntime.jsx.call(void 0, p,{className:"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",children:e})})}),c= exports.c =d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsxs.call(void 0, "div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[_jsxruntime.jsx.call(void 0, _lucidereact.Search,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),_jsxruntime.jsx.call(void 0, _cmdk.Command.Input,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",e),...t})]}));c.displayName=_cmdk.Command.Input.displayName;var f=d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsx.call(void 0, _cmdk.Command.List,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "max-h-[300px] overflow-y-auto overflow-x-hidden",e),...t}));f.displayName=_cmdk.Command.List.displayName;var l=d.forwardRef((e,t)=>_jsxruntime.jsx.call(void 0, _cmdk.Command.Empty,{ref:t,className:"py-6 text-center text-sm",...e}));l.displayName=_cmdk.Command.Empty.displayName;var u=d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsx.call(void 0, _cmdk.Command.Group,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",e),...t}));u.displayName=_cmdk.Command.Group.displayName;var y=d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsx.call(void 0, _cmdk.Command.Separator,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "-mx-1 h-px bg-border",e),...t}));y.displayName=_cmdk.Command.Separator.displayName;var g=d.forwardRef(({className:e,...t},a)=>_jsxruntime.jsx.call(void 0, _cmdk.Command.Item,{ref:a,className:_chunkFUYXCJOQjs.a.call(void 0, "relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-muted aria-selected:text-secondary-foreground active:opacity-50 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 truncate",e),...t}));g.displayName=_cmdk.Command.Item.displayName;var R=({className:e,...t})=>_jsxruntime.jsx.call(void 0, "span",{className:_chunkFUYXCJOQjs.a.call(void 0, "ml-auto text-xs tracking-widest text-muted-foreground",e),...t});R.displayName="CommandShortcut";exports.a = p; exports.b = P; exports.c = c; exports.d = f; exports.e = l; exports.f = u; exports.g = y; exports.h = g; exports.i = R;
|
|
3
|
+
//# sourceMappingURL=chunk-7J2ETVGK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-7J2ETVGK.js","../src/components/command.tsx"],"names":["Command","className","props","ref","jsx","CommandPrimitive","cn","CommandDialog","children","Dialog","DialogContent","CommandInput","jsxs","Search","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem","CommandShortcut"],"mappings":"AAAA,uWAAY;AACZ,sDAA8C,sDAAwC,uECD/D,4BAEqB,2CACrB,+CASrB,IAJIA,CAAAA,CAAgB,CAAA,CAAA,UAAA,CAGpB,CAAC,CAAE,SAAA,CAAAC,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BC,6BAAAA,aAACC,CAAA,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,2FACT,CACAL,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACD,CAAA,CACDF,CAAAA,CAAQ,WAAA,CAAcK,aAAAA,CAAiB,WAAA,CAIvC,IAAME,CAAAA,CAAgB,CAAC,CAAE,QAAA,CAAAC,CAAAA,CAAU,GAAGN,CAAM,CAAA,CAAA,EAExCE,6BAAAA,kBAACK,CAAA,CAAQ,GAAGP,CAAAA,CACV,QAAA,CAAAE,6BAAAA,kBAACM,CAAA,CAAc,SAAA,CAAU,+BAAA,CACvB,QAAA,CAAAN,6BAAAA,CAACJ,CAAA,CAAQ,SAAA,CAAU,6WAAA,CAChB,QAAA,CAAAQ,CAAAA,CACH,CAAA,CACF,CAAA,CACF,CAAA,CAIEG,CAAAA,aAAqB,CAAA,CAAA,UAAA,CAGzB,CAAC,CAAE,SAAA,CAAAV,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BS,8BAAAA,KAAC,CAAA,CAAI,SAAA,CAAU,iCAAA,CAAkC,oBAAA,CAAmB,EAAA,CAClE,QAAA,CAAA,CAAAR,6BAAAA,mBAACS,CAAA,CAAO,SAAA,CAAU,kCAAA,CAAmC,CAAA,CACrDT,6BAAAA,aAACC,CAAiB,KAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,wJACT,CACAL,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CAAA,CAAA,CACF,CACD,CAAA,CAEDS,CAAAA,CAAa,WAAA,CAAcN,aAAAA,CAAiB,KAAA,CAAM,WAAA,CAElD,IAAMS,CAAAA,CAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAb,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BC,6BAAAA,aAACC,CAAiB,IAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,iDAAG,CAAmDL,CAAS,CAAA,CACzE,GAAGC,CAAAA,CACN,CACD,CAAA,CAEDY,CAAAA,CAAY,WAAA,CAAcT,aAAAA,CAAiB,IAAA,CAAK,WAAA,CAEhD,IAAMU,CAAAA,CAAqB,CAAA,CAAA,UAAA,CAGzB,CAACb,CAAAA,CAAOC,CAAAA,CAAAA,EACRC,6BAAAA,aAACC,CAAiB,KAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAU,0BAAA,CACT,GAAGD,CAAAA,CACN,CACD,CAAA,CAEDa,CAAAA,CAAa,WAAA,CAAcV,aAAAA,CAAiB,KAAA,CAAM,WAAA,CAElD,IAAMW,CAAAA,CAAqB,CAAA,CAAA,UAAA,CAGzB,CAAC,CAAE,SAAA,CAAAf,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BC,6BAAAA,aAACC,CAAiB,KAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,wNACT,CACAL,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACD,CAAA,CAEDc,CAAAA,CAAa,WAAA,CAAcX,aAAAA,CAAiB,KAAA,CAAM,WAAA,CAElD,IAAMY,CAAAA,CAAyB,CAAA,CAAA,UAAA,CAG7B,CAAC,CAAE,SAAA,CAAAhB,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BC,6BAAAA,aAACC,CAAiB,SAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,sBAAG,CAAwBL,CAAS,CAAA,CAC9C,GAAGC,CAAAA,CACN,CACD,CAAA,CACDe,CAAAA,CAAiB,WAAA,CAAcZ,aAAAA,CAAiB,SAAA,CAAU,WAAA,CAE1D,IAAMa,CAAAA,CAAoB,CAAA,CAAA,UAAA,CAGxB,CAAC,CAAE,SAAA,CAAAjB,CAAAA,CAAW,GAAGC,CAAM,CAAA,CAAGC,CAAAA,CAAAA,EAC1BC,6BAAAA,aAACC,CAAiB,IAAA,CAAjB,CACC,GAAA,CAAKF,CAAAA,CACL,SAAA,CAAWG,gCAAAA,sQACT,CACAL,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CACD,CAAA,CAEDgB,CAAAA,CAAY,WAAA,CAAcb,aAAAA,CAAiB,IAAA,CAAK,WAAA,CAEhD,IAAMc,CAAAA,CAAkB,CAAC,CACvB,SAAA,CAAAlB,CAAAA,CACA,GAAGC,CACL,CAAA,CAAA,EAEIE,6BAAAA,MAAC,CAAA,CACC,SAAA,CAAWE,gCAAAA,uDACT,CACAL,CACF,CAAA,CACC,GAAGC,CAAAA,CACN,CAAA,CAGJiB,CAAAA,CAAgB,WAAA,CAAc,iBAAA,CAAA,sIAAA","file":"/Users/aktoriukas/Documents/Projects/alkimi/alkimi-ui-kit/dist/chunk-7J2ETVGK.js","sourcesContent":[null,"import * as React from \"react\"\nimport { type DialogProps } from \"@radix-ui/react-dialog\"\nimport { Command as CommandPrimitive } from \"cmdk\"\nimport { Search } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Dialog, DialogContent } from \"@/components/dialog\"\n\nconst Command = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive\n ref={ref}\n className={cn(\n \"flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className\n )}\n {...props}\n />\n))\nCommand.displayName = CommandPrimitive.displayName\n\ninterface CommandDialogProps extends DialogProps {}\n\nconst CommandDialog = ({ children, ...props }: CommandDialogProps) => {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0 shadow-lg\">\n <Command className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-group]]:px-2 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n )\n}\n\nconst CommandInput = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Input>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(({ className, ...props }, ref) => (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"mr-2 h-4 w-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n className={cn(\n \"flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n />\n </div>\n))\n\nCommandInput.displayName = CommandPrimitive.Input.displayName\n\nconst CommandList = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.List>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.List\n ref={ref}\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n))\n\nCommandList.displayName = CommandPrimitive.List.displayName\n\nconst CommandEmpty = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Empty>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>((props, ref) => (\n <CommandPrimitive.Empty\n ref={ref}\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n))\n\nCommandEmpty.displayName = CommandPrimitive.Empty.displayName\n\nconst CommandGroup = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Group>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Group\n ref={ref}\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className\n )}\n {...props}\n />\n))\n\nCommandGroup.displayName = CommandPrimitive.Group.displayName\n\nconst CommandSeparator = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Separator\n ref={ref}\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n))\nCommandSeparator.displayName = CommandPrimitive.Separator.displayName\n\nconst CommandItem = React.forwardRef<\n React.ElementRef<typeof CommandPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(({ className, ...props }, ref) => (\n <CommandPrimitive.Item\n ref={ref}\n className={cn(\n \"relative flex cursor-default select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none aria-selected:bg-muted aria-selected:text-secondary-foreground active:opacity-50 data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 truncate\",\n className\n )}\n {...props}\n />\n))\n\nCommandItem.displayName = CommandPrimitive.Item.displayName\n\nconst CommandShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n \"ml-auto text-xs tracking-widest text-muted-foreground\",\n className\n )}\n {...props}\n />\n )\n}\nCommandShortcut.displayName = \"CommandShortcut\"\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n}\n"]}
|
|
@@ -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-7ONK6HHN.mjs.map
|