@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,68 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
toast
|
|
4
|
+
} from "./chunk-YUFDC6RW.js";
|
|
5
|
+
import {
|
|
6
|
+
useCopyToClipboard
|
|
7
|
+
} from "./chunk-FBJ2JSRA.js";
|
|
8
|
+
import {
|
|
9
|
+
useLocale
|
|
10
|
+
} from "./chunk-EJQYE4MY.js";
|
|
11
|
+
import {
|
|
12
|
+
cn
|
|
13
|
+
} from "./chunk-FXWWDMMP.js";
|
|
14
|
+
|
|
15
|
+
// src/components/copyable-value/copyable-value.tsx
|
|
16
|
+
import { forwardRef } from "react";
|
|
17
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
18
|
+
var COPYABLE_VALUE_TOAST_MS = 1e3;
|
|
19
|
+
var CopyableValue = forwardRef(
|
|
20
|
+
function CopyableValue2({ value, children, hint, resetAfterMs, className, onClick, ...props }, ref) {
|
|
21
|
+
const { t } = useLocale();
|
|
22
|
+
const { copied, copy } = useCopyToClipboard(
|
|
23
|
+
resetAfterMs === void 0 ? void 0 : { resetAfterMs }
|
|
24
|
+
);
|
|
25
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
26
|
+
/* @__PURE__ */ jsxs(
|
|
27
|
+
"button",
|
|
28
|
+
{
|
|
29
|
+
"data-slot": "copyable-value",
|
|
30
|
+
"data-copied": copied ? "" : void 0,
|
|
31
|
+
ref,
|
|
32
|
+
type: "button",
|
|
33
|
+
...props,
|
|
34
|
+
className: cn(
|
|
35
|
+
// Reads as text, behaves as a control: the dotted underline is the
|
|
36
|
+
// only resting affordance, so a value inside a heading or a KPI
|
|
37
|
+
// still looks like a value, not a link.
|
|
38
|
+
"inline-flex items-baseline gap-1 rounded-sm underline decoration-dotted decoration-muted-foreground underline-offset-4",
|
|
39
|
+
"hover:decoration-foreground focus-ring",
|
|
40
|
+
"transition-colors duration-fast ease-standard motion-reduce:transition-none",
|
|
41
|
+
className
|
|
42
|
+
),
|
|
43
|
+
onClick: (event) => {
|
|
44
|
+
onClick?.(event);
|
|
45
|
+
if (!event.defaultPrevented) {
|
|
46
|
+
void copy(value).then((ok) => {
|
|
47
|
+
if (ok) {
|
|
48
|
+
toast(t("ui.copyableValue.copied"), { duration: COPYABLE_VALUE_TOAST_MS });
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
children: [
|
|
54
|
+
children ?? value,
|
|
55
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: hint ?? t("ui.copyableValue.hint") })
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
),
|
|
59
|
+
/* @__PURE__ */ jsx("span", { "aria-live": "polite", className: "sr-only", role: "status", children: copied ? t("ui.copyableValue.copied") : "" })
|
|
60
|
+
] });
|
|
61
|
+
}
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
export {
|
|
65
|
+
COPYABLE_VALUE_TOAST_MS,
|
|
66
|
+
CopyableValue
|
|
67
|
+
};
|
|
68
|
+
//# sourceMappingURL=chunk-CEDK5GM2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/copyable-value/copyable-value.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * CopyableValue — shown short, copied exact.\n *\n * Numbers across the library are formatted COMPACT by default (`1.5M`, `$820`),\n * because the surfaces they appear on — a KPI tile, an axis tick, a chart in a\n * chat bubble — have no room for `50012102.632741`. That is only defensible if\n * the exact value stays reachable, so this renders the compact string as a real\n * `<button>` that puts the unrounded one on the clipboard.\n *\n * Why a button and not a tooltip: a chart tooltip is `pointer-events-none` (it\n * must not swallow the `mousemove` that drives the crosshair), so it can carry\n * text but never an interaction. A button is reachable by mouse, by keyboard,\n * and by touch — all three, with no bespoke affordance.\n */\n\nimport { forwardRef, type ButtonHTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../../lib/cn\";\nimport { useCopyToClipboard } from \"../../lib/use-copy-to-clipboard\";\nimport { useLocale } from \"../locale-provider\";\nimport { toast } from \"../sonner\";\n\n/** ms the copy-confirmation toast stays on screen. */\nexport const COPYABLE_VALUE_TOAST_MS = 1000;\n\nexport interface CopyableValueProps extends Omit<\n ButtonHTMLAttributes<HTMLButtonElement>,\n \"value\" | \"children\"\n> {\n /**\n * The EXACT text written to the clipboard — the unrounded, un-abbreviated\n * value. Not locale-formatted by this component: a copied number is usually\n * on its way into a spreadsheet or a query.\n */\n value: string;\n /** What the reader sees. Defaults to `value`. */\n children?: ReactNode;\n /**\n * Overrides the screen-reader hint appended to the visible text. The\n * accessible name is always `<visible text> + <hint>`, which keeps WCAG 2.5.3\n * (Label in Name) satisfied — voice-control users can say what they read.\n */\n hint?: string;\n /** ms the \"Copied\" confirmation stays. Default: 1500. */\n resetAfterMs?: number;\n}\n\n/**\n * A value that copies its exact form on click.\n *\n * ```tsx\n * <CopyableValue value=\"50012102.632741\">50M</CopyableValue>\n * ```\n */\nexport const CopyableValue = forwardRef<HTMLButtonElement, CopyableValueProps>(\n function CopyableValue(\n { value, children, hint, resetAfterMs, className, onClick, ...props },\n ref,\n ) {\n const { t } = useLocale();\n const { copied, copy } = useCopyToClipboard(\n resetAfterMs === undefined ? undefined : { resetAfterMs },\n );\n\n return (\n <>\n <button\n data-slot=\"copyable-value\"\n data-copied={copied ? \"\" : undefined}\n ref={ref}\n type=\"button\"\n {...props}\n className={cn(\n // Reads as text, behaves as a control: the dotted underline is the\n // only resting affordance, so a value inside a heading or a KPI\n // still looks like a value, not a link.\n \"inline-flex items-baseline gap-1 rounded-sm underline decoration-dotted decoration-muted-foreground underline-offset-4\",\n \"hover:decoration-foreground focus-ring\",\n \"transition-colors duration-fast ease-standard motion-reduce:transition-none\",\n className,\n )}\n onClick={(event) => {\n onClick?.(event);\n if (!event.defaultPrevented) {\n // The toast is the visible confirmation; it needs an app-mounted\n // `<Toaster />` and is a silent no-op without one, which is why\n // the live region below stays as the always-present fallback.\n void copy(value).then((ok) => {\n if (ok) {\n toast(t(\"ui.copyableValue.copied\"), { duration: COPYABLE_VALUE_TOAST_MS });\n }\n });\n }\n }}\n >\n {children ?? value}\n <span className=\"sr-only\">{hint ?? t(\"ui.copyableValue.hint\")}</span>\n </button>\n {/*\n One live region per control, always mounted: an `aria-live` region\n inserted at the same moment its text appears is frequently missed by\n screen readers (ARIA22), so the region exists from first paint and\n only its contents change.\n */}\n <span aria-live=\"polite\" className=\"sr-only\" role=\"status\">\n {copied ? t(\"ui.copyableValue.copied\") : \"\"}\n </span>\n </>\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,SAAS,kBAA6D;AAiDhE,mBA+BI,KA9BF,YADF;AA1CC,IAAM,0BAA0B;AA+BhC,IAAM,gBAAgB;AAAA,EAC3B,SAASA,eACP,EAAE,OAAO,UAAU,MAAM,cAAc,WAAW,SAAS,GAAG,MAAM,GACpE,KACA;AACA,UAAM,EAAE,EAAE,IAAI,UAAU;AACxB,UAAM,EAAE,QAAQ,KAAK,IAAI;AAAA,MACvB,iBAAiB,SAAY,SAAY,EAAE,aAAa;AAAA,IAC1D;AAEA,WACE,iCACE;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,eAAa,SAAS,KAAK;AAAA,UAC3B;AAAA,UACA,MAAK;AAAA,UACJ,GAAG;AAAA,UACJ,WAAW;AAAA;AAAA;AAAA;AAAA,YAIT;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UACA,SAAS,CAAC,UAAU;AAClB,sBAAU,KAAK;AACf,gBAAI,CAAC,MAAM,kBAAkB;AAI3B,mBAAK,KAAK,KAAK,EAAE,KAAK,CAAC,OAAO;AAC5B,oBAAI,IAAI;AACN,wBAAM,EAAE,yBAAyB,GAAG,EAAE,UAAU,wBAAwB,CAAC;AAAA,gBAC3E;AAAA,cACF,CAAC;AAAA,YACH;AAAA,UACF;AAAA,UAEC;AAAA,wBAAY;AAAA,YACb,oBAAC,UAAK,WAAU,WAAW,kBAAQ,EAAE,uBAAuB,GAAE;AAAA;AAAA;AAAA,MAChE;AAAA,MAOA,oBAAC,UAAK,aAAU,UAAS,WAAU,WAAU,MAAK,UAC/C,mBAAS,EAAE,yBAAyB,IAAI,IAC3C;AAAA,OACF;AAAA,EAEJ;AACF;","names":["CopyableValue"]}
|
|
@@ -0,0 +1,476 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
formatElapsed
|
|
4
|
+
} from "./chunk-3P7SRCDB.js";
|
|
5
|
+
import {
|
|
6
|
+
StatusIcon
|
|
7
|
+
} from "./chunk-DXC3DTCV.js";
|
|
8
|
+
import {
|
|
9
|
+
StatePanel
|
|
10
|
+
} from "./chunk-Y33ZFTMR.js";
|
|
11
|
+
import {
|
|
12
|
+
Collapsible,
|
|
13
|
+
CollapsibleContent,
|
|
14
|
+
CollapsibleTrigger
|
|
15
|
+
} from "./chunk-FG3PDWE3.js";
|
|
16
|
+
import {
|
|
17
|
+
Badge
|
|
18
|
+
} from "./chunk-HNLYRHAU.js";
|
|
19
|
+
import {
|
|
20
|
+
useLocale
|
|
21
|
+
} from "./chunk-EJQYE4MY.js";
|
|
22
|
+
import {
|
|
23
|
+
Button
|
|
24
|
+
} from "./chunk-C5QBV5RE.js";
|
|
25
|
+
import {
|
|
26
|
+
cn
|
|
27
|
+
} from "./chunk-FXWWDMMP.js";
|
|
28
|
+
|
|
29
|
+
// src/components/change-review/change-review.tsx
|
|
30
|
+
import {
|
|
31
|
+
createContext,
|
|
32
|
+
forwardRef,
|
|
33
|
+
use,
|
|
34
|
+
useCallback,
|
|
35
|
+
useId,
|
|
36
|
+
useMemo,
|
|
37
|
+
useState
|
|
38
|
+
} from "react";
|
|
39
|
+
import { Check, X, CheckCheck, User, Bot, Clock, ChevronDown } from "lucide-react";
|
|
40
|
+
import { cva } from "class-variance-authority";
|
|
41
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
42
|
+
var ChangeReviewContext = createContext(null);
|
|
43
|
+
function useChangeReview() {
|
|
44
|
+
const ctx = use(ChangeReviewContext);
|
|
45
|
+
if (!ctx) {
|
|
46
|
+
throw new Error("ChangeReview sub-components must be rendered inside ChangeReview.Provider");
|
|
47
|
+
}
|
|
48
|
+
return ctx;
|
|
49
|
+
}
|
|
50
|
+
var hunkVariants = cva(
|
|
51
|
+
[
|
|
52
|
+
"relative rounded-md border border-border bg-card text-card-foreground",
|
|
53
|
+
"transition-colors duration-fast ease-standard motion-reduce:transition-none"
|
|
54
|
+
],
|
|
55
|
+
{
|
|
56
|
+
variants: {
|
|
57
|
+
status: {
|
|
58
|
+
added: "border-s-4 border-s-success",
|
|
59
|
+
removed: "border-s-4 border-s-destructive",
|
|
60
|
+
modified: "border-s-4 border-s-info"
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
defaultVariants: { status: "modified" }
|
|
64
|
+
}
|
|
65
|
+
);
|
|
66
|
+
function ChangeReviewProvider({
|
|
67
|
+
hunks,
|
|
68
|
+
approved: approvedProp,
|
|
69
|
+
onToggle,
|
|
70
|
+
onApproveAll,
|
|
71
|
+
onRejectAll,
|
|
72
|
+
children
|
|
73
|
+
}) {
|
|
74
|
+
const headingId = useId();
|
|
75
|
+
const isControlled = approvedProp !== void 0;
|
|
76
|
+
const [internalApproved, setInternalApproved] = useState(() => /* @__PURE__ */ new Set());
|
|
77
|
+
const resolvedApproved = isControlled ? approvedProp instanceof Set ? approvedProp : new Set(approvedProp) : internalApproved;
|
|
78
|
+
const hunkIds = useMemo(() => hunks.map((h) => h.id), [hunks]);
|
|
79
|
+
const toggle = useCallback(
|
|
80
|
+
(id, next) => {
|
|
81
|
+
onToggle?.(id, next);
|
|
82
|
+
if (!isControlled) {
|
|
83
|
+
setInternalApproved((prev) => {
|
|
84
|
+
const next_ = new Set(prev);
|
|
85
|
+
if (next) next_.add(id);
|
|
86
|
+
else next_.delete(id);
|
|
87
|
+
return next_;
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
},
|
|
91
|
+
[isControlled, onToggle]
|
|
92
|
+
);
|
|
93
|
+
const approveAll = useCallback(() => {
|
|
94
|
+
onApproveAll?.();
|
|
95
|
+
if (!isControlled) {
|
|
96
|
+
setInternalApproved(new Set(hunkIds));
|
|
97
|
+
}
|
|
98
|
+
}, [isControlled, hunkIds, onApproveAll]);
|
|
99
|
+
const rejectAll = useCallback(() => {
|
|
100
|
+
onRejectAll?.();
|
|
101
|
+
if (!isControlled) {
|
|
102
|
+
setInternalApproved(/* @__PURE__ */ new Set());
|
|
103
|
+
}
|
|
104
|
+
}, [isControlled, onRejectAll]);
|
|
105
|
+
const approvedCount = hunkIds.filter((id) => resolvedApproved.has(id)).length;
|
|
106
|
+
const totalCount = hunkIds.length;
|
|
107
|
+
const state = {
|
|
108
|
+
approved: resolvedApproved,
|
|
109
|
+
totalCount,
|
|
110
|
+
approvedCount,
|
|
111
|
+
allApproved: totalCount > 0 && approvedCount === totalCount,
|
|
112
|
+
noneApproved: approvedCount === 0
|
|
113
|
+
};
|
|
114
|
+
const actions = { toggle, approveAll, rejectAll };
|
|
115
|
+
const value = useMemo(
|
|
116
|
+
() => ({ state, actions, hunks, headingId }),
|
|
117
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
118
|
+
[state.approved, state.totalCount, state.approvedCount, hunks, headingId]
|
|
119
|
+
);
|
|
120
|
+
return /* @__PURE__ */ jsx(ChangeReviewContext.Provider, { value, children });
|
|
121
|
+
}
|
|
122
|
+
var ChangeReviewHeader = forwardRef(
|
|
123
|
+
function ChangeReviewHeader2({ className, ...props }, ref) {
|
|
124
|
+
const { t } = useLocale();
|
|
125
|
+
const { state, actions, headingId } = useChangeReview();
|
|
126
|
+
const { approvedCount, totalCount, allApproved, noneApproved } = state;
|
|
127
|
+
return /* @__PURE__ */ jsxs(
|
|
128
|
+
"div",
|
|
129
|
+
{
|
|
130
|
+
ref,
|
|
131
|
+
className: cn("flex flex-wrap items-center justify-between gap-3 pb-3", className),
|
|
132
|
+
...props,
|
|
133
|
+
children: [
|
|
134
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
135
|
+
/* @__PURE__ */ jsx("span", { id: headingId, className: "text-subtitle text-foreground truncate", children: t("ui.changeReview.heading") }),
|
|
136
|
+
/* @__PURE__ */ jsx(Badge, { variant: allApproved ? "success" : approvedCount > 0 ? "info" : "secondary", children: t("ui.changeReview.approvedCount", { approved: approvedCount, total: totalCount }) })
|
|
137
|
+
] }),
|
|
138
|
+
totalCount > 0 && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 shrink-0", children: [
|
|
139
|
+
/* @__PURE__ */ jsxs(
|
|
140
|
+
Button,
|
|
141
|
+
{
|
|
142
|
+
size: "sm",
|
|
143
|
+
variant: "outline-subtle",
|
|
144
|
+
disabled: noneApproved,
|
|
145
|
+
onClick: actions.rejectAll,
|
|
146
|
+
"aria-label": t("ui.changeReview.rejectAllLabel"),
|
|
147
|
+
children: [
|
|
148
|
+
/* @__PURE__ */ jsx(X, { "aria-hidden": "true" }),
|
|
149
|
+
t("ui.changeReview.rejectAll")
|
|
150
|
+
]
|
|
151
|
+
}
|
|
152
|
+
),
|
|
153
|
+
/* @__PURE__ */ jsxs(
|
|
154
|
+
Button,
|
|
155
|
+
{
|
|
156
|
+
size: "sm",
|
|
157
|
+
variant: allApproved ? "secondary" : "default",
|
|
158
|
+
disabled: allApproved,
|
|
159
|
+
onClick: actions.approveAll,
|
|
160
|
+
"aria-label": t("ui.changeReview.approveAllLabel"),
|
|
161
|
+
children: [
|
|
162
|
+
/* @__PURE__ */ jsx(CheckCheck, { "aria-hidden": "true" }),
|
|
163
|
+
t("ui.changeReview.approveAll")
|
|
164
|
+
]
|
|
165
|
+
}
|
|
166
|
+
)
|
|
167
|
+
] })
|
|
168
|
+
]
|
|
169
|
+
}
|
|
170
|
+
);
|
|
171
|
+
}
|
|
172
|
+
);
|
|
173
|
+
function isChangeProvenance(v) {
|
|
174
|
+
return typeof v === "object" && v !== null && !Array.isArray(v) && ("author" in v || "model" in v || "timestamp" in v || "note" in v);
|
|
175
|
+
}
|
|
176
|
+
var ChangeReviewProvenance = forwardRef(
|
|
177
|
+
function ChangeReviewProvenance2({ provenance, className, ...props }, ref) {
|
|
178
|
+
const { t } = useLocale();
|
|
179
|
+
if (isChangeProvenance(provenance)) {
|
|
180
|
+
const { author, model, timestamp, note } = provenance;
|
|
181
|
+
return /* @__PURE__ */ jsxs(
|
|
182
|
+
"div",
|
|
183
|
+
{
|
|
184
|
+
ref,
|
|
185
|
+
className: cn(
|
|
186
|
+
"flex flex-wrap items-center gap-x-3 gap-y-1 text-caption text-muted-foreground pb-3",
|
|
187
|
+
className
|
|
188
|
+
),
|
|
189
|
+
role: "group",
|
|
190
|
+
"aria-label": t("ui.changeReview.provenanceLabel"),
|
|
191
|
+
...props,
|
|
192
|
+
children: [
|
|
193
|
+
author && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
194
|
+
/* @__PURE__ */ jsx(User, { "aria-hidden": "true", className: "size-3" }),
|
|
195
|
+
/* @__PURE__ */ jsx("span", { children: author })
|
|
196
|
+
] }),
|
|
197
|
+
model && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
198
|
+
/* @__PURE__ */ jsx(Bot, { "aria-hidden": "true", className: "size-3" }),
|
|
199
|
+
/* @__PURE__ */ jsx("span", { translate: "no", children: model })
|
|
200
|
+
] }),
|
|
201
|
+
timestamp && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
202
|
+
/* @__PURE__ */ jsx(Clock, { "aria-hidden": "true", className: "size-3" }),
|
|
203
|
+
/* @__PURE__ */ jsx("time", { children: timestamp })
|
|
204
|
+
] }),
|
|
205
|
+
note && /* @__PURE__ */ jsx("span", { className: "text-muted-foreground/70", children: note })
|
|
206
|
+
]
|
|
207
|
+
}
|
|
208
|
+
);
|
|
209
|
+
}
|
|
210
|
+
return /* @__PURE__ */ jsx(
|
|
211
|
+
"div",
|
|
212
|
+
{
|
|
213
|
+
ref,
|
|
214
|
+
className: cn("pb-3 text-caption text-muted-foreground", className),
|
|
215
|
+
role: "group",
|
|
216
|
+
"aria-label": t("ui.changeReview.provenanceLabel"),
|
|
217
|
+
...props,
|
|
218
|
+
children: provenance
|
|
219
|
+
}
|
|
220
|
+
);
|
|
221
|
+
}
|
|
222
|
+
);
|
|
223
|
+
var ChangeReviewList = forwardRef(
|
|
224
|
+
function ChangeReviewList2({ className, children, ...props }, ref) {
|
|
225
|
+
const { t } = useLocale();
|
|
226
|
+
const { hunks, headingId } = useChangeReview();
|
|
227
|
+
if (hunks.length === 0) {
|
|
228
|
+
return /* @__PURE__ */ jsx(
|
|
229
|
+
StatePanel,
|
|
230
|
+
{
|
|
231
|
+
kind: "empty",
|
|
232
|
+
title: t("ui.changeReview.emptyTitle"),
|
|
233
|
+
description: t("ui.changeReview.emptyDescription"),
|
|
234
|
+
className: "my-2"
|
|
235
|
+
}
|
|
236
|
+
);
|
|
237
|
+
}
|
|
238
|
+
return /* @__PURE__ */ jsx(
|
|
239
|
+
"ol",
|
|
240
|
+
{
|
|
241
|
+
ref,
|
|
242
|
+
"aria-labelledby": headingId,
|
|
243
|
+
className: cn("flex flex-col gap-3", className),
|
|
244
|
+
...props,
|
|
245
|
+
children
|
|
246
|
+
}
|
|
247
|
+
);
|
|
248
|
+
}
|
|
249
|
+
);
|
|
250
|
+
var HUNK_STATUS_ICONS = {
|
|
251
|
+
added: /* @__PURE__ */ jsx("span", { className: "text-success-text font-bold text-meta", "aria-hidden": "true", children: "+" }),
|
|
252
|
+
removed: (
|
|
253
|
+
// #124: sibling of `added`/`modified` above — this glyph is a decorative
|
|
254
|
+
// aria-hidden marker beside a labelled span (see HUNK_STATUS_LABELS), and
|
|
255
|
+
// reads as running text at the type scale, so it takes the ink rung the
|
|
256
|
+
// other two already use.
|
|
257
|
+
/* @__PURE__ */ jsx("span", { className: "text-destructive-text font-bold text-meta", "aria-hidden": "true", children: "\u2212" })
|
|
258
|
+
),
|
|
259
|
+
modified: /* @__PURE__ */ jsx("span", { className: "text-info-text font-bold text-meta", "aria-hidden": "true", children: "~" })
|
|
260
|
+
};
|
|
261
|
+
var HUNK_STATUS_LABEL_KEYS = {
|
|
262
|
+
added: "ui.changeReview.statusAdded",
|
|
263
|
+
removed: "ui.changeReview.statusRemoved",
|
|
264
|
+
modified: "ui.changeReview.statusModified"
|
|
265
|
+
};
|
|
266
|
+
var CHECK_DETAIL_COLLAPSE_THRESHOLD = 80;
|
|
267
|
+
function isLongCheckDetail(detail) {
|
|
268
|
+
return detail.length > CHECK_DETAIL_COLLAPSE_THRESHOLD || detail.includes("\n");
|
|
269
|
+
}
|
|
270
|
+
var CHECK_PHASE_LABEL_KEYS = {
|
|
271
|
+
before: "ui.changeReview.phaseBefore",
|
|
272
|
+
after: "ui.changeReview.phaseAfter"
|
|
273
|
+
};
|
|
274
|
+
function groupChecksByPhase(checks) {
|
|
275
|
+
const before = checks.filter((c) => c.phase === "before");
|
|
276
|
+
const after = checks.filter((c) => c.phase === "after");
|
|
277
|
+
const showPhaseLabels = before.length > 0 && after.length > 0;
|
|
278
|
+
if (!showPhaseLabels) {
|
|
279
|
+
return [{ items: checks }];
|
|
280
|
+
}
|
|
281
|
+
const rest = checks.filter((c) => c.phase !== "before" && c.phase !== "after");
|
|
282
|
+
const groups = [];
|
|
283
|
+
if (rest.length > 0) groups.push({ items: rest });
|
|
284
|
+
groups.push({ phase: "before", items: before });
|
|
285
|
+
groups.push({ phase: "after", items: after });
|
|
286
|
+
return groups;
|
|
287
|
+
}
|
|
288
|
+
function ChangeCheckRow({ check }) {
|
|
289
|
+
const { t } = useLocale();
|
|
290
|
+
const [detailOpen, setDetailOpen] = useState(false);
|
|
291
|
+
const { label, ok, detail, durationMs } = check;
|
|
292
|
+
const statusWord = ok ? t("ui.changeReview.checkPassed") : t("ui.changeReview.checkFailed");
|
|
293
|
+
const hasDetail = detail !== void 0 && detail !== "";
|
|
294
|
+
const longDetail = hasDetail && isLongCheckDetail(detail);
|
|
295
|
+
return /* @__PURE__ */ jsxs("div", { "data-slot": "change-review-hunk-check", "data-ok": ok, className: "flex flex-col gap-1", children: [
|
|
296
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center gap-x-1.5 gap-y-0.5 min-w-0", children: [
|
|
297
|
+
/* @__PURE__ */ jsx(StatusIcon, { status: ok ? "complete" : "failed", className: "size-3.5 shrink-0" }),
|
|
298
|
+
/* @__PURE__ */ jsx("span", { className: "text-caption font-medium text-foreground truncate", children: label }),
|
|
299
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-caption", ok ? "text-success-text" : "text-destructive-text"), children: statusWord }),
|
|
300
|
+
durationMs !== void 0 && /* @__PURE__ */ jsx("span", { className: "text-caption text-muted-foreground tabular-nums shrink-0", children: formatElapsed(durationMs) })
|
|
301
|
+
] }),
|
|
302
|
+
hasDetail && (longDetail ? /* @__PURE__ */ jsxs(Collapsible, { open: detailOpen, onOpenChange: setDetailOpen, children: [
|
|
303
|
+
/* @__PURE__ */ jsxs(
|
|
304
|
+
CollapsibleTrigger,
|
|
305
|
+
{
|
|
306
|
+
className: cn(
|
|
307
|
+
"flex items-center gap-1 self-start rounded-sm ps-5 text-caption text-muted-foreground",
|
|
308
|
+
"hover:text-foreground focus-ring"
|
|
309
|
+
),
|
|
310
|
+
children: [
|
|
311
|
+
/* @__PURE__ */ jsx(
|
|
312
|
+
ChevronDown,
|
|
313
|
+
{
|
|
314
|
+
"aria-hidden": "true",
|
|
315
|
+
className: cn(
|
|
316
|
+
"size-3 transition-transform duration-fast motion-reduce:transition-none",
|
|
317
|
+
detailOpen ? "rotate-180" : "rotate-0"
|
|
318
|
+
)
|
|
319
|
+
}
|
|
320
|
+
),
|
|
321
|
+
detailOpen ? t("ui.changeReview.hideDetail") : t("ui.changeReview.showDetail")
|
|
322
|
+
]
|
|
323
|
+
}
|
|
324
|
+
),
|
|
325
|
+
/* @__PURE__ */ jsx(CollapsibleContent, { "data-slot": "change-review-hunk-check-detail", children: /* @__PURE__ */ jsx("p", { className: "ps-5 pt-1 text-caption text-muted-foreground break-words", children: detail }) })
|
|
326
|
+
] }) : /* @__PURE__ */ jsx(
|
|
327
|
+
"p",
|
|
328
|
+
{
|
|
329
|
+
"data-slot": "change-review-hunk-check-detail",
|
|
330
|
+
className: "ps-5 text-caption text-muted-foreground break-words",
|
|
331
|
+
children: detail
|
|
332
|
+
}
|
|
333
|
+
))
|
|
334
|
+
] });
|
|
335
|
+
}
|
|
336
|
+
function ChangeReviewChecks({ checks }) {
|
|
337
|
+
const { t } = useLocale();
|
|
338
|
+
const groups = groupChecksByPhase(checks);
|
|
339
|
+
const showPhaseLabels = groups.some((g) => g.phase !== void 0);
|
|
340
|
+
return /* @__PURE__ */ jsx(
|
|
341
|
+
"div",
|
|
342
|
+
{
|
|
343
|
+
"data-slot": "change-review-hunk-checks",
|
|
344
|
+
className: "flex flex-col gap-2 border-t border-border pt-3",
|
|
345
|
+
children: groups.map((group, index) => /* @__PURE__ */ jsxs(
|
|
346
|
+
"div",
|
|
347
|
+
{
|
|
348
|
+
"data-slot": "change-review-hunk-checks-phase",
|
|
349
|
+
className: "flex flex-col gap-1.5",
|
|
350
|
+
children: [
|
|
351
|
+
showPhaseLabels && group.phase && /* @__PURE__ */ jsx("span", { className: "text-meta font-medium text-muted-foreground", children: t(CHECK_PHASE_LABEL_KEYS[group.phase]) }),
|
|
352
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1.5", children: group.items.map((check, itemIndex) => /* @__PURE__ */ jsx(ChangeCheckRow, { check }, `${check.label}-${itemIndex}`)) })
|
|
353
|
+
]
|
|
354
|
+
},
|
|
355
|
+
group.phase ?? `_${index}`
|
|
356
|
+
))
|
|
357
|
+
}
|
|
358
|
+
);
|
|
359
|
+
}
|
|
360
|
+
var ChangeReviewHunk = forwardRef(
|
|
361
|
+
function ChangeReviewHunk2({ hunk, renderHunk, className, ...props }, ref) {
|
|
362
|
+
const { t } = useLocale();
|
|
363
|
+
const { state, actions } = useChangeReview();
|
|
364
|
+
const { id, title, before, after, status = "modified", provenance, checks } = hunk;
|
|
365
|
+
const approved = state.approved.has(id);
|
|
366
|
+
const statusLabel = t(HUNK_STATUS_LABEL_KEYS[status]);
|
|
367
|
+
const toggleLabel = t(approved ? "ui.changeReview.rejectHunk" : "ui.changeReview.approveHunk", {
|
|
368
|
+
title: title ?? id
|
|
369
|
+
});
|
|
370
|
+
const defaultContent = renderHunk ? renderHunk(hunk, { approved }) : (before !== void 0 || after !== void 0) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1.5 text-body", children: [
|
|
371
|
+
before !== void 0 && /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
372
|
+
/* @__PURE__ */ jsx(
|
|
373
|
+
"span",
|
|
374
|
+
{
|
|
375
|
+
"aria-hidden": "true",
|
|
376
|
+
className: "shrink-0 select-none font-mono text-muted-foreground",
|
|
377
|
+
children: "\u2212"
|
|
378
|
+
}
|
|
379
|
+
),
|
|
380
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: t("ui.changeReview.beforePrefix") }),
|
|
381
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 break-words text-muted-foreground line-through decoration-muted-foreground/30", children: before })
|
|
382
|
+
] }),
|
|
383
|
+
after !== void 0 && /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
|
|
384
|
+
/* @__PURE__ */ jsx("span", { "aria-hidden": "true", className: "shrink-0 select-none font-mono text-foreground", children: "+" }),
|
|
385
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: t("ui.changeReview.afterPrefix") }),
|
|
386
|
+
/* @__PURE__ */ jsx("div", { className: "min-w-0 break-words text-foreground", children: after })
|
|
387
|
+
] })
|
|
388
|
+
] });
|
|
389
|
+
return /* @__PURE__ */ jsxs(
|
|
390
|
+
"li",
|
|
391
|
+
{
|
|
392
|
+
ref,
|
|
393
|
+
"data-hunk-id": id,
|
|
394
|
+
"data-approved": approved,
|
|
395
|
+
className: cn(hunkVariants({ status }), "flex flex-col gap-3 p-4", className),
|
|
396
|
+
...props,
|
|
397
|
+
children: [
|
|
398
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-start justify-between gap-3 min-w-0", children: [
|
|
399
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 min-w-0", children: [
|
|
400
|
+
/* @__PURE__ */ jsx(
|
|
401
|
+
"span",
|
|
402
|
+
{
|
|
403
|
+
role: "img",
|
|
404
|
+
"aria-label": t("ui.changeReview.changeType", { status: statusLabel }),
|
|
405
|
+
className: "shrink-0 inline-flex items-center justify-center size-5",
|
|
406
|
+
children: HUNK_STATUS_ICONS[status]
|
|
407
|
+
}
|
|
408
|
+
),
|
|
409
|
+
/* @__PURE__ */ jsx("span", { className: "text-body font-medium text-foreground truncate", children: title ?? id }),
|
|
410
|
+
provenance?.author && /* @__PURE__ */ jsx("span", { className: "text-caption text-muted-foreground hidden sm:inline truncate", children: provenance.author })
|
|
411
|
+
] }),
|
|
412
|
+
/* @__PURE__ */ jsx(
|
|
413
|
+
Button,
|
|
414
|
+
{
|
|
415
|
+
size: "icon-sm",
|
|
416
|
+
variant: approved ? "default" : "outline-subtle",
|
|
417
|
+
"aria-label": toggleLabel,
|
|
418
|
+
"aria-pressed": approved,
|
|
419
|
+
onClick: () => actions.toggle(id, !approved),
|
|
420
|
+
className: cn(
|
|
421
|
+
"shrink-0 transition-colors duration-fast motion-reduce:transition-none",
|
|
422
|
+
approved && "bg-primary text-primary-foreground"
|
|
423
|
+
),
|
|
424
|
+
children: approved ? /* @__PURE__ */ jsx(Check, { "aria-hidden": "true", className: "size-4" }) : /* @__PURE__ */ jsx(Check, { "aria-hidden": "true", className: "size-4 opacity-40" })
|
|
425
|
+
}
|
|
426
|
+
)
|
|
427
|
+
] }),
|
|
428
|
+
approved && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-1.5", children: /* @__PURE__ */ jsxs(Badge, { variant: "success", className: "animate-in fade-in-0 duration-fast ease-entrance", children: [
|
|
429
|
+
/* @__PURE__ */ jsx(Check, { "aria-hidden": "true", className: "size-3" }),
|
|
430
|
+
t("ui.changeReview.approvedBadge")
|
|
431
|
+
] }) }),
|
|
432
|
+
defaultContent && /* @__PURE__ */ jsx("div", { children: defaultContent }),
|
|
433
|
+
checks && checks.length > 0 && /* @__PURE__ */ jsx(ChangeReviewChecks, { checks })
|
|
434
|
+
]
|
|
435
|
+
}
|
|
436
|
+
);
|
|
437
|
+
}
|
|
438
|
+
);
|
|
439
|
+
var ChangeReview = forwardRef(function ChangeReview2({
|
|
440
|
+
hunks,
|
|
441
|
+
approved,
|
|
442
|
+
onToggle,
|
|
443
|
+
onApproveAll,
|
|
444
|
+
onRejectAll,
|
|
445
|
+
provenance,
|
|
446
|
+
renderHunk,
|
|
447
|
+
className,
|
|
448
|
+
...props
|
|
449
|
+
}, ref) {
|
|
450
|
+
return /* @__PURE__ */ jsx(
|
|
451
|
+
ChangeReviewProvider,
|
|
452
|
+
{
|
|
453
|
+
hunks,
|
|
454
|
+
approved,
|
|
455
|
+
onToggle,
|
|
456
|
+
onApproveAll,
|
|
457
|
+
onRejectAll,
|
|
458
|
+
children: /* @__PURE__ */ jsxs("div", { ref, className: cn("flex flex-col w-full", className), ...props, children: [
|
|
459
|
+
/* @__PURE__ */ jsx(ChangeReviewHeader, {}),
|
|
460
|
+
provenance != null && /* @__PURE__ */ jsx(ChangeReviewProvenance, { provenance }),
|
|
461
|
+
/* @__PURE__ */ jsx(ChangeReviewList, { children: hunks.map((hunk) => /* @__PURE__ */ jsx(ChangeReviewHunk, { hunk, renderHunk }, hunk.id)) })
|
|
462
|
+
] })
|
|
463
|
+
}
|
|
464
|
+
);
|
|
465
|
+
});
|
|
466
|
+
|
|
467
|
+
export {
|
|
468
|
+
hunkVariants,
|
|
469
|
+
ChangeReviewProvider,
|
|
470
|
+
ChangeReviewHeader,
|
|
471
|
+
ChangeReviewProvenance,
|
|
472
|
+
ChangeReviewList,
|
|
473
|
+
ChangeReviewHunk,
|
|
474
|
+
ChangeReview
|
|
475
|
+
};
|
|
476
|
+
//# sourceMappingURL=chunk-CEHCVDYR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/change-review/change-review.tsx"],"sourcesContent":["\"use client\";\n\n/**\n * ChangeReview — AI-edit trust gate.\n *\n * When an agent proposes edits, the human reviews them hunk-by-hunk and accepts\n * or rejects each before they apply. Feeling: calm, scannable, trustworthy —\n * \"I can see exactly what changed, who proposed it, and nothing lands without\n * my say-so.\"\n *\n * Design references: GitHub PR file-review (per-hunk viewed/comment),\n * Cursor/Copilot \"review changes\" panel, Graphite/Linear review UIs.\n *\n * NOT a diff-line renderer, and deliberately never becoming one. A hunk's\n * `before`/`after` are ordinary `ReactNode` prose, drawn as a quiet no-fill\n * comparison; the `−`/`+` markers below mean \"previous content\"/\"proposed\n * content\", which is not the same idea as `DiffLine`'s \"removed line\"/\"added\n * line\" even though the glyphs coincide. Do NOT reach for `diffLineMarker` here:\n * a coincidence stays a literal (theming.md, intentional-mirror rule).\n *\n * Structured `DiffLine[]` hunks reach this component by INJECTION, which is a\n * binding decision, not an unfinished merge — see\n * `docs/decisions/2026-09-01-brainless-adoption-architecture.md` § 3:\n * - `ChangeHunk` gains NO `lines` field and `DiffLine` never moves here.\n * - The app that depends on both packages passes a `<DiffView>`\n * (`@elabs-ai/components-ai`, Shiki-backed) through `renderHunk` or a hunk's\n * `after` slot. Neither package imports the other, in either direction.\n * - Re-litigated and re-ratified 2026-09-03: moving this component into\n * `@elabs-ai/components-ai` was rejected because it would push a\n * dependency-free component into a layer-2 leaf that `terminal`, `editor`\n * and `viewer` could then never reach.\n * See the `InjectedHunkRenderer` story here, and `ChangeReviewComposition` in\n * `packages/ai/src/diff-view.stories.tsx` for the real two-package wiring.\n *\n * State grid: empty (no hunks → StatePanel), single hunk, mixed, all-approved,\n * all-rejected, very long hunk content. Approval state is signalled with color\n * AND icon/label (colorblind + high-decoration/high-contrast safe).\n *\n * Compound structure (named exports, the Card/CardHeader convention — NOT dot\n * notation). Use the `ChangeReview` root for the default layout, or compose the\n * parts for a custom one:\n * <ChangeReviewProvider> — lifted state (approved set + actions interface)\n * <ChangeReviewHeader> — count summary + Approve all / Reject all\n * <ChangeReviewProvenance> — who/what proposed (quiet attribution)\n * <ChangeReviewList> — the hunk list\n * <ChangeReviewHunk> — per-hunk row (title, rails, before/after, toggle)\n */\n\nimport {\n createContext,\n forwardRef,\n use,\n useCallback,\n useId,\n useMemo,\n useState,\n type HTMLAttributes,\n type ReactNode,\n} from \"react\";\nimport { Check, X, CheckCheck, User, Bot, Clock, ChevronDown } from \"lucide-react\";\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { cn } from \"../../lib/cn\";\nimport { type CheckResult } from \"../../lib/check-result\";\nimport { formatElapsed } from \"../../lib/format-duration\";\nimport { Button } from \"../button/button\";\nimport { Badge } from \"../badge/badge\";\nimport { StatePanel } from \"../state-panel/state-panel\";\nimport { StatusIcon } from \"../status-badge/status-badge\";\nimport { Collapsible, CollapsibleContent, CollapsibleTrigger } from \"../collapsible/collapsible\";\nimport { useLocale } from \"../locale-provider\";\n\n// ─── Public types ─────────────────────────────────────────────────────────────\n\n/** Who / what proposed the change set (presentational only; never fetches). */\nexport interface ChangeProvenance {\n /** Display name of the person or agent author. */\n author?: string;\n /** Model or tool identifier (e.g. \"claude-sonnet-4-6\"). */\n model?: string;\n /** ISO-8601 or human-readable timestamp. */\n timestamp?: string;\n /** Free-form note, e.g. commit hash or run ID. */\n note?: string;\n}\n\n/** Status of a single change hunk. Drives the accent-rail colour and icon. */\nexport type ChangeHunkStatus = \"added\" | \"removed\" | \"modified\";\n\n/** A single proposed change in the review set. */\nexport interface ChangeHunk {\n /** Unique identifier for this hunk (used in the approved set). */\n id: string;\n /** Short title shown in the hunk header (e.g. filename or section label). */\n title?: string;\n /** The content before the proposed edit. */\n before?: ReactNode;\n /** The content after the proposed edit (the proposal). */\n after?: ReactNode;\n /** Change type — drives accent rail + icon. @default \"modified\" */\n status?: ChangeHunkStatus;\n /** Per-hunk provenance override (overrides the review-level provenance). */\n provenance?: ChangeProvenance;\n /**\n * Verification results for this hunk (lint / types / tests / policy hooks).\n * Purely informational — a failing check never blocks approval, it only\n * informs the reviewer's decision. Grouped into \"Before\" / \"After\" sections\n * when both phases are present.\n */\n checks?: CheckResult[];\n}\n\n/** State surface exposed by the ChangeReview context. */\nexport interface ChangeReviewState {\n /** Set of currently-approved hunk IDs. */\n approved: ReadonlySet<string>;\n /** Total number of hunks. */\n totalCount: number;\n /** Number of approved hunks. */\n approvedCount: number;\n /** True when every hunk is approved. */\n allApproved: boolean;\n /** True when no hunk is approved. */\n noneApproved: boolean;\n}\n\n/** Actions exposed by the ChangeReview context. */\nexport interface ChangeReviewActions {\n /** Toggle the approval state of a single hunk. */\n toggle: (id: string, next: boolean) => void;\n /** Approve all hunks. */\n approveAll: () => void;\n /** Reject (un-approve) all hunks. */\n rejectAll: () => void;\n}\n\n// ─── Context ──────────────────────────────────────────────────────────────────\n\ninterface ChangeReviewContextValue {\n state: ChangeReviewState;\n actions: ChangeReviewActions;\n hunks: ChangeHunk[];\n headingId: string;\n}\n\nconst ChangeReviewContext = createContext<ChangeReviewContextValue | null>(null);\n\nfunction useChangeReview(): ChangeReviewContextValue {\n const ctx = use(ChangeReviewContext);\n if (!ctx) {\n throw new Error(\"ChangeReview sub-components must be rendered inside ChangeReview.Provider\");\n }\n return ctx;\n}\n\n// ─── Variants ─────────────────────────────────────────────────────────────────\n\n/**\n * Hunk-status accent rail — the separation grammar's accent-rail channel: ONE\n * focal gesture (the status rail) on a neutral card ground (`bg-card` + the\n * subtle, redundant-exempt `border-border` hairline). NO colored wash and NO\n * redundant colored border — the slop the \"AI card\" look is built from. Status\n * reads from the rail + the header icon + the StatusBadge (never color alone).\n * Approval is signalled by the StatusBadge + the filled toggle (no ring wash).\n */\nexport const hunkVariants = cva(\n [\n \"relative rounded-md border border-border bg-card text-card-foreground\",\n \"transition-colors duration-fast ease-standard motion-reduce:transition-none\",\n ],\n {\n variants: {\n status: {\n added: \"border-s-4 border-s-success\",\n removed: \"border-s-4 border-s-destructive\",\n modified: \"border-s-4 border-s-info\",\n },\n },\n defaultVariants: { status: \"modified\" },\n },\n);\n\n// ─── Provider ─────────────────────────────────────────────────────────────────\n\nexport interface ChangeReviewProviderProps {\n hunks: ChangeHunk[];\n /**\n * Controlled approved set. Pass `Set<string>` or a string array.\n * When provided, the component is controlled and `onToggle` / `onApproveAll` /\n * `onRejectAll` are the only way to update the state.\n */\n approved?: Set<string> | string[];\n onToggle?: (id: string, next: boolean) => void;\n onApproveAll?: () => void;\n onRejectAll?: () => void;\n children: ReactNode;\n}\n\n/**\n * Lifts the approval state. Can be controlled (pass `approved`) or uncontrolled.\n * Derive `isControlled = approved !== undefined`.\n */\nexport function ChangeReviewProvider({\n hunks,\n approved: approvedProp,\n onToggle,\n onApproveAll,\n onRejectAll,\n children,\n}: ChangeReviewProviderProps) {\n const headingId = useId();\n\n const isControlled = approvedProp !== undefined;\n\n // Uncontrolled internal state.\n const [internalApproved, setInternalApproved] = useState<Set<string>>(() => new Set());\n\n const resolvedApproved: ReadonlySet<string> = isControlled\n ? approvedProp instanceof Set\n ? approvedProp\n : new Set(approvedProp)\n : internalApproved;\n\n const hunkIds = useMemo(() => hunks.map((h) => h.id), [hunks]);\n\n const toggle = useCallback(\n (id: string, next: boolean) => {\n onToggle?.(id, next);\n if (!isControlled) {\n setInternalApproved((prev) => {\n const next_ = new Set(prev);\n if (next) next_.add(id);\n else next_.delete(id);\n return next_;\n });\n }\n },\n [isControlled, onToggle],\n );\n\n const approveAll = useCallback(() => {\n onApproveAll?.();\n if (!isControlled) {\n setInternalApproved(new Set(hunkIds));\n }\n }, [isControlled, hunkIds, onApproveAll]);\n\n const rejectAll = useCallback(() => {\n onRejectAll?.();\n if (!isControlled) {\n setInternalApproved(new Set());\n }\n }, [isControlled, onRejectAll]);\n\n const approvedCount = hunkIds.filter((id) => resolvedApproved.has(id)).length;\n const totalCount = hunkIds.length;\n\n const state: ChangeReviewState = {\n approved: resolvedApproved,\n totalCount,\n approvedCount,\n allApproved: totalCount > 0 && approvedCount === totalCount,\n noneApproved: approvedCount === 0,\n };\n\n const actions: ChangeReviewActions = { toggle, approveAll, rejectAll };\n\n const value = useMemo(\n () => ({ state, actions, hunks, headingId }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [state.approved, state.totalCount, state.approvedCount, hunks, headingId],\n );\n\n return <ChangeReviewContext.Provider value={value}>{children}</ChangeReviewContext.Provider>;\n}\n\n// ─── Header ───────────────────────────────────────────────────────────────────\n\nexport type ChangeReviewHeaderProps = HTMLAttributes<HTMLDivElement>;\n\n/**\n * Count summary (\"3 of 5 approved\") + Approve all / Reject all bulk actions.\n * `aria-controls` is intentionally omitted — screen readers reach the list\n * naturally in DOM order.\n */\nexport const ChangeReviewHeader = forwardRef<HTMLDivElement, ChangeReviewHeaderProps>(\n function ChangeReviewHeader({ className, ...props }, ref) {\n const { t } = useLocale();\n const { state, actions, headingId } = useChangeReview();\n const { approvedCount, totalCount, allApproved, noneApproved } = state;\n\n return (\n <div\n ref={ref}\n className={cn(\"flex flex-wrap items-center justify-between gap-3 pb-3\", className)}\n {...props}\n >\n <div className=\"flex items-center gap-2 min-w-0\">\n <span id={headingId} className=\"text-subtitle text-foreground truncate\">\n {t(\"ui.changeReview.heading\")}\n </span>\n <Badge variant={allApproved ? \"success\" : approvedCount > 0 ? \"info\" : \"secondary\"}>\n {t(\"ui.changeReview.approvedCount\", { approved: approvedCount, total: totalCount })}\n </Badge>\n </div>\n\n {totalCount > 0 && (\n <div className=\"flex items-center gap-2 shrink-0\">\n <Button\n size=\"sm\"\n variant=\"outline-subtle\"\n disabled={noneApproved}\n onClick={actions.rejectAll}\n aria-label={t(\"ui.changeReview.rejectAllLabel\")}\n >\n <X aria-hidden=\"true\" />\n {t(\"ui.changeReview.rejectAll\")}\n </Button>\n <Button\n size=\"sm\"\n variant={allApproved ? \"secondary\" : \"default\"}\n disabled={allApproved}\n onClick={actions.approveAll}\n aria-label={t(\"ui.changeReview.approveAllLabel\")}\n >\n <CheckCheck aria-hidden=\"true\" />\n {t(\"ui.changeReview.approveAll\")}\n </Button>\n </div>\n )}\n </div>\n );\n },\n);\n\n// ─── Provenance ───────────────────────────────────────────────────────────────\n\nexport interface ChangeReviewProvenanceProps extends HTMLAttributes<HTMLDivElement> {\n /**\n * Structured provenance object OR any ReactNode for custom rendering.\n * When a `ChangeProvenance` object is passed, a default attribution line\n * is rendered. Pass a ReactNode for full control.\n */\n provenance: ReactNode | ChangeProvenance;\n}\n\nfunction isChangeProvenance(v: unknown): v is ChangeProvenance {\n return (\n typeof v === \"object\" &&\n v !== null &&\n !Array.isArray(v) &&\n (\"author\" in v || \"model\" in v || \"timestamp\" in v || \"note\" in v)\n );\n}\n\n/**\n * Quiet attribution line showing who/what proposed the change set.\n * Uses `text-muted-foreground` and small typography — it should not compete\n * with the hunks themselves.\n */\nexport const ChangeReviewProvenance = forwardRef<HTMLDivElement, ChangeReviewProvenanceProps>(\n function ChangeReviewProvenance({ provenance, className, ...props }, ref) {\n const { t } = useLocale();\n if (isChangeProvenance(provenance)) {\n const { author, model, timestamp, note } = provenance;\n return (\n <div\n ref={ref}\n className={cn(\n \"flex flex-wrap items-center gap-x-3 gap-y-1 text-caption text-muted-foreground pb-3\",\n className,\n )}\n role=\"group\"\n aria-label={t(\"ui.changeReview.provenanceLabel\")}\n {...props}\n >\n {author && (\n <span className=\"flex items-center gap-1\">\n <User aria-hidden=\"true\" className=\"size-3\" />\n <span>{author}</span>\n </span>\n )}\n {model && (\n <span className=\"flex items-center gap-1\">\n <Bot aria-hidden=\"true\" className=\"size-3\" />\n <span translate=\"no\">{model}</span>\n </span>\n )}\n {timestamp && (\n <span className=\"flex items-center gap-1\">\n <Clock aria-hidden=\"true\" className=\"size-3\" />\n <time>{timestamp}</time>\n </span>\n )}\n {note && <span className=\"text-muted-foreground/70\">{note}</span>}\n </div>\n );\n }\n\n // Custom ReactNode provenance\n return (\n <div\n ref={ref}\n className={cn(\"pb-3 text-caption text-muted-foreground\", className)}\n role=\"group\"\n aria-label={t(\"ui.changeReview.provenanceLabel\")}\n {...props}\n >\n {provenance as ReactNode}\n </div>\n );\n },\n);\n\n// ─── List ─────────────────────────────────────────────────────────────────────\n\nexport type ChangeReviewListProps = HTMLAttributes<HTMLOListElement>;\n\n/**\n * Ordered list of change hunks. Uses `<ol>` so AT users can navigate by\n * item number (\"item 2 of 5\"). Renders a StatePanel when the list is empty.\n */\nexport const ChangeReviewList = forwardRef<HTMLOListElement, ChangeReviewListProps>(\n function ChangeReviewList({ className, children, ...props }, ref) {\n const { t } = useLocale();\n const { hunks, headingId } = useChangeReview();\n\n if (hunks.length === 0) {\n return (\n <StatePanel\n kind=\"empty\"\n title={t(\"ui.changeReview.emptyTitle\")}\n description={t(\"ui.changeReview.emptyDescription\")}\n className=\"my-2\"\n />\n );\n }\n\n return (\n <ol\n ref={ref}\n aria-labelledby={headingId}\n className={cn(\"flex flex-col gap-3\", className)}\n {...props}\n >\n {children}\n </ol>\n );\n },\n);\n\n// ─── Hunk ─────────────────────────────────────────────────────────────────────\n\nconst HUNK_STATUS_ICONS: Record<ChangeHunkStatus, ReactNode> = {\n added: (\n <span className=\"text-success-text font-bold text-meta\" aria-hidden=\"true\">\n +\n </span>\n ),\n removed: (\n // #124: sibling of `added`/`modified` above — this glyph is a decorative\n // aria-hidden marker beside a labelled span (see HUNK_STATUS_LABELS), and\n // reads as running text at the type scale, so it takes the ink rung the\n // other two already use.\n <span className=\"text-destructive-text font-bold text-meta\" aria-hidden=\"true\">\n −\n </span>\n ),\n modified: (\n <span className=\"text-info-text font-bold text-meta\" aria-hidden=\"true\">\n ~\n </span>\n ),\n};\n\nconst HUNK_STATUS_LABEL_KEYS: Record<ChangeHunkStatus, string> = {\n added: \"ui.changeReview.statusAdded\",\n removed: \"ui.changeReview.statusRemoved\",\n modified: \"ui.changeReview.statusModified\",\n};\n\n// ─── Checks (verification evidence) ────────────────────────────────────────────\n\n/**\n * A check's `detail` collapses behind a disclosure once it's long enough that\n * showing it inline would dominate the hunk row. Short details always render\n * in place.\n */\nconst CHECK_DETAIL_COLLAPSE_THRESHOLD = 80;\n\nfunction isLongCheckDetail(detail: string): boolean {\n return detail.length > CHECK_DETAIL_COLLAPSE_THRESHOLD || detail.includes(\"\\n\");\n}\n\nconst CHECK_PHASE_LABEL_KEYS: Record<\"before\" | \"after\", string> = {\n before: \"ui.changeReview.phaseBefore\",\n after: \"ui.changeReview.phaseAfter\",\n};\n\n/**\n * Group checks for display. Phase headers (\"Before\" / \"After\") appear ONLY\n * when both phases are present in the same hunk — a single-phase or\n * unphased list of checks renders flat, with no header noise.\n */\nfunction groupChecksByPhase(\n checks: CheckResult[],\n): { phase?: \"before\" | \"after\"; items: CheckResult[] }[] {\n const before = checks.filter((c) => c.phase === \"before\");\n const after = checks.filter((c) => c.phase === \"after\");\n const showPhaseLabels = before.length > 0 && after.length > 0;\n\n if (!showPhaseLabels) {\n return [{ items: checks }];\n }\n\n const rest = checks.filter((c) => c.phase !== \"before\" && c.phase !== \"after\");\n const groups: { phase?: \"before\" | \"after\"; items: CheckResult[] }[] = [];\n if (rest.length > 0) groups.push({ items: rest });\n groups.push({ phase: \"before\", items: before });\n groups.push({ phase: \"after\", items: after });\n return groups;\n}\n\n/**\n * A single verification result row: icon + label + accessible status word +\n * optional duration, with an optional collapsed detail line below.\n *\n * The pass/fail signal is carried by TWO non-color cues — the icon (distinct\n * glyph per `StatusIcon`'s canonical vocabulary) and the visible \"Passed\"/\n * \"Failed\" text — so it survives in greyscale (WCAG 1.4.1). `StatusIcon` is\n * decorative (`aria-hidden`); the status word is what reaches assistive tech.\n */\nfunction ChangeCheckRow({ check }: { check: CheckResult }) {\n const { t } = useLocale();\n const [detailOpen, setDetailOpen] = useState(false);\n const { label, ok, detail, durationMs } = check;\n const statusWord = ok ? t(\"ui.changeReview.checkPassed\") : t(\"ui.changeReview.checkFailed\");\n const hasDetail = detail !== undefined && detail !== \"\";\n const longDetail = hasDetail && isLongCheckDetail(detail);\n\n return (\n <div data-slot=\"change-review-hunk-check\" data-ok={ok} className=\"flex flex-col gap-1\">\n <div className=\"flex flex-wrap items-center gap-x-1.5 gap-y-0.5 min-w-0\">\n <StatusIcon status={ok ? \"complete\" : \"failed\"} className=\"size-3.5 shrink-0\" />\n <span className=\"text-caption font-medium text-foreground truncate\">{label}</span>\n <span className={cn(\"text-caption\", ok ? \"text-success-text\" : \"text-destructive-text\")}>\n {statusWord}\n </span>\n {durationMs !== undefined && (\n <span className=\"text-caption text-muted-foreground tabular-nums shrink-0\">\n {formatElapsed(durationMs)}\n </span>\n )}\n </div>\n\n {hasDetail &&\n (longDetail ? (\n <Collapsible open={detailOpen} onOpenChange={setDetailOpen}>\n <CollapsibleTrigger\n className={cn(\n \"flex items-center gap-1 self-start rounded-sm ps-5 text-caption text-muted-foreground\",\n \"hover:text-foreground focus-ring\",\n )}\n >\n <ChevronDown\n aria-hidden=\"true\"\n className={cn(\n \"size-3 transition-transform duration-fast motion-reduce:transition-none\",\n detailOpen ? \"rotate-180\" : \"rotate-0\",\n )}\n />\n {detailOpen ? t(\"ui.changeReview.hideDetail\") : t(\"ui.changeReview.showDetail\")}\n </CollapsibleTrigger>\n <CollapsibleContent data-slot=\"change-review-hunk-check-detail\">\n <p className=\"ps-5 pt-1 text-caption text-muted-foreground break-words\">{detail}</p>\n </CollapsibleContent>\n </Collapsible>\n ) : (\n <p\n data-slot=\"change-review-hunk-check-detail\"\n className=\"ps-5 text-caption text-muted-foreground break-words\"\n >\n {detail}\n </p>\n ))}\n </div>\n );\n}\n\n/** The full checks section for one hunk — grouped by phase when applicable. */\nfunction ChangeReviewChecks({ checks }: { checks: CheckResult[] }) {\n const { t } = useLocale();\n const groups = groupChecksByPhase(checks);\n const showPhaseLabels = groups.some((g) => g.phase !== undefined);\n\n return (\n <div\n data-slot=\"change-review-hunk-checks\"\n className=\"flex flex-col gap-2 border-t border-border pt-3\"\n >\n {groups.map((group, index) => (\n <div\n key={group.phase ?? `_${index}`}\n data-slot=\"change-review-hunk-checks-phase\"\n className=\"flex flex-col gap-1.5\"\n >\n {showPhaseLabels && group.phase && (\n <span className=\"text-meta font-medium text-muted-foreground\">\n {t(CHECK_PHASE_LABEL_KEYS[group.phase])}\n </span>\n )}\n <div className=\"flex flex-col gap-1.5\">\n {group.items.map((check, itemIndex) => (\n <ChangeCheckRow key={`${check.label}-${itemIndex}`} check={check} />\n ))}\n </div>\n </div>\n ))}\n </div>\n );\n}\n\nexport interface ChangeReviewHunkProps\n extends\n Omit<HTMLAttributes<HTMLLIElement>, \"children\">,\n Omit<VariantProps<typeof hunkVariants>, \"approved\"> {\n hunk: ChangeHunk;\n /**\n * Override the default before/after layout. Receives the hunk data and\n * current approval state. Return `null` to suppress the default content area.\n */\n renderHunk?: (hunk: ChangeHunk, state: { approved: boolean }) => ReactNode;\n}\n\n/**\n * A single change hunk row.\n *\n * Approval state is signalled with TWO non-color cues:\n * - icon: Check (approved) vs plain toggle (pending)\n * - label: \"Approved\" badge vs \"Approve\" button text\n * This ensures the state is clear in every theme including the low-chroma\n * monochrome surfaces (colorblind-safe).\n */\nexport const ChangeReviewHunk = forwardRef<HTMLLIElement, ChangeReviewHunkProps>(\n function ChangeReviewHunk({ hunk, renderHunk, className, ...props }, ref) {\n const { t } = useLocale();\n const { state, actions } = useChangeReview();\n const { id, title, before, after, status = \"modified\", provenance, checks } = hunk;\n const approved = state.approved.has(id);\n\n const statusLabel = t(HUNK_STATUS_LABEL_KEYS[status]);\n const toggleLabel = t(approved ? \"ui.changeReview.rejectHunk\" : \"ui.changeReview.approveHunk\", {\n title: title ?? id,\n });\n\n // Quiet, no-fill diff: before = struck muted text with a \"−\" marker, after =\n // foreground text with a \"+\" marker — separated by space, NOT colored\n // fill+border boxes. The hunk's status rail (added/removed/modified) carries\n // the polarity; the markers + tone are the second, non-color cue.\n const defaultContent = renderHunk\n ? renderHunk(hunk, { approved })\n : (before !== undefined || after !== undefined) && (\n <div className=\"flex flex-col gap-1.5 text-body\">\n {before !== undefined && (\n <div className=\"flex gap-2\">\n <span\n aria-hidden=\"true\"\n className=\"shrink-0 select-none font-mono text-muted-foreground\"\n >\n −\n </span>\n <span className=\"sr-only\">{t(\"ui.changeReview.beforePrefix\")}</span>\n <div className=\"min-w-0 break-words text-muted-foreground line-through decoration-muted-foreground/30\">\n {before}\n </div>\n </div>\n )}\n {after !== undefined && (\n <div className=\"flex gap-2\">\n <span aria-hidden=\"true\" className=\"shrink-0 select-none font-mono text-foreground\">\n +\n </span>\n <span className=\"sr-only\">{t(\"ui.changeReview.afterPrefix\")}</span>\n <div className=\"min-w-0 break-words text-foreground\">{after}</div>\n </div>\n )}\n </div>\n );\n\n return (\n <li\n ref={ref}\n data-hunk-id={id}\n data-approved={approved}\n className={cn(hunkVariants({ status }), \"flex flex-col gap-3 p-4\", className)}\n {...props}\n >\n {/* Hunk header: status icon + title + per-hunk provenance + approve toggle */}\n <div className=\"flex items-start justify-between gap-3 min-w-0\">\n <div className=\"flex items-center gap-2 min-w-0\">\n {/* Status indicator: NON-color cue via symbol + color together */}\n <span\n role=\"img\"\n aria-label={t(\"ui.changeReview.changeType\", { status: statusLabel })}\n className=\"shrink-0 inline-flex items-center justify-center size-5\"\n >\n {HUNK_STATUS_ICONS[status]}\n </span>\n\n <span className=\"text-body font-medium text-foreground truncate\">{title ?? id}</span>\n\n {/* Per-hunk provenance (quiet, only when it differs from review-level) */}\n {provenance?.author && (\n <span className=\"text-caption text-muted-foreground hidden sm:inline truncate\">\n {provenance.author}\n </span>\n )}\n </div>\n\n {/* Approval toggle — must be a real button with accessible name */}\n <Button\n size=\"icon-sm\"\n variant={approved ? \"default\" : \"outline-subtle\"}\n aria-label={toggleLabel}\n aria-pressed={approved}\n onClick={() => actions.toggle(id, !approved)}\n className={cn(\n \"shrink-0 transition-colors duration-fast motion-reduce:transition-none\",\n approved && \"bg-primary text-primary-foreground\",\n )}\n >\n {approved ? (\n <Check aria-hidden=\"true\" className=\"size-4\" />\n ) : (\n <Check aria-hidden=\"true\" className=\"size-4 opacity-40\" />\n )}\n </Button>\n </div>\n\n {/* Visual approved badge — second non-color cue (icon alone is not enough) */}\n {approved && (\n <div className=\"flex items-center gap-1.5\">\n <Badge variant=\"success\" className=\"animate-in fade-in-0 duration-fast ease-entrance\">\n <Check aria-hidden=\"true\" className=\"size-3\" />\n {t(\"ui.changeReview.approvedBadge\")}\n </Badge>\n </div>\n )}\n\n {/* Content area: before / after or custom renderHunk */}\n {defaultContent && <div>{defaultContent}</div>}\n\n {/* Verification evidence — informational only, never blocks approval */}\n {checks && checks.length > 0 && <ChangeReviewChecks checks={checks} />}\n </li>\n );\n },\n);\n\n// ─── Root (convenience wrapper) ───────────────────────────────────────────────\n\nexport interface ChangeReviewProps\n // Omit \"children\" and \"onToggle\" from div attrs — \"onToggle\" is a React 19\n // native ToggleEvent handler that conflicts with our review onToggle prop.\n extends Omit<HTMLAttributes<HTMLDivElement>, \"children\" | \"onToggle\"> {\n /** The proposed changes to review. */\n hunks: ChangeHunk[];\n /**\n * Controlled approved set. Pass `Set<string>` or a string array.\n * When omitted the component manages approval state internally (uncontrolled).\n */\n approved?: Set<string> | string[];\n /** Called when the user toggles a single hunk's approval state. */\n onToggle?: (id: string, next: boolean) => void;\n /** Called when the user clicks \"Approve all\". */\n onApproveAll?: () => void;\n /** Called when the user clicks \"Reject all\". */\n onRejectAll?: () => void;\n /**\n * Provenance to show above the hunk list. Accepts a `ChangeProvenance`\n * object (renders default attribution) or any ReactNode.\n */\n provenance?: ReactNode | ChangeProvenance;\n /**\n * Override the per-hunk body renderer (passed through to each `ChangeReviewHunk`).\n */\n renderHunk?: ChangeReviewHunkProps[\"renderHunk\"];\n}\n\n/**\n * Convenience composition that wires Provider → Header → Provenance → List → Hunks.\n * For custom layouts compose the parts manually via `ChangeReview.Provider`,\n * `ChangeReview.Header`, etc.\n */\nexport const ChangeReview = forwardRef<HTMLDivElement, ChangeReviewProps>(function ChangeReview(\n {\n hunks,\n approved,\n onToggle,\n onApproveAll,\n onRejectAll,\n provenance,\n renderHunk,\n className,\n ...props\n },\n ref,\n) {\n return (\n <ChangeReviewProvider\n hunks={hunks}\n approved={approved}\n onToggle={onToggle}\n onApproveAll={onApproveAll}\n onRejectAll={onRejectAll}\n >\n <div ref={ref} className={cn(\"flex flex-col w-full\", className)} {...props}>\n <ChangeReviewHeader />\n {provenance != null && <ChangeReviewProvenance provenance={provenance} />}\n <ChangeReviewList>\n {hunks.map((hunk) => (\n <ChangeReviewHunk key={hunk.id} hunk={hunk} renderHunk={renderHunk} />\n ))}\n </ChangeReviewList>\n </div>\n </ChangeReviewProvider>\n );\n});\n"],"mappings":"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","names":["ChangeReviewHeader","ChangeReviewProvenance","ChangeReviewList","ChangeReviewHunk","ChangeReview"]}
|