@elabs-ai/components-ui 4.1.0 → 5.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -1
- package/dist/chunk-22Z735L6.js +18 -0
- package/dist/chunk-22Z735L6.js.map +1 -0
- package/dist/chunk-23E62DNM.js +2 -0
- package/dist/chunk-23E62DNM.js.map +1 -0
- package/dist/chunk-2AABRSIN.js +2 -0
- package/dist/chunk-2AABRSIN.js.map +1 -0
- package/dist/chunk-2HXVFC4B.js +44 -0
- package/dist/chunk-2HXVFC4B.js.map +1 -0
- package/dist/chunk-2SBYBN45.js +2 -0
- package/dist/chunk-2SBYBN45.js.map +1 -0
- package/dist/chunk-333EWYWL.js +385 -0
- package/dist/chunk-333EWYWL.js.map +1 -0
- package/dist/chunk-35DUHYPC.js +59 -0
- package/dist/chunk-35DUHYPC.js.map +1 -0
- package/dist/chunk-35ZTVB35.js +76 -0
- package/dist/chunk-35ZTVB35.js.map +1 -0
- package/dist/chunk-36VULFFV.js +2 -0
- package/dist/chunk-36VULFFV.js.map +1 -0
- package/dist/chunk-3B7W334A.js +229 -0
- package/dist/chunk-3B7W334A.js.map +1 -0
- package/dist/chunk-3EKVSKGJ.js +256 -0
- package/dist/chunk-3EKVSKGJ.js.map +1 -0
- package/dist/chunk-3JAEQNCB.js +60 -0
- package/dist/chunk-3JAEQNCB.js.map +1 -0
- package/dist/chunk-3LWAAK3J.js +140 -0
- package/dist/chunk-3LWAAK3J.js.map +1 -0
- package/dist/chunk-3OSGTUN2.js +2 -0
- package/dist/chunk-3OSGTUN2.js.map +1 -0
- package/dist/chunk-3P7SRCDB.js +23 -0
- package/dist/chunk-3P7SRCDB.js.map +1 -0
- package/dist/chunk-45ICJ3EV.js +2 -0
- package/dist/chunk-45ICJ3EV.js.map +1 -0
- package/dist/chunk-4ACT7RLU.js +2 -0
- package/dist/chunk-4ACT7RLU.js.map +1 -0
- package/dist/chunk-4E73UAFA.js +296 -0
- package/dist/chunk-4E73UAFA.js.map +1 -0
- package/dist/chunk-4GQFIJAE.js +197 -0
- package/dist/chunk-4GQFIJAE.js.map +1 -0
- package/dist/chunk-4HTVJZVG.js +2 -0
- package/dist/chunk-4HTVJZVG.js.map +1 -0
- package/dist/chunk-4KDA5MDC.js +2 -0
- package/dist/chunk-4KDA5MDC.js.map +1 -0
- package/dist/chunk-4PITSMJ3.js +52 -0
- package/dist/chunk-4PITSMJ3.js.map +1 -0
- package/dist/chunk-4PXDZR2W.js +2 -0
- package/dist/chunk-4PXDZR2W.js.map +1 -0
- package/dist/chunk-4UWOADYM.js +2 -0
- package/dist/chunk-4UWOADYM.js.map +1 -0
- package/dist/chunk-4W3MVVKN.js +66 -0
- package/dist/chunk-4W3MVVKN.js.map +1 -0
- package/dist/chunk-4YOFSGHD.js +2 -0
- package/dist/chunk-4YOFSGHD.js.map +1 -0
- package/dist/chunk-533R5EKD.js +87 -0
- package/dist/chunk-533R5EKD.js.map +1 -0
- package/dist/chunk-545HI223.js +2 -0
- package/dist/chunk-545HI223.js.map +1 -0
- package/dist/chunk-57C25JYV.js +170 -0
- package/dist/chunk-57C25JYV.js.map +1 -0
- package/dist/chunk-5AWXGBSH.js +82 -0
- package/dist/chunk-5AWXGBSH.js.map +1 -0
- package/dist/chunk-5G2DDMHR.js +2 -0
- package/dist/chunk-5G2DDMHR.js.map +1 -0
- package/dist/chunk-5HBMI2DO.js +42 -0
- package/dist/chunk-5HBMI2DO.js.map +1 -0
- package/dist/chunk-5LCN5Q2L.js +23 -0
- package/dist/chunk-5LCN5Q2L.js.map +1 -0
- package/dist/chunk-5P4BSHIG.js +2 -0
- package/dist/chunk-5P4BSHIG.js.map +1 -0
- package/dist/chunk-5RC32MZH.js +161 -0
- package/dist/chunk-5RC32MZH.js.map +1 -0
- package/dist/chunk-5SHHIQVA.js +22 -0
- package/dist/chunk-5SHHIQVA.js.map +1 -0
- package/dist/chunk-5V5J7APL.js +27 -0
- package/dist/chunk-5V5J7APL.js.map +1 -0
- package/dist/chunk-5YZLOAKR.js +2 -0
- package/dist/chunk-5YZLOAKR.js.map +1 -0
- package/dist/chunk-5Z55AFOW.js +128 -0
- package/dist/chunk-5Z55AFOW.js.map +1 -0
- package/dist/chunk-653ZIWX6.js +2 -0
- package/dist/chunk-653ZIWX6.js.map +1 -0
- package/dist/chunk-6DHG7JVP.js +2 -0
- package/dist/chunk-6DHG7JVP.js.map +1 -0
- package/dist/chunk-6HGS5Z2Z.js +110 -0
- package/dist/chunk-6HGS5Z2Z.js.map +1 -0
- package/dist/chunk-6NKILKS6.js +35 -0
- package/dist/chunk-6NKILKS6.js.map +1 -0
- package/dist/chunk-6OFWWIEG.js +50 -0
- package/dist/chunk-6OFWWIEG.js.map +1 -0
- package/dist/chunk-6OPDRLMU.js +158 -0
- package/dist/chunk-6OPDRLMU.js.map +1 -0
- package/dist/chunk-6QU7OVFA.js +357 -0
- package/dist/chunk-6QU7OVFA.js.map +1 -0
- package/dist/chunk-6ROQKB4U.js +2 -0
- package/dist/chunk-6ROQKB4U.js.map +1 -0
- package/dist/chunk-6S43VAN7.js +2 -0
- package/dist/chunk-6S43VAN7.js.map +1 -0
- package/dist/chunk-6TJVJPNU.js +1321 -0
- package/dist/chunk-6TJVJPNU.js.map +1 -0
- package/dist/chunk-6VLJL7Q4.js +2 -0
- package/dist/chunk-6VLJL7Q4.js.map +1 -0
- package/dist/chunk-7G63B2B7.js +189 -0
- package/dist/chunk-7G63B2B7.js.map +1 -0
- package/dist/chunk-7P24I5OL.js +23 -0
- package/dist/chunk-7P24I5OL.js.map +1 -0
- package/dist/chunk-7PS5MKVH.js +97 -0
- package/dist/chunk-7PS5MKVH.js.map +1 -0
- package/dist/chunk-7WIHVGYL.js +2 -0
- package/dist/chunk-7WIHVGYL.js.map +1 -0
- package/dist/chunk-7WXDSTNR.js +62 -0
- package/dist/chunk-7WXDSTNR.js.map +1 -0
- package/dist/chunk-A43B4IT7.js +395 -0
- package/dist/chunk-A43B4IT7.js.map +1 -0
- package/dist/chunk-A47AZPCL.js +35 -0
- package/dist/chunk-A47AZPCL.js.map +1 -0
- package/dist/chunk-AA3SPDJU.js +2 -0
- package/dist/chunk-AA3SPDJU.js.map +1 -0
- package/dist/chunk-AC7X3D2M.js +2 -0
- package/dist/chunk-AC7X3D2M.js.map +1 -0
- package/dist/chunk-AE6UDP36.js +2 -0
- package/dist/chunk-AE6UDP36.js.map +1 -0
- package/dist/chunk-AFEFAGPW.js +2 -0
- package/dist/chunk-AFEFAGPW.js.map +1 -0
- package/dist/chunk-AFJCS2WV.js +95 -0
- package/dist/chunk-AFJCS2WV.js.map +1 -0
- package/dist/chunk-AQNLEP5F.js +2 -0
- package/dist/chunk-AQNLEP5F.js.map +1 -0
- package/dist/chunk-AUQVJ7KO.js +2 -0
- package/dist/chunk-AUQVJ7KO.js.map +1 -0
- package/dist/chunk-AXKZBRZK.js +32 -0
- package/dist/chunk-AXKZBRZK.js.map +1 -0
- package/dist/chunk-AZEABCK4.js +30 -0
- package/dist/chunk-AZEABCK4.js.map +1 -0
- package/dist/chunk-B23VW24W.js +2 -0
- package/dist/chunk-B23VW24W.js.map +1 -0
- package/dist/chunk-B2RSOLLO.js +2 -0
- package/dist/chunk-B2RSOLLO.js.map +1 -0
- package/dist/chunk-B5QQLMEE.js +31 -0
- package/dist/chunk-B5QQLMEE.js.map +1 -0
- package/dist/chunk-BLNXHETI.js +163 -0
- package/dist/chunk-BLNXHETI.js.map +1 -0
- package/dist/chunk-BM6NGS3A.js +201 -0
- package/dist/chunk-BM6NGS3A.js.map +1 -0
- package/dist/chunk-BN4CKDFU.js +989 -0
- package/dist/chunk-BN4CKDFU.js.map +1 -0
- package/dist/chunk-BPXLHGWI.js +54 -0
- package/dist/chunk-BPXLHGWI.js.map +1 -0
- package/dist/chunk-BTBYNKT4.js +2 -0
- package/dist/chunk-BTBYNKT4.js.map +1 -0
- package/dist/chunk-BWL7HWEF.js +325 -0
- package/dist/chunk-BWL7HWEF.js.map +1 -0
- package/dist/chunk-BZQF5QCN.js +18 -0
- package/dist/chunk-BZQF5QCN.js.map +1 -0
- package/dist/chunk-C2AQEEFB.js +2 -0
- package/dist/chunk-C2AQEEFB.js.map +1 -0
- package/dist/chunk-C753P3VJ.js +2 -0
- package/dist/chunk-C753P3VJ.js.map +1 -0
- package/dist/chunk-CDE74W6O.js +2 -0
- package/dist/chunk-CDE74W6O.js.map +1 -0
- package/dist/chunk-CEQER4CV.js +2 -0
- package/dist/chunk-CEQER4CV.js.map +1 -0
- package/dist/chunk-CQ5CH3SB.js +55 -0
- package/dist/chunk-CQ5CH3SB.js.map +1 -0
- package/dist/chunk-CRGGGHAM.js +2 -0
- package/dist/chunk-CRGGGHAM.js.map +1 -0
- package/dist/chunk-CRVB4SLG.js +2 -0
- package/dist/chunk-CRVB4SLG.js.map +1 -0
- package/dist/chunk-CT6XJIPY.js +2 -0
- package/dist/chunk-CT6XJIPY.js.map +1 -0
- package/dist/chunk-CY624JOL.js +2 -0
- package/dist/chunk-CY624JOL.js.map +1 -0
- package/dist/chunk-D3C3VVCX.js +38 -0
- package/dist/chunk-D3C3VVCX.js.map +1 -0
- package/dist/chunk-D53EN4Q6.js +2 -0
- package/dist/chunk-D53EN4Q6.js.map +1 -0
- package/dist/chunk-DCHYNTHI.js +11 -0
- package/dist/chunk-DCHYNTHI.js.map +1 -0
- package/dist/chunk-DCI6IOJX.js +236 -0
- package/dist/chunk-DCI6IOJX.js.map +1 -0
- package/dist/chunk-DFYPQ52O.js +476 -0
- package/dist/chunk-DFYPQ52O.js.map +1 -0
- package/dist/chunk-DIQJODQR.js +2 -0
- package/dist/chunk-DIQJODQR.js.map +1 -0
- package/dist/chunk-DSGTH6JW.js +2 -0
- package/dist/chunk-DSGTH6JW.js.map +1 -0
- package/dist/chunk-DT6RNLCP.js +32 -0
- package/dist/chunk-DT6RNLCP.js.map +1 -0
- package/dist/chunk-DU6ITAJL.js +2 -0
- package/dist/chunk-DU6ITAJL.js.map +1 -0
- package/dist/chunk-DUF2VZON.js +36 -0
- package/dist/chunk-DUF2VZON.js.map +1 -0
- package/dist/chunk-DXDLTYTT.js +2 -0
- package/dist/chunk-DXDLTYTT.js.map +1 -0
- package/dist/chunk-E3ES2KR6.js +55 -0
- package/dist/chunk-E3ES2KR6.js.map +1 -0
- package/dist/chunk-EAFPUZ46.js +2 -0
- package/dist/chunk-EAFPUZ46.js.map +1 -0
- package/dist/chunk-EBDOKU5K.js +2 -0
- package/dist/chunk-EBDOKU5K.js.map +1 -0
- package/dist/chunk-ECCNRCC4.js +74 -0
- package/dist/chunk-ECCNRCC4.js.map +1 -0
- package/dist/chunk-EDE73Q6Z.js +2 -0
- package/dist/chunk-EDE73Q6Z.js.map +1 -0
- package/dist/chunk-EHGIW7GA.js +190 -0
- package/dist/chunk-EHGIW7GA.js.map +1 -0
- package/dist/chunk-EJQYE4MY.js +100 -0
- package/dist/chunk-EJQYE4MY.js.map +1 -0
- package/dist/chunk-EKY3A5LO.js +133 -0
- package/dist/chunk-EKY3A5LO.js.map +1 -0
- package/dist/chunk-EL3OXVOW.js +31 -0
- package/dist/chunk-EL3OXVOW.js.map +1 -0
- package/dist/chunk-EP3U7OQ3.js +18 -0
- package/dist/chunk-EP3U7OQ3.js.map +1 -0
- package/dist/chunk-EY2PGOG3.js +246 -0
- package/dist/chunk-EY2PGOG3.js.map +1 -0
- package/dist/chunk-FAOX6A5D.js +2 -0
- package/dist/chunk-FAOX6A5D.js.map +1 -0
- package/dist/chunk-FBJ2JSRA.js +47 -0
- package/dist/chunk-FBJ2JSRA.js.map +1 -0
- package/dist/chunk-FDJ77DTR.js +2 -0
- package/dist/chunk-FDJ77DTR.js.map +1 -0
- package/dist/chunk-FDPONOOT.js +93 -0
- package/dist/chunk-FDPONOOT.js.map +1 -0
- package/dist/chunk-FHDJKH2A.js +2 -0
- package/dist/chunk-FHDJKH2A.js.map +1 -0
- package/dist/chunk-FINAKMC6.js +796 -0
- package/dist/chunk-FINAKMC6.js.map +1 -0
- package/dist/chunk-FKUP7QRJ.js +54 -0
- package/dist/chunk-FKUP7QRJ.js.map +1 -0
- package/dist/chunk-FPLZ24MK.js +2 -0
- package/dist/chunk-FPLZ24MK.js.map +1 -0
- package/dist/chunk-FRFSDZIN.js +2 -0
- package/dist/chunk-FRFSDZIN.js.map +1 -0
- package/dist/chunk-FYCCNQXQ.js +173 -0
- package/dist/chunk-FYCCNQXQ.js.map +1 -0
- package/dist/chunk-G3OTDYCD.js +53 -0
- package/dist/chunk-G3OTDYCD.js.map +1 -0
- package/dist/chunk-G72UOVKS.js +2 -0
- package/dist/chunk-G72UOVKS.js.map +1 -0
- package/dist/chunk-GAI4NEPU.js +151 -0
- package/dist/chunk-GAI4NEPU.js.map +1 -0
- package/dist/chunk-GRWGNWIJ.js +187 -0
- package/dist/chunk-GRWGNWIJ.js.map +1 -0
- package/dist/chunk-GV6GQXKX.js +176 -0
- package/dist/chunk-GV6GQXKX.js.map +1 -0
- package/dist/chunk-H5UA5JW4.js +140 -0
- package/dist/chunk-H5UA5JW4.js.map +1 -0
- package/dist/chunk-H5XSI63P.js +2 -0
- package/dist/chunk-H5XSI63P.js.map +1 -0
- package/dist/chunk-HANBQNW3.js +1498 -0
- package/dist/chunk-HANBQNW3.js.map +1 -0
- package/dist/chunk-HCU2JHPH.js +169 -0
- package/dist/chunk-HCU2JHPH.js.map +1 -0
- package/dist/chunk-HDDXP2J7.js +2 -0
- package/dist/chunk-HDDXP2J7.js.map +1 -0
- package/dist/chunk-HDS64Z5L.js +54 -0
- package/dist/chunk-HDS64Z5L.js.map +1 -0
- package/dist/chunk-HHVULJGX.js +2 -0
- package/dist/chunk-HHVULJGX.js.map +1 -0
- package/dist/chunk-HLMFRCFE.js +2 -0
- package/dist/chunk-HLMFRCFE.js.map +1 -0
- package/dist/chunk-HPUPDT4Q.js +2 -0
- package/dist/chunk-HPUPDT4Q.js.map +1 -0
- package/dist/chunk-HRYH7XQP.js +209 -0
- package/dist/chunk-HRYH7XQP.js.map +1 -0
- package/dist/chunk-HVFYAQLK.js +101 -0
- package/dist/chunk-HVFYAQLK.js.map +1 -0
- package/dist/chunk-HZPNST7D.js +2 -0
- package/dist/chunk-HZPNST7D.js.map +1 -0
- package/dist/chunk-I6O6ACCH.js +2 -0
- package/dist/chunk-I6O6ACCH.js.map +1 -0
- package/dist/chunk-IGP5E4FC.js +201 -0
- package/dist/chunk-IGP5E4FC.js.map +1 -0
- package/dist/chunk-IHMFEPIT.js +123 -0
- package/dist/chunk-IHMFEPIT.js.map +1 -0
- package/dist/chunk-IM5VJP6T.js +2 -0
- package/dist/chunk-IM5VJP6T.js.map +1 -0
- package/dist/chunk-IRUZDWJ3.js +218 -0
- package/dist/chunk-IRUZDWJ3.js.map +1 -0
- package/dist/chunk-ISWUCXEZ.js +2 -0
- package/dist/chunk-ISWUCXEZ.js.map +1 -0
- package/dist/chunk-ITFDGFOT.js +31 -0
- package/dist/chunk-ITFDGFOT.js.map +1 -0
- package/dist/chunk-IUQ474IC.js +2 -0
- package/dist/chunk-IUQ474IC.js.map +1 -0
- package/dist/chunk-IY23F2Y5.js +2 -0
- package/dist/chunk-IY23F2Y5.js.map +1 -0
- package/dist/chunk-IZJOZJDL.js +75 -0
- package/dist/chunk-IZJOZJDL.js.map +1 -0
- package/dist/chunk-J2P4YZLC.js +85 -0
- package/dist/chunk-J2P4YZLC.js.map +1 -0
- package/dist/chunk-JCRBDA66.js +2 -0
- package/dist/chunk-JCRBDA66.js.map +1 -0
- package/dist/chunk-JGS2IHER.js +140 -0
- package/dist/chunk-JGS2IHER.js.map +1 -0
- package/dist/chunk-JNWXHPZG.js +24 -0
- package/dist/chunk-JNWXHPZG.js.map +1 -0
- package/dist/chunk-JWWJ2Z5C.js +2 -0
- package/dist/chunk-JWWJ2Z5C.js.map +1 -0
- package/dist/chunk-K2GLXCTG.js +2 -0
- package/dist/chunk-K2GLXCTG.js.map +1 -0
- package/dist/chunk-K6YRTASS.js +55 -0
- package/dist/chunk-K6YRTASS.js.map +1 -0
- package/dist/chunk-KAAJL2HA.js +327 -0
- package/dist/chunk-KAAJL2HA.js.map +1 -0
- package/dist/chunk-KBNWM27Q.js +48 -0
- package/dist/chunk-KBNWM27Q.js.map +1 -0
- package/dist/chunk-KOVHUAHG.js +164 -0
- package/dist/chunk-KOVHUAHG.js.map +1 -0
- package/dist/chunk-KRVSD4OK.js +2 -0
- package/dist/chunk-KRVSD4OK.js.map +1 -0
- package/dist/chunk-KTH3GWAL.js +116 -0
- package/dist/chunk-KTH3GWAL.js.map +1 -0
- package/dist/chunk-KUAVM54Y.js +30 -0
- package/dist/chunk-KUAVM54Y.js.map +1 -0
- package/dist/chunk-KWQ6HV5Z.js +97 -0
- package/dist/chunk-KWQ6HV5Z.js.map +1 -0
- package/dist/chunk-KZWC6JCI.js +177 -0
- package/dist/chunk-KZWC6JCI.js.map +1 -0
- package/dist/chunk-L37QZALU.js +17 -0
- package/dist/chunk-L37QZALU.js.map +1 -0
- package/dist/chunk-L3SHPHLK.js +35 -0
- package/dist/chunk-L3SHPHLK.js.map +1 -0
- package/dist/chunk-L66VJIRD.js +2 -0
- package/dist/chunk-L66VJIRD.js.map +1 -0
- package/dist/chunk-LDOCY4SU.js +68 -0
- package/dist/chunk-LDOCY4SU.js.map +1 -0
- package/dist/chunk-LJGWA2XL.js +2 -0
- package/dist/chunk-LJGWA2XL.js.map +1 -0
- package/dist/chunk-LLQWLZ75.js +2 -0
- package/dist/chunk-LLQWLZ75.js.map +1 -0
- package/dist/chunk-LMO3QK7Q.js +137 -0
- package/dist/chunk-LMO3QK7Q.js.map +1 -0
- package/dist/chunk-LOSXINSS.js +100 -0
- package/dist/chunk-LOSXINSS.js.map +1 -0
- package/dist/chunk-LR2CU7HK.js +41 -0
- package/dist/chunk-LR2CU7HK.js.map +1 -0
- package/dist/chunk-LSYVAOSH.js +2 -0
- package/dist/chunk-LSYVAOSH.js.map +1 -0
- package/dist/chunk-LVRULYU4.js +400 -0
- package/dist/chunk-LVRULYU4.js.map +1 -0
- package/dist/chunk-LXW3GNF7.js +201 -0
- package/dist/chunk-LXW3GNF7.js.map +1 -0
- package/dist/chunk-LYVBDMDQ.js +2 -0
- package/dist/chunk-LYVBDMDQ.js.map +1 -0
- package/dist/chunk-M3WSUFD4.js +2 -0
- package/dist/chunk-M3WSUFD4.js.map +1 -0
- package/dist/chunk-MGAXCPT7.js +87 -0
- package/dist/chunk-MGAXCPT7.js.map +1 -0
- package/dist/chunk-MIXCXZWT.js +2 -0
- package/dist/chunk-MIXCXZWT.js.map +1 -0
- package/dist/chunk-MLGBLKUH.js +2 -0
- package/dist/chunk-MLGBLKUH.js.map +1 -0
- package/dist/chunk-MNS2VWHD.js +2 -0
- package/dist/chunk-MNS2VWHD.js.map +1 -0
- package/dist/chunk-MPMMU3QI.js +2 -0
- package/dist/chunk-MPMMU3QI.js.map +1 -0
- package/dist/chunk-MRWOHWEH.js +2 -0
- package/dist/chunk-MRWOHWEH.js.map +1 -0
- package/dist/chunk-MZDL7N52.js +2 -0
- package/dist/chunk-MZDL7N52.js.map +1 -0
- package/dist/chunk-N44PNGDS.js +169 -0
- package/dist/chunk-N44PNGDS.js.map +1 -0
- package/dist/chunk-N7PJTMRL.js +2 -0
- package/dist/chunk-N7PJTMRL.js.map +1 -0
- package/dist/chunk-NBMF7SIS.js +35 -0
- package/dist/chunk-NBMF7SIS.js.map +1 -0
- package/dist/chunk-NJAGSGPF.js +245 -0
- package/dist/chunk-NJAGSGPF.js.map +1 -0
- package/dist/chunk-NMGNXW3J.js +98 -0
- package/dist/chunk-NMGNXW3J.js.map +1 -0
- package/dist/chunk-NQY3QNLR.js +80 -0
- package/dist/chunk-NQY3QNLR.js.map +1 -0
- package/dist/chunk-NRNIUM75.js +2 -0
- package/dist/chunk-NRNIUM75.js.map +1 -0
- package/dist/chunk-NRSSSVWB.js +61 -0
- package/dist/chunk-NRSSSVWB.js.map +1 -0
- package/dist/chunk-NTTSHOOK.js +78 -0
- package/dist/chunk-NTTSHOOK.js.map +1 -0
- package/dist/chunk-O3JWMB6O.js +20 -0
- package/dist/chunk-O3JWMB6O.js.map +1 -0
- package/dist/chunk-OBEJUAN6.js +246 -0
- package/dist/chunk-OBEJUAN6.js.map +1 -0
- package/dist/chunk-OEPN373X.js +2 -0
- package/dist/chunk-OEPN373X.js.map +1 -0
- package/dist/chunk-OITCRC5D.js +2 -0
- package/dist/chunk-OITCRC5D.js.map +1 -0
- package/dist/chunk-OKV3N7QK.js +2 -0
- package/dist/chunk-OKV3N7QK.js.map +1 -0
- package/dist/chunk-ON2E7XHD.js +51 -0
- package/dist/chunk-ON2E7XHD.js.map +1 -0
- package/dist/chunk-OPMMD25Z.js +218 -0
- package/dist/chunk-OPMMD25Z.js.map +1 -0
- package/dist/chunk-OR4NVFPH.js +2 -0
- package/dist/chunk-OR4NVFPH.js.map +1 -0
- package/dist/chunk-OV4GQOLC.js +73 -0
- package/dist/chunk-OV4GQOLC.js.map +1 -0
- package/dist/chunk-OYKS7YHE.js +2 -0
- package/dist/chunk-OYKS7YHE.js.map +1 -0
- package/dist/chunk-OYM3NHSD.js +74 -0
- package/dist/chunk-OYM3NHSD.js.map +1 -0
- package/dist/chunk-OZTM6PYF.js +30 -0
- package/dist/chunk-OZTM6PYF.js.map +1 -0
- package/dist/chunk-PHAENHGL.js +19 -0
- package/dist/chunk-PHAENHGL.js.map +1 -0
- package/dist/chunk-PLCQZBZS.js +63 -0
- package/dist/chunk-PLCQZBZS.js.map +1 -0
- package/dist/chunk-PP7POY7C.js +110 -0
- package/dist/chunk-PP7POY7C.js.map +1 -0
- package/dist/chunk-PSBNQZB4.js +2 -0
- package/dist/chunk-PSBNQZB4.js.map +1 -0
- package/dist/chunk-PYPNGKRD.js +355 -0
- package/dist/chunk-PYPNGKRD.js.map +1 -0
- package/dist/chunk-QDJHUNBQ.js +2 -0
- package/dist/chunk-QDJHUNBQ.js.map +1 -0
- package/dist/chunk-QDTGDYMM.js +77 -0
- package/dist/chunk-QDTGDYMM.js.map +1 -0
- package/dist/chunk-QF6UWWDY.js +125 -0
- package/dist/chunk-QF6UWWDY.js.map +1 -0
- package/dist/chunk-QGX37P5L.js +24 -0
- package/dist/chunk-QGX37P5L.js.map +1 -0
- package/dist/chunk-QNEOO22E.js +75 -0
- package/dist/chunk-QNEOO22E.js.map +1 -0
- package/dist/chunk-QODOFLHL.js +2 -0
- package/dist/chunk-QODOFLHL.js.map +1 -0
- package/dist/chunk-QRGYKV4J.js +2 -0
- package/dist/chunk-QRGYKV4J.js.map +1 -0
- package/dist/chunk-QTIKGWU4.js +91 -0
- package/dist/chunk-QTIKGWU4.js.map +1 -0
- package/dist/chunk-R3SYH7RG.js +782 -0
- package/dist/chunk-R3SYH7RG.js.map +1 -0
- package/dist/chunk-R5JYMCEA.js +2 -0
- package/dist/chunk-R5JYMCEA.js.map +1 -0
- package/dist/chunk-R7DDZIE3.js +232 -0
- package/dist/chunk-R7DDZIE3.js.map +1 -0
- package/dist/chunk-RB5AWLDJ.js +26 -0
- package/dist/chunk-RB5AWLDJ.js.map +1 -0
- package/dist/chunk-RF7JSNXJ.js +2 -0
- package/dist/chunk-RF7JSNXJ.js.map +1 -0
- package/dist/chunk-RHXVQZOW.js +2 -0
- package/dist/chunk-RHXVQZOW.js.map +1 -0
- package/dist/chunk-RM5JIUVW.js +74 -0
- package/dist/chunk-RM5JIUVW.js.map +1 -0
- package/dist/chunk-RMSMTLXH.js +2 -0
- package/dist/chunk-RMSMTLXH.js.map +1 -0
- package/dist/chunk-RNC4M6SG.js +85 -0
- package/dist/chunk-RNC4M6SG.js.map +1 -0
- package/dist/chunk-RRYWMYGI.js +14 -0
- package/dist/chunk-RRYWMYGI.js.map +1 -0
- package/dist/chunk-RRZUMIYG.js +93 -0
- package/dist/chunk-RRZUMIYG.js.map +1 -0
- package/dist/chunk-RTHCX2TG.js +59 -0
- package/dist/chunk-RTHCX2TG.js.map +1 -0
- package/dist/chunk-RWUKMJYA.js +39 -0
- package/dist/chunk-RWUKMJYA.js.map +1 -0
- package/dist/chunk-SMTAPQEQ.js +2 -0
- package/dist/chunk-SMTAPQEQ.js.map +1 -0
- package/dist/chunk-SS6EOZKZ.js +2 -0
- package/dist/chunk-SS6EOZKZ.js.map +1 -0
- package/dist/chunk-T2XEMEN2.js +2 -0
- package/dist/chunk-T2XEMEN2.js.map +1 -0
- package/dist/chunk-T4JNXV75.js +125 -0
- package/dist/chunk-T4JNXV75.js.map +1 -0
- package/dist/chunk-T7JOWG2A.js +10 -0
- package/dist/chunk-T7JOWG2A.js.map +1 -0
- package/dist/chunk-TAQI4JTE.js +12 -0
- package/dist/chunk-TAQI4JTE.js.map +1 -0
- package/dist/chunk-TEKBTTP2.js +27 -0
- package/dist/chunk-TEKBTTP2.js.map +1 -0
- package/dist/chunk-TNOANK34.js +4483 -0
- package/dist/chunk-TNOANK34.js.map +1 -0
- package/dist/chunk-TU24Y4HN.js +178 -0
- package/dist/chunk-TU24Y4HN.js.map +1 -0
- package/dist/chunk-U26XDHMX.js +726 -0
- package/dist/chunk-U26XDHMX.js.map +1 -0
- package/dist/chunk-U4LHV5DS.js +36 -0
- package/dist/chunk-U4LHV5DS.js.map +1 -0
- package/dist/chunk-U7QYCYHC.js +2 -0
- package/dist/chunk-U7QYCYHC.js.map +1 -0
- package/dist/chunk-UANAVLMS.js +2 -0
- package/dist/chunk-UANAVLMS.js.map +1 -0
- package/dist/chunk-UCEVPLR5.js +2 -0
- package/dist/chunk-UCEVPLR5.js.map +1 -0
- package/dist/chunk-UCQDLRHR.js +31 -0
- package/dist/chunk-UCQDLRHR.js.map +1 -0
- package/dist/chunk-UFF7LLGU.js +2 -0
- package/dist/chunk-UFF7LLGU.js.map +1 -0
- package/dist/chunk-UG5TKXTK.js +2 -0
- package/dist/chunk-UG5TKXTK.js.map +1 -0
- package/dist/chunk-ULIDYFM7.js +192 -0
- package/dist/chunk-ULIDYFM7.js.map +1 -0
- package/dist/chunk-UPEMEBWH.js +186 -0
- package/dist/chunk-UPEMEBWH.js.map +1 -0
- package/dist/chunk-UQHWOPUY.js +61 -0
- package/dist/chunk-UQHWOPUY.js.map +1 -0
- package/dist/chunk-UQRYTMR7.js +2 -0
- package/dist/chunk-UQRYTMR7.js.map +1 -0
- package/dist/chunk-URVAZW44.js +323 -0
- package/dist/chunk-URVAZW44.js.map +1 -0
- package/dist/chunk-USI4LB3N.js +2 -0
- package/dist/chunk-USI4LB3N.js.map +1 -0
- package/dist/chunk-UXSV6RVS.js +31 -0
- package/dist/chunk-UXSV6RVS.js.map +1 -0
- package/dist/chunk-V2S5DINS.js +2 -0
- package/dist/chunk-V2S5DINS.js.map +1 -0
- package/dist/chunk-V3EQ6ACC.js +2 -0
- package/dist/chunk-V3EQ6ACC.js.map +1 -0
- package/dist/chunk-V4DDHF7S.js +147 -0
- package/dist/chunk-V4DDHF7S.js.map +1 -0
- package/dist/chunk-VA2OONPE.js +77 -0
- package/dist/chunk-VA2OONPE.js.map +1 -0
- package/dist/chunk-VFF3AN4Y.js +90 -0
- package/dist/chunk-VFF3AN4Y.js.map +1 -0
- package/dist/chunk-VH7GG77B.js +2 -0
- package/dist/chunk-VH7GG77B.js.map +1 -0
- package/dist/chunk-VHLPJ4XW.js +2 -0
- package/dist/chunk-VHLPJ4XW.js.map +1 -0
- package/dist/chunk-VLE5THFD.js +2 -0
- package/dist/chunk-VLE5THFD.js.map +1 -0
- package/dist/chunk-VORFRWM5.js +2 -0
- package/dist/chunk-VORFRWM5.js.map +1 -0
- package/dist/chunk-VQ2T3OEC.js +27 -0
- package/dist/chunk-VQ2T3OEC.js.map +1 -0
- package/dist/chunk-VRIAWF3A.js +25 -0
- package/dist/chunk-VRIAWF3A.js.map +1 -0
- package/dist/chunk-W6HCXQBH.js +198 -0
- package/dist/chunk-W6HCXQBH.js.map +1 -0
- package/dist/chunk-W7I2X6VI.js +2 -0
- package/dist/chunk-W7I2X6VI.js.map +1 -0
- package/dist/chunk-WCCCW4KD.js +140 -0
- package/dist/chunk-WCCCW4KD.js.map +1 -0
- package/dist/chunk-WNIVCHDP.js +2 -0
- package/dist/chunk-WNIVCHDP.js.map +1 -0
- package/dist/chunk-WOMO5CZ7.js +2 -0
- package/dist/chunk-WOMO5CZ7.js.map +1 -0
- package/dist/chunk-WTB4DDZP.js +163 -0
- package/dist/chunk-WTB4DDZP.js.map +1 -0
- package/dist/chunk-WW3CD7AU.js +118 -0
- package/dist/chunk-WW3CD7AU.js.map +1 -0
- package/dist/chunk-WX3LWMVU.js +81 -0
- package/dist/chunk-WX3LWMVU.js.map +1 -0
- package/dist/chunk-WYENWW3Y.js +2 -0
- package/dist/chunk-WYENWW3Y.js.map +1 -0
- package/dist/chunk-WZTFU6FJ.js +69 -0
- package/dist/chunk-WZTFU6FJ.js.map +1 -0
- package/dist/chunk-X4FE7UKP.js +2 -0
- package/dist/chunk-X4FE7UKP.js.map +1 -0
- package/dist/chunk-X6J4KKZZ.js +126 -0
- package/dist/chunk-X6J4KKZZ.js.map +1 -0
- package/dist/chunk-XAFRTZQF.js +56 -0
- package/dist/chunk-XAFRTZQF.js.map +1 -0
- package/dist/chunk-XGX3UFLD.js +2 -0
- package/dist/chunk-XGX3UFLD.js.map +1 -0
- package/dist/chunk-XGXCMA5M.js +2 -0
- package/dist/chunk-XGXCMA5M.js.map +1 -0
- package/dist/chunk-XJQADN6S.js +41 -0
- package/dist/chunk-XJQADN6S.js.map +1 -0
- package/dist/chunk-XMZ5LXL4.js +68 -0
- package/dist/chunk-XMZ5LXL4.js.map +1 -0
- package/dist/chunk-XONGYCW3.js +637 -0
- package/dist/chunk-XONGYCW3.js.map +1 -0
- package/dist/chunk-XYACSO57.js +36 -0
- package/dist/chunk-XYACSO57.js.map +1 -0
- package/dist/chunk-XYFEQHEM.js +2 -0
- package/dist/chunk-XYFEQHEM.js.map +1 -0
- package/dist/chunk-XZ23AFOP.js +26 -0
- package/dist/chunk-XZ23AFOP.js.map +1 -0
- package/dist/chunk-YACASX6X.js +54 -0
- package/dist/chunk-YACASX6X.js.map +1 -0
- package/dist/chunk-YCFOFNQF.js +28 -0
- package/dist/chunk-YCFOFNQF.js.map +1 -0
- package/dist/chunk-YIFB24WW.js +37 -0
- package/dist/chunk-YIFB24WW.js.map +1 -0
- package/dist/chunk-YIVL6HWS.js +68 -0
- package/dist/chunk-YIVL6HWS.js.map +1 -0
- package/dist/chunk-YK4H7VWM.js +2 -0
- package/dist/chunk-YK4H7VWM.js.map +1 -0
- package/dist/chunk-YL7VBHPZ.js +100 -0
- package/dist/chunk-YL7VBHPZ.js.map +1 -0
- package/dist/chunk-YMFEBGTU.js +2 -0
- package/dist/chunk-YMFEBGTU.js.map +1 -0
- package/dist/chunk-YPLKH5H4.js +226 -0
- package/dist/chunk-YPLKH5H4.js.map +1 -0
- package/dist/chunk-YWB7HLL7.js +126 -0
- package/dist/chunk-YWB7HLL7.js.map +1 -0
- package/dist/chunk-YXHHUJOZ.js +235 -0
- package/dist/chunk-YXHHUJOZ.js.map +1 -0
- package/dist/chunk-YZVXIPBC.js +2 -0
- package/dist/chunk-YZVXIPBC.js.map +1 -0
- package/dist/chunk-Z44RRTMX.js +2 -0
- package/dist/chunk-Z44RRTMX.js.map +1 -0
- package/dist/chunk-Z4CYBG3H.js +2 -0
- package/dist/chunk-Z4CYBG3H.js.map +1 -0
- package/dist/chunk-ZE2H4J3P.js +2 -0
- package/dist/chunk-ZE2H4J3P.js.map +1 -0
- package/dist/chunk-ZEMTALKO.js +2 -0
- package/dist/chunk-ZEMTALKO.js.map +1 -0
- package/dist/chunk-ZI2OXD6L.js +244 -0
- package/dist/chunk-ZI2OXD6L.js.map +1 -0
- package/dist/chunk-ZNFHDBUW.js +266 -0
- package/dist/chunk-ZNFHDBUW.js.map +1 -0
- package/dist/chunk-ZXBUOHCR.js +111 -0
- package/dist/chunk-ZXBUOHCR.js.map +1 -0
- package/dist/chunk-ZXVPEQM5.js +2 -0
- package/dist/chunk-ZXVPEQM5.js.map +1 -0
- package/dist/components/accordion/accordion.js +16 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/index.js +17 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/advanced-group/advanced-group.js +18 -0
- package/dist/components/advanced-group/advanced-group.js.map +1 -0
- package/dist/components/advanced-group/index.js +18 -0
- package/dist/components/advanced-group/index.js.map +1 -0
- package/dist/components/alert/alert.js +16 -0
- package/dist/components/alert/alert.js.map +1 -0
- package/dist/components/alert/index.js +17 -0
- package/dist/components/alert/index.js.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.js +30 -0
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/components/alert-dialog/index.js +31 -0
- package/dist/components/alert-dialog/index.js.map +1 -0
- package/dist/components/ambient-field/ambient-field.css +59 -0
- package/dist/components/ambient-field/ambient-field.css.map +1 -0
- package/dist/components/ambient-field/ambient-field.js +15 -0
- package/dist/components/ambient-field/ambient-field.js.map +1 -0
- package/dist/components/ambient-field/index.css +59 -0
- package/dist/components/ambient-field/index.css.map +1 -0
- package/dist/components/ambient-field/index.js +16 -0
- package/dist/components/ambient-field/index.js.map +1 -0
- package/dist/components/app-shell/app-shell.js +14 -0
- package/dist/components/app-shell/app-shell.js.map +1 -0
- package/dist/components/app-shell/index.js +15 -0
- package/dist/components/app-shell/index.js.map +1 -0
- package/dist/components/app-sidebar/app-sidebar.js +31 -0
- package/dist/components/app-sidebar/app-sidebar.js.map +1 -0
- package/dist/components/app-sidebar/index.js +31 -0
- package/dist/components/app-sidebar/index.js.map +1 -0
- package/dist/components/aspect-ratio/aspect-ratio.js +9 -0
- package/dist/components/aspect-ratio/aspect-ratio.js.map +1 -0
- package/dist/components/aspect-ratio/index.js +10 -0
- package/dist/components/aspect-ratio/index.js.map +1 -0
- package/dist/components/attribution-panel/attribution-panel.js +24 -0
- package/dist/components/attribution-panel/attribution-panel.js.map +1 -0
- package/dist/components/attribution-panel/attribution-types.js +2 -0
- package/dist/components/attribution-panel/attribution-types.js.map +1 -0
- package/dist/components/attribution-panel/attributions.generated.js +9 -0
- package/dist/components/attribution-panel/attributions.generated.js.map +1 -0
- package/dist/components/attribution-panel/index.js +24 -0
- package/dist/components/attribution-panel/index.js.map +1 -0
- package/dist/components/avatar/avatar.js +14 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/index.js +15 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.js +16 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/index.js +13 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/bento-grid/bento-grid.js +16 -0
- package/dist/components/bento-grid/bento-grid.js.map +1 -0
- package/dist/components/bento-grid/index.js +16 -0
- package/dist/components/bento-grid/index.js.map +1 -0
- package/dist/components/bounded-number/bounded-number.js +24 -0
- package/dist/components/bounded-number/bounded-number.js.map +1 -0
- package/dist/components/bounded-number/index.js +24 -0
- package/dist/components/bounded-number/index.js.map +1 -0
- package/dist/components/breadcrumb/breadcrumb.js +28 -0
- package/dist/components/breadcrumb/breadcrumb.js.map +1 -0
- package/dist/components/breadcrumb/index.js +26 -0
- package/dist/components/breadcrumb/index.js.map +1 -0
- package/dist/components/button/button.js +12 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/index.js +13 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/button-group/button-group.js +18 -0
- package/dist/components/button-group/button-group.js.map +1 -0
- package/dist/components/button-group/index.js +19 -0
- package/dist/components/button-group/index.js.map +1 -0
- package/dist/components/calendar/calendar.js +12 -0
- package/dist/components/calendar/calendar.js.map +1 -0
- package/dist/components/calendar/index.js +13 -0
- package/dist/components/calendar/index.js.map +1 -0
- package/dist/components/card/card.js +27 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/index.js +27 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/carousel/carousel.js +24 -0
- package/dist/components/carousel/carousel.js.map +1 -0
- package/dist/components/carousel/index.js +24 -0
- package/dist/components/carousel/index.js.map +1 -0
- package/dist/components/change-review/change-review.js +34 -0
- package/dist/components/change-review/change-review.js.map +1 -0
- package/dist/components/change-review/index.js +34 -0
- package/dist/components/change-review/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.js +10 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/index.js +11 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/collapsible/collapsible.js +14 -0
- package/dist/components/collapsible/collapsible.js.map +1 -0
- package/dist/components/collapsible/index.js +15 -0
- package/dist/components/collapsible/index.js.map +1 -0
- package/dist/components/collapsible-panel/index.js +11 -0
- package/dist/components/collapsible-panel/index.js.map +1 -0
- package/dist/components/collapsible-panel/use-collapsible-panel.js +11 -0
- package/dist/components/collapsible-panel/use-collapsible-panel.js.map +1 -0
- package/dist/components/color-picker/color-picker.js +18 -0
- package/dist/components/color-picker/color-picker.js.map +1 -0
- package/dist/components/color-picker/index.js +18 -0
- package/dist/components/color-picker/index.js.map +1 -0
- package/dist/components/combobox/combobox.js +28 -0
- package/dist/components/combobox/combobox.js.map +1 -0
- package/dist/components/combobox/index.js +28 -0
- package/dist/components/combobox/index.js.map +1 -0
- package/dist/components/command/command.js +39 -0
- package/dist/components/command/command.js.map +1 -0
- package/dist/components/command/index.js +39 -0
- package/dist/components/command/index.js.map +1 -0
- package/dist/components/command-chip/command-chip.js +17 -0
- package/dist/components/command-chip/command-chip.js.map +1 -0
- package/dist/components/command-chip/index.js +17 -0
- package/dist/components/command-chip/index.js.map +1 -0
- package/dist/components/command-trigger/command-trigger.js +12 -0
- package/dist/components/command-trigger/command-trigger.js.map +1 -0
- package/dist/components/command-trigger/index.js +13 -0
- package/dist/components/command-trigger/index.js.map +1 -0
- package/dist/components/confirm-dialog/confirm-dialog.js +20 -0
- package/dist/components/confirm-dialog/confirm-dialog.js.map +1 -0
- package/dist/components/confirm-dialog/index.js +20 -0
- package/dist/components/confirm-dialog/index.js.map +1 -0
- package/dist/components/context-menu/context-menu.js +36 -0
- package/dist/components/context-menu/context-menu.js.map +1 -0
- package/dist/components/context-menu/index.js +37 -0
- package/dist/components/context-menu/index.js.map +1 -0
- package/dist/components/context-rail/context-rail.js +35 -0
- package/dist/components/context-rail/context-rail.js.map +1 -0
- package/dist/components/context-rail/index.js +35 -0
- package/dist/components/context-rail/index.js.map +1 -0
- package/dist/components/copyable-value/copyable-value.js +19 -0
- package/dist/components/copyable-value/copyable-value.js.map +1 -0
- package/dist/components/copyable-value/index.js +17 -0
- package/dist/components/copyable-value/index.js.map +1 -0
- package/dist/components/date-picker/date-picker.js +21 -0
- package/dist/components/date-picker/date-picker.js.map +1 -0
- package/dist/components/date-picker/index.js +21 -0
- package/dist/components/date-picker/index.js.map +1 -0
- package/dist/components/date-range-picker/date-range-picker.js +22 -0
- package/dist/components/date-range-picker/date-range-picker.js.map +1 -0
- package/dist/components/date-range-picker/index.js +22 -0
- package/dist/components/date-range-picker/index.js.map +1 -0
- package/dist/components/descriptions/descriptions.js +12 -0
- package/dist/components/descriptions/descriptions.js.map +1 -0
- package/dist/components/descriptions/index.js +13 -0
- package/dist/components/descriptions/index.js.map +1 -0
- package/dist/components/dialog/dialog.js +41 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/index.js +45 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/dialog/use-dialog-dismiss-guard.js +10 -0
- package/dist/components/dialog/use-dialog-dismiss-guard.js.map +1 -0
- package/dist/components/drawer/drawer.js +26 -0
- package/dist/components/drawer/drawer.js.map +1 -0
- package/dist/components/drawer/index.js +27 -0
- package/dist/components/drawer/index.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +38 -0
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu/index.js +39 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/empty-state/empty-state.js +15 -0
- package/dist/components/empty-state/empty-state.js.map +1 -0
- package/dist/components/empty-state/index.js +16 -0
- package/dist/components/empty-state/index.js.map +1 -0
- package/dist/components/error-state/error-state.js +15 -0
- package/dist/components/error-state/error-state.js.map +1 -0
- package/dist/components/error-state/index.js +16 -0
- package/dist/components/error-state/index.js.map +1 -0
- package/dist/components/expand-dialog/expand-dialog.js +28 -0
- package/dist/components/expand-dialog/expand-dialog.js.map +1 -0
- package/dist/components/expand-dialog/index.js +28 -0
- package/dist/components/expand-dialog/index.js.map +1 -0
- package/dist/components/field/field-context.js +11 -0
- package/dist/components/field/field-context.js.map +1 -0
- package/dist/components/field/field.js +23 -0
- package/dist/components/field/field.js.map +1 -0
- package/dist/components/field/index.js +23 -0
- package/dist/components/field/index.js.map +1 -0
- package/dist/components/field-row/field-row.js +14 -0
- package/dist/components/field-row/field-row.js.map +1 -0
- package/dist/components/field-row/index.js +14 -0
- package/dist/components/field-row/index.js.map +1 -0
- package/dist/components/file-upload/file-upload.js +28 -0
- package/dist/components/file-upload/file-upload.js.map +1 -0
- package/dist/components/file-upload/index.js +26 -0
- package/dist/components/file-upload/index.js.map +1 -0
- package/dist/components/form/form.js +27 -0
- package/dist/components/form/form.js.map +1 -0
- package/dist/components/hover-card/hover-card.js +14 -0
- package/dist/components/hover-card/hover-card.js.map +1 -0
- package/dist/components/hover-card/index.js +15 -0
- package/dist/components/hover-card/index.js.map +1 -0
- package/dist/components/icon-button/icon-button.js +14 -0
- package/dist/components/icon-button/icon-button.js.map +1 -0
- package/dist/components/icon-button/index.js +15 -0
- package/dist/components/icon-button/index.js.map +1 -0
- package/dist/components/input/index.js +11 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.js +10 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input-group/index.js +31 -0
- package/dist/components/input-group/index.js.map +1 -0
- package/dist/components/input-group/input-group.js +30 -0
- package/dist/components/input-group/input-group.js.map +1 -0
- package/dist/components/input-otp/index.js +17 -0
- package/dist/components/input-otp/index.js.map +1 -0
- package/dist/components/input-otp/input-otp.js +17 -0
- package/dist/components/input-otp/input-otp.js.map +1 -0
- package/dist/components/install-tabs/index.js +28 -0
- package/dist/components/install-tabs/index.js.map +1 -0
- package/dist/components/install-tabs/install-tabs.js +28 -0
- package/dist/components/install-tabs/install-tabs.js.map +1 -0
- package/dist/components/integration-matrix/index.js +26 -0
- package/dist/components/integration-matrix/index.js.map +1 -0
- package/dist/components/integration-matrix/integration-matrix.js +26 -0
- package/dist/components/integration-matrix/integration-matrix.js.map +1 -0
- package/dist/components/kbd/index.js +11 -0
- package/dist/components/kbd/index.js.map +1 -0
- package/dist/components/kbd/kbd.js +10 -0
- package/dist/components/kbd/kbd.js.map +1 -0
- package/dist/components/key-value-editor/index.js +18 -0
- package/dist/components/key-value-editor/index.js.map +1 -0
- package/dist/components/key-value-editor/key-value-editor.js +18 -0
- package/dist/components/key-value-editor/key-value-editor.js.map +1 -0
- package/dist/components/keyboard-shortcuts/index.js +25 -0
- package/dist/components/keyboard-shortcuts/index.js.map +1 -0
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js +25 -0
- package/dist/components/keyboard-shortcuts/keyboard-shortcuts.js.map +1 -0
- package/dist/components/label/index.js +11 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.js +10 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/link-preview/index.js +14 -0
- package/dist/components/link-preview/index.js.map +1 -0
- package/dist/components/link-preview/link-preview.js +14 -0
- package/dist/components/link-preview/link-preview.js.map +1 -0
- package/dist/components/list-editor/index.js +18 -0
- package/dist/components/list-editor/index.js.map +1 -0
- package/dist/components/list-editor/list-editor.js +18 -0
- package/dist/components/list-editor/list-editor.js.map +1 -0
- package/dist/components/loading-state/index.js +16 -0
- package/dist/components/loading-state/index.js.map +1 -0
- package/dist/components/loading-state/loading-state.js +15 -0
- package/dist/components/loading-state/loading-state.js.map +1 -0
- package/dist/components/locale-provider/index.js +16 -0
- package/dist/components/locale-provider/index.js.map +1 -0
- package/dist/components/locale-provider/locale-provider.js +13 -0
- package/dist/components/locale-provider/locale-provider.js.map +1 -0
- package/dist/components/locale-provider/messages.js +10 -0
- package/dist/components/locale-provider/messages.js.map +1 -0
- package/dist/components/match-highlight/index.js +15 -0
- package/dist/components/match-highlight/index.js.map +1 -0
- package/dist/components/match-highlight/match-highlight.js +14 -0
- package/dist/components/match-highlight/match-highlight.js.map +1 -0
- package/dist/components/mention-input/index.js +46 -0
- package/dist/components/mention-input/index.js.map +1 -0
- package/dist/components/mention-input/mention-input.js +33 -0
- package/dist/components/mention-input/mention-input.js.map +1 -0
- package/dist/components/mention-input/mention-value.js +20 -0
- package/dist/components/mention-input/mention-value.js.map +1 -0
- package/dist/components/menubar/index.js +39 -0
- package/dist/components/menubar/index.js.map +1 -0
- package/dist/components/menubar/menubar.js +38 -0
- package/dist/components/menubar/menubar.js.map +1 -0
- package/dist/components/meter/index.js +15 -0
- package/dist/components/meter/index.js.map +1 -0
- package/dist/components/meter/meter.js +15 -0
- package/dist/components/meter/meter.js.map +1 -0
- package/dist/components/metric-card/index.js +24 -0
- package/dist/components/metric-card/index.js.map +1 -0
- package/dist/components/metric-card/metric-card.js +24 -0
- package/dist/components/metric-card/metric-card.js.map +1 -0
- package/dist/components/model-picker/index.js +37 -0
- package/dist/components/model-picker/index.js.map +1 -0
- package/dist/components/model-picker/model-picker-state.js +13 -0
- package/dist/components/model-picker/model-picker-state.js.map +1 -0
- package/dist/components/model-picker/model-picker.js +37 -0
- package/dist/components/model-picker/model-picker.js.map +1 -0
- package/dist/components/nav-main/index.js +33 -0
- package/dist/components/nav-main/index.js.map +1 -0
- package/dist/components/nav-main/nav-main.js +33 -0
- package/dist/components/nav-main/nav-main.js.map +1 -0
- package/dist/components/nav-notifications/index.js +20 -0
- package/dist/components/nav-notifications/index.js.map +1 -0
- package/dist/components/nav-notifications/nav-notifications.js +20 -0
- package/dist/components/nav-notifications/nav-notifications.js.map +1 -0
- package/dist/components/nav-user/index.js +35 -0
- package/dist/components/nav-user/index.js.map +1 -0
- package/dist/components/nav-user/nav-user.js +35 -0
- package/dist/components/nav-user/nav-user.js.map +1 -0
- package/dist/components/navigation-menu/index.js +25 -0
- package/dist/components/navigation-menu/index.js.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.js +25 -0
- package/dist/components/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/components/number-input/index.js +22 -0
- package/dist/components/number-input/index.js.map +1 -0
- package/dist/components/number-input/number-input.js +22 -0
- package/dist/components/number-input/number-input.js.map +1 -0
- package/dist/components/page-shell/index.js +11 -0
- package/dist/components/page-shell/index.js.map +1 -0
- package/dist/components/page-shell/page-shell.js +10 -0
- package/dist/components/page-shell/page-shell.js.map +1 -0
- package/dist/components/pagination/index.js +28 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.js +28 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/parallax-plane/index.css +17 -0
- package/dist/components/parallax-plane/index.css.map +1 -0
- package/dist/components/parallax-plane/index.js +18 -0
- package/dist/components/parallax-plane/index.js.map +1 -0
- package/dist/components/parallax-plane/parallax-plane.css +17 -0
- package/dist/components/parallax-plane/parallax-plane.css.map +1 -0
- package/dist/components/parallax-plane/parallax-plane.js +18 -0
- package/dist/components/parallax-plane/parallax-plane.js.map +1 -0
- package/dist/components/popover/index.js +17 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.js +16 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/progress/index.js +13 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.js +12 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/radio-group/index.js +13 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group.js +12 -0
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/rating/index.js +11 -0
- package/dist/components/rating/index.js.map +1 -0
- package/dist/components/rating/rating.js +11 -0
- package/dist/components/rating/rating.js.map +1 -0
- package/dist/components/resizable/index.js +15 -0
- package/dist/components/resizable/index.js.map +1 -0
- package/dist/components/resizable/resizable.js +14 -0
- package/dist/components/resizable/resizable.js.map +1 -0
- package/dist/components/reveal/index.js +15 -0
- package/dist/components/reveal/index.js.map +1 -0
- package/dist/components/reveal/reveal.js +14 -0
- package/dist/components/reveal/reveal.js.map +1 -0
- package/dist/components/reveal-on-enter/index.css +21 -0
- package/dist/components/reveal-on-enter/index.css.map +1 -0
- package/dist/components/reveal-on-enter/index.js +12 -0
- package/dist/components/reveal-on-enter/index.js.map +1 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.css +21 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.css.map +1 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.js +12 -0
- package/dist/components/reveal-on-enter/reveal-on-enter.js.map +1 -0
- package/dist/components/revision-timeline/index.js +18 -0
- package/dist/components/revision-timeline/index.js.map +1 -0
- package/dist/components/revision-timeline/revision-timeline.js +18 -0
- package/dist/components/revision-timeline/revision-timeline.js.map +1 -0
- package/dist/components/schema-form/from-json-schema.js +13 -0
- package/dist/components/schema-form/from-json-schema.js.map +1 -0
- package/dist/components/schema-form/index.js +140 -0
- package/dist/components/schema-form/index.js.map +1 -0
- package/dist/components/schema-form/schema-form-spec.js +63 -0
- package/dist/components/schema-form/schema-form-spec.js.map +1 -0
- package/dist/components/schema-form/schema-form-store.js +21 -0
- package/dist/components/schema-form/schema-form-store.js.map +1 -0
- package/dist/components/schema-form/schema-form.js +77 -0
- package/dist/components/schema-form/schema-form.js.map +1 -0
- package/dist/components/scroll-area/index.js +13 -0
- package/dist/components/scroll-area/index.js.map +1 -0
- package/dist/components/scroll-area/scroll-area.js +12 -0
- package/dist/components/scroll-area/scroll-area.js.map +1 -0
- package/dist/components/section-header/index.js +11 -0
- package/dist/components/section-header/index.js.map +1 -0
- package/dist/components/section-header/section-header.js +10 -0
- package/dist/components/section-header/section-header.js.map +1 -0
- package/dist/components/segmented-field/index.js +17 -0
- package/dist/components/segmented-field/index.js.map +1 -0
- package/dist/components/segmented-field/segmented-field.js +17 -0
- package/dist/components/segmented-field/segmented-field.js.map +1 -0
- package/dist/components/select/index.js +26 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.js +26 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/separator/index.js +11 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.js +10 -0
- package/dist/components/separator/separator.js.map +1 -0
- package/dist/components/sheet/index.js +30 -0
- package/dist/components/sheet/index.js.map +1 -0
- package/dist/components/sheet/sheet.js +30 -0
- package/dist/components/sheet/sheet.js.map +1 -0
- package/dist/components/side-dock/index.js +20 -0
- package/dist/components/side-dock/index.js.map +1 -0
- package/dist/components/side-dock/side-dock.js +20 -0
- package/dist/components/side-dock/side-dock.js.map +1 -0
- package/dist/components/sidebar/index.js +77 -0
- package/dist/components/sidebar/index.js.map +1 -0
- package/dist/components/sidebar/sidebar.js +77 -0
- package/dist/components/sidebar/sidebar.js.map +1 -0
- package/dist/components/skeleton/index.js +11 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.js +10 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skip-link/index.js +11 -0
- package/dist/components/skip-link/index.js.map +1 -0
- package/dist/components/skip-link/skip-link.js +10 -0
- package/dist/components/skip-link/skip-link.js.map +1 -0
- package/dist/components/slider/index.js +11 -0
- package/dist/components/slider/index.js.map +1 -0
- package/dist/components/slider/slider.js +10 -0
- package/dist/components/slider/slider.js.map +1 -0
- package/dist/components/slider-number/index.js +26 -0
- package/dist/components/slider-number/index.js.map +1 -0
- package/dist/components/slider-number/slider-number.js +26 -0
- package/dist/components/slider-number/slider-number.js.map +1 -0
- package/dist/components/sonner/index.js +13 -0
- package/dist/components/sonner/index.js.map +1 -0
- package/dist/components/sonner/sonner.js +13 -0
- package/dist/components/sonner/sonner.js.map +1 -0
- package/dist/components/spec-playground/index.js +23 -0
- package/dist/components/spec-playground/index.js.map +1 -0
- package/dist/components/spec-playground/locate-json-path.js +17 -0
- package/dist/components/spec-playground/locate-json-path.js.map +1 -0
- package/dist/components/spec-playground/spec-playground.js +23 -0
- package/dist/components/spec-playground/spec-playground.js.map +1 -0
- package/dist/components/spinner/index.js +14 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.js +14 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/split-panel/index.js +13 -0
- package/dist/components/split-panel/index.js.map +1 -0
- package/dist/components/split-panel/split-panel.js +12 -0
- package/dist/components/split-panel/split-panel.js.map +1 -0
- package/dist/components/state-panel/index.js +17 -0
- package/dist/components/state-panel/index.js.map +1 -0
- package/dist/components/state-panel/state-panel.js +17 -0
- package/dist/components/state-panel/state-panel.js.map +1 -0
- package/dist/components/status-badge/index.js +30 -0
- package/dist/components/status-badge/index.js.map +1 -0
- package/dist/components/status-badge/status-badge.js +29 -0
- package/dist/components/status-badge/status-badge.js.map +1 -0
- package/dist/components/surface-tour/index.css +21 -0
- package/dist/components/surface-tour/index.css.map +1 -0
- package/dist/components/surface-tour/index.js +36 -0
- package/dist/components/surface-tour/index.js.map +1 -0
- package/dist/components/surface-tour/surface-tour.css +21 -0
- package/dist/components/surface-tour/surface-tour.css.map +1 -0
- package/dist/components/surface-tour/surface-tour.js +36 -0
- package/dist/components/surface-tour/surface-tour.js.map +1 -0
- package/dist/components/switch/index.js +11 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.js +10 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/table/index.js +28 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.js +28 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/tabs/index.js +22 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.js +22 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tag-input/index.js +21 -0
- package/dist/components/tag-input/index.js.map +1 -0
- package/dist/components/tag-input/tag-input.js +21 -0
- package/dist/components/tag-input/tag-input.js.map +1 -0
- package/dist/components/team-switcher/index.js +33 -0
- package/dist/components/team-switcher/index.js.map +1 -0
- package/dist/components/team-switcher/team-switcher.js +33 -0
- package/dist/components/team-switcher/team-switcher.js.map +1 -0
- package/dist/components/textarea/index.js +11 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.js +10 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/theme-family-switch/index.js +19 -0
- package/dist/components/theme-family-switch/index.js.map +1 -0
- package/dist/components/theme-family-switch/theme-family-switch.js +19 -0
- package/dist/components/theme-family-switch/theme-family-switch.js.map +1 -0
- package/dist/components/theme-switcher/index.js +24 -0
- package/dist/components/theme-switcher/index.js.map +1 -0
- package/dist/components/theme-switcher/theme-switcher.js +21 -0
- package/dist/components/theme-switcher/theme-switcher.js.map +1 -0
- package/dist/components/theme-switcher/use-theme-transition.js +10 -0
- package/dist/components/theme-switcher/use-theme-transition.js.map +1 -0
- package/dist/components/timeline/index.js +18 -0
- package/dist/components/timeline/index.js.map +1 -0
- package/dist/components/timeline/timeline.js +19 -0
- package/dist/components/timeline/timeline.js.map +1 -0
- package/dist/components/toggle/index.js +13 -0
- package/dist/components/toggle/index.js.map +1 -0
- package/dist/components/toggle/toggle.js +12 -0
- package/dist/components/toggle/toggle.js.map +1 -0
- package/dist/components/toggle-group/index.js +15 -0
- package/dist/components/toggle-group/index.js.map +1 -0
- package/dist/components/toggle-group/toggle-group.js +15 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -0
- package/dist/components/token-spotlight/index.css +25 -0
- package/dist/components/token-spotlight/index.css.map +1 -0
- package/dist/components/token-spotlight/index.js +23 -0
- package/dist/components/token-spotlight/index.js.map +1 -0
- package/dist/components/token-spotlight/token-spotlight.css +25 -0
- package/dist/components/token-spotlight/token-spotlight.css.map +1 -0
- package/dist/components/token-spotlight/token-spotlight.js +23 -0
- package/dist/components/token-spotlight/token-spotlight.js.map +1 -0
- package/dist/components/token-spotlight/token-value-format.js +11 -0
- package/dist/components/token-spotlight/token-value-format.js.map +1 -0
- package/dist/components/toolbar/index.js +27 -0
- package/dist/components/toolbar/index.js.map +1 -0
- package/dist/components/toolbar/toolbar.js +27 -0
- package/dist/components/toolbar/toolbar.js.map +1 -0
- package/dist/components/tooltip/index.js +17 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.js +16 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/top-nav/index.js +11 -0
- package/dist/components/top-nav/index.js.map +1 -0
- package/dist/components/top-nav/top-nav.js +10 -0
- package/dist/components/top-nav/top-nav.js.map +1 -0
- package/dist/components/transfer/index.js +26 -0
- package/dist/components/transfer/index.js.map +1 -0
- package/dist/components/transfer/transfer.js +26 -0
- package/dist/components/transfer/transfer.js.map +1 -0
- package/dist/components/tree/index.js +21 -0
- package/dist/components/tree/index.js.map +1 -0
- package/dist/components/tree/tree.js +18 -0
- package/dist/components/tree/tree.js.map +1 -0
- package/dist/components/tree/use-tree-keyboard.js +14 -0
- package/dist/components/tree/use-tree-keyboard.js.map +1 -0
- package/dist/components/tree-select/index.js +26 -0
- package/dist/components/tree-select/index.js.map +1 -0
- package/dist/components/tree-select/tree-select.js +26 -0
- package/dist/components/tree-select/tree-select.js.map +1 -0
- package/dist/components/typography/index.js +41 -0
- package/dist/components/typography/index.js.map +1 -0
- package/dist/components/typography/prose.js +29 -0
- package/dist/components/typography/prose.js.map +1 -0
- package/dist/components/typography/typography.js +18 -0
- package/dist/components/typography/typography.js.map +1 -0
- package/dist/components/view-toolbar/index.js +27 -0
- package/dist/components/view-toolbar/index.js.map +1 -0
- package/dist/components/view-toolbar/view-toolbar.js +27 -0
- package/dist/components/view-toolbar/view-toolbar.js.map +1 -0
- package/dist/components/virtual-select/index.js +26 -0
- package/dist/components/virtual-select/index.js.map +1 -0
- package/dist/components/virtual-select/use-virtual-listbox.js +10 -0
- package/dist/components/virtual-select/use-virtual-listbox.js.map +1 -0
- package/dist/components/virtual-select/virtual-select.js +23 -0
- package/dist/components/virtual-select/virtual-select.js.map +1 -0
- package/dist/components/wizard/index.js +19 -0
- package/dist/components/wizard/index.js.map +1 -0
- package/dist/components/wizard/wizard.js +19 -0
- package/dist/components/wizard/wizard.js.map +1 -0
- package/dist/components/workspace-picker/index.js +38 -0
- package/dist/components/workspace-picker/index.js.map +1 -0
- package/dist/components/workspace-picker/workspace-picker-state.js +9 -0
- package/dist/components/workspace-picker/workspace-picker-state.js.map +1 -0
- package/dist/components/workspace-picker/workspace-picker.js +35 -0
- package/dist/components/workspace-picker/workspace-picker.js.map +1 -0
- package/dist/form.js +13 -110
- package/dist/form.js.map +1 -1
- package/dist/illustrations/empty-list-illustration.js +11 -0
- package/dist/illustrations/empty-list-illustration.js.map +1 -0
- package/dist/illustrations/error-illustration.js +11 -0
- package/dist/illustrations/error-illustration.js.map +1 -0
- package/dist/illustrations/first-run-illustration.js +11 -0
- package/dist/illustrations/first-run-illustration.js.map +1 -0
- package/dist/illustrations/illustration-base.js +16 -0
- package/dist/illustrations/illustration-base.js.map +1 -0
- package/dist/illustrations/index.js +41 -0
- package/dist/illustrations/index.js.map +1 -0
- package/dist/illustrations/no-access-illustration.js +11 -0
- package/dist/illustrations/no-access-illustration.js.map +1 -0
- package/dist/illustrations/no-results-illustration.js +11 -0
- package/dist/illustrations/no-results-illustration.js.map +1 -0
- package/dist/illustrations/offline-illustration.js +11 -0
- package/dist/illustrations/offline-illustration.js.map +1 -0
- package/dist/illustrations/success-illustration.js +11 -0
- package/dist/illustrations/success-illustration.js.map +1 -0
- package/dist/index.css +122 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.ts +1390 -146
- package/dist/index.js +997 -22676
- package/dist/index.js.map +1 -1
- package/dist/lib/agent-event-model.js +9 -0
- package/dist/lib/agent-event-model.js.map +1 -0
- package/dist/lib/approval-option.js +9 -0
- package/dist/lib/approval-option.js.map +1 -0
- package/dist/lib/check-result.js +3 -0
- package/dist/lib/check-result.js.map +1 -0
- package/dist/lib/cn.js +28 -3
- package/dist/lib/cn.js.map +1 -1
- package/dist/lib/color-scale.js +11 -0
- package/dist/lib/color-scale.js.map +1 -0
- package/dist/lib/compact-number.js +21 -0
- package/dist/lib/compact-number.js.map +1 -0
- package/dist/lib/csv.js +11 -0
- package/dist/lib/csv.js.map +1 -0
- package/dist/lib/diff-line.js +11 -0
- package/dist/lib/diff-line.js.map +1 -0
- package/dist/lib/diff-rows.js +12 -0
- package/dist/lib/diff-rows.js.map +1 -0
- package/dist/lib/document-address.js +13 -0
- package/dist/lib/document-address.js.map +1 -0
- package/dist/lib/download.js +11 -0
- package/dist/lib/download.js.map +1 -0
- package/dist/lib/file-icon.js +12 -0
- package/dist/lib/file-icon.js.map +1 -0
- package/dist/lib/file-kind.js +13 -0
- package/dist/lib/file-kind.js.map +1 -0
- package/dist/lib/file-source.js +10 -0
- package/dist/lib/file-source.js.map +1 -0
- package/dist/lib/format-duration.js +9 -0
- package/dist/lib/format-duration.js.map +1 -0
- package/dist/lib/has-renderable-content.js +9 -0
- package/dist/lib/has-renderable-content.js.map +1 -0
- package/dist/lib/merge-refs.js +10 -0
- package/dist/lib/merge-refs.js.map +1 -0
- package/dist/lib/operating-mode.js +9 -0
- package/dist/lib/operating-mode.js.map +1 -0
- package/dist/lib/optional-peer.js +11 -0
- package/dist/lib/optional-peer.js.map +1 -0
- package/dist/lib/session-launch.js +3 -0
- package/dist/lib/session-launch.js.map +1 -0
- package/dist/lib/slash-command.js +11 -0
- package/dist/lib/slash-command.js.map +1 -0
- package/dist/lib/streamdown-translations.js +15 -0
- package/dist/lib/streamdown-translations.js.map +1 -0
- package/dist/lib/trigger-query.js +11 -0
- package/dist/lib/trigger-query.js.map +1 -0
- package/dist/lib/use-controllable-state.js +10 -0
- package/dist/lib/use-controllable-state.js.map +1 -0
- package/dist/lib/use-copy-to-clipboard.js +12 -0
- package/dist/lib/use-copy-to-clipboard.js.map +1 -0
- package/dist/lib/use-mobile.js +10 -0
- package/dist/lib/use-mobile.js.map +1 -0
- package/dist/lib/use-scroll-progress.js +18 -0
- package/dist/lib/use-scroll-progress.js.map +1 -0
- package/package.json +12 -5
- package/src/__contract__/ambient-field.contract.test.tsx +49 -0
- package/src/__contract__/attribution-panel.contract.test.tsx +49 -0
- package/src/__contract__/badge.contract.test.tsx +49 -0
- package/src/__contract__/bounded-number.contract.test.tsx +49 -0
- package/src/__contract__/button.contract.test.tsx +49 -0
- package/src/__contract__/color-picker.contract.test.tsx +49 -0
- package/src/__contract__/combobox.contract.test.tsx +49 -0
- package/src/__contract__/command-chip.contract.test.tsx +49 -0
- package/src/__contract__/command-trigger.contract.test.tsx +49 -0
- package/src/__contract__/copyable-value.contract.test.tsx +49 -0
- package/src/__contract__/date-picker.contract.test.tsx +49 -0
- package/src/__contract__/date-range-picker.contract.test.tsx +49 -0
- package/src/__contract__/empty-state.contract.test.tsx +49 -0
- package/src/__contract__/error-state.contract.test.tsx +49 -0
- package/src/__contract__/icon-button.contract.test.tsx +49 -0
- package/src/__contract__/input.contract.test.tsx +49 -0
- package/src/__contract__/install-tabs.contract.test.tsx +49 -0
- package/src/__contract__/integration-matrix.contract.test.tsx +49 -0
- package/src/__contract__/key-value-editor.contract.test.tsx +49 -0
- package/src/__contract__/list-editor.contract.test.tsx +49 -0
- package/src/__contract__/loading-state.contract.test.tsx +49 -0
- package/src/__contract__/meter.contract.test.tsx +49 -0
- package/src/__contract__/metric-card.contract.test.tsx +49 -0
- package/src/__contract__/model-picker.contract.test.tsx +49 -0
- package/src/__contract__/nav-notifications.contract.test.tsx +49 -0
- package/src/__contract__/number-input.contract.test.tsx +49 -0
- package/src/__contract__/parallax-plane.contract.test.tsx +49 -0
- package/src/__contract__/rating.contract.test.tsx +49 -0
- package/src/__contract__/reveal-on-enter.contract.test.tsx +49 -0
- package/src/__contract__/schema-form.contract.test.tsx +49 -0
- package/src/__contract__/section-header.contract.test.tsx +49 -0
- package/src/__contract__/segmented-field.contract.test.tsx +49 -0
- package/src/__contract__/slider-number.contract.test.tsx +49 -0
- package/src/__contract__/spec-playground.contract.test.tsx +49 -0
- package/src/__contract__/status-badge.contract.test.tsx +49 -0
- package/src/__contract__/surface-tour.contract.test.tsx +49 -0
- package/src/__contract__/tag-input.contract.test.tsx +49 -0
- package/src/__contract__/text.contract.test.tsx +49 -0
- package/src/__contract__/textarea.contract.test.tsx +49 -0
- package/src/__contract__/theme-family-switch.contract.test.tsx +49 -0
- package/src/__contract__/timeline.contract.test.tsx +49 -0
- package/src/__contract__/toggle.contract.test.tsx +49 -0
- package/src/__contract__/token-spotlight.contract.test.tsx +49 -0
- package/src/__contract__/transfer.contract.test.tsx +49 -0
- package/src/__contract__/tree-select.contract.test.tsx +49 -0
- package/src/__contract__/tree.contract.test.tsx +49 -0
- package/src/__contract__/virtual-select.contract.test.tsx +49 -0
- package/src/__contract__/workspace-picker.contract.test.tsx +49 -0
- package/src/blocks-comparison-table.stories.tsx +1 -1
- package/src/components/accordion/accordion.tsx +41 -16
- package/src/components/advanced-group/advanced-group.stories.tsx +2 -0
- package/src/components/alert/alert.tsx +24 -8
- package/src/components/alert-dialog/alert-dialog.test.tsx +32 -0
- package/src/components/alert-dialog/alert-dialog.tsx +28 -6
- package/src/components/ambient-field/ambient-field.css +98 -0
- package/src/components/ambient-field/ambient-field.stories.tsx +75 -0
- package/src/components/ambient-field/ambient-field.test.tsx +28 -0
- package/src/components/ambient-field/ambient-field.tsx +69 -0
- package/src/components/ambient-field/index.ts +7 -0
- package/src/components/app-shell/app-shell.stories.tsx +344 -1
- package/src/components/app-shell/app-shell.test.tsx +266 -0
- package/src/components/app-shell/app-shell.tsx +147 -14
- package/src/components/app-shell/index.ts +1 -1
- package/src/components/attribution-panel/attribution-panel.tsx +2 -0
- package/src/components/attribution-panel/attributions.generated.ts +79 -6
- package/src/components/avatar/avatar.tsx +4 -1
- package/src/components/badge/badge.stories.tsx +62 -0
- package/src/components/badge/badge.test.tsx +29 -0
- package/src/components/badge/badge.tsx +101 -11
- package/src/components/bento-grid/bento-grid.test.tsx +23 -2
- package/src/components/bento-grid/bento-grid.tsx +10 -0
- package/src/components/bounded-number/bounded-number.test.tsx +1 -1
- package/src/components/bounded-number/bounded-number.tsx +78 -75
- package/src/components/breadcrumb/breadcrumb.stories.tsx +1 -1
- package/src/components/breadcrumb/breadcrumb.tsx +5 -2
- package/src/components/button/button.stories.tsx +5 -1
- package/src/components/button/button.tsx +37 -20
- package/src/components/button-group/button-group.tsx +1 -1
- package/src/components/calendar/calendar.tsx +9 -3
- package/src/components/card/card.stories.tsx +73 -1
- package/src/components/card/card.test.tsx +53 -4
- package/src/components/card/card.tsx +122 -17
- package/src/components/card/index.ts +2 -0
- package/src/components/carousel/carousel.test.tsx +169 -0
- package/src/components/carousel/carousel.tsx +93 -32
- package/src/components/change-review/change-review.tsx +39 -30
- package/src/components/checkbox/checkbox.tsx +1 -0
- package/src/components/collapsible-panel/index.ts +1 -0
- package/src/components/collapsible-panel/use-collapsible-panel.ts +21 -5
- package/src/components/color-picker/color-picker.tsx +20 -14
- package/src/components/combobox/combobox.stories.tsx +10 -0
- package/src/components/combobox/combobox.test.tsx +54 -0
- package/src/components/combobox/combobox.tsx +25 -11
- package/src/components/command/command.stories.tsx +64 -1
- package/src/components/command/command.test.tsx +88 -0
- package/src/components/command/command.tsx +81 -8
- package/src/components/command-chip/command-chip.stories.tsx +78 -0
- package/src/components/command-chip/command-chip.test.tsx +57 -0
- package/src/components/command-chip/command-chip.tsx +168 -0
- package/src/components/command-chip/index.ts +7 -0
- package/src/components/command-trigger/command-trigger.tsx +1 -1
- package/src/components/confirm-dialog/confirm-dialog.stories.tsx +2 -0
- package/src/components/context-menu/context-menu.stories.tsx +26 -0
- package/src/components/context-menu/context-menu.tsx +17 -8
- package/src/components/context-rail/context-rail.tsx +26 -8
- package/src/components/copyable-value/copyable-value.stories.tsx +10 -0
- package/src/components/copyable-value/copyable-value.test.tsx +28 -1
- package/src/components/copyable-value/copyable-value.tsx +12 -1
- package/src/components/date-picker/date-picker.stories.tsx +9 -0
- package/src/components/date-picker/date-picker.test.tsx +52 -0
- package/src/components/date-picker/date-picker.tsx +15 -15
- package/src/components/date-range-picker/date-range-picker.stories.tsx +9 -0
- package/src/components/date-range-picker/date-range-picker.test.tsx +76 -1
- package/src/components/date-range-picker/date-range-picker.tsx +39 -28
- package/src/components/descriptions/descriptions.stories.tsx +6 -0
- package/src/components/descriptions/descriptions.test.tsx +18 -0
- package/src/components/descriptions/descriptions.tsx +34 -6
- package/src/components/descriptions/index.ts +1 -0
- package/src/components/dialog/dialog.stories.tsx +5 -0
- package/src/components/dialog/dialog.test.tsx +8 -3
- package/src/components/dialog/dialog.tsx +13 -5
- package/src/components/drawer/drawer.tsx +23 -6
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +37 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +17 -9
- package/src/components/expand-dialog/expand-dialog.test.tsx +47 -0
- package/src/components/expand-dialog/expand-dialog.tsx +20 -5
- package/src/components/field/field.tsx +2 -0
- package/src/components/field-row/field-row.tsx +2 -0
- package/src/components/file-upload/file-upload.test.tsx +83 -10
- package/src/components/file-upload/file-upload.tsx +150 -28
- package/src/components/form/form.tsx +4 -2
- package/src/components/hover-card/hover-card.tsx +2 -1
- package/src/components/icon-button/icon-button.tsx +1 -1
- package/src/components/input/input.stories.tsx +17 -0
- package/src/components/input/input.tsx +8 -4
- package/src/components/input-group/input-group.stories.tsx +43 -6
- package/src/components/input-group/input-group.tsx +10 -7
- package/src/components/input-otp/input-otp.tsx +7 -3
- package/src/components/install-tabs/index.ts +8 -0
- package/src/components/install-tabs/install-tabs.stories.tsx +147 -0
- package/src/components/install-tabs/install-tabs.test.tsx +120 -0
- package/src/components/install-tabs/install-tabs.tsx +238 -0
- package/src/components/integration-matrix/index.ts +10 -0
- package/src/components/integration-matrix/integration-matrix.stories.tsx +171 -0
- package/src/components/integration-matrix/integration-matrix.test.tsx +89 -0
- package/src/components/integration-matrix/integration-matrix.tsx +237 -0
- package/src/components/keyboard-shortcuts/keyboard-shortcuts.tsx +2 -2
- package/src/components/label/label.tsx +1 -1
- package/src/components/list-editor/list-editor.test.tsx +24 -0
- package/src/components/list-editor/list-editor.tsx +126 -52
- package/src/components/locale-provider/locale-keys.test.ts +134 -0
- package/src/components/locale-provider/messages.ts +573 -0
- package/src/components/mention-input/mention-input.stories.tsx +3 -3
- package/src/components/mention-input/mention-input.test.tsx +51 -1
- package/src/components/mention-input/mention-input.tsx +59 -9
- package/src/components/menubar/menubar.stories.tsx +25 -0
- package/src/components/menubar/menubar.tsx +18 -8
- package/src/components/meter/index.ts +1 -0
- package/src/components/meter/meter.stories.tsx +102 -0
- package/src/components/meter/meter.test.tsx +61 -0
- package/src/components/meter/meter.tsx +173 -0
- package/src/components/metric-card/index.ts +6 -1
- package/src/components/metric-card/metric-card.stories.tsx +63 -0
- package/src/components/metric-card/metric-card.test.tsx +83 -0
- package/src/components/metric-card/metric-card.tsx +97 -14
- package/src/components/nav-main/nav-main.tsx +7 -3
- package/src/components/nav-notifications/nav-notifications.test.tsx +11 -0
- package/src/components/nav-notifications/nav-notifications.tsx +11 -5
- package/src/components/nav-user/nav-user.test.tsx +23 -1
- package/src/components/nav-user/nav-user.tsx +68 -53
- package/src/components/navigation-menu/navigation-menu.stories.tsx +42 -0
- package/src/components/navigation-menu/navigation-menu.tsx +16 -4
- package/src/components/number-input/number-input.stories.tsx +7 -3
- package/src/components/number-input/number-input.test.tsx +47 -0
- package/src/components/number-input/number-input.tsx +65 -24
- package/src/components/page-shell/page-shell.stories.tsx +1 -1
- package/src/components/page-shell/page-shell.tsx +3 -2
- package/src/components/pagination/pagination.test.tsx +20 -1
- package/src/components/pagination/pagination.tsx +20 -14
- package/src/components/parallax-plane/index.ts +8 -0
- package/src/components/parallax-plane/parallax-plane.css +26 -0
- package/src/components/parallax-plane/parallax-plane.stories.tsx +88 -0
- package/src/components/parallax-plane/parallax-plane.test.tsx +57 -0
- package/src/components/parallax-plane/parallax-plane.tsx +80 -0
- package/src/components/popover/popover.tsx +2 -1
- package/src/components/progress/progress.stories.tsx +85 -0
- package/src/components/progress/progress.test.tsx +47 -0
- package/src/components/progress/progress.tsx +59 -3
- package/src/components/rating/rating.tsx +2 -0
- package/src/components/resizable/resizable.test.tsx +76 -0
- package/src/components/resizable/resizable.tsx +31 -5
- package/src/components/reveal-on-enter/index.ts +5 -0
- package/src/components/reveal-on-enter/reveal-on-enter.css +32 -0
- package/src/components/reveal-on-enter/reveal-on-enter.stories.tsx +100 -0
- package/src/components/reveal-on-enter/reveal-on-enter.test.tsx +87 -0
- package/src/components/reveal-on-enter/reveal-on-enter.tsx +75 -0
- package/src/components/revision-timeline/revision-timeline.tsx +8 -5
- package/src/components/schema-form/index.ts +2 -0
- package/src/components/schema-form/schema-form-spec.ts +36 -0
- package/src/components/schema-form/schema-form-store.ts +506 -0
- package/src/components/schema-form/schema-form.stories.tsx +33 -0
- package/src/components/schema-form/schema-form.test.tsx +165 -1
- package/src/components/schema-form/schema-form.tsx +271 -328
- package/src/components/scroll-area/index.ts +1 -1
- package/src/components/scroll-area/scroll-area.tsx +47 -18
- package/src/components/section-header/section-header.tsx +2 -4
- package/src/components/select/select.stories.tsx +17 -0
- package/src/components/select/select.test.tsx +28 -1
- package/src/components/select/select.tsx +9 -7
- package/src/components/separator/separator.tsx +1 -0
- package/src/components/sheet/sheet.test.tsx +39 -0
- package/src/components/sheet/sheet.tsx +40 -9
- package/src/components/side-dock/side-dock.stories.tsx +83 -0
- package/src/components/side-dock/side-dock.test.tsx +26 -0
- package/src/components/side-dock/side-dock.tsx +65 -18
- package/src/components/sidebar/sidebar.stories.tsx +3 -3
- package/src/components/sidebar/sidebar.test.tsx +66 -2
- package/src/components/sidebar/sidebar.tsx +54 -13
- package/src/components/skeleton/skeleton.tsx +1 -0
- package/src/components/skip-link/skip-link.stories.tsx +1 -0
- package/src/components/slider/slider.stories.tsx +13 -77
- package/src/components/slider-number/slider-number.stories.tsx +4 -1
- package/src/components/slider-number/slider-number.test.tsx +1 -1
- package/src/components/sonner/sonner.tsx +2 -0
- package/src/components/spec-playground/index.ts +10 -0
- package/src/components/spec-playground/locate-json-path.ts +144 -0
- package/src/components/spec-playground/spec-playground.stories.tsx +156 -0
- package/src/components/spec-playground/spec-playground.test.tsx +106 -0
- package/src/components/spec-playground/spec-playground.tsx +351 -0
- package/src/components/spinner/spinner.test.tsx +18 -0
- package/src/components/spinner/spinner.tsx +14 -4
- package/src/components/state-panel/state-panel.stories.tsx +4 -2
- package/src/components/state-panel/state-panel.test.tsx +3 -3
- package/src/components/state-panel/state-panel.tsx +16 -9
- package/src/components/status-badge/status-badge.stories.tsx +53 -0
- package/src/components/status-badge/status-badge.test.tsx +37 -0
- package/src/components/status-badge/status-badge.tsx +75 -13
- package/src/components/surface-tour/index.ts +11 -0
- package/src/components/surface-tour/surface-tour.stories.tsx +150 -0
- package/src/components/surface-tour/surface-tour.test.tsx +117 -0
- package/src/components/surface-tour/surface-tour.tsx +456 -0
- package/src/components/switch/switch.tsx +2 -0
- package/src/components/table/table.stories.tsx +3 -1
- package/src/components/table/table.test.tsx +9 -2
- package/src/components/table/table.tsx +22 -9
- package/src/components/tabs/index.ts +10 -1
- package/src/components/tabs/tabs.stories.tsx +95 -1
- package/src/components/tabs/tabs.test.tsx +93 -0
- package/src/components/tabs/tabs.tsx +215 -77
- package/src/components/tag-input/tag-input.tsx +4 -2
- package/src/components/team-switcher/team-switcher.tsx +3 -3
- package/src/components/textarea/textarea.tsx +2 -2
- package/src/components/theme-family-switch/index.ts +10 -0
- package/src/components/theme-family-switch/theme-family-switch.stories.tsx +97 -0
- package/src/components/theme-family-switch/theme-family-switch.test.tsx +85 -0
- package/src/components/theme-family-switch/theme-family-switch.tsx +166 -0
- package/src/components/theme-switcher/theme-switcher.stories.tsx +76 -0
- package/src/components/theme-switcher/theme-switcher.test.tsx +182 -0
- package/src/components/theme-switcher/theme-switcher.tsx +144 -13
- package/src/components/timeline/timeline.tsx +0 -3
- package/src/components/toggle/toggle.tsx +7 -2
- package/src/components/toggle-group/toggle-group.tsx +2 -0
- package/src/components/token-spotlight/index.ts +11 -0
- package/src/components/token-spotlight/token-spotlight.css +32 -0
- package/src/components/token-spotlight/token-spotlight.stories.tsx +161 -0
- package/src/components/token-spotlight/token-spotlight.test.tsx +323 -0
- package/src/components/token-spotlight/token-spotlight.tsx +379 -0
- package/src/components/token-spotlight/token-value-format.ts +205 -0
- package/src/components/tooltip/tooltip.tsx +2 -1
- package/src/components/top-nav/top-nav.test.tsx +59 -0
- package/src/components/top-nav/top-nav.tsx +37 -7
- package/src/components/transfer/transfer.tsx +35 -30
- package/src/components/tree/tree.stories.tsx +1 -1
- package/src/components/tree/tree.test.tsx +45 -4
- package/src/components/tree/tree.tsx +81 -26
- package/src/components/tree/use-tree-keyboard.ts +37 -14
- package/src/components/tree-select/tree-select.stories.tsx +9 -0
- package/src/components/tree-select/tree-select.test.tsx +5 -0
- package/src/components/tree-select/tree-select.tsx +11 -14
- package/src/components/typography/prose.test.tsx +3 -2
- package/src/components/typography/prose.tsx +3 -3
- package/src/components/typography/typography.stories.tsx +7 -2
- package/src/components/typography/typography.tsx +8 -0
- package/src/components/view-toolbar/view-toolbar.stories.tsx +2 -1
- package/src/components/view-toolbar/view-toolbar.tsx +2 -2
- package/src/components/virtual-select/virtual-select.stories.tsx +9 -0
- package/src/components/virtual-select/virtual-select.test.tsx +28 -2
- package/src/components/virtual-select/virtual-select.tsx +56 -18
- package/src/components/wizard/wizard.test.tsx +9 -0
- package/src/components/wizard/wizard.tsx +12 -4
- package/src/decoration.stories.tsx +213 -2
- package/src/index.ts +51 -0
- package/src/lib/cn.test.ts +20 -0
- package/src/lib/cn.ts +36 -2
- package/src/lib/color-scale.test.ts +386 -0
- package/src/lib/color-scale.ts +628 -0
- package/src/lib/compact-number.ts +118 -28
- package/src/lib/csv.ts +48 -0
- package/src/lib/diff-rows.ts +2 -0
- package/src/lib/merge-refs.ts +2 -0
- package/src/lib/use-controllable-state.ts +47 -0
- package/src/lib/use-mobile.test.tsx +47 -0
- package/src/lib/use-mobile.ts +26 -10
- package/src/lib/use-scroll-progress.ts +103 -0
- package/src/motion.stories.tsx +1 -0
- package/src/templates-object-detail-hub.stories.tsx +8 -8
- package/src/templates-screen-states.stories.tsx +1 -1
- package/src/templates-settings.stories.tsx +8 -3
- package/dist/chunk-JKPPTL63.js +0 -48
- package/dist/chunk-JKPPTL63.js.map +0 -1
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
InputGroup
|
|
4
|
+
} from "./chunk-UPEMEBWH.js";
|
|
5
|
+
import {
|
|
6
|
+
Badge
|
|
7
|
+
} from "./chunk-ECCNRCC4.js";
|
|
8
|
+
import {
|
|
9
|
+
cn
|
|
10
|
+
} from "./chunk-KBNWM27Q.js";
|
|
11
|
+
|
|
12
|
+
// src/components/tag-input/tag-input.tsx
|
|
13
|
+
import {
|
|
14
|
+
forwardRef,
|
|
15
|
+
useCallback,
|
|
16
|
+
useMemo,
|
|
17
|
+
useRef,
|
|
18
|
+
useState
|
|
19
|
+
} from "react";
|
|
20
|
+
import { X } from "lucide-react";
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
var TagInput = forwardRef(function TagInput2({
|
|
23
|
+
value: valueProp,
|
|
24
|
+
defaultValue,
|
|
25
|
+
onValueChange,
|
|
26
|
+
max,
|
|
27
|
+
validate,
|
|
28
|
+
delimiter = [","],
|
|
29
|
+
allowDuplicates = false,
|
|
30
|
+
placeholder,
|
|
31
|
+
disabled,
|
|
32
|
+
id,
|
|
33
|
+
name,
|
|
34
|
+
"aria-label": ariaLabel,
|
|
35
|
+
"aria-labelledby": ariaLabelledby,
|
|
36
|
+
className,
|
|
37
|
+
...props
|
|
38
|
+
}, ref) {
|
|
39
|
+
const isControlled = valueProp !== void 0;
|
|
40
|
+
const [internalTags, setInternalTags] = useState(defaultValue ?? []);
|
|
41
|
+
const [inputValue, setInputValue] = useState("");
|
|
42
|
+
const [error, setError] = useState(null);
|
|
43
|
+
const inputRef = useRef(null);
|
|
44
|
+
const tags = useMemo(
|
|
45
|
+
() => isControlled ? valueProp ?? [] : internalTags,
|
|
46
|
+
[isControlled, valueProp, internalTags]
|
|
47
|
+
);
|
|
48
|
+
const commit = useCallback(
|
|
49
|
+
(next) => {
|
|
50
|
+
if (!isControlled) setInternalTags(next);
|
|
51
|
+
onValueChange?.(next);
|
|
52
|
+
},
|
|
53
|
+
[isControlled, onValueChange]
|
|
54
|
+
);
|
|
55
|
+
const addTag = useCallback(
|
|
56
|
+
(raw) => {
|
|
57
|
+
const tag = raw.trim();
|
|
58
|
+
if (!tag) return;
|
|
59
|
+
if (max !== void 0 && tags.length >= max) {
|
|
60
|
+
setError(`Maximum of ${max} tags reached.`);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (!allowDuplicates && tags.includes(tag)) {
|
|
64
|
+
setError("Duplicate tag.");
|
|
65
|
+
return;
|
|
66
|
+
}
|
|
67
|
+
if (validate) {
|
|
68
|
+
const result = validate(tag);
|
|
69
|
+
if (result === false) return;
|
|
70
|
+
if (typeof result === "string") {
|
|
71
|
+
setError(result);
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
setError(null);
|
|
76
|
+
commit([...tags, tag]);
|
|
77
|
+
setInputValue("");
|
|
78
|
+
},
|
|
79
|
+
[tags, max, allowDuplicates, validate, commit]
|
|
80
|
+
);
|
|
81
|
+
const removeTag = useCallback(
|
|
82
|
+
(index) => {
|
|
83
|
+
const next = tags.filter((_, i) => i !== index);
|
|
84
|
+
setError(null);
|
|
85
|
+
commit(next);
|
|
86
|
+
},
|
|
87
|
+
[tags, commit]
|
|
88
|
+
);
|
|
89
|
+
const handleKeyDown = useCallback(
|
|
90
|
+
(e) => {
|
|
91
|
+
if (e.key === "Enter") {
|
|
92
|
+
e.preventDefault();
|
|
93
|
+
addTag(inputValue);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
if (e.key === "Backspace" && inputValue === "" && tags.length > 0) {
|
|
97
|
+
e.preventDefault();
|
|
98
|
+
removeTag(tags.length - 1);
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
for (const delim of delimiter) {
|
|
102
|
+
if (delim.length === 1 && e.key === delim) {
|
|
103
|
+
e.preventDefault();
|
|
104
|
+
addTag(inputValue);
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
[inputValue, tags, delimiter, addTag, removeTag]
|
|
110
|
+
);
|
|
111
|
+
const handleChange = useCallback(
|
|
112
|
+
(e) => {
|
|
113
|
+
const val = e.target.value;
|
|
114
|
+
const hasDelimiter = delimiter.some((d) => val.includes(d));
|
|
115
|
+
if (hasDelimiter) {
|
|
116
|
+
const parts = val.split(new RegExp(`[${delimiter.map((d) => escapeRegex(d)).join("")}]`));
|
|
117
|
+
const toAdd = parts.slice(0, -1);
|
|
118
|
+
const remaining = parts[parts.length - 1] ?? "";
|
|
119
|
+
for (const part of toAdd) {
|
|
120
|
+
addTag(part);
|
|
121
|
+
}
|
|
122
|
+
setInputValue(remaining);
|
|
123
|
+
} else {
|
|
124
|
+
setInputValue(val);
|
|
125
|
+
setError(null);
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
[delimiter, addTag]
|
|
129
|
+
);
|
|
130
|
+
const atMax = max !== void 0 && tags.length >= max;
|
|
131
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col gap-1", className), ...props, children: [
|
|
132
|
+
/* @__PURE__ */ jsxs(
|
|
133
|
+
InputGroup,
|
|
134
|
+
{
|
|
135
|
+
className: "h-auto min-h-9 flex-wrap gap-1 px-2 py-1 cursor-text",
|
|
136
|
+
onClick: () => inputRef.current?.focus(),
|
|
137
|
+
children: [
|
|
138
|
+
tags.map((tag, i) => /* @__PURE__ */ jsxs(Badge, { variant: "secondary", className: "gap-1 pe-1 shrink-0", children: [
|
|
139
|
+
/* @__PURE__ */ jsx("span", { className: "max-w-[12rem] truncate", children: tag }),
|
|
140
|
+
/* @__PURE__ */ jsx(
|
|
141
|
+
"button",
|
|
142
|
+
{
|
|
143
|
+
type: "button",
|
|
144
|
+
"aria-label": `Remove ${tag}`,
|
|
145
|
+
disabled,
|
|
146
|
+
onClick: (e) => {
|
|
147
|
+
e.stopPropagation();
|
|
148
|
+
removeTag(i);
|
|
149
|
+
},
|
|
150
|
+
className: cn(
|
|
151
|
+
"rounded-full p-0.5 transition-colors",
|
|
152
|
+
"hover:bg-secondary-foreground/20 focus-ring",
|
|
153
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
154
|
+
),
|
|
155
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-3", "aria-hidden": "true" })
|
|
156
|
+
}
|
|
157
|
+
)
|
|
158
|
+
] }, `${tag}-${i}`)),
|
|
159
|
+
/* @__PURE__ */ jsx(
|
|
160
|
+
"input",
|
|
161
|
+
{
|
|
162
|
+
ref: inputRef,
|
|
163
|
+
id,
|
|
164
|
+
name,
|
|
165
|
+
type: "text",
|
|
166
|
+
value: inputValue,
|
|
167
|
+
placeholder: atMax ? void 0 : placeholder,
|
|
168
|
+
disabled: disabled || atMax,
|
|
169
|
+
"aria-label": ariaLabel,
|
|
170
|
+
"aria-labelledby": ariaLabelledby,
|
|
171
|
+
"aria-invalid": error ? "true" : void 0,
|
|
172
|
+
"data-slot": "input-group-control",
|
|
173
|
+
className: cn(
|
|
174
|
+
"min-w-[6rem] flex-1 bg-transparent text-body outline-none",
|
|
175
|
+
"placeholder:text-muted-foreground",
|
|
176
|
+
"disabled:cursor-not-allowed disabled:opacity-50"
|
|
177
|
+
),
|
|
178
|
+
onChange: handleChange,
|
|
179
|
+
onKeyDown: handleKeyDown,
|
|
180
|
+
autoComplete: "off",
|
|
181
|
+
spellCheck: false
|
|
182
|
+
}
|
|
183
|
+
)
|
|
184
|
+
]
|
|
185
|
+
}
|
|
186
|
+
),
|
|
187
|
+
error && // #124: running text (the validation message) — ink rung.
|
|
188
|
+
/* @__PURE__ */ jsx("p", { role: "alert", className: "text-meta text-destructive-text", children: error })
|
|
189
|
+
] });
|
|
190
|
+
});
|
|
191
|
+
function escapeRegex(s) {
|
|
192
|
+
return s.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
export {
|
|
196
|
+
TagInput
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=chunk-W6HCXQBH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tag-input/tag-input.tsx"],"sourcesContent":["\"use client\";\n\n// a2ui.exposed: yes\nimport {\n forwardRef,\n useCallback,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type KeyboardEvent,\n} from \"react\";\nimport { X } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { Badge } from \"../badge\";\nimport { InputGroup } from \"../input-group\";\n\nexport interface TagInputProps extends Omit<\n HTMLAttributes<HTMLDivElement>,\n \"defaultValue\" | \"onChange\"\n> {\n /** Controlled tag list. */\n value?: string[];\n /** Uncontrolled initial tag list. */\n defaultValue?: string[];\n /** Called when the tag list changes. */\n onValueChange?: (value: string[]) => void;\n /** Maximum number of tags allowed. */\n max?: number;\n /**\n * Validate a candidate tag before it is added.\n * Return `true` to accept, `false` to silently reject, or a string\n * to reject and show as an inline error message.\n */\n validate?: (tag: string) => boolean | string;\n /**\n * Characters (or strings) that trigger tag creation in addition to Enter.\n * Defaults to `[\",\"]`.\n */\n delimiter?: string[];\n /** Allow duplicate tags (default false). */\n allowDuplicates?: boolean;\n /** Placeholder text for the entry field. */\n placeholder?: string;\n /** Whether the input is disabled. */\n disabled?: boolean;\n /** id for the underlying text input (useful for external <label>). */\n id?: string;\n /** Name forwarded to the underlying input. */\n name?: string;\n /** aria-label for the underlying text input. */\n \"aria-label\"?: string;\n /** aria-labelledby for the underlying text input. */\n \"aria-labelledby\"?: string;\n}\n\n/**\n * TagInput — chip-style multi-value text entry.\n *\n * Controlled via `value`/`onValueChange`; uncontrolled via `defaultValue`.\n * Enter + configurable delimiters (default `[\",\"]`) add a tag.\n * Backspace on an empty field removes the last tag.\n * Inline validation errors render with `role=\"alert\"`.\n */\nexport const TagInput = forwardRef<HTMLDivElement, TagInputProps>(function TagInput(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n max,\n validate,\n delimiter = [\",\"],\n allowDuplicates = false,\n placeholder,\n disabled,\n id,\n name,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n className,\n ...props\n },\n ref,\n) {\n const isControlled = valueProp !== undefined;\n const [internalTags, setInternalTags] = useState<string[]>(defaultValue ?? []);\n const [inputValue, setInputValue] = useState(\"\");\n const [error, setError] = useState<string | null>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n const tags = useMemo(\n () => (isControlled ? (valueProp ?? []) : internalTags),\n [isControlled, valueProp, internalTags],\n );\n\n const commit = useCallback(\n (next: string[]) => {\n if (!isControlled) setInternalTags(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n const addTag = useCallback(\n (raw: string) => {\n const tag = raw.trim();\n if (!tag) return;\n\n if (max !== undefined && tags.length >= max) {\n setError(`Maximum of ${max} tags reached.`);\n return;\n }\n\n if (!allowDuplicates && tags.includes(tag)) {\n setError(\"Duplicate tag.\");\n return;\n }\n\n if (validate) {\n const result = validate(tag);\n if (result === false) return;\n if (typeof result === \"string\") {\n setError(result);\n return;\n }\n }\n\n setError(null);\n commit([...tags, tag]);\n setInputValue(\"\");\n },\n [tags, max, allowDuplicates, validate, commit],\n );\n\n const removeTag = useCallback(\n (index: number) => {\n const next = tags.filter((_, i) => i !== index);\n setError(null);\n commit(next);\n },\n [tags, commit],\n );\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent<HTMLInputElement>) => {\n if (e.key === \"Enter\") {\n // Always prevent form submission when used inside a <form>\n e.preventDefault();\n addTag(inputValue);\n return;\n }\n\n if (e.key === \"Backspace\" && inputValue === \"\" && tags.length > 0) {\n e.preventDefault();\n removeTag(tags.length - 1);\n return;\n }\n\n // Check delimiter characters (e.g. comma)\n for (const delim of delimiter) {\n if (delim.length === 1 && e.key === delim) {\n e.preventDefault();\n addTag(inputValue);\n return;\n }\n }\n },\n [inputValue, tags, delimiter, addTag, removeTag],\n );\n\n const handleChange = useCallback(\n (e: React.ChangeEvent<HTMLInputElement>) => {\n const val = e.target.value;\n // Handle paste or typed multi-char delimiters\n const hasDelimiter = delimiter.some((d) => val.includes(d));\n if (hasDelimiter) {\n const parts = val.split(new RegExp(`[${delimiter.map((d) => escapeRegex(d)).join(\"\")}]`));\n const toAdd = parts.slice(0, -1);\n const remaining = parts[parts.length - 1] ?? \"\";\n for (const part of toAdd) {\n addTag(part);\n }\n setInputValue(remaining);\n } else {\n setInputValue(val);\n setError(null);\n }\n },\n [delimiter, addTag],\n );\n\n const atMax = max !== undefined && tags.length >= max;\n\n return (\n <div ref={ref} className={cn(\"flex flex-col gap-1\", className)} {...props}>\n <InputGroup\n className=\"h-auto min-h-9 flex-wrap gap-1 px-2 py-1 cursor-text\"\n onClick={() => inputRef.current?.focus()}\n >\n {tags.map((tag, i) => (\n <Badge key={`${tag}-${i}`} variant=\"secondary\" className=\"gap-1 pe-1 shrink-0\">\n <span className=\"max-w-[12rem] truncate\">{tag}</span>\n <button\n type=\"button\"\n aria-label={`Remove ${tag}`}\n disabled={disabled}\n onClick={(e) => {\n e.stopPropagation();\n removeTag(i);\n }}\n className={cn(\n \"rounded-full p-0.5 transition-colors\",\n \"hover:bg-secondary-foreground/20 focus-ring\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n )}\n >\n <X className=\"size-3\" aria-hidden=\"true\" />\n </button>\n </Badge>\n ))}\n <input\n ref={inputRef}\n id={id}\n name={name}\n type=\"text\"\n value={inputValue}\n placeholder={atMax ? undefined : placeholder}\n disabled={disabled || atMax}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n aria-invalid={error ? \"true\" : undefined}\n data-slot=\"input-group-control\"\n className={cn(\n \"min-w-[6rem] flex-1 bg-transparent text-body outline-none\",\n \"placeholder:text-muted-foreground\",\n \"disabled:cursor-not-allowed disabled:opacity-50\",\n )}\n onChange={handleChange}\n onKeyDown={handleKeyDown}\n autoComplete=\"off\"\n spellCheck={false}\n />\n </InputGroup>\n {error && (\n // #124: running text (the validation message) — ink rung.\n <p role=\"alert\" className=\"text-meta text-destructive-text\">\n {error}\n </p>\n )}\n </div>\n );\n});\n\nfunction escapeRegex(s: string): string {\n return s.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\");\n}\n"],"mappings":";;;;;;;;;;;;AAGA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAGK;AACP,SAAS,SAAS;AA4LR,SACE,KADF;AAxIH,IAAM,WAAW,WAA0C,SAASA,UACzE;AAAA,EACE,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY,CAAC,GAAG;AAAA,EAChB,kBAAkB;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,mBAAmB;AAAA,EACnB;AAAA,EACA,GAAG;AACL,GACA,KACA;AACA,QAAM,eAAe,cAAc;AACnC,QAAM,CAAC,cAAc,eAAe,IAAI,SAAmB,gBAAgB,CAAC,CAAC;AAC7E,QAAM,CAAC,YAAY,aAAa,IAAI,SAAS,EAAE;AAC/C,QAAM,CAAC,OAAO,QAAQ,IAAI,SAAwB,IAAI;AACtD,QAAM,WAAW,OAAyB,IAAI;AAE9C,QAAM,OAAO;AAAA,IACX,MAAO,eAAgB,aAAa,CAAC,IAAK;AAAA,IAC1C,CAAC,cAAc,WAAW,YAAY;AAAA,EACxC;AAEA,QAAM,SAAS;AAAA,IACb,CAAC,SAAmB;AAClB,UAAI,CAAC,aAAc,iBAAgB,IAAI;AACvC,sBAAgB,IAAI;AAAA,IACtB;AAAA,IACA,CAAC,cAAc,aAAa;AAAA,EAC9B;AAEA,QAAM,SAAS;AAAA,IACb,CAAC,QAAgB;AACf,YAAM,MAAM,IAAI,KAAK;AACrB,UAAI,CAAC,IAAK;AAEV,UAAI,QAAQ,UAAa,KAAK,UAAU,KAAK;AAC3C,iBAAS,cAAc,GAAG,gBAAgB;AAC1C;AAAA,MACF;AAEA,UAAI,CAAC,mBAAmB,KAAK,SAAS,GAAG,GAAG;AAC1C,iBAAS,gBAAgB;AACzB;AAAA,MACF;AAEA,UAAI,UAAU;AACZ,cAAM,SAAS,SAAS,GAAG;AAC3B,YAAI,WAAW,MAAO;AACtB,YAAI,OAAO,WAAW,UAAU;AAC9B,mBAAS,MAAM;AACf;AAAA,QACF;AAAA,MACF;AAEA,eAAS,IAAI;AACb,aAAO,CAAC,GAAG,MAAM,GAAG,CAAC;AACrB,oBAAc,EAAE;AAAA,IAClB;AAAA,IACA,CAAC,MAAM,KAAK,iBAAiB,UAAU,MAAM;AAAA,EAC/C;AAEA,QAAM,YAAY;AAAA,IAChB,CAAC,UAAkB;AACjB,YAAM,OAAO,KAAK,OAAO,CAAC,GAAG,MAAM,MAAM,KAAK;AAC9C,eAAS,IAAI;AACb,aAAO,IAAI;AAAA,IACb;AAAA,IACA,CAAC,MAAM,MAAM;AAAA,EACf;AAEA,QAAM,gBAAgB;AAAA,IACpB,CAAC,MAAuC;AACtC,UAAI,EAAE,QAAQ,SAAS;AAErB,UAAE,eAAe;AACjB,eAAO,UAAU;AACjB;AAAA,MACF;AAEA,UAAI,EAAE,QAAQ,eAAe,eAAe,MAAM,KAAK,SAAS,GAAG;AACjE,UAAE,eAAe;AACjB,kBAAU,KAAK,SAAS,CAAC;AACzB;AAAA,MACF;AAGA,iBAAW,SAAS,WAAW;AAC7B,YAAI,MAAM,WAAW,KAAK,EAAE,QAAQ,OAAO;AACzC,YAAE,eAAe;AACjB,iBAAO,UAAU;AACjB;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,IACA,CAAC,YAAY,MAAM,WAAW,QAAQ,SAAS;AAAA,EACjD;AAEA,QAAM,eAAe;AAAA,IACnB,CAAC,MAA2C;AAC1C,YAAM,MAAM,EAAE,OAAO;AAErB,YAAM,eAAe,UAAU,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC;AAC1D,UAAI,cAAc;AAChB,cAAM,QAAQ,IAAI,MAAM,IAAI,OAAO,IAAI,UAAU,IAAI,CAAC,MAAM,YAAY,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,CAAC;AACxF,cAAM,QAAQ,MAAM,MAAM,GAAG,EAAE;AAC/B,cAAM,YAAY,MAAM,MAAM,SAAS,CAAC,KAAK;AAC7C,mBAAW,QAAQ,OAAO;AACxB,iBAAO,IAAI;AAAA,QACb;AACA,sBAAc,SAAS;AAAA,MACzB,OAAO;AACL,sBAAc,GAAG;AACjB,iBAAS,IAAI;AAAA,MACf;AAAA,IACF;AAAA,IACA,CAAC,WAAW,MAAM;AAAA,EACpB;AAEA,QAAM,QAAQ,QAAQ,UAAa,KAAK,UAAU;AAElD,SACE,qBAAC,SAAI,KAAU,WAAW,GAAG,uBAAuB,SAAS,GAAI,GAAG,OAClE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,WAAU;AAAA,QACV,SAAS,MAAM,SAAS,SAAS,MAAM;AAAA,QAEtC;AAAA,eAAK,IAAI,CAAC,KAAK,MACd,qBAAC,SAA0B,SAAQ,aAAY,WAAU,uBACvD;AAAA,gCAAC,UAAK,WAAU,0BAA0B,eAAI;AAAA,YAC9C;AAAA,cAAC;AAAA;AAAA,gBACC,MAAK;AAAA,gBACL,cAAY,UAAU,GAAG;AAAA,gBACzB;AAAA,gBACA,SAAS,CAAC,MAAM;AACd,oBAAE,gBAAgB;AAClB,4BAAU,CAAC;AAAA,gBACb;AAAA,gBACA,WAAW;AAAA,kBACT;AAAA,kBACA;AAAA,kBACA;AAAA,gBACF;AAAA,gBAEA,8BAAC,KAAE,WAAU,UAAS,eAAY,QAAO;AAAA;AAAA,YAC3C;AAAA,eAjBU,GAAG,GAAG,IAAI,CAAC,EAkBvB,CACD;AAAA,UACD;AAAA,YAAC;AAAA;AAAA,cACC,KAAK;AAAA,cACL;AAAA,cACA;AAAA,cACA,MAAK;AAAA,cACL,OAAO;AAAA,cACP,aAAa,QAAQ,SAAY;AAAA,cACjC,UAAU,YAAY;AAAA,cACtB,cAAY;AAAA,cACZ,mBAAiB;AAAA,cACjB,gBAAc,QAAQ,SAAS;AAAA,cAC/B,aAAU;AAAA,cACV,WAAW;AAAA,gBACT;AAAA,gBACA;AAAA,gBACA;AAAA,cACF;AAAA,cACA,UAAU;AAAA,cACV,WAAW;AAAA,cACX,cAAa;AAAA,cACb,YAAY;AAAA;AAAA,UACd;AAAA;AAAA;AAAA,IACF;AAAA,IACC;AAAA,IAEC,oBAAC,OAAE,MAAK,SAAQ,WAAU,mCACvB,iBACH;AAAA,KAEJ;AAEJ,CAAC;AAED,SAAS,YAAY,GAAmB;AACtC,SAAO,EAAE,QAAQ,uBAAuB,MAAM;AAChD;","names":["TagInput"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
formatLastOpened
|
|
4
|
+
} from "./chunk-BZQF5QCN.js";
|
|
5
|
+
import {
|
|
6
|
+
ModelPicker
|
|
7
|
+
} from "./chunk-FYCCNQXQ.js";
|
|
8
|
+
import {
|
|
9
|
+
Input
|
|
10
|
+
} from "./chunk-XYACSO57.js";
|
|
11
|
+
import {
|
|
12
|
+
useLocale
|
|
13
|
+
} from "./chunk-EJQYE4MY.js";
|
|
14
|
+
import {
|
|
15
|
+
Button
|
|
16
|
+
} from "./chunk-VA2OONPE.js";
|
|
17
|
+
import {
|
|
18
|
+
cn
|
|
19
|
+
} from "./chunk-KBNWM27Q.js";
|
|
20
|
+
|
|
21
|
+
// src/components/workspace-picker/workspace-picker.tsx
|
|
22
|
+
import { forwardRef, useState } from "react";
|
|
23
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
24
|
+
var WorkspacePicker = forwardRef(
|
|
25
|
+
function WorkspacePicker2({
|
|
26
|
+
workspaces,
|
|
27
|
+
currentId,
|
|
28
|
+
onSelect,
|
|
29
|
+
onSubmitPath,
|
|
30
|
+
status,
|
|
31
|
+
disabled,
|
|
32
|
+
className,
|
|
33
|
+
open,
|
|
34
|
+
onOpenChange,
|
|
35
|
+
"aria-label": ariaLabelProp,
|
|
36
|
+
...props
|
|
37
|
+
}, ref) {
|
|
38
|
+
const { t, locale } = useLocale();
|
|
39
|
+
const [path, setPath] = useState("");
|
|
40
|
+
const current = workspaces.find((workspace) => workspace.id === currentId);
|
|
41
|
+
const triggerLabel = current?.name ?? t("ui.workspacePicker.placeholder");
|
|
42
|
+
const ariaLabel = ariaLabelProp ?? t("ui.workspacePicker.label");
|
|
43
|
+
const group = {
|
|
44
|
+
key: "workspaces",
|
|
45
|
+
label: t("ui.workspacePicker.recent"),
|
|
46
|
+
items: workspaces.map((workspace) => {
|
|
47
|
+
const isCurrent = workspace.id === currentId;
|
|
48
|
+
const meta = [];
|
|
49
|
+
if (workspace.lastOpenedAt) {
|
|
50
|
+
meta.push(formatLastOpened(workspace.lastOpenedAt, locale));
|
|
51
|
+
}
|
|
52
|
+
if (isCurrent) meta.push(t("ui.workspacePicker.current"));
|
|
53
|
+
return {
|
|
54
|
+
id: workspace.id,
|
|
55
|
+
label: workspace.name,
|
|
56
|
+
description: workspace.path,
|
|
57
|
+
meta
|
|
58
|
+
};
|
|
59
|
+
})
|
|
60
|
+
};
|
|
61
|
+
const handleSelect = (item) => {
|
|
62
|
+
const workspace = workspaces.find((w) => w.id === item.id);
|
|
63
|
+
if (workspace) onSelect?.(workspace);
|
|
64
|
+
};
|
|
65
|
+
const handleSubmit = (event) => {
|
|
66
|
+
event.preventDefault();
|
|
67
|
+
if (path.trim() === "") return;
|
|
68
|
+
onSubmitPath?.(path);
|
|
69
|
+
setPath("");
|
|
70
|
+
};
|
|
71
|
+
return /* @__PURE__ */ jsx(
|
|
72
|
+
ModelPicker,
|
|
73
|
+
{
|
|
74
|
+
ref,
|
|
75
|
+
"data-slot": "workspace-picker",
|
|
76
|
+
className: cn(className),
|
|
77
|
+
groups: [group],
|
|
78
|
+
value: currentId,
|
|
79
|
+
onSelect: handleSelect,
|
|
80
|
+
status,
|
|
81
|
+
triggerLabel,
|
|
82
|
+
"aria-label": ariaLabel,
|
|
83
|
+
searchPlaceholder: t("ui.workspacePicker.searchPlaceholder"),
|
|
84
|
+
disabled,
|
|
85
|
+
open,
|
|
86
|
+
onOpenChange,
|
|
87
|
+
footer: (
|
|
88
|
+
// Outside `CommandList` on purpose (ModelPicker's own contract): a
|
|
89
|
+
// persistent action row, never filtered by the search query and
|
|
90
|
+
// never part of cmdk's roving selection.
|
|
91
|
+
//
|
|
92
|
+
// `onKeyDown` stops propagation because cmdk binds ITS OWN keydown
|
|
93
|
+
// handler on the `Command` root and reacts to Enter/Home/End/
|
|
94
|
+
// ArrowUp/ArrowDown regardless of which descendant is focused —
|
|
95
|
+
// without this, pressing Enter here would move the list's
|
|
96
|
+
// highlight instead of submitting the path.
|
|
97
|
+
/* @__PURE__ */ jsxs(
|
|
98
|
+
"form",
|
|
99
|
+
{
|
|
100
|
+
"data-slot": "workspace-picker-path-form",
|
|
101
|
+
onSubmit: handleSubmit,
|
|
102
|
+
onKeyDown: (event) => event.stopPropagation(),
|
|
103
|
+
className: "flex items-center gap-2 border-t p-2",
|
|
104
|
+
children: [
|
|
105
|
+
/* @__PURE__ */ jsx(
|
|
106
|
+
Input,
|
|
107
|
+
{
|
|
108
|
+
"data-slot": "workspace-picker-path-input",
|
|
109
|
+
value: path,
|
|
110
|
+
onChange: (event) => setPath(event.target.value),
|
|
111
|
+
placeholder: t("ui.workspacePicker.pathPlaceholder"),
|
|
112
|
+
"aria-label": t("ui.workspacePicker.pathLabel"),
|
|
113
|
+
className: "h-8 min-w-0 flex-1"
|
|
114
|
+
}
|
|
115
|
+
),
|
|
116
|
+
/* @__PURE__ */ jsx(
|
|
117
|
+
Button,
|
|
118
|
+
{
|
|
119
|
+
type: "submit",
|
|
120
|
+
size: "sm",
|
|
121
|
+
variant: "outline",
|
|
122
|
+
"aria-disabled": path.trim() === "",
|
|
123
|
+
"data-slot": "workspace-picker-path-submit",
|
|
124
|
+
children: t("ui.workspacePicker.openPath")
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
]
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
),
|
|
131
|
+
...props
|
|
132
|
+
}
|
|
133
|
+
);
|
|
134
|
+
}
|
|
135
|
+
);
|
|
136
|
+
|
|
137
|
+
export {
|
|
138
|
+
WorkspacePicker
|
|
139
|
+
};
|
|
140
|
+
//# sourceMappingURL=chunk-WCCCW4KD.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/workspace-picker/workspace-picker.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useState, type FormEvent, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button\";\nimport { Input } from \"../input\";\nimport { useLocale } from \"../locale-provider\";\nimport { ModelPicker, type ModelPickerGroup, type ModelPickerStatus } from \"../model-picker\";\nimport { formatLastOpened, type Workspace } from \"./workspace-picker-state\";\n\nexport type { Workspace };\n\nexport interface WorkspacePickerProps extends Omit<HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n /** Recent workspaces, most-relevant first — the caller owns ordering. */\n workspaces: Workspace[];\n /** The currently open workspace's id. */\n currentId?: string;\n /** Fires with the chosen workspace; the popover closes first. */\n onSelect?: (workspace: Workspace) => void;\n /**\n * Free-text path entry, rendered in `ModelPicker`'s `footer` slot below the\n * list. Fires with the raw string the user typed once it validates as\n * non-empty — this component performs no filesystem access of any kind\n * (presentation layer, D5); resolving, normalizing or checking the path is\n * the caller's job.\n */\n onSubmitPath?: (path: string) => void;\n /**\n * Drives the same four-body state grid as `ModelPicker` — see\n * `ModelPickerStatus`. Default `\"ready\"`, inherited from `ModelPicker`.\n */\n status?: ModelPickerStatus;\n disabled?: boolean;\n /** Accessible name for the trigger and the popover — what the control is FOR. */\n \"aria-label\"?: string;\n /** Controlled popover open state — see `ModelPicker`'s controlled contract. */\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n}\n\n/**\n * Recent-workspace switcher — issue #111, decided in\n * `docs/decisions/2026-09-01-brainless-adoption-architecture.md` § 7.\n *\n * A `ModelPicker` PRESET, not a new picker: `ModelPickerItem`'s\n * `id`/`label`/`description`/`meta` shape is already a superset of what a\n * workspace needs, so this component only supplies workspace-shaped\n * defaults — it maps `path` into the truncating `description` slot, formats\n * `lastOpenedAt` with `Intl.RelativeTimeFormat`, marks the current workspace\n * in the row's TEXT (never colour alone — `ModelPicker`'s check glyph is\n * `aria-hidden` and cannot carry that on its own), and renders the free-text\n * path entry into `ModelPicker`'s `footer` slot so it sits below the list,\n * un-filtered by the search query.\n *\n * Unlike `TeamSwitcher`, this has no `Sidebar` dependency — it works anywhere\n * a picker is needed (a session launch card, a command palette), not only\n * inside a sidebar.\n */\nexport const WorkspacePicker = forwardRef<HTMLDivElement, WorkspacePickerProps>(\n function WorkspacePicker(\n {\n workspaces,\n currentId,\n onSelect,\n onSubmitPath,\n status,\n disabled,\n className,\n open,\n onOpenChange,\n \"aria-label\": ariaLabelProp,\n ...props\n },\n ref,\n ) {\n const { t, locale } = useLocale();\n const [path, setPath] = useState(\"\");\n\n const current = workspaces.find((workspace) => workspace.id === currentId);\n const triggerLabel = current?.name ?? t(\"ui.workspacePicker.placeholder\");\n const ariaLabel = ariaLabelProp ?? t(\"ui.workspacePicker.label\");\n\n const group: ModelPickerGroup = {\n key: \"workspaces\",\n label: t(\"ui.workspacePicker.recent\"),\n items: workspaces.map((workspace) => {\n const isCurrent = workspace.id === currentId;\n const meta: string[] = [];\n if (workspace.lastOpenedAt) {\n meta.push(formatLastOpened(workspace.lastOpenedAt, locale));\n }\n // Marked in TEXT so the marker reaches the row's accessible name and\n // survives greyscale (accessibility.md's colour-is-never-the-only-\n // channel test) — ModelPicker's own check glyph is `aria-hidden` and\n // cannot carry this alone.\n if (isCurrent) meta.push(t(\"ui.workspacePicker.current\"));\n return {\n id: workspace.id,\n label: workspace.name,\n description: workspace.path,\n meta,\n };\n }),\n };\n\n const handleSelect = (item: { id: string }) => {\n const workspace = workspaces.find((w) => w.id === item.id);\n if (workspace) onSelect?.(workspace);\n };\n\n const handleSubmit = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n if (path.trim() === \"\") return;\n onSubmitPath?.(path);\n setPath(\"\");\n };\n\n return (\n <ModelPicker\n ref={ref}\n data-slot=\"workspace-picker\"\n className={cn(className)}\n groups={[group]}\n value={currentId}\n onSelect={handleSelect}\n status={status}\n triggerLabel={triggerLabel}\n aria-label={ariaLabel}\n searchPlaceholder={t(\"ui.workspacePicker.searchPlaceholder\")}\n disabled={disabled}\n open={open}\n onOpenChange={onOpenChange}\n footer={\n // Outside `CommandList` on purpose (ModelPicker's own contract): a\n // persistent action row, never filtered by the search query and\n // never part of cmdk's roving selection.\n //\n // `onKeyDown` stops propagation because cmdk binds ITS OWN keydown\n // handler on the `Command` root and reacts to Enter/Home/End/\n // ArrowUp/ArrowDown regardless of which descendant is focused —\n // without this, pressing Enter here would move the list's\n // highlight instead of submitting the path.\n <form\n data-slot=\"workspace-picker-path-form\"\n onSubmit={handleSubmit}\n onKeyDown={(event) => event.stopPropagation()}\n className=\"flex items-center gap-2 border-t p-2\"\n >\n <Input\n data-slot=\"workspace-picker-path-input\"\n value={path}\n onChange={(event) => setPath(event.target.value)}\n placeholder={t(\"ui.workspacePicker.pathPlaceholder\")}\n aria-label={t(\"ui.workspacePicker.pathLabel\")}\n className=\"h-8 min-w-0 flex-1\"\n />\n <Button\n type=\"submit\"\n size=\"sm\"\n variant=\"outline\"\n aria-disabled={path.trim() === \"\"}\n data-slot=\"workspace-picker-path-submit\"\n >\n {t(\"ui.workspacePicker.openPath\")}\n </Button>\n </form>\n }\n {...props}\n />\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAEA,SAAS,YAAY,gBAAqD;AA4IhE,SAME,KANF;AApFH,IAAM,kBAAkB;AAAA,EAC7B,SAASA,iBACP;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,cAAc;AAAA,IACd,GAAG;AAAA,EACL,GACA,KACA;AACA,UAAM,EAAE,GAAG,OAAO,IAAI,UAAU;AAChC,UAAM,CAAC,MAAM,OAAO,IAAI,SAAS,EAAE;AAEnC,UAAM,UAAU,WAAW,KAAK,CAAC,cAAc,UAAU,OAAO,SAAS;AACzE,UAAM,eAAe,SAAS,QAAQ,EAAE,gCAAgC;AACxE,UAAM,YAAY,iBAAiB,EAAE,0BAA0B;AAE/D,UAAM,QAA0B;AAAA,MAC9B,KAAK;AAAA,MACL,OAAO,EAAE,2BAA2B;AAAA,MACpC,OAAO,WAAW,IAAI,CAAC,cAAc;AACnC,cAAM,YAAY,UAAU,OAAO;AACnC,cAAM,OAAiB,CAAC;AACxB,YAAI,UAAU,cAAc;AAC1B,eAAK,KAAK,iBAAiB,UAAU,cAAc,MAAM,CAAC;AAAA,QAC5D;AAKA,YAAI,UAAW,MAAK,KAAK,EAAE,4BAA4B,CAAC;AACxD,eAAO;AAAA,UACL,IAAI,UAAU;AAAA,UACd,OAAO,UAAU;AAAA,UACjB,aAAa,UAAU;AAAA,UACvB;AAAA,QACF;AAAA,MACF,CAAC;AAAA,IACH;AAEA,UAAM,eAAe,CAAC,SAAyB;AAC7C,YAAM,YAAY,WAAW,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,EAAE;AACzD,UAAI,UAAW,YAAW,SAAS;AAAA,IACrC;AAEA,UAAM,eAAe,CAAC,UAAsC;AAC1D,YAAM,eAAe;AACrB,UAAI,KAAK,KAAK,MAAM,GAAI;AACxB,qBAAe,IAAI;AACnB,cAAQ,EAAE;AAAA,IACZ;AAEA,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA,aAAU;AAAA,QACV,WAAW,GAAG,SAAS;AAAA,QACvB,QAAQ,CAAC,KAAK;AAAA,QACd,OAAO;AAAA,QACP,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,cAAY;AAAA,QACZ,mBAAmB,EAAE,sCAAsC;AAAA,QAC3D;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,UAUE;AAAA,YAAC;AAAA;AAAA,cACC,aAAU;AAAA,cACV,UAAU;AAAA,cACV,WAAW,CAAC,UAAU,MAAM,gBAAgB;AAAA,cAC5C,WAAU;AAAA,cAEV;AAAA;AAAA,kBAAC;AAAA;AAAA,oBACC,aAAU;AAAA,oBACV,OAAO;AAAA,oBACP,UAAU,CAAC,UAAU,QAAQ,MAAM,OAAO,KAAK;AAAA,oBAC/C,aAAa,EAAE,oCAAoC;AAAA,oBACnD,cAAY,EAAE,8BAA8B;AAAA,oBAC5C,WAAU;AAAA;AAAA,gBACZ;AAAA,gBACA;AAAA,kBAAC;AAAA;AAAA,oBACC,MAAK;AAAA,oBACL,MAAK;AAAA,oBACL,SAAQ;AAAA,oBACR,iBAAe,KAAK,KAAK,MAAM;AAAA,oBAC/B,aAAU;AAAA,oBAET,YAAE,6BAA6B;AAAA;AAAA,gBAClC;AAAA;AAAA;AAAA,UACF;AAAA;AAAA,QAED,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;","names":["WorkspacePicker"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Command,
|
|
4
|
+
CommandEmpty,
|
|
5
|
+
CommandGroup,
|
|
6
|
+
CommandInput,
|
|
7
|
+
CommandItem,
|
|
8
|
+
CommandList
|
|
9
|
+
} from "./chunk-YXHHUJOZ.js";
|
|
10
|
+
import {
|
|
11
|
+
Popover,
|
|
12
|
+
PopoverContent,
|
|
13
|
+
PopoverTrigger
|
|
14
|
+
} from "./chunk-D3C3VVCX.js";
|
|
15
|
+
import {
|
|
16
|
+
useControllableState
|
|
17
|
+
} from "./chunk-5LCN5Q2L.js";
|
|
18
|
+
import {
|
|
19
|
+
useLocale
|
|
20
|
+
} from "./chunk-EJQYE4MY.js";
|
|
21
|
+
import {
|
|
22
|
+
Button
|
|
23
|
+
} from "./chunk-VA2OONPE.js";
|
|
24
|
+
import {
|
|
25
|
+
cn
|
|
26
|
+
} from "./chunk-KBNWM27Q.js";
|
|
27
|
+
|
|
28
|
+
// src/components/combobox/combobox.tsx
|
|
29
|
+
import { forwardRef, useState } from "react";
|
|
30
|
+
import { defaultFilter } from "cmdk";
|
|
31
|
+
import { Check, ChevronsUpDown, Plus } from "lucide-react";
|
|
32
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
33
|
+
var CUSTOM_VALUE_ITEM = "__brand-ui-combobox-custom-value__";
|
|
34
|
+
var customValueFilter = (value, search, keywords) => value === CUSTOM_VALUE_ITEM ? Number.MIN_VALUE : defaultFilter(value, search, keywords);
|
|
35
|
+
var Combobox = forwardRef(function Combobox2({
|
|
36
|
+
options,
|
|
37
|
+
value,
|
|
38
|
+
onValueChange,
|
|
39
|
+
placeholder,
|
|
40
|
+
searchPlaceholder,
|
|
41
|
+
emptyText,
|
|
42
|
+
className,
|
|
43
|
+
disabled = false,
|
|
44
|
+
allowCustomValue = false,
|
|
45
|
+
id,
|
|
46
|
+
"aria-label": ariaLabel,
|
|
47
|
+
"aria-labelledby": ariaLabelledby,
|
|
48
|
+
triggerProps
|
|
49
|
+
}, ref) {
|
|
50
|
+
const { t } = useLocale();
|
|
51
|
+
const resolvedPlaceholder = placeholder ?? t("ui.combobox.placeholder");
|
|
52
|
+
const resolvedSearchPlaceholder = searchPlaceholder ?? t("ui.combobox.searchPlaceholder");
|
|
53
|
+
const [open, setOpen] = useState(false);
|
|
54
|
+
const [selected, setValue] = useControllableState(value, "", onValueChange);
|
|
55
|
+
const [search, setSearch] = useState("");
|
|
56
|
+
const current = options.find((o) => o.value === selected);
|
|
57
|
+
const trimmedSearch = search.trim();
|
|
58
|
+
const hasExactMatch = options.some(
|
|
59
|
+
(o) => o.label.trim().toLowerCase() === trimmedSearch.toLowerCase()
|
|
60
|
+
);
|
|
61
|
+
const showCustomValueItem = allowCustomValue && trimmedSearch.length > 0 && !hasExactMatch;
|
|
62
|
+
const resolvedEmptyText = emptyText ?? (allowCustomValue ? t("ui.combobox.emptyAllowCustom") : t("noResults"));
|
|
63
|
+
return /* @__PURE__ */ jsxs(
|
|
64
|
+
Popover,
|
|
65
|
+
{
|
|
66
|
+
open: disabled ? false : open,
|
|
67
|
+
onOpenChange: (o) => {
|
|
68
|
+
if (disabled) return;
|
|
69
|
+
setOpen(o);
|
|
70
|
+
if (!o) setSearch("");
|
|
71
|
+
},
|
|
72
|
+
children: [
|
|
73
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
74
|
+
Button,
|
|
75
|
+
{
|
|
76
|
+
ref,
|
|
77
|
+
variant: "outline",
|
|
78
|
+
id,
|
|
79
|
+
"aria-label": ariaLabel,
|
|
80
|
+
"aria-labelledby": ariaLabelledby,
|
|
81
|
+
...triggerProps,
|
|
82
|
+
role: "combobox",
|
|
83
|
+
"aria-expanded": open,
|
|
84
|
+
disabled,
|
|
85
|
+
"data-slot": "combobox",
|
|
86
|
+
className: cn("w-full justify-between font-normal", triggerProps?.className, className),
|
|
87
|
+
children: [
|
|
88
|
+
current ? current.label : selected || resolvedPlaceholder,
|
|
89
|
+
/* @__PURE__ */ jsx(ChevronsUpDown, { className: "ms-2 size-4 shrink-0 opacity-50" })
|
|
90
|
+
]
|
|
91
|
+
}
|
|
92
|
+
) }),
|
|
93
|
+
/* @__PURE__ */ jsx(
|
|
94
|
+
PopoverContent,
|
|
95
|
+
{
|
|
96
|
+
className: "w-[var(--radix-popover-trigger-width)] min-w-56 p-0",
|
|
97
|
+
"data-slot": "combobox-content",
|
|
98
|
+
"aria-label": ariaLabel ?? resolvedSearchPlaceholder,
|
|
99
|
+
children: /* @__PURE__ */ jsxs(Command, { filter: allowCustomValue ? customValueFilter : void 0, children: [
|
|
100
|
+
/* @__PURE__ */ jsx(
|
|
101
|
+
CommandInput,
|
|
102
|
+
{
|
|
103
|
+
placeholder: resolvedSearchPlaceholder,
|
|
104
|
+
value: search,
|
|
105
|
+
onValueChange: setSearch
|
|
106
|
+
}
|
|
107
|
+
),
|
|
108
|
+
/* @__PURE__ */ jsxs(CommandList, { children: [
|
|
109
|
+
/* @__PURE__ */ jsx(CommandEmpty, { children: resolvedEmptyText }),
|
|
110
|
+
/* @__PURE__ */ jsxs(CommandGroup, { children: [
|
|
111
|
+
options.map((o) => /* @__PURE__ */ jsxs(
|
|
112
|
+
CommandItem,
|
|
113
|
+
{
|
|
114
|
+
value: o.value,
|
|
115
|
+
keywords: [o.label],
|
|
116
|
+
onSelect: () => {
|
|
117
|
+
setValue(o.value === selected ? "" : o.value);
|
|
118
|
+
setOpen(false);
|
|
119
|
+
},
|
|
120
|
+
children: [
|
|
121
|
+
/* @__PURE__ */ jsx(
|
|
122
|
+
Check,
|
|
123
|
+
{
|
|
124
|
+
className: cn(
|
|
125
|
+
"me-2 size-4",
|
|
126
|
+
selected === o.value ? "opacity-100" : "opacity-0"
|
|
127
|
+
)
|
|
128
|
+
}
|
|
129
|
+
),
|
|
130
|
+
o.label
|
|
131
|
+
]
|
|
132
|
+
},
|
|
133
|
+
o.value
|
|
134
|
+
)),
|
|
135
|
+
showCustomValueItem ? /* @__PURE__ */ jsxs(
|
|
136
|
+
CommandItem,
|
|
137
|
+
{
|
|
138
|
+
value: CUSTOM_VALUE_ITEM,
|
|
139
|
+
"data-slot": "combobox-custom-value",
|
|
140
|
+
onSelect: () => {
|
|
141
|
+
setValue(trimmedSearch);
|
|
142
|
+
setOpen(false);
|
|
143
|
+
},
|
|
144
|
+
children: [
|
|
145
|
+
/* @__PURE__ */ jsx(Plus, { className: "me-2 size-4 shrink-0 opacity-50" }),
|
|
146
|
+
t("ui.combobox.useCustomValue", { value: trimmedSearch })
|
|
147
|
+
]
|
|
148
|
+
}
|
|
149
|
+
) : null
|
|
150
|
+
] })
|
|
151
|
+
] })
|
|
152
|
+
] })
|
|
153
|
+
}
|
|
154
|
+
)
|
|
155
|
+
]
|
|
156
|
+
}
|
|
157
|
+
);
|
|
158
|
+
});
|
|
159
|
+
|
|
160
|
+
export {
|
|
161
|
+
Combobox
|
|
162
|
+
};
|
|
163
|
+
//# sourceMappingURL=chunk-WTB4DDZP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/combobox/combobox.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useState, type ComponentPropsWithoutRef } from \"react\";\nimport { defaultFilter } from \"cmdk\";\nimport { Check, ChevronsUpDown, Plus } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { useControllableState } from \"../../lib/use-controllable-state\";\nimport { Button } from \"../button\";\nimport { Popover, PopoverContent, PopoverTrigger } from \"../popover\";\nimport { useLocale } from \"../locale-provider\";\nimport {\n Command,\n CommandEmpty,\n CommandGroup,\n CommandInput,\n CommandItem,\n CommandList,\n} from \"../command\";\n\nexport interface ComboboxOption {\n label: string;\n value: string;\n}\n\nexport interface ComboboxProps {\n /**\n * The option list — every option is mounted in the DOM (cmdk has no built-in\n * windowing), so this is fine for typical form/menu-sized lists but not for\n * open-ended data. For thousands of options, use `VirtualSelect` instead,\n * which windows rendering via `@tanstack/react-virtual`.\n */\n options: ComboboxOption[];\n value?: string;\n onValueChange?: (value: string) => void;\n placeholder?: string;\n searchPlaceholder?: string;\n /**\n * Message shown when the search yields no results. Defaults to \"No\n * results.\" — or, when `allowCustomValue` is set, a message that also\n * signals a custom value is acceptable.\n */\n emptyText?: string;\n className?: string;\n /** Disables the trigger and prevents the popover from opening. */\n disabled?: boolean;\n /**\n * When `true`, typed text that doesn't match any option becomes a\n * submittable value: a synthetic \"Use…\" suggestion is shown, and pressing\n * Enter with no listed option highlighted accepts the typed text via\n * `onValueChange`. Suggestions still filter as usual. Default `false`\n * (selection-only, unchanged behavior) — #359.\n */\n allowCustomValue?: boolean;\n /** `id` applied to the trigger button. */\n id?: string;\n /**\n * The trigger's accessible name always defaults to the SELECTED VALUE (or\n * the placeholder) — that tells AT what is currently chosen, never what the\n * control is FOR. Pass `aria-label`/`aria-labelledby` to also name the\n * control's purpose (e.g. \"Session switcher\").\n */\n \"aria-label\"?: string;\n \"aria-labelledby\"?: string;\n /**\n * Escape hatch spread onto the trigger `Button` (after the named props\n * above, so it wins if both are set) for anything not covered by a named\n * prop — `data-*`, `name`, `data-testid`, etc. `role`/`aria-expanded` stay\n * component-owned and can't be passed here; disabling stays on the\n * top-level `disabled` prop so the popover-open guard below can't drift\n * out of sync with the trigger's actual disabled state.\n */\n triggerProps?: Omit<\n ComponentPropsWithoutRef<typeof Button>,\n \"role\" | \"aria-expanded\" | \"disabled\"\n > & {\n /** Arbitrary `data-*` attributes (test hooks, analytics, …). */\n [key: `data-${string}`]: string | number | boolean | undefined;\n };\n}\n\n/**\n * Sentinel `value` for the synthetic \"Use …\" row (`allowCustomValue`).\n *\n * It must NOT be the search text. cmdk scores every item against the search and\n * re-sorts the list by score, then auto-highlights the top one — so a row whose\n * `value` IS the search text scores a perfect 1 and outranks every real partial\n * match. Typing \"Prod\" against a \"Production\" option then highlighted\n * `Use \"Prod\"`, and Enter emitted the raw string instead of selecting the\n * option — the exact opposite of #359's \"Enter accepts the highlighted\n * suggestion, or the typed value if none is highlighted\".\n */\nconst CUSTOM_VALUE_ITEM = \"__brand-ui-combobox-custom-value__\";\n\n/**\n * Keeps the \"Use …\" row visible (score > 0) but always ranked LAST, behind\n * every real suggestion, so the top match stays highlighted and Enter still\n * selects it. When nothing else matches, the row is the only item and Enter\n * accepts the typed value — which is the behavior #359 asks for.\n */\nconst customValueFilter = (value: string, search: string, keywords?: string[]) =>\n value === CUSTOM_VALUE_ITEM ? Number.MIN_VALUE : defaultFilter(value, search, keywords);\n\n/** Single-select combobox (Popover + Command). Controlled or uncontrolled. */\nexport const Combobox = forwardRef<HTMLButtonElement, ComboboxProps>(function Combobox(\n {\n options,\n value,\n onValueChange,\n placeholder,\n searchPlaceholder,\n emptyText,\n className,\n disabled = false,\n allowCustomValue = false,\n id,\n \"aria-label\": ariaLabel,\n \"aria-labelledby\": ariaLabelledby,\n triggerProps,\n },\n ref,\n) {\n const { t } = useLocale();\n const resolvedPlaceholder = placeholder ?? t(\"ui.combobox.placeholder\");\n const resolvedSearchPlaceholder = searchPlaceholder ?? t(\"ui.combobox.searchPlaceholder\");\n const [open, setOpen] = useState(false);\n const [selected, setValue] = useControllableState(value, \"\", onValueChange);\n const [search, setSearch] = useState(\"\");\n const current = options.find((o) => o.value === selected);\n\n const trimmedSearch = search.trim();\n const hasExactMatch = options.some(\n (o) => o.label.trim().toLowerCase() === trimmedSearch.toLowerCase(),\n );\n const showCustomValueItem = allowCustomValue && trimmedSearch.length > 0 && !hasExactMatch;\n const resolvedEmptyText =\n emptyText ?? (allowCustomValue ? t(\"ui.combobox.emptyAllowCustom\") : t(\"noResults\"));\n\n return (\n <Popover\n open={disabled ? false : open}\n onOpenChange={(o) => {\n if (disabled) return;\n setOpen(o);\n // Reset the search text on close, matching the previous (uncontrolled\n // cmdk-internal) behavior where the popover content unmounted and its\n // own internal search state reset with it.\n if (!o) setSearch(\"\");\n }}\n >\n <PopoverTrigger asChild>\n <Button\n ref={ref}\n variant=\"outline\"\n id={id}\n aria-label={ariaLabel}\n aria-labelledby={ariaLabelledby}\n {...triggerProps}\n role=\"combobox\"\n aria-expanded={open}\n disabled={disabled}\n data-slot=\"combobox\"\n className={cn(\"w-full justify-between font-normal\", triggerProps?.className, className)}\n >\n {current ? current.label : selected || resolvedPlaceholder}\n <ChevronsUpDown className=\"ms-2 size-4 shrink-0 opacity-50\" />\n </Button>\n </PopoverTrigger>\n <PopoverContent\n className=\"w-[var(--radix-popover-trigger-width)] min-w-56 p-0\"\n data-slot=\"combobox-content\"\n // Radix Popover.Content renders role=\"dialog\"; without a name axe's\n // aria-dialog-name rule (rightly) flags it. Reuse the trigger's own\n // purpose label when the consumer set one, else fall back to the\n // (already-translatable) search placeholder — no new hardcoded copy.\n aria-label={ariaLabel ?? resolvedSearchPlaceholder}\n >\n <Command filter={allowCustomValue ? customValueFilter : undefined}>\n <CommandInput\n placeholder={resolvedSearchPlaceholder}\n value={search}\n onValueChange={setSearch}\n />\n <CommandList>\n <CommandEmpty>{resolvedEmptyText}</CommandEmpty>\n <CommandGroup>\n {options.map((o) => (\n <CommandItem\n key={o.value}\n value={o.value}\n keywords={[o.label]}\n onSelect={() => {\n setValue(o.value === selected ? \"\" : o.value);\n setOpen(false);\n }}\n >\n <Check\n className={cn(\n \"me-2 size-4\",\n selected === o.value ? \"opacity-100\" : \"opacity-0\",\n )}\n />\n {o.label}\n </CommandItem>\n ))}\n {showCustomValueItem ? (\n <CommandItem\n value={CUSTOM_VALUE_ITEM}\n data-slot=\"combobox-custom-value\"\n onSelect={() => {\n setValue(trimmedSearch);\n setOpen(false);\n }}\n >\n <Plus className=\"me-2 size-4 shrink-0 opacity-50\" />\n {t(\"ui.combobox.useCustomValue\", { value: trimmedSearch })}\n </CommandItem>\n ) : null}\n </CommandGroup>\n </CommandList>\n </Command>\n </PopoverContent>\n </Popover>\n );\n});\n"],"mappings":"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","names":["Combobox"]}
|