@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 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/tree/tree.tsx"],"sourcesContent":["// a2ui.exposed: yes\n\"use client\";\n\nimport {\n forwardRef,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { ChevronRight, AlertCircle, RotateCcw } from \"lucide-react\";\nimport { useVirtualizer, type Virtualizer } from \"@tanstack/react-virtual\";\nimport { cn } from \"../../lib/cn\";\nimport { Checkbox } from \"../checkbox/checkbox\";\nimport { useLocale } from \"../locale-provider\";\nimport { Skeleton } from \"../skeleton/skeleton\";\nimport { Spinner } from \"../spinner/spinner\";\nimport { useTreeKeyboard } from \"./use-tree-keyboard\";\n\n// ---------------------------------------------------------------------------\n// Public types\n// ---------------------------------------------------------------------------\n\nexport interface TreeNode<T = unknown> {\n id: string;\n label: ReactNode;\n children?: TreeNode<T>[];\n /**\n * Marks a node as expandable even when `children` is not yet loaded.\n * A node with `hasChildren: true` and no `children` array will show the\n * expand affordance. Calling `loadChildren` will populate its children.\n */\n hasChildren?: boolean;\n disabled?: boolean;\n icon?: ReactNode;\n /**\n * Optional trailing content rendered after the label — e.g. a size or\n * token-count badge (#369). Rendered as a SIBLING of the label and kept out\n * of the row's accessible name: a string `label` names the row via\n * `aria-label`, a `ReactNode` label names it via `aria-labelledby` pointing\n * at the label span only, so the accessory text never joins either.\n *\n * The slot is isolated from the row: click, keydown and focus are stopped at\n * the accessory, so it never selects/expands the row, never lets the tree's\n * roving-tabindex handler swallow its keys, and never has focus yanked back\n * to the row. Interactive content (a button, a link) therefore works and is\n * independently focusable in normal tab order; the row's own keyboard\n * navigation (arrow keys, Enter/Space) is unaffected while the row is focused.\n */\n accessory?: ReactNode;\n data?: T;\n}\n\nexport interface TreeProps<T = unknown> extends Omit<HTMLAttributes<HTMLDivElement>, \"onSelect\"> {\n nodes: TreeNode<T>[];\n /** Controlled expanded ids */\n expandedIds?: string[];\n /** Uncontrolled initial expanded ids */\n defaultExpandedIds?: string[];\n onExpandedChange?: (ids: string[]) => void;\n /** \"single\" | \"multiple\" | \"none\" — default \"single\" */\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n /** Controlled selected ids */\n selectedIds?: string[];\n /** Uncontrolled initial selected ids */\n defaultSelectedIds?: string[];\n onSelectionChange?: (ids: string[]) => void;\n /** Show checkboxes for multi-selection affordance — default false */\n checkboxes?: boolean;\n /**\n * The surface on which the tree is rendered.\n * - `\"default\"` (default) — renders selected rows with `bg-selection` (for use\n * on background/card surfaces).\n * - `\"sidebar\"` — renders selected rows with the sidebar's own active-item\n * treatment (`bg-sidebar-accent` + `text-sidebar-accent-foreground` +\n * `font-medium`), so selection reads consistently with `SidebarMenuButton`'s\n * active state on the `--sidebar` surface. (No fill is ≥3:1 on a sidebar;\n * perceivability comes from the foreground/weight shift + `aria-selected`,\n * the same multi-cue approach the Sidebar uses.)\n */\n surface?: \"default\" | \"sidebar\";\n /**\n * Enable windowed rendering for large trees (>50 visible rows).\n * When `true`, only the visible slice of the flattened tree is mounted in\n * the DOM. Requires a bounded scroll container — either via `maxHeight` or\n * by sizing the root element externally with `overflow-auto`.\n * Default: `false` (backward-compatible nested-group DOM).\n */\n virtualize?: boolean;\n /** Estimated row height in px used by the virtualizer. Default 32. */\n estimateRowHeight?: number;\n /** Number of extra rows to render beyond the visible window. Default 8. */\n overscan?: number;\n /**\n * CSS max-height for the scroll viewport when `virtualize` is true.\n * E.g. `\"400px\"` or `\"60vh\"`. When omitted the root div must be sized by\n * the caller (e.g. via `className=\"h-96 overflow-auto\"`).\n */\n maxHeight?: number | string;\n /**\n * Scroll the node with this id into view when the value CHANGES. Reveals a\n * node selected programmatically (via `selectedIds`) that is windowed out of\n * the DOM in `virtualize` mode (or below the fold), so the tree shows \"where\n * I am\", not just structure. Expands the node's (loaded) ancestors and kicks\n * their lazy `loadChildren` as needed, then centers the node. Independent of\n * keyboard focus (keyboard nav's own scroll is unchanged).\n */\n scrollToId?: string;\n /**\n * When `true`, reveal the newly-selected controlled node (the id added to\n * `selectedIds`) into view — the selection-driven equivalent of `scrollToId`.\n * `scrollToId` wins when both are set.\n */\n scrollSelectionIntoView?: boolean;\n /**\n * Async function called when a node with `hasChildren: true` (and no\n * loaded `children`) is expanded for the first time. The returned nodes\n * are merged into the internal tree state and cached so re-expanding the\n * node does not re-fetch.\n */\n loadChildren?: (node: TreeNode<T>) => Promise<TreeNode<T>[]>;\n className?: string;\n}\n\n// ---------------------------------------------------------------------------\n// Internal types for lazy-load state\n// ---------------------------------------------------------------------------\n\ntype LoadState = \"idle\" | \"loading\" | \"error\";\n\ninterface LazyState {\n [nodeId: string]: LoadState;\n}\n\n// ---------------------------------------------------------------------------\n// Helpers\n// ---------------------------------------------------------------------------\n\nfunction useControllableSet(\n controlled: string[] | undefined,\n defaultValue: string[] | undefined,\n onChange: ((ids: string[]) => void) | undefined,\n): [Set<string>, (next: Set<string>) => void] {\n const isControlled = controlled !== undefined;\n const [internal, setInternal] = useState<Set<string>>(\n () => new Set(controlled ?? defaultValue ?? []),\n );\n\n // Stable controlled Set: build a new Set only when the controlled array's\n // CONTENT actually changed, not merely its reference (many callers pass a\n // freshly-computed array with the same ids on every render). Without this,\n // `selectedIds`/`expandedIds` changed identity on every render, which made\n // effects keyed on them (the scrollToId/scrollSelectionIntoView reveal\n // effect) fire on every re-render instead of on a real selection change —\n // the scroll-jump-while-scrolling bug.\n const controlledSetRef = useRef<Set<string> | null>(null);\n let value: Set<string>;\n if (isControlled) {\n const prev = controlledSetRef.current;\n const sameContent =\n !!prev && prev.size === controlled!.length && controlled!.every((id) => prev.has(id));\n value = sameContent ? prev! : new Set(controlled);\n controlledSetRef.current = value;\n } else {\n value = internal;\n }\n\n const setValue = useCallback(\n (next: Set<string>) => {\n if (!isControlled) setInternal(next);\n onChange?.(Array.from(next));\n },\n [isControlled, onChange],\n );\n\n return [value, setValue];\n}\n\n/**\n * Reconcile an incoming `nodes` prop against the previous internal tree,\n * preserving any children merged in locally via `loadChildren` that the new\n * prop doesn't (yet) carry. Without this, any parent re-render that hands\n * down a new (even structurally-identical) `nodes` array wipes out every\n * lazily-loaded subtree that isn't also present upstream.\n */\nfunction reconcileNodes<T>(propNodes: TreeNode<T>[], prevNodes: TreeNode<T>[]): TreeNode<T>[] {\n const prevById = new Map(prevNodes.map((n) => [n.id, n] as const));\n return propNodes.map((n) => {\n const prev = prevById.get(n.id);\n if (!prev) return n;\n if (!n.children?.length && prev.children?.length) {\n // The prop still marks this node as lazily-expandable but doesn't (yet)\n // carry the children we already fetched — keep what we loaded.\n return { ...n, children: prev.children, hasChildren: n.hasChildren };\n }\n if (n.children?.length && prev.children?.length) {\n return { ...n, children: reconcileNodes(n.children, prev.children) };\n }\n return n;\n });\n}\n\n/** Merge resolved children into a tree, returning a new tree. */\nfunction mergeChildren<T>(\n nodes: TreeNode<T>[],\n nodeId: string,\n children: TreeNode<T>[],\n): TreeNode<T>[] {\n return nodes.map((n) => {\n if (n.id === nodeId) {\n return { ...n, children, hasChildren: undefined };\n }\n if (n.children?.length) {\n return { ...n, children: mergeChildren(n.children, nodeId, children) };\n }\n return n;\n });\n}\n\n// ---------------------------------------------------------------------------\n// VirtualFlatRow — a single flat row for the virtualized path\n// ---------------------------------------------------------------------------\n\ninterface FlatRow<T> {\n node: TreeNode<T>;\n level: number;\n setSize: number;\n posInSet: number;\n}\n\ninterface VirtualFlatRowProps<T> {\n row: FlatRow<T>;\n isExpanded: boolean;\n isSelected: boolean;\n isActive: boolean;\n lazyState: LoadState;\n expandable: boolean; // has children OR hasChildren flag\n selectionMode: \"single\" | \"multiple\" | \"none\";\n checkboxes: boolean;\n surface: \"default\" | \"sidebar\";\n onToggleExpand: (id: string) => void;\n onSelect: (id: string) => void;\n onRetry: (id: string) => void;\n registerNodeRef: (id: string, el: HTMLElement | null) => void;\n setActiveId: (id: string | null) => void;\n}\n\nfunction VirtualFlatRow<T>({\n row,\n isExpanded,\n isSelected,\n isActive,\n lazyState,\n expandable,\n selectionMode,\n checkboxes,\n surface,\n onToggleExpand,\n onSelect,\n onRetry,\n registerNodeRef,\n setActiveId,\n}: VirtualFlatRowProps<T>) {\n const { t } = useLocale();\n const { node, level, setSize, posInSet } = row;\n const isLoading = lazyState === \"loading\";\n const isError = lazyState === \"error\";\n // A ReactNode label can't name the row via `aria-label`, so without this the\n // name would fall back to the row's CONTENTS — which includes the accessory\n // (#369). Point at the label span instead, so the accessory is excluded for\n // BOTH label shapes.\n const labelId = useId();\n\n const indentStyle = { paddingLeft: `${(level - 1) * 1}rem` };\n\n const handleRowClick = () => {\n if (node.disabled) return;\n setActiveId(node.id);\n onSelect(node.id);\n if (expandable) onToggleExpand(node.id);\n };\n\n return (\n <div\n role=\"treeitem\"\n aria-expanded={expandable ? isExpanded : undefined}\n aria-selected={selectionMode !== \"none\" && !checkboxes ? isSelected : undefined}\n aria-checked={checkboxes ? isSelected : undefined}\n aria-label={typeof node.label === \"string\" ? node.label : undefined}\n aria-labelledby={typeof node.label === \"string\" ? undefined : labelId}\n aria-level={level}\n aria-setsize={setSize}\n aria-posinset={posInSet}\n aria-disabled={node.disabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n tabIndex={isActive ? 0 : -1}\n data-tree-id={node.id}\n ref={(el) => registerNodeRef(node.id, el)}\n onClick={node.disabled ? undefined : handleRowClick}\n onFocus={() => setActiveId(node.id)}\n className={cn(\n \"flex min-w-0 cursor-pointer select-none items-center gap-1.5 rounded-md px-2 py-1.5 text-body outline-none\",\n \"transition-colors duration-fast ease-standard motion-reduce:transition-none\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n isSelected &&\n selectionMode !== \"none\" &&\n (surface === \"sidebar\"\n ? \"bg-sidebar-accent text-sidebar-accent-foreground font-medium\"\n : \"bg-selection text-selection-foreground font-medium\"),\n node.disabled && \"cursor-not-allowed opacity-50 pointer-events-none\",\n )}\n style={indentStyle}\n >\n {/* expand/collapse chevron */}\n {expandable ? (\n <span\n aria-hidden=\"true\"\n onClick={(e) => {\n e.stopPropagation();\n onToggleExpand(node.id);\n }}\n className={cn(\n \"flex size-4 shrink-0 items-center justify-center rounded transition-transform duration-fast ease-standard motion-reduce:transition-none\",\n isExpanded && \"rotate-90\",\n )}\n >\n {isLoading ? (\n <Spinner className=\"size-3.5\" label=\"Loading children\" />\n ) : (\n <ChevronRight className=\"size-3.5 text-muted-foreground\" aria-hidden=\"true\" />\n )}\n </span>\n ) : (\n <span aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n )}\n\n {/* optional checkbox for multi-select */}\n {checkboxes && selectionMode === \"multiple\" && (\n <Checkbox\n checked={isSelected}\n disabled={node.disabled}\n aria-hidden=\"true\"\n tabIndex={-1}\n onClick={(e) => {\n e.stopPropagation();\n onSelect(node.id);\n }}\n className=\"shrink-0\"\n />\n )}\n\n {/* optional node icon */}\n {node.icon && (\n <span aria-hidden=\"true\" className=\"flex size-4 shrink-0 items-center justify-center\">\n {node.icon}\n </span>\n )}\n\n {/* label */}\n {isError ? (\n // #124: running text (\"Failed to load…\"), not a mark — the ink rung\n // clears >=4.5:1 and the wrapped icon inherits it fine (>=3:1 trivially).\n <span id={labelId} className=\"min-w-0 flex items-center gap-1 text-destructive-text\">\n <AlertCircle className=\"size-3.5 shrink-0\" aria-hidden=\"true\" />\n <span className=\"truncate\">{t(\"ui.tree.failedToLoad\")}</span>\n <button\n type=\"button\"\n aria-label={t(\"ui.tree.retryLoadingChildren\")}\n onClick={(e) => {\n e.stopPropagation();\n onRetry(node.id);\n }}\n className={cn(\n \"ms-1 flex items-center gap-0.5 rounded px-1 py-0.5 text-caption\",\n \"text-muted-foreground hover:text-foreground\",\n \"focus-ring\",\n )}\n >\n <RotateCcw className=\"size-3\" aria-hidden=\"true\" />\n {t(\"ui.tree.retry\")}\n </button>\n </span>\n ) : (\n <span id={labelId} className=\"min-w-0 truncate\">\n {node.label}\n </span>\n )}\n\n {/* optional trailing accessory — a sibling of the label, never inside it\n and never part of the row's accessible name (#369); click/keydown/focus\n are stopped so it never selects, expands or steals the row's handling. */}\n {node.accessory ? (\n <span\n data-slot=\"tree-item-accessory\"\n className=\"ms-auto flex shrink-0 items-center gap-1\"\n onClick={(e) => e.stopPropagation()}\n // The tree's keyboard handler lives on the ROOT and preventDefaults\n // Enter/Space/arrows; without this an interactive accessory could\n // never be activated (its native click is cancelled) and the ROW\n // would be selected instead.\n onKeyDown={(e) => e.stopPropagation()}\n // React's onFocus is focusin (it bubbles), and the row's handler\n // calls setActiveId → el.focus(), which would yank focus straight\n // back out of an interactive accessory.\n onFocus={(e) => e.stopPropagation()}\n >\n {node.accessory}\n </span>\n ) : null}\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// Lazy-loading skeleton row (child of a loading node in non-virtual path)\n// ---------------------------------------------------------------------------\n\nfunction LoadingRow({ level }: { level: number }) {\n const { t } = useLocale();\n const indentStyle = { paddingLeft: `${(level - 1) * 1}rem` };\n return (\n <div\n role=\"treeitem\"\n aria-label={t(\"loading\")}\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"flex min-w-0 items-center gap-1.5 px-2 py-1.5\"\n style={indentStyle}\n >\n <span aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n <Skeleton className=\"h-4 w-24\" />\n </div>\n );\n}\n\nfunction ErrorRow({ level, onRetry }: { level: number; onRetry: () => void }) {\n const { t } = useLocale();\n const indentStyle = { paddingLeft: `${(level - 1) * 1}rem` };\n return (\n <div\n role=\"treeitem\"\n aria-label={t(\"ui.tree.failedToLoad\")}\n aria-disabled=\"true\"\n tabIndex={-1}\n className=\"flex min-w-0 items-center gap-1.5 px-2 py-1.5 text-body text-destructive-text\"\n style={indentStyle}\n >\n <span aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n <AlertCircle className=\"size-3.5 shrink-0\" aria-hidden=\"true\" />\n <span className=\"truncate\">{t(\"ui.tree.failedToLoad\")}</span>\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onRetry();\n }}\n className={cn(\n \"ms-1 flex items-center gap-0.5 rounded px-1 py-0.5 text-meta\",\n \"text-muted-foreground hover:text-foreground\",\n \"focus-ring\",\n )}\n >\n <RotateCcw className=\"size-3\" aria-hidden=\"true\" />\n {t(\"ui.tree.retry\")}\n </button>\n </div>\n );\n}\n\n// ---------------------------------------------------------------------------\n// TreeItemRow — renders a single treeitem row (recursive, non-virtual path)\n// ---------------------------------------------------------------------------\n\ninterface TreeItemProps<T> {\n node: TreeNode<T>;\n level: number;\n setSize: number;\n posInSet: number;\n expandedIds: Set<string>;\n onExpandedChange: (ids: Set<string>) => void;\n selectionMode: \"single\" | \"multiple\" | \"none\";\n selectedIds: Set<string>;\n onSelectionChange: (ids: Set<string>) => void;\n checkboxes: boolean;\n surface: \"default\" | \"sidebar\";\n activeId: string | null;\n setActiveId: (id: string | null) => void;\n registerNodeRef: (id: string, el: HTMLElement | null) => void;\n lazyState: LazyState;\n onExpandLazy: (node: TreeNode<T>) => void;\n}\n\nfunction TreeItem<T>({\n node,\n level,\n setSize,\n posInSet,\n expandedIds,\n onExpandedChange,\n selectionMode,\n selectedIds,\n onSelectionChange,\n checkboxes,\n surface,\n activeId,\n setActiveId,\n registerNodeRef,\n lazyState,\n onExpandLazy,\n}: TreeItemProps<T>) {\n const hasLoadedChildren = !!node.children?.length;\n // A node is expandable if it has loaded children OR the hasChildren flag is set\n const expandable = hasLoadedChildren || !!node.hasChildren;\n const isExpanded = expandable && expandedIds.has(node.id);\n const isSelected = selectedIds.has(node.id);\n const isActive = activeId === node.id;\n const nodeLoadState: LoadState = lazyState[node.id] ?? \"idle\";\n const isLoading = nodeLoadState === \"loading\";\n const isError = nodeLoadState === \"error\";\n // See VirtualFlatRow: a ReactNode label must name the row via `aria-labelledby`\n // so the trailing accessory never joins the accessible name (#369).\n const labelId = useId();\n\n const toggleExpanded = () => {\n if (!expandable) return;\n const next = new Set(expandedIds);\n if (isExpanded) {\n next.delete(node.id);\n } else {\n next.add(node.id);\n // If no loaded children yet, trigger lazy load\n if (!hasLoadedChildren && node.hasChildren) {\n onExpandLazy(node);\n }\n }\n onExpandedChange(next);\n };\n\n const handleSelect = () => {\n if (node.disabled || selectionMode === \"none\") return;\n setActiveId(node.id);\n if (selectionMode === \"single\") {\n onSelectionChange(new Set([node.id]));\n } else {\n const next = new Set(selectedIds);\n if (next.has(node.id)) {\n next.delete(node.id);\n } else {\n next.add(node.id);\n }\n onSelectionChange(next);\n }\n };\n\n const handleRowClick = () => {\n setActiveId(node.id);\n handleSelect();\n if (expandable) toggleExpanded();\n };\n\n const indentStyle = { paddingLeft: `${(level - 1) * 1}rem` };\n\n return (\n <li role=\"none\">\n {/* treeitem row */}\n <div\n role=\"treeitem\"\n aria-expanded={expandable ? isExpanded : undefined}\n aria-selected={selectionMode !== \"none\" && !checkboxes ? isSelected : undefined}\n aria-checked={checkboxes ? isSelected : undefined}\n aria-label={typeof node.label === \"string\" ? node.label : undefined}\n aria-labelledby={typeof node.label === \"string\" ? undefined : labelId}\n aria-level={level}\n aria-setsize={setSize}\n aria-posinset={posInSet}\n aria-disabled={node.disabled ? true : undefined}\n aria-busy={isLoading ? true : undefined}\n tabIndex={isActive ? 0 : -1}\n data-tree-id={node.id}\n ref={(el) => registerNodeRef(node.id, el)}\n onClick={node.disabled ? undefined : handleRowClick}\n onFocus={() => setActiveId(node.id)}\n className={cn(\n \"flex min-w-0 cursor-pointer select-none items-center gap-1.5 rounded-md px-2 py-1.5 text-body outline-none\",\n \"transition-colors duration-fast ease-standard motion-reduce:transition-none\",\n \"hover:bg-accent hover:text-accent-foreground\",\n \"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background\",\n isSelected &&\n selectionMode !== \"none\" &&\n (surface === \"sidebar\"\n ? \"bg-sidebar-accent text-sidebar-accent-foreground font-medium\"\n : \"bg-selection text-selection-foreground font-medium\"),\n node.disabled && \"cursor-not-allowed opacity-50 pointer-events-none\",\n )}\n style={indentStyle}\n >\n {/* expand/collapse chevron */}\n {expandable ? (\n <span\n aria-hidden=\"true\"\n onClick={(e) => {\n e.stopPropagation();\n toggleExpanded();\n }}\n className={cn(\n \"flex size-4 shrink-0 items-center justify-center rounded transition-transform duration-fast ease-standard motion-reduce:transition-none\",\n isExpanded && !isLoading && \"rotate-90\",\n )}\n >\n {isLoading ? (\n <Spinner className=\"size-3.5\" label=\"Loading children\" />\n ) : (\n <ChevronRight className=\"size-3.5 text-muted-foreground\" aria-hidden=\"true\" />\n )}\n </span>\n ) : (\n <span aria-hidden=\"true\" className=\"size-4 shrink-0\" />\n )}\n\n {/* optional checkbox for multi-select */}\n {checkboxes && selectionMode === \"multiple\" && (\n <Checkbox\n checked={isSelected}\n disabled={node.disabled}\n aria-hidden=\"true\"\n tabIndex={-1}\n onClick={(e) => {\n e.stopPropagation();\n handleSelect();\n }}\n className=\"shrink-0\"\n />\n )}\n\n {/* optional node icon */}\n {node.icon && (\n <span aria-hidden=\"true\" className=\"flex size-4 shrink-0 items-center justify-center\">\n {node.icon}\n </span>\n )}\n\n {/* label */}\n <span id={labelId} className=\"min-w-0 truncate\">\n {node.label}\n </span>\n\n {/* optional trailing accessory — a sibling of the label, never inside\n it and never part of the row's accessible name (#369);\n click/keydown/focus are stopped at the accessory. */}\n {node.accessory ? (\n <span\n data-slot=\"tree-item-accessory\"\n className=\"ms-auto flex shrink-0 items-center gap-1\"\n onClick={(e) => e.stopPropagation()}\n // See VirtualFlatRow: the tree's root keydown handler preventDefaults\n // Enter/Space/arrows, and the row's onFocus (focusin, bubbling) calls\n // setActiveId → el.focus(). Both must stop at the accessory or\n // interactive content in this slot is unusable.\n onKeyDown={(e) => e.stopPropagation()}\n onFocus={(e) => e.stopPropagation()}\n >\n {node.accessory}\n </span>\n ) : null}\n </div>\n\n {/* children group */}\n {isExpanded && (\n <ul role=\"group\" className=\"list-none m-0 p-0\">\n {isLoading ? (\n <li role=\"none\">\n <LoadingRow level={level + 1} />\n </li>\n ) : isError ? (\n <li role=\"none\">\n <ErrorRow level={level + 1} onRetry={() => onExpandLazy(node)} />\n </li>\n ) : (\n node.children?.map((child, i) => (\n <TreeItem\n key={child.id}\n node={child}\n level={level + 1}\n setSize={node.children!.length}\n posInSet={i + 1}\n expandedIds={expandedIds}\n onExpandedChange={onExpandedChange}\n selectionMode={selectionMode}\n selectedIds={selectedIds}\n onSelectionChange={onSelectionChange}\n checkboxes={checkboxes}\n surface={surface}\n activeId={activeId}\n setActiveId={setActiveId}\n registerNodeRef={registerNodeRef}\n lazyState={lazyState}\n onExpandLazy={onExpandLazy}\n />\n ))\n )}\n </ul>\n )}\n </li>\n );\n}\n\n// ---------------------------------------------------------------------------\n// flattenVisibleWithMeta — for the virtual path\n// ---------------------------------------------------------------------------\n\nfunction flattenVisibleWithMeta<T>(\n nodes: TreeNode<T>[],\n expandedIds: Set<string>,\n lazyState: LazyState,\n level = 1,\n parentSetSize?: number,\n): FlatRow<T>[] {\n const result: FlatRow<T>[] = [];\n const setSize = parentSetSize ?? nodes.length;\n nodes.forEach((node, i) => {\n result.push({\n node,\n level,\n setSize,\n posInSet: i + 1,\n });\n const hasLoadedChildren = !!node.children?.length;\n const isExpandable = hasLoadedChildren || !!node.hasChildren;\n if (isExpandable && expandedIds.has(node.id)) {\n const nodeLoad = lazyState[node.id];\n if (nodeLoad === \"loading\" || nodeLoad === \"error\") {\n // placeholder row represented by a synthetic \"loading/error\" node\n // We don't push a row here — the loading/error state is shown via\n // aria-busy on the parent treeitem row (virtual path inline indicators)\n } else if (hasLoadedChildren) {\n const childRows = flattenVisibleWithMeta(\n node.children!,\n expandedIds,\n lazyState,\n level + 1,\n node.children!.length,\n );\n result.push(...childRows);\n }\n }\n });\n return result;\n}\n\n// ---------------------------------------------------------------------------\n// Tree — root component\n// ---------------------------------------------------------------------------\n\n/**\n * A fully accessible tree view with roving tabindex keyboard navigation,\n * single/multiple selection, expand/collapse, checkboxes, and type-ahead.\n *\n * Set `virtualize` to window large trees (>50 visible rows). Set `loadChildren`\n * to lazily fetch children on demand when a node has `hasChildren: true`.\n */\n/** Ancestor ids (root → parent) of `id` within the loaded tree, or `null` if absent. */\nfunction findNodePath(nodes: TreeNode[], id: string, trail: string[] = []): string[] | null {\n for (const n of nodes) {\n if (n.id === id) return trail;\n if (n.children?.length) {\n const found = findNodePath(n.children, id, [...trail, n.id]);\n if (found) return found;\n }\n }\n return null;\n}\n\n/** The node with `id` within the loaded tree, or `null`. */\nfunction findNodeById(nodes: TreeNode[], id: string): TreeNode | null {\n for (const n of nodes) {\n if (n.id === id) return n;\n if (n.children?.length) {\n const found = findNodeById(n.children, id);\n if (found) return found;\n }\n }\n return null;\n}\n\nexport const Tree = forwardRef<HTMLDivElement, TreeProps>(function Tree(\n {\n nodes: nodesProp,\n expandedIds: expandedIdsProp,\n defaultExpandedIds,\n onExpandedChange,\n selectionMode = \"single\",\n selectedIds: selectedIdsProp,\n defaultSelectedIds,\n onSelectionChange,\n checkboxes = false,\n virtualize = false,\n estimateRowHeight = 32,\n overscan = 8,\n maxHeight,\n scrollToId,\n scrollSelectionIntoView = false,\n loadChildren,\n surface = \"default\",\n className,\n ...props\n },\n ref,\n) {\n // Internal mutable tree (supports lazy-loaded children merge)\n const [nodes, setNodes] = useState<TreeNode[]>(() => nodesProp as TreeNode[]);\n\n // Keep internal tree in sync with nodesProp if it changes externally,\n // preserving any children merged in locally via lazy `loadChildren`.\n useEffect(() => {\n setNodes((prev) => reconcileNodes(nodesProp as TreeNode[], prev));\n }, [nodesProp]);\n\n const [expandedIds, setExpandedIds] = useControllableSet(\n expandedIdsProp,\n defaultExpandedIds,\n onExpandedChange,\n );\n const [selectedIds, setSelectedIds] = useControllableSet(\n selectedIdsProp,\n defaultSelectedIds,\n onSelectionChange,\n );\n\n // Lazy-load state per node id\n const [lazyState, setLazyState] = useState<LazyState>({});\n\n // Scroll container ref for virtualizer\n const scrollRef = useRef<HTMLDivElement>(null);\n\n // Pending focus id — used when the target row isn't yet mounted (virtual path)\n const pendingFocusIdRef = useRef<string | null>(null);\n\n // ---------------------------------------------------------------------------\n // Lazy load handler\n // ---------------------------------------------------------------------------\n\n const handleExpandLazy = useCallback(\n async (node: TreeNode) => {\n if (!loadChildren) return;\n if (lazyState[node.id] === \"loading\") return;\n\n setLazyState((prev) => ({ ...prev, [node.id]: \"loading\" }));\n try {\n const children = await loadChildren(node as TreeNode<unknown>);\n setNodes((prev) => mergeChildren(prev, node.id, children as TreeNode[]));\n setLazyState((prev) => {\n const next = { ...prev };\n delete next[node.id];\n return next;\n });\n } catch {\n setLazyState((prev) => ({ ...prev, [node.id]: \"error\" }));\n }\n },\n [loadChildren, lazyState],\n );\n\n // ---------------------------------------------------------------------------\n // Flattened visible rows (for virtualized path and keyboard hook)\n // ---------------------------------------------------------------------------\n\n const flatRows = useMemo(\n () => flattenVisibleWithMeta(nodes, expandedIds, lazyState),\n [nodes, expandedIds, lazyState],\n );\n const flatNodeIds = useMemo(() => flatRows.map((r) => r.node.id), [flatRows]);\n // O(1) row lookup by id — `handleToggleExpand`/`handleSelectVirtual` run on\n // every click/keypress and previously did an O(n) `Array.find` each time.\n const flatRowIndexById = useMemo(() => {\n const map = new Map<string, number>();\n flatRows.forEach((r, i) => map.set(r.node.id, i));\n return map;\n }, [flatRows]);\n\n // ---------------------------------------------------------------------------\n // Keyboard hook\n // ---------------------------------------------------------------------------\n\n // For the virtual path: when navigating to a node whose DOM is not mounted,\n // we need to scroll to it first and then focus when it mounts.\n // We achieve this by passing a scrollToIndex callback to the keyboard hook.\n\n const virtualizerRef = useRef<Virtualizer<HTMLDivElement, Element> | null>(null);\n\n const scrollToVirtualIndex = useCallback((index: number) => {\n virtualizerRef.current?.scrollToIndex(index, { align: \"auto\" });\n }, []);\n\n const { activeId, setActiveId, registerNodeRef, onKeyDown } = useTreeKeyboard({\n nodes,\n expandedIds,\n onExpandedChange: setExpandedIds,\n selectionMode,\n selectedIds,\n onSelectionChange: setSelectedIds,\n // Virtualization-aware extras\n virtualize,\n flatNodeIds,\n pendingFocusIdRef,\n scrollToVirtualIndex,\n });\n\n // ---------------------------------------------------------------------------\n // Handle expand/collapse for virtual path (needs to call lazy loader)\n // ---------------------------------------------------------------------------\n\n const handleToggleExpand = useCallback(\n (nodeId: string) => {\n const index = flatRowIndexById.get(nodeId);\n if (index === undefined) return;\n const node = flatRows[index]?.node;\n if (!node) return;\n const hasLoadedChildren = !!node.children?.length;\n const next = new Set(expandedIds);\n if (expandedIds.has(nodeId)) {\n next.delete(nodeId);\n } else {\n next.add(nodeId);\n if (!hasLoadedChildren && node.hasChildren && loadChildren) {\n handleExpandLazy(node);\n }\n }\n setExpandedIds(next);\n },\n [expandedIds, flatRows, flatRowIndexById, setExpandedIds, loadChildren, handleExpandLazy],\n );\n\n const handleSelectVirtual = useCallback(\n (nodeId: string) => {\n const index = flatRowIndexById.get(nodeId);\n if (index === undefined) return;\n const node = flatRows[index]?.node;\n if (!node || node.disabled || selectionMode === \"none\") return;\n if (selectionMode === \"single\") {\n setSelectedIds(new Set([nodeId]));\n } else {\n const next = new Set(selectedIds);\n if (next.has(nodeId)) {\n next.delete(nodeId);\n } else {\n next.add(nodeId);\n }\n setSelectedIds(next);\n }\n },\n [flatRows, flatRowIndexById, selectionMode, selectedIds, setSelectedIds],\n );\n\n // ---------------------------------------------------------------------------\n // Layout effect to flush pending focus once a row mounts (virtual path)\n // ---------------------------------------------------------------------------\n\n // This runs after every render; if pendingFocusIdRef has an id, try to focus it.\n // The registerNodeRef callback will have stored the element if it mounted.\n // We use useLayoutEffect so the DOM is painted before we try to focus.\n const nodeRefsForFlush = useRef<Map<string, HTMLElement>>(new Map());\n\n const registerAndFlush = useCallback(\n (id: string, el: HTMLElement | null) => {\n registerNodeRef(id, el);\n if (el) {\n nodeRefsForFlush.current.set(id, el);\n if (pendingFocusIdRef.current === id) {\n pendingFocusIdRef.current = null;\n el.focus();\n }\n } else {\n nodeRefsForFlush.current.delete(id);\n }\n },\n [registerNodeRef],\n );\n\n // ---------------------------------------------------------------------------\n // Virtualizer (only created in virtual mode)\n // ---------------------------------------------------------------------------\n\n const virtualizer = useVirtualizer({\n count: flatRows.length,\n getScrollElement: () => (virtualize ? scrollRef.current : null),\n estimateSize: () => estimateRowHeight,\n overscan,\n enabled: virtualize,\n });\n\n // Keep ref so keyboard handler can call scrollToIndex\n useEffect(() => {\n if (virtualize) {\n virtualizerRef.current = virtualizer;\n }\n });\n\n // ---------------------------------------------------------------------------\n // Reveal-into-view (scrollToId / scrollSelectionIntoView)\n // ---------------------------------------------------------------------------\n\n // Set while a requested node isn't yet a visible row (its ancestors are still\n // expanding / lazy-loading); the retry effect finishes once the rows change.\n const pendingRevealIdRef = useRef<string | null>(null);\n const prevSelectedRef = useRef<Set<string>>(selectedIds);\n const prevScrollToIdRef = useRef<string | undefined>(undefined);\n\n // Scroll `id` into view if it is currently a visible row. Virtual mode drives\n // the virtualizer (the row may be unmounted); non-virtual uses the mounted DOM\n // node (registered via registerAndFlush in both paths).\n const scrollNodeIntoView = useCallback(\n (id: string): boolean => {\n const index = flatRowIndexById.get(id);\n if (index === undefined) return false;\n if (virtualize) {\n virtualizerRef.current?.scrollToIndex(index, { align: \"center\" });\n } else {\n // `?.` on scrollIntoView too — jsdom doesn't implement it (browser-only).\n nodeRefsForFlush.current.get(id)?.scrollIntoView?.({ block: \"center\" });\n }\n return true;\n },\n [flatRowIndexById, virtualize],\n );\n\n // Reveal `id`: scroll it now if visible, else expand its (loaded) ancestors and\n // kick their lazy loaders so it becomes a row — the retry effect finishes the job.\n const revealNode = useCallback(\n (id: string) => {\n if (scrollNodeIntoView(id)) {\n pendingRevealIdRef.current = null;\n return;\n }\n pendingRevealIdRef.current = id;\n const path = findNodePath(nodes, id);\n if (!path || path.length === 0) return; // unknown / not yet loaded — best effort\n const next = new Set(expandedIds);\n path.forEach((ancestorId) => next.add(ancestorId));\n setExpandedIds(next);\n if (loadChildren) {\n for (const ancestorId of path) {\n const anc = findNodeById(nodes, ancestorId);\n if (anc && anc.hasChildren && !anc.children?.length) void handleExpandLazy(anc);\n }\n }\n },\n [scrollNodeIntoView, nodes, expandedIds, setExpandedIds, loadChildren, handleExpandLazy],\n );\n\n // Latest revealNode so the trigger effect fires on target CHANGE only (without\n // re-running when flatNodeIds / expandedIds churn each render).\n const revealNodeRef = useRef(revealNode);\n revealNodeRef.current = revealNode;\n\n // Trigger: reveal when `scrollToId` changes; else (scrollSelectionIntoView) when\n // the selection gains a node. `scrollToId` wins.\n useEffect(() => {\n const scrollIdChanged = scrollToId !== prevScrollToIdRef.current;\n const selectionChanged = selectedIds !== prevSelectedRef.current;\n const prevSel = prevSelectedRef.current;\n prevScrollToIdRef.current = scrollToId;\n prevSelectedRef.current = selectedIds;\n\n if (scrollToId != null && scrollIdChanged) {\n revealNodeRef.current(scrollToId);\n } else if (scrollToId == null && scrollSelectionIntoView && selectionChanged) {\n const added = [...selectedIds].find((sid) => !prevSel.has(sid));\n const target = added ?? (selectedIds.size > 0 ? [...selectedIds][0] : undefined);\n if (target != null) revealNodeRef.current(target);\n }\n }, [scrollToId, scrollSelectionIntoView, selectedIds]);\n\n // Retry a pending reveal after the rows change (ancestors expanded / lazy data\n // arrived) — scroll once the node materialises, then clear.\n useEffect(() => {\n const id = pendingRevealIdRef.current;\n if (id != null && scrollNodeIntoView(id)) {\n pendingRevealIdRef.current = null;\n }\n }, [scrollNodeIntoView]);\n\n // ---------------------------------------------------------------------------\n // Render: NON-virtual path (backward compatible nested-group DOM)\n // ---------------------------------------------------------------------------\n\n if (!virtualize) {\n return (\n <div\n ref={ref}\n role=\"tree\"\n aria-multiselectable={selectionMode === \"multiple\" ? true : undefined}\n onKeyDown={onKeyDown}\n className={cn(\"w-full select-none\", className)}\n {...props}\n >\n <ul role=\"none\" className=\"m-0 list-none p-0\">\n {nodes.map((node, i) => (\n <TreeItem\n key={node.id}\n node={node}\n level={1}\n setSize={nodes.length}\n posInSet={i + 1}\n expandedIds={expandedIds}\n onExpandedChange={setExpandedIds}\n selectionMode={selectionMode}\n selectedIds={selectedIds}\n onSelectionChange={setSelectedIds}\n checkboxes={checkboxes}\n surface={surface}\n activeId={activeId}\n setActiveId={setActiveId}\n // registerAndFlush (not raw registerNodeRef) so nodeRefsForFlush is\n // populated in the non-virtual path too — lets scrollToId reveal a\n // below-the-fold node. pendingFocusIdRef is virtual-only, so the\n // focus-flush branch never fires here: keyboard behavior is unchanged.\n registerNodeRef={registerAndFlush}\n lazyState={lazyState}\n onExpandLazy={handleExpandLazy}\n />\n ))}\n </ul>\n </div>\n );\n }\n\n // ---------------------------------------------------------------------------\n // Render: VIRTUAL path (flat DOM, windowed rows)\n // ---------------------------------------------------------------------------\n\n const virtualItems = virtualizer.getVirtualItems();\n\n const scrollStyle: React.CSSProperties = maxHeight\n ? { maxHeight, overflowY: \"auto\" }\n : { overflowY: \"auto\" };\n\n return (\n <div\n ref={ref}\n role=\"tree\"\n aria-multiselectable={selectionMode === \"multiple\" ? true : undefined}\n onKeyDown={onKeyDown}\n className={cn(\"w-full select-none\", className)}\n {...props}\n >\n {/* Scroll viewport — role=\"presentation\" so the tree still OWNS the\n treeitems (windowing wrappers are skipped in the a11y tree, keeping\n aria-required-children valid). */}\n <div ref={scrollRef} role=\"presentation\" style={scrollStyle} className=\"outline-none\">\n {/* Total-size spacer — gives the scroll container its full height */}\n <div\n role=\"presentation\"\n style={{ height: virtualizer.getTotalSize(), position: \"relative\" }}\n >\n {virtualItems.map((virtualRow) => {\n const row = flatRows[virtualRow.index];\n if (!row) return null;\n const { node } = row;\n const hasLoadedChildren = !!node.children?.length;\n const expandable = hasLoadedChildren || !!node.hasChildren;\n const isExpanded = expandable && expandedIds.has(node.id);\n const isSelected = selectedIds.has(node.id);\n const isActive = activeId === node.id;\n const nodeLoad: LoadState = lazyState[node.id] ?? \"idle\";\n\n return (\n <div\n key={virtualRow.key}\n role=\"presentation\"\n style={{\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: `${virtualRow.size}px`,\n transform: `translateY(${virtualRow.start}px)`,\n }}\n >\n <VirtualFlatRow\n row={row}\n isExpanded={isExpanded}\n isSelected={isSelected}\n isActive={isActive}\n lazyState={nodeLoad}\n expandable={expandable}\n selectionMode={selectionMode}\n checkboxes={checkboxes}\n surface={surface}\n onToggleExpand={handleToggleExpand}\n onSelect={handleSelectVirtual}\n onRetry={() => handleExpandLazy(node)}\n registerNodeRef={registerAndFlush}\n setActiveId={setActiveId}\n />\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}) as <T = unknown>(\n props: TreeProps<T> & { ref?: React.Ref<HTMLDivElement> },\n) => React.ReactElement | null;\n"],"mappings":"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","names":["Tree"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
cn
|
|
4
|
+
} from "./chunk-FXWWDMMP.js";
|
|
5
|
+
|
|
6
|
+
// src/components/separator/separator.tsx
|
|
7
|
+
import { forwardRef } from "react";
|
|
8
|
+
import * as SeparatorPrimitive from "@radix-ui/react-separator";
|
|
9
|
+
import { cva } from "class-variance-authority";
|
|
10
|
+
import { jsx } from "react/jsx-runtime";
|
|
11
|
+
var separatorVariants = cva("shrink-0", {
|
|
12
|
+
variants: {
|
|
13
|
+
/**
|
|
14
|
+
* `subtle` (default) — uses `--border` (a decorative/redundant boundary;
|
|
15
|
+
* compliant because the edge is also signalled by surrounding fill, elevation
|
|
16
|
+
* or spacing — WCAG 1.4.11 redundant-boundary exemption).
|
|
17
|
+
*
|
|
18
|
+
* `strong` — uses `--border-strong` (≥3:1 vs `--card`/`--background`).
|
|
19
|
+
* Use when the separator is the ONLY structural cue between two same-surface
|
|
20
|
+
* regions (no fill, elevation or spacing change to fall back on).
|
|
21
|
+
* Decision test: "If I deleted this line, could a sighted user still tell
|
|
22
|
+
* the two regions apart?" No → `strong`.
|
|
23
|
+
*/
|
|
24
|
+
tone: {
|
|
25
|
+
subtle: "bg-border",
|
|
26
|
+
strong: "bg-border-strong"
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
defaultVariants: {
|
|
30
|
+
tone: "subtle"
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
var Separator = forwardRef(
|
|
34
|
+
function Separator2({ className, orientation = "horizontal", decorative = true, tone, ...props }, ref) {
|
|
35
|
+
return /* @__PURE__ */ jsx(
|
|
36
|
+
SeparatorPrimitive.Root,
|
|
37
|
+
{
|
|
38
|
+
ref,
|
|
39
|
+
"data-slot": "separator",
|
|
40
|
+
decorative,
|
|
41
|
+
orientation,
|
|
42
|
+
className: cn(
|
|
43
|
+
separatorVariants({ tone }),
|
|
44
|
+
orientation === "horizontal" ? "h-px w-full" : "h-full w-px",
|
|
45
|
+
className
|
|
46
|
+
),
|
|
47
|
+
...props
|
|
48
|
+
}
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
);
|
|
52
|
+
|
|
53
|
+
export {
|
|
54
|
+
Separator
|
|
55
|
+
};
|
|
56
|
+
//# sourceMappingURL=chunk-MJAIURHO.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/separator/separator.tsx"],"sourcesContent":["import { forwardRef, type ComponentPropsWithoutRef, type ElementRef } from \"react\";\nimport * as SeparatorPrimitive from \"@radix-ui/react-separator\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/cn\";\n\nconst separatorVariants = cva(\"shrink-0\", {\n variants: {\n /**\n * `subtle` (default) — uses `--border` (a decorative/redundant boundary;\n * compliant because the edge is also signalled by surrounding fill, elevation\n * or spacing — WCAG 1.4.11 redundant-boundary exemption).\n *\n * `strong` — uses `--border-strong` (≥3:1 vs `--card`/`--background`).\n * Use when the separator is the ONLY structural cue between two same-surface\n * regions (no fill, elevation or spacing change to fall back on).\n * Decision test: \"If I deleted this line, could a sighted user still tell\n * the two regions apart?\" No → `strong`.\n */\n tone: {\n subtle: \"bg-border\",\n strong: \"bg-border-strong\",\n },\n },\n defaultVariants: {\n tone: \"subtle\",\n },\n});\n\nexport type SeparatorProps = ComponentPropsWithoutRef<typeof SeparatorPrimitive.Root> &\n VariantProps<typeof separatorVariants>;\n\nexport const Separator = forwardRef<ElementRef<typeof SeparatorPrimitive.Root>, SeparatorProps>(\n function Separator(\n { className, orientation = \"horizontal\", decorative = true, tone, ...props },\n ref,\n ) {\n return (\n <SeparatorPrimitive.Root\n ref={ref}\n data-slot=\"separator\"\n decorative={decorative}\n orientation={orientation}\n className={cn(\n separatorVariants({ tone }),\n orientation === \"horizontal\" ? \"h-px w-full\" : \"h-full w-px\",\n className,\n )}\n {...props}\n />\n );\n },\n);\n"],"mappings":";;;;;;AAAA,SAAS,kBAAkE;AAC3E,YAAY,wBAAwB;AACpC,SAAS,WAA8B;AAmCjC;AAhCN,IAAM,oBAAoB,IAAI,YAAY;AAAA,EACxC,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYR,MAAM;AAAA,MACJ,QAAQ;AAAA,MACR,QAAQ;AAAA,IACV;AAAA,EACF;AAAA,EACA,iBAAiB;AAAA,IACf,MAAM;AAAA,EACR;AACF,CAAC;AAKM,IAAM,YAAY;AAAA,EACvB,SAASA,WACP,EAAE,WAAW,cAAc,cAAc,aAAa,MAAM,MAAM,GAAG,MAAM,GAC3E,KACA;AACA,WACE;AAAA,MAAoB;AAAA,MAAnB;AAAA,QACC;AAAA,QACA,aAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA,WAAW;AAAA,UACT,kBAAkB,EAAE,KAAK,CAAC;AAAA,UAC1B,gBAAgB,eAAe,gBAAgB;AAAA,UAC/C;AAAA,QACF;AAAA,QACC,GAAG;AAAA;AAAA,IACN;AAAA,EAEJ;AACF;","names":["Separator"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
NumberInput
|
|
4
|
+
} from "./chunk-GTDCC4YX.js";
|
|
5
|
+
import {
|
|
6
|
+
useLocale
|
|
7
|
+
} from "./chunk-EJQYE4MY.js";
|
|
8
|
+
import {
|
|
9
|
+
cn
|
|
10
|
+
} from "./chunk-FXWWDMMP.js";
|
|
11
|
+
|
|
12
|
+
// src/components/bounded-number/bounded-number.tsx
|
|
13
|
+
import { forwardRef, useCallback, useState } from "react";
|
|
14
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
15
|
+
var BoundedNumber = forwardRef(
|
|
16
|
+
function BoundedNumber2({
|
|
17
|
+
value: valueProp,
|
|
18
|
+
defaultValue,
|
|
19
|
+
onValueChange,
|
|
20
|
+
emptyLabel,
|
|
21
|
+
onFocus,
|
|
22
|
+
onBlur,
|
|
23
|
+
className,
|
|
24
|
+
...props
|
|
25
|
+
}, ref) {
|
|
26
|
+
const { t } = useLocale();
|
|
27
|
+
const resolvedEmptyLabel = emptyLabel ?? t("ui.boundedNumber.emptyLabel");
|
|
28
|
+
const isControlled = valueProp !== void 0;
|
|
29
|
+
const [internalValue, setInternalValue] = useState(
|
|
30
|
+
defaultValue !== void 0 ? defaultValue : null
|
|
31
|
+
);
|
|
32
|
+
const [focused, setFocused] = useState(false);
|
|
33
|
+
const currentValue = isControlled ? valueProp : internalValue;
|
|
34
|
+
const handleValueChange = useCallback(
|
|
35
|
+
(next) => {
|
|
36
|
+
if (!isControlled) setInternalValue(next);
|
|
37
|
+
onValueChange?.(next);
|
|
38
|
+
},
|
|
39
|
+
[isControlled, onValueChange]
|
|
40
|
+
);
|
|
41
|
+
const handleFocus = useCallback(
|
|
42
|
+
(event) => {
|
|
43
|
+
setFocused(true);
|
|
44
|
+
onFocus?.(event);
|
|
45
|
+
},
|
|
46
|
+
[onFocus]
|
|
47
|
+
);
|
|
48
|
+
const handleBlur = useCallback(
|
|
49
|
+
(event) => {
|
|
50
|
+
setFocused(false);
|
|
51
|
+
onBlur?.(event);
|
|
52
|
+
},
|
|
53
|
+
[onBlur]
|
|
54
|
+
);
|
|
55
|
+
const showEmptyLabel = currentValue == null && !focused;
|
|
56
|
+
return (
|
|
57
|
+
// `className` lands on the ROOT (the positioning context), not on the
|
|
58
|
+
// inner `NumberInput`: a width utility on the inner control would resolve
|
|
59
|
+
// against a shrink-to-fit wrapper and silently do nothing, so
|
|
60
|
+
// `className="w-full"` could never widen the field. `w-36` is this
|
|
61
|
+
// preset's own default width (`NumberInput` itself is unconstrained and
|
|
62
|
+
// fills its container) — `cn()` lets the caller override it, and the
|
|
63
|
+
// inner `NumberInput` simply fills the root via `className="w-full"`.
|
|
64
|
+
/* @__PURE__ */ jsxs("div", { className: cn("relative inline-block w-36", className), "data-slot": "bounded-number", children: [
|
|
65
|
+
/* @__PURE__ */ jsx(
|
|
66
|
+
NumberInput,
|
|
67
|
+
{
|
|
68
|
+
ref,
|
|
69
|
+
value: currentValue,
|
|
70
|
+
onValueChange: handleValueChange,
|
|
71
|
+
onFocus: handleFocus,
|
|
72
|
+
onBlur: handleBlur,
|
|
73
|
+
className: "w-full",
|
|
74
|
+
...props
|
|
75
|
+
}
|
|
76
|
+
),
|
|
77
|
+
showEmptyLabel && /* @__PURE__ */ jsx(
|
|
78
|
+
"span",
|
|
79
|
+
{
|
|
80
|
+
"aria-hidden": "true",
|
|
81
|
+
"data-slot": "bounded-number-empty-label",
|
|
82
|
+
className: cn(
|
|
83
|
+
"pointer-events-none absolute inset-0 flex items-center justify-center",
|
|
84
|
+
"text-body text-muted-foreground"
|
|
85
|
+
),
|
|
86
|
+
children: resolvedEmptyLabel
|
|
87
|
+
}
|
|
88
|
+
)
|
|
89
|
+
] })
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
);
|
|
93
|
+
|
|
94
|
+
export {
|
|
95
|
+
BoundedNumber
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=chunk-MRBDJASL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/bounded-number/bounded-number.tsx"],"sourcesContent":["\"use client\";\n\nimport { forwardRef, useCallback, useState, type FocusEvent, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { NumberInput, type NumberInputProps } from \"../number-input\";\nimport { useLocale } from \"../locale-provider\";\n\nexport interface BoundedNumberProps extends NumberInputProps {\n /**\n * Content shown in place of the value when the field is empty (`null`) and\n * not focused — e.g. \"No limit\" for a capped setting with no cap set.\n * Defaults to \"No limit\".\n */\n emptyLabel?: ReactNode;\n}\n\n/**\n * BoundedNumber — a `NumberInput` preset for a bounded numeric where \"empty\"\n * has a semantic meaning (\"No limit\") instead of reading as a blank box.\n *\n * Written reuse verdict (see #373): this wraps `NumberInput` rather than\n * reimplementing anything. `NumberInput` already does everything the value\n * needs — blur-only clamping (`clamp`, default true) and `null` as a real,\n * distinct empty state (`commit(null)` on empty blur). The only missing\n * behaviour is rendering that empty state as a meaningful label instead of a\n * blank input, which is exactly what this preset adds: an absolutely\n * positioned, `pointer-events-none` overlay shown only while the value is\n * `null` AND the field is not focused, so the underlying input stays fully\n * clickable/typable and still round-trips to `null` on an empty blur.\n */\nexport const BoundedNumber = forwardRef<HTMLInputElement, BoundedNumberProps>(\n function BoundedNumber(\n {\n value: valueProp,\n defaultValue,\n onValueChange,\n emptyLabel,\n onFocus,\n onBlur,\n className,\n ...props\n },\n ref,\n ) {\n const { t } = useLocale();\n const resolvedEmptyLabel = emptyLabel ?? t(\"ui.boundedNumber.emptyLabel\");\n const isControlled = valueProp !== undefined;\n const [internalValue, setInternalValue] = useState<number | null>(\n defaultValue !== undefined ? defaultValue : null,\n );\n const [focused, setFocused] = useState(false);\n const currentValue = isControlled ? valueProp : internalValue;\n\n const handleValueChange = useCallback(\n (next: number | null) => {\n if (!isControlled) setInternalValue(next);\n onValueChange?.(next);\n },\n [isControlled, onValueChange],\n );\n\n const handleFocus = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocused(true);\n onFocus?.(event);\n },\n [onFocus],\n );\n\n const handleBlur = useCallback(\n (event: FocusEvent<HTMLDivElement>) => {\n setFocused(false);\n onBlur?.(event);\n },\n [onBlur],\n );\n\n const showEmptyLabel = currentValue == null && !focused;\n\n return (\n // `className` lands on the ROOT (the positioning context), not on the\n // inner `NumberInput`: a width utility on the inner control would resolve\n // against a shrink-to-fit wrapper and silently do nothing, so\n // `className=\"w-full\"` could never widen the field. `w-36` is this\n // preset's own default width (`NumberInput` itself is unconstrained and\n // fills its container) — `cn()` lets the caller override it, and the\n // inner `NumberInput` simply fills the root via `className=\"w-full\"`.\n <div className={cn(\"relative inline-block w-36\", className)} data-slot=\"bounded-number\">\n <NumberInput\n ref={ref}\n value={currentValue}\n onValueChange={handleValueChange}\n onFocus={handleFocus}\n onBlur={handleBlur}\n className=\"w-full\"\n {...props}\n />\n {showEmptyLabel && (\n <span\n aria-hidden=\"true\"\n data-slot=\"bounded-number-empty-label\"\n className={cn(\n \"pointer-events-none absolute inset-0 flex items-center justify-center\",\n \"text-body text-muted-foreground\",\n )}\n >\n {resolvedEmptyLabel}\n </span>\n )}\n </div>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;AAEA,SAAS,YAAY,aAAa,gBAAiD;AAqF7E,SACE,KADF;AAzDC,IAAM,gBAAgB;AAAA,EAC3B,SAASA,eACP;AAAA,IACE,OAAO;AAAA,IACP;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,KACA;AACA,UAAM,EAAE,EAAE,IAAI,UAAU;AACxB,UAAM,qBAAqB,cAAc,EAAE,6BAA6B;AACxE,UAAM,eAAe,cAAc;AACnC,UAAM,CAAC,eAAe,gBAAgB,IAAI;AAAA,MACxC,iBAAiB,SAAY,eAAe;AAAA,IAC9C;AACA,UAAM,CAAC,SAAS,UAAU,IAAI,SAAS,KAAK;AAC5C,UAAM,eAAe,eAAe,YAAY;AAEhD,UAAM,oBAAoB;AAAA,MACxB,CAAC,SAAwB;AACvB,YAAI,CAAC,aAAc,kBAAiB,IAAI;AACxC,wBAAgB,IAAI;AAAA,MACtB;AAAA,MACA,CAAC,cAAc,aAAa;AAAA,IAC9B;AAEA,UAAM,cAAc;AAAA,MAClB,CAAC,UAAsC;AACrC,mBAAW,IAAI;AACf,kBAAU,KAAK;AAAA,MACjB;AAAA,MACA,CAAC,OAAO;AAAA,IACV;AAEA,UAAM,aAAa;AAAA,MACjB,CAAC,UAAsC;AACrC,mBAAW,KAAK;AAChB,iBAAS,KAAK;AAAA,MAChB;AAAA,MACA,CAAC,MAAM;AAAA,IACT;AAEA,UAAM,iBAAiB,gBAAgB,QAAQ,CAAC;AAEhD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAQE,qBAAC,SAAI,WAAW,GAAG,8BAA8B,SAAS,GAAG,aAAU,kBACrE;AAAA;AAAA,UAAC;AAAA;AAAA,YACC;AAAA,YACA,OAAO;AAAA,YACP,eAAe;AAAA,YACf,SAAS;AAAA,YACT,QAAQ;AAAA,YACR,WAAU;AAAA,YACT,GAAG;AAAA;AAAA,QACN;AAAA,QACC,kBACC;AAAA,UAAC;AAAA;AAAA,YACC,eAAY;AAAA,YACZ,aAAU;AAAA,YACV,WAAW;AAAA,cACT;AAAA,cACA;AAAA,YACF;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,SAEJ;AAAA;AAAA,EAEJ;AACF;","names":["BoundedNumber"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
Popover,
|
|
4
|
+
PopoverContent,
|
|
5
|
+
PopoverTrigger
|
|
6
|
+
} from "./chunk-SGBCLZQF.js";
|
|
7
|
+
import {
|
|
8
|
+
useLocale
|
|
9
|
+
} from "./chunk-EJQYE4MY.js";
|
|
10
|
+
import {
|
|
11
|
+
cn
|
|
12
|
+
} from "./chunk-FXWWDMMP.js";
|
|
13
|
+
|
|
14
|
+
// src/components/color-picker/color-picker.tsx
|
|
15
|
+
import {
|
|
16
|
+
forwardRef,
|
|
17
|
+
useCallback,
|
|
18
|
+
useRef,
|
|
19
|
+
useState
|
|
20
|
+
} from "react";
|
|
21
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
22
|
+
var COLOR_TOKENS = [
|
|
23
|
+
"chart-1",
|
|
24
|
+
"chart-2",
|
|
25
|
+
"chart-3",
|
|
26
|
+
"chart-4",
|
|
27
|
+
"chart-5",
|
|
28
|
+
"chart-6",
|
|
29
|
+
"chart-7",
|
|
30
|
+
"chart-8",
|
|
31
|
+
"chart-9",
|
|
32
|
+
"chart-10",
|
|
33
|
+
"chart-11",
|
|
34
|
+
"chart-12",
|
|
35
|
+
"primary",
|
|
36
|
+
"secondary",
|
|
37
|
+
"destructive",
|
|
38
|
+
"success",
|
|
39
|
+
"warning",
|
|
40
|
+
"info"
|
|
41
|
+
];
|
|
42
|
+
var TOKEN_BG = {
|
|
43
|
+
"chart-1": "bg-chart-1",
|
|
44
|
+
"chart-2": "bg-chart-2",
|
|
45
|
+
"chart-3": "bg-chart-3",
|
|
46
|
+
"chart-4": "bg-chart-4",
|
|
47
|
+
"chart-5": "bg-chart-5",
|
|
48
|
+
"chart-6": "bg-chart-6",
|
|
49
|
+
"chart-7": "bg-chart-7",
|
|
50
|
+
"chart-8": "bg-chart-8",
|
|
51
|
+
"chart-9": "bg-chart-9",
|
|
52
|
+
"chart-10": "bg-chart-10",
|
|
53
|
+
"chart-11": "bg-chart-11",
|
|
54
|
+
"chart-12": "bg-chart-12",
|
|
55
|
+
primary: "bg-primary",
|
|
56
|
+
secondary: "bg-secondary",
|
|
57
|
+
destructive: "bg-destructive",
|
|
58
|
+
success: "bg-success",
|
|
59
|
+
warning: "bg-warning",
|
|
60
|
+
info: "bg-info"
|
|
61
|
+
};
|
|
62
|
+
function isColorToken(v) {
|
|
63
|
+
return Object.prototype.hasOwnProperty.call(TOKEN_BG, v);
|
|
64
|
+
}
|
|
65
|
+
var Swatch = forwardRef(function Swatch2({ token, selected, onSelect, className, ...props }, ref) {
|
|
66
|
+
return /* @__PURE__ */ jsx(
|
|
67
|
+
"button",
|
|
68
|
+
{
|
|
69
|
+
ref,
|
|
70
|
+
type: "button",
|
|
71
|
+
role: "radio",
|
|
72
|
+
"aria-checked": selected,
|
|
73
|
+
"aria-label": token,
|
|
74
|
+
onClick: () => onSelect(token),
|
|
75
|
+
className: cn(
|
|
76
|
+
"size-7 rounded-md border-2 transition-[border-color,box-shadow] duration-fast",
|
|
77
|
+
TOKEN_BG[token],
|
|
78
|
+
selected ? "border-foreground ring-2 ring-ring ring-offset-1 ring-offset-background" : "border-transparent hover:border-foreground/40",
|
|
79
|
+
"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background",
|
|
80
|
+
className
|
|
81
|
+
),
|
|
82
|
+
...props
|
|
83
|
+
}
|
|
84
|
+
);
|
|
85
|
+
});
|
|
86
|
+
function TriggerSwatch({ value, className }) {
|
|
87
|
+
const bgClass = isColorToken(value) ? TOKEN_BG[value] : void 0;
|
|
88
|
+
return /* @__PURE__ */ jsx(
|
|
89
|
+
"span",
|
|
90
|
+
{
|
|
91
|
+
className: cn("inline-block size-4 rounded-sm border border-border", bgClass, className),
|
|
92
|
+
style: !bgClass ? { backgroundColor: value } : void 0
|
|
93
|
+
}
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
var ColorPicker = forwardRef(function ColorPicker2({
|
|
97
|
+
value: valueProp,
|
|
98
|
+
defaultValue,
|
|
99
|
+
onValueChange,
|
|
100
|
+
swatches = COLOR_TOKENS,
|
|
101
|
+
allowCustom = false,
|
|
102
|
+
"aria-label": ariaLabel,
|
|
103
|
+
className,
|
|
104
|
+
...props
|
|
105
|
+
}, ref) {
|
|
106
|
+
const { t } = useLocale();
|
|
107
|
+
const resolvedAriaLabel = ariaLabel ?? t("ui.colorPicker.pickColor");
|
|
108
|
+
const isControlled = valueProp !== void 0;
|
|
109
|
+
const [internalValue, setInternalValue] = useState(
|
|
110
|
+
defaultValue ?? "chart-1"
|
|
111
|
+
);
|
|
112
|
+
const [customHex, setCustomHex] = useState("");
|
|
113
|
+
const [open, setOpen] = useState(false);
|
|
114
|
+
const current = isControlled ? valueProp ?? "" : internalValue;
|
|
115
|
+
const commit = useCallback(
|
|
116
|
+
(next) => {
|
|
117
|
+
if (!isControlled) setInternalValue(next);
|
|
118
|
+
onValueChange?.(next);
|
|
119
|
+
},
|
|
120
|
+
[isControlled, onValueChange]
|
|
121
|
+
);
|
|
122
|
+
const handleSwatchSelect = useCallback(
|
|
123
|
+
(token) => {
|
|
124
|
+
commit(token);
|
|
125
|
+
setOpen(false);
|
|
126
|
+
},
|
|
127
|
+
[commit]
|
|
128
|
+
);
|
|
129
|
+
const handleCustomSubmit = useCallback(() => {
|
|
130
|
+
const hex = customHex.trim();
|
|
131
|
+
if (/^#([0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/.test(hex)) {
|
|
132
|
+
commit(hex);
|
|
133
|
+
setOpen(false);
|
|
134
|
+
}
|
|
135
|
+
}, [customHex, commit]);
|
|
136
|
+
const groupRef = useRef(null);
|
|
137
|
+
const handleGroupKeyDown = useCallback((e) => {
|
|
138
|
+
const buttons = groupRef.current ? Array.from(groupRef.current.querySelectorAll("[role=radio]")) : [];
|
|
139
|
+
if (!buttons.length) return;
|
|
140
|
+
const focused = document.activeElement;
|
|
141
|
+
const idx = buttons.indexOf(focused);
|
|
142
|
+
if (idx === -1) return;
|
|
143
|
+
if (e.key === "ArrowRight" || e.key === "ArrowDown") {
|
|
144
|
+
e.preventDefault();
|
|
145
|
+
buttons[(idx + 1) % buttons.length]?.focus();
|
|
146
|
+
} else if (e.key === "ArrowLeft" || e.key === "ArrowUp") {
|
|
147
|
+
e.preventDefault();
|
|
148
|
+
buttons[(idx - 1 + buttons.length) % buttons.length]?.focus();
|
|
149
|
+
}
|
|
150
|
+
}, []);
|
|
151
|
+
return /* @__PURE__ */ jsx("div", { ref, className: cn("inline-flex", className), ...props, children: /* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
152
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
153
|
+
"button",
|
|
154
|
+
{
|
|
155
|
+
type: "button",
|
|
156
|
+
"aria-label": resolvedAriaLabel,
|
|
157
|
+
"aria-haspopup": "dialog",
|
|
158
|
+
"aria-expanded": open,
|
|
159
|
+
className: cn(
|
|
160
|
+
"inline-flex items-center gap-2 rounded-md border border-input bg-background px-3 py-1.5 text-body shadow-sm",
|
|
161
|
+
"transition-[color,box-shadow] duration-fast",
|
|
162
|
+
"hover:bg-accent hover:text-accent-foreground",
|
|
163
|
+
"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-input-focus",
|
|
164
|
+
"disabled:pointer-events-none disabled:opacity-50"
|
|
165
|
+
),
|
|
166
|
+
children: [
|
|
167
|
+
/* @__PURE__ */ jsx(TriggerSwatch, { value: current }),
|
|
168
|
+
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: current || t("ui.colorPicker.none") })
|
|
169
|
+
]
|
|
170
|
+
}
|
|
171
|
+
) }),
|
|
172
|
+
/* @__PURE__ */ jsxs(PopoverContent, { className: "w-auto p-3", align: "start", children: [
|
|
173
|
+
/* @__PURE__ */ jsx(
|
|
174
|
+
"div",
|
|
175
|
+
{
|
|
176
|
+
ref: groupRef,
|
|
177
|
+
role: "radiogroup",
|
|
178
|
+
"aria-label": t("ui.colorPicker.swatches"),
|
|
179
|
+
className: "flex flex-wrap gap-1.5",
|
|
180
|
+
onKeyDown: handleGroupKeyDown,
|
|
181
|
+
children: swatches.map((token) => /* @__PURE__ */ jsx(
|
|
182
|
+
Swatch,
|
|
183
|
+
{
|
|
184
|
+
token,
|
|
185
|
+
selected: current === token,
|
|
186
|
+
onSelect: handleSwatchSelect
|
|
187
|
+
},
|
|
188
|
+
token
|
|
189
|
+
))
|
|
190
|
+
}
|
|
191
|
+
),
|
|
192
|
+
allowCustom && /* @__PURE__ */ jsxs("div", { className: "mt-3 border-t border-border pt-3", children: [
|
|
193
|
+
/* @__PURE__ */ jsxs("p", { className: "mb-1.5 text-meta text-muted-foreground", children: [
|
|
194
|
+
t("ui.colorPicker.customHexLabel"),
|
|
195
|
+
" ",
|
|
196
|
+
/* @__PURE__ */ jsx("span", { className: "text-warning-text", children: t("ui.colorPicker.notThemeAware") })
|
|
197
|
+
] }),
|
|
198
|
+
/* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
199
|
+
/* @__PURE__ */ jsx(
|
|
200
|
+
"input",
|
|
201
|
+
{
|
|
202
|
+
type: "text",
|
|
203
|
+
value: customHex,
|
|
204
|
+
placeholder: "#3b82f6",
|
|
205
|
+
maxLength: 7,
|
|
206
|
+
spellCheck: false,
|
|
207
|
+
"aria-label": t("ui.colorPicker.customHex"),
|
|
208
|
+
onChange: (e) => setCustomHex(e.target.value),
|
|
209
|
+
onKeyDown: (e) => {
|
|
210
|
+
if (e.key === "Enter") {
|
|
211
|
+
e.preventDefault();
|
|
212
|
+
handleCustomSubmit();
|
|
213
|
+
}
|
|
214
|
+
},
|
|
215
|
+
className: cn(
|
|
216
|
+
"h-8 w-28 rounded-md border border-input bg-background px-2 text-body",
|
|
217
|
+
"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-input-focus",
|
|
218
|
+
"placeholder:text-muted-foreground"
|
|
219
|
+
)
|
|
220
|
+
}
|
|
221
|
+
),
|
|
222
|
+
/* @__PURE__ */ jsx(
|
|
223
|
+
"button",
|
|
224
|
+
{
|
|
225
|
+
type: "button",
|
|
226
|
+
onClick: handleCustomSubmit,
|
|
227
|
+
className: cn(
|
|
228
|
+
"h-8 rounded-md border border-input bg-background px-2 text-body",
|
|
229
|
+
"hover:bg-accent hover:text-accent-foreground",
|
|
230
|
+
"focus-ring focus-visible:ring-offset-1 focus-visible:ring-offset-background focus-visible:border-input-focus"
|
|
231
|
+
),
|
|
232
|
+
children: "Apply"
|
|
233
|
+
}
|
|
234
|
+
)
|
|
235
|
+
] })
|
|
236
|
+
] })
|
|
237
|
+
] })
|
|
238
|
+
] }) });
|
|
239
|
+
});
|
|
240
|
+
|
|
241
|
+
export {
|
|
242
|
+
COLOR_TOKENS,
|
|
243
|
+
ColorPicker
|
|
244
|
+
};
|
|
245
|
+
//# sourceMappingURL=chunk-MY5H6D5Y.js.map
|