@elabs-ai/components-ui 4.2.0 → 5.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/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-2DFB4YTK.js +55 -0
- package/dist/chunk-2DFB4YTK.js.map +1 -0
- package/dist/chunk-2SBYBN45.js +2 -0
- package/dist/chunk-2SBYBN45.js.map +1 -0
- package/dist/chunk-2ZMPAD6C.js +357 -0
- package/dist/chunk-2ZMPAD6C.js.map +1 -0
- package/dist/chunk-36SY7TID.js +36 -0
- package/dist/chunk-36SY7TID.js.map +1 -0
- package/dist/chunk-36VULFFV.js +2 -0
- package/dist/chunk-36VULFFV.js.map +1 -0
- package/dist/chunk-3BZBNDRP.js +123 -0
- package/dist/chunk-3BZBNDRP.js.map +1 -0
- package/dist/chunk-3DJ4KY3U.js +82 -0
- package/dist/chunk-3DJ4KY3U.js.map +1 -0
- package/dist/chunk-3EDNWHWD.js +125 -0
- package/dist/chunk-3EDNWHWD.js.map +1 -0
- package/dist/chunk-3JAEQNCB.js +60 -0
- package/dist/chunk-3JAEQNCB.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-3ZR5PMKB.js +41 -0
- package/dist/chunk-3ZR5PMKB.js.map +1 -0
- package/dist/chunk-45ICJ3EV.js +2 -0
- package/dist/chunk-45ICJ3EV.js.map +1 -0
- package/dist/chunk-47YSHR3H.js +77 -0
- package/dist/chunk-47YSHR3H.js.map +1 -0
- package/dist/chunk-4ACT7RLU.js +2 -0
- package/dist/chunk-4ACT7RLU.js.map +1 -0
- package/dist/chunk-4B2E4OCZ.js +44 -0
- package/dist/chunk-4B2E4OCZ.js.map +1 -0
- package/dist/chunk-4C4D6T5M.js +229 -0
- package/dist/chunk-4C4D6T5M.js.map +1 -0
- package/dist/chunk-4DWIMWR5.js +726 -0
- package/dist/chunk-4DWIMWR5.js.map +1 -0
- package/dist/chunk-4DZGAY6R.js +140 -0
- package/dist/chunk-4DZGAY6R.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-4NSCLIES.js +126 -0
- package/dist/chunk-4NSCLIES.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-4VCU3GFI.js +23 -0
- package/dist/chunk-4VCU3GFI.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-545HI223.js +2 -0
- package/dist/chunk-545HI223.js.map +1 -0
- package/dist/chunk-55BM2IU2.js +186 -0
- package/dist/chunk-55BM2IU2.js.map +1 -0
- package/dist/chunk-5C5W52O2.js +27 -0
- package/dist/chunk-5C5W52O2.js.map +1 -0
- package/dist/chunk-5G2DDMHR.js +2 -0
- package/dist/chunk-5G2DDMHR.js.map +1 -0
- package/dist/chunk-5LCN5Q2L.js +23 -0
- package/dist/chunk-5LCN5Q2L.js.map +1 -0
- package/dist/chunk-5MXQ5CP7.js +93 -0
- package/dist/chunk-5MXQ5CP7.js.map +1 -0
- package/dist/chunk-5P4BSHIG.js +2 -0
- package/dist/chunk-5P4BSHIG.js.map +1 -0
- package/dist/chunk-5SHHIQVA.js +22 -0
- package/dist/chunk-5SHHIQVA.js.map +1 -0
- package/dist/chunk-5YZLOAKR.js +2 -0
- package/dist/chunk-5YZLOAKR.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-6HTZBBTC.js +35 -0
- package/dist/chunk-6HTZBBTC.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-72H7HUTH.js +161 -0
- package/dist/chunk-72H7HUTH.js.map +1 -0
- package/dist/chunk-7KV7H2TW.js +323 -0
- package/dist/chunk-7KV7H2TW.js.map +1 -0
- package/dist/chunk-7WIHVGYL.js +2 -0
- package/dist/chunk-7WIHVGYL.js.map +1 -0
- package/dist/chunk-7Z2RAGOA.js +90 -0
- package/dist/chunk-7Z2RAGOA.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-AE6LFFME.js +201 -0
- package/dist/chunk-AE6LFFME.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-ALNJV4XB.js +218 -0
- package/dist/chunk-ALNJV4XB.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-AXHMQOIZ.js +116 -0
- package/dist/chunk-AXHMQOIZ.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-B3DANITU.js +85 -0
- package/dist/chunk-B3DANITU.js.map +1 -0
- package/dist/chunk-B7FAQKHH.js +87 -0
- package/dist/chunk-B7FAQKHH.js.map +1 -0
- package/dist/chunk-BDOG4YSM.js +989 -0
- package/dist/chunk-BDOG4YSM.js.map +1 -0
- package/dist/chunk-BRL2HMZJ.js +110 -0
- package/dist/chunk-BRL2HMZJ.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-BYFRDLDL.js +246 -0
- package/dist/chunk-BYFRDLDL.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-C2ICCCP5.js +400 -0
- package/dist/chunk-C2ICCCP5.js.map +1 -0
- package/dist/chunk-C5QBV5RE.js +77 -0
- package/dist/chunk-C5QBV5RE.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-CDMJSXCB.js +62 -0
- package/dist/chunk-CDMJSXCB.js.map +1 -0
- package/dist/chunk-CEDK5GM2.js +68 -0
- package/dist/chunk-CEDK5GM2.js.map +1 -0
- package/dist/chunk-CEHCVDYR.js +476 -0
- package/dist/chunk-CEHCVDYR.js.map +1 -0
- package/dist/chunk-CEQ3YKHR.js +35 -0
- package/dist/chunk-CEQ3YKHR.js.map +1 -0
- package/dist/chunk-CEQER4CV.js +2 -0
- package/dist/chunk-CEQER4CV.js.map +1 -0
- package/dist/chunk-CMP4F537.js +190 -0
- package/dist/chunk-CMP4F537.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-CY5ISPFB.js +235 -0
- package/dist/chunk-CY5ISPFB.js.map +1 -0
- package/dist/chunk-CY624JOL.js +2 -0
- package/dist/chunk-CY624JOL.js.map +1 -0
- package/dist/chunk-D53EN4Q6.js +2 -0
- package/dist/chunk-D53EN4Q6.js.map +1 -0
- package/dist/chunk-D5INX2EF.js +50 -0
- package/dist/chunk-D5INX2EF.js.map +1 -0
- package/dist/chunk-DCHYNTHI.js +11 -0
- package/dist/chunk-DCHYNTHI.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-DU6ITAJL.js +2 -0
- package/dist/chunk-DU6ITAJL.js.map +1 -0
- package/dist/chunk-DXC3DTCV.js +256 -0
- package/dist/chunk-DXC3DTCV.js.map +1 -0
- package/dist/chunk-DXDLTYTT.js +2 -0
- package/dist/chunk-DXDLTYTT.js.map +1 -0
- package/dist/chunk-E3GNYOLS.js +26 -0
- package/dist/chunk-E3GNYOLS.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-EBNPVPR7.js +266 -0
- package/dist/chunk-EBNPVPR7.js.map +1 -0
- package/dist/chunk-EDE73Q6Z.js +2 -0
- package/dist/chunk-EDE73Q6Z.js.map +1 -0
- package/dist/chunk-EJ3XWNY3.js +52 -0
- package/dist/chunk-EJ3XWNY3.js.map +1 -0
- package/dist/chunk-EJQYE4MY.js +100 -0
- package/dist/chunk-EJQYE4MY.js.map +1 -0
- package/dist/chunk-ENL3CCZB.js +385 -0
- package/dist/chunk-ENL3CCZB.js.map +1 -0
- package/dist/chunk-EP3U7OQ3.js +18 -0
- package/dist/chunk-EP3U7OQ3.js.map +1 -0
- package/dist/chunk-ERTYAID6.js +101 -0
- package/dist/chunk-ERTYAID6.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-FG3PDWE3.js +31 -0
- package/dist/chunk-FG3PDWE3.js.map +1 -0
- package/dist/chunk-FHDJKH2A.js +2 -0
- package/dist/chunk-FHDJKH2A.js.map +1 -0
- package/dist/chunk-FLCQKC64.js +97 -0
- package/dist/chunk-FLCQKC64.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-FXC64HLD.js +137 -0
- package/dist/chunk-FXC64HLD.js.map +1 -0
- package/dist/chunk-FXWWDMMP.js +55 -0
- package/dist/chunk-FXWWDMMP.js.map +1 -0
- package/dist/chunk-FZEG2R3E.js +30 -0
- package/dist/chunk-FZEG2R3E.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-GMXSCEYN.js +24 -0
- package/dist/chunk-GMXSCEYN.js.map +1 -0
- package/dist/chunk-GTBVTLZJ.js +54 -0
- package/dist/chunk-GTBVTLZJ.js.map +1 -0
- package/dist/chunk-GTDCC4YX.js +197 -0
- package/dist/chunk-GTDCC4YX.js.map +1 -0
- package/dist/chunk-GV6GQXKX.js +176 -0
- package/dist/chunk-GV6GQXKX.js.map +1 -0
- package/dist/chunk-GWHO5ACE.js +637 -0
- package/dist/chunk-GWHO5ACE.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-HF6BGFUV.js +78 -0
- package/dist/chunk-HF6BGFUV.js.map +1 -0
- package/dist/chunk-HHVULJGX.js +2 -0
- package/dist/chunk-HHVULJGX.js.map +1 -0
- package/dist/chunk-HHZJALGA.js +163 -0
- package/dist/chunk-HHZJALGA.js.map +1 -0
- package/dist/chunk-HLMFRCFE.js +2 -0
- package/dist/chunk-HLMFRCFE.js.map +1 -0
- package/dist/chunk-HND6FAMX.js +75 -0
- package/dist/chunk-HND6FAMX.js.map +1 -0
- package/dist/chunk-HNLYRHAU.js +74 -0
- package/dist/chunk-HNLYRHAU.js.map +1 -0
- package/dist/chunk-HPUPDT4Q.js +2 -0
- package/dist/chunk-HPUPDT4Q.js.map +1 -0
- package/dist/chunk-HUIYDDDL.js +189 -0
- package/dist/chunk-HUIYDDDL.js.map +1 -0
- package/dist/chunk-HWVU636Q.js +787 -0
- package/dist/chunk-HWVU636Q.js.map +1 -0
- package/dist/chunk-HXQ4MDCH.js +296 -0
- package/dist/chunk-HXQ4MDCH.js.map +1 -0
- package/dist/chunk-HZPNST7D.js +2 -0
- package/dist/chunk-HZPNST7D.js.map +1 -0
- package/dist/chunk-I3U52BDH.js +36 -0
- package/dist/chunk-I3U52BDH.js.map +1 -0
- package/dist/chunk-I6O6ACCH.js +2 -0
- package/dist/chunk-I6O6ACCH.js.map +1 -0
- package/dist/chunk-IE5GWE72.js +177 -0
- package/dist/chunk-IE5GWE72.js.map +1 -0
- package/dist/chunk-IIY5JRNW.js +93 -0
- package/dist/chunk-IIY5JRNW.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-IUQ474IC.js +2 -0
- package/dist/chunk-IUQ474IC.js.map +1 -0
- package/dist/chunk-IVEDMK5U.js +61 -0
- package/dist/chunk-IVEDMK5U.js.map +1 -0
- package/dist/chunk-IY23F2Y5.js +2 -0
- package/dist/chunk-IY23F2Y5.js.map +1 -0
- package/dist/chunk-JCRBDA66.js +2 -0
- package/dist/chunk-JCRBDA66.js.map +1 -0
- package/dist/chunk-JTY3REOB.js +76 -0
- package/dist/chunk-JTY3REOB.js.map +1 -0
- package/dist/chunk-JVCIAEFT.js +68 -0
- package/dist/chunk-JVCIAEFT.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-K4V2ELUZ.js +36 -0
- package/dist/chunk-K4V2ELUZ.js.map +1 -0
- package/dist/chunk-KAAJL2HA.js +327 -0
- package/dist/chunk-KAAJL2HA.js.map +1 -0
- package/dist/chunk-KBWHHAI3.js +246 -0
- package/dist/chunk-KBWHHAI3.js.map +1 -0
- package/dist/chunk-KK2TIWTF.js +54 -0
- package/dist/chunk-KK2TIWTF.js.map +1 -0
- package/dist/chunk-KPZFLTZ2.js +61 -0
- package/dist/chunk-KPZFLTZ2.js.map +1 -0
- package/dist/chunk-KRVSD4OK.js +2 -0
- package/dist/chunk-KRVSD4OK.js.map +1 -0
- package/dist/chunk-KXYL3CUS.js +74 -0
- package/dist/chunk-KXYL3CUS.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-L5O2O67Y.js +164 -0
- package/dist/chunk-L5O2O67Y.js.map +1 -0
- package/dist/chunk-L66VJIRD.js +2 -0
- package/dist/chunk-L66VJIRD.js.map +1 -0
- package/dist/chunk-L6A3RXCU.js +140 -0
- package/dist/chunk-L6A3RXCU.js.map +1 -0
- package/dist/chunk-LDOCY4SU.js +68 -0
- package/dist/chunk-LDOCY4SU.js.map +1 -0
- package/dist/chunk-LG33MONJ.js +74 -0
- package/dist/chunk-LG33MONJ.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-LLYLDZXC.js +54 -0
- package/dist/chunk-LLYLDZXC.js.map +1 -0
- package/dist/chunk-LMV225AS.js +39 -0
- package/dist/chunk-LMV225AS.js.map +1 -0
- package/dist/chunk-LSYVAOSH.js +2 -0
- package/dist/chunk-LSYVAOSH.js.map +1 -0
- package/dist/chunk-LYVBDMDQ.js +2 -0
- package/dist/chunk-LYVBDMDQ.js.map +1 -0
- package/dist/chunk-M2KNQZUL.js +73 -0
- package/dist/chunk-M2KNQZUL.js.map +1 -0
- package/dist/chunk-M3WSUFD4.js +2 -0
- package/dist/chunk-M3WSUFD4.js.map +1 -0
- package/dist/chunk-M5WPZXBA.js +118 -0
- package/dist/chunk-M5WPZXBA.js.map +1 -0
- package/dist/chunk-MDQYRES4.js +796 -0
- package/dist/chunk-MDQYRES4.js.map +1 -0
- package/dist/chunk-MIXCXZWT.js +2 -0
- package/dist/chunk-MIXCXZWT.js.map +1 -0
- package/dist/chunk-MJAIURHO.js +56 -0
- package/dist/chunk-MJAIURHO.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-MRBDJASL.js +97 -0
- package/dist/chunk-MRBDJASL.js.map +1 -0
- package/dist/chunk-MRWOHWEH.js +2 -0
- package/dist/chunk-MRWOHWEH.js.map +1 -0
- package/dist/chunk-MY5H6D5Y.js +245 -0
- package/dist/chunk-MY5H6D5Y.js.map +1 -0
- package/dist/chunk-MZDL7N52.js +2 -0
- package/dist/chunk-MZDL7N52.js.map +1 -0
- package/dist/chunk-N7PJTMRL.js +2 -0
- package/dist/chunk-N7PJTMRL.js.map +1 -0
- package/dist/chunk-NMGNXW3J.js +98 -0
- package/dist/chunk-NMGNXW3J.js.map +1 -0
- package/dist/chunk-NRNIUM75.js +2 -0
- package/dist/chunk-NRNIUM75.js.map +1 -0
- package/dist/chunk-NRPZ3BH4.js +85 -0
- package/dist/chunk-NRPZ3BH4.js.map +1 -0
- package/dist/chunk-NXCOVGDU.js +100 -0
- package/dist/chunk-NXCOVGDU.js.map +1 -0
- package/dist/chunk-NZUKZRT7.js +201 -0
- package/dist/chunk-NZUKZRT7.js.map +1 -0
- package/dist/chunk-O3JWMB6O.js +20 -0
- package/dist/chunk-O3JWMB6O.js.map +1 -0
- package/dist/chunk-O6V65J5J.js +81 -0
- package/dist/chunk-O6V65J5J.js.map +1 -0
- package/dist/chunk-OEPN373X.js +2 -0
- package/dist/chunk-OEPN373X.js.map +1 -0
- package/dist/chunk-OGTILHKP.js +355 -0
- package/dist/chunk-OGTILHKP.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-OKY7ACZK.js +31 -0
- package/dist/chunk-OKY7ACZK.js.map +1 -0
- package/dist/chunk-ON2E7XHD.js +51 -0
- package/dist/chunk-ON2E7XHD.js.map +1 -0
- package/dist/chunk-OPBSVEMX.js +192 -0
- package/dist/chunk-OPBSVEMX.js.map +1 -0
- package/dist/chunk-OR4NVFPH.js +2 -0
- package/dist/chunk-OR4NVFPH.js.map +1 -0
- package/dist/chunk-OYKS7YHE.js +2 -0
- package/dist/chunk-OYKS7YHE.js.map +1 -0
- package/dist/chunk-PGKQZBLZ.js +55 -0
- package/dist/chunk-PGKQZBLZ.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-PQZD5W3E.js +170 -0
- package/dist/chunk-PQZD5W3E.js.map +1 -0
- package/dist/chunk-PSBNQZB4.js +2 -0
- package/dist/chunk-PSBNQZB4.js.map +1 -0
- package/dist/chunk-PSXUEWUS.js +87 -0
- package/dist/chunk-PSXUEWUS.js.map +1 -0
- package/dist/chunk-PT5P4AAU.js +128 -0
- package/dist/chunk-PT5P4AAU.js.map +1 -0
- package/dist/chunk-PUACHQRH.js +31 -0
- package/dist/chunk-PUACHQRH.js.map +1 -0
- package/dist/chunk-QDJHUNBQ.js +2 -0
- package/dist/chunk-QDJHUNBQ.js.map +1 -0
- package/dist/chunk-QF6UWWDY.js +125 -0
- package/dist/chunk-QF6UWWDY.js.map +1 -0
- package/dist/chunk-QKZX5HDY.js +209 -0
- package/dist/chunk-QKZX5HDY.js.map +1 -0
- package/dist/chunk-QLM3KTAQ.js +100 -0
- package/dist/chunk-QLM3KTAQ.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-R27VUCWR.js +140 -0
- package/dist/chunk-R27VUCWR.js.map +1 -0
- package/dist/chunk-R5JYMCEA.js +2 -0
- package/dist/chunk-R5JYMCEA.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-RFTC5UVB.js +126 -0
- package/dist/chunk-RFTC5UVB.js.map +1 -0
- package/dist/chunk-RHVYRQN4.js +201 -0
- package/dist/chunk-RHVYRQN4.js.map +1 -0
- package/dist/chunk-RHXVQZOW.js +2 -0
- package/dist/chunk-RHXVQZOW.js.map +1 -0
- package/dist/chunk-RIYDAMSQ.js +25 -0
- package/dist/chunk-RIYDAMSQ.js.map +1 -0
- package/dist/chunk-RMSMTLXH.js +2 -0
- package/dist/chunk-RMSMTLXH.js.map +1 -0
- package/dist/chunk-RRYWMYGI.js +14 -0
- package/dist/chunk-RRYWMYGI.js.map +1 -0
- package/dist/chunk-RTHCX2TG.js +59 -0
- package/dist/chunk-RTHCX2TG.js.map +1 -0
- package/dist/chunk-RYPK72YP.js +395 -0
- package/dist/chunk-RYPK72YP.js.map +1 -0
- package/dist/chunk-SCCBEFVK.js +187 -0
- package/dist/chunk-SCCBEFVK.js.map +1 -0
- package/dist/chunk-SEGTBIR4.js +110 -0
- package/dist/chunk-SEGTBIR4.js.map +1 -0
- package/dist/chunk-SGBCLZQF.js +38 -0
- package/dist/chunk-SGBCLZQF.js.map +1 -0
- package/dist/chunk-SLDJYJEG.js +133 -0
- package/dist/chunk-SLDJYJEG.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-SSQG36MH.js +226 -0
- package/dist/chunk-SSQG36MH.js.map +1 -0
- package/dist/chunk-SWQCCR6Q.js +140 -0
- package/dist/chunk-SWQCCR6Q.js.map +1 -0
- package/dist/chunk-T2XEMEN2.js +2 -0
- package/dist/chunk-T2XEMEN2.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-TNOANK34.js +4483 -0
- package/dist/chunk-TNOANK34.js.map +1 -0
- package/dist/chunk-U5BZXNHW.js +80 -0
- package/dist/chunk-U5BZXNHW.js.map +1 -0
- package/dist/chunk-U756JCDK.js +27 -0
- package/dist/chunk-U756JCDK.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-UG2T7LMX.js +198 -0
- package/dist/chunk-UG2T7LMX.js.map +1 -0
- package/dist/chunk-UG5TKXTK.js +2 -0
- package/dist/chunk-UG5TKXTK.js.map +1 -0
- package/dist/chunk-UPGIQXUY.js +24 -0
- package/dist/chunk-UPGIQXUY.js.map +1 -0
- package/dist/chunk-UQPW7INX.js +91 -0
- package/dist/chunk-UQPW7INX.js.map +1 -0
- package/dist/chunk-UQRYTMR7.js +2 -0
- package/dist/chunk-UQRYTMR7.js.map +1 -0
- package/dist/chunk-USI4LB3N.js +2 -0
- package/dist/chunk-USI4LB3N.js.map +1 -0
- package/dist/chunk-UUSOIPM2.js +69 -0
- package/dist/chunk-UUSOIPM2.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-V5QCJHDA.js +173 -0
- package/dist/chunk-V5QCJHDA.js.map +1 -0
- package/dist/chunk-V6U75PIG.js +147 -0
- package/dist/chunk-V6U75PIG.js.map +1 -0
- package/dist/chunk-VC4GKLZL.js +111 -0
- package/dist/chunk-VC4GKLZL.js.map +1 -0
- package/dist/chunk-VFS52GGI.js +2 -0
- package/dist/chunk-VFS52GGI.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-W26KFY35.js +32 -0
- package/dist/chunk-W26KFY35.js.map +1 -0
- package/dist/chunk-W35X6J5P.js +232 -0
- package/dist/chunk-W35X6J5P.js.map +1 -0
- package/dist/chunk-W7I2X6VI.js +2 -0
- package/dist/chunk-W7I2X6VI.js.map +1 -0
- package/dist/chunk-W7OIVERI.js +31 -0
- package/dist/chunk-W7OIVERI.js.map +1 -0
- package/dist/chunk-WEEVXQIM.js +45 -0
- package/dist/chunk-WEEVXQIM.js.map +1 -0
- package/dist/chunk-WEM6XJ7Z.js +75 -0
- package/dist/chunk-WEM6XJ7Z.js.map +1 -0
- package/dist/chunk-WKNOKJA3.js +42 -0
- package/dist/chunk-WKNOKJA3.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-WYENWW3Y.js +2 -0
- package/dist/chunk-WYENWW3Y.js.map +1 -0
- package/dist/chunk-X4FE7UKP.js +2 -0
- package/dist/chunk-X4FE7UKP.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-XYFEQHEM.js +2 -0
- package/dist/chunk-XYFEQHEM.js.map +1 -0
- package/dist/chunk-Y33ZFTMR.js +163 -0
- package/dist/chunk-Y33ZFTMR.js.map +1 -0
- package/dist/chunk-YA2QGLUL.js +32 -0
- package/dist/chunk-YA2QGLUL.js.map +1 -0
- package/dist/chunk-YCFOFNQF.js +28 -0
- package/dist/chunk-YCFOFNQF.js.map +1 -0
- package/dist/chunk-YFGFNFVW.js +59 -0
- package/dist/chunk-YFGFNFVW.js.map +1 -0
- package/dist/chunk-YFKKMDJL.js +35 -0
- package/dist/chunk-YFKKMDJL.js.map +1 -0
- package/dist/chunk-YHVXYOL6.js +80 -0
- package/dist/chunk-YHVXYOL6.js.map +1 -0
- package/dist/chunk-YIFB24WW.js +37 -0
- package/dist/chunk-YIFB24WW.js.map +1 -0
- package/dist/chunk-YK4H7VWM.js +2 -0
- package/dist/chunk-YK4H7VWM.js.map +1 -0
- package/dist/chunk-YMFEBGTU.js +2 -0
- package/dist/chunk-YMFEBGTU.js.map +1 -0
- package/dist/chunk-YUFDC6RW.js +55 -0
- package/dist/chunk-YUFDC6RW.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-ZALGMUSW.js +236 -0
- package/dist/chunk-ZALGMUSW.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-ZFMM2NLA.js +169 -0
- package/dist/chunk-ZFMM2NLA.js.map +1 -0
- package/dist/chunk-ZI2OXD6L.js +244 -0
- package/dist/chunk-ZI2OXD6L.js.map +1 -0
- package/dist/chunk-ZRMF4YAS.js +158 -0
- package/dist/chunk-ZRMF4YAS.js.map +1 -0
- package/dist/chunk-ZSYT5H6U.js +178 -0
- package/dist/chunk-ZSYT5H6U.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/drafting-marks/drafting-marks.js +14 -0
- package/dist/components/drafting-marks/drafting-marks.js.map +1 -0
- package/dist/components/drafting-marks/index.js +15 -0
- package/dist/components/drafting-marks/index.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 +1312 -119
- package/dist/index.js +1002 -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 +30 -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 +13 -6
- 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/drafting-marks/drafting-marks.stories.tsx +88 -0
- package/src/components/drafting-marks/drafting-marks.test.tsx +55 -0
- package/src/components/drafting-marks/drafting-marks.tsx +120 -0
- package/src/components/drafting-marks/index.ts +7 -0
- 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.stories.tsx +23 -0
- package/src/components/section-header/section-header.tsx +27 -9
- 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 +40 -8
- 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 +243 -2
- package/src/index.ts +47 -0
- package/src/lib/cn.test.ts +49 -0
- package/src/lib/cn.ts +39 -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,395 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Progress
|
|
4
|
+
} from "./chunk-HND6FAMX.js";
|
|
5
|
+
import {
|
|
6
|
+
useLocale
|
|
7
|
+
} from "./chunk-EJQYE4MY.js";
|
|
8
|
+
import {
|
|
9
|
+
Button
|
|
10
|
+
} from "./chunk-C5QBV5RE.js";
|
|
11
|
+
import {
|
|
12
|
+
cn
|
|
13
|
+
} from "./chunk-FXWWDMMP.js";
|
|
14
|
+
|
|
15
|
+
// src/components/file-upload/file-upload.tsx
|
|
16
|
+
import {
|
|
17
|
+
createContext,
|
|
18
|
+
forwardRef,
|
|
19
|
+
use,
|
|
20
|
+
useCallback,
|
|
21
|
+
useId,
|
|
22
|
+
useMemo,
|
|
23
|
+
useRef,
|
|
24
|
+
useState
|
|
25
|
+
} from "react";
|
|
26
|
+
import { X, Upload, FileIcon, CheckCircle2, AlertCircle } from "lucide-react";
|
|
27
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
28
|
+
function fileMatchesAccept(file, accept) {
|
|
29
|
+
if (!accept) return true;
|
|
30
|
+
const patterns = accept.split(",").map((p) => p.trim().toLowerCase()).filter(Boolean);
|
|
31
|
+
if (patterns.length === 0) return true;
|
|
32
|
+
const name = file.name.toLowerCase();
|
|
33
|
+
const type = file.type.toLowerCase();
|
|
34
|
+
return patterns.some((pattern) => {
|
|
35
|
+
if (pattern.startsWith(".")) return name.endsWith(pattern);
|
|
36
|
+
if (pattern.endsWith("/*")) return type.startsWith(pattern.slice(0, -1));
|
|
37
|
+
return type === pattern;
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
function makeUploadFileId(file) {
|
|
41
|
+
return `${file.name}-${Date.now()}-${Math.random()}`;
|
|
42
|
+
}
|
|
43
|
+
function describeFileRejection(rejection) {
|
|
44
|
+
switch (rejection.reason) {
|
|
45
|
+
case "accept":
|
|
46
|
+
return `${rejection.file.name} is not an accepted file type.`;
|
|
47
|
+
case "maxSize":
|
|
48
|
+
return `${rejection.file.name} is too large.`;
|
|
49
|
+
case "maxFiles":
|
|
50
|
+
return `${rejection.file.name} was not added \u2014 the file limit was reached.`;
|
|
51
|
+
case "multiple":
|
|
52
|
+
return `${rejection.file.name} was not added \u2014 only one file is allowed.`;
|
|
53
|
+
default:
|
|
54
|
+
return `${rejection.file.name} was not added.`;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
var FileUploadContext = createContext(null);
|
|
58
|
+
function useFileUpload() {
|
|
59
|
+
const ctx = use(FileUploadContext);
|
|
60
|
+
if (!ctx) throw new Error("FileUpload subcomponents must be used inside <FileUpload>.");
|
|
61
|
+
return ctx;
|
|
62
|
+
}
|
|
63
|
+
var FileUpload = forwardRef(function FileUpload2({
|
|
64
|
+
files: filesProp,
|
|
65
|
+
onFilesChange,
|
|
66
|
+
onFilesRejected,
|
|
67
|
+
accept,
|
|
68
|
+
multiple = false,
|
|
69
|
+
maxSize,
|
|
70
|
+
maxFiles,
|
|
71
|
+
disabled = false,
|
|
72
|
+
className,
|
|
73
|
+
children,
|
|
74
|
+
...props
|
|
75
|
+
}, ref) {
|
|
76
|
+
const isControlled = filesProp !== void 0;
|
|
77
|
+
const [internalFiles, setInternalFiles] = useState([]);
|
|
78
|
+
const [isDragging, setIsDragging] = useState(false);
|
|
79
|
+
const inputRef = useRef(null);
|
|
80
|
+
const inputId = useId();
|
|
81
|
+
const files = useMemo(
|
|
82
|
+
() => isControlled ? filesProp ?? [] : internalFiles,
|
|
83
|
+
[isControlled, filesProp, internalFiles]
|
|
84
|
+
);
|
|
85
|
+
const commit = useCallback(
|
|
86
|
+
(next) => {
|
|
87
|
+
if (!isControlled) setInternalFiles(next);
|
|
88
|
+
onFilesChange?.(next);
|
|
89
|
+
},
|
|
90
|
+
[isControlled, onFilesChange]
|
|
91
|
+
);
|
|
92
|
+
const addFiles = useCallback(
|
|
93
|
+
(incoming) => {
|
|
94
|
+
const rejections = [];
|
|
95
|
+
let candidates = incoming;
|
|
96
|
+
if (!multiple && candidates.length > 1) {
|
|
97
|
+
rejections.push(
|
|
98
|
+
...candidates.slice(1).map((file) => ({ file, reason: "multiple" }))
|
|
99
|
+
);
|
|
100
|
+
candidates = candidates.slice(0, 1);
|
|
101
|
+
}
|
|
102
|
+
const toAdd = [];
|
|
103
|
+
for (const f of candidates) {
|
|
104
|
+
if (!fileMatchesAccept(f, accept)) {
|
|
105
|
+
rejections.push({ file: f, reason: "accept" });
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
if (maxSize && f.size > maxSize) {
|
|
109
|
+
rejections.push({ file: f, reason: "maxSize" });
|
|
110
|
+
continue;
|
|
111
|
+
}
|
|
112
|
+
toAdd.push(f);
|
|
113
|
+
}
|
|
114
|
+
const next = [...files];
|
|
115
|
+
for (const f of toAdd) {
|
|
116
|
+
if (maxFiles && next.length >= maxFiles) {
|
|
117
|
+
rejections.push({ file: f, reason: "maxFiles" });
|
|
118
|
+
continue;
|
|
119
|
+
}
|
|
120
|
+
next.push({ id: makeUploadFileId(f), file: f });
|
|
121
|
+
}
|
|
122
|
+
commit(next);
|
|
123
|
+
if (rejections.length > 0) onFilesRejected?.(rejections);
|
|
124
|
+
},
|
|
125
|
+
[files, accept, multiple, maxSize, maxFiles, commit, onFilesRejected]
|
|
126
|
+
);
|
|
127
|
+
const removeFile = useCallback(
|
|
128
|
+
(id) => {
|
|
129
|
+
commit(files.filter((f) => f.id !== id));
|
|
130
|
+
},
|
|
131
|
+
[files, commit]
|
|
132
|
+
);
|
|
133
|
+
const openPicker = useCallback(() => {
|
|
134
|
+
inputRef.current?.click();
|
|
135
|
+
}, []);
|
|
136
|
+
const handleInputChange = useCallback(
|
|
137
|
+
(e) => {
|
|
138
|
+
if (e.target.files) {
|
|
139
|
+
addFiles(Array.from(e.target.files));
|
|
140
|
+
e.target.value = "";
|
|
141
|
+
}
|
|
142
|
+
},
|
|
143
|
+
[addFiles]
|
|
144
|
+
);
|
|
145
|
+
const ctx = useMemo(
|
|
146
|
+
() => ({
|
|
147
|
+
files,
|
|
148
|
+
addFiles,
|
|
149
|
+
removeFile,
|
|
150
|
+
isDragging,
|
|
151
|
+
openPicker,
|
|
152
|
+
accept,
|
|
153
|
+
multiple,
|
|
154
|
+
maxSize,
|
|
155
|
+
maxFiles,
|
|
156
|
+
disabled,
|
|
157
|
+
inputId
|
|
158
|
+
}),
|
|
159
|
+
[
|
|
160
|
+
files,
|
|
161
|
+
addFiles,
|
|
162
|
+
removeFile,
|
|
163
|
+
isDragging,
|
|
164
|
+
openPicker,
|
|
165
|
+
accept,
|
|
166
|
+
multiple,
|
|
167
|
+
maxSize,
|
|
168
|
+
maxFiles,
|
|
169
|
+
disabled,
|
|
170
|
+
inputId
|
|
171
|
+
]
|
|
172
|
+
);
|
|
173
|
+
return /* @__PURE__ */ jsx(FileUploadContext, { value: ctx, children: /* @__PURE__ */ jsxs(
|
|
174
|
+
"div",
|
|
175
|
+
{
|
|
176
|
+
ref,
|
|
177
|
+
"data-slot": "file-upload",
|
|
178
|
+
"data-disabled": disabled || void 0,
|
|
179
|
+
className: cn("flex flex-col gap-3", className),
|
|
180
|
+
...props,
|
|
181
|
+
children: [
|
|
182
|
+
/* @__PURE__ */ jsx(
|
|
183
|
+
"input",
|
|
184
|
+
{
|
|
185
|
+
ref: inputRef,
|
|
186
|
+
id: inputId,
|
|
187
|
+
type: "file",
|
|
188
|
+
accept,
|
|
189
|
+
multiple,
|
|
190
|
+
disabled,
|
|
191
|
+
"aria-hidden": "true",
|
|
192
|
+
tabIndex: -1,
|
|
193
|
+
className: "sr-only",
|
|
194
|
+
onChange: handleInputChange
|
|
195
|
+
}
|
|
196
|
+
),
|
|
197
|
+
/* @__PURE__ */ jsx(
|
|
198
|
+
"div",
|
|
199
|
+
{
|
|
200
|
+
onDragEnter: () => {
|
|
201
|
+
if (!disabled) setIsDragging(true);
|
|
202
|
+
},
|
|
203
|
+
onDragLeave: (e) => {
|
|
204
|
+
if (!e.currentTarget.contains(e.relatedTarget)) {
|
|
205
|
+
setIsDragging(false);
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
onDragOver: (e) => {
|
|
209
|
+
e.preventDefault();
|
|
210
|
+
},
|
|
211
|
+
onDrop: (e) => {
|
|
212
|
+
e.preventDefault();
|
|
213
|
+
setIsDragging(false);
|
|
214
|
+
if (!disabled && e.dataTransfer.files.length > 0) {
|
|
215
|
+
addFiles(Array.from(e.dataTransfer.files));
|
|
216
|
+
}
|
|
217
|
+
},
|
|
218
|
+
className: "contents",
|
|
219
|
+
children
|
|
220
|
+
}
|
|
221
|
+
)
|
|
222
|
+
]
|
|
223
|
+
}
|
|
224
|
+
) });
|
|
225
|
+
});
|
|
226
|
+
var FileUploadDropzone = forwardRef(
|
|
227
|
+
function FileUploadDropzone2({ className, children, browseLabel, onClick, onKeyDown, ...props }, ref) {
|
|
228
|
+
const { isDragging, disabled, openPicker } = useFileUpload();
|
|
229
|
+
const { t } = useLocale();
|
|
230
|
+
const resolvedBrowseLabel = browseLabel ?? t("ui.fileUpload.browseFiles");
|
|
231
|
+
const isSelfControl = children != null;
|
|
232
|
+
return /* @__PURE__ */ jsx(
|
|
233
|
+
"div",
|
|
234
|
+
{
|
|
235
|
+
ref,
|
|
236
|
+
role: isSelfControl ? "button" : void 0,
|
|
237
|
+
tabIndex: isSelfControl && !disabled ? 0 : void 0,
|
|
238
|
+
"aria-disabled": disabled || void 0,
|
|
239
|
+
onClick: (e) => {
|
|
240
|
+
onClick?.(e);
|
|
241
|
+
if (disabled || e.defaultPrevented) return;
|
|
242
|
+
openPicker();
|
|
243
|
+
},
|
|
244
|
+
onKeyDown: (e) => {
|
|
245
|
+
onKeyDown?.(e);
|
|
246
|
+
if (!isSelfControl || disabled || e.defaultPrevented) return;
|
|
247
|
+
if (e.target !== e.currentTarget) return;
|
|
248
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
249
|
+
e.preventDefault();
|
|
250
|
+
openPicker();
|
|
251
|
+
}
|
|
252
|
+
},
|
|
253
|
+
"data-slot": "file-upload-dropzone",
|
|
254
|
+
"data-dragging": isDragging || void 0,
|
|
255
|
+
"data-disabled": disabled || void 0,
|
|
256
|
+
className: cn(
|
|
257
|
+
"flex flex-col items-center justify-center gap-3 rounded-lg border-2 border-dashed border-border-strong bg-surface-muted px-6 py-10",
|
|
258
|
+
"cursor-pointer transition-colors duration-fast",
|
|
259
|
+
"hover:border-ring hover:bg-accent/50",
|
|
260
|
+
"data-[dragging]:border-primary data-[dragging]:bg-primary/5",
|
|
261
|
+
"data-[disabled]:pointer-events-none data-[disabled]:opacity-50",
|
|
262
|
+
"focus-ring-within focus-within:ring-offset-2 focus-within:ring-offset-background",
|
|
263
|
+
className
|
|
264
|
+
),
|
|
265
|
+
...props,
|
|
266
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
267
|
+
/* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-muted", children: /* @__PURE__ */ jsx(Upload, { className: "size-5 text-muted-foreground", "aria-hidden": "true" }) }),
|
|
268
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1 text-center", children: [
|
|
269
|
+
/* @__PURE__ */ jsx("p", { className: "text-body font-medium text-foreground", children: t("ui.fileUpload.dragDropHere") }),
|
|
270
|
+
/* @__PURE__ */ jsxs("p", { className: "text-meta text-muted-foreground", children: [
|
|
271
|
+
"or",
|
|
272
|
+
" ",
|
|
273
|
+
/* @__PURE__ */ jsx(
|
|
274
|
+
"button",
|
|
275
|
+
{
|
|
276
|
+
type: "button",
|
|
277
|
+
disabled,
|
|
278
|
+
onClick: (e) => {
|
|
279
|
+
e.stopPropagation();
|
|
280
|
+
openPicker();
|
|
281
|
+
},
|
|
282
|
+
className: cn(
|
|
283
|
+
// #399 — inline text trigger inside a sentence → `-text` rung.
|
|
284
|
+
"text-primary-text underline-offset-2 hover:underline focus-ring rounded-sm",
|
|
285
|
+
// #322 — the dropzone's `focus-ring-within` (above) is the
|
|
286
|
+
// one compound indicator for this composite control; this
|
|
287
|
+
// button delegates rather than painting a second one.
|
|
288
|
+
"focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0",
|
|
289
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
290
|
+
),
|
|
291
|
+
children: resolvedBrowseLabel
|
|
292
|
+
}
|
|
293
|
+
)
|
|
294
|
+
] })
|
|
295
|
+
] })
|
|
296
|
+
] })
|
|
297
|
+
}
|
|
298
|
+
);
|
|
299
|
+
}
|
|
300
|
+
);
|
|
301
|
+
var FileUploadList = forwardRef(
|
|
302
|
+
function FileUploadList2({ className, children, ...props }, ref) {
|
|
303
|
+
const { files } = useFileUpload();
|
|
304
|
+
const { t } = useLocale();
|
|
305
|
+
if (files.length === 0 && !children) return null;
|
|
306
|
+
return (
|
|
307
|
+
// `aria-live="polite"` alone is enough to announce additions/removals —
|
|
308
|
+
// it does NOT require `role="status"`. Adding that role here used to
|
|
309
|
+
// override the `<ul>`'s implicit `list` role, which strips the
|
|
310
|
+
// `listitem` role from every `<FileUploadItem>` (`<li>`) inside it and
|
|
311
|
+
// fails axe's `listitem` rule the moment the list is non-empty.
|
|
312
|
+
/* @__PURE__ */ jsx(
|
|
313
|
+
"ul",
|
|
314
|
+
{
|
|
315
|
+
ref,
|
|
316
|
+
"aria-live": "polite",
|
|
317
|
+
"aria-label": t("ui.fileUpload.selectedFiles"),
|
|
318
|
+
"data-slot": "file-upload-list",
|
|
319
|
+
className: cn("flex flex-col gap-2", className),
|
|
320
|
+
...props,
|
|
321
|
+
children
|
|
322
|
+
}
|
|
323
|
+
)
|
|
324
|
+
);
|
|
325
|
+
}
|
|
326
|
+
);
|
|
327
|
+
var statusIcon = {
|
|
328
|
+
pending: /* @__PURE__ */ jsx(FileIcon, { className: "size-4 text-muted-foreground", "aria-hidden": "true" }),
|
|
329
|
+
uploading: /* @__PURE__ */ jsx(FileIcon, { className: "size-4 text-primary", "aria-hidden": "true" }),
|
|
330
|
+
success: /* @__PURE__ */ jsx(CheckCircle2, { className: "size-4 text-success", "aria-hidden": "true" }),
|
|
331
|
+
error: /* @__PURE__ */ jsx(AlertCircle, { className: "size-4 text-destructive", "aria-hidden": "true" })
|
|
332
|
+
};
|
|
333
|
+
var FileUploadItem = forwardRef(
|
|
334
|
+
function FileUploadItem2({ uploadFile, progress, status = "pending", errorMessage, className, ...props }, ref) {
|
|
335
|
+
const { removeFile, disabled } = useFileUpload();
|
|
336
|
+
const resolvedProgress = progress ?? uploadFile.progress;
|
|
337
|
+
const resolvedStatus = status ?? uploadFile.status ?? "pending";
|
|
338
|
+
const resolvedError = errorMessage ?? uploadFile.errorMessage;
|
|
339
|
+
const isUploading = resolvedStatus === "uploading";
|
|
340
|
+
const isError = resolvedStatus === "error";
|
|
341
|
+
return /* @__PURE__ */ jsxs(
|
|
342
|
+
"li",
|
|
343
|
+
{
|
|
344
|
+
ref,
|
|
345
|
+
"data-slot": "file-upload-item",
|
|
346
|
+
"data-status": resolvedStatus,
|
|
347
|
+
className: cn(
|
|
348
|
+
"flex flex-col gap-1 rounded-md border border-border bg-card px-3 py-2",
|
|
349
|
+
className
|
|
350
|
+
),
|
|
351
|
+
...props,
|
|
352
|
+
children: [
|
|
353
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
354
|
+
statusIcon[resolvedStatus],
|
|
355
|
+
/* @__PURE__ */ jsx("span", { className: "flex-1 min-w-0 truncate text-body text-foreground", children: uploadFile.file.name }),
|
|
356
|
+
/* @__PURE__ */ jsx("span", { className: "shrink-0 text-meta tabular-nums text-muted-foreground", children: formatFileSize(uploadFile.file.size) }),
|
|
357
|
+
/* @__PURE__ */ jsx(
|
|
358
|
+
Button,
|
|
359
|
+
{
|
|
360
|
+
type: "button",
|
|
361
|
+
variant: "ghost",
|
|
362
|
+
size: "icon-sm",
|
|
363
|
+
"aria-label": `Remove ${uploadFile.file.name}`,
|
|
364
|
+
disabled,
|
|
365
|
+
onClick: () => removeFile(uploadFile.id),
|
|
366
|
+
className: "shrink-0",
|
|
367
|
+
children: /* @__PURE__ */ jsx(X, { className: "size-4", "aria-hidden": "true" })
|
|
368
|
+
}
|
|
369
|
+
)
|
|
370
|
+
] }),
|
|
371
|
+
isUploading && resolvedProgress !== void 0 && /* @__PURE__ */ jsx(Progress, { value: resolvedProgress, className: "h-1" }),
|
|
372
|
+
isError && resolvedError && // #124: this is running text (the rejection reason), so it takes the
|
|
373
|
+
// >=4.5:1 ink rung `text-destructive-text` — not the 3:1 mark rung the
|
|
374
|
+
// `statusIcon.error` glyph above correctly keeps.
|
|
375
|
+
/* @__PURE__ */ jsx("p", { role: "alert", className: "text-meta text-destructive-text", children: resolvedError })
|
|
376
|
+
]
|
|
377
|
+
}
|
|
378
|
+
);
|
|
379
|
+
}
|
|
380
|
+
);
|
|
381
|
+
function formatFileSize(bytes) {
|
|
382
|
+
if (bytes < 1024) return `${bytes}\xA0B`;
|
|
383
|
+
if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}\xA0KB`;
|
|
384
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)}\xA0MB`;
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
export {
|
|
388
|
+
describeFileRejection,
|
|
389
|
+
useFileUpload,
|
|
390
|
+
FileUpload,
|
|
391
|
+
FileUploadDropzone,
|
|
392
|
+
FileUploadList,
|
|
393
|
+
FileUploadItem
|
|
394
|
+
};
|
|
395
|
+
//# sourceMappingURL=chunk-RYPK72YP.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/file-upload/file-upload.tsx"],"sourcesContent":["\"use client\";\n// a2ui.exposed: no\n\nimport {\n createContext,\n forwardRef,\n use,\n useCallback,\n useId,\n useMemo,\n useRef,\n useState,\n type ChangeEvent,\n type DragEvent,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { X, Upload, FileIcon, CheckCircle2, AlertCircle } from \"lucide-react\";\nimport { cn } from \"../../lib/cn\";\nimport { Button } from \"../button\";\nimport { useLocale } from \"../locale-provider\";\nimport { Progress } from \"../progress\";\n\n// ---------------------------------------------------------------------------\n// Types\n// ---------------------------------------------------------------------------\n\nexport type FileUploadStatus = \"pending\" | \"uploading\" | \"success\" | \"error\";\n\nexport interface UploadFile {\n /** Unique identifier for this file in the list. */\n id: string;\n /** The underlying File object. */\n file: File;\n /** Upload progress 0–100. */\n progress?: number;\n /** Upload lifecycle status. */\n status?: FileUploadStatus;\n /** Error message shown when status is \"error\". */\n errorMessage?: string;\n}\n\n/** Why `addFiles` (picker OR drag-and-drop) declined a file. */\nexport type FileRejectionReason = \"accept\" | \"maxSize\" | \"maxFiles\" | \"multiple\";\n\nexport interface FileRejection {\n file: File;\n reason: FileRejectionReason;\n}\n\n/**\n * Match a file against an `<input accept>`-style pattern list (comma-separated\n * extensions like `.png`, exact MIME types like `image/png`, or wildcards like\n * `image/*`). Drag-and-drop delivers files straight from `DataTransfer` — the\n * browser only enforces `accept` for the native picker dialog, never for a\n * drop — so this has to be re-applied by hand for the drop path to actually\n * \"respect `accept`\".\n */\nfunction fileMatchesAccept(file: File, accept: string | undefined): boolean {\n if (!accept) return true;\n const patterns = accept\n .split(\",\")\n .map((p) => p.trim().toLowerCase())\n .filter(Boolean);\n if (patterns.length === 0) return true;\n const name = file.name.toLowerCase();\n const type = file.type.toLowerCase();\n return patterns.some((pattern) => {\n if (pattern.startsWith(\".\")) return name.endsWith(pattern);\n if (pattern.endsWith(\"/*\")) return type.startsWith(pattern.slice(0, -1));\n return type === pattern;\n });\n}\n\nfunction makeUploadFileId(file: File): string {\n return `${file.name}-${Date.now()}-${Math.random()}`;\n}\n\n// ---------------------------------------------------------------------------\n// Context\n// ---------------------------------------------------------------------------\n\ninterface FileUploadContextValue {\n files: UploadFile[];\n addFiles: (incoming: File[]) => void;\n removeFile: (id: string) => void;\n isDragging: boolean;\n /** Programmatically open the native file picker. */\n openPicker: () => void;\n accept?: string;\n multiple?: boolean;\n maxSize?: number;\n maxFiles?: number;\n disabled?: boolean;\n inputId: string;\n}\n\n/** Read `accept`/`multiple`/`maxSize`/`maxFiles` off a rejection for a default message. */\nexport function describeFileRejection(rejection: FileRejection): string {\n switch (rejection.reason) {\n case \"accept\":\n return `${rejection.file.name} is not an accepted file type.`;\n case \"maxSize\":\n return `${rejection.file.name} is too large.`;\n case \"maxFiles\":\n return `${rejection.file.name} was not added — the file limit was reached.`;\n case \"multiple\":\n return `${rejection.file.name} was not added — only one file is allowed.`;\n default:\n return `${rejection.file.name} was not added.`;\n }\n}\n\nconst FileUploadContext = createContext<FileUploadContextValue | null>(null);\n\nfunction useFileUpload(): FileUploadContextValue {\n const ctx = use(FileUploadContext);\n if (!ctx) throw new Error(\"FileUpload subcomponents must be used inside <FileUpload>.\");\n return ctx;\n}\n\n// ---------------------------------------------------------------------------\n// Provider (FileUpload root)\n// ---------------------------------------------------------------------------\n\nexport interface FileUploadProps extends HTMLAttributes<HTMLDivElement> {\n /** Controlled file list. */\n files?: UploadFile[];\n /** Called when files are added or removed. */\n onFilesChange?: (files: UploadFile[]) => void;\n /**\n * Called with the files a picker selection OR a drag-and-drop declined —\n * wrong type (`accept`), over `maxSize`, over `maxFiles`, or extra files\n * dropped when `multiple` is false — each with its {@link FileRejectionReason}.\n */\n onFilesRejected?: (rejections: FileRejection[]) => void;\n /** Accepted MIME types / extensions (forwarded to <input accept>). */\n accept?: string;\n /** Allow multiple files at once. */\n multiple?: boolean;\n /** Maximum individual file size in bytes. */\n maxSize?: number;\n /** Maximum number of files in the list at once. */\n maxFiles?: number;\n /** Disable all interactions. */\n disabled?: boolean;\n children?: ReactNode;\n}\n\n/**\n * FileUpload — compound-component root (Provider).\n *\n * Holds the selected-file list + drag state and exposes\n * `{ files, addFiles, removeFile, isDragging }` via context.\n * **Presentational** — the app drives per-item `progress` + `status` on\n * `<FileUploadItem>`. No upload/network logic lives here.\n *\n * Controlled via `files`/`onFilesChange`; uncontrolled by default.\n */\nexport const FileUpload = forwardRef<HTMLDivElement, FileUploadProps>(function FileUpload(\n {\n files: filesProp,\n onFilesChange,\n onFilesRejected,\n accept,\n multiple = false,\n maxSize,\n maxFiles,\n disabled = false,\n className,\n children,\n ...props\n },\n ref,\n) {\n const isControlled = filesProp !== undefined;\n const [internalFiles, setInternalFiles] = useState<UploadFile[]>([]);\n const [isDragging, setIsDragging] = useState(false);\n const inputRef = useRef<HTMLInputElement>(null);\n const inputId = useId();\n\n const files = useMemo(\n () => (isControlled ? (filesProp ?? []) : internalFiles),\n [isControlled, filesProp, internalFiles],\n );\n\n const commit = useCallback(\n (next: UploadFile[]) => {\n if (!isControlled) setInternalFiles(next);\n onFilesChange?.(next);\n },\n [isControlled, onFilesChange],\n );\n\n const addFiles = useCallback(\n (incoming: File[]) => {\n const rejections: FileRejection[] = [];\n\n // A drop can deliver more files than the native picker ever would —\n // `multiple` is only enforced by the browser for the `<input>` dialog,\n // never for `DataTransfer`, so re-apply it here for the drop path too.\n let candidates = incoming;\n if (!multiple && candidates.length > 1) {\n rejections.push(\n ...candidates.slice(1).map((file) => ({ file, reason: \"multiple\" as const })),\n );\n candidates = candidates.slice(0, 1);\n }\n\n const toAdd: File[] = [];\n for (const f of candidates) {\n if (!fileMatchesAccept(f, accept)) {\n rejections.push({ file: f, reason: \"accept\" });\n continue;\n }\n if (maxSize && f.size > maxSize) {\n rejections.push({ file: f, reason: \"maxSize\" });\n continue;\n }\n toAdd.push(f);\n }\n\n const next = [...files];\n for (const f of toAdd) {\n if (maxFiles && next.length >= maxFiles) {\n rejections.push({ file: f, reason: \"maxFiles\" });\n continue;\n }\n next.push({ id: makeUploadFileId(f), file: f });\n }\n\n commit(next);\n if (rejections.length > 0) onFilesRejected?.(rejections);\n },\n [files, accept, multiple, maxSize, maxFiles, commit, onFilesRejected],\n );\n\n const removeFile = useCallback(\n (id: string) => {\n commit(files.filter((f) => f.id !== id));\n },\n [files, commit],\n );\n\n const openPicker = useCallback(() => {\n inputRef.current?.click();\n }, []);\n\n const handleInputChange = useCallback(\n (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files) {\n addFiles(Array.from(e.target.files));\n // Reset so the same file can be re-selected\n e.target.value = \"\";\n }\n },\n [addFiles],\n );\n\n const ctx = useMemo<FileUploadContextValue>(\n () => ({\n files,\n addFiles,\n removeFile,\n isDragging,\n openPicker,\n accept,\n multiple,\n maxSize,\n maxFiles,\n disabled,\n inputId,\n }),\n [\n files,\n addFiles,\n removeFile,\n isDragging,\n openPicker,\n accept,\n multiple,\n maxSize,\n maxFiles,\n disabled,\n inputId,\n ],\n );\n\n return (\n <FileUploadContext value={ctx}>\n <div\n ref={ref}\n data-slot=\"file-upload\"\n data-disabled={disabled || undefined}\n className={cn(\"flex flex-col gap-3\", className)}\n {...props}\n >\n {/* Visually hidden real file input — always present for keyboard users */}\n <input\n ref={inputRef}\n id={inputId}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n disabled={disabled}\n aria-hidden=\"true\"\n tabIndex={-1}\n className=\"sr-only\"\n onChange={handleInputChange}\n />\n {/* Drag state setter lives here so any child drag interaction is captured */}\n <div\n onDragEnter={() => {\n if (!disabled) setIsDragging(true);\n }}\n onDragLeave={(e) => {\n // Only clear dragging when leaving the root container\n if (!e.currentTarget.contains(e.relatedTarget as Node | null)) {\n setIsDragging(false);\n }\n }}\n onDragOver={(e: DragEvent) => {\n e.preventDefault();\n }}\n onDrop={(e: DragEvent) => {\n e.preventDefault();\n setIsDragging(false);\n if (!disabled && e.dataTransfer.files.length > 0) {\n addFiles(Array.from(e.dataTransfer.files));\n }\n }}\n className=\"contents\"\n >\n {children}\n </div>\n </div>\n </FileUploadContext>\n );\n});\n\n// ---------------------------------------------------------------------------\n// FileUploadDropzone\n// ---------------------------------------------------------------------------\n\nexport interface FileUploadDropzoneProps extends HTMLAttributes<HTMLDivElement> {\n /** Label for the default \"Browse files\" button. */\n browseLabel?: string;\n}\n\n/**\n * FileUploadDropzone — the drag-and-drop target.\n *\n * A plain `<div>` drop surface with exactly ONE keyboard-reachable control:\n *\n * - Default content: a real `<button>` (\"Browse files\") is the tab stop; the\n * zone itself carries no role and no tab stop, so nothing interactive is\n * nested inside another interactive element.\n * - Custom `children`: there is no inner button, so the zone itself becomes\n * the control (`role=\"button\"`, a tab stop, Enter/Space). Custom children\n * must then be non-interactive content.\n *\n * A pointer click anywhere on the zone also opens the picker — a mouse\n * convenience on top of the keyboard path above, never the only path.\n */\nexport const FileUploadDropzone = forwardRef<HTMLDivElement, FileUploadDropzoneProps>(\n function FileUploadDropzone(\n { className, children, browseLabel, onClick, onKeyDown, ...props },\n ref,\n ) {\n const { isDragging, disabled, openPicker } = useFileUpload();\n const { t } = useLocale();\n const resolvedBrowseLabel = browseLabel ?? t(\"ui.fileUpload.browseFiles\");\n // With custom children there is no inner button, so the zone owns the\n // one keyboard path itself.\n const isSelfControl = children != null;\n\n return (\n <div\n ref={ref}\n role={isSelfControl ? \"button\" : undefined}\n tabIndex={isSelfControl && !disabled ? 0 : undefined}\n // Also on the default (role-less) zone: it marks the dimmed copy as\n // inactive UI, which WCAG 1.4.3 exempts from contrast — the same\n // exemption a `<label>` of a disabled control gets.\n aria-disabled={disabled || undefined}\n onClick={(e) => {\n onClick?.(e);\n if (disabled || e.defaultPrevented) return;\n openPicker();\n }}\n onKeyDown={(e) => {\n onKeyDown?.(e);\n if (!isSelfControl || disabled || e.defaultPrevented) return;\n if (e.target !== e.currentTarget) return;\n if (e.key === \"Enter\" || e.key === \" \") {\n e.preventDefault();\n openPicker();\n }\n }}\n data-slot=\"file-upload-dropzone\"\n data-dragging={isDragging || undefined}\n data-disabled={disabled || undefined}\n className={cn(\n \"flex flex-col items-center justify-center gap-3 rounded-lg border-2 border-dashed border-border-strong bg-surface-muted px-6 py-10\",\n \"cursor-pointer transition-colors duration-fast\",\n \"hover:border-ring hover:bg-accent/50\",\n \"data-[dragging]:border-primary data-[dragging]:bg-primary/5\",\n \"data-[disabled]:pointer-events-none data-[disabled]:opacity-50\",\n \"focus-ring-within focus-within:ring-offset-2 focus-within:ring-offset-background\",\n className,\n )}\n {...props}\n >\n {children ?? (\n <>\n <div className=\"flex h-12 w-12 items-center justify-center rounded-full bg-muted\">\n <Upload className=\"size-5 text-muted-foreground\" aria-hidden=\"true\" />\n </div>\n <div className=\"flex flex-col items-center gap-1 text-center\">\n <p className=\"text-body font-medium text-foreground\">\n {t(\"ui.fileUpload.dragDropHere\")}\n </p>\n <p className=\"text-meta text-muted-foreground\">\n or{\" \"}\n <button\n type=\"button\"\n disabled={disabled}\n onClick={(e) => {\n // The zone's own click handler opens the picker; stop the\n // bubble so one activation opens it exactly once.\n e.stopPropagation();\n openPicker();\n }}\n className={cn(\n // #399 — inline text trigger inside a sentence → `-text` rung.\n \"text-primary-text underline-offset-2 hover:underline focus-ring rounded-sm\",\n // #322 — the dropzone's `focus-ring-within` (above) is the\n // one compound indicator for this composite control; this\n // button delegates rather than painting a second one.\n \"focus-visible:outline-none focus-visible:ring-0 focus-visible:ring-offset-0\",\n \"disabled:pointer-events-none disabled:opacity-50\",\n )}\n >\n {resolvedBrowseLabel}\n </button>\n </p>\n </div>\n </>\n )}\n </div>\n );\n },\n);\n\n// ---------------------------------------------------------------------------\n// FileUploadList\n// ---------------------------------------------------------------------------\n\nexport type FileUploadListProps = HTMLAttributes<HTMLUListElement>;\n\n/**\n * FileUploadList — the `role=\"status\"` region that lists accepted files.\n * Reads from context; children are `<FileUploadItem>` elements.\n */\nexport const FileUploadList = forwardRef<HTMLUListElement, FileUploadListProps>(\n function FileUploadList({ className, children, ...props }, ref) {\n const { files } = useFileUpload();\n const { t } = useLocale();\n if (files.length === 0 && !children) return null;\n\n return (\n // `aria-live=\"polite\"` alone is enough to announce additions/removals —\n // it does NOT require `role=\"status\"`. Adding that role here used to\n // override the `<ul>`'s implicit `list` role, which strips the\n // `listitem` role from every `<FileUploadItem>` (`<li>`) inside it and\n // fails axe's `listitem` rule the moment the list is non-empty.\n <ul\n ref={ref}\n aria-live=\"polite\"\n aria-label={t(\"ui.fileUpload.selectedFiles\")}\n data-slot=\"file-upload-list\"\n className={cn(\"flex flex-col gap-2\", className)}\n {...props}\n >\n {children}\n </ul>\n );\n },\n);\n\n// ---------------------------------------------------------------------------\n// FileUploadItem\n// ---------------------------------------------------------------------------\n\nexport interface FileUploadItemProps extends HTMLAttributes<HTMLLIElement> {\n /** The UploadFile entry to display. */\n uploadFile: UploadFile;\n /** Upload progress 0–100. Shown only during \"uploading\" status. */\n progress?: number;\n /** Current status of the upload. */\n status?: FileUploadStatus;\n /** Error message (displayed when status=\"error\"). */\n errorMessage?: string;\n}\n\nconst statusIcon: Record<FileUploadStatus, ReactNode> = {\n pending: <FileIcon className=\"size-4 text-muted-foreground\" aria-hidden=\"true\" />,\n uploading: <FileIcon className=\"size-4 text-primary\" aria-hidden=\"true\" />,\n success: <CheckCircle2 className=\"size-4 text-success\" aria-hidden=\"true\" />,\n error: <AlertCircle className=\"size-4 text-destructive\" aria-hidden=\"true\" />,\n};\n\n/**\n * FileUploadItem — a single row in the file list.\n *\n * The app controls `progress` and `status` to drive the upload lifecycle.\n * Per-file errors use `role=\"alert\"`.\n */\nexport const FileUploadItem = forwardRef<HTMLLIElement, FileUploadItemProps>(\n function FileUploadItem(\n { uploadFile, progress, status = \"pending\", errorMessage, className, ...props },\n ref,\n ) {\n const { removeFile, disabled } = useFileUpload();\n const resolvedProgress = progress ?? uploadFile.progress;\n const resolvedStatus = status ?? uploadFile.status ?? \"pending\";\n const resolvedError = errorMessage ?? uploadFile.errorMessage;\n\n const isUploading = resolvedStatus === \"uploading\";\n const isError = resolvedStatus === \"error\";\n\n return (\n <li\n ref={ref}\n data-slot=\"file-upload-item\"\n data-status={resolvedStatus}\n className={cn(\n \"flex flex-col gap-1 rounded-md border border-border bg-card px-3 py-2\",\n className,\n )}\n {...props}\n >\n <div className=\"flex items-center gap-2\">\n {statusIcon[resolvedStatus]}\n <span className=\"flex-1 min-w-0 truncate text-body text-foreground\">\n {uploadFile.file.name}\n </span>\n <span className=\"shrink-0 text-meta tabular-nums text-muted-foreground\">\n {formatFileSize(uploadFile.file.size)}\n </span>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon-sm\"\n aria-label={`Remove ${uploadFile.file.name}`}\n disabled={disabled}\n onClick={() => removeFile(uploadFile.id)}\n className=\"shrink-0\"\n >\n <X className=\"size-4\" aria-hidden=\"true\" />\n </Button>\n </div>\n {isUploading && resolvedProgress !== undefined && (\n <Progress value={resolvedProgress} className=\"h-1\" />\n )}\n {isError && resolvedError && (\n // #124: this is running text (the rejection reason), so it takes the\n // >=4.5:1 ink rung `text-destructive-text` — not the 3:1 mark rung the\n // `statusIcon.error` glyph above correctly keeps.\n <p role=\"alert\" className=\"text-meta text-destructive-text\">\n {resolvedError}\n </p>\n )}\n </li>\n );\n },\n);\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction formatFileSize(bytes: number): string {\n if (bytes < 1024) return `${bytes}\\u00A0B`;\n if (bytes < 1024 * 1024) return `${(bytes / 1024).toFixed(1)}\\u00A0KB`;\n return `${(bytes / (1024 * 1024)).toFixed(1)}\\u00A0MB`;\n}\n\n// ---------------------------------------------------------------------------\n// useFileUpload export (for advanced consumers outside a subpart)\n// ---------------------------------------------------------------------------\nexport { useFileUpload };\n"],"mappings":"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","names":["FileUpload","FileUploadDropzone","FileUploadList","FileUploadItem"]}
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
hasRenderableContent
|
|
4
|
+
} from "./chunk-TAQI4JTE.js";
|
|
5
|
+
import {
|
|
6
|
+
FieldContext,
|
|
7
|
+
useFieldContext
|
|
8
|
+
} from "./chunk-22Z735L6.js";
|
|
9
|
+
import {
|
|
10
|
+
Label
|
|
11
|
+
} from "./chunk-U756JCDK.js";
|
|
12
|
+
import {
|
|
13
|
+
cn
|
|
14
|
+
} from "./chunk-FXWWDMMP.js";
|
|
15
|
+
|
|
16
|
+
// src/components/field/field.tsx
|
|
17
|
+
import {
|
|
18
|
+
cloneElement,
|
|
19
|
+
forwardRef,
|
|
20
|
+
useCallback,
|
|
21
|
+
useId,
|
|
22
|
+
useLayoutEffect,
|
|
23
|
+
useMemo,
|
|
24
|
+
useState
|
|
25
|
+
} from "react";
|
|
26
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
27
|
+
import { jsx } from "react/jsx-runtime";
|
|
28
|
+
var FieldRoot = forwardRef(function FieldRoot2({ invalid = false, required = false, className, children, ...props }, ref) {
|
|
29
|
+
const [descriptionIds, setDescriptionIds] = useState([]);
|
|
30
|
+
const registerDescription = useCallback((descId) => {
|
|
31
|
+
setDescriptionIds((prev) => prev.includes(descId) ? prev : [...prev, descId]);
|
|
32
|
+
}, []);
|
|
33
|
+
const unregisterDescription = useCallback((descId) => {
|
|
34
|
+
setDescriptionIds((prev) => prev.includes(descId) ? prev.filter((x) => x !== descId) : prev);
|
|
35
|
+
}, []);
|
|
36
|
+
const [errorIds, setErrorIds] = useState([]);
|
|
37
|
+
const registerError = useCallback((errId) => {
|
|
38
|
+
setErrorIds((prev) => prev.includes(errId) ? prev : [...prev, errId]);
|
|
39
|
+
}, []);
|
|
40
|
+
const unregisterError = useCallback((errId) => {
|
|
41
|
+
setErrorIds((prev) => prev.includes(errId) ? prev.filter((x) => x !== errId) : prev);
|
|
42
|
+
}, []);
|
|
43
|
+
const describedBy = useMemo(() => {
|
|
44
|
+
const ids = [...descriptionIds, ...errorIds];
|
|
45
|
+
return ids.length > 0 ? ids.join(" ") : void 0;
|
|
46
|
+
}, [descriptionIds, errorIds]);
|
|
47
|
+
const [controlOrder, setControlOrder] = useState([]);
|
|
48
|
+
const registerControl = useCallback((controlId) => {
|
|
49
|
+
setControlOrder((prev) => prev.includes(controlId) ? prev : [...prev, controlId]);
|
|
50
|
+
}, []);
|
|
51
|
+
const unregisterControl = useCallback((controlId) => {
|
|
52
|
+
setControlOrder(
|
|
53
|
+
(prev) => prev.includes(controlId) ? prev.filter((x) => x !== controlId) : prev
|
|
54
|
+
);
|
|
55
|
+
}, []);
|
|
56
|
+
const labelFor = controlOrder[0];
|
|
57
|
+
const value = useMemo(
|
|
58
|
+
() => ({
|
|
59
|
+
labelFor,
|
|
60
|
+
registerControl,
|
|
61
|
+
unregisterControl,
|
|
62
|
+
invalid,
|
|
63
|
+
required,
|
|
64
|
+
describedBy,
|
|
65
|
+
registerDescription,
|
|
66
|
+
unregisterDescription,
|
|
67
|
+
registerError,
|
|
68
|
+
unregisterError
|
|
69
|
+
}),
|
|
70
|
+
[
|
|
71
|
+
labelFor,
|
|
72
|
+
registerControl,
|
|
73
|
+
unregisterControl,
|
|
74
|
+
invalid,
|
|
75
|
+
required,
|
|
76
|
+
describedBy,
|
|
77
|
+
registerDescription,
|
|
78
|
+
unregisterDescription,
|
|
79
|
+
registerError,
|
|
80
|
+
unregisterError
|
|
81
|
+
]
|
|
82
|
+
);
|
|
83
|
+
return /* @__PURE__ */ jsx(FieldContext.Provider, { value, children: /* @__PURE__ */ jsx("div", { ref, "data-slot": "field", className: cn("space-y-2", className), ...props, children }) });
|
|
84
|
+
});
|
|
85
|
+
var FieldLabel = forwardRef(function FieldLabel2({ className, ...props }, ref) {
|
|
86
|
+
const { labelFor, invalid } = useFieldContext("FieldLabel");
|
|
87
|
+
return /* @__PURE__ */ jsx(
|
|
88
|
+
Label,
|
|
89
|
+
{
|
|
90
|
+
ref,
|
|
91
|
+
htmlFor: labelFor,
|
|
92
|
+
"data-slot": "field-label",
|
|
93
|
+
className: cn(
|
|
94
|
+
"transition-colors duration-fast ease-standard",
|
|
95
|
+
invalid && "text-destructive-text",
|
|
96
|
+
className
|
|
97
|
+
),
|
|
98
|
+
...props
|
|
99
|
+
}
|
|
100
|
+
);
|
|
101
|
+
});
|
|
102
|
+
var FieldControl = forwardRef(
|
|
103
|
+
function FieldControl2({ children }, ref) {
|
|
104
|
+
const { invalid, required, describedBy, registerControl, unregisterControl } = useFieldContext("FieldControl");
|
|
105
|
+
const generatedId = useId();
|
|
106
|
+
const control = children;
|
|
107
|
+
const childProps = control.props;
|
|
108
|
+
const id = childProps.id ?? generatedId;
|
|
109
|
+
const composedDescribedBy = [childProps["aria-describedby"] ?? null, describedBy ?? null].filter(Boolean).join(" ") || void 0;
|
|
110
|
+
useLayoutEffect(() => {
|
|
111
|
+
registerControl(id);
|
|
112
|
+
return () => unregisterControl(id);
|
|
113
|
+
}, [id, registerControl, unregisterControl]);
|
|
114
|
+
return /* @__PURE__ */ jsx(
|
|
115
|
+
Slot,
|
|
116
|
+
{
|
|
117
|
+
ref,
|
|
118
|
+
id,
|
|
119
|
+
"aria-describedby": composedDescribedBy,
|
|
120
|
+
"aria-invalid": invalid,
|
|
121
|
+
"aria-required": required || void 0,
|
|
122
|
+
"data-slot": "field-control",
|
|
123
|
+
children: cloneElement(control, { id, "aria-describedby": composedDescribedBy })
|
|
124
|
+
}
|
|
125
|
+
);
|
|
126
|
+
}
|
|
127
|
+
);
|
|
128
|
+
var FieldDescription = forwardRef(function FieldDescription2({ className, children, id, ...props }, ref) {
|
|
129
|
+
const { registerDescription, unregisterDescription } = useFieldContext("FieldDescription");
|
|
130
|
+
const instanceId = useId();
|
|
131
|
+
const generatedId = `${instanceId}-description`;
|
|
132
|
+
const descriptionId = id ?? generatedId;
|
|
133
|
+
const hasContent = hasRenderableContent(children);
|
|
134
|
+
useLayoutEffect(() => {
|
|
135
|
+
if (!hasContent) return void 0;
|
|
136
|
+
registerDescription(descriptionId);
|
|
137
|
+
return () => unregisterDescription(descriptionId);
|
|
138
|
+
}, [hasContent, descriptionId, registerDescription, unregisterDescription]);
|
|
139
|
+
if (!hasContent) return null;
|
|
140
|
+
return /* @__PURE__ */ jsx(
|
|
141
|
+
"p",
|
|
142
|
+
{
|
|
143
|
+
ref,
|
|
144
|
+
id: descriptionId,
|
|
145
|
+
"data-slot": "field-description",
|
|
146
|
+
className: cn("text-body text-muted-foreground", className),
|
|
147
|
+
...props,
|
|
148
|
+
children
|
|
149
|
+
}
|
|
150
|
+
);
|
|
151
|
+
});
|
|
152
|
+
var FieldError = forwardRef(
|
|
153
|
+
function FieldError2({ className, children, id, ...props }, ref) {
|
|
154
|
+
const { registerError, unregisterError } = useFieldContext("FieldError");
|
|
155
|
+
const instanceId = useId();
|
|
156
|
+
const generatedId = `${instanceId}-error`;
|
|
157
|
+
const errorId = id ?? generatedId;
|
|
158
|
+
const hasContent = hasRenderableContent(children);
|
|
159
|
+
useLayoutEffect(() => {
|
|
160
|
+
if (!hasContent) return void 0;
|
|
161
|
+
registerError(errorId);
|
|
162
|
+
return () => unregisterError(errorId);
|
|
163
|
+
}, [hasContent, errorId, registerError, unregisterError]);
|
|
164
|
+
if (!hasContent) return null;
|
|
165
|
+
return /* @__PURE__ */ jsx(
|
|
166
|
+
"p",
|
|
167
|
+
{
|
|
168
|
+
ref,
|
|
169
|
+
id: errorId,
|
|
170
|
+
role: "alert",
|
|
171
|
+
"data-slot": "field-error",
|
|
172
|
+
className: cn("text-body font-medium text-destructive-text", className),
|
|
173
|
+
...props,
|
|
174
|
+
children
|
|
175
|
+
}
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
);
|
|
179
|
+
|
|
180
|
+
export {
|
|
181
|
+
FieldRoot,
|
|
182
|
+
FieldLabel,
|
|
183
|
+
FieldControl,
|
|
184
|
+
FieldDescription,
|
|
185
|
+
FieldError
|
|
186
|
+
};
|
|
187
|
+
//# sourceMappingURL=chunk-SCCBEFVK.js.map
|