@mieweb/ui 0.7.1-dev.7 → 0.7.1-dev.9
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/dist/CsvBlock-LVJARITD.cjs +15 -0
- package/dist/{CsvBlock-2A5VEDD3.cjs.map → CsvBlock-LVJARITD.cjs.map} +1 -1
- package/dist/CsvBlock-VTYNQ75L.js +6 -0
- package/dist/{CsvBlock-D6PWAJ5X.js.map → CsvBlock-VTYNQ75L.js.map} +1 -1
- package/dist/HtmlPreviewBlock-F33P37UD.cjs +15 -0
- package/dist/{HtmlPreviewBlock-SYXCV5RH.cjs.map → HtmlPreviewBlock-F33P37UD.cjs.map} +1 -1
- package/dist/HtmlPreviewBlock-N4PPVJLJ.js +6 -0
- package/dist/{HtmlPreviewBlock-PEHTJ6C3.js.map → HtmlPreviewBlock-N4PPVJLJ.js.map} +1 -1
- package/dist/MermaidBlock-G5X4FPUN.cjs +15 -0
- package/dist/{MermaidBlock-AFXNP5NK.cjs.map → MermaidBlock-G5X4FPUN.cjs.map} +1 -1
- package/dist/MermaidBlock-HUT53CRG.js +6 -0
- package/dist/{MermaidBlock-7NK3AVK2.js.map → MermaidBlock-HUT53CRG.js.map} +1 -1
- package/dist/SurveyBlock-ORTPGA5T.cjs +15 -0
- package/dist/{SurveyBlock-6KRNKFH5.cjs.map → SurveyBlock-ORTPGA5T.cjs.map} +1 -1
- package/dist/SurveyBlock-PM3ZMWWR.js +6 -0
- package/dist/{SurveyBlock-NNDGXGG4.js.map → SurveyBlock-PM3ZMWWR.js.map} +1 -1
- package/dist/ag-grid.cjs +8 -8
- package/dist/ag-grid.js +1 -1
- package/dist/{chunk-4DMZAVB2.js → chunk-23AYDOCH.js} +3 -3
- package/dist/{chunk-4DMZAVB2.js.map → chunk-23AYDOCH.js.map} +1 -1
- package/dist/{chunk-TRZXK57D.js → chunk-2DW4PUJD.js} +3 -3
- package/dist/{chunk-TRZXK57D.js.map → chunk-2DW4PUJD.js.map} +1 -1
- package/dist/{chunk-AES2BKEW.cjs → chunk-2GQ7VPCS.cjs} +8 -8
- package/dist/{chunk-AES2BKEW.cjs.map → chunk-2GQ7VPCS.cjs.map} +1 -1
- package/dist/{chunk-B77UC56R.js → chunk-2YDKLURF.js} +20 -2
- package/dist/chunk-2YDKLURF.js.map +1 -0
- package/dist/{chunk-J7Z7467B.js → chunk-34LGPMO4.js} +3 -3
- package/dist/{chunk-J7Z7467B.js.map → chunk-34LGPMO4.js.map} +1 -1
- package/dist/{chunk-T5F565OC.cjs → chunk-3OME4UHL.cjs} +20 -2
- package/dist/chunk-3OME4UHL.cjs.map +1 -0
- package/dist/{chunk-Q2EWNXIB.cjs → chunk-3SZQRMHM.cjs} +9 -9
- package/dist/{chunk-Q2EWNXIB.cjs.map → chunk-3SZQRMHM.cjs.map} +1 -1
- package/dist/{chunk-NIEIRA5A.cjs → chunk-4AE2L6AO.cjs} +13 -13
- package/dist/{chunk-NIEIRA5A.cjs.map → chunk-4AE2L6AO.cjs.map} +1 -1
- package/dist/{chunk-XP6HELVG.cjs → chunk-5IDYOJHO.cjs} +13 -13
- package/dist/{chunk-XP6HELVG.cjs.map → chunk-5IDYOJHO.cjs.map} +1 -1
- package/dist/{chunk-MSRU3XBH.cjs → chunk-5PHGIWDN.cjs} +6 -6
- package/dist/{chunk-MSRU3XBH.cjs.map → chunk-5PHGIWDN.cjs.map} +1 -1
- package/dist/{chunk-3CJBUAJ4.js → chunk-5U6GETAW.js} +3 -3
- package/dist/{chunk-3CJBUAJ4.js.map → chunk-5U6GETAW.js.map} +1 -1
- package/dist/{chunk-HEH3QXOQ.js → chunk-5Y5FSR4N.js} +3 -3
- package/dist/{chunk-HEH3QXOQ.js.map → chunk-5Y5FSR4N.js.map} +1 -1
- package/dist/{chunk-TN33E2VN.cjs → chunk-62TFTZWT.cjs} +12 -12
- package/dist/{chunk-TN33E2VN.cjs.map → chunk-62TFTZWT.cjs.map} +1 -1
- package/dist/{chunk-MV3MTHWQ.js → chunk-6EWJGRC3.js} +3 -3
- package/dist/{chunk-MV3MTHWQ.js.map → chunk-6EWJGRC3.js.map} +1 -1
- package/dist/{chunk-7WMSUXOQ.js → chunk-6OCYG6J2.js} +4 -4
- package/dist/{chunk-7WMSUXOQ.js.map → chunk-6OCYG6J2.js.map} +1 -1
- package/dist/{chunk-JCNPVK74.cjs → chunk-6OQE4ZMG.cjs} +8 -8
- package/dist/{chunk-JCNPVK74.cjs.map → chunk-6OQE4ZMG.cjs.map} +1 -1
- package/dist/{chunk-KBEKQMVY.cjs → chunk-6QVI6DAO.cjs} +5 -5
- package/dist/{chunk-KBEKQMVY.cjs.map → chunk-6QVI6DAO.cjs.map} +1 -1
- package/dist/{chunk-5BQE6BEL.js → chunk-6XGESZ4S.js} +3 -3
- package/dist/{chunk-5BQE6BEL.js.map → chunk-6XGESZ4S.js.map} +1 -1
- package/dist/{chunk-CVC4NWFA.cjs → chunk-7AMOKHTW.cjs} +4 -4
- package/dist/{chunk-CVC4NWFA.cjs.map → chunk-7AMOKHTW.cjs.map} +1 -1
- package/dist/{chunk-44CK4CT2.cjs → chunk-7EB7665B.cjs} +13 -13
- package/dist/{chunk-44CK4CT2.cjs.map → chunk-7EB7665B.cjs.map} +1 -1
- package/dist/{chunk-F3PPRNFI.js → chunk-7OIUA7PW.js} +14 -14
- package/dist/{chunk-F3PPRNFI.js.map → chunk-7OIUA7PW.js.map} +1 -1
- package/dist/{chunk-JLBT76WH.js → chunk-7V6SUOBV.js} +3 -3
- package/dist/{chunk-JLBT76WH.js.map → chunk-7V6SUOBV.js.map} +1 -1
- package/dist/{chunk-BB4WQ4LV.cjs → chunk-ABAOZASX.cjs} +8 -8
- package/dist/{chunk-BB4WQ4LV.cjs.map → chunk-ABAOZASX.cjs.map} +1 -1
- package/dist/{chunk-6LFG4JFF.js → chunk-AFGADE3B.js} +3 -3
- package/dist/{chunk-6LFG4JFF.js.map → chunk-AFGADE3B.js.map} +1 -1
- package/dist/{chunk-T3C4RNJ4.js → chunk-BJKAVWED.js} +3 -3
- package/dist/{chunk-T3C4RNJ4.js.map → chunk-BJKAVWED.js.map} +1 -1
- package/dist/{chunk-43GBCUSQ.js → chunk-BS5NOKZD.js} +3 -3
- package/dist/{chunk-43GBCUSQ.js.map → chunk-BS5NOKZD.js.map} +1 -1
- package/dist/{chunk-C2544GKZ.js → chunk-BX5ZODPF.js} +4 -4
- package/dist/{chunk-C2544GKZ.js.map → chunk-BX5ZODPF.js.map} +1 -1
- package/dist/{chunk-VPNURIAY.cjs → chunk-C2NNNOSU.cjs} +8 -8
- package/dist/{chunk-VPNURIAY.cjs.map → chunk-C2NNNOSU.cjs.map} +1 -1
- package/dist/{chunk-IYIYL2SQ.js → chunk-CEQJGUAS.js} +3 -3
- package/dist/{chunk-IYIYL2SQ.js.map → chunk-CEQJGUAS.js.map} +1 -1
- package/dist/{chunk-6ZYE6JUK.cjs → chunk-CKRRJO7T.cjs} +11 -11
- package/dist/{chunk-6ZYE6JUK.cjs.map → chunk-CKRRJO7T.cjs.map} +1 -1
- package/dist/{chunk-ZHBANUBI.cjs → chunk-CPUDOVWH.cjs} +21 -21
- package/dist/{chunk-ZHBANUBI.cjs.map → chunk-CPUDOVWH.cjs.map} +1 -1
- package/dist/{chunk-WO5CAOAN.js → chunk-DCBMTFLE.js} +3 -3
- package/dist/{chunk-WO5CAOAN.js.map → chunk-DCBMTFLE.js.map} +1 -1
- package/dist/{chunk-YZT62IMX.js → chunk-DKICBJTM.js} +4 -4
- package/dist/{chunk-YZT62IMX.js.map → chunk-DKICBJTM.js.map} +1 -1
- package/dist/{chunk-MUYTGWGE.js → chunk-DVOQ3JNO.js} +3 -3
- package/dist/{chunk-MUYTGWGE.js.map → chunk-DVOQ3JNO.js.map} +1 -1
- package/dist/{chunk-EL2RSQTJ.cjs → chunk-EFEKAPS2.cjs} +4 -4
- package/dist/{chunk-EL2RSQTJ.cjs.map → chunk-EFEKAPS2.cjs.map} +1 -1
- package/dist/{chunk-PVUDXJAI.js → chunk-EJPV3QY3.js} +3 -3
- package/dist/{chunk-PVUDXJAI.js.map → chunk-EJPV3QY3.js.map} +1 -1
- package/dist/{chunk-WGPMTW36.cjs → chunk-EPQPUFS6.cjs} +7 -7
- package/dist/{chunk-WGPMTW36.cjs.map → chunk-EPQPUFS6.cjs.map} +1 -1
- package/dist/{chunk-KL2S36FM.js → chunk-ET5JGGVL.js} +3 -3
- package/dist/{chunk-KL2S36FM.js.map → chunk-ET5JGGVL.js.map} +1 -1
- package/dist/{chunk-J3BU3JBX.js → chunk-FDUA6OGN.js} +3 -3
- package/dist/{chunk-J3BU3JBX.js.map → chunk-FDUA6OGN.js.map} +1 -1
- package/dist/{chunk-KQAXXJ4G.cjs → chunk-FF235PKY.cjs} +7 -7
- package/dist/{chunk-KQAXXJ4G.cjs.map → chunk-FF235PKY.cjs.map} +1 -1
- package/dist/{chunk-FZJBFJJR.js → chunk-FJ7YPVKV.js} +3 -3
- package/dist/{chunk-FZJBFJJR.js.map → chunk-FJ7YPVKV.js.map} +1 -1
- package/dist/{chunk-ZAIEQWRA.js → chunk-G45PAVQI.js} +4 -4
- package/dist/{chunk-ZAIEQWRA.js.map → chunk-G45PAVQI.js.map} +1 -1
- package/dist/{chunk-ZGSC2CB2.js → chunk-GTHNWP4P.js} +36 -5
- package/dist/chunk-GTHNWP4P.js.map +1 -0
- package/dist/{chunk-6AHYYWVB.js → chunk-H3HF36ZL.js} +5 -5
- package/dist/{chunk-6AHYYWVB.js.map → chunk-H3HF36ZL.js.map} +1 -1
- package/dist/{chunk-IWDQPSJN.cjs → chunk-HEV52I7A.cjs} +25 -25
- package/dist/{chunk-IWDQPSJN.cjs.map → chunk-HEV52I7A.cjs.map} +1 -1
- package/dist/{chunk-UOOH356R.cjs → chunk-HIAUNNOW.cjs} +4 -4
- package/dist/{chunk-UOOH356R.cjs.map → chunk-HIAUNNOW.cjs.map} +1 -1
- package/dist/{chunk-BIT27PPD.js → chunk-HS25RPDW.js} +3 -3
- package/dist/{chunk-BIT27PPD.js.map → chunk-HS25RPDW.js.map} +1 -1
- package/dist/{chunk-BWYYA3LQ.cjs → chunk-I2ECTLON.cjs} +5 -5
- package/dist/{chunk-BWYYA3LQ.cjs.map → chunk-I2ECTLON.cjs.map} +1 -1
- package/dist/{chunk-BT3ZQJGT.cjs → chunk-IUDY6S7I.cjs} +6 -6
- package/dist/{chunk-BT3ZQJGT.cjs.map → chunk-IUDY6S7I.cjs.map} +1 -1
- package/dist/{chunk-FJH7P5WG.js → chunk-IVDIT3TJ.js} +6 -6
- package/dist/{chunk-FJH7P5WG.js.map → chunk-IVDIT3TJ.js.map} +1 -1
- package/dist/{chunk-UM6NA7HL.js → chunk-IXWRD4AP.js} +3 -3
- package/dist/{chunk-UM6NA7HL.js.map → chunk-IXWRD4AP.js.map} +1 -1
- package/dist/{chunk-MKWGKASO.js → chunk-JJNCQMR5.js} +3 -3
- package/dist/{chunk-MKWGKASO.js.map → chunk-JJNCQMR5.js.map} +1 -1
- package/dist/{chunk-TR2OJKQ4.cjs → chunk-JTSKPDPH.cjs} +8 -8
- package/dist/{chunk-TR2OJKQ4.cjs.map → chunk-JTSKPDPH.cjs.map} +1 -1
- package/dist/{chunk-NVHAQOHH.cjs → chunk-JY4U2QWO.cjs} +7 -7
- package/dist/{chunk-NVHAQOHH.cjs.map → chunk-JY4U2QWO.cjs.map} +1 -1
- package/dist/{chunk-XCLQZ4FV.js → chunk-KFLDXJEE.js} +3 -3
- package/dist/{chunk-XCLQZ4FV.js.map → chunk-KFLDXJEE.js.map} +1 -1
- package/dist/{chunk-IHTRKWBG.js → chunk-KQGGKE36.js} +4 -4
- package/dist/{chunk-IHTRKWBG.js.map → chunk-KQGGKE36.js.map} +1 -1
- package/dist/{chunk-PJAQDAMZ.cjs → chunk-KZ7QKUJS.cjs} +4 -4
- package/dist/{chunk-PJAQDAMZ.cjs.map → chunk-KZ7QKUJS.cjs.map} +1 -1
- package/dist/{chunk-A2QVQF54.cjs → chunk-M26KJKZG.cjs} +4 -4
- package/dist/{chunk-A2QVQF54.cjs.map → chunk-M26KJKZG.cjs.map} +1 -1
- package/dist/{chunk-JHYFHEHS.js → chunk-MHD5HZ4X.js} +4 -4
- package/dist/{chunk-JHYFHEHS.js.map → chunk-MHD5HZ4X.js.map} +1 -1
- package/dist/{chunk-UFYXU7KV.js → chunk-MWPPOX6F.js} +4 -4
- package/dist/{chunk-UFYXU7KV.js.map → chunk-MWPPOX6F.js.map} +1 -1
- package/dist/{chunk-KJ5BSGEO.cjs → chunk-NGPEXCC7.cjs} +11 -11
- package/dist/{chunk-KJ5BSGEO.cjs.map → chunk-NGPEXCC7.cjs.map} +1 -1
- package/dist/{chunk-T3RWXOCM.js → chunk-NU6QKULE.js} +3 -3
- package/dist/{chunk-T3RWXOCM.js.map → chunk-NU6QKULE.js.map} +1 -1
- package/dist/{chunk-BYUV3IZV.cjs → chunk-OGPJ3LRF.cjs} +4 -4
- package/dist/{chunk-BYUV3IZV.cjs.map → chunk-OGPJ3LRF.cjs.map} +1 -1
- package/dist/{chunk-DAPZPT5N.cjs → chunk-OJEXXH5D.cjs} +11 -11
- package/dist/{chunk-DAPZPT5N.cjs.map → chunk-OJEXXH5D.cjs.map} +1 -1
- package/dist/{chunk-XL7TTKHP.js → chunk-OLFTGCGD.js} +7 -7
- package/dist/{chunk-XL7TTKHP.js.map → chunk-OLFTGCGD.js.map} +1 -1
- package/dist/{chunk-BX6BTDTR.js → chunk-OQWZYKJM.js} +3 -3
- package/dist/{chunk-BX6BTDTR.js.map → chunk-OQWZYKJM.js.map} +1 -1
- package/dist/{chunk-JBB25LFB.js → chunk-OTQ72WX3.js} +3 -3
- package/dist/{chunk-JBB25LFB.js.map → chunk-OTQ72WX3.js.map} +1 -1
- package/dist/{chunk-AFKKJEV5.cjs → chunk-OZOSWBSI.cjs} +4 -4
- package/dist/{chunk-AFKKJEV5.cjs.map → chunk-OZOSWBSI.cjs.map} +1 -1
- package/dist/{chunk-KJPOFUF5.cjs → chunk-P2VTQ5AR.cjs} +10 -10
- package/dist/{chunk-KJPOFUF5.cjs.map → chunk-P2VTQ5AR.cjs.map} +1 -1
- package/dist/{chunk-QASIWBXU.cjs → chunk-P7UMS4E6.cjs} +7 -7
- package/dist/{chunk-QASIWBXU.cjs.map → chunk-P7UMS4E6.cjs.map} +1 -1
- package/dist/{chunk-QUUFKGDF.cjs → chunk-PGETZ2FP.cjs} +15 -15
- package/dist/{chunk-QUUFKGDF.cjs.map → chunk-PGETZ2FP.cjs.map} +1 -1
- package/dist/{chunk-5M2YSPJH.cjs → chunk-PNJAFZDC.cjs} +59 -59
- package/dist/{chunk-5M2YSPJH.cjs.map → chunk-PNJAFZDC.cjs.map} +1 -1
- package/dist/{chunk-KOCTIB6U.js → chunk-PS5INHGC.js} +3 -3
- package/dist/{chunk-KOCTIB6U.js.map → chunk-PS5INHGC.js.map} +1 -1
- package/dist/{chunk-Y2S6QMKU.js → chunk-PTZB2GKL.js} +3 -3
- package/dist/{chunk-Y2S6QMKU.js.map → chunk-PTZB2GKL.js.map} +1 -1
- package/dist/{chunk-NQME7MCK.js → chunk-QKKYMNR2.js} +4 -4
- package/dist/{chunk-NQME7MCK.js.map → chunk-QKKYMNR2.js.map} +1 -1
- package/dist/{chunk-GOAW2UCP.js → chunk-QNUPTRW7.js} +9 -9
- package/dist/{chunk-GOAW2UCP.js.map → chunk-QNUPTRW7.js.map} +1 -1
- package/dist/{chunk-EZKRAW2X.js → chunk-QUUBTNMH.js} +3 -3
- package/dist/{chunk-EZKRAW2X.js.map → chunk-QUUBTNMH.js.map} +1 -1
- package/dist/{chunk-T42BCIUA.js → chunk-REPZI2YO.js} +3 -3
- package/dist/{chunk-T42BCIUA.js.map → chunk-REPZI2YO.js.map} +1 -1
- package/dist/{chunk-CKD554XR.cjs → chunk-RUEEDOE3.cjs} +5 -5
- package/dist/{chunk-CKD554XR.cjs.map → chunk-RUEEDOE3.cjs.map} +1 -1
- package/dist/{chunk-RHYIFIT5.js → chunk-RZFSJD67.js} +3 -3
- package/dist/{chunk-RHYIFIT5.js.map → chunk-RZFSJD67.js.map} +1 -1
- package/dist/{chunk-DFCZPVG4.cjs → chunk-S3MKIDYG.cjs} +8 -8
- package/dist/{chunk-DFCZPVG4.cjs.map → chunk-S3MKIDYG.cjs.map} +1 -1
- package/dist/chunk-S5RVSXDV.cjs +45 -0
- package/dist/chunk-S5RVSXDV.cjs.map +1 -0
- package/dist/{chunk-4LVPQ44A.js → chunk-SAJSA4TS.js} +3 -3
- package/dist/{chunk-4LVPQ44A.js.map → chunk-SAJSA4TS.js.map} +1 -1
- package/dist/{chunk-XDFDVF2O.js → chunk-SH6B4MG5.js} +4 -4
- package/dist/{chunk-XDFDVF2O.js.map → chunk-SH6B4MG5.js.map} +1 -1
- package/dist/{chunk-5MAGWW5X.cjs → chunk-STCRP652.cjs} +11 -11
- package/dist/{chunk-5MAGWW5X.cjs.map → chunk-STCRP652.cjs.map} +1 -1
- package/dist/{chunk-3MGHTTZW.js → chunk-SVSHA7XV.js} +3 -3
- package/dist/{chunk-3MGHTTZW.js.map → chunk-SVSHA7XV.js.map} +1 -1
- package/dist/chunk-TQONQSJO.js +42 -0
- package/dist/chunk-TQONQSJO.js.map +1 -0
- package/dist/{chunk-V25Z5GR6.cjs → chunk-TU36DBH2.cjs} +9 -9
- package/dist/{chunk-V25Z5GR6.cjs.map → chunk-TU36DBH2.cjs.map} +1 -1
- package/dist/{chunk-FQ3UCZUX.cjs → chunk-U3JU6BI5.cjs} +7 -7
- package/dist/{chunk-FQ3UCZUX.cjs.map → chunk-U3JU6BI5.cjs.map} +1 -1
- package/dist/{chunk-VCO2IZOG.js → chunk-UA7E7PDS.js} +3 -3
- package/dist/{chunk-VCO2IZOG.js.map → chunk-UA7E7PDS.js.map} +1 -1
- package/dist/{chunk-I2W24RHW.js → chunk-VE6OUO7X.js} +3 -3
- package/dist/{chunk-I2W24RHW.js.map → chunk-VE6OUO7X.js.map} +1 -1
- package/dist/{chunk-STPK44AU.js → chunk-VNWJTCBQ.js} +3 -3
- package/dist/{chunk-STPK44AU.js.map → chunk-VNWJTCBQ.js.map} +1 -1
- package/dist/{chunk-ZNZZCB2M.cjs → chunk-VPIYTQCV.cjs} +9 -9
- package/dist/{chunk-ZNZZCB2M.cjs.map → chunk-VPIYTQCV.cjs.map} +1 -1
- package/dist/{chunk-DLNJLCNO.cjs → chunk-VTKXM7IE.cjs} +4 -4
- package/dist/{chunk-DLNJLCNO.cjs.map → chunk-VTKXM7IE.cjs.map} +1 -1
- package/dist/{chunk-EUUQVDXX.cjs → chunk-W4Q4UEXA.cjs} +14 -14
- package/dist/{chunk-EUUQVDXX.cjs.map → chunk-W4Q4UEXA.cjs.map} +1 -1
- package/dist/{chunk-ZVSW2KS6.js → chunk-WRYZ2752.js} +3 -3
- package/dist/{chunk-ZVSW2KS6.js.map → chunk-WRYZ2752.js.map} +1 -1
- package/dist/{chunk-U3ABLVYH.cjs → chunk-WUNWHOLA.cjs} +6 -6
- package/dist/{chunk-U3ABLVYH.cjs.map → chunk-WUNWHOLA.cjs.map} +1 -1
- package/dist/{chunk-RH43XBNV.cjs → chunk-WWJIW2IH.cjs} +4 -4
- package/dist/{chunk-RH43XBNV.cjs.map → chunk-WWJIW2IH.cjs.map} +1 -1
- package/dist/{chunk-6NXQSQ3A.cjs → chunk-X4LBUPJO.cjs} +10 -10
- package/dist/{chunk-6NXQSQ3A.cjs.map → chunk-X4LBUPJO.cjs.map} +1 -1
- package/dist/{chunk-O4PGFGUW.cjs → chunk-X732DPW4.cjs} +122 -122
- package/dist/{chunk-O4PGFGUW.cjs.map → chunk-X732DPW4.cjs.map} +1 -1
- package/dist/{chunk-4GXECTPS.cjs → chunk-XB54G7WS.cjs} +37 -3
- package/dist/chunk-XB54G7WS.cjs.map +1 -0
- package/dist/{chunk-MAMY5HTT.cjs → chunk-XCVBCY7L.cjs} +20 -20
- package/dist/{chunk-MAMY5HTT.cjs.map → chunk-XCVBCY7L.cjs.map} +1 -1
- package/dist/{chunk-BLPCYP4D.cjs → chunk-XD6GRTH2.cjs} +29 -29
- package/dist/{chunk-BLPCYP4D.cjs.map → chunk-XD6GRTH2.cjs.map} +1 -1
- package/dist/{chunk-IUFDGB5O.js → chunk-XMCIXHGH.js} +3 -3
- package/dist/{chunk-IUFDGB5O.js.map → chunk-XMCIXHGH.js.map} +1 -1
- package/dist/{chunk-KAKH2UZA.js → chunk-XO3WLK65.js} +3 -3
- package/dist/{chunk-KAKH2UZA.js.map → chunk-XO3WLK65.js.map} +1 -1
- package/dist/{chunk-DUPR6FEL.js → chunk-XPNKDFRL.js} +3 -3
- package/dist/{chunk-DUPR6FEL.js.map → chunk-XPNKDFRL.js.map} +1 -1
- package/dist/{chunk-DEZ7XSTG.cjs → chunk-XXVUHLQN.cjs} +7 -7
- package/dist/{chunk-DEZ7XSTG.cjs.map → chunk-XXVUHLQN.cjs.map} +1 -1
- package/dist/{chunk-MZPF2QGM.cjs → chunk-Y5F2OASC.cjs} +13 -13
- package/dist/{chunk-MZPF2QGM.cjs.map → chunk-Y5F2OASC.cjs.map} +1 -1
- package/dist/{chunk-3GGET5LK.cjs → chunk-YGA35Z2P.cjs} +7 -7
- package/dist/{chunk-3GGET5LK.cjs.map → chunk-YGA35Z2P.cjs.map} +1 -1
- package/dist/{chunk-GOKC4CCZ.cjs → chunk-YMHOF6WA.cjs} +8 -8
- package/dist/{chunk-GOKC4CCZ.cjs.map → chunk-YMHOF6WA.cjs.map} +1 -1
- package/dist/{chunk-OXYFTCRW.cjs → chunk-YP5T6NZD.cjs} +4 -4
- package/dist/{chunk-OXYFTCRW.cjs.map → chunk-YP5T6NZD.cjs.map} +1 -1
- package/dist/{chunk-OX2RIVN7.js → chunk-YTLTI5Q2.js} +4 -4
- package/dist/{chunk-OX2RIVN7.js.map → chunk-YTLTI5Q2.js.map} +1 -1
- package/dist/{chunk-372IIHUA.cjs → chunk-YXHX2DAK.cjs} +53 -53
- package/dist/{chunk-372IIHUA.cjs.map → chunk-YXHX2DAK.cjs.map} +1 -1
- package/dist/{chunk-ST2RE5UB.cjs → chunk-Z5KFXHDP.cjs} +6 -6
- package/dist/{chunk-ST2RE5UB.cjs.map → chunk-Z5KFXHDP.cjs.map} +1 -1
- package/dist/{chunk-4Z6ZZKIY.js → chunk-ZIUADGAR.js} +3 -3
- package/dist/{chunk-4Z6ZZKIY.js.map → chunk-ZIUADGAR.js.map} +1 -1
- package/dist/{chunk-LOTMAKUG.cjs → chunk-ZZJ4ZVYR.cjs} +11 -11
- package/dist/{chunk-LOTMAKUG.cjs.map → chunk-ZZJ4ZVYR.cjs.map} +1 -1
- package/dist/components/Alert/index.cjs +6 -6
- package/dist/components/Alert/index.js +2 -2
- package/dist/components/AlertDialog/index.cjs +5 -5
- package/dist/components/AlertDialog/index.js +4 -4
- package/dist/components/AudioPlayer/index.cjs +7 -7
- package/dist/components/AudioPlayer/index.js +2 -2
- package/dist/components/AudioRecorder/index.cjs +7 -7
- package/dist/components/AudioRecorder/index.js +2 -2
- package/dist/components/Autocomplete/index.cjs +4 -4
- package/dist/components/Autocomplete/index.js +3 -3
- package/dist/components/Avatar/index.cjs +6 -6
- package/dist/components/Avatar/index.js +2 -2
- package/dist/components/Badge/index.cjs +4 -4
- package/dist/components/Badge/index.js +2 -2
- package/dist/components/Breadcrumb/index.cjs +4 -4
- package/dist/components/Breadcrumb/index.js +2 -2
- package/dist/components/Button/index.cjs +4 -4
- package/dist/components/Button/index.js +2 -2
- package/dist/components/Card/index.cjs +16 -16
- package/dist/components/Card/index.js +2 -2
- package/dist/components/Checkbox/index.cjs +5 -5
- package/dist/components/Checkbox/index.js +2 -2
- package/dist/components/CollabStatus/index.cjs +5 -5
- package/dist/components/CollabStatus/index.js +2 -2
- package/dist/components/Collapsible/index.cjs +5 -5
- package/dist/components/Collapsible/index.js +2 -2
- package/dist/components/CountryCodeDropdown/index.cjs +5 -5
- package/dist/components/CountryCodeDropdown/index.js +2 -2
- package/dist/components/DateInput/index.cjs +4 -4
- package/dist/components/DateInput/index.js +3 -3
- package/dist/components/Dropdown/index.cjs +9 -9
- package/dist/components/Dropdown/index.js +3 -3
- package/dist/components/FloatingWindow/index.cjs +5 -5
- package/dist/components/FloatingWindow/index.js +3 -3
- package/dist/components/Input/index.cjs +4 -4
- package/dist/components/Input/index.js +2 -2
- package/dist/components/Label/index.cjs +4 -4
- package/dist/components/Label/index.js +2 -2
- package/dist/components/Markdown/index.cjs +17 -17
- package/dist/components/Markdown/index.js +8 -8
- package/dist/components/MediaEditor/index.cjs +14 -14
- package/dist/components/MediaEditor/index.js +9 -9
- package/dist/components/MediaPlayer/index.cjs +6 -6
- package/dist/components/MediaPlayer/index.js +3 -3
- package/dist/components/Modal/index.cjs +10 -10
- package/dist/components/Modal/index.js +2 -2
- package/dist/components/Pagination/index.cjs +5 -5
- package/dist/components/Pagination/index.js +2 -2
- package/dist/components/PhoneInput/index.cjs +5 -5
- package/dist/components/PhoneInput/index.js +3 -3
- package/dist/components/Progress/index.cjs +7 -7
- package/dist/components/Progress/index.js +2 -2
- package/dist/components/QuickAction/index.cjs +7 -7
- package/dist/components/QuickAction/index.js +2 -2
- package/dist/components/Radio/index.cjs +5 -5
- package/dist/components/Radio/index.js +2 -2
- package/dist/components/RecordButton/index.cjs +5 -5
- package/dist/components/RecordButton/index.js +2 -2
- package/dist/components/RichTextEditor/index.cjs +9 -9
- package/dist/components/RichTextEditor/index.js +6 -6
- package/dist/components/SchedulePicker/index.cjs +11 -11
- package/dist/components/SchedulePicker/index.js +2 -2
- package/dist/components/ScrollArea/index.cjs +4 -4
- package/dist/components/ScrollArea/index.js +2 -2
- package/dist/components/Select/index.cjs +4 -4
- package/dist/components/Select/index.js +2 -2
- package/dist/components/Separator/index.cjs +4 -4
- package/dist/components/Separator/index.js +2 -2
- package/dist/components/Sheet/index.cjs +11 -11
- package/dist/components/Sheet/index.d.cts +1 -1
- package/dist/components/Sheet/index.d.ts +1 -1
- package/dist/components/Sheet/index.js +2 -2
- package/dist/components/Skeleton/index.cjs +7 -7
- package/dist/components/Skeleton/index.js +2 -2
- package/dist/components/Slider/index.cjs +6 -6
- package/dist/components/Slider/index.js +2 -2
- package/dist/components/Spinner/index.cjs +6 -6
- package/dist/components/Spinner/index.js +2 -2
- package/dist/components/SuperChat/index.cjs +45 -45
- package/dist/components/SuperChat/index.js +8 -8
- package/dist/components/SuperChat/plugins/index.cjs +9 -9
- package/dist/components/SuperChat/plugins/index.js +3 -3
- package/dist/components/Switch/index.cjs +5 -5
- package/dist/components/Switch/index.js +2 -2
- package/dist/components/Table/index.cjs +10 -10
- package/dist/components/Table/index.js +2 -2
- package/dist/components/Tabs/index.cjs +8 -8
- package/dist/components/Tabs/index.js +2 -2
- package/dist/components/Text/index.cjs +5 -5
- package/dist/components/Text/index.d.cts +1 -1
- package/dist/components/Text/index.d.ts +1 -1
- package/dist/components/Text/index.js +2 -2
- package/dist/components/Textarea/index.cjs +4 -4
- package/dist/components/Textarea/index.js +2 -2
- package/dist/components/ThemeProvider/index.cjs +9 -9
- package/dist/components/ThemeProvider/index.js +3 -3
- package/dist/components/Toggle/index.cjs +4 -4
- package/dist/components/Toggle/index.js +2 -2
- package/dist/components/Tooltip/index.cjs +3 -3
- package/dist/components/Tooltip/index.js +2 -2
- package/dist/datavis.cjs +7 -7
- package/dist/datavis.js +3 -3
- package/dist/esheet.cjs +16 -16
- package/dist/esheet.js +13 -13
- package/dist/hooks/index.cjs +23 -11
- package/dist/hooks/index.d.cts +29 -1
- package/dist/hooks/index.d.ts +29 -1
- package/dist/hooks/index.js +1 -1
- package/dist/index.cjs +1696 -1680
- package/dist/index.d.cts +24 -3
- package/dist/index.d.ts +24 -3
- package/dist/index.js +88 -88
- package/dist/styles.css +1 -1
- package/dist/tailwind-preset.cjs +4 -4
- package/dist/tailwind-preset.js +1 -1
- package/dist/utils/index.cjs +6 -2
- package/dist/utils/index.d.cts +6 -1
- package/dist/utils/index.d.ts +6 -1
- package/dist/utils/index.js +1 -1
- package/package.json +3 -1
- package/dist/CsvBlock-2A5VEDD3.cjs +0 -15
- package/dist/CsvBlock-D6PWAJ5X.js +0 -6
- package/dist/HtmlPreviewBlock-PEHTJ6C3.js +0 -6
- package/dist/HtmlPreviewBlock-SYXCV5RH.cjs +0 -15
- package/dist/MermaidBlock-7NK3AVK2.js +0 -6
- package/dist/MermaidBlock-AFXNP5NK.cjs +0 -15
- package/dist/SurveyBlock-6KRNKFH5.cjs +0 -15
- package/dist/SurveyBlock-NNDGXGG4.js +0 -6
- package/dist/chunk-4GXECTPS.cjs.map +0 -1
- package/dist/chunk-B77UC56R.js.map +0 -1
- package/dist/chunk-F3SOEIN2.js +0 -11
- package/dist/chunk-F3SOEIN2.js.map +0 -1
- package/dist/chunk-OR5DRJCW.cjs +0 -13
- package/dist/chunk-OR5DRJCW.cjs.map +0 -1
- package/dist/chunk-T5F565OC.cjs.map +0 -1
- package/dist/chunk-ZGSC2CB2.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classVarianceAuthority = require('class-variance-authority');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -51,7 +51,7 @@ var DateButton = React__namespace.forwardRef(
|
|
|
51
51
|
ref,
|
|
52
52
|
type: "button",
|
|
53
53
|
"data-slot": "schedule-date-btn",
|
|
54
|
-
className:
|
|
54
|
+
className: chunkS5RVSXDV_cjs.cn(dateButtonVariants({ selected }), className),
|
|
55
55
|
...props,
|
|
56
56
|
children: [
|
|
57
57
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -110,7 +110,7 @@ var TimeButton = React__namespace.forwardRef(
|
|
|
110
110
|
ref,
|
|
111
111
|
type: "button",
|
|
112
112
|
"data-slot": "schedule-time-btn",
|
|
113
|
-
className:
|
|
113
|
+
className: chunkS5RVSXDV_cjs.cn(timeButtonVariants({ selected }), className),
|
|
114
114
|
...props,
|
|
115
115
|
children: time
|
|
116
116
|
}
|
|
@@ -142,7 +142,7 @@ var RadioOption = React__namespace.forwardRef(
|
|
|
142
142
|
{
|
|
143
143
|
ref,
|
|
144
144
|
"data-slot": "schedule-radio",
|
|
145
|
-
className:
|
|
145
|
+
className: chunkS5RVSXDV_cjs.cn(radioOptionVariants({ selected }), className),
|
|
146
146
|
onClick,
|
|
147
147
|
role: "button",
|
|
148
148
|
tabIndex: 0,
|
|
@@ -159,7 +159,7 @@ var RadioOption = React__namespace.forwardRef(
|
|
|
159
159
|
"div",
|
|
160
160
|
{
|
|
161
161
|
"data-slot": "schedule-radio-indicator",
|
|
162
|
-
className:
|
|
162
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
163
163
|
"flex h-5 w-5 items-center justify-center rounded-full border-2",
|
|
164
164
|
selected ? "border-primary-500 bg-primary-800" : "border-neutral-300"
|
|
165
165
|
),
|
|
@@ -278,7 +278,7 @@ var TimePicker = React__namespace.forwardRef(
|
|
|
278
278
|
"div",
|
|
279
279
|
{
|
|
280
280
|
"data-slot": "schedule-time-grid",
|
|
281
|
-
className:
|
|
281
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
282
282
|
"-m-1 grid gap-2 p-1",
|
|
283
283
|
columns === 4 ? "grid-cols-4" : "grid-cols-4 sm:grid-cols-6"
|
|
284
284
|
),
|
|
@@ -322,7 +322,7 @@ var SchedulePicker = React__namespace.forwardRef(
|
|
|
322
322
|
{
|
|
323
323
|
ref,
|
|
324
324
|
"data-slot": "schedule-picker",
|
|
325
|
-
className:
|
|
325
|
+
className: chunkS5RVSXDV_cjs.cn("space-y-4", className),
|
|
326
326
|
...props,
|
|
327
327
|
children: [
|
|
328
328
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -360,5 +360,5 @@ exports.TimePicker = TimePicker;
|
|
|
360
360
|
exports.dateButtonVariants = dateButtonVariants;
|
|
361
361
|
exports.radioOptionVariants = radioOptionVariants;
|
|
362
362
|
exports.timeButtonVariants = timeButtonVariants;
|
|
363
|
-
//# sourceMappingURL=chunk-
|
|
364
|
-
//# sourceMappingURL=chunk-
|
|
363
|
+
//# sourceMappingURL=chunk-3SZQRMHM.cjs.map
|
|
364
|
+
//# sourceMappingURL=chunk-3SZQRMHM.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/SchedulePicker/SchedulePicker.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-Q2EWNXIB.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Date Button Component\n// ============================================================================\n\nconst dateButtonVariants = cva(\n [\n 'flex-shrink-0 rounded-xl border px-3 py-2 text-center transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',\n 'dark:focus:ring-offset-neutral-900',\n ],\n {\n variants: {\n selected: {\n true: 'border-primary-500 bg-primary-50 dark:bg-primary-900/20',\n false:\n 'border-neutral-200 hover:border-neutral-300 dark:border-neutral-700 dark:hover:border-neutral-600',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface DateButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof dateButtonVariants> {\n /** The date to display */\n date: Date;\n}\n\n/**\n * A button for selecting a date in the schedule picker.\n */\nconst DateButton = React.forwardRef<HTMLButtonElement, DateButtonProps>(\n ({ className, date, selected, ...props }, ref) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"schedule-date-btn\"\n className={cn(dateButtonVariants({ selected }), className)}\n {...props}\n >\n <div\n data-slot=\"schedule-date-weekday\"\n className=\"text-muted-foreground text-xs\"\n >\n {date.toLocaleDateString('en-US', { weekday: 'short' })}\n </div>\n <div\n data-slot=\"schedule-date-day\"\n className=\"text-lg font-semibold text-neutral-900 dark:text-white\"\n >\n {date.getDate()}\n </div>\n <div\n data-slot=\"schedule-date-month\"\n className=\"text-muted-foreground text-xs\"\n >\n {date.toLocaleDateString('en-US', { month: 'short' })}\n </div>\n </button>\n );\n }\n);\n\nDateButton.displayName = 'DateButton';\n\n// ============================================================================\n// Time Button Component\n// ============================================================================\n\nconst timeButtonVariants = cva(\n [\n 'rounded-xl border px-2 py-2 text-sm transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',\n 'dark:focus:ring-offset-neutral-900',\n ],\n {\n variants: {\n selected: {\n true: 'border-primary-500 bg-primary-50 dark:bg-primary-900/20',\n false:\n 'border-neutral-200 hover:border-neutral-300 dark:border-neutral-700 dark:hover:border-neutral-600',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface TimeButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof timeButtonVariants> {\n /** The time string to display (e.g., \"8:00 AM\") */\n time: string;\n}\n\n/**\n * A button for selecting a time in the schedule picker.\n */\nconst TimeButton = React.forwardRef<HTMLButtonElement, TimeButtonProps>(\n ({ className, time, selected, ...props }, ref) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"schedule-time-btn\"\n className={cn(timeButtonVariants({ selected }), className)}\n {...props}\n >\n {time}\n </button>\n );\n }\n);\n\nTimeButton.displayName = 'TimeButton';\n\n// ============================================================================\n// Radio Option Component\n// ============================================================================\n\nconst radioOptionVariants = cva(\n [\n 'cursor-pointer rounded-xl border bg-card p-4 transition-all',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-500',\n ],\n {\n variants: {\n selected: {\n true: 'border-2 border-primary-500 ring-2 ring-primary-200 dark:ring-primary-800',\n false: 'border-border',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface RadioOptionProps\n extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof radioOptionVariants> {\n /** Title text for the option */\n title: React.ReactNode;\n /** Description text for the option */\n description?: React.ReactNode;\n /** Whether this option is selected */\n selected?: boolean;\n}\n\n/**\n * A radio-style option card component.\n */\nconst RadioOption = React.forwardRef<HTMLDivElement, RadioOptionProps>(\n (\n { className, title, description, selected, children, onClick, ...props },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-radio\"\n className={cn(radioOptionVariants({ selected }), className)}\n onClick={onClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n <div\n data-slot=\"schedule-radio-indicator\"\n className={cn(\n 'flex h-5 w-5 items-center justify-center rounded-full border-2',\n selected\n ? 'border-primary-500 bg-primary-800'\n : 'border-neutral-300'\n )}\n >\n {selected && (\n <div\n data-slot=\"schedule-radio-dot\"\n className=\"h-2 w-2 rounded-full bg-white\"\n />\n )}\n </div>\n <div>\n <div\n data-slot=\"schedule-radio-title\"\n className=\"font-medium text-neutral-900 dark:text-white\"\n >\n {title}\n </div>\n {description && (\n <div\n data-slot=\"schedule-radio-desc\"\n className=\"text-muted-foreground text-sm\"\n >\n {description}\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n }\n);\n\nRadioOption.displayName = 'RadioOption';\n\n// ============================================================================\n// Date Picker Component\n// ============================================================================\n\nexport interface DatePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available dates to display */\n dates: Date[];\n /** Currently selected date */\n selectedDate?: Date | null;\n /** Callback when a date is selected */\n onDateSelect?: (date: Date) => void;\n /** Label text above the date picker */\n label?: string;\n}\n\n/**\n * A horizontal scrollable date picker component.\n */\nconst DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n className,\n dates,\n selectedDate,\n onDateSelect,\n label = 'Select Date',\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-date-picker\"\n className={className}\n {...props}\n >\n <label\n data-slot=\"schedule-date-label\"\n className=\"mb-2 block text-sm font-medium text-neutral-700 dark:text-neutral-300\"\n >\n {label}\n </label>\n {/* Negative margin + padding allows focus ring to render without clipping */}\n <div\n data-slot=\"schedule-date-list\"\n className=\"-m-1 flex gap-2 overflow-x-auto p-1\"\n >\n {dates.map((date, index) => (\n <DateButton\n key={index}\n date={date}\n selected={selectedDate?.toDateString() === date.toDateString()}\n onClick={(e) => {\n e.stopPropagation();\n onDateSelect?.(date);\n }}\n />\n ))}\n </div>\n </div>\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\n// ============================================================================\n// Time Picker Component\n// ============================================================================\n\nexport interface TimePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available time strings (e.g., [\"8:00 AM\", \"8:30 AM\"]) */\n times: string[];\n /** Currently selected time string */\n selectedTime?: string | null;\n /** Callback when a time is selected */\n onTimeSelect?: (time: string) => void;\n /** Label text above the time picker */\n label?: string;\n /** Number of columns for the time grid */\n columns?: 4 | 6;\n}\n\n/**\n * A grid-based time picker component.\n */\nconst TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n className,\n times,\n selectedTime,\n onTimeSelect,\n label = 'Select Time',\n columns = 6,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-time-picker\"\n className={className}\n {...props}\n >\n <label\n data-slot=\"schedule-time-label\"\n className=\"mb-2 block text-sm font-medium text-neutral-700 dark:text-neutral-300\"\n >\n {label}\n </label>\n {/* Negative margin + padding allows focus ring to render without clipping */}\n <div\n data-slot=\"schedule-time-grid\"\n className={cn(\n '-m-1 grid gap-2 p-1',\n columns === 4 ? 'grid-cols-4' : 'grid-cols-4 sm:grid-cols-6'\n )}\n >\n {times.map((time) => (\n <TimeButton\n key={time}\n time={time}\n selected={selectedTime === time}\n onClick={(e) => {\n e.stopPropagation();\n onTimeSelect?.(time);\n }}\n />\n ))}\n </div>\n </div>\n );\n }\n);\n\nTimePicker.displayName = 'TimePicker';\n\n// ============================================================================\n// Schedule Picker Component (Composite)\n// ============================================================================\n\nexport interface SchedulePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available dates to display */\n dates: Date[];\n /** Array of available time strings */\n times: string[];\n /** Currently selected date */\n selectedDate?: Date | null;\n /** Currently selected time */\n selectedTime?: string | null;\n /** Callback when a date is selected */\n onDateSelect?: (date: Date) => void;\n /** Callback when a time is selected */\n onTimeSelect?: (time: string) => void;\n /** Label for the date picker */\n dateLabel?: string;\n /** Label for the time picker */\n timeLabel?: string;\n /** Number of columns for time grid */\n timeColumns?: 4 | 6;\n /** Whether to show time picker (hidden until date is selected) */\n showTimePicker?: boolean;\n}\n\n/**\n * A complete schedule picker with date and time selection.\n *\n * @example\n * ```tsx\n * <SchedulePicker\n * dates={availableDates}\n * times={availableTimes}\n * selectedDate={selectedDate}\n * selectedTime={selectedTime}\n * onDateSelect={setSelectedDate}\n * onTimeSelect={setSelectedTime}\n * />\n * ```\n */\nconst SchedulePicker = React.forwardRef<HTMLDivElement, SchedulePickerProps>(\n (\n {\n className,\n dates,\n times,\n selectedDate,\n selectedTime,\n onDateSelect,\n onTimeSelect,\n dateLabel = 'Select Date',\n timeLabel = 'Select Time',\n timeColumns = 6,\n showTimePicker = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-picker\"\n className={cn('space-y-4', className)}\n {...props}\n >\n <DatePicker\n dates={dates}\n selectedDate={selectedDate}\n onDateSelect={onDateSelect}\n label={dateLabel}\n />\n {showTimePicker && selectedDate && (\n <TimePicker\n times={times}\n selectedTime={selectedTime}\n onTimeSelect={onTimeSelect}\n label={timeLabel}\n columns={timeColumns}\n />\n )}\n </div>\n );\n }\n);\n\nSchedulePicker.displayName = 'SchedulePicker';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport {\n DateButton,\n TimeButton,\n RadioOption,\n DatePicker,\n TimePicker,\n SchedulePicker,\n dateButtonVariants,\n timeButtonVariants,\n radioOptionVariants,\n};\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/SchedulePicker/SchedulePicker.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-3SZQRMHM.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Date Button Component\n// ============================================================================\n\nconst dateButtonVariants = cva(\n [\n 'flex-shrink-0 rounded-xl border px-3 py-2 text-center transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',\n 'dark:focus:ring-offset-neutral-900',\n ],\n {\n variants: {\n selected: {\n true: 'border-primary-500 bg-primary-50 dark:bg-primary-900/20',\n false:\n 'border-neutral-200 hover:border-neutral-300 dark:border-neutral-700 dark:hover:border-neutral-600',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface DateButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof dateButtonVariants> {\n /** The date to display */\n date: Date;\n}\n\n/**\n * A button for selecting a date in the schedule picker.\n */\nconst DateButton = React.forwardRef<HTMLButtonElement, DateButtonProps>(\n ({ className, date, selected, ...props }, ref) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"schedule-date-btn\"\n className={cn(dateButtonVariants({ selected }), className)}\n {...props}\n >\n <div\n data-slot=\"schedule-date-weekday\"\n className=\"text-muted-foreground text-xs\"\n >\n {date.toLocaleDateString('en-US', { weekday: 'short' })}\n </div>\n <div\n data-slot=\"schedule-date-day\"\n className=\"text-lg font-semibold text-neutral-900 dark:text-white\"\n >\n {date.getDate()}\n </div>\n <div\n data-slot=\"schedule-date-month\"\n className=\"text-muted-foreground text-xs\"\n >\n {date.toLocaleDateString('en-US', { month: 'short' })}\n </div>\n </button>\n );\n }\n);\n\nDateButton.displayName = 'DateButton';\n\n// ============================================================================\n// Time Button Component\n// ============================================================================\n\nconst timeButtonVariants = cva(\n [\n 'rounded-xl border px-2 py-2 text-sm transition-colors',\n 'focus:outline-none focus:ring-2 focus:ring-primary-500 focus:ring-offset-2',\n 'dark:focus:ring-offset-neutral-900',\n ],\n {\n variants: {\n selected: {\n true: 'border-primary-500 bg-primary-50 dark:bg-primary-900/20',\n false:\n 'border-neutral-200 hover:border-neutral-300 dark:border-neutral-700 dark:hover:border-neutral-600',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface TimeButtonProps\n extends\n React.ButtonHTMLAttributes<HTMLButtonElement>,\n VariantProps<typeof timeButtonVariants> {\n /** The time string to display (e.g., \"8:00 AM\") */\n time: string;\n}\n\n/**\n * A button for selecting a time in the schedule picker.\n */\nconst TimeButton = React.forwardRef<HTMLButtonElement, TimeButtonProps>(\n ({ className, time, selected, ...props }, ref) => {\n return (\n <button\n ref={ref}\n type=\"button\"\n data-slot=\"schedule-time-btn\"\n className={cn(timeButtonVariants({ selected }), className)}\n {...props}\n >\n {time}\n </button>\n );\n }\n);\n\nTimeButton.displayName = 'TimeButton';\n\n// ============================================================================\n// Radio Option Component\n// ============================================================================\n\nconst radioOptionVariants = cva(\n [\n 'cursor-pointer rounded-xl border bg-card p-4 transition-all',\n 'focus-within:outline-none focus-within:ring-2 focus-within:ring-primary-500',\n ],\n {\n variants: {\n selected: {\n true: 'border-2 border-primary-500 ring-2 ring-primary-200 dark:ring-primary-800',\n false: 'border-border',\n },\n },\n defaultVariants: {\n selected: false,\n },\n }\n);\n\nexport interface RadioOptionProps\n extends\n Omit<React.HTMLAttributes<HTMLDivElement>, 'title'>,\n VariantProps<typeof radioOptionVariants> {\n /** Title text for the option */\n title: React.ReactNode;\n /** Description text for the option */\n description?: React.ReactNode;\n /** Whether this option is selected */\n selected?: boolean;\n}\n\n/**\n * A radio-style option card component.\n */\nconst RadioOption = React.forwardRef<HTMLDivElement, RadioOptionProps>(\n (\n { className, title, description, selected, children, onClick, ...props },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-radio\"\n className={cn(radioOptionVariants({ selected }), className)}\n onClick={onClick}\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClick?.(e as unknown as React.MouseEvent<HTMLDivElement>);\n }\n }}\n {...props}\n >\n <div className=\"flex items-center gap-3\">\n <div\n data-slot=\"schedule-radio-indicator\"\n className={cn(\n 'flex h-5 w-5 items-center justify-center rounded-full border-2',\n selected\n ? 'border-primary-500 bg-primary-800'\n : 'border-neutral-300'\n )}\n >\n {selected && (\n <div\n data-slot=\"schedule-radio-dot\"\n className=\"h-2 w-2 rounded-full bg-white\"\n />\n )}\n </div>\n <div>\n <div\n data-slot=\"schedule-radio-title\"\n className=\"font-medium text-neutral-900 dark:text-white\"\n >\n {title}\n </div>\n {description && (\n <div\n data-slot=\"schedule-radio-desc\"\n className=\"text-muted-foreground text-sm\"\n >\n {description}\n </div>\n )}\n </div>\n </div>\n {children}\n </div>\n );\n }\n);\n\nRadioOption.displayName = 'RadioOption';\n\n// ============================================================================\n// Date Picker Component\n// ============================================================================\n\nexport interface DatePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available dates to display */\n dates: Date[];\n /** Currently selected date */\n selectedDate?: Date | null;\n /** Callback when a date is selected */\n onDateSelect?: (date: Date) => void;\n /** Label text above the date picker */\n label?: string;\n}\n\n/**\n * A horizontal scrollable date picker component.\n */\nconst DatePicker = React.forwardRef<HTMLDivElement, DatePickerProps>(\n (\n {\n className,\n dates,\n selectedDate,\n onDateSelect,\n label = 'Select Date',\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-date-picker\"\n className={className}\n {...props}\n >\n <label\n data-slot=\"schedule-date-label\"\n className=\"mb-2 block text-sm font-medium text-neutral-700 dark:text-neutral-300\"\n >\n {label}\n </label>\n {/* Negative margin + padding allows focus ring to render without clipping */}\n <div\n data-slot=\"schedule-date-list\"\n className=\"-m-1 flex gap-2 overflow-x-auto p-1\"\n >\n {dates.map((date, index) => (\n <DateButton\n key={index}\n date={date}\n selected={selectedDate?.toDateString() === date.toDateString()}\n onClick={(e) => {\n e.stopPropagation();\n onDateSelect?.(date);\n }}\n />\n ))}\n </div>\n </div>\n );\n }\n);\n\nDatePicker.displayName = 'DatePicker';\n\n// ============================================================================\n// Time Picker Component\n// ============================================================================\n\nexport interface TimePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available time strings (e.g., [\"8:00 AM\", \"8:30 AM\"]) */\n times: string[];\n /** Currently selected time string */\n selectedTime?: string | null;\n /** Callback when a time is selected */\n onTimeSelect?: (time: string) => void;\n /** Label text above the time picker */\n label?: string;\n /** Number of columns for the time grid */\n columns?: 4 | 6;\n}\n\n/**\n * A grid-based time picker component.\n */\nconst TimePicker = React.forwardRef<HTMLDivElement, TimePickerProps>(\n (\n {\n className,\n times,\n selectedTime,\n onTimeSelect,\n label = 'Select Time',\n columns = 6,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-time-picker\"\n className={className}\n {...props}\n >\n <label\n data-slot=\"schedule-time-label\"\n className=\"mb-2 block text-sm font-medium text-neutral-700 dark:text-neutral-300\"\n >\n {label}\n </label>\n {/* Negative margin + padding allows focus ring to render without clipping */}\n <div\n data-slot=\"schedule-time-grid\"\n className={cn(\n '-m-1 grid gap-2 p-1',\n columns === 4 ? 'grid-cols-4' : 'grid-cols-4 sm:grid-cols-6'\n )}\n >\n {times.map((time) => (\n <TimeButton\n key={time}\n time={time}\n selected={selectedTime === time}\n onClick={(e) => {\n e.stopPropagation();\n onTimeSelect?.(time);\n }}\n />\n ))}\n </div>\n </div>\n );\n }\n);\n\nTimePicker.displayName = 'TimePicker';\n\n// ============================================================================\n// Schedule Picker Component (Composite)\n// ============================================================================\n\nexport interface SchedulePickerProps extends React.HTMLAttributes<HTMLDivElement> {\n /** Array of available dates to display */\n dates: Date[];\n /** Array of available time strings */\n times: string[];\n /** Currently selected date */\n selectedDate?: Date | null;\n /** Currently selected time */\n selectedTime?: string | null;\n /** Callback when a date is selected */\n onDateSelect?: (date: Date) => void;\n /** Callback when a time is selected */\n onTimeSelect?: (time: string) => void;\n /** Label for the date picker */\n dateLabel?: string;\n /** Label for the time picker */\n timeLabel?: string;\n /** Number of columns for time grid */\n timeColumns?: 4 | 6;\n /** Whether to show time picker (hidden until date is selected) */\n showTimePicker?: boolean;\n}\n\n/**\n * A complete schedule picker with date and time selection.\n *\n * @example\n * ```tsx\n * <SchedulePicker\n * dates={availableDates}\n * times={availableTimes}\n * selectedDate={selectedDate}\n * selectedTime={selectedTime}\n * onDateSelect={setSelectedDate}\n * onTimeSelect={setSelectedTime}\n * />\n * ```\n */\nconst SchedulePicker = React.forwardRef<HTMLDivElement, SchedulePickerProps>(\n (\n {\n className,\n dates,\n times,\n selectedDate,\n selectedTime,\n onDateSelect,\n onTimeSelect,\n dateLabel = 'Select Date',\n timeLabel = 'Select Time',\n timeColumns = 6,\n showTimePicker = true,\n ...props\n },\n ref\n ) => {\n return (\n <div\n ref={ref}\n data-slot=\"schedule-picker\"\n className={cn('space-y-4', className)}\n {...props}\n >\n <DatePicker\n dates={dates}\n selectedDate={selectedDate}\n onDateSelect={onDateSelect}\n label={dateLabel}\n />\n {showTimePicker && selectedDate && (\n <TimePicker\n times={times}\n selectedTime={selectedTime}\n onTimeSelect={onTimeSelect}\n label={timeLabel}\n columns={timeColumns}\n />\n )}\n </div>\n );\n }\n);\n\nSchedulePicker.displayName = 'SchedulePicker';\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport {\n DateButton,\n TimeButton,\n RadioOption,\n DatePicker,\n TimePicker,\n SchedulePicker,\n dateButtonVariants,\n timeButtonVariants,\n radioOptionVariants,\n};\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classVarianceAuthority = require('class-variance-authority');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -106,7 +106,7 @@ function Pagination({
|
|
|
106
106
|
"data-slot": "pagination",
|
|
107
107
|
role: "navigation",
|
|
108
108
|
"aria-label": label || "Pagination",
|
|
109
|
-
className:
|
|
109
|
+
className: chunkS5RVSXDV_cjs.cn("flex items-center gap-1", className),
|
|
110
110
|
children: [
|
|
111
111
|
showFirstLast && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
112
112
|
"button",
|
|
@@ -116,7 +116,7 @@ function Pagination({
|
|
|
116
116
|
onClick: () => onPageChange(1),
|
|
117
117
|
disabled: !canGoPrev,
|
|
118
118
|
"aria-label": labels?.first || "Go to first page",
|
|
119
|
-
className:
|
|
119
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
120
120
|
children: [
|
|
121
121
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronsLeftIcon, { className: "h-4 w-4" }),
|
|
122
122
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: labels?.first || "First" })
|
|
@@ -131,7 +131,7 @@ function Pagination({
|
|
|
131
131
|
onClick: () => onPageChange(page - 1),
|
|
132
132
|
disabled: !canGoPrev,
|
|
133
133
|
"aria-label": labels?.previous || "Go to previous page",
|
|
134
|
-
className:
|
|
134
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
135
135
|
children: [
|
|
136
136
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { className: "h-4 w-4" }),
|
|
137
137
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only sm:not-sr-only", children: labels?.previous || "Previous" })
|
|
@@ -144,7 +144,7 @@ function Pagination({
|
|
|
144
144
|
"span",
|
|
145
145
|
{
|
|
146
146
|
"data-slot": "pagination-ellipsis",
|
|
147
|
-
className:
|
|
147
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
148
148
|
paginationButtonVariants({ variant, size }),
|
|
149
149
|
"cursor-default hover:bg-transparent"
|
|
150
150
|
),
|
|
@@ -163,7 +163,7 @@ function Pagination({
|
|
|
163
163
|
"aria-label": `Go to page ${item}`,
|
|
164
164
|
"aria-current": item === page ? "page" : void 0,
|
|
165
165
|
"data-active": item === page,
|
|
166
|
-
className:
|
|
166
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
167
167
|
children: item
|
|
168
168
|
},
|
|
169
169
|
item
|
|
@@ -177,7 +177,7 @@ function Pagination({
|
|
|
177
177
|
onClick: () => onPageChange(page + 1),
|
|
178
178
|
disabled: !canGoNext,
|
|
179
179
|
"aria-label": labels?.next || "Go to next page",
|
|
180
|
-
className:
|
|
180
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
181
181
|
children: [
|
|
182
182
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only sm:not-sr-only", children: labels?.next || "Next" }),
|
|
183
183
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "h-4 w-4" })
|
|
@@ -192,7 +192,7 @@ function Pagination({
|
|
|
192
192
|
onClick: () => onPageChange(totalPages),
|
|
193
193
|
disabled: !canGoNext,
|
|
194
194
|
"aria-label": labels?.last || "Go to last page",
|
|
195
|
-
className:
|
|
195
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
196
196
|
children: [
|
|
197
197
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: labels?.last || "Last" }),
|
|
198
198
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronsRightIcon, { className: "h-4 w-4" })
|
|
@@ -222,7 +222,7 @@ function SimplePagination({
|
|
|
222
222
|
"data-slot": "simple-pagination",
|
|
223
223
|
role: "navigation",
|
|
224
224
|
"aria-label": label || "Pagination",
|
|
225
|
-
className:
|
|
225
|
+
className: chunkS5RVSXDV_cjs.cn("flex items-center gap-2", className),
|
|
226
226
|
children: [
|
|
227
227
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
228
228
|
"button",
|
|
@@ -232,7 +232,7 @@ function SimplePagination({
|
|
|
232
232
|
onClick: () => onPageChange(page - 1),
|
|
233
233
|
disabled: !canGoPrev,
|
|
234
234
|
"aria-label": "Go to previous page",
|
|
235
|
-
className:
|
|
235
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
236
236
|
children: [
|
|
237
237
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronLeftIcon, { className: "h-4 w-4" }),
|
|
238
238
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Previous" })
|
|
@@ -260,7 +260,7 @@ function SimplePagination({
|
|
|
260
260
|
onClick: () => onPageChange(page + 1),
|
|
261
261
|
disabled: !canGoNext,
|
|
262
262
|
"aria-label": "Go to next page",
|
|
263
|
-
className:
|
|
263
|
+
className: chunkS5RVSXDV_cjs.cn(paginationButtonVariants({ variant, size })),
|
|
264
264
|
children: [
|
|
265
265
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "Next" }),
|
|
266
266
|
/* @__PURE__ */ jsxRuntime.jsx(ChevronRightIcon, { className: "h-4 w-4" })
|
|
@@ -358,5 +358,5 @@ function ChevronsRightIcon({ className }) {
|
|
|
358
358
|
exports.Pagination = Pagination;
|
|
359
359
|
exports.SimplePagination = SimplePagination;
|
|
360
360
|
exports.paginationButtonVariants = paginationButtonVariants;
|
|
361
|
-
//# sourceMappingURL=chunk-
|
|
362
|
-
//# sourceMappingURL=chunk-
|
|
361
|
+
//# sourceMappingURL=chunk-4AE2L6AO.cjs.map
|
|
362
|
+
//# sourceMappingURL=chunk-4AE2L6AO.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-NIEIRA5A.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Pagination Button Variants\n// ============================================================================\n\nconst paginationButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'font-medium transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n variant: {\n default: [\n 'text-muted-foreground hover:text-foreground hover:bg-muted',\n 'data-[active=true]:bg-primary-800 data-[active=true]:text-white',\n ],\n outline: [\n 'border border-border text-muted-foreground',\n 'hover:bg-muted hover:text-foreground',\n 'data-[active=true]:border-primary-500 data-[active=true]:bg-primary-50 data-[active=true]:text-primary-800',\n 'dark:data-[active=true]:bg-primary-950',\n ],\n ghost: [\n 'text-muted-foreground hover:text-foreground hover:bg-muted',\n 'data-[active=true]:text-primary-800 data-[active=true]:font-semibold',\n ],\n },\n size: {\n sm: 'h-8 min-w-8 px-2.5 text-xs rounded-md gap-1',\n md: 'h-10 min-w-10 px-3 text-sm rounded-lg gap-1.5',\n lg: 'h-12 min-w-12 px-4 text-base rounded-xl gap-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\n// ============================================================================\n// Pagination Component\n// ============================================================================\n\nexport interface PaginationProps extends VariantProps<\n typeof paginationButtonVariants\n> {\n /** Current page (1-indexed) */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number;\n /** Show first/last page buttons */\n showFirstLast?: boolean;\n /** Show prev/next buttons */\n showPrevNext?: boolean;\n /** Labels for navigation buttons */\n labels?: {\n first?: string;\n previous?: string;\n next?: string;\n last?: string;\n };\n /** Accessible label for the navigation landmark */\n label?: string;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A pagination component for navigating through pages.\n *\n * @example\n * ```tsx\n * <Pagination\n * page={currentPage}\n * totalPages={10}\n * onPageChange={setCurrentPage}\n * />\n * ```\n */\nfunction Pagination({\n page,\n totalPages,\n onPageChange,\n siblingCount = 1,\n showFirstLast = true,\n showPrevNext = true,\n variant,\n size,\n labels,\n label,\n className,\n}: PaginationProps) {\n // Calculate page range to display\n const pageRange = React.useMemo(() => {\n const range: (number | 'ellipsis')[] = [];\n\n // Always show first page\n range.push(1);\n\n // Calculate start and end of sibling range\n const leftSiblingIndex = Math.max(page - siblingCount, 2);\n const rightSiblingIndex = Math.min(page + siblingCount, totalPages - 1);\n\n // Show left ellipsis if needed\n const showLeftEllipsis = leftSiblingIndex > 2;\n // Show right ellipsis if needed\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (showLeftEllipsis) {\n range.push('ellipsis');\n }\n\n // Add sibling pages\n for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {\n if (i !== 1 && i !== totalPages) {\n range.push(i);\n }\n }\n\n if (showRightEllipsis) {\n range.push('ellipsis');\n }\n\n // Always show last page if more than 1 page\n if (totalPages > 1) {\n range.push(totalPages);\n }\n\n return range;\n }, [page, totalPages, siblingCount]);\n\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <nav\n data-slot=\"pagination\"\n role=\"navigation\"\n aria-label={label || 'Pagination'}\n className={cn('flex items-center gap-1', className)}\n >\n {/* First Page Button */}\n {showFirstLast && (\n <button\n data-slot=\"pagination-first\"\n type=\"button\"\n onClick={() => onPageChange(1)}\n disabled={!canGoPrev}\n aria-label={labels?.first || 'Go to first page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronsLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels?.first || 'First'}</span>\n </button>\n )}\n\n {/* Previous Button */}\n {showPrevNext && (\n <button\n data-slot=\"pagination-prev\"\n type=\"button\"\n onClick={() => onPageChange(page - 1)}\n disabled={!canGoPrev}\n aria-label={labels?.previous || 'Go to previous page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only sm:not-sr-only\">\n {labels?.previous || 'Previous'}\n </span>\n </button>\n )}\n\n {/* Page Numbers */}\n <div data-slot=\"pagination-pages\" className=\"flex items-center gap-1\">\n {pageRange.map((item, index) => {\n if (item === 'ellipsis') {\n return (\n <span\n key={`ellipsis-${index}`}\n data-slot=\"pagination-ellipsis\"\n className={cn(\n paginationButtonVariants({ variant, size }),\n 'cursor-default hover:bg-transparent'\n )}\n aria-hidden=\"true\"\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={item}\n data-slot=\"pagination-page\"\n type=\"button\"\n onClick={() => onPageChange(item)}\n aria-label={`Go to page ${item}`}\n aria-current={item === page ? 'page' : undefined}\n data-active={item === page}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n {item}\n </button>\n );\n })}\n </div>\n\n {/* Next Button */}\n {showPrevNext && (\n <button\n data-slot=\"pagination-next\"\n type=\"button\"\n onClick={() => onPageChange(page + 1)}\n disabled={!canGoNext}\n aria-label={labels?.next || 'Go to next page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span className=\"sr-only sm:not-sr-only\">\n {labels?.next || 'Next'}\n </span>\n <ChevronRightIcon className=\"h-4 w-4\" />\n </button>\n )}\n\n {/* Last Page Button */}\n {showFirstLast && (\n <button\n data-slot=\"pagination-last\"\n type=\"button\"\n onClick={() => onPageChange(totalPages)}\n disabled={!canGoNext}\n aria-label={labels?.last || 'Go to last page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span className=\"sr-only\">{labels?.last || 'Last'}</span>\n <ChevronsRightIcon className=\"h-4 w-4\" />\n </button>\n )}\n </nav>\n );\n}\n\nPagination.displayName = 'Pagination';\n\n// ============================================================================\n// Simple Pagination Component\n// ============================================================================\n\nexport interface SimplePaginationProps extends VariantProps<\n typeof paginationButtonVariants\n> {\n /** Current page */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Show page info */\n showPageInfo?: boolean;\n /** Accessible label for the navigation landmark */\n label?: string;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A simple pagination with just prev/next buttons.\n *\n * @example\n * ```tsx\n * <SimplePagination\n * page={1}\n * totalPages={10}\n * onPageChange={setPage}\n * showPageInfo\n * />\n * ```\n */\nfunction SimplePagination({\n page,\n totalPages,\n onPageChange,\n showPageInfo = true,\n variant,\n size,\n label,\n className,\n}: SimplePaginationProps) {\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <nav\n data-slot=\"simple-pagination\"\n role=\"navigation\"\n aria-label={label || 'Pagination'}\n className={cn('flex items-center gap-2', className)}\n >\n <button\n data-slot=\"pagination-prev\"\n type=\"button\"\n onClick={() => onPageChange(page - 1)}\n disabled={!canGoPrev}\n aria-label=\"Go to previous page\"\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n <span>Previous</span>\n </button>\n\n {showPageInfo && (\n <span\n data-slot=\"pagination-info\"\n className=\"text-muted-foreground px-2 text-sm\"\n >\n Page {page} of {totalPages}\n </span>\n )}\n\n <button\n data-slot=\"pagination-next\"\n type=\"button\"\n onClick={() => onPageChange(page + 1)}\n disabled={!canGoNext}\n aria-label=\"Go to next page\"\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span>Next</span>\n <ChevronRightIcon className=\"h-4 w-4\" />\n </button>\n </nav>\n );\n}\n\nSimplePagination.displayName = 'SimplePagination';\n\n// ============================================================================\n// Icons\n// ============================================================================\n\nfunction ChevronLeftIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nfunction ChevronsLeftIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m11 17-5-5 5-5\" />\n <path d=\"m18 17-5-5 5-5\" />\n </svg>\n );\n}\n\nfunction ChevronsRightIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m6 17 5-5-5-5\" />\n <path d=\"m13 17 5-5-5-5\" />\n </svg>\n );\n}\n\nexport { Pagination, SimplePagination, paginationButtonVariants };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Pagination/Pagination.tsx"],"names":["cva","React","jsxs","cn","jsx"],"mappings":"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","file":"chunk-4AE2L6AO.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Pagination Button Variants\n// ============================================================================\n\nconst paginationButtonVariants = cva(\n [\n 'inline-flex items-center justify-center',\n 'font-medium transition-colors duration-200',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n 'disabled:pointer-events-none disabled:opacity-50',\n ],\n {\n variants: {\n variant: {\n default: [\n 'text-muted-foreground hover:text-foreground hover:bg-muted',\n 'data-[active=true]:bg-primary-800 data-[active=true]:text-white',\n ],\n outline: [\n 'border border-border text-muted-foreground',\n 'hover:bg-muted hover:text-foreground',\n 'data-[active=true]:border-primary-500 data-[active=true]:bg-primary-50 data-[active=true]:text-primary-800',\n 'dark:data-[active=true]:bg-primary-950',\n ],\n ghost: [\n 'text-muted-foreground hover:text-foreground hover:bg-muted',\n 'data-[active=true]:text-primary-800 data-[active=true]:font-semibold',\n ],\n },\n size: {\n sm: 'h-8 min-w-8 px-2.5 text-xs rounded-md gap-1',\n md: 'h-10 min-w-10 px-3 text-sm rounded-lg gap-1.5',\n lg: 'h-12 min-w-12 px-4 text-base rounded-xl gap-2',\n },\n },\n defaultVariants: {\n variant: 'default',\n size: 'md',\n },\n }\n);\n\n// ============================================================================\n// Pagination Component\n// ============================================================================\n\nexport interface PaginationProps extends VariantProps<\n typeof paginationButtonVariants\n> {\n /** Current page (1-indexed) */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Number of sibling pages to show on each side of current page */\n siblingCount?: number;\n /** Show first/last page buttons */\n showFirstLast?: boolean;\n /** Show prev/next buttons */\n showPrevNext?: boolean;\n /** Labels for navigation buttons */\n labels?: {\n first?: string;\n previous?: string;\n next?: string;\n last?: string;\n };\n /** Accessible label for the navigation landmark */\n label?: string;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A pagination component for navigating through pages.\n *\n * @example\n * ```tsx\n * <Pagination\n * page={currentPage}\n * totalPages={10}\n * onPageChange={setCurrentPage}\n * />\n * ```\n */\nfunction Pagination({\n page,\n totalPages,\n onPageChange,\n siblingCount = 1,\n showFirstLast = true,\n showPrevNext = true,\n variant,\n size,\n labels,\n label,\n className,\n}: PaginationProps) {\n // Calculate page range to display\n const pageRange = React.useMemo(() => {\n const range: (number | 'ellipsis')[] = [];\n\n // Always show first page\n range.push(1);\n\n // Calculate start and end of sibling range\n const leftSiblingIndex = Math.max(page - siblingCount, 2);\n const rightSiblingIndex = Math.min(page + siblingCount, totalPages - 1);\n\n // Show left ellipsis if needed\n const showLeftEllipsis = leftSiblingIndex > 2;\n // Show right ellipsis if needed\n const showRightEllipsis = rightSiblingIndex < totalPages - 1;\n\n if (showLeftEllipsis) {\n range.push('ellipsis');\n }\n\n // Add sibling pages\n for (let i = leftSiblingIndex; i <= rightSiblingIndex; i++) {\n if (i !== 1 && i !== totalPages) {\n range.push(i);\n }\n }\n\n if (showRightEllipsis) {\n range.push('ellipsis');\n }\n\n // Always show last page if more than 1 page\n if (totalPages > 1) {\n range.push(totalPages);\n }\n\n return range;\n }, [page, totalPages, siblingCount]);\n\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <nav\n data-slot=\"pagination\"\n role=\"navigation\"\n aria-label={label || 'Pagination'}\n className={cn('flex items-center gap-1', className)}\n >\n {/* First Page Button */}\n {showFirstLast && (\n <button\n data-slot=\"pagination-first\"\n type=\"button\"\n onClick={() => onPageChange(1)}\n disabled={!canGoPrev}\n aria-label={labels?.first || 'Go to first page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronsLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only\">{labels?.first || 'First'}</span>\n </button>\n )}\n\n {/* Previous Button */}\n {showPrevNext && (\n <button\n data-slot=\"pagination-prev\"\n type=\"button\"\n onClick={() => onPageChange(page - 1)}\n disabled={!canGoPrev}\n aria-label={labels?.previous || 'Go to previous page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n <span className=\"sr-only sm:not-sr-only\">\n {labels?.previous || 'Previous'}\n </span>\n </button>\n )}\n\n {/* Page Numbers */}\n <div data-slot=\"pagination-pages\" className=\"flex items-center gap-1\">\n {pageRange.map((item, index) => {\n if (item === 'ellipsis') {\n return (\n <span\n key={`ellipsis-${index}`}\n data-slot=\"pagination-ellipsis\"\n className={cn(\n paginationButtonVariants({ variant, size }),\n 'cursor-default hover:bg-transparent'\n )}\n aria-hidden=\"true\"\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={item}\n data-slot=\"pagination-page\"\n type=\"button\"\n onClick={() => onPageChange(item)}\n aria-label={`Go to page ${item}`}\n aria-current={item === page ? 'page' : undefined}\n data-active={item === page}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n {item}\n </button>\n );\n })}\n </div>\n\n {/* Next Button */}\n {showPrevNext && (\n <button\n data-slot=\"pagination-next\"\n type=\"button\"\n onClick={() => onPageChange(page + 1)}\n disabled={!canGoNext}\n aria-label={labels?.next || 'Go to next page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span className=\"sr-only sm:not-sr-only\">\n {labels?.next || 'Next'}\n </span>\n <ChevronRightIcon className=\"h-4 w-4\" />\n </button>\n )}\n\n {/* Last Page Button */}\n {showFirstLast && (\n <button\n data-slot=\"pagination-last\"\n type=\"button\"\n onClick={() => onPageChange(totalPages)}\n disabled={!canGoNext}\n aria-label={labels?.last || 'Go to last page'}\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span className=\"sr-only\">{labels?.last || 'Last'}</span>\n <ChevronsRightIcon className=\"h-4 w-4\" />\n </button>\n )}\n </nav>\n );\n}\n\nPagination.displayName = 'Pagination';\n\n// ============================================================================\n// Simple Pagination Component\n// ============================================================================\n\nexport interface SimplePaginationProps extends VariantProps<\n typeof paginationButtonVariants\n> {\n /** Current page */\n page: number;\n /** Total number of pages */\n totalPages: number;\n /** Callback when page changes */\n onPageChange: (page: number) => void;\n /** Show page info */\n showPageInfo?: boolean;\n /** Accessible label for the navigation landmark */\n label?: string;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A simple pagination with just prev/next buttons.\n *\n * @example\n * ```tsx\n * <SimplePagination\n * page={1}\n * totalPages={10}\n * onPageChange={setPage}\n * showPageInfo\n * />\n * ```\n */\nfunction SimplePagination({\n page,\n totalPages,\n onPageChange,\n showPageInfo = true,\n variant,\n size,\n label,\n className,\n}: SimplePaginationProps) {\n const canGoPrev = page > 1;\n const canGoNext = page < totalPages;\n\n return (\n <nav\n data-slot=\"simple-pagination\"\n role=\"navigation\"\n aria-label={label || 'Pagination'}\n className={cn('flex items-center gap-2', className)}\n >\n <button\n data-slot=\"pagination-prev\"\n type=\"button\"\n onClick={() => onPageChange(page - 1)}\n disabled={!canGoPrev}\n aria-label=\"Go to previous page\"\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <ChevronLeftIcon className=\"h-4 w-4\" />\n <span>Previous</span>\n </button>\n\n {showPageInfo && (\n <span\n data-slot=\"pagination-info\"\n className=\"text-muted-foreground px-2 text-sm\"\n >\n Page {page} of {totalPages}\n </span>\n )}\n\n <button\n data-slot=\"pagination-next\"\n type=\"button\"\n onClick={() => onPageChange(page + 1)}\n disabled={!canGoNext}\n aria-label=\"Go to next page\"\n className={cn(paginationButtonVariants({ variant, size }))}\n >\n <span>Next</span>\n <ChevronRightIcon className=\"h-4 w-4\" />\n </button>\n </nav>\n );\n}\n\nSimplePagination.displayName = 'SimplePagination';\n\n// ============================================================================\n// Icons\n// ============================================================================\n\nfunction ChevronLeftIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m15 18-6-6 6-6\" />\n </svg>\n );\n}\n\nfunction ChevronRightIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m9 18 6-6-6-6\" />\n </svg>\n );\n}\n\nfunction ChevronsLeftIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m11 17-5-5 5-5\" />\n <path d=\"m18 17-5-5 5-5\" />\n </svg>\n );\n}\n\nfunction ChevronsRightIcon({ className }: { className?: string }) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n className={className}\n aria-hidden=\"true\"\n >\n <path d=\"m6 17 5-5-5-5\" />\n <path d=\"m13 17 5-5-5-5\" />\n </svg>\n );\n}\n\nexport { Pagination, SimplePagination, paginationButtonVariants };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classVarianceAuthority = require('class-variance-authority');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -97,14 +97,14 @@ function RadioGroup({
|
|
|
97
97
|
{
|
|
98
98
|
"data-slot": "radio-group",
|
|
99
99
|
role: "radiogroup",
|
|
100
|
-
className:
|
|
100
|
+
className: chunkS5RVSXDV_cjs.cn("flex flex-col gap-2", className),
|
|
101
101
|
"aria-describedby": [description ? descriptionId : null, error ? errorId : null].filter(Boolean).join(" ") || void 0,
|
|
102
102
|
children: [
|
|
103
103
|
label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
104
104
|
"legend",
|
|
105
105
|
{
|
|
106
106
|
"data-slot": "radio-group-legend",
|
|
107
|
-
className:
|
|
107
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
108
108
|
"text-foreground font-medium",
|
|
109
109
|
size === "sm" && "text-xs",
|
|
110
110
|
size === "md" && "text-sm",
|
|
@@ -118,7 +118,7 @@ function RadioGroup({
|
|
|
118
118
|
{
|
|
119
119
|
id: descriptionId,
|
|
120
120
|
"data-slot": "radio-group-description",
|
|
121
|
-
className:
|
|
121
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
122
122
|
"text-muted-foreground",
|
|
123
123
|
size === "sm" && "text-[10px]",
|
|
124
124
|
size === "md" && "text-xs",
|
|
@@ -131,7 +131,7 @@ function RadioGroup({
|
|
|
131
131
|
"div",
|
|
132
132
|
{
|
|
133
133
|
"data-slot": "radio-group-items",
|
|
134
|
-
className:
|
|
134
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
135
135
|
"flex gap-4",
|
|
136
136
|
orientation === "vertical" && "flex-col gap-3"
|
|
137
137
|
),
|
|
@@ -143,7 +143,7 @@ function RadioGroup({
|
|
|
143
143
|
{
|
|
144
144
|
id: errorId,
|
|
145
145
|
"data-slot": "radio-group-error",
|
|
146
|
-
className:
|
|
146
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
147
147
|
"text-destructive",
|
|
148
148
|
size === "sm" && "text-xs",
|
|
149
149
|
size === "md" && "text-sm",
|
|
@@ -203,7 +203,7 @@ var Radio = React__namespace.forwardRef(
|
|
|
203
203
|
disabled: isDisabled,
|
|
204
204
|
onChange: handleChange,
|
|
205
205
|
"aria-describedby": description ? descriptionId : void 0,
|
|
206
|
-
className:
|
|
206
|
+
className: chunkS5RVSXDV_cjs.cn(radioVariants({ size }), className),
|
|
207
207
|
...props
|
|
208
208
|
}
|
|
209
209
|
),
|
|
@@ -211,7 +211,7 @@ var Radio = React__namespace.forwardRef(
|
|
|
211
211
|
"span",
|
|
212
212
|
{
|
|
213
213
|
"data-slot": "radio-dot",
|
|
214
|
-
className:
|
|
214
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
215
215
|
"bg-primary-800 dark:bg-primary-500 pointer-events-none absolute rounded-full transition-transform",
|
|
216
216
|
size === "sm" && "h-2 w-2",
|
|
217
217
|
size === "md" && "h-2.5 w-2.5",
|
|
@@ -229,7 +229,7 @@ var Radio = React__namespace.forwardRef(
|
|
|
229
229
|
{
|
|
230
230
|
htmlFor: radioId,
|
|
231
231
|
"data-slot": "radio-label",
|
|
232
|
-
className:
|
|
232
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
233
233
|
"text-foreground cursor-pointer font-medium select-none",
|
|
234
234
|
size === "sm" && "text-xs",
|
|
235
235
|
size === "md" && "text-sm",
|
|
@@ -244,7 +244,7 @@ var Radio = React__namespace.forwardRef(
|
|
|
244
244
|
{
|
|
245
245
|
id: descriptionId,
|
|
246
246
|
"data-slot": "radio-description",
|
|
247
|
-
className:
|
|
247
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
248
248
|
"text-muted-foreground",
|
|
249
249
|
size === "sm" && "text-[10px]",
|
|
250
250
|
size === "md" && "text-xs",
|
|
@@ -258,7 +258,7 @@ var Radio = React__namespace.forwardRef(
|
|
|
258
258
|
"div",
|
|
259
259
|
{
|
|
260
260
|
"data-slot": "radio-wrapper",
|
|
261
|
-
className:
|
|
261
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
262
262
|
"flex items-start gap-3",
|
|
263
263
|
labelPosition === "left" && "flex-row-reverse"
|
|
264
264
|
),
|
|
@@ -275,5 +275,5 @@ Radio.displayName = "Radio";
|
|
|
275
275
|
exports.Radio = Radio;
|
|
276
276
|
exports.RadioGroup = RadioGroup;
|
|
277
277
|
exports.radioVariants = radioVariants;
|
|
278
|
-
//# sourceMappingURL=chunk-
|
|
279
|
-
//# sourceMappingURL=chunk-
|
|
278
|
+
//# sourceMappingURL=chunk-5IDYOJHO.cjs.map
|
|
279
|
+
//# sourceMappingURL=chunk-5IDYOJHO.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/Radio/Radio.tsx"],"names":["React","cva","jsx","jsxs","cn"],"mappings":"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","file":"chunk-XP6HELVG.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Radio Group Context\n// ============================================================================\n\ninterface RadioGroupContextValue {\n name: string;\n value: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | null;\n}\n\nconst RadioGroupContext = React.createContext<\n RadioGroupContextValue | undefined\n>(undefined);\n\nfunction useRadioGroupContext() {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error('Radio must be used within a RadioGroup');\n }\n return context;\n}\n\n// ============================================================================\n// Radio Variants\n// ============================================================================\n\nconst radioVariants = cva(\n [\n 'shrink-0 appearance-none',\n 'border-2 border-input rounded-full',\n 'bg-background',\n 'transition-all duration-150',\n 'cursor-pointer',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'checked:border-primary-500 dark:checked:border-primary-800',\n ],\n {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\n// ============================================================================\n// Radio Group\n// ============================================================================\n\nexport interface RadioGroupProps {\n /** Group name (required for native form behavior) */\n name?: string;\n /** Controlled value */\n value?: string;\n /** Default value (uncontrolled) */\n defaultValue?: string;\n /** Callback when value changes */\n onValueChange?: (value: string) => void;\n /** Group label */\n label?: string;\n /** Description for the group */\n description?: string;\n /** Error message */\n error?: string;\n /** Whether all radios are disabled */\n disabled?: boolean;\n /** Size of all radios */\n size?: 'sm' | 'md' | 'lg';\n /** Orientation of radio items */\n orientation?: 'horizontal' | 'vertical';\n /** Children radio items */\n children: React.ReactNode;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A radio group component for selecting one option from a set.\n *\n * @example\n * ```tsx\n * <RadioGroup name=\"plan\" label=\"Select a plan\" onValueChange={setPlan}>\n * <Radio value=\"free\" label=\"Free\" />\n * <Radio value=\"pro\" label=\"Pro\" />\n * <Radio value=\"enterprise\" label=\"Enterprise\" />\n * </RadioGroup>\n * ```\n */\nfunction RadioGroup({\n name,\n value: controlledValue,\n defaultValue = '',\n onValueChange,\n label,\n description,\n error,\n disabled = false,\n size = 'md',\n orientation = 'vertical',\n children,\n className,\n}: RadioGroupProps) {\n const generatedName = React.useId();\n const groupName = name || generatedName;\n const groupId = React.useId();\n const descriptionId = `${groupId}-description`;\n const errorId = `${groupId}-error`;\n\n const [uncontrolledValue, setUncontrolledValue] =\n React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <RadioGroupContext.Provider\n value={{ name: groupName, value, onChange: handleChange, disabled, size }}\n >\n <fieldset\n data-slot=\"radio-group\"\n role=\"radiogroup\"\n className={cn('flex flex-col gap-2', className)}\n aria-describedby={\n [description ? descriptionId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n >\n {label && (\n <legend\n data-slot=\"radio-group-legend\"\n className={cn(\n 'text-foreground font-medium',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base'\n )}\n >\n {label}\n </legend>\n )}\n {description && (\n <p\n id={descriptionId}\n data-slot=\"radio-group-description\"\n className={cn(\n 'text-muted-foreground',\n size === 'sm' && 'text-[10px]',\n size === 'md' && 'text-xs',\n size === 'lg' && 'text-sm'\n )}\n >\n {description}\n </p>\n )}\n <div\n data-slot=\"radio-group-items\"\n className={cn(\n 'flex gap-4',\n orientation === 'vertical' && 'flex-col gap-3'\n )}\n >\n {children}\n </div>\n {error && (\n <p\n id={errorId}\n data-slot=\"radio-group-error\"\n className={cn(\n 'text-destructive',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base'\n )}\n role=\"alert\"\n >\n {error}\n </p>\n )}\n </fieldset>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n\n// ============================================================================\n// Radio Item\n// ============================================================================\n\nexport interface RadioProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n VariantProps<typeof radioVariants> {\n /** Value for this radio option */\n value: string;\n /** Label for the radio */\n label?: string;\n /** Description text below the label */\n description?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n}\n\n/**\n * An individual radio item within a RadioGroup.\n *\n * @example\n * ```tsx\n * <Radio value=\"option1\" label=\"Option 1\" />\n * <Radio value=\"option2\" label=\"Option 2\" description=\"Additional details\" />\n * ```\n */\nconst Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n className,\n size: propSize,\n value,\n label,\n description,\n labelPosition = 'right',\n disabled: propDisabled,\n id,\n ...props\n },\n ref\n ) => {\n const context = useRadioGroupContext();\n const generatedId = React.useId();\n const radioId = id || generatedId;\n const descriptionId = `${radioId}-description`;\n\n const isChecked = context.value === value;\n const isDisabled = propDisabled || context.disabled;\n const size = propSize || context.size;\n\n const handleChange = React.useCallback(() => {\n if (!isDisabled) {\n context.onChange(value);\n }\n }, [isDisabled, context, value]);\n\n const radioElement = (\n <span\n data-slot=\"radio-indicator\"\n className=\"relative inline-flex items-center justify-center\"\n >\n <input\n ref={ref}\n data-slot=\"radio\"\n id={radioId}\n type=\"radio\"\n name={context.name}\n value={value}\n checked={isChecked}\n disabled={isDisabled}\n onChange={handleChange}\n aria-describedby={description ? descriptionId : undefined}\n className={cn(radioVariants({ size }), className)}\n {...props}\n />\n {/* Custom dot indicator */}\n <span\n data-slot=\"radio-dot\"\n className={cn(\n 'bg-primary-800 dark:bg-primary-500 pointer-events-none absolute rounded-full transition-transform',\n size === 'sm' && 'h-2 w-2',\n size === 'md' && 'h-2.5 w-2.5',\n size === 'lg' && 'h-3 w-3',\n isChecked ? 'scale-100' : 'scale-0'\n )}\n />\n </span>\n );\n\n const labelElement = label && (\n <div className=\"flex flex-col gap-0.5\">\n <label\n htmlFor={radioId}\n data-slot=\"radio-label\"\n className={cn(\n 'text-foreground cursor-pointer font-medium select-none',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base',\n isDisabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {label}\n </label>\n {description && (\n <p\n id={descriptionId}\n data-slot=\"radio-description\"\n className={cn(\n 'text-muted-foreground',\n size === 'sm' && 'text-[10px]',\n size === 'md' && 'text-xs',\n size === 'lg' && 'text-sm'\n )}\n >\n {description}\n </p>\n )}\n </div>\n );\n\n return (\n <div\n data-slot=\"radio-wrapper\"\n className={cn(\n 'flex items-start gap-3',\n labelPosition === 'left' && 'flex-row-reverse'\n )}\n >\n {radioElement}\n {labelElement}\n </div>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport { RadioGroup, Radio, radioVariants };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/components/Radio/Radio.tsx"],"names":["React","cva","jsx","jsxs","cn"],"mappings":"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","file":"chunk-5IDYOJHO.cjs","sourcesContent":["import * as React from 'react';\nimport { cva, type VariantProps } from 'class-variance-authority';\nimport { cn } from '../../utils/cn';\n\n// ============================================================================\n// Radio Group Context\n// ============================================================================\n\ninterface RadioGroupContextValue {\n name: string;\n value: string;\n onChange: (value: string) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | null;\n}\n\nconst RadioGroupContext = React.createContext<\n RadioGroupContextValue | undefined\n>(undefined);\n\nfunction useRadioGroupContext() {\n const context = React.useContext(RadioGroupContext);\n if (!context) {\n throw new Error('Radio must be used within a RadioGroup');\n }\n return context;\n}\n\n// ============================================================================\n// Radio Variants\n// ============================================================================\n\nconst radioVariants = cva(\n [\n 'shrink-0 appearance-none',\n 'border-2 border-input rounded-full',\n 'bg-background',\n 'transition-all duration-150',\n 'cursor-pointer',\n 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2',\n 'disabled:cursor-not-allowed disabled:opacity-50',\n 'checked:border-primary-500 dark:checked:border-primary-800',\n ],\n {\n variants: {\n size: {\n sm: 'h-4 w-4',\n md: 'h-5 w-5',\n lg: 'h-6 w-6',\n },\n },\n defaultVariants: {\n size: 'md',\n },\n }\n);\n\n// ============================================================================\n// Radio Group\n// ============================================================================\n\nexport interface RadioGroupProps {\n /** Group name (required for native form behavior) */\n name?: string;\n /** Controlled value */\n value?: string;\n /** Default value (uncontrolled) */\n defaultValue?: string;\n /** Callback when value changes */\n onValueChange?: (value: string) => void;\n /** Group label */\n label?: string;\n /** Description for the group */\n description?: string;\n /** Error message */\n error?: string;\n /** Whether all radios are disabled */\n disabled?: boolean;\n /** Size of all radios */\n size?: 'sm' | 'md' | 'lg';\n /** Orientation of radio items */\n orientation?: 'horizontal' | 'vertical';\n /** Children radio items */\n children: React.ReactNode;\n /** Additional class name */\n className?: string;\n}\n\n/**\n * A radio group component for selecting one option from a set.\n *\n * @example\n * ```tsx\n * <RadioGroup name=\"plan\" label=\"Select a plan\" onValueChange={setPlan}>\n * <Radio value=\"free\" label=\"Free\" />\n * <Radio value=\"pro\" label=\"Pro\" />\n * <Radio value=\"enterprise\" label=\"Enterprise\" />\n * </RadioGroup>\n * ```\n */\nfunction RadioGroup({\n name,\n value: controlledValue,\n defaultValue = '',\n onValueChange,\n label,\n description,\n error,\n disabled = false,\n size = 'md',\n orientation = 'vertical',\n children,\n className,\n}: RadioGroupProps) {\n const generatedName = React.useId();\n const groupName = name || generatedName;\n const groupId = React.useId();\n const descriptionId = `${groupId}-description`;\n const errorId = `${groupId}-error`;\n\n const [uncontrolledValue, setUncontrolledValue] =\n React.useState(defaultValue);\n const isControlled = controlledValue !== undefined;\n const value = isControlled ? controlledValue : uncontrolledValue;\n\n const handleChange = React.useCallback(\n (newValue: string) => {\n if (!isControlled) {\n setUncontrolledValue(newValue);\n }\n onValueChange?.(newValue);\n },\n [isControlled, onValueChange]\n );\n\n return (\n <RadioGroupContext.Provider\n value={{ name: groupName, value, onChange: handleChange, disabled, size }}\n >\n <fieldset\n data-slot=\"radio-group\"\n role=\"radiogroup\"\n className={cn('flex flex-col gap-2', className)}\n aria-describedby={\n [description ? descriptionId : null, error ? errorId : null]\n .filter(Boolean)\n .join(' ') || undefined\n }\n >\n {label && (\n <legend\n data-slot=\"radio-group-legend\"\n className={cn(\n 'text-foreground font-medium',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base'\n )}\n >\n {label}\n </legend>\n )}\n {description && (\n <p\n id={descriptionId}\n data-slot=\"radio-group-description\"\n className={cn(\n 'text-muted-foreground',\n size === 'sm' && 'text-[10px]',\n size === 'md' && 'text-xs',\n size === 'lg' && 'text-sm'\n )}\n >\n {description}\n </p>\n )}\n <div\n data-slot=\"radio-group-items\"\n className={cn(\n 'flex gap-4',\n orientation === 'vertical' && 'flex-col gap-3'\n )}\n >\n {children}\n </div>\n {error && (\n <p\n id={errorId}\n data-slot=\"radio-group-error\"\n className={cn(\n 'text-destructive',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base'\n )}\n role=\"alert\"\n >\n {error}\n </p>\n )}\n </fieldset>\n </RadioGroupContext.Provider>\n );\n}\n\nRadioGroup.displayName = 'RadioGroup';\n\n// ============================================================================\n// Radio Item\n// ============================================================================\n\nexport interface RadioProps\n extends\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size' | 'type'>,\n VariantProps<typeof radioVariants> {\n /** Value for this radio option */\n value: string;\n /** Label for the radio */\n label?: string;\n /** Description text below the label */\n description?: string;\n /** Position of the label */\n labelPosition?: 'left' | 'right';\n}\n\n/**\n * An individual radio item within a RadioGroup.\n *\n * @example\n * ```tsx\n * <Radio value=\"option1\" label=\"Option 1\" />\n * <Radio value=\"option2\" label=\"Option 2\" description=\"Additional details\" />\n * ```\n */\nconst Radio = React.forwardRef<HTMLInputElement, RadioProps>(\n (\n {\n className,\n size: propSize,\n value,\n label,\n description,\n labelPosition = 'right',\n disabled: propDisabled,\n id,\n ...props\n },\n ref\n ) => {\n const context = useRadioGroupContext();\n const generatedId = React.useId();\n const radioId = id || generatedId;\n const descriptionId = `${radioId}-description`;\n\n const isChecked = context.value === value;\n const isDisabled = propDisabled || context.disabled;\n const size = propSize || context.size;\n\n const handleChange = React.useCallback(() => {\n if (!isDisabled) {\n context.onChange(value);\n }\n }, [isDisabled, context, value]);\n\n const radioElement = (\n <span\n data-slot=\"radio-indicator\"\n className=\"relative inline-flex items-center justify-center\"\n >\n <input\n ref={ref}\n data-slot=\"radio\"\n id={radioId}\n type=\"radio\"\n name={context.name}\n value={value}\n checked={isChecked}\n disabled={isDisabled}\n onChange={handleChange}\n aria-describedby={description ? descriptionId : undefined}\n className={cn(radioVariants({ size }), className)}\n {...props}\n />\n {/* Custom dot indicator */}\n <span\n data-slot=\"radio-dot\"\n className={cn(\n 'bg-primary-800 dark:bg-primary-500 pointer-events-none absolute rounded-full transition-transform',\n size === 'sm' && 'h-2 w-2',\n size === 'md' && 'h-2.5 w-2.5',\n size === 'lg' && 'h-3 w-3',\n isChecked ? 'scale-100' : 'scale-0'\n )}\n />\n </span>\n );\n\n const labelElement = label && (\n <div className=\"flex flex-col gap-0.5\">\n <label\n htmlFor={radioId}\n data-slot=\"radio-label\"\n className={cn(\n 'text-foreground cursor-pointer font-medium select-none',\n size === 'sm' && 'text-xs',\n size === 'md' && 'text-sm',\n size === 'lg' && 'text-base',\n isDisabled && 'cursor-not-allowed opacity-50'\n )}\n >\n {label}\n </label>\n {description && (\n <p\n id={descriptionId}\n data-slot=\"radio-description\"\n className={cn(\n 'text-muted-foreground',\n size === 'sm' && 'text-[10px]',\n size === 'md' && 'text-xs',\n size === 'lg' && 'text-sm'\n )}\n >\n {description}\n </p>\n )}\n </div>\n );\n\n return (\n <div\n data-slot=\"radio-wrapper\"\n className={cn(\n 'flex items-start gap-3',\n labelPosition === 'left' && 'flex-row-reverse'\n )}\n >\n {radioElement}\n {labelElement}\n </div>\n );\n }\n);\n\nRadio.displayName = 'Radio';\n\nexport { RadioGroup, Radio, radioVariants };\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkS5RVSXDV_cjs = require('./chunk-S5RVSXDV.cjs');
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var classVarianceAuthority = require('class-variance-authority');
|
|
6
6
|
var jsxRuntime = require('react/jsx-runtime');
|
|
@@ -81,14 +81,14 @@ var Input = React__namespace.forwardRef(
|
|
|
81
81
|
"div",
|
|
82
82
|
{
|
|
83
83
|
"data-slot": "input-wrapper",
|
|
84
|
-
className:
|
|
84
|
+
className: chunkS5RVSXDV_cjs.cn("flex flex-col gap-1.5", disabled && "opacity-50"),
|
|
85
85
|
children: [
|
|
86
86
|
label && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
87
87
|
"label",
|
|
88
88
|
{
|
|
89
89
|
"data-slot": "input-label",
|
|
90
90
|
htmlFor: inputId,
|
|
91
|
-
className:
|
|
91
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
92
92
|
"text-foreground text-sm font-medium",
|
|
93
93
|
hideLabel && "sr-only"
|
|
94
94
|
),
|
|
@@ -104,7 +104,7 @@ var Input = React__namespace.forwardRef(
|
|
|
104
104
|
"data-slot": "input",
|
|
105
105
|
id: inputId,
|
|
106
106
|
ref,
|
|
107
|
-
className:
|
|
107
|
+
className: chunkS5RVSXDV_cjs.cn(
|
|
108
108
|
inputVariants({ size, hasError: hasError || !!error }),
|
|
109
109
|
className
|
|
110
110
|
),
|
|
@@ -143,5 +143,5 @@ Input.displayName = "Input";
|
|
|
143
143
|
|
|
144
144
|
exports.Input = Input;
|
|
145
145
|
exports.inputVariants = inputVariants;
|
|
146
|
-
//# sourceMappingURL=chunk-
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
146
|
+
//# sourceMappingURL=chunk-5PHGIWDN.cjs.map
|
|
147
|
+
//# sourceMappingURL=chunk-5PHGIWDN.cjs.map
|