@zentauri-ui/zentauri-components 1.9.2 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/README.md +36 -8
- package/cli/cli.integration.test.ts +52 -0
- package/cli/index.mjs +288 -0
- package/cli/registry.json +14 -0
- package/dist/chunk-22FJROCI.js +70 -0
- package/dist/chunk-22FJROCI.js.map +1 -0
- package/dist/chunk-2NQKFH26.mjs +64 -0
- package/dist/chunk-2NQKFH26.mjs.map +1 -0
- package/dist/chunk-2VPXQ2LA.mjs +57 -0
- package/dist/chunk-2VPXQ2LA.mjs.map +1 -0
- package/dist/chunk-3453DQNL.js +63 -0
- package/dist/chunk-3453DQNL.js.map +1 -0
- package/dist/chunk-34LHS26H.mjs +240 -0
- package/dist/chunk-34LHS26H.mjs.map +1 -0
- package/dist/chunk-3CYJQ6KF.js +121 -0
- package/dist/chunk-3CYJQ6KF.js.map +1 -0
- package/dist/chunk-3EJCQXGV.js +169 -0
- package/dist/chunk-3EJCQXGV.js.map +1 -0
- package/dist/chunk-3VW4HMJT.mjs +58 -0
- package/dist/chunk-3VW4HMJT.mjs.map +1 -0
- package/dist/chunk-42ZSQNDF.mjs +64 -0
- package/dist/chunk-42ZSQNDF.mjs.map +1 -0
- package/dist/{chunk-V4FFKIX3.js → chunk-4LCH4OJ5.js} +10 -10
- package/dist/{chunk-V4FFKIX3.js.map → chunk-4LCH4OJ5.js.map} +1 -1
- package/dist/chunk-4TX7EQ5Y.js +19 -0
- package/dist/{chunk-AQHY4S33.js.map → chunk-4TX7EQ5Y.js.map} +1 -1
- package/dist/chunk-4WG3VNVL.mjs +69 -0
- package/dist/chunk-4WG3VNVL.mjs.map +1 -0
- package/dist/chunk-4ZBMDWWY.mjs +107 -0
- package/dist/chunk-4ZBMDWWY.mjs.map +1 -0
- package/dist/chunk-523VQLCW.mjs +62 -0
- package/dist/chunk-523VQLCW.mjs.map +1 -0
- package/dist/chunk-5AOVTY2X.mjs +68 -0
- package/dist/chunk-5AOVTY2X.mjs.map +1 -0
- package/dist/{chunk-GVGKISKD.js → chunk-5QLPZYWO.js} +9 -9
- package/dist/{chunk-GVGKISKD.js.map → chunk-5QLPZYWO.js.map} +1 -1
- package/dist/{chunk-VUIWYURS.js → chunk-6XVSACCS.js} +15 -15
- package/dist/{chunk-VUIWYURS.js.map → chunk-6XVSACCS.js.map} +1 -1
- package/dist/{chunk-7GIL24GK.js → chunk-7ARZ3MK2.js} +12 -12
- package/dist/{chunk-7GIL24GK.js.map → chunk-7ARZ3MK2.js.map} +1 -1
- package/dist/chunk-7DVECOO7.js +78 -0
- package/dist/chunk-7DVECOO7.js.map +1 -0
- package/dist/{chunk-O23PJPGM.mjs → chunk-7HQFFQSQ.mjs} +3 -3
- package/dist/{chunk-O23PJPGM.mjs.map → chunk-7HQFFQSQ.mjs.map} +1 -1
- package/dist/{chunk-2PWT2MB5.mjs → chunk-7KCX2FX2.mjs} +3 -3
- package/dist/{chunk-2PWT2MB5.mjs.map → chunk-7KCX2FX2.mjs.map} +1 -1
- package/dist/{chunk-ZCTSXNAE.mjs → chunk-7WQ5TWUO.mjs} +3 -3
- package/dist/{chunk-ZCTSXNAE.mjs.map → chunk-7WQ5TWUO.mjs.map} +1 -1
- package/dist/chunk-A7MU6SFI.js +254 -0
- package/dist/chunk-A7MU6SFI.js.map +1 -0
- package/dist/chunk-AOVZY2A3.js +80 -0
- package/dist/chunk-AOVZY2A3.js.map +1 -0
- package/dist/{chunk-D4B62J5C.js → chunk-APBQNYFN.js} +11 -11
- package/dist/{chunk-D4B62J5C.js.map → chunk-APBQNYFN.js.map} +1 -1
- package/dist/chunk-AZ26NZJV.mjs +66 -0
- package/dist/chunk-AZ26NZJV.mjs.map +1 -0
- package/dist/chunk-BBM4BKSN.js +65 -0
- package/dist/chunk-BBM4BKSN.js.map +1 -0
- package/dist/{chunk-I4TGI6U3.mjs → chunk-BGIWVTAU.mjs} +3 -3
- package/dist/{chunk-I4TGI6U3.mjs.map → chunk-BGIWVTAU.mjs.map} +1 -1
- package/dist/{chunk-OPUO55TO.mjs → chunk-BJRS5RXR.mjs} +3 -3
- package/dist/{chunk-OPUO55TO.mjs.map → chunk-BJRS5RXR.mjs.map} +1 -1
- package/dist/{chunk-RYJ5WEE3.js → chunk-BUBIH4LS.js} +9 -9
- package/dist/{chunk-RYJ5WEE3.js.map → chunk-BUBIH4LS.js.map} +1 -1
- package/dist/chunk-BUEI4RMR.mjs +82 -0
- package/dist/chunk-BUEI4RMR.mjs.map +1 -0
- package/dist/chunk-BVTYDGLM.mjs +68 -0
- package/dist/chunk-BVTYDGLM.mjs.map +1 -0
- package/dist/{chunk-7JBQ3ZJN.mjs → chunk-BYXFSXNG.mjs} +3 -3
- package/dist/{chunk-7JBQ3ZJN.mjs.map → chunk-BYXFSXNG.mjs.map} +1 -1
- package/dist/chunk-BZTAA3MK.js +62 -0
- package/dist/chunk-BZTAA3MK.js.map +1 -0
- package/dist/chunk-C6K2SWHC.mjs +74 -0
- package/dist/chunk-C6K2SWHC.mjs.map +1 -0
- package/dist/chunk-CJCOURVM.js +79 -0
- package/dist/chunk-CJCOURVM.js.map +1 -0
- package/dist/chunk-COVTMJIQ.mjs +171 -0
- package/dist/chunk-COVTMJIQ.mjs.map +1 -0
- package/dist/{chunk-ZY6O6Z2I.mjs → chunk-CQ2S43AD.mjs} +3 -3
- package/dist/{chunk-ZY6O6Z2I.mjs.map → chunk-CQ2S43AD.mjs.map} +1 -1
- package/dist/chunk-D7ATXPVI.js +70 -0
- package/dist/chunk-D7ATXPVI.js.map +1 -0
- package/dist/chunk-DOA4ESKS.mjs +58 -0
- package/dist/chunk-DOA4ESKS.mjs.map +1 -0
- package/dist/{chunk-QIUVXTLE.mjs → chunk-DSGPPYZ3.mjs} +3 -3
- package/dist/{chunk-QIUVXTLE.mjs.map → chunk-DSGPPYZ3.mjs.map} +1 -1
- package/dist/chunk-DYSXCJGL.js +47 -0
- package/dist/chunk-DYSXCJGL.js.map +1 -0
- package/dist/{chunk-P2DQP4J4.js → chunk-EDJ6TVL3.js} +117 -12
- package/dist/chunk-EDJ6TVL3.js.map +1 -0
- package/dist/chunk-EE53BIXR.mjs +112 -0
- package/dist/chunk-EE53BIXR.mjs.map +1 -0
- package/dist/chunk-EJ3UMMCS.mjs +65 -0
- package/dist/chunk-EJ3UMMCS.mjs.map +1 -0
- package/dist/chunk-ENYZGL4R.mjs +94 -0
- package/dist/chunk-ENYZGL4R.mjs.map +1 -0
- package/dist/{chunk-BZZVO4GL.mjs → chunk-F6W3GJJ2.mjs} +108 -3
- package/dist/chunk-F6W3GJJ2.mjs.map +1 -0
- package/dist/chunk-FBUY6K6S.js +69 -0
- package/dist/chunk-FBUY6K6S.js.map +1 -0
- package/dist/{chunk-QKZR2UTL.mjs → chunk-FEMXNI6E.mjs} +3 -3
- package/dist/{chunk-QKZR2UTL.mjs.map → chunk-FEMXNI6E.mjs.map} +1 -1
- package/dist/chunk-FX5KR2GP.mjs +81 -0
- package/dist/chunk-FX5KR2GP.mjs.map +1 -0
- package/dist/{chunk-3HSFL4WA.mjs → chunk-GENYOZN4.mjs} +3 -3
- package/dist/{chunk-3HSFL4WA.mjs.map → chunk-GENYOZN4.mjs.map} +1 -1
- package/dist/{chunk-C7F6OCGK.mjs → chunk-GFCT24TH.mjs} +3 -3
- package/dist/{chunk-C7F6OCGK.mjs.map → chunk-GFCT24TH.mjs.map} +1 -1
- package/dist/{chunk-IPUQBMAB.mjs → chunk-GH2GZFRD.mjs} +3 -3
- package/dist/{chunk-IPUQBMAB.mjs.map → chunk-GH2GZFRD.mjs.map} +1 -1
- package/dist/{chunk-NAHHFB2M.js → chunk-GICW4DH5.js} +9 -9
- package/dist/{chunk-NAHHFB2M.js.map → chunk-GICW4DH5.js.map} +1 -1
- package/dist/chunk-HFQJRAG7.mjs +116 -0
- package/dist/chunk-HFQJRAG7.mjs.map +1 -0
- package/dist/chunk-HNRCPZCK.js +107 -0
- package/dist/chunk-HNRCPZCK.js.map +1 -0
- package/dist/chunk-HOOZYA4N.js +92 -0
- package/dist/chunk-HOOZYA4N.js.map +1 -0
- package/dist/chunk-IEHY6KNM.js +122 -0
- package/dist/chunk-IEHY6KNM.js.map +1 -0
- package/dist/{chunk-BDBL4XXI.mjs → chunk-ILCT3P7D.mjs} +3 -3
- package/dist/{chunk-BDBL4XXI.mjs.map → chunk-ILCT3P7D.mjs.map} +1 -1
- package/dist/chunk-IR5SJ7AQ.js +87 -0
- package/dist/chunk-IR5SJ7AQ.js.map +1 -0
- package/dist/chunk-J2SUGU3X.js +63 -0
- package/dist/chunk-J2SUGU3X.js.map +1 -0
- package/dist/{chunk-4LVEWKXF.mjs → chunk-J7IATHJY.mjs} +3 -3
- package/dist/{chunk-4LVEWKXF.mjs.map → chunk-J7IATHJY.mjs.map} +1 -1
- package/dist/{chunk-EKBSSKJQ.js → chunk-JD7TCCMW.js} +10 -10
- package/dist/{chunk-EKBSSKJQ.js.map → chunk-JD7TCCMW.js.map} +1 -1
- package/dist/chunk-JEDMUBYI.mjs +75 -0
- package/dist/chunk-JEDMUBYI.mjs.map +1 -0
- package/dist/{chunk-L4PDJ6IB.mjs → chunk-JEZUMCJ6.mjs} +3 -3
- package/dist/{chunk-L4PDJ6IB.mjs.map → chunk-JEZUMCJ6.mjs.map} +1 -1
- package/dist/{chunk-KEGOUZL5.js → chunk-JGPG2D2Y.js} +7 -7
- package/dist/{chunk-KEGOUZL5.js.map → chunk-JGPG2D2Y.js.map} +1 -1
- package/dist/chunk-JOLSS7UY.mjs +61 -0
- package/dist/chunk-JOLSS7UY.mjs.map +1 -0
- package/dist/{chunk-ATMCT3A3.mjs → chunk-K2H6LIPQ.mjs} +3 -3
- package/dist/{chunk-ATMCT3A3.mjs.map → chunk-K2H6LIPQ.mjs.map} +1 -1
- package/dist/chunk-K7PR3XXT.mjs +128 -0
- package/dist/chunk-K7PR3XXT.mjs.map +1 -0
- package/dist/{chunk-LQPKZ5ZD.js → chunk-KCXTYTOY.js} +6 -6
- package/dist/{chunk-LQPKZ5ZD.js.map → chunk-KCXTYTOY.js.map} +1 -1
- package/dist/chunk-KJMW7S5X.js +78 -0
- package/dist/chunk-KJMW7S5X.js.map +1 -0
- package/dist/chunk-KOIXQXZB.js +49 -0
- package/dist/{chunk-NVTV3EQB.js.map → chunk-KOIXQXZB.js.map} +1 -1
- package/dist/{chunk-PKXDRTC7.js → chunk-KQZWTTY2.js} +13 -13
- package/dist/{chunk-PKXDRTC7.js.map → chunk-KQZWTTY2.js.map} +1 -1
- package/dist/chunk-KWBGLH7G.js +155 -0
- package/dist/chunk-KWBGLH7G.js.map +1 -0
- package/dist/chunk-L7W4NRK6.js +78 -0
- package/dist/chunk-L7W4NRK6.js.map +1 -0
- package/dist/chunk-LRYKMXKI.mjs +159 -0
- package/dist/chunk-LRYKMXKI.mjs.map +1 -0
- package/dist/chunk-MBEQ4GQ7.mjs +44 -0
- package/dist/chunk-MBEQ4GQ7.mjs.map +1 -0
- package/dist/{chunk-PAJYNQR3.mjs → chunk-MI3CVVNR.mjs} +3 -3
- package/dist/{chunk-PAJYNQR3.mjs.map → chunk-MI3CVVNR.mjs.map} +1 -1
- package/dist/{chunk-4FU6FDUT.mjs → chunk-MXYQOQJ4.mjs} +3 -3
- package/dist/{chunk-4FU6FDUT.mjs.map → chunk-MXYQOQJ4.mjs.map} +1 -1
- package/dist/chunk-N3FNN47Q.mjs +64 -0
- package/dist/chunk-N3FNN47Q.mjs.map +1 -0
- package/dist/chunk-NEFDIJ5N.js +672 -0
- package/dist/chunk-NEFDIJ5N.js.map +1 -0
- package/dist/chunk-NFUOJMNI.js +61 -0
- package/dist/chunk-NFUOJMNI.js.map +1 -0
- package/dist/chunk-NGZTAVQO.mjs +79 -0
- package/dist/chunk-NGZTAVQO.mjs.map +1 -0
- package/dist/chunk-NNGL2AFQ.js +181 -0
- package/dist/chunk-NNGL2AFQ.js.map +1 -0
- package/dist/{chunk-Q2NE2UAO.mjs → chunk-NXVSGMLI.mjs} +3 -3
- package/dist/{chunk-Q2NE2UAO.mjs.map → chunk-NXVSGMLI.mjs.map} +1 -1
- package/dist/chunk-NYO3W5GY.js +61 -0
- package/dist/chunk-NYO3W5GY.js.map +1 -0
- package/dist/{chunk-ZFNVFMWG.mjs → chunk-O22T5X4G.mjs} +3 -3
- package/dist/{chunk-ZFNVFMWG.mjs.map → chunk-O22T5X4G.mjs.map} +1 -1
- package/dist/{chunk-Y73U7C4T.js → chunk-OCKSRD6O.js} +16 -16
- package/dist/{chunk-Y73U7C4T.js.map → chunk-OCKSRD6O.js.map} +1 -1
- package/dist/{chunk-27PO2FY2.mjs → chunk-OO4IPM4F.mjs} +3 -3
- package/dist/{chunk-27PO2FY2.mjs.map → chunk-OO4IPM4F.mjs.map} +1 -1
- package/dist/chunk-PP3L6M62.js +126 -0
- package/dist/chunk-PP3L6M62.js.map +1 -0
- package/dist/{chunk-63YMCBGJ.js → chunk-PYNQZP4X.js} +12 -12
- package/dist/{chunk-63YMCBGJ.js.map → chunk-PYNQZP4X.js.map} +1 -1
- package/dist/{chunk-QDHARZDN.js → chunk-QGTLXKKB.js} +12 -12
- package/dist/{chunk-QDHARZDN.js.map → chunk-QGTLXKKB.js.map} +1 -1
- package/dist/chunk-QNRJT7R4.js +144 -0
- package/dist/chunk-QNRJT7R4.js.map +1 -0
- package/dist/chunk-QX6PPTWL.mjs +125 -0
- package/dist/chunk-QX6PPTWL.mjs.map +1 -0
- package/dist/{chunk-OPACTZGV.js → chunk-RRUVHDN6.js} +11 -11
- package/dist/{chunk-OPACTZGV.js.map → chunk-RRUVHDN6.js.map} +1 -1
- package/dist/{chunk-IQ6QVIZ3.mjs → chunk-RSMFWP5S.mjs} +3 -3
- package/dist/{chunk-IQ6QVIZ3.mjs.map → chunk-RSMFWP5S.mjs.map} +1 -1
- package/dist/chunk-SCOIRBML.js +705 -0
- package/dist/{chunk-WBRTXAKP.js.map → chunk-SCOIRBML.js.map} +1 -1
- package/dist/chunk-SCWQSQBJ.mjs +113 -0
- package/dist/chunk-SCWQSQBJ.mjs.map +1 -0
- package/dist/{chunk-LLNK24MM.js → chunk-SK24YZIC.js} +18 -18
- package/dist/{chunk-LLNK24MM.js.map → chunk-SK24YZIC.js.map} +1 -1
- package/dist/chunk-SRJCGSNX.js +74 -0
- package/dist/chunk-SRJCGSNX.js.map +1 -0
- package/dist/chunk-SRSRY5K2.js +71 -0
- package/dist/chunk-SRSRY5K2.js.map +1 -0
- package/dist/chunk-SS3T3BUL.mjs +70 -0
- package/dist/chunk-SS3T3BUL.mjs.map +1 -0
- package/dist/{chunk-L6PSW7JE.mjs → chunk-SUTFW53Y.mjs} +3 -3
- package/dist/{chunk-L6PSW7JE.mjs.map → chunk-SUTFW53Y.mjs.map} +1 -1
- package/dist/chunk-T4ZLTKV2.mjs +112 -0
- package/dist/chunk-T4ZLTKV2.mjs.map +1 -0
- package/dist/chunk-TCEGQIGW.mjs +653 -0
- package/dist/chunk-TCEGQIGW.mjs.map +1 -0
- package/dist/{chunk-MUKI3OHH.js → chunk-TDVHPNYI.js} +14 -14
- package/dist/{chunk-MUKI3OHH.js.map → chunk-TDVHPNYI.js.map} +1 -1
- package/dist/chunk-TKAOHMVA.mjs +120 -0
- package/dist/chunk-TKAOHMVA.mjs.map +1 -0
- package/dist/chunk-TT33BIIT.js +71 -0
- package/dist/chunk-TT33BIIT.js.map +1 -0
- package/dist/chunk-U64ISRUX.mjs +73 -0
- package/dist/chunk-U64ISRUX.mjs.map +1 -0
- package/dist/{chunk-O6R6OQXI.mjs → chunk-UFDJ5NIY.mjs} +3 -3
- package/dist/{chunk-O6R6OQXI.mjs.map → chunk-UFDJ5NIY.mjs.map} +1 -1
- package/dist/chunk-UG3GF2BD.js +120 -0
- package/dist/chunk-UG3GF2BD.js.map +1 -0
- package/dist/chunk-UJXFD4SK.js +65 -0
- package/dist/chunk-UJXFD4SK.js.map +1 -0
- package/dist/chunk-USLNTKVQ.js +114 -0
- package/dist/chunk-USLNTKVQ.js.map +1 -0
- package/dist/chunk-UT6QG35L.js +68 -0
- package/dist/chunk-UT6QG35L.js.map +1 -0
- package/dist/{chunk-37YQUTKG.js → chunk-VKEDTQY6.js} +8 -8
- package/dist/{chunk-37YQUTKG.js.map → chunk-VKEDTQY6.js.map} +1 -1
- package/dist/{chunk-I5TREZO5.js → chunk-VSD4KDZT.js} +10 -10
- package/dist/{chunk-I5TREZO5.js.map → chunk-VSD4KDZT.js.map} +1 -1
- package/dist/chunk-WGN2CBG6.js +82 -0
- package/dist/chunk-WGN2CBG6.js.map +1 -0
- package/dist/chunk-X7HK6RTF.js +83 -0
- package/dist/chunk-X7HK6RTF.js.map +1 -0
- package/dist/{chunk-34OSFCSH.js → chunk-XF3NHZZ3.js} +7 -7
- package/dist/{chunk-34OSFCSH.js.map → chunk-XF3NHZZ3.js.map} +1 -1
- package/dist/chunk-XUW42JAP.js +69 -0
- package/dist/chunk-XUW42JAP.js.map +1 -0
- package/dist/{chunk-EIX26RKN.js → chunk-XXGMFT6O.js} +9 -9
- package/dist/{chunk-EIX26RKN.js.map → chunk-XXGMFT6O.js.map} +1 -1
- package/dist/chunk-Y5JAQEBF.js +134 -0
- package/dist/chunk-Y5JAQEBF.js.map +1 -0
- package/dist/chunk-Y7BU5RC4.js +95 -0
- package/dist/chunk-Y7BU5RC4.js.map +1 -0
- package/dist/chunk-YH6MOKHR.mjs +65 -0
- package/dist/chunk-YH6MOKHR.mjs.map +1 -0
- package/dist/chunk-YKTANA3H.mjs +52 -0
- package/dist/chunk-YKTANA3H.mjs.map +1 -0
- package/dist/{chunk-NWMSIYZP.js → chunk-YNTUZCLI.js} +16 -16
- package/dist/{chunk-NWMSIYZP.js.map → chunk-YNTUZCLI.js.map} +1 -1
- package/dist/chunk-YPTHTFVF.mjs +144 -0
- package/dist/chunk-YPTHTFVF.mjs.map +1 -0
- package/dist/chunk-YPYPWALR.js +128 -0
- package/dist/chunk-YPYPWALR.js.map +1 -0
- package/dist/chunk-YXU2MJMT.mjs +52 -0
- package/dist/chunk-YXU2MJMT.mjs.map +1 -0
- package/dist/{chunk-ZITS2V53.js → chunk-ZIP7EX64.js} +9 -9
- package/dist/{chunk-ZITS2V53.js.map → chunk-ZIP7EX64.js.map} +1 -1
- package/dist/chunk-ZJWOSRAS.mjs +57 -0
- package/dist/chunk-ZJWOSRAS.mjs.map +1 -0
- package/dist/{chunk-ODT5TFIT.mjs → chunk-ZMFRJHO6.mjs} +3 -3
- package/dist/{chunk-ODT5TFIT.mjs.map → chunk-ZMFRJHO6.mjs.map} +1 -1
- package/dist/chunk-ZPGYR2UP.mjs +54 -0
- package/dist/chunk-ZPGYR2UP.mjs.map +1 -0
- package/dist/{chunk-XPHD3X4L.mjs → chunk-ZUQOQW5W.mjs} +3 -3
- package/dist/{chunk-XPHD3X4L.mjs.map → chunk-ZUQOQW5W.mjs.map} +1 -1
- package/dist/design-system/accordion.d.ts +85 -85
- package/dist/design-system/accordion.d.ts.map +1 -1
- package/dist/design-system/alert.d.ts +46 -46
- package/dist/design-system/alert.d.ts.map +1 -1
- package/dist/design-system/animated-number.d.ts +44 -44
- package/dist/design-system/avatar.d.ts +47 -47
- package/dist/design-system/avatar.d.ts.map +1 -1
- package/dist/design-system/badge.d.ts +92 -92
- package/dist/design-system/badge.d.ts.map +1 -1
- package/dist/design-system/breadcrumb.d.ts +38 -38
- package/dist/design-system/breadcrumb.d.ts.map +1 -1
- package/dist/design-system/button.d.ts +50 -50
- package/dist/design-system/button.d.ts.map +1 -1
- package/dist/design-system/card.d.ts +52 -52
- package/dist/design-system/card.d.ts.map +1 -1
- package/dist/design-system/checkbox.d.ts +32 -32
- package/dist/design-system/checkbox.d.ts.map +1 -1
- package/dist/design-system/combobox.d.ts +124 -0
- package/dist/design-system/combobox.d.ts.map +1 -0
- package/dist/design-system/command.d.ts +53 -53
- package/dist/design-system/command.d.ts.map +1 -1
- package/dist/design-system/context-menu.d.ts +51 -51
- package/dist/design-system/context-menu.d.ts.map +1 -1
- package/dist/design-system/copy-button.d.ts +49 -49
- package/dist/design-system/copy-button.d.ts.map +1 -1
- package/dist/design-system/divider.d.ts +47 -47
- package/dist/design-system/drawer.d.ts +90 -90
- package/dist/design-system/drawer.d.ts.map +1 -1
- package/dist/design-system/dropdown.d.ts +97 -97
- package/dist/design-system/dropdown.d.ts.map +1 -1
- package/dist/design-system/dynamic-stepper.d.ts +57 -57
- package/dist/design-system/empty-state.d.ts +25 -25
- package/dist/design-system/empty-state.d.ts.map +1 -1
- package/dist/design-system/facade.js +41 -40
- package/dist/design-system/facade.js.map +1 -1
- package/dist/design-system/facade.mjs +40 -39
- package/dist/design-system/facade.mjs.map +1 -1
- package/dist/design-system/file-upload.d.ts +36 -36
- package/dist/design-system/file-upload.d.ts.map +1 -1
- package/dist/design-system/index.d.ts +1 -0
- package/dist/design-system/index.d.ts.map +1 -1
- package/dist/design-system/inputs.d.ts +159 -159
- package/dist/design-system/inputs.d.ts.map +1 -1
- package/dist/design-system/kbd.d.ts +51 -51
- package/dist/design-system/kbd.d.ts.map +1 -1
- package/dist/design-system/marquee.d.ts +43 -43
- package/dist/design-system/marquee.d.ts.map +1 -1
- package/dist/design-system/modal.d.ts +90 -90
- package/dist/design-system/modal.d.ts.map +1 -1
- package/dist/design-system/otp-input.d.ts +38 -38
- package/dist/design-system/otp-input.d.ts.map +1 -1
- package/dist/design-system/pagination.d.ts +51 -51
- package/dist/design-system/pagination.d.ts.map +1 -1
- package/dist/design-system/popover.d.ts +44 -44
- package/dist/design-system/popover.d.ts.map +1 -1
- package/dist/design-system/progress.d.ts +47 -47
- package/dist/design-system/progress.d.ts.map +1 -1
- package/dist/design-system/radio-group.d.ts +32 -32
- package/dist/design-system/radio-group.d.ts.map +1 -1
- package/dist/design-system/rating.d.ts +54 -54
- package/dist/design-system/rating.d.ts.map +1 -1
- package/dist/design-system/scroll-area.d.ts +30 -30
- package/dist/design-system/scroll-area.d.ts.map +1 -1
- package/dist/design-system/select.d.ts +132 -132
- package/dist/design-system/select.d.ts.map +1 -1
- package/dist/design-system/skeleton.d.ts +67 -67
- package/dist/design-system/skeleton.d.ts.map +1 -1
- package/dist/design-system/slider.d.ts +45 -45
- package/dist/design-system/slider.d.ts.map +1 -1
- package/dist/design-system/spinner.d.ts +43 -43
- package/dist/design-system/table.d.ts +108 -108
- package/dist/design-system/table.d.ts.map +1 -1
- package/dist/design-system/tabs.d.ts +43 -43
- package/dist/design-system/tabs.d.ts.map +1 -1
- package/dist/design-system/timeline.d.ts +45 -45
- package/dist/design-system/timeline.d.ts.map +1 -1
- package/dist/design-system/toast.d.ts +47 -47
- package/dist/design-system/toast.d.ts.map +1 -1
- package/dist/design-system/toggle.d.ts +88 -88
- package/dist/design-system/toggle.d.ts.map +1 -1
- package/dist/design-system/tokens.d.ts +101 -0
- package/dist/design-system/tokens.d.ts.map +1 -1
- package/dist/design-system/tokens.js +11 -7
- package/dist/design-system/tokens.mjs +1 -1
- package/dist/design-system/tooltip.d.ts +44 -44
- package/dist/design-system/tooltip.d.ts.map +1 -1
- package/dist/design-system/tree-view.d.ts +92 -92
- package/dist/design-system/tree-view.d.ts.map +1 -1
- package/dist/hooks/index.d.ts +13 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/useCookie/index.d.ts +2 -0
- package/dist/hooks/useCookie/index.d.ts.map +1 -0
- package/dist/hooks/useCookie/useCookie.d.ts +36 -0
- package/dist/hooks/useCookie/useCookie.d.ts.map +1 -0
- package/dist/hooks/useCookie.js +76 -0
- package/dist/hooks/useCookie.js.map +1 -0
- package/dist/hooks/useCookie.mjs +74 -0
- package/dist/hooks/useCookie.mjs.map +1 -0
- package/dist/hooks/useCountdown/index.d.ts +2 -0
- package/dist/hooks/useCountdown/index.d.ts.map +1 -0
- package/dist/hooks/useCountdown/useCountdown.d.ts +40 -0
- package/dist/hooks/useCountdown/useCountdown.d.ts.map +1 -0
- package/dist/hooks/useCountdown.js +60 -0
- package/dist/hooks/useCountdown.js.map +1 -0
- package/dist/hooks/useCountdown.mjs +58 -0
- package/dist/hooks/useCountdown.mjs.map +1 -0
- package/dist/hooks/useEventListener/index.d.ts +2 -0
- package/dist/hooks/useEventListener/index.d.ts.map +1 -0
- package/dist/hooks/useEventListener/useEventListener.d.ts +22 -0
- package/dist/hooks/useEventListener/useEventListener.d.ts.map +1 -0
- package/dist/hooks/useEventListener.js +45 -0
- package/dist/hooks/useEventListener.js.map +1 -0
- package/dist/hooks/useEventListener.mjs +43 -0
- package/dist/hooks/useEventListener.mjs.map +1 -0
- package/dist/hooks/useGeolocation/index.d.ts +2 -0
- package/dist/hooks/useGeolocation/index.d.ts.map +1 -0
- package/dist/hooks/useGeolocation/useGeolocation.d.ts +48 -0
- package/dist/hooks/useGeolocation/useGeolocation.d.ts.map +1 -0
- package/dist/hooks/useGeolocation.js +111 -0
- package/dist/hooks/useGeolocation.js.map +1 -0
- package/dist/hooks/useGeolocation.mjs +109 -0
- package/dist/hooks/useGeolocation.mjs.map +1 -0
- package/dist/hooks/useHotkeys/index.d.ts +2 -0
- package/dist/hooks/useHotkeys/index.d.ts.map +1 -0
- package/dist/hooks/useHotkeys/useHotkeys.d.ts +24 -0
- package/dist/hooks/useHotkeys/useHotkeys.d.ts.map +1 -0
- package/dist/hooks/useHotkeys.js +90 -0
- package/dist/hooks/useHotkeys.js.map +1 -0
- package/dist/hooks/useHotkeys.mjs +88 -0
- package/dist/hooks/useHotkeys.mjs.map +1 -0
- package/dist/hooks/useIdleTimeout/index.d.ts +2 -0
- package/dist/hooks/useIdleTimeout/index.d.ts.map +1 -0
- package/dist/hooks/useIdleTimeout/useIdleTimeout.d.ts +31 -0
- package/dist/hooks/useIdleTimeout/useIdleTimeout.d.ts.map +1 -0
- package/dist/hooks/useIdleTimeout.js +77 -0
- package/dist/hooks/useIdleTimeout.js.map +1 -0
- package/dist/hooks/useIdleTimeout.mjs +75 -0
- package/dist/hooks/useIdleTimeout.mjs.map +1 -0
- package/dist/hooks/useInterval/index.d.ts +2 -0
- package/dist/hooks/useInterval/index.d.ts.map +1 -0
- package/dist/hooks/useInterval/useInterval.d.ts +12 -0
- package/dist/hooks/useInterval/useInterval.d.ts.map +1 -0
- package/dist/hooks/useInterval.js +27 -0
- package/dist/hooks/useInterval.js.map +1 -0
- package/dist/hooks/useInterval.mjs +25 -0
- package/dist/hooks/useInterval.mjs.map +1 -0
- package/dist/hooks/useKeyPress/index.d.ts +2 -0
- package/dist/hooks/useKeyPress/index.d.ts.map +1 -0
- package/dist/hooks/useKeyPress/useKeyPress.d.ts +15 -0
- package/dist/hooks/useKeyPress/useKeyPress.d.ts.map +1 -0
- package/dist/hooks/useKeyPress.js +47 -0
- package/dist/hooks/useKeyPress.js.map +1 -0
- package/dist/hooks/useKeyPress.mjs +45 -0
- package/dist/hooks/useKeyPress.mjs.map +1 -0
- package/dist/hooks/useLongPress/index.d.ts +2 -0
- package/dist/hooks/useLongPress/index.d.ts.map +1 -0
- package/dist/hooks/useLongPress/useLongPress.d.ts +46 -0
- package/dist/hooks/useLongPress/useLongPress.d.ts.map +1 -0
- package/dist/hooks/useLongPress.js +116 -0
- package/dist/hooks/useLongPress.js.map +1 -0
- package/dist/hooks/useLongPress.mjs +114 -0
- package/dist/hooks/useLongPress.mjs.map +1 -0
- package/dist/hooks/usePrevious/index.d.ts +2 -0
- package/dist/hooks/usePrevious/index.d.ts.map +1 -0
- package/dist/hooks/usePrevious/usePrevious.d.ts +13 -0
- package/dist/hooks/usePrevious/usePrevious.d.ts.map +1 -0
- package/dist/hooks/usePrevious.js +17 -0
- package/dist/hooks/usePrevious.js.map +1 -0
- package/dist/hooks/usePrevious.mjs +15 -0
- package/dist/hooks/usePrevious.mjs.map +1 -0
- package/dist/hooks/useScrollPosition/index.d.ts +2 -0
- package/dist/hooks/useScrollPosition/index.d.ts.map +1 -0
- package/dist/hooks/useScrollPosition/useScrollPosition.d.ts +37 -0
- package/dist/hooks/useScrollPosition/useScrollPosition.d.ts.map +1 -0
- package/dist/hooks/useScrollPosition.js +41 -0
- package/dist/hooks/useScrollPosition.js.map +1 -0
- package/dist/hooks/useScrollPosition.mjs +39 -0
- package/dist/hooks/useScrollPosition.mjs.map +1 -0
- package/dist/hooks/useTimeout/index.d.ts +2 -0
- package/dist/hooks/useTimeout/index.d.ts.map +1 -0
- package/dist/hooks/useTimeout/useTimeout.d.ts +19 -0
- package/dist/hooks/useTimeout/useTimeout.d.ts.map +1 -0
- package/dist/hooks/useTimeout.js +38 -0
- package/dist/hooks/useTimeout.js.map +1 -0
- package/dist/hooks/useTimeout.mjs +36 -0
- package/dist/hooks/useTimeout.mjs.map +1 -0
- package/dist/hooks/useVirtualList/index.d.ts +2 -0
- package/dist/hooks/useVirtualList/index.d.ts.map +1 -0
- package/dist/hooks/useVirtualList/useVirtualList.d.ts +47 -0
- package/dist/hooks/useVirtualList/useVirtualList.d.ts.map +1 -0
- package/dist/hooks/useVirtualList.js +84 -0
- package/dist/hooks/useVirtualList.js.map +1 -0
- package/dist/hooks/useVirtualList.mjs +82 -0
- package/dist/hooks/useVirtualList.mjs.map +1 -0
- package/dist/lib/facade.d.ts.map +1 -1
- package/dist/ui/accordion/animated.js +8 -8
- package/dist/ui/accordion/animated.mjs +3 -3
- package/dist/ui/accordion.js +10 -10
- package/dist/ui/accordion.mjs +3 -3
- package/dist/ui/alert/animated.js +3 -3
- package/dist/ui/alert/animated.mjs +2 -2
- package/dist/ui/alert.js +11 -11
- package/dist/ui/alert.mjs +3 -3
- package/dist/ui/animated-number.js +4 -4
- package/dist/ui/animated-number.mjs +1 -1
- package/dist/ui/avatar/animated.js +6 -6
- package/dist/ui/avatar/animated.mjs +3 -3
- package/dist/ui/avatar.js +10 -10
- package/dist/ui/avatar.mjs +3 -3
- package/dist/ui/badge/animated.js +3 -3
- package/dist/ui/badge/animated.mjs +2 -2
- package/dist/ui/badge/variants.d.ts +45 -45
- package/dist/ui/badge.js +5 -5
- package/dist/ui/badge.mjs +3 -3
- package/dist/ui/breadcrumb.js +9 -9
- package/dist/ui/breadcrumb.mjs +1 -1
- package/dist/ui/buttons/animated.js +43 -42
- package/dist/ui/buttons/animated.js.map +1 -1
- package/dist/ui/buttons/animated.mjs +41 -40
- package/dist/ui/buttons/animated.mjs.map +1 -1
- package/dist/ui/buttons.js +44 -43
- package/dist/ui/buttons.mjs +42 -41
- package/dist/ui/card/animated.js +8 -8
- package/dist/ui/card/animated.mjs +3 -3
- package/dist/ui/card.js +13 -13
- package/dist/ui/card.mjs +3 -3
- package/dist/ui/checkbox/animated.js +5 -5
- package/dist/ui/checkbox/animated.mjs +2 -2
- package/dist/ui/checkbox.js +9 -9
- package/dist/ui/checkbox.mjs +3 -3
- package/dist/ui/combobox/combobox-base.d.ts +37 -0
- package/dist/ui/combobox/combobox-base.d.ts.map +1 -0
- package/dist/ui/combobox/combobox.d.ts +6 -0
- package/dist/ui/combobox/combobox.d.ts.map +1 -0
- package/dist/ui/combobox/index.d.ts +4 -0
- package/dist/ui/combobox/index.d.ts.map +1 -0
- package/dist/ui/combobox/types.d.ts +70 -0
- package/dist/ui/combobox/types.d.ts.map +1 -0
- package/dist/ui/combobox/variants.d.ts +17 -0
- package/dist/ui/combobox/variants.d.ts.map +1 -0
- package/dist/ui/combobox.js +510 -0
- package/dist/ui/combobox.js.map +1 -0
- package/dist/ui/combobox.mjs +495 -0
- package/dist/ui/combobox.mjs.map +1 -0
- package/dist/ui/command/animated.js +3 -3
- package/dist/ui/command/animated.mjs +2 -2
- package/dist/ui/command.js +16 -16
- package/dist/ui/command.mjs +3 -3
- package/dist/ui/context-menu.js +8 -8
- package/dist/ui/context-menu.mjs +2 -2
- package/dist/ui/copy-button/animated.js +3 -3
- package/dist/ui/copy-button/animated.mjs +2 -2
- package/dist/ui/copy-button.js +4 -4
- package/dist/ui/copy-button.mjs +3 -3
- package/dist/ui/divider/animated.js +3 -3
- package/dist/ui/divider/animated.mjs +2 -2
- package/dist/ui/divider.js +7 -7
- package/dist/ui/divider.mjs +3 -3
- package/dist/ui/drawer/animated.js +12 -12
- package/dist/ui/drawer/animated.mjs +3 -3
- package/dist/ui/drawer.js +12 -12
- package/dist/ui/drawer.mjs +2 -2
- package/dist/ui/dropdown.js +9 -9
- package/dist/ui/dropdown.mjs +1 -1
- package/dist/ui/dynamic-stepper/variants.d.ts +1 -1
- package/dist/ui/dynamic-stepper/variants.d.ts.map +1 -1
- package/dist/ui/dynamic-stepper.js +53 -52
- package/dist/ui/dynamic-stepper.js.map +1 -1
- package/dist/ui/dynamic-stepper.mjs +42 -41
- package/dist/ui/dynamic-stepper.mjs.map +1 -1
- package/dist/ui/empty-state/animated.js +3 -3
- package/dist/ui/empty-state/animated.mjs +2 -2
- package/dist/ui/empty-state.js +11 -11
- package/dist/ui/empty-state.mjs +3 -3
- package/dist/ui/file-upload.js +3 -3
- package/dist/ui/file-upload.mjs +1 -1
- package/dist/ui/inputs/animated.js +4 -4
- package/dist/ui/inputs/animated.mjs +2 -2
- package/dist/ui/inputs.js +5 -5
- package/dist/ui/inputs.mjs +3 -3
- package/dist/ui/kbd/animated.js +3 -3
- package/dist/ui/kbd/animated.mjs +2 -2
- package/dist/ui/kbd.js +5 -5
- package/dist/ui/kbd.mjs +3 -3
- package/dist/ui/marquee.js +6 -6
- package/dist/ui/marquee.mjs +1 -1
- package/dist/ui/modal/animated.js +5 -5
- package/dist/ui/modal/animated.mjs +2 -2
- package/dist/ui/modal.js +13 -13
- package/dist/ui/modal.mjs +3 -3
- package/dist/ui/otp-input.js +10 -10
- package/dist/ui/otp-input.mjs +1 -1
- package/dist/ui/pagination.js +49 -48
- package/dist/ui/pagination.js.map +1 -1
- package/dist/ui/pagination.mjs +41 -40
- package/dist/ui/pagination.mjs.map +1 -1
- package/dist/ui/popover/animated.js +5 -5
- package/dist/ui/popover/animated.mjs +2 -2
- package/dist/ui/popover.js +8 -8
- package/dist/ui/popover.mjs +2 -2
- package/dist/ui/progress/animated.js +9 -9
- package/dist/ui/progress/animated.mjs +3 -3
- package/dist/ui/progress.js +10 -10
- package/dist/ui/progress.mjs +3 -3
- package/dist/ui/radio-group/animated.js +8 -8
- package/dist/ui/radio-group/animated.mjs +2 -2
- package/dist/ui/radio-group.js +12 -12
- package/dist/ui/radio-group.mjs +3 -3
- package/dist/ui/rating.js +11 -11
- package/dist/ui/rating.mjs +1 -1
- package/dist/ui/scroll-area.js +7 -7
- package/dist/ui/scroll-area.mjs +1 -1
- package/dist/ui/search/search-suggestion-list.d.ts.map +1 -1
- package/dist/ui/search.js +12 -9
- package/dist/ui/search.js.map +1 -1
- package/dist/ui/search.mjs +11 -8
- package/dist/ui/search.mjs.map +1 -1
- package/dist/ui/select.js +11 -11
- package/dist/ui/select.mjs +1 -1
- package/dist/ui/skeleton/animated.js +9 -9
- package/dist/ui/skeleton/animated.mjs +2 -2
- package/dist/ui/skeleton/variants.d.ts +21 -21
- package/dist/ui/skeleton/variants.d.ts.map +1 -1
- package/dist/ui/skeleton.js +10 -10
- package/dist/ui/skeleton.mjs +2 -2
- package/dist/ui/slider.js +9 -9
- package/dist/ui/slider.mjs +1 -1
- package/dist/ui/spinner/animated.js +5 -5
- package/dist/ui/spinner/animated.mjs +1 -1
- package/dist/ui/table/animated.js +9 -9
- package/dist/ui/table/animated.mjs +3 -3
- package/dist/ui/table.js +15 -15
- package/dist/ui/table.mjs +2 -2
- package/dist/ui/tabs/animated.js +3 -3
- package/dist/ui/tabs/animated.mjs +2 -2
- package/dist/ui/tabs.js +10 -10
- package/dist/ui/tabs.mjs +2 -2
- package/dist/ui/timeline/animated.js +12 -12
- package/dist/ui/timeline/animated.mjs +3 -3
- package/dist/ui/timeline.js +15 -15
- package/dist/ui/timeline.mjs +3 -3
- package/dist/ui/toast/animated.js +8 -8
- package/dist/ui/toast/animated.mjs +2 -2
- package/dist/ui/toast.js +13 -13
- package/dist/ui/toast.mjs +2 -2
- package/dist/ui/toggle/animated.js +5 -5
- package/dist/ui/toggle/animated.mjs +2 -2
- package/dist/ui/toggle.js +5 -5
- package/dist/ui/toggle.mjs +3 -3
- package/dist/ui/tooltip/animated.js +4 -4
- package/dist/ui/tooltip/animated.mjs +2 -2
- package/dist/ui/tooltip.js +8 -8
- package/dist/ui/tooltip.mjs +2 -2
- package/dist/ui/tree-view/animated.js +3 -3
- package/dist/ui/tree-view/animated.mjs +2 -2
- package/dist/ui/tree-view.js +6 -6
- package/dist/ui/tree-view.mjs +3 -3
- package/package.json +2 -2
- package/src/design-system/accordion.ts +85 -85
- package/src/design-system/alert.ts +46 -46
- package/src/design-system/animated-number.ts +44 -44
- package/src/design-system/avatar.ts +47 -47
- package/src/design-system/badge.ts +50 -50
- package/src/design-system/breadcrumb.ts +38 -38
- package/src/design-system/button.ts +52 -52
- package/src/design-system/card.ts +54 -54
- package/src/design-system/checkbox.ts +32 -32
- package/src/design-system/combobox.ts +204 -0
- package/src/design-system/command.ts +53 -53
- package/src/design-system/context-menu.ts +24 -24
- package/src/design-system/copy-button.ts +51 -51
- package/src/design-system/divider.ts +47 -47
- package/src/design-system/drawer.ts +90 -90
- package/src/design-system/dropdown.ts +97 -97
- package/src/design-system/dynamic-stepper.ts +57 -57
- package/src/design-system/empty-state.ts +25 -25
- package/src/design-system/file-upload.ts +36 -36
- package/src/design-system/index.ts +1 -0
- package/src/design-system/inputs.ts +166 -166
- package/src/design-system/kbd.ts +52 -52
- package/src/design-system/marquee.ts +43 -43
- package/src/design-system/modal.ts +90 -90
- package/src/design-system/otp-input.ts +38 -38
- package/src/design-system/pagination.ts +51 -51
- package/src/design-system/popover.ts +44 -44
- package/src/design-system/progress.ts +47 -47
- package/src/design-system/radio-group.ts +32 -32
- package/src/design-system/rating.ts +54 -54
- package/src/design-system/scroll-area.ts +30 -30
- package/src/design-system/select.ts +132 -132
- package/src/design-system/skeleton.ts +67 -67
- package/src/design-system/slider.ts +45 -45
- package/src/design-system/spinner.ts +43 -43
- package/src/design-system/table.ts +108 -108
- package/src/design-system/tabs.ts +44 -43
- package/src/design-system/timeline.ts +45 -45
- package/src/design-system/toast.ts +47 -47
- package/src/design-system/toggle.ts +88 -88
- package/src/design-system/tokens.ts +102 -0
- package/src/design-system/tooltip.ts +44 -44
- package/src/design-system/tree-view.ts +92 -92
- package/src/hooks/index.ts +50 -0
- package/src/hooks/useCookie/index.ts +5 -0
- package/src/hooks/useCookie/useCookie.test.ts +57 -0
- package/src/hooks/useCookie/useCookie.ts +127 -0
- package/src/hooks/useCountdown/index.ts +5 -0
- package/src/hooks/useCountdown/useCountdown.test.ts +113 -0
- package/src/hooks/useCountdown/useCountdown.ts +106 -0
- package/src/hooks/useEventListener/index.ts +4 -0
- package/src/hooks/useEventListener/useEventListener.test.ts +60 -0
- package/src/hooks/useEventListener/useEventListener.ts +99 -0
- package/src/hooks/useGeolocation/index.ts +6 -0
- package/src/hooks/useGeolocation/useGeolocation.test.ts +110 -0
- package/src/hooks/useGeolocation/useGeolocation.ts +175 -0
- package/src/hooks/useHotkeys/index.ts +5 -0
- package/src/hooks/useHotkeys/useHotkeys.test.ts +82 -0
- package/src/hooks/useHotkeys/useHotkeys.ts +130 -0
- package/src/hooks/useIdleTimeout/index.ts +5 -0
- package/src/hooks/useIdleTimeout/useIdleTimeout.test.ts +95 -0
- package/src/hooks/useIdleTimeout/useIdleTimeout.ts +111 -0
- package/src/hooks/useInterval/index.ts +1 -0
- package/src/hooks/useInterval/useInterval.test.ts +56 -0
- package/src/hooks/useInterval/useInterval.ts +36 -0
- package/src/hooks/useKeyPress/index.ts +1 -0
- package/src/hooks/useKeyPress/useKeyPress.test.ts +67 -0
- package/src/hooks/useKeyPress/useKeyPress.ts +65 -0
- package/src/hooks/useLongPress/index.ts +5 -0
- package/src/hooks/useLongPress/useLongPress.test.ts +180 -0
- package/src/hooks/useLongPress/useLongPress.ts +177 -0
- package/src/hooks/usePrevious/index.ts +1 -0
- package/src/hooks/usePrevious/usePrevious.test.ts +33 -0
- package/src/hooks/usePrevious/usePrevious.ts +24 -0
- package/src/hooks/useScrollPosition/index.ts +5 -0
- package/src/hooks/useScrollPosition/useScrollPosition.test.ts +69 -0
- package/src/hooks/useScrollPosition/useScrollPosition.ts +88 -0
- package/src/hooks/useTimeout/index.ts +1 -0
- package/src/hooks/useTimeout/useTimeout.test.ts +63 -0
- package/src/hooks/useTimeout/useTimeout.ts +58 -0
- package/src/hooks/useVirtualList/index.ts +6 -0
- package/src/hooks/useVirtualList/useVirtualList.test.ts +102 -0
- package/src/hooks/useVirtualList/useVirtualList.ts +141 -0
- package/src/lib/facade.test.ts +29 -8
- package/src/lib/facade.ts +6 -2
- package/src/ui/combobox/combobox-base.tsx +552 -0
- package/src/ui/combobox/combobox.test.tsx +292 -0
- package/src/ui/combobox/combobox.tsx +8 -0
- package/src/ui/combobox/index.ts +33 -0
- package/src/ui/combobox/types.ts +91 -0
- package/src/ui/combobox/variants.ts +58 -0
- package/src/ui/search/search-suggestion-list.tsx +11 -6
- package/src/ui/skeleton/variants.ts +105 -0
- package/dist/chunk-22I54GJW.js +0 -69
- package/dist/chunk-22I54GJW.js.map +0 -1
- package/dist/chunk-3I6XR7KN.js +0 -87
- package/dist/chunk-3I6XR7KN.js.map +0 -1
- package/dist/chunk-3R6PQUG2.mjs +0 -144
- package/dist/chunk-3R6PQUG2.mjs.map +0 -1
- package/dist/chunk-3Z6L24ZK.js +0 -83
- package/dist/chunk-3Z6L24ZK.js.map +0 -1
- package/dist/chunk-44G3U35C.js +0 -181
- package/dist/chunk-44G3U35C.js.map +0 -1
- package/dist/chunk-456OEGUT.mjs +0 -58
- package/dist/chunk-456OEGUT.mjs.map +0 -1
- package/dist/chunk-45CGVW7S.js +0 -126
- package/dist/chunk-45CGVW7S.js.map +0 -1
- package/dist/chunk-4QLWSXXO.mjs +0 -65
- package/dist/chunk-4QLWSXXO.mjs.map +0 -1
- package/dist/chunk-4U7CDEN7.mjs +0 -57
- package/dist/chunk-4U7CDEN7.mjs.map +0 -1
- package/dist/chunk-4ZP444GA.mjs +0 -19
- package/dist/chunk-4ZP444GA.mjs.map +0 -1
- package/dist/chunk-56DECC6D.js +0 -95
- package/dist/chunk-56DECC6D.js.map +0 -1
- package/dist/chunk-56KZVM5D.mjs +0 -159
- package/dist/chunk-56KZVM5D.mjs.map +0 -1
- package/dist/chunk-5BSYGFN7.mjs +0 -94
- package/dist/chunk-5BSYGFN7.mjs.map +0 -1
- package/dist/chunk-5J6QMTES.js +0 -655
- package/dist/chunk-5J6QMTES.js.map +0 -1
- package/dist/chunk-5QSYJHWL.mjs +0 -75
- package/dist/chunk-5QSYJHWL.mjs.map +0 -1
- package/dist/chunk-5R6XJAXQ.mjs +0 -66
- package/dist/chunk-5R6XJAXQ.mjs.map +0 -1
- package/dist/chunk-5WWD3TZ2.mjs +0 -70
- package/dist/chunk-5WWD3TZ2.mjs.map +0 -1
- package/dist/chunk-63UE3BR4.mjs +0 -79
- package/dist/chunk-63UE3BR4.mjs.map +0 -1
- package/dist/chunk-7LFRU6AW.js +0 -254
- package/dist/chunk-7LFRU6AW.js.map +0 -1
- package/dist/chunk-7M4TUP4I.js +0 -74
- package/dist/chunk-7M4TUP4I.js.map +0 -1
- package/dist/chunk-AADGUMYW.js +0 -122
- package/dist/chunk-AADGUMYW.js.map +0 -1
- package/dist/chunk-AQHY4S33.js +0 -19
- package/dist/chunk-BTSCPOWZ.mjs +0 -171
- package/dist/chunk-BTSCPOWZ.mjs.map +0 -1
- package/dist/chunk-BZZVO4GL.mjs.map +0 -1
- package/dist/chunk-DWDDIG6R.js +0 -68
- package/dist/chunk-DWDDIG6R.js.map +0 -1
- package/dist/chunk-E7BPOL74.js +0 -155
- package/dist/chunk-E7BPOL74.js.map +0 -1
- package/dist/chunk-EP7WTIKH.mjs +0 -81
- package/dist/chunk-EP7WTIKH.mjs.map +0 -1
- package/dist/chunk-F6V74YMW.js +0 -71
- package/dist/chunk-F6V74YMW.js.map +0 -1
- package/dist/chunk-FNNIH7R2.js +0 -70
- package/dist/chunk-FNNIH7R2.js.map +0 -1
- package/dist/chunk-FWY22BZZ.js +0 -134
- package/dist/chunk-FWY22BZZ.js.map +0 -1
- package/dist/chunk-FXDHDQTH.js +0 -79
- package/dist/chunk-FXDHDQTH.js.map +0 -1
- package/dist/chunk-FZET7XQV.js +0 -169
- package/dist/chunk-FZET7XQV.js.map +0 -1
- package/dist/chunk-GDYSB7SB.js +0 -78
- package/dist/chunk-GDYSB7SB.js.map +0 -1
- package/dist/chunk-GPM2PRC5.js +0 -61
- package/dist/chunk-GPM2PRC5.js.map +0 -1
- package/dist/chunk-I55QC57T.js +0 -47
- package/dist/chunk-I55QC57T.js.map +0 -1
- package/dist/chunk-ISXAUMRW.js +0 -63
- package/dist/chunk-ISXAUMRW.js.map +0 -1
- package/dist/chunk-IULYVARJ.mjs +0 -107
- package/dist/chunk-IULYVARJ.mjs.map +0 -1
- package/dist/chunk-IZAQBJKT.mjs +0 -125
- package/dist/chunk-IZAQBJKT.mjs.map +0 -1
- package/dist/chunk-J6XKTPP5.js +0 -61
- package/dist/chunk-J6XKTPP5.js.map +0 -1
- package/dist/chunk-JF4BRFOG.mjs +0 -54
- package/dist/chunk-JF4BRFOG.mjs.map +0 -1
- package/dist/chunk-JI3IEKH6.mjs +0 -64
- package/dist/chunk-JI3IEKH6.mjs.map +0 -1
- package/dist/chunk-JTMRSRYD.js +0 -63
- package/dist/chunk-JTMRSRYD.js.map +0 -1
- package/dist/chunk-KXNMW4NV.mjs +0 -61
- package/dist/chunk-KXNMW4NV.mjs.map +0 -1
- package/dist/chunk-L67EJJFN.js +0 -82
- package/dist/chunk-L67EJJFN.js.map +0 -1
- package/dist/chunk-L6AS5AVO.js +0 -121
- package/dist/chunk-L6AS5AVO.js.map +0 -1
- package/dist/chunk-LL2UY6CD.mjs +0 -74
- package/dist/chunk-LL2UY6CD.mjs.map +0 -1
- package/dist/chunk-LU6VEI4B.js +0 -92
- package/dist/chunk-LU6VEI4B.js.map +0 -1
- package/dist/chunk-MCYFKM7T.js +0 -62
- package/dist/chunk-MCYFKM7T.js.map +0 -1
- package/dist/chunk-MUP7DVQR.js +0 -26
- package/dist/chunk-MUP7DVQR.js.map +0 -1
- package/dist/chunk-N2RUT33F.mjs +0 -68
- package/dist/chunk-N2RUT33F.mjs.map +0 -1
- package/dist/chunk-NMBSK44H.mjs +0 -44
- package/dist/chunk-NMBSK44H.mjs.map +0 -1
- package/dist/chunk-NVTV3EQB.js +0 -49
- package/dist/chunk-NXNL64Q7.mjs +0 -112
- package/dist/chunk-NXNL64Q7.mjs.map +0 -1
- package/dist/chunk-OGMIKRLJ.js +0 -78
- package/dist/chunk-OGMIKRLJ.js.map +0 -1
- package/dist/chunk-OOBA2MDD.mjs +0 -57
- package/dist/chunk-OOBA2MDD.mjs.map +0 -1
- package/dist/chunk-OQCI2IVL.mjs +0 -112
- package/dist/chunk-OQCI2IVL.mjs.map +0 -1
- package/dist/chunk-P25NI2HG.js +0 -114
- package/dist/chunk-P25NI2HG.js.map +0 -1
- package/dist/chunk-P2DQP4J4.js.map +0 -1
- package/dist/chunk-P43A2BPU.mjs +0 -82
- package/dist/chunk-P43A2BPU.mjs.map +0 -1
- package/dist/chunk-P54PZ72L.mjs +0 -65
- package/dist/chunk-P54PZ72L.mjs.map +0 -1
- package/dist/chunk-PNAFXOZC.mjs +0 -69
- package/dist/chunk-PNAFXOZC.mjs.map +0 -1
- package/dist/chunk-QTFOUK4H.js +0 -107
- package/dist/chunk-QTFOUK4H.js.map +0 -1
- package/dist/chunk-QW2ZHKPC.mjs +0 -64
- package/dist/chunk-QW2ZHKPC.mjs.map +0 -1
- package/dist/chunk-R2256VSD.js +0 -80
- package/dist/chunk-R2256VSD.js.map +0 -1
- package/dist/chunk-S4OSJ4ZN.js +0 -71
- package/dist/chunk-S4OSJ4ZN.js.map +0 -1
- package/dist/chunk-SWU5U5BB.mjs +0 -116
- package/dist/chunk-SWU5U5BB.mjs.map +0 -1
- package/dist/chunk-SYFTQAZG.mjs +0 -58
- package/dist/chunk-SYFTQAZG.mjs.map +0 -1
- package/dist/chunk-T5SPR27V.mjs +0 -64
- package/dist/chunk-T5SPR27V.mjs.map +0 -1
- package/dist/chunk-TD4W3AHI.mjs +0 -113
- package/dist/chunk-TD4W3AHI.mjs.map +0 -1
- package/dist/chunk-TMFXI5FH.mjs +0 -52
- package/dist/chunk-TMFXI5FH.mjs.map +0 -1
- package/dist/chunk-UJBXDDHN.mjs +0 -73
- package/dist/chunk-UJBXDDHN.mjs.map +0 -1
- package/dist/chunk-USLP5NY6.js +0 -69
- package/dist/chunk-USLP5NY6.js.map +0 -1
- package/dist/chunk-UU34Q42Q.js +0 -70
- package/dist/chunk-UU34Q42Q.js.map +0 -1
- package/dist/chunk-V4U6Q5NL.mjs +0 -68
- package/dist/chunk-V4U6Q5NL.mjs.map +0 -1
- package/dist/chunk-VIKQGO4W.mjs +0 -636
- package/dist/chunk-VIKQGO4W.mjs.map +0 -1
- package/dist/chunk-VWHER5XN.js +0 -65
- package/dist/chunk-VWHER5XN.js.map +0 -1
- package/dist/chunk-WBRTXAKP.js +0 -705
- package/dist/chunk-WN7XWKAS.mjs +0 -52
- package/dist/chunk-WN7XWKAS.mjs.map +0 -1
- package/dist/chunk-X3N4EVF7.mjs +0 -240
- package/dist/chunk-X3N4EVF7.mjs.map +0 -1
- package/dist/chunk-Y4YQSCNL.js +0 -65
- package/dist/chunk-Y4YQSCNL.js.map +0 -1
- package/dist/chunk-Y7NRTCAT.js +0 -78
- package/dist/chunk-Y7NRTCAT.js.map +0 -1
- package/dist/chunk-YDKAE7RM.mjs +0 -62
- package/dist/chunk-YDKAE7RM.mjs.map +0 -1
- package/dist/chunk-YN4ZS3R2.js +0 -120
- package/dist/chunk-YN4ZS3R2.js.map +0 -1
- package/src/ui/accessibility/axe-core.test.tsx +0 -139
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../../chunk-
|
|
4
|
+
var chunkSK24YZIC_js = require('../../chunk-SK24YZIC.js');
|
|
5
|
+
require('../../chunk-22FJROCI.js');
|
|
6
6
|
var chunkZS5756ZC_js = require('../../chunk-ZS5756ZC.js');
|
|
7
7
|
require('../../chunk-PZ5AY32C.js');
|
|
8
8
|
var framerMotion = require('framer-motion');
|
|
@@ -53,7 +53,7 @@ function RadioGroupAnimated(props) {
|
|
|
53
53
|
[isControlled, onValueChange]
|
|
54
54
|
);
|
|
55
55
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
56
|
-
|
|
56
|
+
chunkSK24YZIC_js.RadioGroupContext.Provider,
|
|
57
57
|
{
|
|
58
58
|
value: {
|
|
59
59
|
value: resolvedValue,
|
|
@@ -71,7 +71,7 @@ function RadioGroupAnimated(props) {
|
|
|
71
71
|
role: "radiogroup",
|
|
72
72
|
"data-slot": "radio-group",
|
|
73
73
|
"data-orientation": orientation ?? "vertical",
|
|
74
|
-
className: chunkZS5756ZC_js.cn(
|
|
74
|
+
className: chunkZS5756ZC_js.cn(chunkSK24YZIC_js.radioGroupRootVariants({ orientation }), className),
|
|
75
75
|
...rest,
|
|
76
76
|
children
|
|
77
77
|
}
|
|
@@ -100,7 +100,7 @@ function RadioGroupItemAnimated(props) {
|
|
|
100
100
|
...rest
|
|
101
101
|
} = props;
|
|
102
102
|
const generatedId = react.useId();
|
|
103
|
-
const context =
|
|
103
|
+
const context = chunkSK24YZIC_js.useRadioGroupContext();
|
|
104
104
|
const controlId = id ?? generatedId;
|
|
105
105
|
const checked = context?.value === value;
|
|
106
106
|
const disabled = disabledProp ?? context?.disabled;
|
|
@@ -113,7 +113,7 @@ function RadioGroupItemAnimated(props) {
|
|
|
113
113
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
114
114
|
"label",
|
|
115
115
|
{
|
|
116
|
-
className: chunkZS5756ZC_js.cn(
|
|
116
|
+
className: chunkZS5756ZC_js.cn(chunkSK24YZIC_js.radioGroupItemVariants({ size }), rootClassName, className),
|
|
117
117
|
"data-disabled": disabled ? "true" : void 0,
|
|
118
118
|
"data-state": checked ? "checked" : "unchecked",
|
|
119
119
|
htmlFor: controlId,
|
|
@@ -145,7 +145,7 @@ function RadioGroupItemAnimated(props) {
|
|
|
145
145
|
{
|
|
146
146
|
"aria-hidden": "true",
|
|
147
147
|
className: chunkZS5756ZC_js.cn(
|
|
148
|
-
|
|
148
|
+
chunkSK24YZIC_js.radioGroupControlVariants({ appearance, size }),
|
|
149
149
|
controlClassName
|
|
150
150
|
),
|
|
151
151
|
"data-slot": "radio-group-control",
|
|
@@ -153,7 +153,7 @@ function RadioGroupItemAnimated(props) {
|
|
|
153
153
|
framerMotion.motion.span,
|
|
154
154
|
{
|
|
155
155
|
className: chunkZS5756ZC_js.cn(
|
|
156
|
-
|
|
156
|
+
chunkSK24YZIC_js.radioGroupIndicatorVariants({ size }),
|
|
157
157
|
"opacity-100",
|
|
158
158
|
indicatorClassName
|
|
159
159
|
),
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
2
|
+
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../../chunk-DSGPPYZ3.mjs';
|
|
3
|
+
import '../../chunk-523VQLCW.mjs';
|
|
4
4
|
import { cn } from '../../chunk-4D54YOL6.mjs';
|
|
5
5
|
import '../../chunk-J5LGTIGS.mjs';
|
|
6
6
|
import { motion } from 'framer-motion';
|
package/dist/ui/radio-group.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
4
|
+
var chunkSK24YZIC_js = require('../chunk-SK24YZIC.js');
|
|
5
|
+
require('../chunk-22FJROCI.js');
|
|
6
6
|
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
7
7
|
require('../chunk-PZ5AY32C.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -38,7 +38,7 @@ function RadioGroup(props) {
|
|
|
38
38
|
[isControlled, onValueChange]
|
|
39
39
|
);
|
|
40
40
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
41
|
-
|
|
41
|
+
chunkSK24YZIC_js.RadioGroupContext.Provider,
|
|
42
42
|
{
|
|
43
43
|
value: {
|
|
44
44
|
value: resolvedValue,
|
|
@@ -56,7 +56,7 @@ function RadioGroup(props) {
|
|
|
56
56
|
role: "radiogroup",
|
|
57
57
|
"data-slot": "radio-group",
|
|
58
58
|
"data-orientation": orientation ?? "vertical",
|
|
59
|
-
className: chunkZS5756ZC_js.cn(
|
|
59
|
+
className: chunkZS5756ZC_js.cn(chunkSK24YZIC_js.radioGroupRootVariants({ orientation }), className),
|
|
60
60
|
...rest,
|
|
61
61
|
children
|
|
62
62
|
}
|
|
@@ -84,7 +84,7 @@ function RadioGroupItem(props) {
|
|
|
84
84
|
...rest
|
|
85
85
|
} = props;
|
|
86
86
|
const generatedId = react.useId();
|
|
87
|
-
const context =
|
|
87
|
+
const context = chunkSK24YZIC_js.useRadioGroupContext();
|
|
88
88
|
const controlId = id ?? generatedId;
|
|
89
89
|
const checked = context?.value === value;
|
|
90
90
|
const disabled = disabledProp ?? context?.disabled;
|
|
@@ -96,7 +96,7 @@ function RadioGroupItem(props) {
|
|
|
96
96
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
97
97
|
"label",
|
|
98
98
|
{
|
|
99
|
-
className: chunkZS5756ZC_js.cn(
|
|
99
|
+
className: chunkZS5756ZC_js.cn(chunkSK24YZIC_js.radioGroupItemVariants({ size }), rootClassName, className),
|
|
100
100
|
"data-disabled": disabled ? "true" : void 0,
|
|
101
101
|
"data-state": checked ? "checked" : "unchecked",
|
|
102
102
|
htmlFor: controlId,
|
|
@@ -128,7 +128,7 @@ function RadioGroupItem(props) {
|
|
|
128
128
|
{
|
|
129
129
|
"aria-hidden": "true",
|
|
130
130
|
className: chunkZS5756ZC_js.cn(
|
|
131
|
-
|
|
131
|
+
chunkSK24YZIC_js.radioGroupControlVariants({ appearance, size }),
|
|
132
132
|
controlClassName
|
|
133
133
|
),
|
|
134
134
|
"data-slot": "radio-group-control",
|
|
@@ -136,7 +136,7 @@ function RadioGroupItem(props) {
|
|
|
136
136
|
"span",
|
|
137
137
|
{
|
|
138
138
|
className: chunkZS5756ZC_js.cn(
|
|
139
|
-
|
|
139
|
+
chunkSK24YZIC_js.radioGroupIndicatorVariants({ size }),
|
|
140
140
|
indicatorClassName
|
|
141
141
|
),
|
|
142
142
|
"data-slot": "radio-group-indicator"
|
|
@@ -153,19 +153,19 @@ RadioGroupItem.displayName = "RadioGroupItem";
|
|
|
153
153
|
|
|
154
154
|
Object.defineProperty(exports, "radioGroupControlVariants", {
|
|
155
155
|
enumerable: true,
|
|
156
|
-
get: function () { return
|
|
156
|
+
get: function () { return chunkSK24YZIC_js.radioGroupControlVariants; }
|
|
157
157
|
});
|
|
158
158
|
Object.defineProperty(exports, "radioGroupIndicatorVariants", {
|
|
159
159
|
enumerable: true,
|
|
160
|
-
get: function () { return
|
|
160
|
+
get: function () { return chunkSK24YZIC_js.radioGroupIndicatorVariants; }
|
|
161
161
|
});
|
|
162
162
|
Object.defineProperty(exports, "radioGroupItemVariants", {
|
|
163
163
|
enumerable: true,
|
|
164
|
-
get: function () { return
|
|
164
|
+
get: function () { return chunkSK24YZIC_js.radioGroupItemVariants; }
|
|
165
165
|
});
|
|
166
166
|
Object.defineProperty(exports, "radioGroupRootVariants", {
|
|
167
167
|
enumerable: true,
|
|
168
|
-
get: function () { return
|
|
168
|
+
get: function () { return chunkSK24YZIC_js.radioGroupRootVariants; }
|
|
169
169
|
});
|
|
170
170
|
exports.RadioGroup = RadioGroup;
|
|
171
171
|
exports.RadioGroupItem = RadioGroupItem;
|
package/dist/ui/radio-group.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../chunk-
|
|
3
|
-
export { radioGroupControlVariants, radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupRootVariants } from '../chunk-
|
|
4
|
-
import '../chunk-
|
|
2
|
+
import { RadioGroupContext, radioGroupRootVariants, useRadioGroupContext, radioGroupIndicatorVariants, radioGroupControlVariants, radioGroupItemVariants } from '../chunk-DSGPPYZ3.mjs';
|
|
3
|
+
export { radioGroupControlVariants, radioGroupIndicatorVariants, radioGroupItemVariants, radioGroupRootVariants } from '../chunk-DSGPPYZ3.mjs';
|
|
4
|
+
import '../chunk-523VQLCW.mjs';
|
|
5
5
|
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
6
6
|
import '../chunk-J5LGTIGS.mjs';
|
|
7
7
|
import { useId, useState, useCallback } from 'react';
|
package/dist/ui/rating.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkCJCOURVM_js = require('../chunk-CJCOURVM.js');
|
|
5
5
|
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
6
6
|
require('../chunk-PZ5AY32C.js');
|
|
7
7
|
var react = require('react');
|
|
@@ -9,17 +9,17 @@ var fa = require('react-icons/fa');
|
|
|
9
9
|
var classVarianceAuthority = require('class-variance-authority');
|
|
10
10
|
var jsxRuntime = require('react/jsx-runtime');
|
|
11
11
|
|
|
12
|
-
var ratingItemVariants = classVarianceAuthority.cva(
|
|
12
|
+
var ratingItemVariants = classVarianceAuthority.cva(chunkCJCOURVM_js.zuiRatingItemBase, {
|
|
13
13
|
variants: {
|
|
14
|
-
size:
|
|
14
|
+
size: chunkCJCOURVM_js.zuiRatingSizes
|
|
15
15
|
},
|
|
16
16
|
defaultVariants: {
|
|
17
17
|
size: "md"
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
|
-
var ratingIconVariants = classVarianceAuthority.cva(
|
|
20
|
+
var ratingIconVariants = classVarianceAuthority.cva(chunkCJCOURVM_js.zuiRatingIconBase, {
|
|
21
21
|
variants: {
|
|
22
|
-
appearance:
|
|
22
|
+
appearance: chunkCJCOURVM_js.zuiRatingAppearances
|
|
23
23
|
},
|
|
24
24
|
defaultVariants: {
|
|
25
25
|
appearance: "amber"
|
|
@@ -167,14 +167,14 @@ function Rating(props) {
|
|
|
167
167
|
{
|
|
168
168
|
ref,
|
|
169
169
|
id: rootId,
|
|
170
|
-
className: chunkZS5756ZC_js.cn(
|
|
170
|
+
className: chunkZS5756ZC_js.cn(chunkCJCOURVM_js.zuiRatingRootBase, className),
|
|
171
171
|
"data-disabled": disabled ? "true" : void 0,
|
|
172
172
|
"data-readonly": readOnly ? "true" : void 0,
|
|
173
173
|
"data-slot": "rating",
|
|
174
174
|
...rest,
|
|
175
175
|
children: [
|
|
176
|
-
label !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: labelId, className:
|
|
177
|
-
hint !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId, className:
|
|
176
|
+
label !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: labelId, className: chunkCJCOURVM_js.zuiRatingLabelBase, children: label }),
|
|
177
|
+
hint !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: hintId, className: chunkCJCOURVM_js.zuiRatingHintBase, children: hint }),
|
|
178
178
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
179
179
|
"div",
|
|
180
180
|
{
|
|
@@ -182,7 +182,7 @@ function Rating(props) {
|
|
|
182
182
|
"aria-invalid": errorMessage !== void 0 ? true : void 0,
|
|
183
183
|
"aria-labelledby": label !== void 0 ? labelId : void 0,
|
|
184
184
|
"aria-label": label === void 0 ? "Rating" : void 0,
|
|
185
|
-
className:
|
|
185
|
+
className: chunkCJCOURVM_js.zuiRatingGroupBase,
|
|
186
186
|
"data-slot": "rating-group",
|
|
187
187
|
onPointerLeave: () => setHoverValue(void 0),
|
|
188
188
|
role: "radiogroup",
|
|
@@ -226,7 +226,7 @@ function Rating(props) {
|
|
|
226
226
|
"aria-checked": resolvedValue === optionValue,
|
|
227
227
|
"aria-label": getLabel(optionValue, resolvedMax),
|
|
228
228
|
className: chunkZS5756ZC_js.cn(
|
|
229
|
-
|
|
229
|
+
chunkCJCOURVM_js.zuiRatingControlBase,
|
|
230
230
|
allowHalf ? optionIndex === 0 ? "left-0 w-1/2" : "right-0 w-1/2" : "inset-x-0"
|
|
231
231
|
),
|
|
232
232
|
"data-slot": "rating-control",
|
|
@@ -264,7 +264,7 @@ function Rating(props) {
|
|
|
264
264
|
disabled
|
|
265
265
|
}
|
|
266
266
|
),
|
|
267
|
-
errorMessage !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className:
|
|
267
|
+
errorMessage !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("p", { id: errorId, className: chunkCJCOURVM_js.zuiRatingErrorBase, children: errorMessage })
|
|
268
268
|
]
|
|
269
269
|
}
|
|
270
270
|
);
|
package/dist/ui/rating.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { zuiRatingItemBase, zuiRatingSizes, zuiRatingIconBase, zuiRatingAppearances, zuiRatingLabelBase, zuiRatingHintBase, zuiRatingGroupBase, zuiRatingControlBase, zuiRatingErrorBase, zuiRatingRootBase } from '../chunk-
|
|
2
|
+
import { zuiRatingItemBase, zuiRatingSizes, zuiRatingIconBase, zuiRatingAppearances, zuiRatingLabelBase, zuiRatingHintBase, zuiRatingGroupBase, zuiRatingControlBase, zuiRatingErrorBase, zuiRatingRootBase } from '../chunk-5AOVTY2X.mjs';
|
|
3
3
|
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
4
4
|
import '../chunk-J5LGTIGS.mjs';
|
|
5
5
|
import { useId, useState, useCallback } from 'react';
|
package/dist/ui/scroll-area.js
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunkUJXFD4SK_js = require('../chunk-UJXFD4SK.js');
|
|
5
5
|
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
6
6
|
require('../chunk-PZ5AY32C.js');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
|
|
10
|
-
var scrollAreaVariants = classVarianceAuthority.cva(
|
|
10
|
+
var scrollAreaVariants = classVarianceAuthority.cva(chunkUJXFD4SK_js.zuiScrollAreaBase, {
|
|
11
11
|
variants: {
|
|
12
|
-
appearance:
|
|
13
|
-
orientation:
|
|
14
|
-
scrollbar:
|
|
15
|
-
shadow:
|
|
16
|
-
size:
|
|
12
|
+
appearance: chunkUJXFD4SK_js.zuiScrollAreaAppearances,
|
|
13
|
+
orientation: chunkUJXFD4SK_js.zuiScrollAreaOrientations,
|
|
14
|
+
scrollbar: chunkUJXFD4SK_js.zuiScrollAreaVisibility,
|
|
15
|
+
shadow: chunkUJXFD4SK_js.zuiScrollAreaShadows,
|
|
16
|
+
size: chunkUJXFD4SK_js.zuiScrollAreaSizes
|
|
17
17
|
},
|
|
18
18
|
compoundVariants: [
|
|
19
19
|
{
|
package/dist/ui/scroll-area.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { zuiScrollAreaBase, zuiScrollAreaSizes, zuiScrollAreaShadows, zuiScrollAreaVisibility, zuiScrollAreaOrientations, zuiScrollAreaAppearances } from '../chunk-
|
|
2
|
+
import { zuiScrollAreaBase, zuiScrollAreaSizes, zuiScrollAreaShadows, zuiScrollAreaVisibility, zuiScrollAreaOrientations, zuiScrollAreaAppearances } from '../chunk-3VW4HMJT.mjs';
|
|
3
3
|
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
4
4
|
import '../chunk-J5LGTIGS.mjs';
|
|
5
5
|
import { cva } from 'class-variance-authority';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search-suggestion-list.d.ts","sourceRoot":"","sources":["../../../src/ui/search/search-suggestion-list.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAKzD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,GACX,EAAE,yBAAyB,
|
|
1
|
+
{"version":3,"file":"search-suggestion-list.d.ts","sourceRoot":"","sources":["../../../src/ui/search/search-suggestion-list.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,SAAS,CAAC;AAKzD,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,aAAa,EACb,UAAU,GACX,EAAE,yBAAyB,2CA+F3B;yBAxGe,oBAAoB"}
|
package/dist/ui/search.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
5
|
-
require('../chunk-
|
|
4
|
+
var chunkSCOIRBML_js = require('../chunk-SCOIRBML.js');
|
|
5
|
+
require('../chunk-A7MU6SFI.js');
|
|
6
6
|
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
7
7
|
require('../chunk-PZ5AY32C.js');
|
|
8
8
|
var react = require('react');
|
|
@@ -58,7 +58,7 @@ var SearchBar = function SearchBar2({
|
|
|
58
58
|
"aria-label": ariaLabel ?? (combobox ? void 0 : "Search"),
|
|
59
59
|
"data-slot": "search-bar-input",
|
|
60
60
|
className: chunkZS5756ZC_js.cn(
|
|
61
|
-
|
|
61
|
+
chunkSCOIRBML_js.inputVariants({ appearance, size: inputSize, ring, as: "input" }),
|
|
62
62
|
leadingSlot ? "pl-10" : null,
|
|
63
63
|
inputClassName,
|
|
64
64
|
"[&::-webkit-search-cancel-button]:hidden"
|
|
@@ -88,7 +88,7 @@ function searchSuggestionOptionDomId(listboxId, itemId) {
|
|
|
88
88
|
const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
89
89
|
return `${listboxId}_opt_${safe}`;
|
|
90
90
|
}
|
|
91
|
-
var rowClassName = "flex w-full flex-col gap-0.5 rounded-
|
|
91
|
+
var rowClassName = "flex w-full flex-col gap-0.5 rounded-[var(--zui-search-suggestion-radius,var(--zui-radius,0.5rem))] px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--zui-search-suggestion-bg-hover,var(--zui-surface-hover,#0000001a))] dark:hover:bg-[var(--zui-search-suggestion-bg-hover-dark,var(--zui-surface-hover-dark,#ffffff0d))] focus-visible:bg-[var(--zui-search-suggestion-bg-focus,var(--zui-surface-hover,#ffffff0d))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-search-suggestion-ring-focus,var(--zui-focus-ring,#22d3ee80))]";
|
|
92
92
|
function SearchSuggestionList({
|
|
93
93
|
items,
|
|
94
94
|
onSelect,
|
|
@@ -105,7 +105,7 @@ function SearchSuggestionList({
|
|
|
105
105
|
{
|
|
106
106
|
"data-slot": "search-suggestion-list-empty",
|
|
107
107
|
className: chunkZS5756ZC_js.cn(
|
|
108
|
-
"px-1 py-6 text-center text-sm text-
|
|
108
|
+
"px-1 py-6 text-center text-sm text-[color:var(--zui-search-empty-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-empty-fg-dark,var(--zui-fg-dark,#e2e8f0))]",
|
|
109
109
|
className
|
|
110
110
|
),
|
|
111
111
|
children: emptyLabel ?? "No matches."
|
|
@@ -147,7 +147,7 @@ function SearchSuggestionList({
|
|
|
147
147
|
"div",
|
|
148
148
|
{
|
|
149
149
|
role: "presentation",
|
|
150
|
-
className: "sticky
|
|
150
|
+
className: "sticky top-0 z-1 rounded-[var(--zui-search-group-radius,var(--zui-radius,0.5rem))] bg-[var(--zui-search-group-bg,var(--zui-surface-muted,#f8fafcf2))] px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-[color:var(--zui-search-group-fg,var(--zui-fg,#0f172a))] backdrop-blur-sm dark:bg-[var(--zui-search-group-bg-dark,var(--zui-surface-muted-dark,#020617f2))] dark:text-[color:var(--zui-search-group-fg-dark,var(--zui-fg-dark,#e2e8f0))]",
|
|
151
151
|
children: item.group
|
|
152
152
|
}
|
|
153
153
|
) : null,
|
|
@@ -159,13 +159,16 @@ function SearchSuggestionList({
|
|
|
159
159
|
role: useListbox ? "option" : void 0,
|
|
160
160
|
"aria-selected": useListbox ? isActive : void 0,
|
|
161
161
|
"data-active": isActive ? "" : void 0,
|
|
162
|
-
className: chunkZS5756ZC_js.cn(
|
|
162
|
+
className: chunkZS5756ZC_js.cn(
|
|
163
|
+
rowClassName,
|
|
164
|
+
isActive ? "bg-[var(--zui-search-suggestion-bg-active,var(--zui-surface-hover,#ffffff0d))]" : null
|
|
165
|
+
),
|
|
163
166
|
onMouseEnter: () => onActiveIdChange?.(item.id),
|
|
164
167
|
onFocus: () => onActiveIdChange?.(item.id),
|
|
165
168
|
onClick: () => onSelect(item.id),
|
|
166
169
|
children: [
|
|
167
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-
|
|
168
|
-
item.description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs text-
|
|
170
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium text-[color:var(--zui-search-suggestion-label-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-suggestion-label-fg-dark,var(--zui-fg-dark,#f1f5f9))]", children: item.label }),
|
|
171
|
+
item.description ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate text-xs text-[color:var(--zui-search-suggestion-description-fg,var(--zui-fg-muted,#0f172a))] dark:text-[color:var(--zui-search-suggestion-description-fg-dark,var(--zui-fg-muted-dark,#e2e8f0))]", children: item.description }) : null
|
|
169
172
|
]
|
|
170
173
|
}
|
|
171
174
|
)
|
package/dist/ui/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/search/search-bar.tsx","../../src/ui/search/search-suggestion-utils.ts","../../src/ui/search/search-suggestion-list.tsx","../../src/ui/search/filter-search-suggestions.ts"],"names":["SearchBar","useId","jsxs","cn","jsx","inputVariants","Fragment"],"mappings":"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","file":"search.js","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputVariants } from \"../inputs/variants\";\n\nimport type { SearchBarProps } from \"./types\";\n\nexport const SearchBar = function SearchBar({\n value,\n onValueChange,\n leadingSlot,\n className,\n inputClassName,\n appearance = \"default\",\n inputSize = \"md\",\n ring = true,\n id,\n onChange,\n disabled,\n type,\n comboboxListboxId,\n comboboxActiveOptionId,\n comboboxExpanded,\n \"aria-label\": ariaLabel,\n ref,\n ...rest\n}: SearchBarProps) {\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const combobox = Boolean(comboboxListboxId);\n\n return (\n <div\n data-slot=\"search-bar\"\n className={cn(\"relative flex w-full min-w-0 items-center\", className)}\n >\n {leadingSlot ? (\n <span\n className=\"pointer-events-none absolute left-3 top-1/2 z-1 flex -translate-y-1/2 text-slate-900 dark:text-slate-200 [&_svg]:size-4\"\n aria-hidden\n >\n {leadingSlot}\n </span>\n ) : null}\n <input\n ref={ref}\n id={controlId}\n type={type ?? \"search\"}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n value={value}\n aria-label={ariaLabel ?? (combobox ? undefined : \"Search\")}\n data-slot=\"search-bar-input\"\n className={cn(\n inputVariants({ appearance, size: inputSize, ring, as: \"input\" }),\n leadingSlot ? \"pl-10\" : null,\n inputClassName,\n \"[&::-webkit-search-cancel-button]:hidden\",\n )}\n onChange={(event) => {\n onChange?.(event);\n onValueChange?.(event.target.value);\n }}\n {...(combobox\n ? {\n role: \"combobox\" as const,\n \"aria-autocomplete\": \"list\" as const,\n \"aria-controls\": comboboxListboxId,\n \"aria-expanded\": comboboxExpanded ?? false,\n ...(comboboxActiveOptionId\n ? { \"aria-activedescendant\": comboboxActiveOptionId }\n : {}),\n }\n : {})}\n {...rest}\n />\n </div>\n );\n};\n\nSearchBar.displayName = \"SearchBar\";\n","/**\n * Builds a stable DOM id for a listbox option so `aria-activedescendant` on the combobox\n * input can reference it. Safe for href-like `itemId` strings.\n */\nexport function searchSuggestionOptionDomId(\n listboxId: string,\n itemId: string,\n): string {\n const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n return `${listboxId}_opt_${safe}`;\n}\n","\"use client\";\n\nimport { Fragment } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { searchSuggestionOptionDomId } from \"./search-suggestion-utils\";\n\nimport type { SearchSuggestionListProps } from \"./types\";\n\nconst rowClassName =\n \"flex w-full flex-col gap-0.5 rounded-lg px-3 py-2.5 text-left text-sm transition-colors dark:hover:bg-white/5 hover:bg-black/10 focus-visible:bg-white/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-400/50\";\n\nexport function SearchSuggestionList({\n items,\n onSelect,\n activeId,\n onActiveIdChange,\n listboxId,\n className,\n listClassName,\n emptyLabel,\n}: SearchSuggestionListProps) {\n if (items.length === 0) {\n return (\n <div\n data-slot=\"search-suggestion-list-empty\"\n className={cn(\n \"px-1 py-6 text-center text-sm text-slate-900 dark:text-slate-200\",\n className,\n )}\n >\n {emptyLabel ?? \"No matches.\"}\n </div>\n );\n }\n\n const useListbox = Boolean(listboxId);\n\n const rows: Array<{\n item: (typeof items)[number];\n showGroup: boolean;\n }> = [];\n let lastGroupSeen: string | undefined;\n for (const item of items) {\n const showGroup = Boolean(item.group && item.group !== lastGroupSeen);\n if (item.group) {\n lastGroupSeen = item.group;\n }\n rows.push({ item, showGroup });\n }\n\n return (\n <nav\n data-slot=\"search-suggestion-list\"\n aria-label=\"Search results\"\n className={cn(\n \"flex max-h-[min(50vh,360px)] flex-col gap-1 overflow-y-auto pr-1\",\n className,\n )}\n >\n <div\n {...(useListbox\n ? {\n id: listboxId,\n role: \"listbox\" as const,\n }\n : {})}\n className={cn(\"flex flex-col gap-0.5\", listClassName)}\n >\n {rows.map(({ item, showGroup }) => {\n const isActive = activeId === item.id;\n const optionDomId =\n useListbox && listboxId\n ? searchSuggestionOptionDomId(listboxId, item.id)\n : undefined;\n return (\n <Fragment key={item.id}>\n {showGroup ? (\n <div\n role=\"presentation\"\n className=\"sticky rounded-lg top-0 z-1 dark:bg-slate-950/95 bg-slate-50/95 px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-slate-900 dark:text-slate-200 backdrop-blur-sm\"\n >\n {item.group}\n </div>\n ) : null}\n <button\n type=\"button\"\n id={optionDomId}\n role={useListbox ? \"option\" : undefined}\n aria-selected={useListbox ? isActive : undefined}\n data-active={isActive ? \"\" : undefined}\n className={cn(rowClassName, isActive ? \"bg-white/5\" : null)}\n onMouseEnter={() => onActiveIdChange?.(item.id)}\n onFocus={() => onActiveIdChange?.(item.id)}\n onClick={() => onSelect(item.id)}\n >\n <span className=\"font-medium text-slate-900 dark:text-slate-100\">\n {item.label}\n </span>\n {item.description ? (\n <span className=\"truncate text-xs text-slate-900 dark:text-slate-200\">\n {item.description}\n </span>\n ) : null}\n </button>\n </Fragment>\n );\n })}\n </div>\n </nav>\n );\n}\n\nSearchSuggestionList.displayName = \"SearchSuggestionList\";\n","import type { SearchFilterable } from \"./types\";\n\nexport type FilterSearchSuggestionsOptions = {\n /** Maximum number of matches returned. */\n maxResults?: number;\n};\n\n/**\n * Returns items whose label, description, href, or keywords contain the query (case-insensitive).\n * Whitespace-only query matches no items.\n */\nexport function filterSearchSuggestions<T extends SearchFilterable>({\n query,\n items,\n options = { maxResults: 20 },\n}: {\n query: string;\n items: readonly T[];\n options?: FilterSearchSuggestionsOptions;\n}): T[] {\n const maxResults = options.maxResults ?? 20;\n const normalized = query.trim().toLowerCase();\n if (!normalized) {\n return [];\n }\n\n const matches: T[] = [];\n for (const item of items) {\n const isMatch =\n item.label.toLowerCase().includes(normalized) ||\n item.description?.toLowerCase().includes(normalized) ||\n item.href?.toLowerCase().includes(normalized) ||\n item.keywords?.some((k) => k.toLowerCase().includes(normalized));\n\n if (isMatch) {\n matches.push(item);\n if (matches.length >= maxResults || maxResults <= 0) {\n break;\n }\n }\n }\n return matches;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/search/search-bar.tsx","../../src/ui/search/search-suggestion-utils.ts","../../src/ui/search/search-suggestion-list.tsx","../../src/ui/search/filter-search-suggestions.ts"],"names":["SearchBar","useId","jsxs","cn","jsx","inputVariants","Fragment"],"mappings":"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","file":"search.js","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputVariants } from \"../inputs/variants\";\n\nimport type { SearchBarProps } from \"./types\";\n\nexport const SearchBar = function SearchBar({\n value,\n onValueChange,\n leadingSlot,\n className,\n inputClassName,\n appearance = \"default\",\n inputSize = \"md\",\n ring = true,\n id,\n onChange,\n disabled,\n type,\n comboboxListboxId,\n comboboxActiveOptionId,\n comboboxExpanded,\n \"aria-label\": ariaLabel,\n ref,\n ...rest\n}: SearchBarProps) {\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const combobox = Boolean(comboboxListboxId);\n\n return (\n <div\n data-slot=\"search-bar\"\n className={cn(\"relative flex w-full min-w-0 items-center\", className)}\n >\n {leadingSlot ? (\n <span\n className=\"pointer-events-none absolute left-3 top-1/2 z-1 flex -translate-y-1/2 text-slate-900 dark:text-slate-200 [&_svg]:size-4\"\n aria-hidden\n >\n {leadingSlot}\n </span>\n ) : null}\n <input\n ref={ref}\n id={controlId}\n type={type ?? \"search\"}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n value={value}\n aria-label={ariaLabel ?? (combobox ? undefined : \"Search\")}\n data-slot=\"search-bar-input\"\n className={cn(\n inputVariants({ appearance, size: inputSize, ring, as: \"input\" }),\n leadingSlot ? \"pl-10\" : null,\n inputClassName,\n \"[&::-webkit-search-cancel-button]:hidden\",\n )}\n onChange={(event) => {\n onChange?.(event);\n onValueChange?.(event.target.value);\n }}\n {...(combobox\n ? {\n role: \"combobox\" as const,\n \"aria-autocomplete\": \"list\" as const,\n \"aria-controls\": comboboxListboxId,\n \"aria-expanded\": comboboxExpanded ?? false,\n ...(comboboxActiveOptionId\n ? { \"aria-activedescendant\": comboboxActiveOptionId }\n : {}),\n }\n : {})}\n {...rest}\n />\n </div>\n );\n};\n\nSearchBar.displayName = \"SearchBar\";\n","/**\n * Builds a stable DOM id for a listbox option so `aria-activedescendant` on the combobox\n * input can reference it. Safe for href-like `itemId` strings.\n */\nexport function searchSuggestionOptionDomId(\n listboxId: string,\n itemId: string,\n): string {\n const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n return `${listboxId}_opt_${safe}`;\n}\n","\"use client\";\n\nimport { Fragment } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { searchSuggestionOptionDomId } from \"./search-suggestion-utils\";\n\nimport type { SearchSuggestionListProps } from \"./types\";\n\nconst rowClassName =\n \"flex w-full flex-col gap-0.5 rounded-[var(--zui-search-suggestion-radius,var(--zui-radius,0.5rem))] px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--zui-search-suggestion-bg-hover,var(--zui-surface-hover,#0000001a))] dark:hover:bg-[var(--zui-search-suggestion-bg-hover-dark,var(--zui-surface-hover-dark,#ffffff0d))] focus-visible:bg-[var(--zui-search-suggestion-bg-focus,var(--zui-surface-hover,#ffffff0d))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-search-suggestion-ring-focus,var(--zui-focus-ring,#22d3ee80))]\";\n\nexport function SearchSuggestionList({\n items,\n onSelect,\n activeId,\n onActiveIdChange,\n listboxId,\n className,\n listClassName,\n emptyLabel,\n}: SearchSuggestionListProps) {\n if (items.length === 0) {\n return (\n <div\n data-slot=\"search-suggestion-list-empty\"\n className={cn(\n \"px-1 py-6 text-center text-sm text-[color:var(--zui-search-empty-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-empty-fg-dark,var(--zui-fg-dark,#e2e8f0))]\",\n className,\n )}\n >\n {emptyLabel ?? \"No matches.\"}\n </div>\n );\n }\n\n const useListbox = Boolean(listboxId);\n\n const rows: Array<{\n item: (typeof items)[number];\n showGroup: boolean;\n }> = [];\n let lastGroupSeen: string | undefined;\n for (const item of items) {\n const showGroup = Boolean(item.group && item.group !== lastGroupSeen);\n if (item.group) {\n lastGroupSeen = item.group;\n }\n rows.push({ item, showGroup });\n }\n\n return (\n <nav\n data-slot=\"search-suggestion-list\"\n aria-label=\"Search results\"\n className={cn(\n \"flex max-h-[min(50vh,360px)] flex-col gap-1 overflow-y-auto pr-1\",\n className,\n )}\n >\n <div\n {...(useListbox\n ? {\n id: listboxId,\n role: \"listbox\" as const,\n }\n : {})}\n className={cn(\"flex flex-col gap-0.5\", listClassName)}\n >\n {rows.map(({ item, showGroup }) => {\n const isActive = activeId === item.id;\n const optionDomId =\n useListbox && listboxId\n ? searchSuggestionOptionDomId(listboxId, item.id)\n : undefined;\n return (\n <Fragment key={item.id}>\n {showGroup ? (\n <div\n role=\"presentation\"\n className=\"sticky top-0 z-1 rounded-[var(--zui-search-group-radius,var(--zui-radius,0.5rem))] bg-[var(--zui-search-group-bg,var(--zui-surface-muted,#f8fafcf2))] px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-[color:var(--zui-search-group-fg,var(--zui-fg,#0f172a))] backdrop-blur-sm dark:bg-[var(--zui-search-group-bg-dark,var(--zui-surface-muted-dark,#020617f2))] dark:text-[color:var(--zui-search-group-fg-dark,var(--zui-fg-dark,#e2e8f0))]\"\n >\n {item.group}\n </div>\n ) : null}\n <button\n type=\"button\"\n id={optionDomId}\n role={useListbox ? \"option\" : undefined}\n aria-selected={useListbox ? isActive : undefined}\n data-active={isActive ? \"\" : undefined}\n className={cn(\n rowClassName,\n isActive\n ? \"bg-[var(--zui-search-suggestion-bg-active,var(--zui-surface-hover,#ffffff0d))]\"\n : null,\n )}\n onMouseEnter={() => onActiveIdChange?.(item.id)}\n onFocus={() => onActiveIdChange?.(item.id)}\n onClick={() => onSelect(item.id)}\n >\n <span className=\"font-medium text-[color:var(--zui-search-suggestion-label-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-suggestion-label-fg-dark,var(--zui-fg-dark,#f1f5f9))]\">\n {item.label}\n </span>\n {item.description ? (\n <span className=\"truncate text-xs text-[color:var(--zui-search-suggestion-description-fg,var(--zui-fg-muted,#0f172a))] dark:text-[color:var(--zui-search-suggestion-description-fg-dark,var(--zui-fg-muted-dark,#e2e8f0))]\">\n {item.description}\n </span>\n ) : null}\n </button>\n </Fragment>\n );\n })}\n </div>\n </nav>\n );\n}\n\nSearchSuggestionList.displayName = \"SearchSuggestionList\";\n","import type { SearchFilterable } from \"./types\";\n\nexport type FilterSearchSuggestionsOptions = {\n /** Maximum number of matches returned. */\n maxResults?: number;\n};\n\n/**\n * Returns items whose label, description, href, or keywords contain the query (case-insensitive).\n * Whitespace-only query matches no items.\n */\nexport function filterSearchSuggestions<T extends SearchFilterable>({\n query,\n items,\n options = { maxResults: 20 },\n}: {\n query: string;\n items: readonly T[];\n options?: FilterSearchSuggestionsOptions;\n}): T[] {\n const maxResults = options.maxResults ?? 20;\n const normalized = query.trim().toLowerCase();\n if (!normalized) {\n return [];\n }\n\n const matches: T[] = [];\n for (const item of items) {\n const isMatch =\n item.label.toLowerCase().includes(normalized) ||\n item.description?.toLowerCase().includes(normalized) ||\n item.href?.toLowerCase().includes(normalized) ||\n item.keywords?.some((k) => k.toLowerCase().includes(normalized));\n\n if (isMatch) {\n matches.push(item);\n if (matches.length >= maxResults || maxResults <= 0) {\n break;\n }\n }\n }\n return matches;\n}\n"]}
|
package/dist/ui/search.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { inputVariants } from '../chunk-
|
|
3
|
-
import '../chunk-
|
|
2
|
+
import { inputVariants } from '../chunk-O22T5X4G.mjs';
|
|
3
|
+
import '../chunk-34LHS26H.mjs';
|
|
4
4
|
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
5
5
|
import '../chunk-J5LGTIGS.mjs';
|
|
6
6
|
import { useId, Fragment } from 'react';
|
|
@@ -86,7 +86,7 @@ function searchSuggestionOptionDomId(listboxId, itemId) {
|
|
|
86
86
|
const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, "_");
|
|
87
87
|
return `${listboxId}_opt_${safe}`;
|
|
88
88
|
}
|
|
89
|
-
var rowClassName = "flex w-full flex-col gap-0.5 rounded-
|
|
89
|
+
var rowClassName = "flex w-full flex-col gap-0.5 rounded-[var(--zui-search-suggestion-radius,var(--zui-radius,0.5rem))] px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--zui-search-suggestion-bg-hover,var(--zui-surface-hover,#0000001a))] dark:hover:bg-[var(--zui-search-suggestion-bg-hover-dark,var(--zui-surface-hover-dark,#ffffff0d))] focus-visible:bg-[var(--zui-search-suggestion-bg-focus,var(--zui-surface-hover,#ffffff0d))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-search-suggestion-ring-focus,var(--zui-focus-ring,#22d3ee80))]";
|
|
90
90
|
function SearchSuggestionList({
|
|
91
91
|
items,
|
|
92
92
|
onSelect,
|
|
@@ -103,7 +103,7 @@ function SearchSuggestionList({
|
|
|
103
103
|
{
|
|
104
104
|
"data-slot": "search-suggestion-list-empty",
|
|
105
105
|
className: cn(
|
|
106
|
-
"px-1 py-6 text-center text-sm text-
|
|
106
|
+
"px-1 py-6 text-center text-sm text-[color:var(--zui-search-empty-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-empty-fg-dark,var(--zui-fg-dark,#e2e8f0))]",
|
|
107
107
|
className
|
|
108
108
|
),
|
|
109
109
|
children: emptyLabel ?? "No matches."
|
|
@@ -145,7 +145,7 @@ function SearchSuggestionList({
|
|
|
145
145
|
"div",
|
|
146
146
|
{
|
|
147
147
|
role: "presentation",
|
|
148
|
-
className: "sticky
|
|
148
|
+
className: "sticky top-0 z-1 rounded-[var(--zui-search-group-radius,var(--zui-radius,0.5rem))] bg-[var(--zui-search-group-bg,var(--zui-surface-muted,#f8fafcf2))] px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-[color:var(--zui-search-group-fg,var(--zui-fg,#0f172a))] backdrop-blur-sm dark:bg-[var(--zui-search-group-bg-dark,var(--zui-surface-muted-dark,#020617f2))] dark:text-[color:var(--zui-search-group-fg-dark,var(--zui-fg-dark,#e2e8f0))]",
|
|
149
149
|
children: item.group
|
|
150
150
|
}
|
|
151
151
|
) : null,
|
|
@@ -157,13 +157,16 @@ function SearchSuggestionList({
|
|
|
157
157
|
role: useListbox ? "option" : void 0,
|
|
158
158
|
"aria-selected": useListbox ? isActive : void 0,
|
|
159
159
|
"data-active": isActive ? "" : void 0,
|
|
160
|
-
className: cn(
|
|
160
|
+
className: cn(
|
|
161
|
+
rowClassName,
|
|
162
|
+
isActive ? "bg-[var(--zui-search-suggestion-bg-active,var(--zui-surface-hover,#ffffff0d))]" : null
|
|
163
|
+
),
|
|
161
164
|
onMouseEnter: () => onActiveIdChange?.(item.id),
|
|
162
165
|
onFocus: () => onActiveIdChange?.(item.id),
|
|
163
166
|
onClick: () => onSelect(item.id),
|
|
164
167
|
children: [
|
|
165
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium text-
|
|
166
|
-
item.description ? /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-
|
|
168
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium text-[color:var(--zui-search-suggestion-label-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-suggestion-label-fg-dark,var(--zui-fg-dark,#f1f5f9))]", children: item.label }),
|
|
169
|
+
item.description ? /* @__PURE__ */ jsx("span", { className: "truncate text-xs text-[color:var(--zui-search-suggestion-description-fg,var(--zui-fg-muted,#0f172a))] dark:text-[color:var(--zui-search-suggestion-description-fg-dark,var(--zui-fg-muted-dark,#e2e8f0))]", children: item.description }) : null
|
|
167
170
|
]
|
|
168
171
|
}
|
|
169
172
|
)
|
package/dist/ui/search.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/ui/search/search-bar.tsx","../../src/ui/search/search-suggestion-utils.ts","../../src/ui/search/search-suggestion-list.tsx","../../src/ui/search/filter-search-suggestions.ts"],"names":["SearchBar","jsx","jsxs"],"mappings":"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","file":"search.mjs","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputVariants } from \"../inputs/variants\";\n\nimport type { SearchBarProps } from \"./types\";\n\nexport const SearchBar = function SearchBar({\n value,\n onValueChange,\n leadingSlot,\n className,\n inputClassName,\n appearance = \"default\",\n inputSize = \"md\",\n ring = true,\n id,\n onChange,\n disabled,\n type,\n comboboxListboxId,\n comboboxActiveOptionId,\n comboboxExpanded,\n \"aria-label\": ariaLabel,\n ref,\n ...rest\n}: SearchBarProps) {\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const combobox = Boolean(comboboxListboxId);\n\n return (\n <div\n data-slot=\"search-bar\"\n className={cn(\"relative flex w-full min-w-0 items-center\", className)}\n >\n {leadingSlot ? (\n <span\n className=\"pointer-events-none absolute left-3 top-1/2 z-1 flex -translate-y-1/2 text-slate-900 dark:text-slate-200 [&_svg]:size-4\"\n aria-hidden\n >\n {leadingSlot}\n </span>\n ) : null}\n <input\n ref={ref}\n id={controlId}\n type={type ?? \"search\"}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n value={value}\n aria-label={ariaLabel ?? (combobox ? undefined : \"Search\")}\n data-slot=\"search-bar-input\"\n className={cn(\n inputVariants({ appearance, size: inputSize, ring, as: \"input\" }),\n leadingSlot ? \"pl-10\" : null,\n inputClassName,\n \"[&::-webkit-search-cancel-button]:hidden\",\n )}\n onChange={(event) => {\n onChange?.(event);\n onValueChange?.(event.target.value);\n }}\n {...(combobox\n ? {\n role: \"combobox\" as const,\n \"aria-autocomplete\": \"list\" as const,\n \"aria-controls\": comboboxListboxId,\n \"aria-expanded\": comboboxExpanded ?? false,\n ...(comboboxActiveOptionId\n ? { \"aria-activedescendant\": comboboxActiveOptionId }\n : {}),\n }\n : {})}\n {...rest}\n />\n </div>\n );\n};\n\nSearchBar.displayName = \"SearchBar\";\n","/**\n * Builds a stable DOM id for a listbox option so `aria-activedescendant` on the combobox\n * input can reference it. Safe for href-like `itemId` strings.\n */\nexport function searchSuggestionOptionDomId(\n listboxId: string,\n itemId: string,\n): string {\n const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n return `${listboxId}_opt_${safe}`;\n}\n","\"use client\";\n\nimport { Fragment } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { searchSuggestionOptionDomId } from \"./search-suggestion-utils\";\n\nimport type { SearchSuggestionListProps } from \"./types\";\n\nconst rowClassName =\n \"flex w-full flex-col gap-0.5 rounded-lg px-3 py-2.5 text-left text-sm transition-colors dark:hover:bg-white/5 hover:bg-black/10 focus-visible:bg-white/5 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-cyan-400/50\";\n\nexport function SearchSuggestionList({\n items,\n onSelect,\n activeId,\n onActiveIdChange,\n listboxId,\n className,\n listClassName,\n emptyLabel,\n}: SearchSuggestionListProps) {\n if (items.length === 0) {\n return (\n <div\n data-slot=\"search-suggestion-list-empty\"\n className={cn(\n \"px-1 py-6 text-center text-sm text-slate-900 dark:text-slate-200\",\n className,\n )}\n >\n {emptyLabel ?? \"No matches.\"}\n </div>\n );\n }\n\n const useListbox = Boolean(listboxId);\n\n const rows: Array<{\n item: (typeof items)[number];\n showGroup: boolean;\n }> = [];\n let lastGroupSeen: string | undefined;\n for (const item of items) {\n const showGroup = Boolean(item.group && item.group !== lastGroupSeen);\n if (item.group) {\n lastGroupSeen = item.group;\n }\n rows.push({ item, showGroup });\n }\n\n return (\n <nav\n data-slot=\"search-suggestion-list\"\n aria-label=\"Search results\"\n className={cn(\n \"flex max-h-[min(50vh,360px)] flex-col gap-1 overflow-y-auto pr-1\",\n className,\n )}\n >\n <div\n {...(useListbox\n ? {\n id: listboxId,\n role: \"listbox\" as const,\n }\n : {})}\n className={cn(\"flex flex-col gap-0.5\", listClassName)}\n >\n {rows.map(({ item, showGroup }) => {\n const isActive = activeId === item.id;\n const optionDomId =\n useListbox && listboxId\n ? searchSuggestionOptionDomId(listboxId, item.id)\n : undefined;\n return (\n <Fragment key={item.id}>\n {showGroup ? (\n <div\n role=\"presentation\"\n className=\"sticky rounded-lg top-0 z-1 dark:bg-slate-950/95 bg-slate-50/95 px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-slate-900 dark:text-slate-200 backdrop-blur-sm\"\n >\n {item.group}\n </div>\n ) : null}\n <button\n type=\"button\"\n id={optionDomId}\n role={useListbox ? \"option\" : undefined}\n aria-selected={useListbox ? isActive : undefined}\n data-active={isActive ? \"\" : undefined}\n className={cn(rowClassName, isActive ? \"bg-white/5\" : null)}\n onMouseEnter={() => onActiveIdChange?.(item.id)}\n onFocus={() => onActiveIdChange?.(item.id)}\n onClick={() => onSelect(item.id)}\n >\n <span className=\"font-medium text-slate-900 dark:text-slate-100\">\n {item.label}\n </span>\n {item.description ? (\n <span className=\"truncate text-xs text-slate-900 dark:text-slate-200\">\n {item.description}\n </span>\n ) : null}\n </button>\n </Fragment>\n );\n })}\n </div>\n </nav>\n );\n}\n\nSearchSuggestionList.displayName = \"SearchSuggestionList\";\n","import type { SearchFilterable } from \"./types\";\n\nexport type FilterSearchSuggestionsOptions = {\n /** Maximum number of matches returned. */\n maxResults?: number;\n};\n\n/**\n * Returns items whose label, description, href, or keywords contain the query (case-insensitive).\n * Whitespace-only query matches no items.\n */\nexport function filterSearchSuggestions<T extends SearchFilterable>({\n query,\n items,\n options = { maxResults: 20 },\n}: {\n query: string;\n items: readonly T[];\n options?: FilterSearchSuggestionsOptions;\n}): T[] {\n const maxResults = options.maxResults ?? 20;\n const normalized = query.trim().toLowerCase();\n if (!normalized) {\n return [];\n }\n\n const matches: T[] = [];\n for (const item of items) {\n const isMatch =\n item.label.toLowerCase().includes(normalized) ||\n item.description?.toLowerCase().includes(normalized) ||\n item.href?.toLowerCase().includes(normalized) ||\n item.keywords?.some((k) => k.toLowerCase().includes(normalized));\n\n if (isMatch) {\n matches.push(item);\n if (matches.length >= maxResults || maxResults <= 0) {\n break;\n }\n }\n }\n return matches;\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../src/ui/search/search-bar.tsx","../../src/ui/search/search-suggestion-utils.ts","../../src/ui/search/search-suggestion-list.tsx","../../src/ui/search/filter-search-suggestions.ts"],"names":["SearchBar","jsx","jsxs"],"mappings":"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","file":"search.mjs","sourcesContent":["\"use client\";\n\nimport { useId } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { inputVariants } from \"../inputs/variants\";\n\nimport type { SearchBarProps } from \"./types\";\n\nexport const SearchBar = function SearchBar({\n value,\n onValueChange,\n leadingSlot,\n className,\n inputClassName,\n appearance = \"default\",\n inputSize = \"md\",\n ring = true,\n id,\n onChange,\n disabled,\n type,\n comboboxListboxId,\n comboboxActiveOptionId,\n comboboxExpanded,\n \"aria-label\": ariaLabel,\n ref,\n ...rest\n}: SearchBarProps) {\n const generatedId = useId();\n const controlId = id ?? generatedId;\n const combobox = Boolean(comboboxListboxId);\n\n return (\n <div\n data-slot=\"search-bar\"\n className={cn(\"relative flex w-full min-w-0 items-center\", className)}\n >\n {leadingSlot ? (\n <span\n className=\"pointer-events-none absolute left-3 top-1/2 z-1 flex -translate-y-1/2 text-slate-900 dark:text-slate-200 [&_svg]:size-4\"\n aria-hidden\n >\n {leadingSlot}\n </span>\n ) : null}\n <input\n ref={ref}\n id={controlId}\n type={type ?? \"search\"}\n autoComplete=\"off\"\n spellCheck={false}\n disabled={disabled}\n value={value}\n aria-label={ariaLabel ?? (combobox ? undefined : \"Search\")}\n data-slot=\"search-bar-input\"\n className={cn(\n inputVariants({ appearance, size: inputSize, ring, as: \"input\" }),\n leadingSlot ? \"pl-10\" : null,\n inputClassName,\n \"[&::-webkit-search-cancel-button]:hidden\",\n )}\n onChange={(event) => {\n onChange?.(event);\n onValueChange?.(event.target.value);\n }}\n {...(combobox\n ? {\n role: \"combobox\" as const,\n \"aria-autocomplete\": \"list\" as const,\n \"aria-controls\": comboboxListboxId,\n \"aria-expanded\": comboboxExpanded ?? false,\n ...(comboboxActiveOptionId\n ? { \"aria-activedescendant\": comboboxActiveOptionId }\n : {}),\n }\n : {})}\n {...rest}\n />\n </div>\n );\n};\n\nSearchBar.displayName = \"SearchBar\";\n","/**\n * Builds a stable DOM id for a listbox option so `aria-activedescendant` on the combobox\n * input can reference it. Safe for href-like `itemId` strings.\n */\nexport function searchSuggestionOptionDomId(\n listboxId: string,\n itemId: string,\n): string {\n const safe = itemId.replace(/[^a-zA-Z0-9_-]/g, \"_\");\n return `${listboxId}_opt_${safe}`;\n}\n","\"use client\";\n\nimport { Fragment } from \"react\";\n\nimport { cn } from \"../../lib/utils\";\nimport { searchSuggestionOptionDomId } from \"./search-suggestion-utils\";\n\nimport type { SearchSuggestionListProps } from \"./types\";\n\nconst rowClassName =\n \"flex w-full flex-col gap-0.5 rounded-[var(--zui-search-suggestion-radius,var(--zui-radius,0.5rem))] px-3 py-2.5 text-left text-sm transition-colors hover:bg-[var(--zui-search-suggestion-bg-hover,var(--zui-surface-hover,#0000001a))] dark:hover:bg-[var(--zui-search-suggestion-bg-hover-dark,var(--zui-surface-hover-dark,#ffffff0d))] focus-visible:bg-[var(--zui-search-suggestion-bg-focus,var(--zui-surface-hover,#ffffff0d))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-[var(--zui-search-suggestion-ring-focus,var(--zui-focus-ring,#22d3ee80))]\";\n\nexport function SearchSuggestionList({\n items,\n onSelect,\n activeId,\n onActiveIdChange,\n listboxId,\n className,\n listClassName,\n emptyLabel,\n}: SearchSuggestionListProps) {\n if (items.length === 0) {\n return (\n <div\n data-slot=\"search-suggestion-list-empty\"\n className={cn(\n \"px-1 py-6 text-center text-sm text-[color:var(--zui-search-empty-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-empty-fg-dark,var(--zui-fg-dark,#e2e8f0))]\",\n className,\n )}\n >\n {emptyLabel ?? \"No matches.\"}\n </div>\n );\n }\n\n const useListbox = Boolean(listboxId);\n\n const rows: Array<{\n item: (typeof items)[number];\n showGroup: boolean;\n }> = [];\n let lastGroupSeen: string | undefined;\n for (const item of items) {\n const showGroup = Boolean(item.group && item.group !== lastGroupSeen);\n if (item.group) {\n lastGroupSeen = item.group;\n }\n rows.push({ item, showGroup });\n }\n\n return (\n <nav\n data-slot=\"search-suggestion-list\"\n aria-label=\"Search results\"\n className={cn(\n \"flex max-h-[min(50vh,360px)] flex-col gap-1 overflow-y-auto pr-1\",\n className,\n )}\n >\n <div\n {...(useListbox\n ? {\n id: listboxId,\n role: \"listbox\" as const,\n }\n : {})}\n className={cn(\"flex flex-col gap-0.5\", listClassName)}\n >\n {rows.map(({ item, showGroup }) => {\n const isActive = activeId === item.id;\n const optionDomId =\n useListbox && listboxId\n ? searchSuggestionOptionDomId(listboxId, item.id)\n : undefined;\n return (\n <Fragment key={item.id}>\n {showGroup ? (\n <div\n role=\"presentation\"\n className=\"sticky top-0 z-1 rounded-[var(--zui-search-group-radius,var(--zui-radius,0.5rem))] bg-[var(--zui-search-group-bg,var(--zui-surface-muted,#f8fafcf2))] px-2 pb-1 pt-2 text-xs font-semibold uppercase tracking-wide text-[color:var(--zui-search-group-fg,var(--zui-fg,#0f172a))] backdrop-blur-sm dark:bg-[var(--zui-search-group-bg-dark,var(--zui-surface-muted-dark,#020617f2))] dark:text-[color:var(--zui-search-group-fg-dark,var(--zui-fg-dark,#e2e8f0))]\"\n >\n {item.group}\n </div>\n ) : null}\n <button\n type=\"button\"\n id={optionDomId}\n role={useListbox ? \"option\" : undefined}\n aria-selected={useListbox ? isActive : undefined}\n data-active={isActive ? \"\" : undefined}\n className={cn(\n rowClassName,\n isActive\n ? \"bg-[var(--zui-search-suggestion-bg-active,var(--zui-surface-hover,#ffffff0d))]\"\n : null,\n )}\n onMouseEnter={() => onActiveIdChange?.(item.id)}\n onFocus={() => onActiveIdChange?.(item.id)}\n onClick={() => onSelect(item.id)}\n >\n <span className=\"font-medium text-[color:var(--zui-search-suggestion-label-fg,var(--zui-fg,#0f172a))] dark:text-[color:var(--zui-search-suggestion-label-fg-dark,var(--zui-fg-dark,#f1f5f9))]\">\n {item.label}\n </span>\n {item.description ? (\n <span className=\"truncate text-xs text-[color:var(--zui-search-suggestion-description-fg,var(--zui-fg-muted,#0f172a))] dark:text-[color:var(--zui-search-suggestion-description-fg-dark,var(--zui-fg-muted-dark,#e2e8f0))]\">\n {item.description}\n </span>\n ) : null}\n </button>\n </Fragment>\n );\n })}\n </div>\n </nav>\n );\n}\n\nSearchSuggestionList.displayName = \"SearchSuggestionList\";\n","import type { SearchFilterable } from \"./types\";\n\nexport type FilterSearchSuggestionsOptions = {\n /** Maximum number of matches returned. */\n maxResults?: number;\n};\n\n/**\n * Returns items whose label, description, href, or keywords contain the query (case-insensitive).\n * Whitespace-only query matches no items.\n */\nexport function filterSearchSuggestions<T extends SearchFilterable>({\n query,\n items,\n options = { maxResults: 20 },\n}: {\n query: string;\n items: readonly T[];\n options?: FilterSearchSuggestionsOptions;\n}): T[] {\n const maxResults = options.maxResults ?? 20;\n const normalized = query.trim().toLowerCase();\n if (!normalized) {\n return [];\n }\n\n const matches: T[] = [];\n for (const item of items) {\n const isMatch =\n item.label.toLowerCase().includes(normalized) ||\n item.description?.toLowerCase().includes(normalized) ||\n item.href?.toLowerCase().includes(normalized) ||\n item.keywords?.some((k) => k.toLowerCase().includes(normalized));\n\n if (isMatch) {\n matches.push(item);\n if (matches.length >= maxResults || maxResults <= 0) {\n break;\n }\n }\n }\n return matches;\n}\n"]}
|
package/dist/ui/select.js
CHANGED
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var chunk3EJCQXGV_js = require('../chunk-3EJCQXGV.js');
|
|
5
5
|
var chunkZS5756ZC_js = require('../chunk-ZS5756ZC.js');
|
|
6
6
|
require('../chunk-PZ5AY32C.js');
|
|
7
7
|
var react = require('react');
|
|
8
8
|
var classVarianceAuthority = require('class-variance-authority');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
10
|
|
|
11
|
-
var selectTriggerVariants = classVarianceAuthority.cva(
|
|
11
|
+
var selectTriggerVariants = classVarianceAuthority.cva(chunk3EJCQXGV_js.zuiSelectTriggerBase, {
|
|
12
12
|
variants: {
|
|
13
|
-
variant:
|
|
14
|
-
size:
|
|
13
|
+
variant: chunk3EJCQXGV_js.zuiSelectTriggerVariants,
|
|
14
|
+
size: chunk3EJCQXGV_js.zuiSelectSizes
|
|
15
15
|
},
|
|
16
16
|
defaultVariants: {
|
|
17
17
|
variant: "default",
|
|
18
18
|
size: "md"
|
|
19
19
|
}
|
|
20
20
|
});
|
|
21
|
-
var selectItemVariants = classVarianceAuthority.cva(
|
|
21
|
+
var selectItemVariants = classVarianceAuthority.cva(chunk3EJCQXGV_js.zuiSelectItemBase, {
|
|
22
22
|
variants: {
|
|
23
|
-
appearance:
|
|
24
|
-
disabled:
|
|
23
|
+
appearance: chunk3EJCQXGV_js.zuiSelectItemAppearances,
|
|
24
|
+
disabled: chunk3EJCQXGV_js.zuiSelectDisabled
|
|
25
25
|
},
|
|
26
26
|
defaultVariants: {
|
|
27
27
|
appearance: "default"
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
-
var selectContentVariants = classVarianceAuthority.cva(
|
|
30
|
+
var selectContentVariants = classVarianceAuthority.cva(chunk3EJCQXGV_js.zuiSelectContentBase, {
|
|
31
31
|
variants: {
|
|
32
|
-
appearance:
|
|
33
|
-
size:
|
|
34
|
-
spacing:
|
|
32
|
+
appearance: chunk3EJCQXGV_js.zuiSelectContentAppearances,
|
|
33
|
+
size: chunk3EJCQXGV_js.zuiSelectSizes,
|
|
34
|
+
spacing: chunk3EJCQXGV_js.zuiSelectSpacing
|
|
35
35
|
},
|
|
36
36
|
defaultVariants: {
|
|
37
37
|
appearance: "default",
|
package/dist/ui/select.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { zuiSelectTriggerBase, zuiSelectSizes, zuiSelectTriggerVariants, zuiSelectItemBase, zuiSelectDisabled, zuiSelectItemAppearances, zuiSelectContentBase, zuiSelectSpacing, zuiSelectContentAppearances } from '../chunk-
|
|
2
|
+
import { zuiSelectTriggerBase, zuiSelectSizes, zuiSelectTriggerVariants, zuiSelectItemBase, zuiSelectDisabled, zuiSelectItemAppearances, zuiSelectContentBase, zuiSelectSpacing, zuiSelectContentAppearances } from '../chunk-LRYKMXKI.mjs';
|
|
3
3
|
import { cn } from '../chunk-4D54YOL6.mjs';
|
|
4
4
|
import '../chunk-J5LGTIGS.mjs';
|
|
5
5
|
import { createContext, useContext, useId, useState, useRef, useEffect, useCallback, Children, isValidElement } from 'react';
|