@elabs-ai/components-ui 4.2.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 +1269 -116
- package/dist/index.js +993 -23939
- 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 +23 -7
- 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__/command-chip.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__/meter.contract.test.tsx +49 -0
- package/src/__contract__/parallax-plane.contract.test.tsx +49 -0
- package/src/__contract__/reveal-on-enter.contract.test.tsx +49 -0
- package/src/__contract__/spec-playground.contract.test.tsx +49 -0
- package/src/__contract__/surface-tour.contract.test.tsx +49 -0
- package/src/__contract__/theme-family-switch.contract.test.tsx +49 -0
- package/src/__contract__/token-spotlight.contract.test.tsx +49 -0
- package/src/blocks-comparison-table.stories.tsx +1 -1
- package/src/components/accordion/accordion.tsx +31 -15
- package/src/components/advanced-group/advanced-group.stories.tsx +2 -0
- package/src/components/alert/alert.tsx +13 -5
- package/src/components/alert-dialog/alert-dialog.tsx +1 -1
- 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 +167 -0
- package/src/components/app-shell/app-shell.tsx +119 -5
- package/src/components/app-shell/index.ts +1 -1
- package/src/components/attribution-panel/attributions.generated.ts +77 -4
- package/src/components/badge/badge.stories.tsx +62 -0
- package/src/components/badge/badge.test.tsx +21 -0
- package/src/components/badge/badge.tsx +88 -8
- package/src/components/breadcrumb/breadcrumb.stories.tsx +1 -1
- package/src/components/breadcrumb/breadcrumb.tsx +2 -0
- package/src/components/button/button.stories.tsx +5 -1
- package/src/components/button/button.tsx +19 -8
- package/src/components/calendar/calendar.tsx +6 -1
- package/src/components/card/card.stories.tsx +73 -1
- package/src/components/card/card.test.tsx +29 -2
- package/src/components/card/card.tsx +77 -13
- package/src/components/card/index.ts +2 -0
- package/src/components/change-review/change-review.tsx +1 -1
- package/src/components/collapsible-panel/index.ts +1 -0
- package/src/components/collapsible-panel/use-collapsible-panel.ts +21 -2
- package/src/components/color-picker/color-picker.tsx +3 -3
- package/src/components/command/command.stories.tsx +64 -1
- package/src/components/command/command.test.tsx +73 -0
- package/src/components/command/command.tsx +73 -2
- 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 +6 -6
- package/src/components/context-rail/context-rail.tsx +22 -4
- package/src/components/date-picker/date-picker.tsx +2 -0
- package/src/components/descriptions/descriptions.stories.tsx +6 -0
- package/src/components/descriptions/descriptions.test.tsx +18 -0
- package/src/components/descriptions/descriptions.tsx +33 -5
- package/src/components/descriptions/index.ts +1 -0
- package/src/components/dialog/dialog.stories.tsx +5 -0
- package/src/components/dialog/dialog.tsx +1 -1
- package/src/components/dropdown-menu/dropdown-menu.stories.tsx +37 -0
- package/src/components/dropdown-menu/dropdown-menu.tsx +14 -6
- package/src/components/expand-dialog/expand-dialog.test.tsx +47 -0
- package/src/components/expand-dialog/expand-dialog.tsx +20 -5
- package/src/components/hover-card/hover-card.tsx +1 -1
- package/src/components/input/input.stories.tsx +17 -0
- package/src/components/input/input.tsx +1 -1
- package/src/components/input-group/input-group.stories.tsx +43 -6
- package/src/components/input-group/input-group.tsx +5 -2
- package/src/components/input-otp/input-otp.tsx +4 -2
- 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/locale-provider/messages.ts +252 -0
- package/src/components/mention-input/mention-input.tsx +1 -1
- package/src/components/menubar/menubar.stories.tsx +25 -0
- package/src/components/menubar/menubar.tsx +7 -7
- 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-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 +1 -1
- 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.tsx +2 -0
- 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 +1 -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 +57 -3
- 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 +1 -3
- 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.stories.tsx +33 -0
- package/src/components/schema-form/schema-form.test.tsx +43 -0
- package/src/components/schema-form/schema-form.tsx +111 -4
- 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 +1 -3
- package/src/components/select/select.stories.tsx +17 -0
- package/src/components/select/select.test.tsx +28 -1
- package/src/components/select/select.tsx +3 -3
- package/src/components/sheet/sheet.tsx +1 -1
- package/src/components/side-dock/side-dock.stories.tsx +83 -0
- package/src/components/side-dock/side-dock.tsx +50 -16
- package/src/components/sidebar/sidebar.stories.tsx +3 -3
- package/src/components/sidebar/sidebar.test.tsx +31 -1
- package/src/components/sidebar/sidebar.tsx +34 -7
- package/src/components/skip-link/skip-link.stories.tsx +1 -0
- package/src/components/slider/slider.stories.tsx +13 -77
- 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/state-panel/state-panel.stories.tsx +4 -2
- package/src/components/state-panel/state-panel.tsx +1 -1
- 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/table/table.tsx +5 -2
- package/src/components/tabs/tabs.stories.tsx +47 -1
- package/src/components/tabs/tabs.test.tsx +26 -0
- package/src/components/tabs/tabs.tsx +51 -11
- package/src/components/textarea/textarea.tsx +1 -1
- 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.tsx +11 -4
- 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/top-nav/top-nav.test.tsx +59 -0
- package/src/components/top-nav/top-nav.tsx +36 -6
- package/src/components/tree/tree.stories.tsx +1 -1
- package/src/components/tree/tree.test.tsx +4 -4
- package/src/components/tree/tree.tsx +4 -4
- 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/decoration.stories.tsx +213 -2
- package/src/index.ts +46 -0
- package/src/lib/cn.test.ts +20 -0
- package/src/lib/cn.ts +32 -7
- 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/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-FCH4ZN6G.js +0 -57
- package/dist/chunk-FCH4ZN6G.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/command/command.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n createContext,\n forwardRef,\n use,\n useEffect,\n useMemo,\n useRef,\n useState,\n type ComponentPropsWithoutRef,\n type ElementRef,\n type HTMLAttributes,\n type ReactNode,\n type RefObject,\n} from \"react\";\nimport { Command as CommandPrimitive, useCommandState } from \"cmdk\";\nimport { Search } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { mergeRefs } from \"../../lib/merge-refs\";\nimport { Dialog, DialogContent, DialogTitle } from \"../dialog\";\n\n/** cmdk's own marker attribute on an item row — the scope for the id lookup. */\nconst CMDK_ITEM_SELECTOR = '[cmdk-item=\"\"][aria-selected=\"true\"]';\n\n/**\n * Brings `element` fully into view within its nearest `CommandList` ancestor\n * — and ONLY that ancestor — by writing `scrollTop` directly. Replicates the\n * minimal-movement edge math `Element.scrollIntoView({ block: \"nearest\" })`\n * itself uses, without ever calling the native method (which walks every\n * further scrollable ancestor, the window included — see\n * `overrideItemScrollIntoView` below for why that matters). A no-op when\n * `element` has no `CommandList` ancestor: never falls back to the native\n * call, which would reopen #541.\n */\nfunction scrollElementIntoCommandList(element: HTMLElement) {\n const list = element.closest<HTMLElement>('[data-slot=\"command-list\"]');\n if (!list) return;\n const elementRect = element.getBoundingClientRect();\n const listRect = list.getBoundingClientRect();\n if (elementRect.top < listRect.top) {\n list.scrollTop -= listRect.top - elementRect.top;\n } else if (elementRect.bottom > listRect.bottom) {\n list.scrollTop += elementRect.bottom - listRect.bottom;\n }\n}\n\n/**\n * cmdk auto-highlights the first item on mount, on every filter keystroke\n * and on every keyboard navigation (ArrowDown/ArrowUp/Home/End), then calls\n * the highlighted item's — and, when it is the first item in a group, that\n * group's heading's — native `Element.prototype.scrollIntoView({ block:\n * \"nearest\" })` to keep it visible. See `cmdk@1.1.1`'s\n * `node_modules/cmdk/dist/index.mjs:1` (and the CJS twin\n * `dist/index.js:1` — esbuild minifies each entire module onto a single\n * line), function `ne` (`ce` in the CJS build): every `setState(\"value\", …)`\n * call that does not pass the internal \"don't scroll\" flag (pointer hover\n * selection is the one call site that does) schedules it, and the root\n * component's own mount effect schedules it unconditionally too.\n *\n * `{ block: \"nearest\" }` walks EVERY scrollable ancestor, the window\n * included — so mounting a `Command` whose list sits below the fold scrolls\n * the whole page (#541), for every consumer of an inline list, not only a\n * modal `CommandDialog`. cmdk has no prop to opt out (checked its public\n * API — no `scrollBehavior`/`disableScroll`/similar).\n *\n * The fix shadows `scrollIntoView` as an OWN property on the specific\n * item/heading element cmdk will call it on — never `Element.prototype`,\n * which would silently change the behaviour of every OTHER element on the\n * page, not just cmdk's — with `scrollElementIntoCommandList` above. A ref\n * callback runs during React's DOM-mutation commit phase, which always\n * completes (for the whole tree) before any layout effect fires — including\n * cmdk's own scheduled scroll — so the override is guaranteed to be in place\n * before cmdk can ever reach the native method.\n */\nfunction overrideItemScrollIntoView(node: HTMLElement | null) {\n if (node) node.scrollIntoView = () => scrollElementIntoCommandList(node);\n}\n\n/** Same override as `overrideItemScrollIntoView`, for a group's heading —\n * the DOM node cmdk creates internally for `CommandGroup`'s `heading` prop,\n * so unlike an item it isn't a ref target we're handed directly. */\nfunction overrideGroupHeadingScrollIntoView(node: HTMLElement | null) {\n const heading = node?.querySelector<HTMLElement>(\"[cmdk-group-heading]\");\n if (heading) heading.scrollIntoView = () => scrollElementIntoCommandList(heading);\n}\n\n/** Distinguishes \"no `<Command>` ancestor\" from \"nothing is highlighted\". */\nconst NO_COMMAND_PROVIDER = Symbol(\"no-command-provider\");\n\nconst CommandActiveItemIdContext = createContext<string | undefined | typeof NO_COMMAND_PROVIDER>(\n NO_COMMAND_PROVIDER,\n);\n\n/**\n * Resolves the DOM `id` of the currently highlighted `CommandItem`, publishes\n * it on a context and reports it to `Command`'s `onActiveItemIdChange`.\n *\n * It renders no DOM of its own, and it deliberately does NOT simply forward\n * cmdk's `state.selectedItemId`. cmdk only recomputes that field inside a\n * `schedule(7, …)` callback queued from `setState(\"value\", …)`, and its own\n * `selectFirstItem()` runs INSIDE the layout-effect flush that drains that\n * queue — so the callback executes before React has committed the new\n * `aria-selected` attribute and cmdk's `getSelectedItem()` DOM query finds\n * nothing. The field therefore stays `undefined` for BOTH cases that matter\n * here: the item auto-highlighted on mount, and the item re-highlighted after\n * every filter keystroke. (cmdk's own `Command.Input` inherits the same hole —\n * it renders no `aria-activedescendant` in either state. Verified against\n * cmdk 1.1.1 in jsdom and Chromium.)\n *\n * Reading the committed DOM from a post-commit `useEffect` — the same query\n * cmdk itself uses, just at a point where the attribute exists — closes both\n * gaps. `state.selectedItemId` is kept as a fallback and as one of the change\n * triggers.\n */\nfunction CommandActiveItemProvider({\n rootRef,\n onChange,\n children,\n}: {\n rootRef: RefObject<HTMLDivElement | null>;\n onChange?: (id: string | undefined) => void;\n children: ReactNode;\n}) {\n const value = useCommandState((state) => state.value);\n const selectedItemId = useCommandState((state) => state.selectedItemId);\n const filteredCount = useCommandState((state) => state.filtered.count);\n\n const [activeId, setActiveId] = useState<string | undefined>(undefined);\n\n // The callback lives in a ref so an inline arrow prop doesn't re-fire the\n // effect on every render.\n const onChangeRef = useRef(onChange);\n useEffect(() => {\n onChangeRef.current = onChange;\n }, [onChange]);\n\n // `undefined` is a legitimate reported value (\"nothing highlighted\"), so the\n // \"not reported yet\" sentinel has to be something else.\n const lastReportedRef = useRef<string | undefined | typeof NO_COMMAND_PROVIDER>(\n NO_COMMAND_PROVIDER,\n );\n\n useEffect(() => {\n const element = rootRef.current?.querySelector<HTMLElement>(CMDK_ITEM_SELECTOR);\n const next = element?.id ?? selectedItemId ?? undefined;\n\n setActiveId(next);\n if (lastReportedRef.current !== next) {\n lastReportedRef.current = next;\n onChangeRef.current?.(next);\n }\n }, [value, selectedItemId, filteredCount, rootRef]);\n\n return <CommandActiveItemIdContext value={activeId}>{children}</CommandActiveItemIdContext>;\n}\n\nexport interface CommandProps extends ComponentPropsWithoutRef<typeof CommandPrimitive> {\n /**\n * Reports the DOM `id` cmdk assigned to the currently highlighted item, so\n * an input rendered OUTSIDE this `Command` tree (a composer textarea, a\n * combobox trigger) can set `aria-activedescendant` without querying\n * `[role=\"option\"]` positionally. Fires with `undefined` when nothing is\n * highlighted.\n *\n * cmdk owns each item's `id`/`role`/`aria-selected` and applies them AFTER\n * the consumer spread, so a consumer-supplied `id` on `CommandItem` is\n * silently dropped (`CommandItem` warns about this in development) — this\n * callback is the supported way to obtain it. See also the\n * `useCommandActiveItemId` hook for reading the same value from a\n * descendant already inside the `<Command>` tree.\n *\n * It fires for EVERY highlight change, including the item cmdk\n * auto-highlights on mount and the one it re-highlights after each filter\n * keystroke — the two states cmdk's own `state.selectedItemId` misses.\n */\n onActiveItemIdChange?: (id: string | undefined) => void;\n}\n\nexport const Command = forwardRef<ElementRef<typeof CommandPrimitive>, CommandProps>(\n function Command({ className, children, onActiveItemIdChange, ...props }, ref) {\n const innerRef = useRef<HTMLDivElement>(null);\n const mergedRef = useMemo(() => mergeRefs<HTMLDivElement>(ref, innerRef), [ref]);\n\n return (\n <CommandPrimitive\n ref={mergedRef}\n data-slot=\"command\"\n className={cn(\n \"flex size-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground\",\n className,\n )}\n {...props}\n >\n <CommandActiveItemProvider rootRef={innerRef} onChange={onActiveItemIdChange}>\n {children}\n </CommandActiveItemProvider>\n </CommandPrimitive>\n );\n },\n);\n\n/**\n * The DOM `id` of the currently highlighted `CommandItem`. Must be called\n * from a component rendered inside a `<Command>` tree; returns `undefined`\n * when nothing is highlighted (or when there is no `<Command>` ancestor).\n * Reports exactly the same value as `Command`'s `onActiveItemIdChange`\n * callback, for a consumer that is already a descendant (rather than an\n * external input above the tree).\n */\nexport function useCommandActiveItemId(): string | undefined {\n const id = use(CommandActiveItemIdContext);\n return id === NO_COMMAND_PROVIDER ? undefined : id;\n}\n\nexport type CommandDialogProps = ComponentPropsWithoutRef<typeof Dialog> & {\n /** Custom cmdk ranking (e.g. strict substring instead of fuzzy). */\n filter?: ComponentPropsWithoutRef<typeof CommandPrimitive>[\"filter\"];\n /**\n * The dialog's accessible name, rendered `sr-only`.\n *\n * OPTIONAL, and deliberately so: callers that already render their own\n * `DialogTitle` in `children` must not be forced to move it, and\n * `@elabs-ai/components-ai`'s `VoiceSelectorDialog` passes this whole prop\n * type straight through. Supply it when you have no visible title — a\n * `Dialog` with no accessible name is a Radix warning and an axe violation.\n */\n title?: ReactNode;\n};\n\n/**\n * A ⌘K command palette in a modal `Dialog`.\n *\n * This IS the palette presentation of `Command` — there is no separate\n * \"selector\" component. For an inline pill that opens the same grouped,\n * searchable list anchored under itself (a composer footer), reach for\n * `ModelPicker` instead.\n */\nexport function CommandDialog({ children, filter, title, ...props }: CommandDialogProps) {\n return (\n <Dialog {...props}>\n <DialogContent className=\"overflow-hidden p-0\">\n {title === undefined ? null : <DialogTitle className=\"sr-only\">{title}</DialogTitle>}\n <Command\n filter={filter}\n className=\"[&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:text-muted-foreground [&_[cmdk-input-wrapper]_svg]:size-5 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3\"\n >\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nexport const CommandInput = forwardRef<\n ElementRef<typeof CommandPrimitive.Input>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Input>\n>(function CommandInput({ className, ...props }, ref) {\n return (\n <div className=\"flex items-center border-b px-3\" cmdk-input-wrapper=\"\">\n <Search className=\"me-2 size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n ref={ref}\n data-slot=\"command-input\"\n className={cn(\n \"flex h-10 w-full rounded-md bg-transparent py-3 text-body outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50\",\n className,\n )}\n {...props}\n />\n </div>\n );\n});\n\nexport const CommandList = forwardRef<\n ElementRef<typeof CommandPrimitive.List>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.List>\n>(function CommandList({ className, ...props }, ref) {\n return (\n <CommandPrimitive.List\n ref={ref}\n data-slot=\"command-list\"\n className={cn(\"max-h-[300px] overflow-y-auto overflow-x-hidden\", className)}\n {...props}\n />\n );\n});\n\nexport const CommandEmpty = forwardRef<\n ElementRef<typeof CommandPrimitive.Empty>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Empty>\n>(function CommandEmpty({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Empty\n ref={ref}\n data-slot=\"command-empty\"\n className={cn(\"py-6 text-center text-body\", className)}\n {...props}\n />\n );\n});\n\nexport const CommandGroup = forwardRef<\n ElementRef<typeof CommandPrimitive.Group>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Group>\n>(function CommandGroup({ className, ...props }, ref) {\n const mergedRef = useMemo(\n () => mergeRefs<HTMLDivElement>(ref, overrideGroupHeadingScrollIntoView),\n [ref],\n );\n return (\n <CommandPrimitive.Group\n ref={mergedRef}\n data-slot=\"command-group\"\n className={cn(\n \"overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-meta [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground\",\n className,\n )}\n {...props}\n />\n );\n});\n\nexport const CommandSeparator = forwardRef<\n ElementRef<typeof CommandPrimitive.Separator>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Separator>\n>(function CommandSeparator({ className, ...props }, ref) {\n return (\n <CommandPrimitive.Separator\n ref={ref}\n data-slot=\"command-separator\"\n // `cmdk` renders this as a direct child of its `role=\"listbox\"`\n // (`CommandList`), which may only own `option`/`group` (WCAG 1.3.1,\n // #157) — a purely visual divider between groups, so `aria-hidden`\n // removes it from the accessibility tree instead of asking the listbox\n // to own a role it can't. `{...props}` still lets a caller override it.\n aria-hidden=\"true\"\n className={cn(\"-mx-1 h-px bg-border\", className)}\n {...props}\n />\n );\n});\n\n/**\n * Props cmdk owns and applies AFTER a consumer spread — see the `Command`\n * `onActiveItemIdChange` docblock. Passing any of these is a silent no-op;\n * `CommandItem` warns once per key in development.\n */\nconst CMDK_OVERRIDDEN_ITEM_PROPS = [\"id\", \"role\", \"aria-selected\"] as const;\nconst warnedAboutOverriddenItemProps = new Set<string>();\n\nexport const CommandItem = forwardRef<\n ElementRef<typeof CommandPrimitive.Item>,\n ComponentPropsWithoutRef<typeof CommandPrimitive.Item>\n>(function CommandItem({ className, ...props }, ref) {\n const mergedRef = useMemo(\n () => mergeRefs<HTMLDivElement>(ref, overrideItemScrollIntoView),\n [ref],\n );\n\n if (process.env.NODE_ENV !== \"production\") {\n for (const key of CMDK_OVERRIDDEN_ITEM_PROPS) {\n if (key in props && !warnedAboutOverriddenItemProps.has(key)) {\n warnedAboutOverriddenItemProps.add(key);\n // oxlint-disable-next-line no-console\n console.warn(\n `CommandItem: \"${key}\" is assigned internally by cmdk, so the value you passed is ` +\n 'ignored. Use <Command onActiveItemIdChange> (or the \"useCommandActiveItemId\" hook) ' +\n \"to read the DOM id of the highlighted item instead — see \" +\n \"packages/ui/src/components/command/command.tsx.\",\n );\n }\n }\n }\n\n return (\n <CommandPrimitive.Item\n ref={mergedRef}\n data-slot=\"command-item\"\n className={cn(\n \"relative flex cursor-default select-none items-center gap-2 rounded-sm px-2 py-1.5 text-body outline-none transition-colors duration-fast data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:size-4\",\n className,\n )}\n {...props}\n />\n );\n});\n\nexport function CommandShortcut({ className, ...props }: HTMLAttributes<HTMLSpanElement>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\"ms-auto text-meta tracking-widest text-muted-foreground\", className)}\n {...props}\n />\n );\n}\n"],"mappings":"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","names":["Command","CommandInput","CommandList","CommandEmpty","CommandGroup","CommandSeparator","CommandItem"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
// src/components/tree/use-tree-keyboard.ts
|
|
4
|
+
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
5
|
+
function flattenVisible(nodes, expandedIds) {
|
|
6
|
+
const result = [];
|
|
7
|
+
function walk(list) {
|
|
8
|
+
for (const node of list) {
|
|
9
|
+
result.push(node.id);
|
|
10
|
+
if ((node.children?.length || node.hasChildren) && expandedIds.has(node.id)) {
|
|
11
|
+
if (node.children?.length) walk(node.children);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
walk(nodes);
|
|
16
|
+
return result;
|
|
17
|
+
}
|
|
18
|
+
function buildParentMap(nodes, parentId = null, map = /* @__PURE__ */ new Map()) {
|
|
19
|
+
for (const node of nodes) {
|
|
20
|
+
map.set(node.id, parentId);
|
|
21
|
+
if (node.children?.length) {
|
|
22
|
+
buildParentMap(node.children, node.id, map);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return map;
|
|
26
|
+
}
|
|
27
|
+
function findNode(nodes, id) {
|
|
28
|
+
for (const node of nodes) {
|
|
29
|
+
if (node.id === id) return node;
|
|
30
|
+
if (node.children?.length) {
|
|
31
|
+
const found = findNode(node.children, id);
|
|
32
|
+
if (found) return found;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
return void 0;
|
|
36
|
+
}
|
|
37
|
+
function useTreeKeyboard(options) {
|
|
38
|
+
const {
|
|
39
|
+
nodes,
|
|
40
|
+
expandedIds,
|
|
41
|
+
onExpandedChange,
|
|
42
|
+
selectionMode,
|
|
43
|
+
selectedIds,
|
|
44
|
+
onSelectionChange,
|
|
45
|
+
virtualize = false,
|
|
46
|
+
flatNodeIds,
|
|
47
|
+
pendingFocusIdRef,
|
|
48
|
+
scrollToVirtualIndex
|
|
49
|
+
} = options;
|
|
50
|
+
const [activeId, setActiveIdState] = useState(() => {
|
|
51
|
+
const visible2 = flattenVisible(nodes, expandedIds);
|
|
52
|
+
return visible2[0] ?? null;
|
|
53
|
+
});
|
|
54
|
+
const nodeRefs = useRef(/* @__PURE__ */ new Map());
|
|
55
|
+
const registerNodeRef = useCallback((id, el) => {
|
|
56
|
+
if (el) {
|
|
57
|
+
nodeRefs.current.set(id, el);
|
|
58
|
+
} else {
|
|
59
|
+
nodeRefs.current.delete(id);
|
|
60
|
+
}
|
|
61
|
+
}, []);
|
|
62
|
+
const visible = useMemo(
|
|
63
|
+
() => virtualize && flatNodeIds ? flatNodeIds : flattenVisible(nodes, expandedIds),
|
|
64
|
+
[virtualize, flatNodeIds, nodes, expandedIds]
|
|
65
|
+
);
|
|
66
|
+
const visibleIndexById = useMemo(() => {
|
|
67
|
+
const map = /* @__PURE__ */ new Map();
|
|
68
|
+
visible.forEach((id, i) => map.set(id, i));
|
|
69
|
+
return map;
|
|
70
|
+
}, [visible]);
|
|
71
|
+
const nodeById = useMemo(() => {
|
|
72
|
+
const map = /* @__PURE__ */ new Map();
|
|
73
|
+
function walk(list) {
|
|
74
|
+
for (const node of list) {
|
|
75
|
+
map.set(node.id, node);
|
|
76
|
+
if (node.children?.length) walk(node.children);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
walk(nodes);
|
|
80
|
+
return map;
|
|
81
|
+
}, [nodes]);
|
|
82
|
+
const parentMapMemo = useMemo(() => buildParentMap(nodes), [nodes]);
|
|
83
|
+
const typeaheadBuffer = useRef("");
|
|
84
|
+
const typeaheadTimer = useRef(null);
|
|
85
|
+
useEffect(
|
|
86
|
+
() => () => {
|
|
87
|
+
if (typeaheadTimer.current) clearTimeout(typeaheadTimer.current);
|
|
88
|
+
},
|
|
89
|
+
[]
|
|
90
|
+
);
|
|
91
|
+
const setActiveId = useCallback(
|
|
92
|
+
(id) => {
|
|
93
|
+
setActiveIdState(id);
|
|
94
|
+
if (!id) return;
|
|
95
|
+
const el = nodeRefs.current.get(id);
|
|
96
|
+
if (el) {
|
|
97
|
+
el.focus();
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
if (virtualize && scrollToVirtualIndex && pendingFocusIdRef) {
|
|
101
|
+
const index = visibleIndexById.get(id) ?? -1;
|
|
102
|
+
if (index >= 0) {
|
|
103
|
+
pendingFocusIdRef.current = id;
|
|
104
|
+
scrollToVirtualIndex(index);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
[virtualize, visibleIndexById, pendingFocusIdRef, scrollToVirtualIndex]
|
|
109
|
+
);
|
|
110
|
+
const onKeyDown = useCallback(
|
|
111
|
+
(e) => {
|
|
112
|
+
if (!activeId) return;
|
|
113
|
+
const currentIndex = visibleIndexById.get(activeId) ?? -1;
|
|
114
|
+
const currentNode = nodeById.get(activeId);
|
|
115
|
+
const parentMap = parentMapMemo;
|
|
116
|
+
const moveTo = (id) => {
|
|
117
|
+
e.preventDefault();
|
|
118
|
+
setActiveId(id);
|
|
119
|
+
};
|
|
120
|
+
const selectNode = (id) => {
|
|
121
|
+
if (selectionMode === "none") return;
|
|
122
|
+
const node = nodeById.get(id);
|
|
123
|
+
if (node?.disabled) return;
|
|
124
|
+
if (selectionMode === "single") {
|
|
125
|
+
onSelectionChange(/* @__PURE__ */ new Set([id]));
|
|
126
|
+
} else {
|
|
127
|
+
const next = new Set(selectedIds);
|
|
128
|
+
if (next.has(id)) {
|
|
129
|
+
next.delete(id);
|
|
130
|
+
} else {
|
|
131
|
+
next.add(id);
|
|
132
|
+
}
|
|
133
|
+
onSelectionChange(next);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
switch (e.key) {
|
|
137
|
+
case "ArrowDown": {
|
|
138
|
+
e.preventDefault();
|
|
139
|
+
const next = visible[currentIndex + 1];
|
|
140
|
+
if (next) moveTo(next);
|
|
141
|
+
break;
|
|
142
|
+
}
|
|
143
|
+
case "ArrowUp": {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
const prev = visible[currentIndex - 1];
|
|
146
|
+
if (prev) moveTo(prev);
|
|
147
|
+
break;
|
|
148
|
+
}
|
|
149
|
+
case "ArrowRight": {
|
|
150
|
+
e.preventDefault();
|
|
151
|
+
if (!currentNode) break;
|
|
152
|
+
const expandable = !!(currentNode.children?.length || currentNode.hasChildren);
|
|
153
|
+
if (expandable && !expandedIds.has(activeId)) {
|
|
154
|
+
const next = new Set(expandedIds);
|
|
155
|
+
next.add(activeId);
|
|
156
|
+
onExpandedChange(next);
|
|
157
|
+
} else if (expandable && expandedIds.has(activeId)) {
|
|
158
|
+
const firstChild = currentNode.children?.[0];
|
|
159
|
+
if (firstChild) moveTo(firstChild.id);
|
|
160
|
+
}
|
|
161
|
+
break;
|
|
162
|
+
}
|
|
163
|
+
case "ArrowLeft": {
|
|
164
|
+
e.preventDefault();
|
|
165
|
+
if (!currentNode) break;
|
|
166
|
+
const expandable = !!(currentNode.children?.length || currentNode.hasChildren);
|
|
167
|
+
if (expandable && expandedIds.has(activeId)) {
|
|
168
|
+
const next = new Set(expandedIds);
|
|
169
|
+
next.delete(activeId);
|
|
170
|
+
onExpandedChange(next);
|
|
171
|
+
} else {
|
|
172
|
+
const parentId = parentMap.get(activeId) ?? null;
|
|
173
|
+
if (parentId) moveTo(parentId);
|
|
174
|
+
}
|
|
175
|
+
break;
|
|
176
|
+
}
|
|
177
|
+
case "Home": {
|
|
178
|
+
e.preventDefault();
|
|
179
|
+
const first = visible[0];
|
|
180
|
+
if (first) moveTo(first);
|
|
181
|
+
break;
|
|
182
|
+
}
|
|
183
|
+
case "End": {
|
|
184
|
+
e.preventDefault();
|
|
185
|
+
const last = visible[visible.length - 1];
|
|
186
|
+
if (last) moveTo(last);
|
|
187
|
+
break;
|
|
188
|
+
}
|
|
189
|
+
case "Enter":
|
|
190
|
+
case " ": {
|
|
191
|
+
e.preventDefault();
|
|
192
|
+
selectNode(activeId);
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
default: {
|
|
196
|
+
if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {
|
|
197
|
+
const char = e.key.toLowerCase();
|
|
198
|
+
typeaheadBuffer.current += char;
|
|
199
|
+
if (typeaheadTimer.current) clearTimeout(typeaheadTimer.current);
|
|
200
|
+
typeaheadTimer.current = setTimeout(() => {
|
|
201
|
+
typeaheadBuffer.current = "";
|
|
202
|
+
}, 500);
|
|
203
|
+
const prefix = typeaheadBuffer.current;
|
|
204
|
+
const searchList = [
|
|
205
|
+
...visible.slice(currentIndex + 1),
|
|
206
|
+
...visible.slice(0, currentIndex + 1)
|
|
207
|
+
];
|
|
208
|
+
for (const id of searchList) {
|
|
209
|
+
const node = nodeById.get(id);
|
|
210
|
+
if (!node) continue;
|
|
211
|
+
if (typeof node.label !== "string") continue;
|
|
212
|
+
if (node.label.toLowerCase().startsWith(prefix)) {
|
|
213
|
+
moveTo(id);
|
|
214
|
+
break;
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
[
|
|
223
|
+
activeId,
|
|
224
|
+
visible,
|
|
225
|
+
visibleIndexById,
|
|
226
|
+
nodeById,
|
|
227
|
+
parentMapMemo,
|
|
228
|
+
expandedIds,
|
|
229
|
+
onExpandedChange,
|
|
230
|
+
selectionMode,
|
|
231
|
+
selectedIds,
|
|
232
|
+
onSelectionChange,
|
|
233
|
+
setActiveId
|
|
234
|
+
]
|
|
235
|
+
);
|
|
236
|
+
return { activeId, setActiveId, registerNodeRef, onKeyDown };
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
export {
|
|
240
|
+
flattenVisible,
|
|
241
|
+
findNode,
|
|
242
|
+
useTreeKeyboard
|
|
243
|
+
};
|
|
244
|
+
//# sourceMappingURL=chunk-ZI2OXD6L.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tree/use-tree-keyboard.ts"],"sourcesContent":["\"use client\";\n\nimport { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { TreeNode } from \"./tree\";\n\n/**\n * Flattens the visible (expanded) tree into an ordered list of node ids.\n * Nodes whose ancestors are collapsed are excluded.\n */\nexport function flattenVisible<T>(nodes: TreeNode<T>[], expandedIds: Set<string>): string[] {\n const result: string[] = [];\n function walk(list: TreeNode<T>[]) {\n for (const node of list) {\n result.push(node.id);\n if ((node.children?.length || node.hasChildren) && expandedIds.has(node.id)) {\n if (node.children?.length) walk(node.children);\n }\n }\n }\n walk(nodes);\n return result;\n}\n\n/**\n * Builds a lookup map: node id → parent id (or null for roots).\n */\nfunction buildParentMap<T>(\n nodes: TreeNode<T>[],\n parentId: string | null = null,\n map: Map<string, string | null> = new Map(),\n): Map<string, string | null> {\n for (const node of nodes) {\n map.set(node.id, parentId);\n if (node.children?.length) {\n buildParentMap(node.children, node.id, map);\n }\n }\n return map;\n}\n\n/**\n * Finds a node by id in the tree (depth-first).\n */\nexport function findNode<T>(nodes: TreeNode<T>[], id: string): TreeNode<T> | undefined {\n for (const node of nodes) {\n if (node.id === id) return node;\n if (node.children?.length) {\n const found = findNode(node.children, id);\n if (found) return found;\n }\n }\n return undefined;\n}\n\nexport interface UseTreeKeyboardOptions<T> {\n nodes: TreeNode<T>[];\n expandedIds: Set<string>;\n onExpandedChange: (ids: Set<string>) => void;\n selectionMode: \"single\" | \"multiple\" | \"none\";\n selectedIds: Set<string>;\n onSelectionChange: (ids: Set<string>) => void;\n /**\n * When `true`, the tree uses windowed rendering. Focus navigation must\n * scroll the virtualizer before focusing an unmounted row.\n */\n virtualize?: boolean;\n /**\n * Ordered list of visible node ids in the virtual flat list. Provided by\n * the Tree when `virtualize` is true so the keyboard hook can map an id to\n * a virtual index without re-flattening.\n */\n flatNodeIds?: string[];\n /**\n * Ref that the keyboard hook writes a node id into when it needs to focus a\n * row that is currently scrolled out of view. The Tree's `registerAndFlush`\n * callback reads this ref on every ref registration and focuses the element\n * once it mounts.\n */\n pendingFocusIdRef?: React.MutableRefObject<string | null>;\n /**\n * Called when the keyboard hook wants to bring an index into view before\n * focusing it. Only called in virtual mode.\n */\n scrollToVirtualIndex?: (index: number) => void;\n}\n\nexport interface UseTreeKeyboardResult {\n activeId: string | null;\n setActiveId: (id: string | null) => void;\n /** ref callback — register each tree item element keyed by node id */\n registerNodeRef: (id: string, el: HTMLElement | null) => void;\n /** onKeyDown handler to attach to the root tree div */\n onKeyDown: (e: React.KeyboardEvent<HTMLElement>) => void;\n}\n\nexport function useTreeKeyboard<T>(options: UseTreeKeyboardOptions<T>): UseTreeKeyboardResult {\n const {\n nodes,\n expandedIds,\n onExpandedChange,\n selectionMode,\n selectedIds,\n onSelectionChange,\n virtualize = false,\n flatNodeIds,\n pendingFocusIdRef,\n scrollToVirtualIndex,\n } = options;\n\n // The currently \"roving\" active item id\n const [activeId, setActiveIdState] = useState<string | null>(() => {\n // default to first visible node\n const visible = flattenVisible(nodes, expandedIds);\n return visible[0] ?? null;\n });\n\n // Map from node id → DOM element reference\n const nodeRefs = useRef<Map<string, HTMLElement>>(new Map());\n\n const registerNodeRef = useCallback((id: string, el: HTMLElement | null) => {\n if (el) {\n nodeRefs.current.set(id, el);\n } else {\n nodeRefs.current.delete(id);\n }\n }, []);\n\n // Memoised O(1) lookups — rebuilt only when the tree shape / expansion\n // actually changes, not on every keypress (a full re-flatten + `indexOf`/\n // `findNode` walk per arrow key is O(n) on a large tree).\n const visible = useMemo(\n () => (virtualize && flatNodeIds ? flatNodeIds : flattenVisible(nodes, expandedIds)),\n [virtualize, flatNodeIds, nodes, expandedIds],\n );\n const visibleIndexById = useMemo(() => {\n const map = new Map<string, number>();\n visible.forEach((id, i) => map.set(id, i));\n return map;\n }, [visible]);\n const nodeById = useMemo(() => {\n const map = new Map<string, TreeNode<T>>();\n function walk(list: TreeNode<T>[]) {\n for (const node of list) {\n map.set(node.id, node);\n if (node.children?.length) walk(node.children);\n }\n }\n walk(nodes);\n return map;\n }, [nodes]);\n const parentMapMemo = useMemo(() => buildParentMap(nodes), [nodes]);\n\n // Typeahead buffer\n const typeaheadBuffer = useRef<string>(\"\");\n const typeaheadTimer = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n // Clear any pending typeahead timer on unmount.\n useEffect(\n () => () => {\n if (typeaheadTimer.current) clearTimeout(typeaheadTimer.current);\n },\n [],\n );\n\n /**\n * Focus the element for `id`. In virtual mode, if the element isn't\n * mounted yet, record it as pending and scroll the virtualizer so the row\n * enters the render window; the Tree's `registerAndFlush` will focus it\n * once the ref fires.\n */\n const setActiveId = useCallback(\n (id: string | null) => {\n setActiveIdState(id);\n if (!id) return;\n\n const el = nodeRefs.current.get(id);\n if (el) {\n el.focus();\n return;\n }\n\n // Element not mounted — happens when it's scrolled out of the virtual window.\n if (virtualize && scrollToVirtualIndex && pendingFocusIdRef) {\n const index = visibleIndexById.get(id) ?? -1;\n if (index >= 0) {\n pendingFocusIdRef.current = id;\n scrollToVirtualIndex(index);\n // The Tree's registerAndFlush will call el.focus() once the row mounts.\n }\n }\n },\n [virtualize, visibleIndexById, pendingFocusIdRef, scrollToVirtualIndex],\n );\n\n const onKeyDown = useCallback(\n (e: React.KeyboardEvent<HTMLElement>) => {\n if (!activeId) return;\n\n const currentIndex = visibleIndexById.get(activeId) ?? -1;\n const currentNode = nodeById.get(activeId);\n const parentMap = parentMapMemo;\n\n const moveTo = (id: string) => {\n e.preventDefault();\n setActiveId(id);\n };\n\n const selectNode = (id: string) => {\n if (selectionMode === \"none\") return;\n const node = nodeById.get(id);\n if (node?.disabled) return;\n if (selectionMode === \"single\") {\n onSelectionChange(new Set([id]));\n } else {\n const next = new Set(selectedIds);\n if (next.has(id)) {\n next.delete(id);\n } else {\n next.add(id);\n }\n onSelectionChange(next);\n }\n };\n\n switch (e.key) {\n case \"ArrowDown\": {\n e.preventDefault();\n const next = visible[currentIndex + 1];\n if (next) moveTo(next);\n break;\n }\n case \"ArrowUp\": {\n e.preventDefault();\n const prev = visible[currentIndex - 1];\n if (prev) moveTo(prev);\n break;\n }\n case \"ArrowRight\": {\n e.preventDefault();\n if (!currentNode) break;\n const expandable = !!(currentNode.children?.length || currentNode.hasChildren);\n if (expandable && !expandedIds.has(activeId)) {\n // expand\n const next = new Set(expandedIds);\n next.add(activeId);\n onExpandedChange(next);\n } else if (expandable && expandedIds.has(activeId)) {\n // move to first child (only if loaded)\n const firstChild = currentNode.children?.[0];\n if (firstChild) moveTo(firstChild.id);\n }\n // leaf: do nothing\n break;\n }\n case \"ArrowLeft\": {\n e.preventDefault();\n if (!currentNode) break;\n const expandable = !!(currentNode.children?.length || currentNode.hasChildren);\n if (expandable && expandedIds.has(activeId)) {\n // collapse\n const next = new Set(expandedIds);\n next.delete(activeId);\n onExpandedChange(next);\n } else {\n // move to parent\n const parentId = parentMap.get(activeId) ?? null;\n if (parentId) moveTo(parentId);\n }\n break;\n }\n case \"Home\": {\n e.preventDefault();\n const first = visible[0];\n if (first) moveTo(first);\n break;\n }\n case \"End\": {\n e.preventDefault();\n const last = visible[visible.length - 1];\n if (last) moveTo(last);\n break;\n }\n case \"Enter\":\n case \" \": {\n e.preventDefault();\n selectNode(activeId);\n break;\n }\n default: {\n // typeahead — single printable characters\n if (e.key.length === 1 && !e.ctrlKey && !e.metaKey && !e.altKey) {\n const char = e.key.toLowerCase();\n typeaheadBuffer.current += char;\n\n if (typeaheadTimer.current) clearTimeout(typeaheadTimer.current);\n typeaheadTimer.current = setTimeout(() => {\n typeaheadBuffer.current = \"\";\n }, 500);\n\n const prefix = typeaheadBuffer.current;\n // find the next visible node (after current) whose label starts with prefix\n const searchList = [\n ...visible.slice(currentIndex + 1),\n ...visible.slice(0, currentIndex + 1),\n ];\n for (const id of searchList) {\n const node = nodeById.get(id);\n if (!node) continue;\n // only string labels are searchable\n if (typeof node.label !== \"string\") continue;\n if (node.label.toLowerCase().startsWith(prefix)) {\n moveTo(id);\n break;\n }\n }\n }\n break;\n }\n }\n },\n [\n activeId,\n visible,\n visibleIndexById,\n nodeById,\n parentMapMemo,\n expandedIds,\n onExpandedChange,\n selectionMode,\n selectedIds,\n onSelectionChange,\n setActiveId,\n ],\n );\n\n return { activeId, setActiveId, registerNodeRef, onKeyDown };\n}\n"],"mappings":"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","names":["visible"]}
|
|
@@ -0,0 +1,266 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
formatColorAsOklch,
|
|
4
|
+
formatLengthAsPx
|
|
5
|
+
} from "./chunk-HCU2JHPH.js";
|
|
6
|
+
import {
|
|
7
|
+
cn
|
|
8
|
+
} from "./chunk-KBNWM27Q.js";
|
|
9
|
+
|
|
10
|
+
// src/components/token-spotlight/token-spotlight.tsx
|
|
11
|
+
import * as React from "react";
|
|
12
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
|
+
var DEFAULT_TOKEN_SPOTLIGHT_LABELS = {
|
|
14
|
+
row: "Design tokens",
|
|
15
|
+
hint: "Highlights every element on this page that uses this token."
|
|
16
|
+
};
|
|
17
|
+
var TOKEN_SPOTLIGHT_SCAN_LIMIT = 2e3;
|
|
18
|
+
var SCAN_CHUNK_SIZE = 150;
|
|
19
|
+
var MARK_CHUNK_SIZE = 40;
|
|
20
|
+
var BORDER_SIDES = ["Top", "Right", "Bottom", "Left"];
|
|
21
|
+
var SVG_PAINTING_ELEMENTS = /* @__PURE__ */ new Set([
|
|
22
|
+
"circle",
|
|
23
|
+
"ellipse",
|
|
24
|
+
"line",
|
|
25
|
+
"path",
|
|
26
|
+
"polygon",
|
|
27
|
+
"polyline",
|
|
28
|
+
"rect",
|
|
29
|
+
"text",
|
|
30
|
+
"textPath",
|
|
31
|
+
"tspan"
|
|
32
|
+
]);
|
|
33
|
+
function hasOwnText(el) {
|
|
34
|
+
for (const node of Array.from(el.childNodes)) {
|
|
35
|
+
if (node.nodeType === 3 && node.nodeValue?.trim()) return true;
|
|
36
|
+
}
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
function consumerOf(el, style, matchValue) {
|
|
40
|
+
if (el instanceof SVGElement) {
|
|
41
|
+
if (!SVG_PAINTING_ELEMENTS.has(el.localName)) return null;
|
|
42
|
+
const paints = style.fill === matchValue || style.stroke === matchValue && parseFloat(style.strokeWidth) > 0;
|
|
43
|
+
return paints ? el.ownerSVGElement ?? el : null;
|
|
44
|
+
}
|
|
45
|
+
if (style.backgroundColor === matchValue) return el;
|
|
46
|
+
for (const side of BORDER_SIDES) {
|
|
47
|
+
if (style[`border${side}Color`] === matchValue && parseFloat(style[`border${side}Width`]) > 0) {
|
|
48
|
+
return el;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (style.color === matchValue && hasOwnText(el)) return el;
|
|
52
|
+
return null;
|
|
53
|
+
}
|
|
54
|
+
function scheduleIdle(callback) {
|
|
55
|
+
const w = window;
|
|
56
|
+
if (typeof w.requestIdleCallback === "function") {
|
|
57
|
+
const handle2 = w.requestIdleCallback(callback, { timeout: 100 });
|
|
58
|
+
return () => w.cancelIdleCallback?.(handle2);
|
|
59
|
+
}
|
|
60
|
+
const handle = window.setTimeout(
|
|
61
|
+
() => callback({ timeRemaining: () => 50, didTimeout: true }),
|
|
62
|
+
0
|
|
63
|
+
);
|
|
64
|
+
return () => window.clearTimeout(handle);
|
|
65
|
+
}
|
|
66
|
+
function resolveTokenMatchValue(token, doc = document) {
|
|
67
|
+
const probe = doc.createElement("span");
|
|
68
|
+
probe.style.cssText = `position:fixed;inset:0;width:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none;background-color:var(${token});`;
|
|
69
|
+
doc.body.appendChild(probe);
|
|
70
|
+
const value = getComputedStyle(probe).backgroundColor;
|
|
71
|
+
doc.body.removeChild(probe);
|
|
72
|
+
return value;
|
|
73
|
+
}
|
|
74
|
+
var supportsCss = (property, value) => typeof CSS !== "undefined" && typeof CSS.supports === "function" && CSS.supports(property, value);
|
|
75
|
+
function probeComputed(host, property, token) {
|
|
76
|
+
const doc = host.ownerDocument;
|
|
77
|
+
const probe = doc.createElement("span");
|
|
78
|
+
probe.style.cssText = `position:fixed;inset:0;height:0;overflow:hidden;visibility:hidden;pointer-events:none;${property}:var(${token});`;
|
|
79
|
+
host.appendChild(probe);
|
|
80
|
+
const value = getComputedStyle(probe).getPropertyValue(property);
|
|
81
|
+
host.removeChild(probe);
|
|
82
|
+
return value;
|
|
83
|
+
}
|
|
84
|
+
function resolveTokenDisplayValue(token, root) {
|
|
85
|
+
const target = root ?? (typeof document === "undefined" ? void 0 : document.documentElement);
|
|
86
|
+
if (!target) return "";
|
|
87
|
+
const raw = getComputedStyle(target).getPropertyValue(token).trim();
|
|
88
|
+
if (!raw) return "";
|
|
89
|
+
const direct = formatColorAsOklch(raw);
|
|
90
|
+
if (direct) return direct;
|
|
91
|
+
const host = target === target.ownerDocument.documentElement ? target.ownerDocument.body : target;
|
|
92
|
+
if (supportsCss("color", raw)) {
|
|
93
|
+
return formatColorAsOklch(probeComputed(host, "color", token)) ?? raw;
|
|
94
|
+
}
|
|
95
|
+
if (supportsCss("width", raw)) {
|
|
96
|
+
return formatLengthAsPx(probeComputed(host, "letter-spacing", token)) ?? raw;
|
|
97
|
+
}
|
|
98
|
+
return raw;
|
|
99
|
+
}
|
|
100
|
+
var isEmptyMatchValue = (value) => value === "" || value === "rgba(0, 0, 0, 0)" || value === "transparent";
|
|
101
|
+
function scanForConsumers(root, matchValue, limit, onDone) {
|
|
102
|
+
if (isEmptyMatchValue(matchValue)) {
|
|
103
|
+
onDone([]);
|
|
104
|
+
return () => {
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
const candidates = Array.from(root.querySelectorAll("*")).slice(0, limit);
|
|
108
|
+
const found = /* @__PURE__ */ new Set();
|
|
109
|
+
let index = 0;
|
|
110
|
+
let cancelled = false;
|
|
111
|
+
let cancelIdle = () => {
|
|
112
|
+
};
|
|
113
|
+
const step = (deadline) => {
|
|
114
|
+
if (cancelled) return;
|
|
115
|
+
let examinedInSlice = 0;
|
|
116
|
+
while (index < candidates.length && examinedInSlice < SCAN_CHUNK_SIZE && (deadline.timeRemaining() > 0 || deadline.didTimeout)) {
|
|
117
|
+
const el = candidates[index++];
|
|
118
|
+
examinedInSlice++;
|
|
119
|
+
if (!(el instanceof HTMLElement) && !(el instanceof SVGElement)) continue;
|
|
120
|
+
const consumer = consumerOf(el, getComputedStyle(el), matchValue);
|
|
121
|
+
if (consumer) found.add(consumer);
|
|
122
|
+
}
|
|
123
|
+
if (index < candidates.length) {
|
|
124
|
+
cancelIdle = scheduleIdle(step);
|
|
125
|
+
} else {
|
|
126
|
+
onDone(Array.from(found));
|
|
127
|
+
}
|
|
128
|
+
};
|
|
129
|
+
cancelIdle = scheduleIdle(step);
|
|
130
|
+
return () => {
|
|
131
|
+
cancelled = true;
|
|
132
|
+
cancelIdle();
|
|
133
|
+
};
|
|
134
|
+
}
|
|
135
|
+
function writeMarksInSlices(elements, name, written) {
|
|
136
|
+
let index = 0;
|
|
137
|
+
let cancelled = false;
|
|
138
|
+
let cancelIdle = () => {
|
|
139
|
+
};
|
|
140
|
+
const step = () => {
|
|
141
|
+
if (cancelled) return;
|
|
142
|
+
const end = Math.min(index + MARK_CHUNK_SIZE, elements.length);
|
|
143
|
+
for (const el of elements.slice(index, end)) {
|
|
144
|
+
el.setAttribute("data-token-consumer", name);
|
|
145
|
+
written.push(el);
|
|
146
|
+
}
|
|
147
|
+
index = end;
|
|
148
|
+
if (index < elements.length) cancelIdle = scheduleIdle(step);
|
|
149
|
+
};
|
|
150
|
+
if (elements.length > 0) cancelIdle = scheduleIdle(step);
|
|
151
|
+
return () => {
|
|
152
|
+
cancelled = true;
|
|
153
|
+
cancelIdle();
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
function useRootAttribute(name) {
|
|
157
|
+
const [value, setValue] = React.useState(
|
|
158
|
+
() => typeof document === "undefined" ? "" : document.documentElement.getAttribute(name) ?? ""
|
|
159
|
+
);
|
|
160
|
+
React.useEffect(() => {
|
|
161
|
+
if (typeof MutationObserver === "undefined") return;
|
|
162
|
+
const root = document.documentElement;
|
|
163
|
+
const observer = new MutationObserver(() => {
|
|
164
|
+
setValue(root.getAttribute(name) ?? "");
|
|
165
|
+
});
|
|
166
|
+
observer.observe(root, { attributes: true, attributeFilter: [name] });
|
|
167
|
+
return () => observer.disconnect();
|
|
168
|
+
}, [name]);
|
|
169
|
+
return value;
|
|
170
|
+
}
|
|
171
|
+
var TokenSpotlight = React.forwardRef(
|
|
172
|
+
function TokenSpotlight2({
|
|
173
|
+
tokens,
|
|
174
|
+
onSpotlight,
|
|
175
|
+
scanLimit = TOKEN_SPOTLIGHT_SCAN_LIMIT,
|
|
176
|
+
labels: labelsProp,
|
|
177
|
+
className,
|
|
178
|
+
...props
|
|
179
|
+
}, ref) {
|
|
180
|
+
const labels = { ...DEFAULT_TOKEN_SPOTLIGHT_LABELS, ...labelsProp };
|
|
181
|
+
const theme = useRootAttribute("data-theme");
|
|
182
|
+
const decoration = useRootAttribute("data-decoration");
|
|
183
|
+
const [active, setActive] = React.useState(null);
|
|
184
|
+
const consumersRef = React.useRef([]);
|
|
185
|
+
const [displayValues, setDisplayValues] = React.useState({});
|
|
186
|
+
React.useEffect(() => {
|
|
187
|
+
const next = {};
|
|
188
|
+
for (const { token } of tokens) next[token] = resolveTokenDisplayValue(token);
|
|
189
|
+
setDisplayValues(next);
|
|
190
|
+
}, [theme, decoration, tokens]);
|
|
191
|
+
const clearConsumers = React.useCallback(() => {
|
|
192
|
+
for (const el of consumersRef.current) el.removeAttribute("data-token-consumer");
|
|
193
|
+
consumersRef.current = [];
|
|
194
|
+
}, []);
|
|
195
|
+
React.useEffect(() => {
|
|
196
|
+
const root = document.documentElement;
|
|
197
|
+
if (!active) {
|
|
198
|
+
delete root.dataset.tokenSpotlight;
|
|
199
|
+
clearConsumers();
|
|
200
|
+
onSpotlight?.(null);
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const bareToken = active.replace(/^--/, "");
|
|
204
|
+
root.dataset.tokenSpotlight = bareToken;
|
|
205
|
+
onSpotlight?.(active);
|
|
206
|
+
const matchValue = resolveTokenMatchValue(active);
|
|
207
|
+
let cancelMarks = () => {
|
|
208
|
+
};
|
|
209
|
+
const cancelScan = scanForConsumers(document.body, matchValue, scanLimit, (elements) => {
|
|
210
|
+
clearConsumers();
|
|
211
|
+
cancelMarks = writeMarksInSlices(elements, bareToken, consumersRef.current);
|
|
212
|
+
});
|
|
213
|
+
return () => {
|
|
214
|
+
cancelScan();
|
|
215
|
+
cancelMarks();
|
|
216
|
+
clearConsumers();
|
|
217
|
+
delete root.dataset.tokenSpotlight;
|
|
218
|
+
};
|
|
219
|
+
}, [active, theme, scanLimit]);
|
|
220
|
+
return /* @__PURE__ */ jsx(
|
|
221
|
+
"div",
|
|
222
|
+
{
|
|
223
|
+
ref,
|
|
224
|
+
role: "group",
|
|
225
|
+
"aria-label": labels.row,
|
|
226
|
+
"data-slot": "token-spotlight",
|
|
227
|
+
className: cn("flex flex-wrap items-center gap-2", className),
|
|
228
|
+
...props,
|
|
229
|
+
children: tokens.map(({ token, label }) => /* @__PURE__ */ jsxs(
|
|
230
|
+
"button",
|
|
231
|
+
{
|
|
232
|
+
type: "button",
|
|
233
|
+
"data-slot": "token-spotlight-chip",
|
|
234
|
+
"data-active": active === token ? "" : void 0,
|
|
235
|
+
className: cn(
|
|
236
|
+
"focus-ring inline-flex items-center gap-1.5 rounded-full border px-2.5 py-1 text-meta font-medium",
|
|
237
|
+
"bg-card text-foreground transition-colors",
|
|
238
|
+
active === token ? "border-ring" : "border-border-strong"
|
|
239
|
+
),
|
|
240
|
+
onMouseEnter: () => setActive(token),
|
|
241
|
+
onMouseLeave: () => setActive((current) => current === token ? null : current),
|
|
242
|
+
onFocus: () => setActive(token),
|
|
243
|
+
onBlur: () => setActive((current) => current === token ? null : current),
|
|
244
|
+
children: [
|
|
245
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "font-mono text-code", children: token }),
|
|
246
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: displayValues[token] || "\u2014" }),
|
|
247
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: ` \u2014 ${label}. ${labels.hint}` })
|
|
248
|
+
]
|
|
249
|
+
},
|
|
250
|
+
token
|
|
251
|
+
))
|
|
252
|
+
}
|
|
253
|
+
);
|
|
254
|
+
}
|
|
255
|
+
);
|
|
256
|
+
TokenSpotlight.displayName = "TokenSpotlight";
|
|
257
|
+
|
|
258
|
+
export {
|
|
259
|
+
DEFAULT_TOKEN_SPOTLIGHT_LABELS,
|
|
260
|
+
TOKEN_SPOTLIGHT_SCAN_LIMIT,
|
|
261
|
+
resolveTokenMatchValue,
|
|
262
|
+
resolveTokenDisplayValue,
|
|
263
|
+
scanForConsumers,
|
|
264
|
+
TokenSpotlight
|
|
265
|
+
};
|
|
266
|
+
//# sourceMappingURL=chunk-ZNFHDBUW.js.map
|