@dylanpiercey/work 0.2.2 → 0.2.4
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 +13 -0
- package/bin/work.mjs +6 -0
- package/dist/{_BNnuB9v7.js → _0aVeGp3r.js} +73 -73
- package/dist/{_KRMk2duX.js → _CBAfUPnF.js} +240 -4
- package/dist/_QKOzplQZ.js +2 -0
- package/dist/index.mjs +733 -749
- package/dist/public/assets/_-BaH35o0.js +1 -0
- package/dist/public/assets/{_ChTSCLUf.js → _-KMql04r.js} +1 -1
- package/dist/public/assets/_-KMql04r.js.br +0 -0
- package/dist/public/assets/{_DP2Tf6_I.js → _-Zb1beo9.js} +1 -1
- package/dist/public/assets/_-Zb1beo9.js.br +0 -0
- package/dist/public/assets/_-nZsDVSE.js +1 -0
- package/dist/public/assets/_0h2wxt86.js +1 -0
- package/dist/public/assets/{_pY2yIJRb.js → _4BAUJfXY.js} +1 -1
- package/dist/public/assets/_4BAUJfXY.js.br +0 -0
- package/dist/public/assets/{_BdPYrG5F.js → _6IMubG63.js} +1 -1
- package/dist/public/assets/_6IMubG63.js.br +0 -0
- package/dist/public/assets/_7jd54Czo.js +1 -0
- package/dist/public/assets/_B05n5akk.js +1 -0
- package/dist/public/assets/{_BMTqBRK1.js → _B2YolsYI.js} +1 -1
- package/dist/public/assets/_B2YolsYI.js.br +0 -0
- package/dist/public/assets/_B2vH4V8M.js +1 -0
- package/dist/public/assets/_BAEfdCJn.js +1 -0
- package/dist/public/assets/{_wmKrPX6g.js → _BCZ2fw07.js} +1 -1
- package/dist/public/assets/_BCZ2fw07.js.br +0 -0
- package/dist/public/assets/{_kr3OzZWH.js → _BFPZB_rg.js} +1 -1
- package/dist/public/assets/_BFPZB_rg.js.br +0 -0
- package/dist/public/assets/{_BdAr-Uzh.js → _BGaB7eKu.js} +1 -1
- package/dist/public/assets/_BGaB7eKu.js.br +0 -0
- package/dist/public/assets/{_DK6RTnS-.js → _BMbp1xc9.js} +1 -1
- package/dist/public/assets/_BMbp1xc9.js.br +0 -0
- package/dist/public/assets/{_C_deXoC-.js → _BNGZ339m.js} +1 -1
- package/dist/public/assets/_BNGZ339m.js.br +0 -0
- package/dist/public/assets/_BQonrRUc.js +1 -0
- package/dist/public/assets/{_CWyRLvQK.js → _BTIqRGRl.js} +1 -1
- package/dist/public/assets/_BTIqRGRl.js.br +0 -0
- package/dist/public/assets/_BXMbcpJz.js +1 -0
- package/dist/public/assets/{_BZgIClVP.js → _BX_fF7jC.js} +1 -1
- package/dist/public/assets/_BX_fF7jC.js.br +0 -0
- package/dist/public/assets/{_xxKXHmhU.js → _B_mmH7ZV.js} +1 -1
- package/dist/public/assets/_B_mmH7ZV.js.br +0 -0
- package/dist/public/assets/_Baup71qH.js +1 -0
- package/dist/public/assets/{_CWcesTLx.js → _BbqPuVYz.js} +1 -1
- package/dist/public/assets/_BbqPuVYz.js.br +0 -0
- package/dist/public/assets/_BcfexT_r.js +1 -0
- package/dist/public/assets/{_CwX5EQUk.js → _BeyL0BnM.js} +1 -1
- package/dist/public/assets/_BeyL0BnM.js.br +0 -0
- package/dist/public/assets/_BhQ-9qT_.js +1 -0
- package/dist/public/assets/{_BYbHZGU2.js → _Bhf8SvI0.js} +1 -1
- package/dist/public/assets/_Bhf8SvI0.js.br +0 -0
- package/dist/public/assets/{_GVh8QHBn.js → _BiQSC_DR.js} +1 -1
- package/dist/public/assets/_BiQSC_DR.js.br +0 -0
- package/dist/public/assets/_BjnAkYNz.js +1 -0
- package/dist/public/assets/_BkG_5XIR.js +1 -0
- package/dist/public/assets/{_B1O5mUjx.js → _BkctdlVC.js} +1 -1
- package/dist/public/assets/_BkctdlVC.js.br +0 -0
- package/dist/public/assets/{_DZZ9udPL.js → _Bo_aG2XD.js} +1 -1
- package/dist/public/assets/_Bo_aG2XD.js.br +0 -0
- package/dist/public/assets/_Bp6mBJmh.js +1 -0
- package/dist/public/assets/{_jwCCNcal.js → _BrH2YWc0.js} +1 -1
- package/dist/public/assets/_BrH2YWc0.js.br +0 -0
- package/dist/public/assets/_BtfmM3TC.js +1 -0
- package/dist/public/assets/{_BBI8QGCi.js → _BvOaZcNk.js} +1 -1
- package/dist/public/assets/_BvOaZcNk.js.br +0 -0
- package/dist/public/assets/_BwSjfLTv.js +1 -0
- package/dist/public/assets/_Byxbc1cJ.js +1 -0
- package/dist/public/assets/{_P8NC7smA.js → _BzPnXdVY.js} +1 -1
- package/dist/public/assets/_BzPnXdVY.js.br +0 -0
- package/dist/public/assets/{_BxBysKs5.js → _C-QsDzQl.js} +1 -1
- package/dist/public/assets/_C-QsDzQl.js.br +0 -0
- package/dist/public/assets/{_BbpvXoMp.js → _C-dW9Fv0.js} +1 -1
- package/dist/public/assets/_C-dW9Fv0.js.br +0 -0
- package/dist/public/assets/{_BA0SomMy.js → _C0_EI9br.js} +1 -1
- package/dist/public/assets/_C0_EI9br.js.br +0 -0
- package/dist/public/assets/{_BZmAdrvi.js → _C0ndFsE1.js} +1 -1
- package/dist/public/assets/_C0ndFsE1.js.br +0 -0
- package/dist/public/assets/_C62pEUwC.js +1 -0
- package/dist/public/assets/{_ByWoCsiZ.js → _C7_Q2xMW.js} +1 -1
- package/dist/public/assets/_C7_Q2xMW.js.br +0 -0
- package/dist/public/assets/{_DhaMcmjN.js → _C9Xow1Ui.js} +1 -1
- package/dist/public/assets/_C9Xow1Ui.js.br +0 -0
- package/dist/public/assets/{_DSASGdy9.js → _CArbA3_g.js} +1 -1
- package/dist/public/assets/_CArbA3_g.js.br +0 -0
- package/dist/public/assets/{_CYmANGeb.js → _CBjOFYLc.js} +1 -1
- package/dist/public/assets/_CBjOFYLc.js.br +0 -0
- package/dist/public/assets/_CCL5_9cc.js +1 -0
- package/dist/public/assets/{_AH7CcoCd.js → _CD1cgO59.js} +1 -1
- package/dist/public/assets/_CD1cgO59.js.br +0 -0
- package/dist/public/assets/_CFuYvSNf.js +1 -0
- package/dist/public/assets/{_CHDtwGGI.js → _CHSSKM1B.js} +1 -1
- package/dist/public/assets/_CHSSKM1B.js.br +0 -0
- package/dist/public/assets/_CIwnDPeW.js +1 -0
- package/dist/public/assets/{_BVwsovxF.js → _CJHtKw6_.js} +1 -1
- package/dist/public/assets/{_l1LKnyuO.js → _CKrsl3Th.js} +1 -1
- package/dist/public/assets/_CKrsl3Th.js.br +0 -0
- package/dist/public/assets/{_ZKPjl8YR.js → _CKs1gTHD.js} +2 -2
- package/dist/public/assets/_CKs1gTHD.js.br +0 -0
- package/dist/public/assets/_CL7WCSGT.js +1 -0
- package/dist/public/assets/{_BSEPkSge.js → _CNJUMI-n.js} +1 -1
- package/dist/public/assets/_CNJUMI-n.js.br +0 -0
- package/dist/public/assets/{_DKfVR8o1.js → _CUv7Qzcn.js} +1 -1
- package/dist/public/assets/_CUv7Qzcn.js.br +0 -0
- package/dist/public/assets/_CVZSKSSn.js +1 -0
- package/dist/public/assets/_CYcdlgGK.js +1 -0
- package/dist/public/assets/{__SdWxtBw.js → _C_06hwVX.js} +1 -1
- package/dist/public/assets/_C_06hwVX.js.br +0 -0
- package/dist/public/assets/{_B7gN_0W4.js → _C_kdME78.js} +3 -3
- package/dist/public/assets/_C_kdME78.js.br +0 -0
- package/dist/public/assets/_CasoM6ZN.js +1 -0
- package/dist/public/assets/{_Bku2LsNI.js → _Cd_k9q0o.js} +1 -1
- package/dist/public/assets/_Cd_k9q0o.js.br +0 -0
- package/dist/public/assets/{_qEJiv_nS.js → _Cf5_6HEX.js} +1 -1
- package/dist/public/assets/_Cf5_6HEX.js.br +0 -0
- package/dist/public/assets/_Cf__yi_m.js +1 -0
- package/dist/public/assets/_Cg2UGMZI.js +1 -0
- package/dist/public/assets/_CiahxxQu.js +1 -0
- package/dist/public/assets/{_B4o6nfVo.js → _CmFwG3VA.js} +1 -1
- package/dist/public/assets/_CmFwG3VA.js.br +0 -0
- package/dist/public/assets/_CmlcM6lb.js +1 -0
- package/dist/public/assets/{_bAmH_jvN.js → _CoJkWCeH.js} +1 -1
- package/dist/public/assets/_CoJkWCeH.js.br +0 -0
- package/dist/public/assets/_Cs3O6sjQ.js +1 -0
- package/dist/public/assets/{_DFVYtv8p.js → _Ct3VFQs0.js} +1 -1
- package/dist/public/assets/_Ct3VFQs0.js.br +0 -0
- package/dist/public/assets/{_DEHqkPZo.js → _CtYxrs3o.js} +1 -1
- package/dist/public/assets/_CtYxrs3o.js.br +0 -0
- package/dist/public/assets/{_CrQAwZk6.js → _CvdLt12h.js} +1 -1
- package/dist/public/assets/_CvdLt12h.js.br +0 -0
- package/dist/public/assets/{_DAoJfGpU.js → _Cw2vJLeZ.js} +1 -1
- package/dist/public/assets/_Cw2vJLeZ.js.br +0 -0
- package/dist/public/assets/_CwZ_yH15.js +1 -0
- package/dist/public/assets/{_CFoxi6fb.js → _Cy2fsSS3.js} +1 -1
- package/dist/public/assets/_Cy2fsSS3.js.br +0 -0
- package/dist/public/assets/_CyImRGgb.js +1 -0
- package/dist/public/assets/{_BkU6596B.js → _CyZq6EWU.js} +1 -1
- package/dist/public/assets/_CyZq6EWU.js.br +0 -0
- package/dist/public/assets/_D-1cPTlh.js +1 -0
- package/dist/public/assets/_D-29pP4W.js +1 -0
- package/dist/public/assets/{_DjY7KIsu.js → _D06bIb7L.js} +4 -4
- package/dist/public/assets/_D06bIb7L.js.br +0 -0
- package/dist/public/assets/{_DYkpfkYu.js → _D6cqDEC0.js} +1 -1
- package/dist/public/assets/_D6cqDEC0.js.br +0 -0
- package/dist/public/assets/{_B2JMVCwf.js → _D7coLdCP.js} +1 -1
- package/dist/public/assets/{_CzL2kCCz.js → _D7i9j1_I.js} +1 -1
- package/dist/public/assets/_D7i9j1_I.js.br +0 -0
- package/dist/public/assets/_D7jhcKec.js +1 -0
- package/dist/public/assets/_DBwcJtep.js +1 -0
- package/dist/public/assets/{_BkK9EzKK.js → _DCaRxzju.js} +1 -1
- package/dist/public/assets/_DCaRxzju.js.br +0 -0
- package/dist/public/assets/{_CgBERLK5.js → _DCbOQgRu.js} +1 -1
- package/dist/public/assets/_DCbOQgRu.js.br +0 -0
- package/dist/public/assets/{_CXwQS3ee.js → _DF5L9tC4.js} +1 -1
- package/dist/public/assets/_DF5L9tC4.js.br +0 -0
- package/dist/public/assets/{_DRbIzJyE.js → _DFci_mEi.js} +1 -1
- package/dist/public/assets/_DFci_mEi.js.br +0 -0
- package/dist/public/assets/_DG2R2PjC.js +1 -0
- package/dist/public/assets/{_CRhjw4_R.js → _DG_kcl-g.js} +1 -1
- package/dist/public/assets/_DG_kcl-g.js.br +0 -0
- package/dist/public/assets/_DGepEi0T.js +1 -0
- package/dist/public/assets/_DI0Y6-PH.js +1 -0
- package/dist/public/assets/_DJb25PXu.js +1 -0
- package/dist/public/assets/_DJoc970g.js +1 -0
- package/dist/public/assets/_DKzM-bnd.js +1 -0
- package/dist/public/assets/{_BwKaI4_U.js → _DNPsNJYS.js} +1 -1
- package/dist/public/assets/_DNPsNJYS.js.br +0 -0
- package/dist/public/assets/{_nJTWrDio.js → _DOJ6iTaS.js} +1 -1
- package/dist/public/assets/_DOJ6iTaS.js.br +0 -0
- package/dist/public/assets/_DOs8v6-O.js +1 -0
- package/dist/public/assets/{_DNeftFbL.js → _DPIKg05L.js} +1 -1
- package/dist/public/assets/{_CrhguaWF.js → _DT7oePYB.js} +1 -1
- package/dist/public/assets/_DT7oePYB.js.br +0 -0
- package/dist/public/assets/{_BxtFOVb7.js → _DTT3M8ra.js} +1 -1
- package/dist/public/assets/_DTT3M8ra.js.br +0 -0
- package/dist/public/assets/_DWCVzfS4.js +1 -0
- package/dist/public/assets/_DWPhfHkR.js +1 -0
- package/dist/public/assets/{_CyYi3IMR.js → _DZx9glDd.js} +1 -1
- package/dist/public/assets/_DZx9glDd.js.br +0 -0
- package/dist/public/assets/{_GT79wkKu.js → _D_TLGK-3.js} +1 -1
- package/dist/public/assets/{_Bef_4YOy.js → _DcuV5C_f.js} +1 -1
- package/dist/public/assets/_DcuV5C_f.js.br +0 -0
- package/dist/public/assets/_DdOtyqvl.js +1 -0
- package/dist/public/assets/{_C4oDn55N.js → _Ddgy3xBp.js} +1 -1
- package/dist/public/assets/_Ddgy3xBp.js.br +0 -0
- package/dist/public/assets/{_B-lekYM5.js → _DdqBWsBC.js} +1 -1
- package/dist/public/assets/_DdqBWsBC.js.br +0 -0
- package/dist/public/assets/{_CCGLquzy.js → _DgA6xXIR.js} +1 -1
- package/dist/public/assets/_DgA6xXIR.js.br +0 -0
- package/dist/public/assets/{_2MtTRp0j.js → _DhGdkwrP.js} +1 -1
- package/dist/public/assets/_DhGdkwrP.js.br +0 -0
- package/dist/public/assets/{_BtTsMPJh.js → _DktdVs5U.js} +1 -1
- package/dist/public/assets/_DktdVs5U.js.br +0 -0
- package/dist/public/assets/{_ljz5j5FG.js → _DnXMkM_E.js} +1 -1
- package/dist/public/assets/_DnXMkM_E.js.br +0 -0
- package/dist/public/assets/_DoQLW41Z.js +1 -0
- package/dist/public/assets/_Dr7t8OQU.js +1 -0
- package/dist/public/assets/_DrxSCh0X.js +1 -0
- package/dist/public/assets/{_UtBgf782.js → _Du47tSS5.js} +1 -1
- package/dist/public/assets/_Du47tSS5.js.br +0 -0
- package/dist/public/assets/{_BvyMz9Xw.js → _Dv4WXCd3.js} +1 -1
- package/dist/public/assets/_Dv4WXCd3.js.br +0 -0
- package/dist/public/assets/{_ZrjI3EWj.js → _DvByohpe.js} +1 -1
- package/dist/public/assets/_DvByohpe.js.br +0 -0
- package/dist/public/assets/{_Dr149j_s.js → _Dvd6D8mi.js} +1 -1
- package/dist/public/assets/_Dvd6D8mi.js.br +0 -0
- package/dist/public/assets/_DzuCz99f.js +1 -0
- package/dist/public/assets/_JE-3ASeD.js +1 -0
- package/dist/public/assets/{_BKU5YAWR.js → _JF6DEFdH.js} +7 -7
- package/dist/public/assets/_JF6DEFdH.js.br +0 -0
- package/dist/public/assets/_JRJlpL33.js +1 -0
- package/dist/public/assets/_JetsX5_0.js +1 -0
- package/dist/public/assets/{_Bg4AvDF8.js → _KMZo8rXN.js} +1 -1
- package/dist/public/assets/_KMZo8rXN.js.br +0 -0
- package/dist/public/assets/_Nd10IgXX.js +1 -0
- package/dist/public/assets/_NvxrN-9c.js +1 -0
- package/dist/public/assets/_O84ZBO5i.js +1 -0
- package/dist/public/assets/_Oi3FFiM4.js +1 -0
- package/dist/public/assets/_Pn6yz8uh.js +1 -0
- package/dist/public/assets/{_DXDNT1X3.js → _SZzmSaBg.js} +1 -1
- package/dist/public/assets/_SZzmSaBg.js.br +0 -0
- package/dist/public/assets/_T_2ZjqbO.js +1 -0
- package/dist/public/assets/_UfEwfre0.js +1 -0
- package/dist/public/assets/{_B-y50nl8.js → _UjkAyUgr.js} +1 -1
- package/dist/public/assets/_UjkAyUgr.js.br +0 -0
- package/dist/public/assets/{_ILL-1yK_.js → _VlgiLy2b.js} +1 -1
- package/dist/public/assets/_VlgiLy2b.js.br +0 -0
- package/dist/public/assets/{_CP06iFNu.js → _WVblDLD3.js} +6 -6
- package/dist/public/assets/_WVblDLD3.js.br +0 -0
- package/dist/public/assets/_WloM0CkN.js +1 -0
- package/dist/public/assets/{_Cuy_2EzM.js → _Wte34w1P.js} +1 -1
- package/dist/public/assets/_Wte34w1P.js.br +0 -0
- package/dist/public/assets/{_CAy9mQpP.js → _YPYFFfaJ.js} +1 -1
- package/dist/public/assets/_YPYFFfaJ.js.br +0 -0
- package/dist/public/assets/__FuiVQAG.js +1 -0
- package/dist/public/assets/{_CmqkfZq2.js → __QNLL-6I.js} +1 -1
- package/dist/public/assets/__QNLL-6I.js.br +0 -0
- package/dist/public/assets/{_B4vE17NF.js → _bCSH-jEg.js} +1 -1
- package/dist/public/assets/_bCSH-jEg.js.br +0 -0
- package/dist/public/assets/{_DJGKsCDi.js → _eHcHhWyn.js} +1 -1
- package/dist/public/assets/_eHcHhWyn.js.br +0 -0
- package/dist/public/assets/{_CieeA14z.js → _eivjORhH.js} +1 -1
- package/dist/public/assets/{_CHd0fTqg.js → _er6oFZMx.js} +1 -1
- package/dist/public/assets/{_FRIMGLKe.js → _gRW8MWWg.js} +1 -1
- package/dist/public/assets/_gRW8MWWg.js.br +0 -0
- package/dist/public/assets/{_Zfhlk2rH.js → _gpX3U1vy.js} +1 -1
- package/dist/public/assets/_gpX3U1vy.js.br +0 -0
- package/dist/public/assets/{__hJYdq47.js → _i2IzfCgI.js} +1 -1
- package/dist/public/assets/_i2IzfCgI.js.br +0 -0
- package/dist/public/assets/_itt8jfJz.js +1 -0
- package/dist/public/assets/_j89vjWp7.js +1 -0
- package/dist/public/assets/{_BQS14psw.js → _jmLLcAls.js} +1 -1
- package/dist/public/assets/_jmLLcAls.js.br +0 -0
- package/dist/public/assets/{_BlhbQzBq.js → _jsL_oBa8.js} +1 -1
- package/dist/public/assets/_jsL_oBa8.js.br +0 -0
- package/dist/public/assets/_mKefy6mn.js +1 -0
- package/dist/public/assets/{_BRchzxNT.js → _nKKOqnCC.js} +1 -1
- package/dist/public/assets/_nKKOqnCC.js.br +0 -0
- package/dist/public/assets/_o6eyMyho.js +1 -0
- package/dist/public/assets/{_BVaoYILr.js → _oz_0ITyF.js} +1 -1
- package/dist/public/assets/_oz_0ITyF.js.br +0 -0
- package/dist/public/assets/{_BNod9nCz.js → _p-qm8ETK.js} +2 -2
- package/dist/public/assets/_p-qm8ETK.js.br +0 -0
- package/dist/public/assets/{_BQHKVi3I.js → _q0a340SH.js} +1 -1
- package/dist/public/assets/_q0a340SH.js.br +0 -0
- package/dist/public/assets/_q75fYQxu.js +1 -0
- package/dist/public/assets/_sDmf2vJB.js +1 -0
- package/dist/public/assets/_v5svd5gX.js +1 -0
- package/dist/public/assets/_yVrNk3pW.js +1 -0
- package/dist/public/assets/{_BrZm2Xci.js → _z3xpFuyM.js} +1 -1
- package/dist/public/assets/_z3xpFuyM.js.br +0 -0
- package/dist/public/assets/{_BHPUiPre.js → _zakrJGBE.js} +1 -1
- package/dist/public/assets/_zakrJGBE.js.br +0 -0
- package/dist/public/assets/files-view-rxokk9dM.js +2 -0
- package/dist/public/assets/manage-workspace-BQ0m7wt6.js +2 -0
- package/dist/public/assets/new-Dg28x8OY.js +1 -0
- package/dist/public/assets/new-workspace-4VjpAPmG.js +2 -0
- package/dist/public/assets/review-view-BkMWOGsX.js +2 -0
- package/dist/public/assets/settings-Dg28x8OY.js +1 -0
- package/dist/public/assets/settings-page-xLuXZ319.js +2 -0
- package/dist/public/assets/styles-Cf6yv4En.css +1 -0
- package/dist/public/assets/styles-Cf6yv4En.css.br +0 -0
- package/dist/public/assets/w-Dg28x8OY.js +1 -0
- package/dist/public/assets/w._-BzL9XmMh.js +1 -0
- package/dist/public/assets/w._-DY12219n.js +1 -0
- package/dist/public/assets/w._-Dg28x8OY.js +1 -0
- package/lib/setup/doctor.d.mts +5 -0
- package/lib/setup/doctor.mjs +6 -0
- package/lib/setup/untracked-cache.d.mts +34 -0
- package/lib/setup/untracked-cache.mjs +281 -0
- package/package.json +1 -1
- package/dist/_ZwD1NY8D.js +0 -2
- package/dist/public/assets/_2MtTRp0j.js.br +0 -0
- package/dist/public/assets/_4w_xGv8P.js +0 -1
- package/dist/public/assets/_AH7CcoCd.js.br +0 -0
- package/dist/public/assets/_B-lekYM5.js.br +0 -0
- package/dist/public/assets/_B-y50nl8.js.br +0 -0
- package/dist/public/assets/_B0aJaAMj.js +0 -1
- package/dist/public/assets/_B1O5mUjx.js.br +0 -0
- package/dist/public/assets/_B1SfjqAu.js +0 -1
- package/dist/public/assets/_B4o6nfVo.js.br +0 -0
- package/dist/public/assets/_B4vE17NF.js.br +0 -0
- package/dist/public/assets/_B6H8I5Li.js +0 -1
- package/dist/public/assets/_B7gN_0W4.js.br +0 -0
- package/dist/public/assets/_B8WIx4no.js +0 -1
- package/dist/public/assets/_B9KTzw_5.js +0 -1
- package/dist/public/assets/_BA0SomMy.js.br +0 -0
- package/dist/public/assets/_BB8hTNA2.js +0 -1
- package/dist/public/assets/_BBI8QGCi.js.br +0 -0
- package/dist/public/assets/_BHPUiPre.js.br +0 -0
- package/dist/public/assets/_BKU5YAWR.js.br +0 -0
- package/dist/public/assets/_BKnpT_81.js +0 -1
- package/dist/public/assets/_BLdATeeX.js +0 -1
- package/dist/public/assets/_BMTqBRK1.js.br +0 -0
- package/dist/public/assets/_BNod9nCz.js.br +0 -0
- package/dist/public/assets/_BQHKVi3I.js.br +0 -0
- package/dist/public/assets/_BQS14psw.js.br +0 -0
- package/dist/public/assets/_BQoUbPlV.js +0 -1
- package/dist/public/assets/_BRchzxNT.js.br +0 -0
- package/dist/public/assets/_BSEPkSge.js.br +0 -0
- package/dist/public/assets/_BSuWTJvm.js +0 -1
- package/dist/public/assets/_BTXAhD8P.js +0 -1
- package/dist/public/assets/_BVaoYILr.js.br +0 -0
- package/dist/public/assets/_BYbHZGU2.js.br +0 -0
- package/dist/public/assets/_BZXflJ85.js +0 -1
- package/dist/public/assets/_BZgIClVP.js.br +0 -0
- package/dist/public/assets/_BZmAdrvi.js.br +0 -0
- package/dist/public/assets/_BbpvXoMp.js.br +0 -0
- package/dist/public/assets/_BdAr-Uzh.js.br +0 -0
- package/dist/public/assets/_BdPYrG5F.js.br +0 -0
- package/dist/public/assets/_BdoL1JCf.js +0 -1
- package/dist/public/assets/_Bef_4YOy.js.br +0 -0
- package/dist/public/assets/_Bg4AvDF8.js.br +0 -0
- package/dist/public/assets/_BjVcPiKd.js +0 -1
- package/dist/public/assets/_BkK9EzKK.js.br +0 -0
- package/dist/public/assets/_BkU6596B.js.br +0 -0
- package/dist/public/assets/_Bku2LsNI.js.br +0 -0
- package/dist/public/assets/_BlhbQzBq.js.br +0 -0
- package/dist/public/assets/_BoaeyVNN.js +0 -1
- package/dist/public/assets/_BqRaoVWP.js +0 -1
- package/dist/public/assets/_BrZm2Xci.js.br +0 -0
- package/dist/public/assets/_BtTsMPJh.js.br +0 -0
- package/dist/public/assets/_BvyMz9Xw.js.br +0 -0
- package/dist/public/assets/_Bw7Pui_N.js +0 -1
- package/dist/public/assets/_BwKaI4_U.js.br +0 -0
- package/dist/public/assets/_BxBysKs5.js.br +0 -0
- package/dist/public/assets/_BxtFOVb7.js.br +0 -0
- package/dist/public/assets/_ByNEoEml.js +0 -1
- package/dist/public/assets/_ByWoCsiZ.js.br +0 -0
- package/dist/public/assets/_Bys8oSIX.js +0 -1
- package/dist/public/assets/_C12PhCgk.js +0 -1
- package/dist/public/assets/_C37_bAmY.js +0 -1
- package/dist/public/assets/_C4oDn55N.js.br +0 -0
- package/dist/public/assets/_C7l44dIG.js +0 -1
- package/dist/public/assets/_C9-mLmID.js +0 -1
- package/dist/public/assets/_CAy9mQpP.js.br +0 -0
- package/dist/public/assets/_CCGLquzy.js.br +0 -0
- package/dist/public/assets/_CDkIC3XD.js +0 -1
- package/dist/public/assets/_CFCL_M3-.js +0 -1
- package/dist/public/assets/_CFUUtM0v.js +0 -1
- package/dist/public/assets/_CFoxi6fb.js.br +0 -0
- package/dist/public/assets/_CG5peoBP.js +0 -1
- package/dist/public/assets/_CHDtwGGI.js.br +0 -0
- package/dist/public/assets/_CKnoGkhj.js +0 -1
- package/dist/public/assets/_CP06iFNu.js.br +0 -0
- package/dist/public/assets/_CQl-X6Xd.js +0 -1
- package/dist/public/assets/_CRhjw4_R.js.br +0 -0
- package/dist/public/assets/_CWcesTLx.js.br +0 -0
- package/dist/public/assets/_CWyRLvQK.js.br +0 -0
- package/dist/public/assets/_CX_NkTjv.js +0 -1
- package/dist/public/assets/_CXwQS3ee.js.br +0 -0
- package/dist/public/assets/_CYmANGeb.js.br +0 -0
- package/dist/public/assets/_C_0E4vAj.js +0 -1
- package/dist/public/assets/_C_deXoC-.js.br +0 -0
- package/dist/public/assets/_CabX1Gj1.js +0 -1
- package/dist/public/assets/_CeuwBb1r.js +0 -1
- package/dist/public/assets/_Cg8EgG7O.js +0 -1
- package/dist/public/assets/_CgBERLK5.js.br +0 -0
- package/dist/public/assets/_ChBaVCtw.js +0 -1
- package/dist/public/assets/_ChTSCLUf.js.br +0 -0
- package/dist/public/assets/_ClytIpp5.js +0 -1
- package/dist/public/assets/_CmqkfZq2.js.br +0 -0
- package/dist/public/assets/_Cnv29F3K.js +0 -1
- package/dist/public/assets/_CpHaHwbf.js +0 -1
- package/dist/public/assets/_CrQAwZk6.js.br +0 -0
- package/dist/public/assets/_CrhguaWF.js.br +0 -0
- package/dist/public/assets/_Cs1-srhf.js +0 -1
- package/dist/public/assets/_Cuy_2EzM.js.br +0 -0
- package/dist/public/assets/_CwX5EQUk.js.br +0 -0
- package/dist/public/assets/_CxfvHthH.js +0 -1
- package/dist/public/assets/_CyYi3IMR.js.br +0 -0
- package/dist/public/assets/_CzL2kCCz.js.br +0 -0
- package/dist/public/assets/_D-MlSj1V.js +0 -1
- package/dist/public/assets/_D02G5y31.js +0 -1
- package/dist/public/assets/_D1A-LNdd.js +0 -1
- package/dist/public/assets/_DAoJfGpU.js.br +0 -0
- package/dist/public/assets/_DCNsuSBb.js +0 -1
- package/dist/public/assets/_DDr80N9X.js +0 -1
- package/dist/public/assets/_DEHqkPZo.js.br +0 -0
- package/dist/public/assets/_DFVYtv8p.js.br +0 -0
- package/dist/public/assets/_DFoP2Rzj.js +0 -1
- package/dist/public/assets/_DG1wlE75.js +0 -1
- package/dist/public/assets/_DJGKsCDi.js.br +0 -0
- package/dist/public/assets/_DK6RTnS-.js.br +0 -0
- package/dist/public/assets/_DKfVR8o1.js.br +0 -0
- package/dist/public/assets/_DN0L4wue.js +0 -1
- package/dist/public/assets/_DNQXjz1P.js +0 -1
- package/dist/public/assets/_DP2Tf6_I.js.br +0 -0
- package/dist/public/assets/_DPP9Wptk.js +0 -1
- package/dist/public/assets/_DRbIzJyE.js.br +0 -0
- package/dist/public/assets/_DSASGdy9.js.br +0 -0
- package/dist/public/assets/_DXByKRk3.js +0 -1
- package/dist/public/assets/_DXDNT1X3.js.br +0 -0
- package/dist/public/assets/_DYkpfkYu.js.br +0 -0
- package/dist/public/assets/_DZZ9udPL.js.br +0 -0
- package/dist/public/assets/_DcXcFXLQ.js +0 -1
- package/dist/public/assets/_DdF5d7a8.js +0 -1
- package/dist/public/assets/_DgTOcckd.js +0 -1
- package/dist/public/assets/_DhaMcmjN.js.br +0 -0
- package/dist/public/assets/_Dim2An8N.js +0 -1
- package/dist/public/assets/_DjY7KIsu.js.br +0 -0
- package/dist/public/assets/_DoT6r6J2.js +0 -1
- package/dist/public/assets/_DpMc0irY.js +0 -1
- package/dist/public/assets/_DqKPF7AZ.js +0 -1
- package/dist/public/assets/_Dr149j_s.js.br +0 -0
- package/dist/public/assets/_DrkBhfzS.js +0 -1
- package/dist/public/assets/_DwnLUasC.js +0 -1
- package/dist/public/assets/_FRIMGLKe.js.br +0 -0
- package/dist/public/assets/_GVh8QHBn.js.br +0 -0
- package/dist/public/assets/_ILL-1yK_.js.br +0 -0
- package/dist/public/assets/_LSwZIzxw.js +0 -1
- package/dist/public/assets/_MJhuJ82g.js +0 -1
- package/dist/public/assets/_P8NC7smA.js.br +0 -0
- package/dist/public/assets/_SLDN5YAg.js +0 -1
- package/dist/public/assets/_Tj0w61ro.js +0 -1
- package/dist/public/assets/_UtBgf782.js.br +0 -0
- package/dist/public/assets/_ZIyNzbx1.js +0 -1
- package/dist/public/assets/_ZKPjl8YR.js.br +0 -0
- package/dist/public/assets/_Zfhlk2rH.js.br +0 -0
- package/dist/public/assets/_ZrjI3EWj.js.br +0 -0
- package/dist/public/assets/__SdWxtBw.js.br +0 -0
- package/dist/public/assets/__hJYdq47.js.br +0 -0
- package/dist/public/assets/_a5L7CpsG.js +0 -1
- package/dist/public/assets/_bAmH_jvN.js.br +0 -0
- package/dist/public/assets/_eY8qKojx.js +0 -1
- package/dist/public/assets/_gO70F4Ak.js +0 -1
- package/dist/public/assets/_jwCCNcal.js.br +0 -0
- package/dist/public/assets/_kr3OzZWH.js.br +0 -0
- package/dist/public/assets/_l1LKnyuO.js.br +0 -0
- package/dist/public/assets/_ljz5j5FG.js.br +0 -0
- package/dist/public/assets/_nJTWrDio.js.br +0 -0
- package/dist/public/assets/_pY2yIJRb.js.br +0 -0
- package/dist/public/assets/_qEJiv_nS.js.br +0 -0
- package/dist/public/assets/_qhBgHAuO.js +0 -1
- package/dist/public/assets/_s8y_0qUD.js +0 -1
- package/dist/public/assets/_wmKrPX6g.js.br +0 -0
- package/dist/public/assets/_xxKXHmhU.js.br +0 -0
- package/dist/public/assets/files-view-2I4YdeDz.js +0 -2
- package/dist/public/assets/manage-workspace-BkIsroOq.js +0 -2
- package/dist/public/assets/new-DzuijaHT.js +0 -1
- package/dist/public/assets/new-workspace-jyO5HQDA.js +0 -2
- package/dist/public/assets/review-view-kzcVHZJX.js +0 -2
- package/dist/public/assets/settings-DzuijaHT.js +0 -1
- package/dist/public/assets/settings-page-B31VSiB0.js +0 -2
- package/dist/public/assets/styles-Ch8MSOsI.css +0 -1
- package/dist/public/assets/styles-Ch8MSOsI.css.br +0 -0
- package/dist/public/assets/w-DzuijaHT.js +0 -1
- package/dist/public/assets/w._-BJMwUylN.js +0 -1
- package/dist/public/assets/w._-CcfjcIV8.js +0 -1
- package/dist/public/assets/w._-DzuijaHT.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@keyframes _a{to{rotate:360deg}}._b{height:100%;min-height:0;padding-top:env(safe-area-inset-top);flex-direction:column;display:flex;position:relative}._c{display:none}@media screen and (width<=899px){._b{padding-top:max(env(safe-area-inset-top), .85rem)}._c{height:max(env(safe-area-inset-top), .85rem);z-index:20;background:var(--bg);pointer-events:none;display:block;position:fixed;top:0;left:0;right:0}}._d{flex-direction:column;flex:1;min-width:0;height:100%;min-height:0;display:flex}._f{flex-direction:row;flex:1;min-width:0;min-height:0;display:flex}._g{display:none}._h{z-index:40;border-radius:var(--radius);background:var(--panel);padding:.35rem .65rem;font-weight:500;position:fixed;top:.35rem;left:.35rem;translate:0 -200%;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._h:focus-visible{translate:none}._i{outline:none;flex:1;grid-template:minmax(0,1fr)/minmax(0,1fr);min-width:0;min-height:0;display:grid}._j{grid-area:1/1;min-width:0;min-height:0;display:flex}._k{flex-direction:column;flex:1;min-height:0;display:flex}._l{border-top:1px solid var(--border);background:var(--panel);justify-content:center;padding:.65rem 1rem;display:flex}@media screen and (width<=899px){._f._e{position:relative}._f._e ._i{visibility:hidden;position:absolute;inset:0}}._m{border-radius:var(--radius);width:2.15rem;height:2.15rem;color:var(--dim);background:0 0;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}._m:hover:not(:disabled){background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._m:disabled{opacity:.45;cursor:default}@media (pointer:coarse){._m{position:relative}._m:before{content:"";position:absolute;inset:min(0px,50% - 1.375rem)}}@keyframes _V{0%,to{background:var(--lightningcss-light,#0000)var(--lightningcss-dark,#0000);box-shadow:0 0 0 3px var(--lightningcss-light,#0000)var(--lightningcss-dark,#0000)}50%{background:var(--lightningcss-light,#8a5a0029)var(--lightningcss-dark,#f0b84a29);box-shadow:0 0 0 3px var(--lightningcss-light,#8a5a0029)var(--lightningcss-dark,#f0b84a29)}}._n{flex-shrink:0;display:block}:where(button:has(>._n)){align-items:center;gap:.35rem;display:inline-flex}._o{appearance:none}._o::-webkit-search-cancel-button{appearance:none;display:none}._o::-webkit-search-decoration{appearance:none;display:none}._p{flex-shrink:0;min-width:0;display:inline-flex;position:relative}._p:after{content:"";pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;border-color:var(--dim);width:.32em;height:.32em;position:absolute;top:50%;right:.65rem;translate:0 -70%;rotate:45deg}._q{appearance:none;min-width:8rem;min-height:1.85rem;color:var(--text);background:var(--bg,var(--panel));border:1px solid var(--field-border);border-radius:var(--radius);padding:0 1.5rem 0 .65rem;font-size:.85rem}._r{background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:var(--radius);justify-content:center;align-items:center;gap:.35rem;padding:.35rem .65rem;font-weight:500;transition:background .12s,box-shadow .12s;display:inline-flex}._r:hover:not(:disabled){background:color-mix(in srgb, var(--panel) 90%, var(--text))}._r:disabled{opacity:.45;cursor:default}._s{background:var(--accent-fill);color:#fff;box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent-fill) 80%, black), inset 0 1px 0 #ffffff24}._s:hover:not(:disabled){background:color-mix(in srgb, var(--accent-fill) 88%, black)}._s:active:not(:disabled){background:color-mix(in srgb, var(--accent-fill) 80%, black)}._u{color:var(--danger)}._u._t{background:var(--danger);box-shadow:inset 0 0 0 1px var(--danger);color:#fff}._v{box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 28%, transparent);color:var(--dim);white-space:nowrap;background:0 0;border-radius:4px;align-items:center;gap:.25em;padding:.05em .5em;font-size:.78rem;line-height:1.5;display:inline-flex}._w{place-items:center;display:inline-grid}._x{grid-area:1/1}._y{font-variant-numeric:tabular-nums;letter-spacing:-.02em;font-size:.55rem;font-weight:600;line-height:1}._z{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._A{color:var(--accent-text)}._B{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._C{color:var(--danger)}._D{background:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._E{background:var(--accent)}._F{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c)}._G{background:var(--danger)}._H{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._I{color:var(--dim)}._J{color:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#a371f7)}._K{color:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#f85149)}._L{color:var(--dim)}._M{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._N{flex:1}._O{filter:grayscale();font-style:italic}._P{letter-spacing:.07em;text-transform:uppercase;color:var(--dim);white-space:nowrap;font-size:.72rem;font-weight:600}._Q{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}._T{opacity:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}._U{border-radius:50%;flex-shrink:0;width:7px;height:7px}._W{border-radius:999px;flex-shrink:0;line-height:0;display:inline-flex}._X{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);animation:1.4s ease-in-out infinite _V}._Y{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 10%, transparent)}._Z{color:var(--text)}._0{color:var(--dim)}._1{animation:.8s linear infinite _a}._2{border:2px solid color-mix(in srgb, currentColor 25%, transparent);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:.7rem;height:.7rem;animation:.8s linear infinite _a;display:inline-block}._3{background:color-mix(in srgb, currentColor 18%, transparent);border-radius:999px;flex-shrink:0;width:1.9rem;height:1.1rem;padding:0;transition:background .12s;position:relative}._3:after{content:"";background:#fff;border-radius:50%;width:.8rem;height:.8rem;transition:translate .12s;position:absolute;top:.15rem;left:.15rem;box-shadow:0 1px 2px #0000004d}._3[aria-checked=true]{background:var(--accent-fill)}._3[aria-checked=true]:after{translate:.8rem}._3:disabled{opacity:.45}._4{text-align:left;border-radius:var(--radius);flex:1;align-items:center;gap:.35rem;min-width:0;padding:.35rem .5rem;display:flex}._4:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._5{border:1px solid var(--accent-text);border-radius:var(--radius);background:var(--bg,var(--panel));min-width:0;color:inherit;font:inherit;flex:1;margin:.15rem .35rem .15rem 0;padding:.25rem .5rem}._5:focus{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}._6{color:inherit;cursor:pointer;text-decoration:none}._6:hover{color:var(--accent-text);text-decoration:underline}._6:focus-visible{outline-offset:-2px;text-decoration:underline}._7{white-space:nowrap;min-height:1.85rem;padding:0 .5rem;font-size:.78rem;line-height:1.35}._8{min-height:2.15rem;padding:0 1rem;font-weight:500}._9{color:var(--dim);background:color-mix(in srgb, currentColor 6%, transparent);white-space:nowrap;border-radius:999px;flex-shrink:0;align-items:center;gap:.3em;padding:.1em .5em;font-size:.72rem;font-weight:600;line-height:1.5;display:inline-flex}.__{font-variant-numeric:tabular-nums}._ba{letter-spacing:.04em;text-transform:uppercase;font-size:.72rem;font-weight:700}._bb{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._bc{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);background:var(--lightningcss-light,#1a7f371a)var(--lightningcss-dark,#57d3641a)}._bd{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);background:var(--lightningcss-light,#bf87001a)var(--lightningcss-dark,#d4a72c1a)}._be{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}._bf{color:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#a371f7);background:var(--lightningcss-light,#8250df1a)var(--lightningcss-dark,#a371f71a)}._bg{color:var(--lightningcss-light,#cf222e)var(--lightningcss-dark,#f85149);background:var(--lightningcss-light,#cf222e1a)var(--lightningcss-dark,#f851491a)}._bh{color:var(--dim);min-width:0;font-size:.78rem;line-height:1.35}._bi{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}._bj{width:100%;min-width:0;min-height:1.85rem}._bk{min-height:2.15rem}._bl{flex:1;min-width:0;display:block;position:relative}._bm{color:var(--dim);pointer-events:none;position:absolute;top:50%;left:.65rem;translate:0 -50%}._bn{padding-left:2.1rem}._bo{width:1.6rem;height:1.6rem}._bp{width:1.85rem;height:1.85rem}._bq{width:2.6rem;height:2.6rem}._br{background:0 0;width:1.6rem;height:1.6rem}._bs{color:var(--dim)}._bs:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}._bs._t,._bs._t:hover{color:#fff;background:var(--danger)}._bt{position:relative;overflow:visible}._bu{position:relative}._bv{z-index:1;border-radius:inherit;background:var(--danger);color:#fff;white-space:nowrap;align-items:center;padding:0 .65rem;font-size:.78rem;font-weight:600;display:inline-flex;position:absolute;top:0;bottom:0;right:0}._bw{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:.25rem;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._bx{font-weight:700}._bx[data-status=A]{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._bx[data-status=D]{color:var(--danger)}._bx[data-status=M]{color:var(--text)}._by{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;min-width:0;overflow:hidden}._by:before,._by:after{content:""}._bz{border-radius:50%;width:6px;height:6px;position:absolute;top:4px;right:4px}._bA{border-radius:calc(var(--radius) + 2px);min-height:1.85rem;box-shadow:inset 0 0 0 1px var(--border);background:0 0;flex-shrink:0;align-items:stretch;padding:2px;display:inline-flex}._bC{border-radius:var(--radius);min-height:calc(2.15rem - 4px);color:var(--dim);white-space:nowrap;justify-content:center;align-items:center;padding:0 .65rem;font-size:.78rem;font-weight:500;line-height:1;display:inline-flex}._bC:disabled{opacity:.45}._bC:hover:not(:disabled){color:var(--text)}._bC._bB{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}@media screen and (width<=899px){._q{min-height:2.35rem}._v{border-radius:var(--radius);min-height:1.75rem;font-size:.85rem}._S{display:none}._7{min-height:2.35rem;font-size:.85rem}._8{justify-content:center;width:100%;min-height:3rem;padding:.5rem .85rem}._bj{min-height:2.35rem}._bk{border-radius:calc(var(--radius) + 2px);min-height:3rem;padding:.65rem .85rem;font-size:1rem}._bn{padding-left:2.4rem}._bo{width:2.6rem;height:2.6rem}._bp{width:2.35rem;height:2.35rem}}@media screen and (width>=900px){._R{display:none}}@media (pointer:coarse){._T{pointer-events:auto}._3{position:relative}._3:before{content:"";position:absolute;inset:min(0px,50% - 1.375rem)}}@media (prefers-reduced-motion:reduce){._X{animation:none}}._bL{border-radius:var(--radius);border:1px solid var(--border);background:var(--panel);color:var(--text);overflow-wrap:anywhere;flex-wrap:wrap;align-items:flex-start;gap:.65rem;margin:0;padding:.5rem .65rem;font-size:1rem;line-height:1.35;display:flex;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._bM{top:calc(env(safe-area-inset-top) + .65rem);z-index:40;width:min(24rem,100vw - 2rem);position:fixed;right:1rem}._bN{width:100%;box-shadow:none;margin-bottom:.65rem;position:relative}._bO._bO{z-index:1;position:sticky;top:.35rem;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._bP{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--panel))}._bQ{border-color:color-mix(in srgb, var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c) 45%, var(--border));background:color-mix(in srgb, var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c) 10%, var(--panel))}._bR{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--panel))}._bS{color:var(--danger);font-weight:600}._bT{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);font-weight:600}._bU{color:var(--accent-text);font-weight:600}._bV{flex-wrap:wrap;flex:1;align-items:baseline;gap:.25rem .5rem;min-width:0;display:flex}._bW{flex:12rem;min-width:0}._bW:empty{display:none}._bX{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;margin-left:auto;display:flex}._bZ{color:var(--dim);margin-block:-.35rem}._bZ:hover{color:var(--text)}@media screen and (width<=899px){._bM{width:min(28rem,100vw - 2rem);left:50%;right:auto;translate:-50%}._bY{flex:100%;margin-left:0}}@keyframes _bD{0%{opacity:0;translate:-50% .5rem}to{opacity:1;translate:-50%}}._bE{top:calc(env(safe-area-inset-top) + .65rem);z-index:39;background:var(--panel);border:1px solid color-mix(in srgb, var(--accent) 50%, var(--border));color:var(--text);white-space:nowrap;pointer-events:none;border-radius:999px;align-items:center;gap:.5rem;padding:.35rem .85rem;font-size:.85rem;font-weight:600;line-height:1.5;animation:.2s ease-out _bD;display:flex;position:fixed;left:50%;translate:-50%;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}@media screen and (width<=899px){._bE{top:auto;bottom:calc(max(.75rem, env(safe-area-inset-bottom)) + 3.4rem)}}._cx{background:color-mix(in srgb, var(--panel) 60%, var(--bg));border-right:1px solid var(--border);flex-direction:column;flex:none;align-items:center;gap:.25rem;width:2.9rem;padding-top:.225rem;padding-bottom:.5rem;display:flex}._cz{border-radius:calc(var(--radius) + .15rem);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);background:var(--panel);flex-direction:column;align-items:center;gap:.25rem;padding:.15rem;display:flex}._cA{border-radius:var(--radius);width:2.15rem;height:2.15rem;color:var(--dim);letter-spacing:.02em;cursor:pointer;place-items:center;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:700;display:grid}._cA._cy{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._cB{width:2.15rem;height:2.15rem;color:var(--dim);position:relative}._cB._cy{color:var(--text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._cC{flex:1}._cD{position:absolute;top:5px;right:5px}@media screen and (width<=899px){._cx{display:none}}@media (hover:hover){._cA:not(._cy):hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}}._dX{width:2.15rem;height:2.15rem;color:var(--dim)}._dX._dW{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._dY{z-index:39;pointer-events:none;flex-direction:column;gap:.65rem;width:24rem;max-width:calc(100vw - 4rem);max-height:calc(100vh - 1rem);padding:.65rem .85rem;display:flex;position:fixed;overflow-y:auto}._dZ{pointer-events:auto}._jE{flex-shrink:0;display:block}._jF{fill:none;stroke:color-mix(in srgb, currentColor 18%, transparent)}._jG{fill:none;stroke:currentColor;stroke-linecap:round}._jH{grid-template-columns:7.5rem minmax(0,1fr);align-items:start;gap:.35rem .85rem;display:grid}._jJ._jH{grid-template-columns:minmax(0,1fr)}._jK{flex-direction:column;gap:.15rem;min-width:0;padding-top:.15rem;display:flex}._jL{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}._jM{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);white-space:nowrap;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._jN{flex-direction:column;gap:.35rem;min-width:0;display:flex}._jO{margin:0}._jP{color:var(--text);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}._jQ{grid-template-columns:2.6rem 1fr 3.1rem 3rem;align-items:center;gap:.5rem;min-height:1.35rem;display:grid}._jR{color:var(--dim);font-size:.72rem;font-weight:600}._jS{background:color-mix(in srgb, currentColor 10%, transparent);border-radius:999px;height:7px;overflow:hidden}._jT{border-radius:999px;height:100%;display:block}._jU{font-variant-numeric:tabular-nums;text-align:right;font-size:.78rem;font-weight:600}._jV{color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._jW{letter-spacing:-.01em;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:600}@media screen and (width<=359px){._jQ{grid-template-columns:2.4rem 1fr 3rem}._jV{display:none}}@media screen and (width<=899px){._jH{grid-template-columns:1fr;gap:.5rem}._jL{font-size:.78rem}._jN{gap:.5rem}._jQ{grid-template-columns:2.6rem 1fr 3.2rem 3rem;gap:.5rem;min-height:1.6rem}._jR{font-size:.78rem}._jS{height:8px}._jU{font-size:.85rem}._jV{font-size:.78rem}._jW{font-size:1rem}}._b2{position:relative}._b3{background:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._b5{width:var(--side-w,17.5rem);border-right:1px solid var(--border);background:var(--panel);flex-direction:column;flex-shrink:0;display:flex;position:relative}._b6._b6{border-top:1px solid var(--border);flex-shrink:0;max-height:40%;margin:0;padding:0;overflow-y:auto}._b7{color:var(--accent-text)}._b9{flex-direction:column;flex:1;gap:.15rem;min-height:0;padding:.5rem .35rem;display:flex;overflow-y:auto}@media screen and (width<=899px){._b5{background:var(--bg,var(--panel));border-right:none;flex:1;width:100%;min-height:0;font-size:1rem;display:none}._b5._b4{display:flex;overflow:hidden}._b9{-webkit-overflow-scrolling:touch;flex-direction:column;gap:.5rem;padding:.5rem .85rem 1rem;display:flex;overflow-y:auto}._b5._b4 ._b9{gap:0}}._ca{order:-1;flex:0 0 var(--side-w,17.5rem);border-right:1px solid var(--border);background:var(--panel);flex-direction:column;min-width:0;min-height:0;display:none;position:relative}._cb{flex-direction:column;flex:1;min-height:0;display:flex}._cc{background:color-mix(in srgb, var(--panel) 94%, var(--text));border-bottom:1px solid var(--border);flex-shrink:0}._cd{width:100%;min-height:2rem;color:var(--text);text-align:left;align-items:center;gap:.35rem;padding:0 .65rem 0 .5rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600;display:flex}._ce{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._cf{color:var(--dim)}._cg{padding:0 .65rem .5rem .5rem;font-size:.78rem}._cg:not(:has(>*)){display:none}._ch{flex-direction:column;padding-bottom:.25rem;display:flex}._ci{color:var(--dim);align-items:center;gap:.15rem;padding:0 .35rem .15rem .25rem;font-size:.72rem;display:flex}._cj{min-width:0;height:1.5rem;color:inherit;text-align:left;border-radius:4px;flex:auto;align-items:center;gap:.25rem;padding:0 .25rem;display:flex}._cj:hover{background:color-mix(in srgb, currentColor 10%, transparent);color:var(--text)}._cl{flex-shrink:0;transition:transform .12s}._cl._ck{transform:rotate(90deg)}._cm{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:600;overflow:hidden}._cn{color:var(--dim);flex-shrink:0}._cn:disabled{opacity:.35}._co{font-variant-numeric:tabular-nums;flex-shrink:0}._cp{overscroll-behavior:contain;max-height:9rem;position:relative;overflow-y:auto}._cr{width:calc(100% - .5rem);min-height:1.5rem;color:var(--text);text-align:left;border-radius:4px;align-items:center;gap:.35rem;margin:0 .25rem;padding:0 .5rem 0 .25rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;display:flex}._cr:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._cr._cq{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 0 0 1px var(--accent);font-weight:600}._cs{min-width:2ch;color:var(--dim);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;font-size:.72rem;font-weight:400}._ct{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._cu{--trees-bg-override:var(--panel);--trees-fg-override:var(--text);--trees-fg-muted-override:var(--dim);--trees-border-color-override:var(--border);--trees-accent-override:var(--accent-text);--trees-status-added-override:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);--trees-status-untracked-override:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);--trees-status-deleted-override:var(--danger);--trees-status-modified-override:var(--text);--trees-status-renamed-override:var(--lightningcss-light,#8250df)var(--lightningcss-dark,#a371f7);--trees-status-ignored-override:var(--dim);--trees-padding-inline-override:.5rem;flex:auto;min-height:0;overflow:hidden}._cu>file-tree-container{color-scheme:inherit}._cw{cursor:col-resize;touch-action:none;z-index:1;width:6px;position:absolute;top:0;bottom:0;right:-3px}._cw:after{content:"";background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:2px}._cw:hover:after,._cw._cv:after{background:var(--accent)}@media screen and (width>=900px){._ca{display:flex}._ca._b_{display:none}}@media screen and (width<=899px){._ca{display:none}}._b0{min-width:8rem;color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._b0:popover-open{display:flex}._b1{flex:none;gap:.5rem;padding:.5rem .65rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._dG{background:var(--bg,var(--panel));min-width:0;min-height:0;color:inherit;flex-direction:column;flex:1;display:flex}._dH{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent);flex-shrink:0;min-width:0;padding:.65rem;display:flex}._dI{width:100%;min-width:0;max-width:var(--page-col,48rem);align-items:center;gap:.5rem;display:flex}._dJ{border-radius:var(--radius);height:1.85rem;color:var(--dim);white-space:nowrap;justify-content:center;align-items:center;gap:.35rem;padding:0 .5rem;font-size:.85rem;font-weight:500;display:inline-flex}._dJ:hover:not(:disabled){color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._dJ:disabled{opacity:.5}._dL{letter-spacing:-.01em;white-space:nowrap;flex-shrink:0;margin:0;font-size:1rem;font-weight:600;line-height:2.15rem}._dM{min-width:0;color:var(--dim);flex:auto;align-items:center;gap:.35rem;font-size:.85rem;line-height:1.35;display:flex;overflow:hidden}._dN{flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;display:flex}._dO{scrollbar-gutter:stable;flex:1;min-height:0;padding:.85rem .65rem 2rem;overflow-y:auto}._dP{flex-direction:column;gap:1.35rem;width:100%;max-width:48rem;display:flex}@media screen and (width>=1440px){._dH,._dO{padding-inline:1.35rem}}@media screen and (width<=899px){._dH{padding-top:.25rem;padding-bottom:.5rem;padding-left:max(.85rem, calc(env(safe-area-inset-left) + .5rem));padding-right:max(.85rem, calc(env(safe-area-inset-right) + .5rem))}._dI{max-width:none}._dJ{width:2.35rem;height:2.35rem;padding:0}._dK{display:none}._dL{font-size:1.1rem;line-height:2.35rem}._dO{padding:.65rem .85rem 1.35rem;padding-left:max(.85rem, calc(env(safe-area-inset-left) + .5rem));padding-right:max(.85rem, calc(env(safe-area-inset-right) + .5rem));padding-bottom:max(1.35rem, env(safe-area-inset-bottom))}._dP{gap:1rem;max-width:none}}._ey{padding:.35rem max(.5rem, calc(env(safe-area-inset-right) + .25rem)) 1.35rem max(.5rem, calc(env(safe-area-inset-left) + .25rem));-webkit-overflow-scrolling:touch;flex-direction:column;flex:1;gap:1px;min-height:0;display:flex;overflow-y:auto}._eA{border-radius:var(--radius);flex-direction:column;flex-shrink:0;display:flex}._eA._ez{background:color-mix(in srgb, var(--accent) 10%, transparent)}._eB{align-items:center;min-width:0;display:flex}._eC{border-radius:var(--radius);min-width:0;min-height:2.85rem;color:inherit;flex:1;align-items:center;gap:.5rem;padding:0 0 0 .5rem;font-size:1rem;font-weight:500;display:flex}._eC:active{background:color-mix(in srgb, currentColor 6%, transparent)}._eD{width:16px;color:var(--dim);flex-shrink:0;justify-content:center;display:inline-flex}._eE{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}._eF{color:var(--dim);flex-shrink:0;margin-left:auto;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:400}._eG{color:var(--dim);flex-shrink:0}._eH{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._eI{margin-top:-.25rem;padding-bottom:.35rem;padding-left:calc(1rem + 16px)}._eI:not(:has(*)){display:none}._eJ{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin:0 .25rem .25rem calc(.5rem + 8px);padding-left:.25rem;display:flex}._eK{width:min(24rem,100vw - 1rem);color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._eK:popover-open{display:flex}._eN{border-radius:var(--radius);cursor:pointer;flex-shrink:0}._eN:hover,._eN:focus-within{background:color-mix(in srgb, currentColor 6%, transparent)}._eN._eL{background:color-mix(in srgb, var(--accent) 10%, transparent)}._eO{border-radius:var(--radius);align-items:center;display:flex;position:relative}._eP{min-height:1.8rem;padding:0 .35rem;font-weight:500}._eP:hover{background:0 0}._eQ{--ws-actions-bg:var(--panel);border-radius:var(--radius);opacity:0;pointer-events:none;background:var(--ws-actions-bg);box-shadow:-.85rem 0 .55rem var(--ws-actions-bg);align-items:center;gap:.15rem;padding:0 .15rem 0 .35rem;transition:opacity .12s;display:flex;position:absolute;top:0;bottom:0;right:0}._eN:hover ._eQ,._eN:focus-within ._eQ{--ws-actions-bg:color-mix(in srgb, var(--text) 6%, var(--panel))}._eN._eL ._eQ{--ws-actions-bg:color-mix(in srgb, var(--accent) 10%, var(--panel))}._eN:hover ._eQ,._eN:focus-within ._eQ,._eQ:has(._t,[aria-busy=true]){opacity:1;pointer-events:auto}._eR{color:var(--dim);line-height:1}._eQ ._eR{color:var(--dim);background:0 0}._eQ ._eR:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, var(--ws-actions-bg))}._eS{flex-shrink:0;width:12px;display:inline-flex}._eT{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}._eU{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._eV{cursor:default}._eV:hover{background:0 0}._eW{flex-shrink:0;margin-top:.15rem}._eX{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);flex-shrink:0;margin-top:.15rem}._eY,._eN:hover ._eY,._eN:focus-within ._eY{--ws-actions-bg:var(--panel)}._eZ{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;line-height:1.2;overflow:hidden}._e0{color:var(--dim);flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}html[data-mod-held] ._e0{display:none}._e1{box-shadow:inset 0 0 0 1px var(--border);color:var(--text);border-radius:4px;flex-shrink:0;padding:0 .25rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;line-height:1.6;display:none}html[data-mod-held] ._e1{display:inline-block}._e1:before{content:"Ctrl "}html[data-mac] ._e1:before{content:"⌘"}._e2{margin-left:-.15rem}._e2:not(:has(*)){display:none}@media screen and (width<=899px){._eM{border-radius:0;margin:0;padding:.35rem .5rem}._eM ._eP{border-radius:0;align-items:flex-start;gap:.5rem;min-height:2.4rem;padding:0;font-size:1rem}._eM ._eS{width:16px}._eM ._eU{font-size:1rem;font-weight:500}._eM ._eY{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}._eM ._eZ{font-size:.85rem}}@media (hover:hover){._eQ{pointer-events:auto}}@media (pointer:coarse){._eN:has([aria-current=true]) ._eQ{opacity:1;pointer-events:auto}}._kc{--chip-split:color-mix(in srgb, currentColor 18%, transparent);align-items:stretch;gap:0;padding:0;overflow:hidden}._kd{min-height:100%;color:inherit;line-height:1.5;font:inherit;cursor:pointer;background:0 0;border:0;border-left:1px solid #0000;border-radius:0;justify-content:center;align-self:stretch;align-items:center;margin:0;padding:.05em .4em;text-decoration:none;display:inline-flex}._kd:first-child{padding-left:.55em;padding-right:.45em}._kd+._kd{border-left-color:var(--chip-split);padding-left:.35em;padding-right:.35em}._kd:last-child{padding-right:.45em}._kd:first-child:hover{background:color-mix(in srgb, currentColor 10%, transparent)}a._kd:first-child:hover{color:var(--lightningcss-light,#116329)var(--lightningcss-dark,#7ee787)}._ke:hover{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._kf:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}._kf._kf._t,._kf._kf._t:hover{color:#fff;background:var(--danger)}@media screen and (width<=899px){._kd{padding-top:.28em;padding-bottom:.28em}._kd:first-child{padding-left:.65em}._kd:last-child{padding-right:.55em}}._kg{z-index:1;cursor:default;flex-wrap:wrap;gap:.25rem;padding:0 .15rem .35rem .5rem;display:flex;position:relative}._kh{border-bottom:1px solid var(--border);margin-bottom:.25rem;padding:.25rem .25rem .5rem}._kj{color:var(--text)}._kj:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._kk{background:currentColor;border-radius:50%;width:6px;height:6px}._kl{margin-left:.15rem}a._km:first-child:hover{color:inherit;background:color-mix(in srgb, currentColor 10%, transparent)}._kn{font-variant-numeric:tabular-nums;gap:.25em}._ko{min-width:14rem;max-width:min(24rem,100vw - 1rem);max-height:min(24rem,70dvh);color:var(--text);flex-direction:column;margin:0;display:none;position:fixed;inset:auto;overflow-y:auto}._ko:popover-open{display:flex}._kp{color:var(--dim);padding:.25rem .35rem;font-size:.78rem}._kq{color:var(--text);margin-right:.25rem;font-weight:600}._kr{border-radius:4px;align-items:center;gap:.35rem;min-width:0;padding:.25rem .35rem;font-size:.85rem;display:flex}._ks{background:color-mix(in srgb, currentColor 6%, transparent)}._kt{min-width:1ch;color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.78rem}._ku{font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600}._ku:hover{text-decoration:underline}._kv{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._kw{color:var(--dim);flex-shrink:0}@media screen and (width<=899px){._kg{gap:.35rem;padding:0 .5rem .5rem}._kh{padding:.25rem .25rem .5rem}}._nz{--chip-split:color-mix(in srgb, var(--accent) 35%, transparent);color:var(--accent-text);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent)}._nA{color:var(--dim);cursor:not-allowed}a._nB:first-child:hover,a._nB:hover{color:inherit;background:color-mix(in srgb, var(--accent) 22%, transparent)}._jZ{--row-bg:var(--row-base,var(--panel));border-radius:var(--radius);align-items:center;min-width:0;display:flex;position:relative}._jZ._jX{--row-bg:color-mix(in srgb, var(--accent) 10%, var(--row-base,var(--panel)));background:color-mix(in srgb, var(--accent) 10%, transparent)}._jZ:not(._jX):hover{--row-bg:color-mix(in srgb, var(--text) 6%, var(--row-base,var(--panel)));background:color-mix(in srgb, currentColor 6%, transparent)}._j0{gap:.5rem;min-height:2.85rem;padding:0 .65rem}._j0:hover{background:0 0}._jY ._j0{gap:.35rem;min-height:1.65rem;padding:0 .35rem}._j1{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}._jY ._j1{flex-direction:row;align-items:baseline;gap:.35rem}._j2{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}._jY ._j2{font-weight:400}._j3{flex-shrink:0;align-self:stretch;align-items:stretch;display:flex}._jY ._j3{border-radius:var(--radius);background:var(--row-bg);box-shadow:-.85rem 0 .55rem var(--row-bg);opacity:0;pointer-events:none;align-items:center;gap:.15rem;padding:0 .15rem 0 .35rem;transition:opacity .12s;position:absolute;top:0;bottom:0;right:0}._jY:hover ._j3,._jY:focus-within ._j3,._jY ._j3:has(._t){opacity:1;pointer-events:auto}._j4{width:2.6rem;height:auto}._jY ._j4{width:1.6rem;height:1.6rem}._j4._t,._jY ._j4._t{width:auto}._j5{margin-left:.65rem}._jY ._j5{margin-left:.35rem}._j6{margin:.25rem .35rem}._jY ._j6._j6{align-self:stretch;height:1.65rem;min-height:0;margin:0 .15rem 0 calc(.1rem - 1px);padding:0 .25rem}@media (hover:hover){._jY ._j3{pointer-events:auto}}._df{min-width:0;color:var(--dim);-webkit-user-select:text;user-select:text;text-overflow:ellipsis;white-space:nowrap;align-items:center;gap:.35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;display:flex;overflow:hidden}._dg{flex-direction:column;gap:.5rem;min-width:0;display:flex}._dh{align-items:center;gap:.5rem;min-height:1.85rem;padding:0 .15rem;display:flex}._dj{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}._dl{background:var(--panel);min-width:0;box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);align-items:center;gap:.5rem;padding:.65rem;display:flex}._dl._dk{color:var(--dim)}._dm{text-align:left;min-width:0;color:inherit;flex-direction:column;flex:1;gap:.15rem;text-decoration:none;display:flex}._dn{overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.2}._do{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-width:0;display:flex}._dp{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.78rem;overflow:hidden}._dq{border-radius:var(--radius);min-width:1.85rem;min-height:1.85rem;color:var(--dim);flex-shrink:0;justify-content:center;align-items:center;padding:0 .35rem;font-size:1rem;line-height:1;display:inline-flex}._dq:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._dr{color:var(--dim);margin:0;padding:.35rem .15rem;font-size:.85rem}._ds{color:var(--dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;padding:2rem;display:flex}._dt{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin:0;font-size:.72rem;font-weight:600}@media screen and (width<=899px){._dh{min-height:2.35rem}._dl{border-radius:calc(var(--radius) + 4px);gap:.65rem;padding:.85rem}._dn{font-size:1rem}._dp{white-space:normal;text-overflow:unset;overflow-wrap:anywhere;font-size:.85rem;overflow:visible}._dq{min-width:2.35rem;min-height:2.35rem;font-size:1.1rem}._dr{font-size:1rem}}._d0{flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}._d0:has([data-add-pop]:not([hidden])){overflow:visible}._d1{flex-direction:column;gap:.65rem;padding:.65rem;display:flex}._d1+._d1{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._d2{color:var(--dim);flex-shrink:0;transition:transform .12s}._d3{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._d4{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-shrink:0;align-items:center;gap:.5rem;min-width:0;min-height:2.35rem;padding:.25rem 0;display:flex}._d4:first-child{border-top:none}._d6{min-height:2.15rem;padding:.15rem .35rem .15rem .65rem}._d8{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;column-gap:.5rem;min-height:2.15rem;padding:.15rem .35rem .15rem .65rem;font-size:.85rem;display:grid}._d8:first-child{border-top:none}._d_{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:center;min-height:2.15rem;padding:0;display:flex}._d_:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit;border-top:none}._d_:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}._d7>._d_{grid-column:1/-1}._ea{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);background:color-mix(in srgb, currentColor 6%, transparent);color:var(--dim);align-items:center;gap:.35rem;padding:.25rem .65rem;font-size:.78rem;font-weight:600;display:flex}._ea:first-child{border-top:none}._d7>._ea{grid-column:1/-1}._eb{font-variant-numeric:tabular-nums;font-weight:400}._ec{transition:opacity .12s}._ed{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}._ee{min-width:0;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;font-size:.78rem;display:flex;overflow:hidden}._ef{justify-self:end;align-items:center;gap:.35rem;display:inline-flex}._eg{color:var(--dim)}._ei{background:0 0;border-radius:4px;flex:none;align-items:center;gap:.15rem;max-width:10rem;padding:.15rem .25rem;display:inline-flex}._ei:hover,._ei._eh{color:inherit;background:color-mix(in srgb, currentColor 10%, transparent)}._ej._eh{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}@media screen and (width>=900px){._d7{grid-template-columns:fit-content(16rem) minmax(0,1fr) auto;display:grid}._d7>._d8{grid-column:1/-1;grid-template-columns:subgrid}._d7>._d9{grid-template-columns:auto minmax(0,1fr)}._d_{background:var(--bg);box-shadow:inset 0 0 0 1px var(--field-border);transition:box-shadow .12s}._d_:hover{box-shadow:inset 0 0 0 1px var(--dim)}._d_:has(input:focus){box-shadow:inset 0 0 0 1px var(--accent)}}@media screen and (width<=899px){._d1{padding:.65rem .85rem}._d4{min-height:2.85rem}._d6{min-height:2.35rem;padding:.25rem .35rem .25rem .65rem}._d8{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lead end""meta meta";min-height:2.35rem;padding:.25rem .35rem .25rem .65rem}._d_{min-height:2.35rem}._ed{grid-area:lead}._ee{grid-area:meta}._ef{grid-area:end}._ei{min-height:1.75rem}}@media (hover:hover){._ec{opacity:0}li:hover ._ec,li:focus-within ._ec,._ec._t{opacity:1}}._el{flex-direction:column;flex-shrink:0;margin-top:.5rem;display:flex}._en{border-radius:var(--radius);text-align:left;align-items:center;gap:.35rem;min-height:1.8rem;padding:0 .35rem;display:flex}._ek ._en{min-height:2.85rem;padding:0 .5rem}._em ._en{border-radius:0;flex-shrink:0;height:2.4rem;padding:0 .5rem 0 .85rem}._eo{width:12px}._ep{place-items:center;width:1.85rem;height:1.85rem;display:inline-grid}._eq{transform:rotate(90deg)}._es{letter-spacing:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400}._et{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._em ._et{padding:0 .35rem .5rem}._eu{border-radius:var(--radius);min-height:1.8rem;color:var(--dim);align-items:center;padding:0 .35rem 0 calc(.7rem + 12px);display:flex;position:relative}._ek ._eu{min-height:2.85rem;padding:0 .5rem 0 calc(1rem + 16px);font-size:1rem}._ev{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._ew{opacity:0;pointer-events:none;flex-shrink:0;align-items:center;gap:.15rem;transition:opacity .12s;display:flex}._eu:hover ._ew,._eu:focus-within ._ew,._ew:has(._t,[aria-busy=true]){opacity:1;pointer-events:auto}._ex{color:var(--dim);background:0 0}@media (hover:hover){._en:hover{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._eu:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._ew{pointer-events:auto;background:color-mix(in srgb, var(--text) 6%, var(--panel));box-shadow:-.85rem 0 .55rem color-mix(in srgb, var(--text) 6%, var(--panel));padding-left:.35rem;position:absolute;top:0;bottom:0;right:.35rem}}@media (pointer:coarse){._ew{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}}@media screen and (width<=899px){._ew{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}}._j7{text-overflow:ellipsis;white-space:nowrap;padding:.35rem .25rem .25rem .65rem;font-size:1rem;font-weight:600;overflow:hidden}._j8{border-block:1px solid var(--border);scrollbar-width:none;align-items:center;gap:.25rem;margin:.25rem 0;padding:.25rem 0;display:flex;overflow-x:auto}._j9{flex-direction:column;display:flex}._j_{min-height:2.85rem;color:inherit;flex:none;gap:.5rem;padding:0 .65rem;font-size:1rem}._j_:hover{background:0 0}._j_:active{background:color-mix(in srgb, currentColor 6%, transparent)}._j_:disabled{opacity:1}._ka{color:var(--danger)}._kb{font-weight:600}._kb._kb,._kb._kb:hover,._kb._kb:active{color:#fff;background:var(--danger)}._dQ{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;max-height:40%;display:flex}._dR{flex-shrink:0;align-items:center;gap:.35rem;height:2.4rem;padding:0 .5rem 0 .85rem;display:flex}._dS{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}._dT{flex-direction:column;gap:1px;min-height:0;padding:0 .35rem .5rem;display:flex;overflow-y:auto}._dU{flex-direction:row;align-items:center;gap:.25rem;padding:.35rem .5rem .35rem .35rem;overflow-y:visible}._dV{flex:1}._c_{content-visibility:hidden}._da{flex-direction:row;flex:1;min-width:0;height:100%;min-height:0;display:flex}._db{flex:1;grid-template:minmax(0,1fr)/minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}._dc{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._dc[data-live]{visibility:visible}._dd{grid-template:minmax(0,1fr)/minmax(0,1fr);grid-area:1/1;min-height:0;display:grid}._de{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._de[data-live]{visibility:visible}._bF{z-index:35;width:min(42rem,100vw - 1.5rem);max-height:calc(var(--app-height,100dvh) - min(8dvh, 4rem) - 1rem);background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);min-height:0;color:inherit;flex-direction:column;margin:0;padding:0;display:flex;position:fixed;top:min(8dvh,4rem);left:50%;overflow:hidden;translate:-50%;box-shadow:0 16px 48px #0000004d,0 0 0 1px #00000014}._bF::backdrop{background:#0006}._bF:not([open]){display:none}._bH{margin:0;font-size:1rem;font-weight:600}._bI{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1rem 1.35rem;display:flex;overflow-y:auto}._bJ{border-top:1px solid var(--border);background:var(--panel);flex-wrap:wrap;align-items:center;gap:.35rem;padding:.5rem .65rem;display:flex}@media screen and (width<=899px){._bF{width:auto;max-width:none;max-height:none;height:var(--app-height,100dvh);box-shadow:none;border:none;border-radius:0;inset:0;translate:none}._bG{border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);height:auto;inset:min(8dvh,4rem) auto auto 50%;translate:-50%;box-shadow:0 16px 48px #0000004d,0 0 0 1px #00000014}._bI{padding-top:max(1rem, calc(env(safe-area-inset-top) + .5rem))}._bJ{padding-bottom:max(.5rem, env(safe-area-inset-bottom));padding-left:max(.85rem, calc(env(safe-area-inset-left) + .5rem));padding-right:max(.85rem, calc(env(safe-area-inset-right) + .5rem))}}._oy{z-index:2;pointer-events:none;display:none;position:absolute;overflow:hidden}._oz{box-sizing:border-box;background:#ffb00059;outline:1px solid #c98400;position:absolute}._oA{background:#ffb0008c;outline:2px solid #ffb000}._ov{background:var(--panel);max-width:min(24rem,100vw - 16px);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);pointer-events:none;flex-direction:column;gap:.25rem;margin:0;padding:.25rem;display:flex;position:fixed;inset:auto;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._ov:not(:popover-open){display:none}._ow{object-fit:contain;background-image:conic-gradient(color-mix(in srgb, currentColor 6%, transparent) 25%, transparent 0 50%, color-mix(in srgb, currentColor 6%, transparent) 0 75%, transparent 0);background-size:16px 16px;border-radius:4px;max-width:100%;max-height:16rem;display:block}._ox{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow:hidden}@keyframes _gW{0%{opacity:0;translate:-50% .25rem}12%{opacity:1;translate:-50%}75%{opacity:1}to{opacity:0}}._gR{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}._gS{background:#000;flex:1;min-height:0;position:relative;overflow:hidden}._gT{z-index:10;background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;display:flex;position:absolute;inset:0}._gU{color:#fff;margin:0;font-size:.85rem}._gV{gap:.5rem;display:flex}._gX{z-index:10;color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, var(--panel));border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));pointer-events:none;border-radius:999px;padding:.25rem .85rem;font-size:.78rem;animation:1.2s forwards _gW;position:absolute;bottom:1rem;left:50%;translate:-50%}._gY{color:var(--dim);background:var(--panel);border:1px solid var(--border);border-radius:999px;padding:.15rem .65rem;font-size:.78rem;position:absolute;top:.35rem;right:.65rem}._gZ{width:min(20rem,100vw - 1.5rem)}._g0{text-align:center;color:var(--dim);margin:0}._gS .xterm{height:100%;padding:.35rem 0 0 .5rem}._e3._e3{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}._e4{box-sizing:border-box;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);flex:18rem;align-items:center;gap:.25rem;width:min(22rem,100%);min-width:12rem;max-width:28rem;height:2.15rem;margin-left:0;padding:0 .35rem 0 .5rem;display:flex}._e4:focus-within{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}._e5{color:var(--dim);pointer-events:none;flex-shrink:0;display:inline-flex}._e6{box-sizing:border-box;border-radius:calc(var(--radius) - 1px) 0 0 calc(var(--radius) - 1px);background:0 0;border:0;flex:1;min-width:6rem;height:100%;padding:0 .35rem;line-height:1.2}._e6:focus,._e6:focus-visible{box-shadow:none;border-color:#0000;outline:none}._e7{width:100%;min-width:0;max-width:none;box-shadow:none;flex:none;margin-left:0;position:relative;top:auto;right:auto}._e7._e4{background:var(--panel);border-color:var(--border)}._e8{font-variant-numeric:tabular-nums;text-align:center;width:3.2rem;color:var(--dim);flex-shrink:0;font-size:.72rem}._e9{display:contents}._e_{flex-direction:column;gap:.25rem;min-width:0;display:flex}._fa{z-index:15;border-radius:var(--radius);width:min(22rem,100% - 1rem);position:absolute;top:.5rem;right:.5rem;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._fb._fb{flex-direction:row;flex:auto;align-items:center;width:auto;min-width:0}._fc._fc{z-index:auto;width:auto;min-width:0;max-width:none;height:var(--kb-row,2.6rem);box-sizing:border-box;box-shadow:none;background:color-mix(in srgb, currentColor 6%, transparent);border:0;flex:auto;margin:0;position:relative;top:auto;left:auto;right:auto}._fd{min-width:0}._fe{width:2.15rem;height:2.15rem}@media screen and (width<=899px){._e4:not(._e3){flex:100%;width:100%;min-width:0;max-width:none;margin-left:0}._e6{min-width:0}._e8{width:auto;min-width:2.5rem}}._cE{flex-shrink:0}._cG{--kb-row:2.6rem;padding:.35rem max(1.5rem, calc(env(safe-area-inset-right) + .75rem)) var(--bar-inset-bottom,max(.75rem, env(safe-area-inset-bottom))) max(1.5rem, calc(env(safe-area-inset-left) + .75rem));padding-bottom:var(--bar-inset-bottom,max(1.25rem, env(safe-area-inset-bottom)));border-top:1px solid var(--border);background:color-mix(in srgb, var(--panel) 60%, var(--bg));align-items:center;gap:.25rem;display:flex;position:relative}._cH{align-items:center;gap:inherit;flex:auto;min-width:0;display:flex}._cI{display:none}._cJ{min-width:0;height:var(--kb-row);flex:auto;align-items:center;display:none}._cK{display:flex}._cL{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}._cM{color:var(--dim);bottom:max(.3rem, calc(env(safe-area-inset-bottom) - 1rem));left:max(1.5rem, calc(env(safe-area-inset-left) + .75rem));right:max(1.5rem, calc(env(safe-area-inset-right) + .75rem));pointer-events:none;justify-content:center;font-size:.78rem;line-height:1;display:flex;position:absolute}._cN{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._cP{width:var(--kb-row);height:var(--kb-row);min-width:1.6rem;color:var(--dim);background:0 0;flex-shrink:1;position:relative}._cP:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._cP:active{background:color-mix(in srgb, var(--accent) 10%, transparent)}._cP:disabled{opacity:.45;pointer-events:none}._cP._cO,._cP._cO:hover{color:var(--text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._cQ{background:var(--panel);border:1px solid var(--border);border-radius:calc(var(--radius) + 4px);color:inherit;grid-template-columns:repeat(3,3rem);grid-auto-rows:auto;gap:.25rem;margin:0;padding:.35rem;position:fixed;inset:auto .5rem 6.5rem auto;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._cQ:popover-open{display:grid}._cR{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:var(--radius);justify-content:center;align-items:center;height:3rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1rem;display:inline-flex}._cR:active{background:color-mix(in srgb, var(--accent) 10%, transparent)}._cS{touch-action:none;-webkit-user-select:none;user-select:none}._cT{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent-text)}._cU{background:var(--border);grid-column:1/-1;height:1px;margin-block:.15rem}._cV{letter-spacing:-.03em;text-overflow:ellipsis;white-space:nowrap;touch-action:manipulation;-webkit-user-select:none;user-select:none;min-width:0;padding:0;font-size:.78rem;font-weight:600;overflow:hidden}._cV:disabled{opacity:.4}._cW{letter-spacing:.02em;font-size:.78rem;font-weight:600}@media screen and (width>=900px){._cE{display:none}}@media (hover:hover) and (pointer:fine){._cF._cF{display:none}}@media screen and (width<=399px){._cG{--kb-row:2.35rem;gap:.15rem}}@media screen and (width<=899px){html[data-keyboard] ._cM{display:none}}._ff{position:relative}._fg{min-width:9rem;max-width:calc(100vw - 1rem);color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._fg:popover-open{display:flex}._fh{display:contents}._fi{font-size:.72rem}._fj{border-top:1px solid var(--border);align-items:center;gap:.25rem;margin-top:.25rem;padding-top:.35rem;display:flex}._fk{align-items:center;gap:.25rem;min-width:0;display:flex}@media screen and (width<=899px){._fk{scrollbar-width:none;padding:0 .85rem 0 .5rem;overflow-x:auto;-webkit-mask-image:linear-gradient(90deg,#0000,#000 .5rem calc(100% - .85rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 .5rem calc(100% - .85rem),#0000)}}._kx{font-variant-numeric:tabular-nums;color:var(--dim);white-space:nowrap;align-items:baseline;gap:.25rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:inline-flex}._ky{align-items:baseline;gap:.3em;display:inline-flex}._kA{font-weight:600}._kB{color:color-mix(in srgb, var(--dim) 60%, transparent);margin-right:.15em}._cX{flex-direction:column;width:min(38rem,100vw - 1.5rem);max-height:min(28rem,70dvh);display:flex;top:12dvh}._cY{border-bottom:1px solid var(--border);color:var(--dim);align-items:center;gap:.5rem;padding:0 .65rem;display:flex}._cZ{min-width:0;height:2.75rem;color:var(--text);background:0 0;border:0;flex:1;padding:0;font-size:1rem}._cZ:focus-visible{box-shadow:none;outline:none}._c0{margin-right:-.5rem;display:none}._c1{min-height:0;margin:0;padding:.25rem;list-style:none;overflow-y:auto}._c2{padding:.5rem .5rem .25rem}._c4{border-radius:var(--radius);width:100%;min-height:2.1rem;color:var(--text);text-align:left;cursor:pointer;align-items:center;gap:.5rem;padding:0 .5rem;display:flex}._c4._c3{background:color-mix(in srgb, currentColor 10%, transparent)}._c5{width:16px;color:var(--dim);flex-shrink:0;justify-content:center;display:inline-flex}._c6{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._c7{text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:45%;color:var(--dim);flex-shrink:1;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;overflow:hidden}._c8{color:var(--dim);border:1px solid var(--border);border-radius:4px;flex-shrink:0;padding:0 .25rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}._c9{color:var(--dim);padding:.85rem .65rem;font-size:.85rem}@media screen and (width<=899px){._cX{top:calc(env(safe-area-inset-top) + .5rem);max-height:calc(var(--app-height,100dvh) - env(safe-area-inset-top) - 2rem)}}@media (pointer:coarse){._c0{display:inline-flex}._c4{min-height:2.85rem}._c8{display:none}}._bK{width:min(26rem,100vw - 1.5rem)}._nY{background:var(--panel);width:max-content;min-width:12rem;max-width:min(38rem,100vw - 16px);max-height:min(24rem,55vh);color:var(--text);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;margin:0;padding:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.85rem;line-height:1.35;display:flex;position:fixed;inset:auto;overflow:hidden;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._nZ{overflow-wrap:anywhere;min-height:0;padding:.35rem .65rem;overflow:auto}._n0{margin:.25rem -.65rem}._n0:first-child{margin-top:-.35rem}._n0:last-child{margin-bottom:-.35rem}._n1{margin:.35rem 0}._n1:first-child{margin-top:0}._n1:last-child{margin-bottom:0}._n2{font-weight:600}._n3{padding-left:1.35rem}._n4{border:0;border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);margin:.5rem -.65rem}._n5{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:4px;padding:0 .15rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.92em}._n6{vertical-align:text-bottom;height:1.1em}._n7{color:var(--accent-text);text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:none}._n7:hover{text-decoration:underline}._n8{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;flex-shrink:0;gap:.15rem;max-height:50%;padding:.35rem .65rem;display:flex;overflow:auto}._n9{min-width:0;display:flex}._n_{min-width:0;max-width:100%;color:var(--accent-text);font:inherit;cursor:pointer;background:0 0;border:0;align-items:center;gap:.25rem;padding:0;display:flex}._n_:hover{text-decoration:underline}._oa{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;min-width:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow:hidden}._ob{color:var(--dim)}._oc{color:var(--dim);flex-shrink:0;font-size:.78rem}._od{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;flex-shrink:0;min-height:0;display:flex}._oe{color:var(--dim);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:.25rem;padding:.35rem .65rem;font-size:.78rem;list-style:none;display:flex}._oe:hover{color:var(--text)}._oe::-webkit-details-marker{display:none}._of{flex-shrink:0;transition:transform .12s}._od[open] ._of{transform:rotate(90deg)}._og{flex-direction:column;max-height:14rem;padding:0 .65rem .35rem;display:flex;overflow:auto}._oh{color:var(--dim);margin-top:.25rem;font-size:.78rem;font-weight:600}._oh:first-child{margin-top:0}._oi{color:var(--text);margin-top:.25rem}._oj{width:100%;min-width:0;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:4px;align-items:baseline;gap:.35rem;padding:.15rem .25rem;display:flex}._oj:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._ok{min-width:3ch;color:var(--dim);text-align:right;flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._ol{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow:hidden}._om{color:var(--dim);margin-top:.25rem;font-size:.78rem}._on{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);border-left:2px solid var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent);flex-direction:column;flex-shrink:0;gap:.25rem;padding:.35rem .65rem;display:flex}._oo{flex-wrap:wrap;align-items:baseline;gap:0 .35rem;display:flex}._op{white-space:pre-wrap;overflow-wrap:anywhere}._oq{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._or{color:var(--dim);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .65rem;display:flex}._os{flex:14rem;min-width:0}._ot{gap:.35rem;margin-left:auto;display:flex}._ou{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);color:var(--dim);flex-shrink:0;padding:.25rem .65rem;font-size:.78rem}._mm{border-radius:var(--radius);background:var(--accent-fill);color:#fff;flex-shrink:0;align-items:stretch;min-width:0;max-width:100%;min-height:2.15rem;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px #ffffff24}._mn{place-items:center end;display:inline-grid}._mn>*{grid-area:1/1}._mo{visibility:hidden}._mq{color:var(--dim);white-space:nowrap;-webkit-user-select:none;user-select:none;align-items:center;gap:.35rem;padding-inline:.35rem;font-size:.85rem;display:inline-flex}._mr{min-width:0;color:inherit;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;gap:.35rem;padding:0 .65rem;font-size:.85rem;font-weight:500;transition:background .12s;display:inline-flex}._mr:focus-visible{outline-offset:-3px;outline-color:currentColor}._mr:hover:not(:disabled){background:#0000001f}._mr:active:not(:disabled){background:#0003}._mr:disabled{cursor:default}._ms{flex-shrink:0}._mt{translate:0 .55px}._mu{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;overflow:hidden}._mv{min-width:0;color:inherit;width:1.8rem;box-shadow:inset 1px 0 0 color-mix(in srgb, currentColor 30%, transparent);background:0 0;border:0;border-radius:0;flex-shrink:0;justify-content:center;align-items:center;gap:.35rem;font-size:.85rem;font-weight:500;transition:background .12s;display:inline-flex;position:relative}._mv:focus-visible{outline-offset:-3px;outline-color:currentColor}._mv:after{content:"";pointer-events:none;border-color:currentColor;border-bottom-style:solid;border-bottom-width:1.5px;border-right-style:solid;border-right-width:1.5px;width:.32em;height:.32em;position:absolute;top:50%;right:50%;translate:50% -70%;rotate:45deg}._mv:hover:not(:disabled){background:#0000001f}._mv:active:not(:disabled){background:#0003}._mv:disabled{cursor:default}._mw{min-width:13rem}._mx{color:var(--dim);padding:.35rem .65rem .25rem;font-size:.78rem;font-weight:600}._my{flex:none;justify-content:flex-start;gap:.5rem;padding:.5rem .65rem;font-size:.85rem}._mz{width:1rem;color:var(--accent-text);flex-shrink:0;justify-content:center;display:inline-flex}._mA{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._mB{background:var(--border);height:1px;margin:.25rem 0}._mC{border-radius:var(--radius);background:var(--panel);border:1px solid var(--accent-text);align-items:stretch;min-width:0;max-width:100%;display:inline-flex;position:relative;overflow:hidden}._mC:after{content:"";pointer-events:none;border-bottom:1.5px solid;border-right:1.5px solid;border-color:var(--accent-text);width:.32em;height:.32em;position:absolute;top:50%;right:.65rem;translate:0 -70%;rotate:45deg}._mD{border-radius:0;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .65rem;display:inline-flex}._mD:disabled{opacity:.45}._mD:focus-visible{outline-offset:-3px;outline-color:#fff}._mE{appearance:none;min-width:0;max-width:8rem;color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent);border:0;border-radius:0;padding:.25rem 1.5rem .25rem .65rem;font-size:.85rem;font-weight:500}._mE:disabled{opacity:.45}._mE:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px;box-shadow:none}@media screen and (width>=900px){._mp,._mq{display:none}}@media screen and (width<=899px){._mr{padding:0 .5rem}._mv{width:1.6rem}}._l6{background:var(--panel);border-block:1px solid var(--border);flex-direction:column;gap:.35rem;padding:.35rem .5rem;scroll-margin:4rem 0 1.5rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.85rem;display:flex}._l7{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}._l8{resize:vertical;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}._l9{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}._l_{font-size:.78rem}._ma{border-radius:4px}@keyframes _ip{0%{opacity:0}to{opacity:1}}@keyframes _iq{0%{transform:translate(-100%)}to{transform:translate(300%)}}._il{flex-direction:column;gap:.5rem;margin-bottom:.65rem;padding-inline:.65rem;display:flex;position:relative}._io{flex-shrink:0;align-items:center;min-width:0;margin-left:auto;display:flex}._ir{pointer-events:none;visibility:hidden;height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}._is{visibility:visible;animation:.15s .3s both _ip}._is:after{content:"";background:var(--accent-fill);width:33%;animation:1.1s ease-in-out infinite _iq;position:absolute;inset:0}._it{visibility:visible;pointer-events:auto;background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);overflow:visible}._it:before{content:"";position:absolute;inset:-6px 0}@media screen and (width>=900px){._il{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent);flex-flow:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:.5rem;padding-bottom:.65rem}}@media screen and (width<=899px){._il{margin:.25rem max(.5rem, calc(env(safe-area-inset-left) + .25rem)) .5rem max(.5rem, calc(env(safe-area-inset-right) + .25rem));background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);flex-flow:wrap;align-items:center;gap:.35rem;padding:.35rem}._im{flex:none;width:1.85rem;height:2.15rem}._in{flex:100%;order:10;min-height:1.75rem}._ir{left:calc(var(--radius) + 2px);right:calc(var(--radius) + 2px);bottom:0}}@media (prefers-reduced-motion:reduce){._is{background:var(--accent-fill)}._is:after{animation:none;display:none}}@keyframes _jC{0%{opacity:0}to{opacity:1}}._i6{flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}._i8{flex-direction:column;flex:1;min-width:0;min-height:0;padding-top:.65rem;display:flex}._i9{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;color:var(--dim);direction:rtl;flex:0 auto;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;overflow:hidden}._ja{flex:0 auto;align-items:center;gap:.35rem;min-width:8rem;display:flex}._jb{border-bottom:1px solid var(--border);align-items:center;gap:.35rem;min-width:0;padding:.25rem .65rem;display:flex}._jc{font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border:0;flex-shrink:0;gap:.25rem;font-size:.78rem}._jc:hover{background:color-mix(in srgb, currentColor 10%, transparent);color:var(--text)}._jd{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._je{color:var(--danger)}._jg{color:var(--text);font-weight:600}._jh{flex:1}._ji{display:contents}._jm{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}._jn{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding-inline:.65rem;overflow:hidden auto}._jn[hidden]{display:none}._jo{flex-direction:column;flex:1;align-items:center;gap:.5rem;min-height:0;padding:.85rem;display:flex;overflow:auto}._jp{color:var(--dim);font-size:.78rem}._jq{image-rendering:auto;background-color:var(--panel);background-image:conic-gradient(var(--border) 25%, transparent 0 50%, var(--border) 0 75%, transparent 0);border:1px solid var(--border);background-size:16px 16px;max-width:100%;height:auto}._jr{border:1px solid var(--border);background:var(--panel);flex:1;width:100%;min-height:30rem}._js{color:var(--dim);text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:.65rem;padding:.85rem;font-size:.85rem;display:flex}._jt{text-align:left;flex-direction:column;gap:.15rem;width:min(28rem,100%);margin:0;padding:0;list-style:none;display:flex}._ju{border-radius:var(--radius);color:var(--text);align-items:baseline;gap:.35rem;padding:.25rem .5rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;display:flex}._ju:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._jv{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);font-size:.78rem;overflow:hidden}._jw{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);flex-direction:column;flex-shrink:0;gap:.5rem;max-height:40%;margin:0 .65rem .5rem;padding:.5rem;display:flex;overflow-y:auto}._jx{color:var(--dim);justify-content:space-between;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;display:flex}._jy{flex-direction:column;gap:.25rem;display:flex}._jz{color:var(--dim);background:var(--bg);border-radius:4px;margin:0;padding:.25rem 0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.5;overflow-x:auto}._jA{color:var(--text);background:color-mix(in srgb, var(--danger) 10%, transparent);display:block}._jB{opacity:.55;transition:opacity .12s .15s}._jD{pointer-events:none;justify-content:center;align-items:center;animation:.12s .15s both _jC;display:flex;position:absolute;inset:0}@media screen and (width>=900px){._i_{flex:1 1 0;min-width:10rem}._ja,._jf,._jk{display:none}}@media screen and (width<=899px){._i6{flex-direction:column}._i8{padding-top:0;padding-inline:max(.2rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-right))}._i7>._i8{flex:none}._i6:not(._i7) ._i_,._i7 ._ja,._jb{display:none}._jc{min-height:1.75rem}._jf{width:1.75rem;height:1.75rem;margin-left:-.65rem;margin-right:-.35rem}._jh{display:none}._cJ ._ji{flex:auto;align-items:center;width:100%;min-width:0;height:100%;display:flex}._jj{display:none}._jl{order:1}._i7 ._jm{display:none}._jn{padding-inline:0}._jw{margin:0 .35rem .35rem}._li{order:-1}}@media screen and (width<=399px){._li>a{padding-inline:.5rem}}._lS{position:relative;overflow:visible}._lT._lT{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._lU{box-sizing:border-box;background:var(--accent-fill);color:#fff;font-variant-numeric:tabular-nums;text-align:center;min-width:.95rem;height:.95rem;box-shadow:0 0 0 1.5px var(--panel);pointer-events:none;border-radius:999px;padding:0 .15rem;font-size:.6rem;font-weight:600;line-height:.95rem;position:absolute;top:-3px;right:-3px}._lV{width:min(20rem,100vw - 16px);padding:.5rem}._lW{flex-direction:column;gap:.35rem;min-width:0;display:flex}._lX{cursor:pointer;align-items:center;gap:.35rem;min-height:1.6rem;padding-inline:.25rem;font-size:.85rem;display:flex}._lY{flex:auto;min-width:0}._lZ{color:var(--dim);font-variant-numeric:tabular-nums;font-size:.78rem}._l0{font-variant-numeric:tabular-nums;min-width:0;min-height:1.6rem;color:var(--dim);white-space:nowrap;align-items:center;gap:.35rem;padding-inline:.25rem;font-size:.78rem;display:flex}._l1{text-overflow:ellipsis;min-width:0;overflow:hidden}._l2{color:var(--text);border-radius:4px;margin-left:auto;padding:.15rem .35rem;font-weight:500}._l2:hover{background:color-mix(in srgb, currentColor 6%, transparent)}@media screen and (width<=899px){._lX{min-height:1.85rem}._l2{min-height:1.85rem;padding:0 .5rem}}._nW{flex:1;align-items:center;width:100%;min-width:0;display:flex}._nX{box-sizing:border-box;border-radius:var(--radius);flex:1;width:100%;min-width:0;height:2.15rem;padding-top:0;padding-bottom:0;padding-right:.65rem;line-height:1.2}._nC{font-variant-numeric:tabular-nums;flex-shrink:0;gap:.25rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.72rem;font-weight:500;display:inline-flex}._nD{color:color-mix(in srgb, var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364) 55%, var(--dim))}._nE{color:color-mix(in srgb, var(--danger) 55%, var(--dim))}._m2{align-items:center;min-width:0;display:flex;position:relative}._m3{scrollbar-width:none;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;flex:auto;align-items:center;gap:.35rem;min-width:0;display:flex;position:relative;overflow:auto hidden}._m3::-webkit-scrollbar{display:none}._m5{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000)}._m4{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2rem);mask-image:linear-gradient(90deg,#0000,#000 2rem)}._m4._m5{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2rem calc(100% - 2rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 2rem calc(100% - 2rem),#0000)}._m6{z-index:1;border-radius:var(--radius);width:1.6rem;height:1.6rem;color:var(--dim);background:var(--bg,var(--panel));justify-content:center;align-items:center;display:none;position:absolute;top:50%;translate:0 -50%}._m7{left:0}._m8{right:0}._m9{transform:rotate(180deg)}._na{border-radius:var(--radius);height:1.75rem;color:var(--text);white-space:nowrap;flex-shrink:0;align-items:center;gap:.25rem;padding:0 .5rem;font-size:.85rem;font-weight:400;display:inline-flex}._na._m_{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--text)}._nb{border-radius:var(--radius);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text) 24%, transparent);flex-shrink:0;align-items:center;gap:1px;padding:2px;display:inline-flex}._nc{box-shadow:inset 0 0 0 1px var(--accent)}._nd{color:var(--text);white-space:nowrap;padding:0 .25rem 0 .35rem}._ne{font-weight:600}._nf{border-radius:4px;height:calc(1.75rem - 4px);padding:0 .35rem}._nf._m_{box-shadow:none}._ng{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:4px;flex-shrink:0;align-items:center;display:inline-flex}._nh{background:color-mix(in srgb, var(--accent) 16%, transparent)}._nh ._na._m_{box-shadow:none;background:0 0}._ni{height:calc(1.75rem - 4px);color:var(--dim);font-variant-numeric:tabular-nums;border-radius:4px;flex-shrink:0;align-items:center;gap:.15rem;padding:0 .35rem 0 .25rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:inline-flex}._nj{color:var(--text)}._nk{gap:.35rem}._nl{background:color-mix(in srgb, currentColor 6%, transparent)}._nm{color:var(--dim);font-variant-numeric:tabular-nums;align-items:center;gap:.15rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:inline-flex}._nn{min-width:12rem;max-width:min(22rem,100vw - 1rem);max-height:min(24rem,70dvh);color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto;overflow-y:auto}._nn:popover-open{display:flex}._no{color:var(--dim);padding:.25rem .5rem;font-size:.78rem}._np{color:var(--text);margin-right:.25rem;font-weight:600}._nq{color:var(--dim);align-items:center;gap:.25rem;padding:.35rem .5rem .15rem;font-size:.78rem;display:flex}._nr{color:var(--dim)}._ns{min-width:0;color:var(--text);text-align:left;border-radius:4px;align-items:center;gap:.35rem;padding:.35rem .5rem;font-size:.85rem;display:flex}._ns._m_{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 0 0 1px var(--accent)}._nt{padding-left:1rem}._nu{min-width:1em;color:var(--dim);font-variant-numeric:tabular-nums;text-align:right;flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}._nv{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._nw,._nw._m_{color:var(--dim)}._nx{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._ny{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}@media (hover:hover){._m6{display:inline-flex}._m6:hover{color:var(--text)}._na:not(._m_):hover{background:color-mix(in srgb, currentColor 6%, transparent)}._ni:hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._ns:not(._m_):hover{background:color-mix(in srgb, currentColor 6%, transparent)}}@media screen and (width<=899px){._na{height:1.75rem}._nf,._ni{height:calc(1.75rem - 4px)}}._nF{color:var(--dim);flex-shrink:0;display:inline-flex}._l5{border-bottom:1px solid var(--border);margin:0;padding:.35rem .65rem}@media screen and (width<=899px){._l4._l3{border-right:none;flex:auto;order:1;width:100%;display:flex}}._mh{text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;max-width:60%;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;overflow:hidden}._mi{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);flex:1;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow:hidden}._mj{color:var(--accent-text);background:0 0;font-weight:600}._mk{color:var(--dim);flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._ml{flex-shrink:0}._gy{max-width:18rem}._gz{color:var(--dim);font-size:.78rem}._gz._gz{padding-left:1.3rem}._gA{color:var(--dim);font-size:.78rem}._gC{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._gD{min-width:1.85rem;min-height:1.85rem}._gE{align-items:center;gap:.15rem;min-width:0;display:inline-flex}._gG{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}._gH{flex-wrap:wrap;flex-shrink:0;gap:.15rem .35rem;margin-left:.35rem;display:inline-flex}._gI{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}._gI:hover{text-decoration:underline}@media screen and (width<=899px){._gA{display:none}._gB{flex-wrap:wrap;justify-content:flex-end;row-gap:.25rem}}@media (pointer:coarse){._gF{width:1.75rem;height:1.75rem}}._kS{min-width:0;margin-bottom:.65rem}._kT{margin:0;padding:0;list-style:none}._kV{border-radius:var(--radius);align-items:center;gap:.15rem;display:flex}._kV._kU{background:color-mix(in srgb, var(--accent) 10%, transparent)}._kW{gap:.5rem}._kW:hover{background:0 0}._kX,._kY{color:var(--dim);font-size:.85rem}._kZ{border-left:2px solid var(--border);margin:.15rem 0 .25rem 1.35rem;padding-left:.5rem}._k0{margin:0;padding:0;list-style:none}._k1{color:var(--dim)}._k2{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._k3{color:var(--accent-text)}._k4{justify-content:flex-end;align-items:center;gap:.25rem;display:flex}._k5{flex:1;min-width:0;margin:.25rem 0}._k7{margin-top:.5rem}._k8{margin:0 0 .25rem;padding:0 .65rem}._k9{padding:0 .65rem;font-size:1rem;display:flex}._k_{color:var(--dim);flex-shrink:0;margin-right:.35rem}@media screen and (width<=899px){._kW{gap:.5rem;min-height:2.85rem;padding:.65rem;font-size:1rem}._kX,._kY{font-size:1rem}._kZ{margin:.25rem 0 .5rem .5rem;padding:.5rem}._k6{min-height:2.6rem;padding:.65rem}._k_{display:none}}._ha{align-items:center;gap:.25rem;width:min(24rem,100%);display:flex;position:relative}._hb{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;inset:auto;overflow:hidden}._hd{flex:1;min-width:0;height:1.85rem}._he{height:100%;padding-top:0;padding-bottom:0}._hf{height:1.85rem}._hh{background:color-mix(in srgb, var(--panel) 94%, var(--text));border:1px solid color-mix(in srgb, var(--border) 60%, var(--text));z-index:15;width:min(30rem,100vw - 2rem);max-height:22rem;margin:0;padding:.25rem .5rem;position:absolute;top:calc(100% + .25rem);right:0;overflow-y:auto;box-shadow:0 16px 48px #0000004d,0 0 0 1px #00000014}._hh[hidden]{display:none}._hi{flex-direction:column;list-style:none;display:flex}._hj{min-height:2.35rem;color:var(--dim);align-items:center;gap:.35rem;font-size:.85rem;display:flex}._ho{width:100%;min-height:2.35rem;color:var(--accent-text);text-align:left;align-items:center;gap:.5rem;padding:0 .65rem;font-size:1rem;display:flex}._ho:active{background:color-mix(in srgb, var(--accent) 10%, transparent)}@media screen and (width<=899px){._ha{z-index:35;width:auto;height:var(--app-height,100dvh);padding:max(.85rem, env(safe-area-inset-top)) max(.65rem, env(safe-area-inset-right)) max(.65rem, env(safe-area-inset-bottom)) max(.65rem, env(safe-area-inset-left));background:var(--bg);grid-template:"field close""list list"minmax(0,1fr)/minmax(0,1fr) auto;align-items:stretch;gap:.35rem;display:grid;position:fixed;inset:0}._hb{width:1px;height:1px;padding:0;position:absolute;inset:auto}._hd{grid-area:field;height:2.35rem}._hf{grid-area:list;place-self:start stretch;height:2.35rem;margin-top:.35rem}._hg{grid-area:close;align-self:center}._hh{top:calc(max(.85rem, env(safe-area-inset-top)) + 2.35rem + .35rem);left:max(.65rem, env(safe-area-inset-left));right:max(.65rem, env(safe-area-inset-right));bottom:max(.65rem, env(safe-area-inset-bottom));overscroll-behavior:contain;width:auto;min-height:0;max-height:none;box-shadow:none;background:var(--panel);border:1px solid var(--border);grid-area:auto;position:absolute}._hh[hidden]{visibility:hidden;display:block}}@media screen and (width>=900px){._hc{opacity:1;pointer-events:auto;width:min(24rem,100%);height:auto;position:relative;inset:auto;overflow:visible}._hc ._hg{display:none}._hl._hl{gap:0;width:100%}._hl [data-add-pop]{width:auto;left:0;right:0}._hm._hm{height:2.15rem}._hn._hn,._hn._hn:focus,._hn._hn:focus-visible{box-shadow:none;background:0 0;border:none;border-radius:0;outline:none}._ho{display:none}}._kG{flex-direction:column;width:100%;min-width:0;display:flex}._kH{align-items:center;gap:.35rem;min-width:0;margin:0;padding:.25rem 0;font-size:.85rem;display:flex}._kH+._kH{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._kI{color:var(--dim)}._kJ{flex:1;align-items:baseline;gap:.35rem;min-width:0;display:flex}._kK{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}._kL{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}._kM{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._kN{color:var(--dim)}._kN:hover{color:var(--text)}._kO{color:var(--dim);flex-wrap:wrap;line-height:1.35}._kP{color:var(--text);letter-spacing:.08em;-webkit-user-select:all;user-select:all;font-size:.85rem}._kQ{color:var(--accent-text)}._kR{color:var(--dim);font-size:.78rem;line-height:1.35}@media screen and (width<=899px){._kJ{flex-direction:column;gap:.15rem}._kR{font-size:.85rem}}._hp{align-items:center}._hq{color:var(--dim)}._hr{max-width:18rem}._hq ._hr{color:var(--text)}._hs{font-family:inherit;display:block}._ht{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;max-width:12rem;overflow:hidden}._hu{min-width:1.85rem;min-height:1.85rem}@media screen and (width<=899px){._ht{display:none}}._gJ{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}._gK{min-width:10.5rem}._gL{flex-direction:column;gap:.35rem;display:flex}._gM{flex-direction:column;display:flex}li+._gM{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._gN{border-top:none}._gO{padding:0 .65rem .5rem}@media screen and (width<=899px){._gJ{flex-direction:column-reverse;align-items:stretch;margin-top:.25rem}._gK{min-width:0}._gL{gap:.5rem}._gO{padding:0 .85rem .65rem}}._kC{background:var(--panel);box-shadow:inset 0 0 0 1px var(--border);border-radius:calc(var(--radius) + 2px);flex-direction:column;gap:.35rem;margin:0;padding:.65rem .85rem;font-size:.85rem;list-style:none;display:flex}._kE{color:var(--dim);overflow-wrap:anywhere;align-items:center;gap:.5rem;min-width:0;display:flex}._kE._kD{color:var(--text)}._kF{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);flex-shrink:0;justify-content:center;align-items:center;width:.9rem;display:inline-flex}@media screen and (width<=899px){._kC{gap:.5rem;padding:.85rem 1rem;font-size:1rem}}._la{width:min(32rem,100vw - 1.5rem)}._lb{margin:0}._lc{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._ld{resize:vertical;min-height:7rem;font-size:.85rem;line-height:1.5}._le{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}._lf{align-items:center;gap:.35rem;min-width:0;font-size:.85rem;display:flex}._lg{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._lh{flex-direction:column;gap:.25rem;display:flex}@media screen and (width<=899px){._ld{font-size:1rem}}._lo{background:var(--panel);border-block:1px solid var(--border);grid-template-columns:repeat(auto-fit,minmax(14rem,1fr));gap:.65rem;padding:.5rem .65rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.85rem;display:grid}._lp{flex-direction:column;gap:.25rem;min-width:0;display:flex}._lq{border:1px solid color-mix(in srgb, var(--border) 65%, transparent);border-radius:var(--radius);background-image:conic-gradient(color-mix(in srgb, currentColor 6%, transparent) 25%, transparent 0 50%, color-mix(in srgb, currentColor 6%, transparent) 0 75%, transparent 0);background-size:16px 16px;justify-content:center;align-self:start;align-items:center;min-width:8rem;max-width:100%;height:14rem;padding:.35rem;display:flex}._lr{object-fit:contain;max-width:100%;max-height:100%}._ls{border-radius:var(--radius);background:var(--bg);border:0;width:100%;height:28rem}._lt{text-align:center;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;display:flex}@keyframes _iG{0%,to{opacity:.55}50%{opacity:1}}._iu{flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}._iv._iv{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._iw{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:flex}._ix{flex-direction:column;flex:1;min-width:0;padding-top:.65rem;display:flex}._iA{height:1.75rem}._iC{pointer-events:none;flex:0 0 0;width:0;min-width:0;overflow:visible}._iC._iC{margin-left:0}._iD{min-width:0;margin-left:auto;display:flex}._iE{display:contents}._iF{flex:none;display:inline-flex;position:relative}._iH{flex-direction:column;gap:12px;padding-top:.35rem;animation:1.4s ease-in-out infinite _iG;display:flex}._iI{pointer-events:none;position:absolute;inset:0 .65rem;overflow:hidden}._iJ{border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent)}._iK{border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}._iL{border-radius:0;height:44px}._iM{background:color-mix(in srgb, color-mix(in srgb, currentColor 6%, transparent) 45%, transparent);border-radius:0;height:7rem}._iN{padding-inline:.65rem}._iO{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}._iP{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding-inline:.65rem;overflow:hidden auto}._iQ{box-sizing:border-box;cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--panel);border-bottom:1px solid var(--border);border-radius:var(--radius) var(--radius) 0 0;align-items:center;gap:.35rem;width:100%;min-width:0;height:44px;padding:0 .35rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.85rem;display:flex}._iQ:hover{background:color-mix(in srgb, var(--panel) 90%, var(--text))}._iS{color:var(--dim);flex-shrink:0;transition:transform .12s;display:inline-flex}._iR ._iS{transform:rotate(-90deg)}._iT{flex-shrink:0;display:block}._iU{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:auto;min-width:0;font-weight:600;overflow:hidden}._iV{background:color-mix(in srgb, var(--danger) 10%, transparent);color:var(--danger);font:inherit;cursor:pointer;border:0;border-radius:4px;align-items:center;gap:.15rem;padding:0 .25rem;font-size:.78rem;font-weight:600;display:inline-flex}._iV:hover{background:color-mix(in srgb, var(--danger) 20%, transparent)}._iW{font-variant-numeric:tabular-nums;flex-shrink:0;gap:.25rem;font-size:.78rem;display:inline-flex}._iX{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._iY{color:var(--danger)}._iZ{color:var(--dim);flex-shrink:0}._i0{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._i1{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._i2{cursor:pointer;border:0;flex-shrink:0;font-family:inherit}._i2:hover{background:color-mix(in srgb, currentColor 10%, transparent);color:var(--text)}._i3{color:var(--dim);margin-left:auto}._i3:disabled{opacity:.4;cursor:default}._i5{flex-direction:column;flex-shrink:0;display:flex}@media screen and (width>=900px){._iw{display:contents}._iy{order:3}._iz{flex:1 1 0;order:1;min-width:10rem;margin-left:.25rem}._iB{order:4}._iD{order:4;max-width:18rem;margin-left:0}._iD:not(._iC){flex:12rem}}@media screen and (width<=899px){._iw{box-shadow:none;background:0 0;flex-wrap:nowrap;flex:none;gap:.35rem;margin:0;padding:0}._ix{padding-top:0;padding-inline:max(.2rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-right))}._iA{height:1.75rem}._iB{display:none}._iC{opacity:0;pointer-events:none;flex:none;width:1px;min-width:0;height:1px;margin:0;padding:0;position:fixed;bottom:0;left:0;overflow:hidden}._iD{flex:100%;margin-left:0}._cJ ._iD:not(._iC){flex:auto;align-items:center;width:100%;min-width:0;height:100%;margin:0;padding:0;display:flex}._iI{left:0;right:0}._iN{padding-inline:.5rem}._iP{padding-inline:0}._i4{flex-wrap:wrap}}@media screen and (width<=399px){._iw{gap:.15rem}}._mb{align-items:center;gap:.35rem;min-width:0;font-weight:400;display:flex}._mc{flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}._mc:hover{text-decoration:underline}._md{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.78rem;overflow:hidden}._me{color:var(--dim);white-space:nowrap;flex-shrink:0;align-items:center;gap:.15rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem;display:inline-flex}._mf{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._mg{border-radius:4px;padding:.15rem}._mg:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._mg:disabled{opacity:.5}._nL{text-overflow:ellipsis;white-space:nowrap;min-width:2rem;color:var(--dim);flex:0 100 auto;font-size:.72rem;font-weight:400;overflow:hidden}._nM{color:color-mix(in srgb, var(--text) 70%, var(--dim))}._nN{color:var(--text)}._nO{color:var(--dim)}._nG{border-top:1px solid var(--border);background:var(--panel);flex:none;max-height:30%;padding:.35rem 0;overflow-y:auto}._nH{color:var(--dim);padding:0 .65rem .25rem;font-size:.78rem;font-weight:600}._nI{min-height:1.9rem;color:var(--text);align-items:center;gap:.35rem;padding:0 .65rem;display:flex}._nI:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._nJ{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:1;min-width:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;overflow:hidden}._nK{color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0;align-items:center;gap:.15rem;font-size:.78rem;display:inline-flex}@media screen and (width<=899px){._nI{min-height:2.35rem}}._nP{overscroll-behavior:contain;scrollbar-width:none;border-top:1px solid var(--border);background:var(--panel);flex:none;align-items:center;gap:.25rem;padding:.35rem .85rem .35rem .5rem;display:flex;overflow:auto hidden;-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - .85rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - .85rem),#0000)}._nQ{flex:none;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._nQ:active{background:color-mix(in srgb, currentColor 10%, transparent)}._nR{flex-shrink:0;margin-left:-.15em;display:inline-flex}._nS{white-space:nowrap}._nT{white-space:nowrap;color:var(--text)}._nU{color:var(--dim)}._nV{white-space:nowrap;color:var(--dim)}@media screen and (width<=899px){._nP{gap:.35rem;padding-bottom:.5rem}}@media screen and (width>=900px){._nQ:hover{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}}._mF{font-size:1.25rem}._mG{letter-spacing:-.02em;font-size:1.1rem;font-weight:700}._mH{background:var(--panel);flex-direction:column;display:flex}._mI{align-items:center;gap:.65rem;padding:.85rem .5rem .5rem 1rem;display:flex}._mJ{--sheet-repo:2.35rem;overscroll-behavior:contain;flex:auto;min-height:0;padding:0 .5rem .65rem;overflow-y:auto}._mK+._mK{margin-top:.5rem}._mL{z-index:2;background:var(--panel);box-shadow:0 -2px 0 var(--panel);width:100%;height:var(--sheet-repo);color:var(--text);text-align:left;align-items:center;gap:.5rem;padding:0 .35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;font-weight:700;display:flex;position:sticky;top:0}._mM{border-radius:var(--radius)}._mM:active{background:color-mix(in srgb, currentColor 6%, transparent)}._mN{padding-left:1.35rem;font-weight:500}._mO{color:var(--dim);flex-shrink:0;display:inline-flex;transform:rotate(90deg)}._mP{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._mQ{color:var(--dim)}._mR{color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:400}._mS{padding:0 .35rem .35rem;font-size:.78rem}._mS:not(:has(>*)){display:none}._mT{flex-direction:column;gap:.25rem;display:flex}._mT+._mT{margin-top:.35rem}._mU{text-align:left;border-radius:calc(var(--radius) + 2px);width:100%;min-height:2.85rem;box-shadow:inset 0 0 0 1px var(--border);background:0 0;flex-shrink:0;align-items:center;gap:.5rem;padding:.65rem;font-size:1rem;display:flex}._mU:active{background:color-mix(in srgb, currentColor 6%, transparent)}._mV{top:var(--sheet-repo);z-index:1;background:var(--panel);height:1.75rem;color:var(--dim);padding:0 .35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;line-height:1.75rem;position:sticky}._mW{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.2}._mX{z-index:2;background:var(--panel);margin-bottom:-1px;padding:0 .5rem .5rem;position:relative}._mY{color:var(--dim);text-align:center;margin:0;padding:.65rem}._mZ{background:var(--accent-text)}._m0{opacity:.5}._m1{color:var(--dim)}@media screen and (width<=899px){._mI{padding-top:max(.85rem, calc(env(safe-area-inset-top) + .5rem))}}._du{--page-col:calc(48rem + 8.5rem + 1.35rem)}._dx{z-index:1;flex-direction:column;gap:1px;display:flex;position:sticky;top:0}._dz{border-radius:var(--radius);min-height:1.8rem;color:var(--dim);text-align:left;white-space:nowrap;align-items:center;padding:0 .5rem;font-size:.85rem;display:flex}._dz:hover{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._dz._dy{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text);font-weight:500}._dA{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);margin-left:auto}._dB{flex-direction:column;gap:1.35rem;min-width:0;display:flex}._dC{border-radius:calc(var(--radius) + 2px);background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);flex-wrap:wrap;align-items:center;gap:.65rem;padding:.65rem .85rem;display:flex}._dD{flex-direction:column;flex:12rem;gap:.15rem;min-width:0;display:flex}._dE{font-size:1rem;font-weight:600}._dF{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}@media screen and (width>=900px){._dv{grid-template-columns:8.5rem minmax(0,1fr);align-items:start;column-gap:1.35rem;max-width:57.85rem;display:grid}}@media screen and (width<=899px){._dw._dw{padding-top:0}._dx{scrollbar-width:none;background:var(--bg,var(--panel));border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:row;gap:.25rem;margin:0 -.85rem .65rem;padding:.35rem .85rem;top:0;overflow-x:auto}._dz{min-height:1.75rem;font-size:.85rem}._dA{margin-left:.25rem}._dB{gap:1rem}._dC{gap:.5rem;padding:.85rem}}._fp{gap:.5rem;padding:.5rem .65rem}._fq{align-items:center;gap:.35rem;display:inline-flex}._fr{min-width:6.5rem;padding:0 1.4rem 0 .5rem;font-size:.78rem}._fs{align-items:center;gap:.5rem;min-width:0;display:flex}._ft{flex-direction:column;gap:.35rem;display:flex}._fu{opacity:.45}._fu:hover,._fu:focus-within{opacity:.8}._fv{font-size:.85rem;font-weight:600}._fw{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;gap:.5rem;margin:0;padding:.5rem 0 0;list-style:none;display:flex}._gl{margin-left:auto}._gm{gap:.5rem}._gn{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._go{width:1.4rem;color:var(--text);flex-shrink:0}._gp{align-items:center;gap:.25rem;min-width:0;display:inline-flex}._gq{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._gr{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._gs{color:var(--text);font-weight:600}._gt{border-radius:var(--radius);background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-left:1.9rem;padding:.5rem .65rem;font-size:.85rem;display:flex}._gu{flex-wrap:wrap;gap:.25rem;min-width:0;display:inline-flex}._gv{letter-spacing:.12em;-webkit-user-select:all;user-select:all;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:1.1rem;font-weight:700}._gw{color:var(--accent-text);font-weight:600}._gx{padding-top:.25rem;padding-bottom:.25rem}._gP{pointer-events:none}._gQ{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:4px;width:40%;height:.7rem;display:block}._g1{color:var(--dim)}._g2{flex-shrink:0;font-size:.85rem;font-weight:600}._g1 ._g2,._g1 ._g3{font-weight:500}._g4{color:var(--dim);margin-left:.25rem}._g5{color:var(--dim);border-radius:4px;margin:0 -.35rem;padding:0 .35rem;font-size:.78rem}._g5:hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._g6{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);font-size:.78rem;line-height:inherit;border-radius:4px;align-items:center;gap:.15rem;padding:0 .25rem;display:inline-flex}._g6:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._g7{color:var(--accent-text);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.15rem .35rem;font-size:.78rem;font-weight:500}._g7:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent)}._g7:disabled{opacity:.45}._g8{border-radius:var(--radius);height:1.85rem;color:var(--accent-text);white-space:nowrap;align-items:center;gap:.25rem;padding:0 .35rem;font-size:.78rem;font-weight:500;display:inline-flex}._g8:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent)}._g8:disabled{opacity:.45}._g9{min-width:1.85rem;min-height:1.85rem}._g_{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);margin-left:.35rem;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;font-size:.78rem;overflow:hidden}@media screen and (width<=899px){._g5,._g6,._g7{min-height:1.75rem}}._hO{flex-direction:column;display:flex}._hP{align-items:flex-start;gap:.85rem;padding:.65rem .85rem;display:flex}._hP+._hP{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._hQ{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}._hR{font-size:.85rem;font-weight:600}._hS{color:var(--dim);font-size:.78rem;line-height:1.5}._hT{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}._hU{flex:14rem;align-items:center;min-width:0;display:flex;position:relative}._hV{color:var(--dim);pointer-events:none;position:absolute;left:.5rem}._hW{width:100%;padding-left:calc(.85rem + 14px)}._hX{border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent);gap:.15rem;padding:.15rem;display:inline-flex}._hZ{color:var(--dim);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:4px;align-items:center;gap:.25rem;padding:.25rem .5rem;font-size:.78rem;font-weight:500;display:inline-flex}._hZ:hover{color:var(--text)}._hZ._hY{background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--border)}._h0{color:var(--dim);font-weight:400}._h1{white-space:nowrap;align-items:center;gap:.25rem;display:inline-flex}._h2{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);background:color-mix(in srgb, var(--accent) 10%, transparent);align-items:center;gap:.65rem;padding:.5rem .85rem;display:flex}._h3{flex:1;min-width:0;font-size:.85rem}._h4{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon body end";gap:.35rem .65rem;padding:.65rem .85rem;display:grid}._h4+._h4{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._h6{border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent);grid-area:icon;place-items:center;width:2.25rem;height:2.25rem;display:grid}._h5 ._h6{opacity:.45}._h7{flex-direction:column;grid-area:body;gap:.15rem;min-width:0;display:flex}._h8{flex-wrap:wrap;align-items:baseline;column-gap:.35rem;display:flex}._h9{font-size:.85rem;font-weight:600}._h_{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._ia{color:var(--dim);overflow-wrap:anywhere;font-size:.78rem}._ib{color:inherit;text-decoration:none}._ib:hover{color:var(--accent-text);text-decoration:underline}._ic{color:var(--dim);flex-wrap:wrap;align-items:center;gap:.15rem .35rem;margin-top:.15rem;font-size:.78rem;display:flex}._id{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._ie{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);align-items:center;gap:.25rem;display:inline-flex}._if{background:currentColor}._ig{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent-text);border-radius:4px;padding:0 .25rem;font-weight:500}._ih{flex-direction:column;grid-area:end;justify-content:space-between;align-items:flex-end;gap:.5rem;display:flex}._ii{align-items:center;gap:.35rem;display:flex}._ij{max-width:18rem;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;font-size:.78rem;display:inline-flex;overflow:hidden}._ik{color:var(--dim);text-align:center;padding:1rem .85rem;font-size:.85rem}@media screen and (width<=899px){._hZ{min-height:1.75rem}._h4{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon body""end end"}._ih{flex-direction:row-reverse;justify-content:space-between;align-items:center}}._lj{width:min(30rem,100vw - 1.5rem)}._lk{flex-direction:column;gap:.65rem;display:flex}._ll{flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500;display:flex}._lm{color:var(--dim);font-size:.78rem;font-weight:400}._ln{color:var(--danger);margin:0;font-size:.85rem}._fU{border-radius:var(--radius);min-width:4.5rem;min-height:1.85rem;box-shadow:inset 0 0 0 1px var(--border);color:var(--text);text-align:center;cursor:pointer;flex-shrink:0;padding:0 .35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._fU:hover{box-shadow:inset 0 0 0 1px var(--dim)}._fU._fT{background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1px var(--accent);font-family:inherit}._fV{color:var(--dim);font-family:inherit}._fW{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);font-weight:500}@media screen and (width<=899px){._fS{display:none}}._lu{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:flex-start;gap:1rem;padding:.65rem;display:flex}._lv{border-radius:calc(var(--radius) + 4px);box-shadow:inset 0 0 0 1px var(--border);background:var(--panel);flex-shrink:0;grid-template-columns:repeat(3,3rem);align-self:flex-start;gap:.25rem;padding:.35rem;display:grid}._lw{letter-spacing:-.03em;border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent);white-space:nowrap;text-overflow:ellipsis;justify-content:center;align-items:center;min-width:0;height:3rem;padding:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600;display:inline-flex;overflow:hidden}._ly{color:var(--text);cursor:pointer;position:relative}._ly:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._ly._lx{background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}._lz{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.15rem;right:.15rem}._lA{box-shadow:inset 0 0 0 1px var(--border);color:var(--dim);cursor:pointer;background:0 0}._lA:hover{color:var(--text);box-shadow:inset 0 0 0 1px var(--dim)}._lA._lx{color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}._lB{background:var(--border);grid-column:1/-1;height:1px;margin-block:.15rem}._lC{flex-direction:column;flex:1;gap:.5rem;min-width:0;font-size:.85rem;display:flex}._lD{color:var(--dim);font-size:.85rem;line-height:1.5}._lE._lE{vertical-align:-.15em;margin-inline:.1em;display:inline-block}._lF{font-weight:600}._lG{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;display:flex}._lI{border-radius:var(--radius);min-width:2.15rem;height:2.15rem;box-shadow:inset 0 0 0 1px var(--border);color:var(--text);cursor:pointer;padding:0 .35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}._lI:hover{box-shadow:inset 0 0 0 1px var(--dim)}._lI._lH{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}._lJ{grid-template-columns:4.5rem minmax(0,1fr);align-items:center;gap:.35rem .5rem;display:grid}._lK{color:var(--dim);font-size:.78rem}._lL{box-sizing:border-box;width:12rem;max-width:100%;height:2.15rem;font-size:.85rem}._lM{text-align:center;width:2.6rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._lN{width:7rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._lO{color:var(--dim);align-items:center;gap:.25rem;display:inline-flex}._lP{color:var(--dim);font-size:.78rem}._lQ{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);font-size:.78rem}._lR{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.35rem;display:flex}@media screen and (width<=899px){._lu{flex-direction:column;align-items:stretch;gap:.65rem}._lv{align-self:center}._lI{min-width:1.75rem;height:1.75rem}._lJ{grid-template-columns:minmax(0,1fr)}._lL{width:100%;height:2.85rem;font-size:1rem}._lM{width:1.75rem;height:1.75rem}}._fX{flex-wrap:wrap;align-items:center;gap:.35rem .85rem;display:flex}._fY{color:var(--dim);align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}._fZ{flex-direction:column;align-items:stretch;gap:.5rem;display:flex}._f0{grid-template-columns:9rem minmax(0,1fr);align-items:baseline;column-gap:.85rem;display:grid}._f1{justify-self:start;min-width:0}._f3{color:var(--dim);margin:0;font-size:.78rem;line-height:1.5}._f4{border-radius:var(--radius);color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);background:var(--lightningcss-light,#bf87001a)var(--lightningcss-dark,#d4a72c1a);flex-direction:column;gap:.35rem;padding:.35rem .65rem;font-size:.78rem;line-height:1.5;display:flex}._f5{margin:0}._f6{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-wrap:wrap;align-items:center;gap:.25rem .5rem;padding-top:.35rem;display:flex}._f7{align-items:center;gap:.25rem;display:inline-flex}._f8{background:var(--bg);color:var(--text);-webkit-user-select:all;user-select:all;border-radius:4px;padding:.15rem .35rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}._f9{flex-direction:column;align-items:flex-start;gap:.25rem;min-width:0;display:flex}._f_{cursor:pointer;align-items:center;gap:.5rem;font-size:.85rem;display:inline-flex}._ga{border-radius:var(--radius);align-self:flex-start;align-items:center;gap:.35rem;padding:.15rem .25rem;display:flex}._gb{transition:transform .12s}._gc{transform:rotate(90deg)}._gd{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);padding-top:.5rem}._ge{grid-template-columns:9rem minmax(0,1fr);gap:.35rem .85rem;margin:0;font-size:.78rem;display:grid}._gf{color:var(--dim)}._gg{overflow-wrap:anywhere;min-width:0;margin:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;line-height:1.35}._gh{flex-direction:column;gap:.15rem;margin:0;padding:0;list-style:none;display:flex}._gi{gap:.5rem;display:flex}._gj{color:var(--dim);flex-shrink:0}._gk{flex-wrap:wrap;align-items:center;gap:.5rem;display:inline-flex}@media screen and (width<=899px){._fX{flex-direction:column;align-items:stretch}._fY{justify-content:space-between}._f0{grid-template-columns:minmax(0,1fr);row-gap:.35rem}._f1{justify-self:stretch;width:100%}._f2{width:100%;min-height:2.85rem;font-size:1rem}._f9{align-items:stretch}._f_{flex-direction:row-reverse;justify-content:space-between}._ge{grid-template-columns:minmax(0,1fr);row-gap:.15rem}._gf:not(:first-child){margin-top:.35rem}}._fx{flex-direction:column;align-items:stretch;gap:.65rem;display:flex}._fy{grid-template-columns:5.5rem minmax(0,1fr);align-items:center;column-gap:.85rem;display:grid}._fz{font-size:.85rem;font-weight:400}._fA{box-sizing:border-box;width:18rem;max-width:100%;height:2.15rem;font-size:.85rem}._fC{justify-self:start;min-width:0}._fD{display:none}._fF{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:center;gap:.65rem;padding-bottom:.65rem;display:flex}._fG{border-radius:8px;flex-shrink:0;width:32px;height:32px}._fH{flex-direction:column;gap:.15rem;min-width:0;display:flex}._fI{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}._fJ{color:var(--dim);font-size:.78rem}._fK{gap:.25rem}._fL{justify-self:start;align-items:center;gap:.35rem;display:inline-flex}._fM{background:var(--swatch);width:1.5rem;height:1.5rem;color:var(--swatch-ink,#fff);cursor:pointer;border:0;border-radius:50%;justify-content:center;align-items:center;padding:0;transition:transform .12s;display:inline-flex;position:relative;box-shadow:inset 0 0 0 1px #00000026}._fM:hover{transform:scale(1.1)}._fN{box-shadow:inset 0 0 0 2px var(--swatch,var(--accent)), inset 0 0 0 4px var(--panel)}._fO{filter:drop-shadow(0 1px 1px #00000059)}._fP{--swatch:var(--lightningcss-light,#4f5bd5)var(--lightningcss-dark,#6470e6)}._fQ{color:var(--dim);background:var(--swatch,transparent);box-shadow:inset 0 0 0 1px var(--border)}._fQ._fN{color:#fff;box-shadow:inset 0 0 0 2px var(--swatch), inset 0 0 0 4px var(--panel)}._fR{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}@media screen and (width<=899px){._fy{grid-template-columns:minmax(0,1fr);row-gap:.35rem}._fA{width:100%;height:2.85rem;font-size:1rem}._fB{display:none}._fC{justify-self:stretch}._fD{width:100%;display:inline-flex}._fE{width:100%;min-height:2.85rem;font-size:1rem}._fL{flex-wrap:wrap;justify-self:stretch;gap:.35rem}._fM{width:2.35rem;height:2.35rem}}._fl{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}._fm{color:var(--dim)}._fn{flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}._fo{align-items:center;gap:.5rem;display:flex}@media screen and (width<=899px){._fo{flex-direction:row-reverse;justify-content:space-between}}._hv{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._hw{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}._hx{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;gap:.5rem;min-width:0;padding-top:.5rem;display:flex}._hy{color:var(--dim);margin:0;font-size:.85rem}._hz{flex-direction:column;gap:.35rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}._hA{flex-direction:column;gap:.25rem;display:flex}._hB{border-left:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;gap:.25rem;padding-left:.5rem;display:flex}._hC{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}._hD{color:var(--dim);flex-direction:column;gap:.15rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}._hE{align-items:center;gap:.35rem;min-width:0;display:flex}._hF{flex-wrap:wrap;align-items:center;gap:.35rem;padding-top:.25rem;display:flex}._hG{gap:.25rem}._hH{border-radius:var(--radius);cursor:pointer;align-items:center;gap:.5rem;min-width:0;padding:.35rem .5rem;display:flex}._hH:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._hI{accent-color:var(--accent);flex-shrink:0;margin:0}._hJ{color:var(--dim);cursor:default}._hJ:hover{background:0 0}._hK{flex-direction:column;gap:.25rem;min-width:0;display:flex}._hL{color:var(--dim);font-size:.78rem}._hM{border-left:1px solid color-mix(in srgb, var(--border) 65%, transparent);margin-left:.65rem;padding-left:.25rem}._hN{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.85rem}@media screen and (width<=899px){._hH{padding:.5rem}}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C_kdME78.js";import"./_BX_fF7jC.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C_kdME78.js";import"./_BX_fF7jC.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C_kdME78.js";import"./_BX_fF7jC.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C_kdME78.js";import"./_BX_fF7jC.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
package/lib/setup/doctor.d.mts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { TailscaleProbe } from "./tailscale.mjs";
|
|
2
2
|
import type { FirewallProbe } from "./firewall.mjs";
|
|
3
|
+
import type { UntrackedCacheProbe } from "./untracked-cache.mjs";
|
|
3
4
|
export interface DoctorTool {
|
|
4
5
|
id: string;
|
|
5
6
|
label: string;
|
|
@@ -54,6 +55,8 @@ export interface Doctor {
|
|
|
54
55
|
/** The host firewall in front of direct connections' UDP port; null
|
|
55
56
|
* with none active (or direct connections off). */
|
|
56
57
|
firewall: FirewallProbe | null;
|
|
58
|
+
/** git's untracked cache in work's repo caches; null with none yet. */
|
|
59
|
+
untrackedCache: UntrackedCacheProbe | null;
|
|
57
60
|
}
|
|
58
61
|
export function setupPath(base?: string): string;
|
|
59
62
|
export function which(bin: string): string | null;
|
|
@@ -83,5 +86,7 @@ export function doctor(opts?: {
|
|
|
83
86
|
/** The firewall as the service meets it, read by the caller (the CLI
|
|
84
87
|
* asks the running server); the probe runs here without it. */
|
|
85
88
|
firewall?: FirewallProbe | null | Promise<FirewallProbe | null>;
|
|
89
|
+
/** The service's work root (default `WORK_ROOT`, else ~/work). */
|
|
90
|
+
workRoot?: string;
|
|
86
91
|
}): Promise<Doctor>;
|
|
87
92
|
export function formatDoctor(d: Doctor): string;
|
package/lib/setup/doctor.mjs
CHANGED
|
@@ -8,6 +8,7 @@ import path from "node:path";
|
|
|
8
8
|
import { AGENTS, DEFAULT_GITHUB_HOST, TOOLS } from "./catalog.mjs";
|
|
9
9
|
import { readTailscale, tailscaleLine } from "./tailscale.mjs";
|
|
10
10
|
import { firewallLine, firewallProbe } from "./firewall.mjs";
|
|
11
|
+
import { untrackedCacheLine, untrackedCacheProbe } from "./untracked-cache.mjs";
|
|
11
12
|
|
|
12
13
|
const home = os.homedir();
|
|
13
14
|
|
|
@@ -488,6 +489,8 @@ export async function doctor(opts = {}) {
|
|
|
488
489
|
staleGhHelpers: helpers,
|
|
489
490
|
tailscale,
|
|
490
491
|
firewall,
|
|
492
|
+
// Optional: how quickly `git status` answers in work's repos.
|
|
493
|
+
untrackedCache: untrackedCacheProbe({ workRoot: opts.workRoot }),
|
|
491
494
|
};
|
|
492
495
|
}
|
|
493
496
|
|
|
@@ -521,6 +524,9 @@ export function formatDoctor(d) {
|
|
|
521
524
|
// path to a firewall, and work runs either way.
|
|
522
525
|
const firewall = firewallLine(d.firewall);
|
|
523
526
|
if (firewall) lines.push(firewall);
|
|
527
|
+
// A speed-up, never readiness: git answers either way.
|
|
528
|
+
const untracked = untrackedCacheLine(d.untrackedCache);
|
|
529
|
+
if (untracked) lines.push(untracked);
|
|
524
530
|
// Said only when nothing holds the host: not a readiness gate, since
|
|
525
531
|
// work runs either way, but the one place a headless host would say so.
|
|
526
532
|
if (d.awake === false) {
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export interface UntrackedCacheProbe {
|
|
2
|
+
workRoot: string;
|
|
3
|
+
/** How many repo caches work keeps. */
|
|
4
|
+
caches: number;
|
|
5
|
+
/** How many have `core.untrackedCache` on. */
|
|
6
|
+
on: number;
|
|
7
|
+
/** The caches with it unset. */
|
|
8
|
+
off: string[];
|
|
9
|
+
/** Whether the work root's filesystem can keep the cache honest. */
|
|
10
|
+
filesystem: { ok: boolean; type?: string };
|
|
11
|
+
/** The user's own git config says false. */
|
|
12
|
+
declined: boolean;
|
|
13
|
+
}
|
|
14
|
+
export function repoCaches(workRoot: string): string[];
|
|
15
|
+
export function untrackedCacheSetting(cache: string): boolean | undefined;
|
|
16
|
+
export function filesystemVerdict(
|
|
17
|
+
dir: string,
|
|
18
|
+
platform?: NodeJS.Platform,
|
|
19
|
+
): { ok: boolean; type?: string };
|
|
20
|
+
export function mountOf(
|
|
21
|
+
at: string,
|
|
22
|
+
mountOutput: string,
|
|
23
|
+
): { point: string; type: string; local: boolean } | null;
|
|
24
|
+
export function gitCheckPasses(workRoot: string): Promise<boolean>;
|
|
25
|
+
export function userSetting(): boolean | undefined;
|
|
26
|
+
export function untrackedCacheProbe(opts?: {
|
|
27
|
+
workRoot?: string;
|
|
28
|
+
}): UntrackedCacheProbe | null;
|
|
29
|
+
export function enableUntrackedCache(caches: string[]): Promise<string[]>;
|
|
30
|
+
export function untrackedCacheAllowed(workRoot: string): Promise<boolean>;
|
|
31
|
+
export function unsetCaches(workRoot: string): string[];
|
|
32
|
+
export function untrackedCacheLine(
|
|
33
|
+
p: UntrackedCacheProbe | null,
|
|
34
|
+
): string | null;
|
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
// git's untracked cache for the repos work keeps (`<work root>/.cache/
|
|
2
|
+
// <host>/<owner>/<name>.git`, whose worktrees are every workspace's
|
|
3
|
+
// checkouts and topic branches). `git status` lists untracked files by
|
|
4
|
+
// reading every directory of the worktree; with `core.untrackedCache` on,
|
|
5
|
+
// git keeps each directory's listing in the index with its mtime and reads
|
|
6
|
+
// again only the directories whose mtime moved, which in a large repo is
|
|
7
|
+
// most of a status's time. The listing is written by any git command that
|
|
8
|
+
// writes the index (an agent's add, commit or status); work's own reads,
|
|
9
|
+
// which never take the index lock, only use it.
|
|
10
|
+
//
|
|
11
|
+
// It is only as good as the filesystem's directory mtimes: one that does
|
|
12
|
+
// not move a directory's mtime when an entry is added or removed (a
|
|
13
|
+
// network or FUSE filesystem), or moves it only to the second, would leave
|
|
14
|
+
// `git status` — the user's and agents' too, since the setting is the
|
|
15
|
+
// repo's — missing a new file. So the server turns it on (as it starts, and
|
|
16
|
+
// in each repo it adds) only where the filesystem is a local one with fine
|
|
17
|
+
// mtimes and git's own check (`--test-untracked-cache`) passes there, and
|
|
18
|
+
// never where the user said otherwise: a repo set false, or their global
|
|
19
|
+
// git config.
|
|
20
|
+
import { execFile, execFileSync, spawn } from "node:child_process";
|
|
21
|
+
import fs from "node:fs";
|
|
22
|
+
import os from "node:os";
|
|
23
|
+
import path from "node:path";
|
|
24
|
+
|
|
25
|
+
/** Every repo cache under the work root. */
|
|
26
|
+
export function repoCaches(workRoot) {
|
|
27
|
+
const root = path.join(workRoot, ".cache");
|
|
28
|
+
const out = [];
|
|
29
|
+
for (const host of subdirs(root))
|
|
30
|
+
for (const owner of subdirs(path.join(root, host)))
|
|
31
|
+
for (const name of subdirs(path.join(root, host, owner)))
|
|
32
|
+
if (name.endsWith(".git")) out.push(path.join(root, host, owner, name));
|
|
33
|
+
return out;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
function subdirs(dir) {
|
|
37
|
+
try {
|
|
38
|
+
return fs
|
|
39
|
+
.readdirSync(dir, { withFileTypes: true })
|
|
40
|
+
.filter((e) => e.isDirectory())
|
|
41
|
+
.map((e) => e.name);
|
|
42
|
+
} catch {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** A cache's `core.untrackedCache`: true, false, or undefined (unset, or
|
|
48
|
+
* git's `keep`). Read from its config file rather than a git process per
|
|
49
|
+
* repo: the doctor asks on every Settings load. */
|
|
50
|
+
export function untrackedCacheSetting(cache) {
|
|
51
|
+
let text;
|
|
52
|
+
try {
|
|
53
|
+
text = fs.readFileSync(path.join(cache, "config"), "utf8");
|
|
54
|
+
} catch {
|
|
55
|
+
return undefined;
|
|
56
|
+
}
|
|
57
|
+
let inCore = false;
|
|
58
|
+
let value;
|
|
59
|
+
for (const raw of text.split("\n")) {
|
|
60
|
+
const line = raw.replace(/[#;].*$/, "").trim();
|
|
61
|
+
const section = /^\[\s*([^\]\s"]+)/.exec(line);
|
|
62
|
+
if (section) {
|
|
63
|
+
inCore = section[1].toLowerCase() === "core";
|
|
64
|
+
continue;
|
|
65
|
+
}
|
|
66
|
+
const kv = inCore && /^untrackedcache\s*=\s*(.*)$/i.exec(line);
|
|
67
|
+
if (kv) value = kv[1].trim().toLowerCase();
|
|
68
|
+
}
|
|
69
|
+
if (["true", "yes", "on", "1"].includes(value)) return true;
|
|
70
|
+
if (["false", "no", "off", "0"].includes(value)) return false;
|
|
71
|
+
return undefined;
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/** Filesystems whose directory mtimes the cache cannot trust. Linux's
|
|
75
|
+
* statfs magic numbers. */
|
|
76
|
+
const LINUX_UNSAFE = new Map([
|
|
77
|
+
[0x6969, "NFS"],
|
|
78
|
+
[0x517b, "SMB"],
|
|
79
|
+
[0xfe534d42, "SMB2"],
|
|
80
|
+
[0xff534d42, "CIFS"],
|
|
81
|
+
[0x65735546, "FUSE"],
|
|
82
|
+
[0x01021997, "9p"],
|
|
83
|
+
[0x00c36400, "Ceph"],
|
|
84
|
+
[0x5346414f, "AFS"],
|
|
85
|
+
[0x4d44, "FAT"],
|
|
86
|
+
[0x2011bab0, "exFAT"],
|
|
87
|
+
]);
|
|
88
|
+
/** macOS's by `mount`'s type name: network, FUSE, and those with
|
|
89
|
+
* second-or-coarser mtimes (HFS+, FAT). */
|
|
90
|
+
const MAC_UNSAFE =
|
|
91
|
+
/^(nfs|smbfs|afpfs|webdav|cifs|macfuse|osxfuse|fuse.*|hfs|msdos|exfat)$/;
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Whether the filesystem holding `dir` can keep the cache honest, from its
|
|
95
|
+
* type alone (cheap: the doctor's). `{ ok, type }`, `type` a name where
|
|
96
|
+
* one is known.
|
|
97
|
+
*/
|
|
98
|
+
export function filesystemVerdict(dir, platform = process.platform) {
|
|
99
|
+
if (platform === "linux") {
|
|
100
|
+
try {
|
|
101
|
+
const { type } = fs.statfsSync(dir);
|
|
102
|
+
const bad = LINUX_UNSAFE.get(type >>> 0);
|
|
103
|
+
return bad ? { ok: false, type: bad } : { ok: true };
|
|
104
|
+
} catch {
|
|
105
|
+
return { ok: false, type: "unknown" };
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
if (platform === "darwin") {
|
|
109
|
+
const mount = macMount(dir);
|
|
110
|
+
if (!mount) return { ok: false, type: "unknown" };
|
|
111
|
+
if (!mount.local) return { ok: false, type: `${mount.type} (not local)` };
|
|
112
|
+
return MAC_UNSAFE.test(mount.type)
|
|
113
|
+
? { ok: false, type: mount.type }
|
|
114
|
+
: { ok: true, type: mount.type };
|
|
115
|
+
}
|
|
116
|
+
return { ok: false, type: platform };
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
/** The mount holding `dir` on macOS. */
|
|
120
|
+
function macMount(dir) {
|
|
121
|
+
let out;
|
|
122
|
+
try {
|
|
123
|
+
out = execFileSync("/sbin/mount", { encoding: "utf8" });
|
|
124
|
+
} catch {
|
|
125
|
+
return null;
|
|
126
|
+
}
|
|
127
|
+
let at = dir;
|
|
128
|
+
try {
|
|
129
|
+
at = fs.realpathSync(dir);
|
|
130
|
+
} catch {}
|
|
131
|
+
return mountOf(at, out);
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/** Of `mount`'s `<dev> on <path> (<type>, local, …)` lines, the one whose
|
|
135
|
+
* mount point holds `at` most closely: `{ point, type, local }`. */
|
|
136
|
+
export function mountOf(at, mountOutput) {
|
|
137
|
+
let best = null;
|
|
138
|
+
for (const line of mountOutput.split("\n")) {
|
|
139
|
+
const m = / on (.+) \(([^,)]+)((?:,[^)]*)?)\)$/.exec(line);
|
|
140
|
+
if (!m) continue;
|
|
141
|
+
const point = m[1];
|
|
142
|
+
const inside =
|
|
143
|
+
at === point || at.startsWith(point.endsWith("/") ? point : point + "/");
|
|
144
|
+
if (inside && (!best || point.length > best.point.length))
|
|
145
|
+
best = { point, type: m[2].trim(), local: /\blocal\b/.test(m[3]) };
|
|
146
|
+
}
|
|
147
|
+
return best;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* git's own check that directory mtimes behave, run in a throwaway repo
|
|
152
|
+
* made on the same filesystem as the workspaces (inside the work root),
|
|
153
|
+
* never in a checkout. It takes seconds, mostly waiting on the clock.
|
|
154
|
+
*/
|
|
155
|
+
export async function gitCheckPasses(workRoot) {
|
|
156
|
+
let dir;
|
|
157
|
+
try {
|
|
158
|
+
dir = fs.mkdtempSync(path.join(workRoot, ".untracked-cache-check-"));
|
|
159
|
+
const run = (args) =>
|
|
160
|
+
new Promise((resolve) =>
|
|
161
|
+
spawn("git", args, { cwd: dir, stdio: "ignore" })
|
|
162
|
+
.on("exit", (code) => resolve(code === 0))
|
|
163
|
+
.on("error", () => resolve(false)),
|
|
164
|
+
);
|
|
165
|
+
return (
|
|
166
|
+
(await run(["init", "--quiet"])) &&
|
|
167
|
+
(await run(["update-index", "--test-untracked-cache"]))
|
|
168
|
+
);
|
|
169
|
+
} catch {
|
|
170
|
+
return false;
|
|
171
|
+
} finally {
|
|
172
|
+
if (dir) fs.rmSync(dir, { recursive: true, force: true });
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
/** The user's own `core.untrackedCache` (global or system): true, false,
|
|
177
|
+
* or undefined. False is their answer for every repo, work's included. */
|
|
178
|
+
export function userSetting() {
|
|
179
|
+
try {
|
|
180
|
+
const out = execFileSync(
|
|
181
|
+
"git",
|
|
182
|
+
["config", "--get", "--type=bool", "core.untrackedCache"],
|
|
183
|
+
{
|
|
184
|
+
cwd: os.tmpdir(),
|
|
185
|
+
encoding: "utf8",
|
|
186
|
+
stdio: ["ignore", "pipe", "ignore"],
|
|
187
|
+
},
|
|
188
|
+
).trim();
|
|
189
|
+
return out === "true" ? true : out === "false" ? false : undefined;
|
|
190
|
+
} catch {
|
|
191
|
+
return undefined;
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
/**
|
|
196
|
+
* Where work's caches stand. Null with no caches yet. `off` are the caches
|
|
197
|
+
* with it unset (a `false` set by hand is left alone and not counted).
|
|
198
|
+
*/
|
|
199
|
+
export function untrackedCacheProbe({ workRoot } = {}) {
|
|
200
|
+
const root = workRoot || defaultWorkRoot();
|
|
201
|
+
const caches = repoCaches(root);
|
|
202
|
+
if (!caches.length) return null;
|
|
203
|
+
const off = caches.filter((c) => untrackedCacheSetting(c) === undefined);
|
|
204
|
+
const on = caches.filter((c) => untrackedCacheSetting(c) === true).length;
|
|
205
|
+
return {
|
|
206
|
+
workRoot: root,
|
|
207
|
+
caches: caches.length,
|
|
208
|
+
on,
|
|
209
|
+
off,
|
|
210
|
+
filesystem: filesystemVerdict(root),
|
|
211
|
+
declined: userSetting() === false,
|
|
212
|
+
};
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
/** Turn it on in each of `caches` (their worktrees share the setting).
|
|
216
|
+
* The caches it could not set. */
|
|
217
|
+
export async function enableUntrackedCache(caches) {
|
|
218
|
+
const failed = [];
|
|
219
|
+
await Promise.all(
|
|
220
|
+
caches.map(
|
|
221
|
+
(cache) =>
|
|
222
|
+
new Promise((resolve) =>
|
|
223
|
+
execFile(
|
|
224
|
+
"git",
|
|
225
|
+
[
|
|
226
|
+
"config",
|
|
227
|
+
"--file",
|
|
228
|
+
path.join(cache, "config"),
|
|
229
|
+
"core.untrackedCache",
|
|
230
|
+
"true",
|
|
231
|
+
],
|
|
232
|
+
(err) => {
|
|
233
|
+
if (err) failed.push(cache);
|
|
234
|
+
resolve();
|
|
235
|
+
},
|
|
236
|
+
),
|
|
237
|
+
),
|
|
238
|
+
),
|
|
239
|
+
);
|
|
240
|
+
return failed;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
/** Whether work may turn it on under `workRoot`: the user has not said
|
|
244
|
+
* no, the filesystem is one it suits, and git's own check passes there. */
|
|
245
|
+
export async function untrackedCacheAllowed(workRoot) {
|
|
246
|
+
if (userSetting() === false) return false;
|
|
247
|
+
if (!filesystemVerdict(workRoot).ok) return false;
|
|
248
|
+
return gitCheckPasses(workRoot);
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/** The caches with it unset (a false set by hand stays). */
|
|
252
|
+
export function unsetCaches(workRoot) {
|
|
253
|
+
return repoCaches(workRoot).filter(
|
|
254
|
+
(c) => untrackedCacheSetting(c) === undefined,
|
|
255
|
+
);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/** `work doctor`'s line; null with no caches yet. */
|
|
259
|
+
export function untrackedCacheLine(p) {
|
|
260
|
+
if (!p) return null;
|
|
261
|
+
const head = "git status".padEnd(11);
|
|
262
|
+
if (p.declined)
|
|
263
|
+
return `${head}– git's untracked cache is off by your git config (core.untrackedCache=false)`;
|
|
264
|
+
if (!p.filesystem.ok)
|
|
265
|
+
return `${head}– git's untracked cache is off: ${p.workRoot} is on ${p.filesystem.type || "a filesystem"}, whose directory times it cannot trust`;
|
|
266
|
+
if (!p.off.length)
|
|
267
|
+
return `${head}✓ git's untracked cache is on in ${onText(p)}`;
|
|
268
|
+
return `${head}– git's untracked cache is off in ${p.off.length} of work's ${p.caches} repos: the service turns it on as it starts, where git's check of this disk passes`;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
/** "work's 3 repos", or "2 of work's 3 repos (1 set off by hand)". */
|
|
272
|
+
function onText(p) {
|
|
273
|
+
const byHand = p.caches - p.on - p.off.length;
|
|
274
|
+
return byHand
|
|
275
|
+
? `${p.on} of work's ${p.caches} repos (${byHand} set off by hand)`
|
|
276
|
+
: `work's ${p.caches} ${p.caches === 1 ? "repo" : "repos"}`;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
function defaultWorkRoot() {
|
|
280
|
+
return process.env.WORK_ROOT || path.join(os.homedir(), "work");
|
|
281
|
+
}
|