@dylanpiercey/work 0.1.0 → 0.1.1
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 +17 -5
- package/bin/work.mjs +208 -9
- package/dist/_D1C-XIqT.js +168 -0
- package/dist/{_Bq7to522.js → _Dzz52ZtI.js} +188 -49
- package/dist/_HbAW5Cbt.js +2 -0
- package/dist/index.mjs +1118 -1151
- package/dist/public/assets/{_Cz5BPBG8.js → _-5UNb9-C.js} +1 -1
- package/dist/public/assets/_-5UNb9-C.js.br +0 -0
- package/dist/public/assets/_06rtP_SB.js +1 -0
- package/dist/public/assets/_14yhXek7.js +1 -0
- package/dist/public/assets/_14yhXek7.js.br +0 -0
- package/dist/public/assets/_1JXC9nFp.js +1 -0
- package/dist/public/assets/_1JXC9nFp.js.br +0 -0
- package/dist/public/assets/_1Yit_Y5R.js +1 -0
- package/dist/public/assets/_1ZPfR2B8.js +6 -0
- package/dist/public/assets/_1ZPfR2B8.js.br +0 -0
- package/dist/public/assets/{_D2un443j.js → _1xOByopP.js} +1 -1
- package/dist/public/assets/_1xOByopP.js.br +0 -0
- package/dist/public/assets/{_C_37_B6u.js → _3aBl7SEn.js} +1 -1
- package/dist/public/assets/_3aBl7SEn.js.br +0 -0
- package/dist/public/assets/_5aMLV2Vy.js +1 -0
- package/dist/public/assets/{_BwP07uVS.js → _7YrArFMB.js} +1 -1
- package/dist/public/assets/_7YrArFMB.js.br +0 -0
- package/dist/public/assets/{_ClldMY37.js → _B1-W0Sn2.js} +1 -1
- package/dist/public/assets/_B1-W0Sn2.js.br +0 -0
- package/dist/public/assets/{_8dvK2NDJ.js → _B1D0PIz3.js} +1 -1
- package/dist/public/assets/_B1D0PIz3.js.br +0 -0
- package/dist/public/assets/_B1agoKUa.js +1 -0
- package/dist/public/assets/_B3NfNm8M.js +1591 -0
- package/dist/public/assets/_B3NfNm8M.js.br +0 -0
- package/dist/public/assets/{_BDa-iwuj.js → _B7VYILLZ.js} +1 -1
- package/dist/public/assets/_B7VYILLZ.js.br +0 -0
- package/dist/public/assets/_B7sPBy0J.js +1 -0
- package/dist/public/assets/_B81p6DSw.js +1 -0
- package/dist/public/assets/_BAkSKCkz.js +1 -0
- package/dist/public/assets/{_B582D2rg.js → _BDUjU8Ev.js} +1 -1
- package/dist/public/assets/{_Bv3qNE1b.js → _BHU5aikZ.js} +1 -1
- package/dist/public/assets/_BHZPTv1U.js +1 -0
- package/dist/public/assets/{_DxEm-Gwj.js → _BKHtiW96.js} +1 -1
- package/dist/public/assets/_BKHtiW96.js.br +0 -0
- package/dist/public/assets/{_C0_s45qg.js → _BKIx7IZP.js} +1 -1
- package/dist/public/assets/_BKIx7IZP.js.br +0 -0
- package/dist/public/assets/{_Bp8-V8yl.js → _BLfzQY-3.js} +1 -1
- package/dist/public/assets/_BLfzQY-3.js.br +0 -0
- package/dist/public/assets/{_ch_yXAap.js → _BPSTqkJn.js} +1 -1
- package/dist/public/assets/_BPSTqkJn.js.br +0 -0
- package/dist/public/assets/_BQZOimBB.js +1 -0
- package/dist/public/assets/{_DfI982PI.js → _BRQ6iQ5p.js} +1 -1
- package/dist/public/assets/_BRQ6iQ5p.js.br +0 -0
- package/dist/public/assets/_BRVURc4u.js +1 -0
- package/dist/public/assets/{_CTINBWaG.js → _BSFJEuJX.js} +1 -1
- package/dist/public/assets/_BSFJEuJX.js.br +0 -0
- package/dist/public/assets/{_CMSBfO6u.js → _BSWN-v3P.js} +1 -1
- package/dist/public/assets/_BSWN-v3P.js.br +0 -0
- package/dist/public/assets/_BTVAQr2c.js +1 -0
- package/dist/public/assets/_BUD1pBC0.js +1 -0
- package/dist/public/assets/_BVGzCczb.js +1 -0
- package/dist/public/assets/{_j2tDSMvo.js → _BVQosHjY.js} +1 -1
- package/dist/public/assets/_BVQosHjY.js.br +0 -0
- package/dist/public/assets/{_9kX9D09B.js → _B_0C2_RO.js} +1 -1
- package/dist/public/assets/_B_0C2_RO.js.br +0 -0
- package/dist/public/assets/_BaA31ms5.js +1 -0
- package/dist/public/assets/_BgCHJGlO.js +1 -0
- package/dist/public/assets/_BhpRLDbL.js +1 -0
- package/dist/public/assets/_BhpRLDbL.js.br +0 -0
- package/dist/public/assets/_BkKcjMAC.js +1 -0
- package/dist/public/assets/{_xyw_DS5P.js → _BkcPY2j0.js} +1 -1
- package/dist/public/assets/_BkcPY2j0.js.br +0 -0
- package/dist/public/assets/_BlTVd_3d.js +1 -0
- package/dist/public/assets/_BlqlLmEY.js +1 -0
- package/dist/public/assets/_BoNfxc9P.js +1 -0
- package/dist/public/assets/_BqswW9B9.js +1 -0
- package/dist/public/assets/_BricqzsO.js +1 -0
- package/dist/public/assets/_BrreckIa.js +1 -0
- package/dist/public/assets/{_BpoeUr5j.js → _BsJZPHmz.js} +1 -1
- package/dist/public/assets/_BsJZPHmz.js.br +0 -0
- package/dist/public/assets/_BtRYwaBb.js +1 -0
- package/dist/public/assets/{_B7GwDeKK.js → _BtZ2AatF.js} +1 -1
- package/dist/public/assets/_BvPBKjRP.js +1 -0
- package/dist/public/assets/_BvPBKjRP.js.br +0 -0
- package/dist/public/assets/_ByrrjMU9.js +1 -0
- package/dist/public/assets/{_CpjSCB1I.js → _BzGHediB.js} +1 -1
- package/dist/public/assets/_BzGHediB.js.br +0 -0
- package/dist/public/assets/_BzvTKm92.js +1 -0
- package/dist/public/assets/{_D1uRW1qz.js → _C-EkQeP_.js} +1 -1
- package/dist/public/assets/_C-EkQeP_.js.br +0 -0
- package/dist/public/assets/{_Bv3e3rg8.js → _C0Ib7MZF.js} +1 -1
- package/dist/public/assets/_C0Ib7MZF.js.br +0 -0
- package/dist/public/assets/_C2p1Z5Lf.js +86 -0
- package/dist/public/assets/_C2p1Z5Lf.js.br +0 -0
- package/dist/public/assets/_C3iiOlxd.js +1 -0
- package/dist/public/assets/{_De7P3jUH.js → _C81nSl09.js} +1 -1
- package/dist/public/assets/_C81nSl09.js.br +0 -0
- package/dist/public/assets/{_BvXp6HpX.js → _C8bqYk4J.js} +1 -1
- package/dist/public/assets/_C8bqYk4J.js.br +0 -0
- package/dist/public/assets/_C98JZr09.js +1 -0
- package/dist/public/assets/_C98JZr09.js.br +0 -0
- package/dist/public/assets/_CB4VkmGZ.js +1 -0
- package/dist/public/assets/{_bcsuBP7T.js → _CCVkYcN5.js} +1 -1
- package/dist/public/assets/_CCVkYcN5.js.br +0 -0
- package/dist/public/assets/{_DC-78WeM.js → _CDY0RpYX.js} +1 -1
- package/dist/public/assets/_CDY0RpYX.js.br +0 -0
- package/dist/public/assets/_CE2GEqMx.js +1 -0
- package/dist/public/assets/_CE2GEqMx.js.br +0 -0
- package/dist/public/assets/{_BbbOvNRH.js → _CFUREq1M.js} +1 -1
- package/dist/public/assets/_CFUREq1M.js.br +0 -0
- package/dist/public/assets/_CHdh6bII.js +1 -0
- package/dist/public/assets/{_wcshV0sZ.js → _CHdpLB95.js} +1 -1
- package/dist/public/assets/_CHdpLB95.js.br +0 -0
- package/dist/public/assets/{_D4q8XSMI.js → _CKLGAGKJ.js} +1 -1
- package/dist/public/assets/_CKLGAGKJ.js.br +0 -0
- package/dist/public/assets/_CMRt2lyQ.js +1 -0
- package/dist/public/assets/_CN1zW1AT.js +1 -0
- package/dist/public/assets/_CN1zW1AT.js.br +0 -0
- package/dist/public/assets/_CUILmj9R.js +1 -0
- package/dist/public/assets/_CUhP8KQ8.js +1 -0
- package/dist/public/assets/{_DaMVRI8f.js → _CUsrMpdL.js} +1 -1
- package/dist/public/assets/_CUsrMpdL.js.br +0 -0
- package/dist/public/assets/_CVG0_w9T.js +1 -0
- package/dist/public/assets/{_CamWDaoG.js → _CWG813ur.js} +1 -1
- package/dist/public/assets/_CWG813ur.js.br +0 -0
- package/dist/public/assets/{_DSVLaMWS.js → _CY87Y7QL.js} +1 -1
- package/dist/public/assets/_CY87Y7QL.js.br +0 -0
- package/dist/public/assets/_CYAsKva_.js +1 -0
- package/dist/public/assets/_CajKYNSY.js +1 -0
- package/dist/public/assets/{_D0aoEFRx.js → _Cb_k_JA_.js} +1 -1
- package/dist/public/assets/_Cb_k_JA_.js.br +0 -0
- package/dist/public/assets/_Ce8PlfMD.js +1 -0
- package/dist/public/assets/{_Bm4SHrNp.js → _CfGEGt_k.js} +1 -1
- package/dist/public/assets/_CfGEGt_k.js.br +0 -0
- package/dist/public/assets/{_DqhphdU4.js → _CfdK8EeQ.js} +1 -1
- package/dist/public/assets/_CfdK8EeQ.js.br +0 -0
- package/dist/public/assets/_CgOKmAwr.js +1 -0
- package/dist/public/assets/{_eoa1EOU-.js → _CiYQhf81.js} +1 -1
- package/dist/public/assets/_CiYQhf81.js.br +0 -0
- package/dist/public/assets/_Cj9DHPRL.js +1 -0
- package/dist/public/assets/{_CxAPL49a.js → _ClHPjF-1.js} +1 -1
- package/dist/public/assets/_ClHPjF-1.js.br +0 -0
- package/dist/public/assets/{_DDl8KSWJ.js → _Cmmdd2e3.js} +1 -1
- package/dist/public/assets/_Cmmdd2e3.js.br +0 -0
- package/dist/public/assets/{_BZKB4fhr.js → _Cn9Ia4SS.js} +1 -1
- package/dist/public/assets/_Cn9Ia4SS.js.br +0 -0
- package/dist/public/assets/_CnTzFbuG.js +1 -0
- package/dist/public/assets/{_BE_Jyvqd.js → _CqCenHOp.js} +1 -1
- package/dist/public/assets/_CqCenHOp.js.br +0 -0
- package/dist/public/assets/{_Dp3IZdH8.js → _CtqGSS84.js} +1 -1
- package/dist/public/assets/_CtqGSS84.js.br +0 -0
- package/dist/public/assets/_CttfwM-c.js +1 -0
- package/dist/public/assets/{_D6kktUFn.js → _CxA3Yab0.js} +1 -1
- package/dist/public/assets/_CxA3Yab0.js.br +0 -0
- package/dist/public/assets/{_Bx1CW-sF.js → _Cx_aJfDp.js} +1 -1
- package/dist/public/assets/_Cx_aJfDp.js.br +0 -0
- package/dist/public/assets/_D2L_ILOW.js +1 -0
- package/dist/public/assets/_D47lCu0c.js +1 -0
- package/dist/public/assets/_D5W-uGIK.js +1 -0
- package/dist/public/assets/_D6BbZLrc.js +1 -0
- package/dist/public/assets/_D6RVeCAn.js +1 -0
- package/dist/public/assets/_D75V4jV-.js +1 -0
- package/dist/public/assets/{_CyBCIknf.js → _D9r_Fn0I.js} +1 -1
- package/dist/public/assets/_D9r_Fn0I.js.br +0 -0
- package/dist/public/assets/{_8G2Mv7jG.js → _DBD57l1T.js} +1 -1
- package/dist/public/assets/_DBD57l1T.js.br +0 -0
- package/dist/public/assets/_DCWILZgL.js +1 -0
- package/dist/public/assets/{_COcePo2y.js → _DEOryr7w.js} +1 -1
- package/dist/public/assets/_DEOryr7w.js.br +0 -0
- package/dist/public/assets/_DF54Iz7o.js +1 -0
- package/dist/public/assets/_DFamU2Uj.js +2 -0
- package/dist/public/assets/_DFamU2Uj.js.br +0 -0
- package/dist/public/assets/_DHmBuyCO.js +1 -0
- package/dist/public/assets/_DHmBuyCO.js.br +0 -0
- package/dist/public/assets/{_BywcP-As.js → _DJqEBkNd.js} +1 -1
- package/dist/public/assets/_DJqEBkNd.js.br +0 -0
- package/dist/public/assets/{_BUvqweu0.js → _DL3w8c_p.js} +1 -1
- package/dist/public/assets/_DL3w8c_p.js.br +0 -0
- package/dist/public/assets/_DLVL-4MP.js +1 -0
- package/dist/public/assets/{_wXDh-Z2N.js → _DM60dKRs.js} +1 -1
- package/dist/public/assets/_DM60dKRs.js.br +0 -0
- package/dist/public/assets/{_BBWaxDkO.js → _DMJHTH74.js} +1 -1
- package/dist/public/assets/_DMJHTH74.js.br +0 -0
- package/dist/public/assets/_DMLv6KA6.js +1 -0
- package/dist/public/assets/_DQYpgyzr.js +1 -0
- package/dist/public/assets/_DQYpgyzr.js.br +0 -0
- package/dist/public/assets/{_SGDxiwE1.js → _DQyjuXTi.js} +1 -1
- package/dist/public/assets/_DQyjuXTi.js.br +0 -0
- package/dist/public/assets/{_DrIgZJzN.js → _DRHCy0UF.js} +1 -1
- package/dist/public/assets/_DRHCy0UF.js.br +0 -0
- package/dist/public/assets/{_D4rOX-Fa.js → _DSUBv-Bl.js} +1 -1
- package/dist/public/assets/_DSUBv-Bl.js.br +0 -0
- package/dist/public/assets/{_CYjE__ml.js → _DUFM9qLV.js} +1 -1
- package/dist/public/assets/_DUFM9qLV.js.br +0 -0
- package/dist/public/assets/{_BNW5Jiec.js → _DUs3ZGbj.js} +1 -1
- package/dist/public/assets/_DUs3ZGbj.js.br +0 -0
- package/dist/public/assets/{_Dytf99zx.js → _DX5u6Wvm.js} +1 -1
- package/dist/public/assets/_DX5u6Wvm.js.br +0 -0
- package/dist/public/assets/{_CHuLFr1f.js → _DZvkgS3V.js} +1 -1
- package/dist/public/assets/_DZvkgS3V.js.br +0 -0
- package/dist/public/assets/{_D9sS4J_w.js → _Dbm6zAQS.js} +1 -1
- package/dist/public/assets/_Dbm6zAQS.js.br +0 -0
- package/dist/public/assets/{_D4dJ2qEE.js → _DcOkTFth.js} +1 -1
- package/dist/public/assets/_Ddf1gumD.js +1 -0
- package/dist/public/assets/_De6E9M7R.js +1 -0
- package/dist/public/assets/{_DFWOMF-B.js → _DgWKSW-Y.js} +1 -1
- package/dist/public/assets/_DgWKSW-Y.js.br +0 -0
- package/dist/public/assets/_DhEN6T4v.js +1 -0
- package/dist/public/assets/{_D4quFMVQ.js → _Di1ccq_2.js} +1 -1
- package/dist/public/assets/_Di1ccq_2.js.br +0 -0
- package/dist/public/assets/{_CUXajOKj.js → _DifjKObE.js} +1 -1
- package/dist/public/assets/_DifjKObE.js.br +0 -0
- package/dist/public/assets/_Dn10ABa-.js +1 -0
- package/dist/public/assets/{_MCwIJAuJ.js → _Do1ltY2a.js} +1 -1
- package/dist/public/assets/_Do1ltY2a.js.br +0 -0
- package/dist/public/assets/{_Ct3RF80L.js → _DomK7Scb.js} +1 -1
- package/dist/public/assets/_DomK7Scb.js.br +0 -0
- package/dist/public/assets/_DtWggCxt.js +1 -0
- package/dist/public/assets/_DtqqybyQ.js +1 -0
- package/dist/public/assets/{_CEJUcePr.js → _DvKnakqk.js} +1 -1
- package/dist/public/assets/_DvKnakqk.js.br +0 -0
- package/dist/public/assets/_DxD_AC3a.js +1 -0
- package/dist/public/assets/_DxD_AC3a.js.br +0 -0
- package/dist/public/assets/_Dxo7m9cG.js +1 -0
- package/dist/public/assets/{_DkCaEf_h.js → _DzKW89Sx.js} +1 -1
- package/dist/public/assets/_DzKW89Sx.js.br +0 -0
- package/dist/public/assets/_DzTHCioH.js +1 -0
- package/dist/public/assets/{_C654p96Z.js → _EefWj858.js} +1 -1
- package/dist/public/assets/_EefWj858.js.br +0 -0
- package/dist/public/assets/{_zSAfqXcm.js → _FlITqTCo.js} +1 -1
- package/dist/public/assets/_FlITqTCo.js.br +0 -0
- package/dist/public/assets/_GkEw2S0T.js +1 -0
- package/dist/public/assets/{_Dd6X3e7w.js → _HM_QqtJi.js} +1 -1
- package/dist/public/assets/_HM_QqtJi.js.br +0 -0
- package/dist/public/assets/{_CEXHZd73.js → _HmkI4Rfn.js} +1 -1
- package/dist/public/assets/_HmkI4Rfn.js.br +0 -0
- package/dist/public/assets/{_d5u7EI97.js → _JEvx8ub4.js} +1 -1
- package/dist/public/assets/_JEvx8ub4.js.br +0 -0
- package/dist/public/assets/_JOb8B3tz.js +1 -0
- package/dist/public/assets/_LEIhjFrO.js +1 -0
- package/dist/public/assets/_STJhwy7U.js +1 -0
- package/dist/public/assets/_TrcWRD8T.js +15 -0
- package/dist/public/assets/_TrcWRD8T.js.br +0 -0
- package/dist/public/assets/{_CAkPJLeF.js → _UaKPY71M.js} +1 -1
- package/dist/public/assets/_UaKPY71M.js.br +0 -0
- package/dist/public/assets/_UhK3lkm0.js +1 -0
- package/dist/public/assets/_VPLoEBTS.js +1 -0
- package/dist/public/assets/_Zeftz3t1.js +1 -0
- package/dist/public/assets/{_Bhx319Hi.js → __cyRVmTO.js} +1 -1
- package/dist/public/assets/__cyRVmTO.js.br +0 -0
- package/dist/public/assets/_awfYTHit.js +1 -0
- package/dist/public/assets/{_DcMIlvz-.js → _dsj7vMTW.js} +1 -1
- package/dist/public/assets/_dsj7vMTW.js.br +0 -0
- package/dist/public/assets/_eqpiOhSM.js +1 -0
- package/dist/public/assets/{_CZ_OWtIT.js → _iutZ4EDe.js} +1 -1
- package/dist/public/assets/_iutZ4EDe.js.br +0 -0
- package/dist/public/assets/{_BOGkzMx9.js → _kWQ0dtYZ.js} +1 -1
- package/dist/public/assets/_kWQ0dtYZ.js.br +0 -0
- package/dist/public/assets/_knvMqXQh.js +1 -0
- package/dist/public/assets/_lwC7sIgC.js +1 -0
- package/dist/public/assets/_m2tRa0jk.js +1 -0
- package/dist/public/assets/_m2tRa0jk.js.br +0 -0
- package/dist/public/assets/{_CIb7xw_1.js → _pXG8fRON.js} +1 -1
- package/dist/public/assets/_pXG8fRON.js.br +0 -0
- package/dist/public/assets/_r541ENtr.js +1 -0
- package/dist/public/assets/_rrUx1wn3.js +1 -0
- package/dist/public/assets/_tJvcu7sD.js +1 -0
- package/dist/public/assets/{_Bf8WYPfh.js → _vcLBrU2m.js} +1 -1
- package/dist/public/assets/_vcLBrU2m.js.br +0 -0
- package/dist/public/assets/_xZC4Vm70.js +1 -0
- package/dist/public/assets/_yAr5r-uL.js +1 -0
- package/dist/public/assets/{_DbvaGqOl.js → _yUmRJIJ6.js} +1 -1
- package/dist/public/assets/_yUmRJIJ6.js.br +0 -0
- package/dist/public/assets/app-shell-CVYlktwa.css +1 -0
- package/dist/public/assets/app-shell-CVYlktwa.css.br +0 -0
- package/dist/public/assets/files-view-CTadakLK.js +2 -0
- package/dist/public/assets/manage-workspace-HUAS6qjy.js +2 -0
- package/dist/public/assets/new-CirJkJFl.js +1 -0
- package/dist/public/assets/new-workspace-C3t1nA6z.js +2 -0
- package/dist/public/assets/review-view-DKPNtgmc.js +2 -0
- package/dist/public/assets/settings-CirJkJFl.js +1 -0
- package/dist/public/assets/settings-page-DH-9cN-8.js +2 -0
- package/dist/public/assets/styles-CIeNhVxC.css +1 -0
- package/dist/public/assets/styles-CIeNhVxC.css.br +0 -0
- package/dist/public/assets/w-CirJkJFl.js +1 -0
- package/dist/public/assets/w._-BnShhzdq.js +1 -0
- package/dist/public/assets/w._-CirJkJFl.js +1 -0
- package/dist/public/assets/w._-aCTYfruH.js +1 -0
- package/lib/setup/doctor.d.mts +12 -1
- package/lib/setup/doctor.mjs +54 -9
- package/lib/setup/tailscale.d.mts +53 -0
- package/lib/setup/tailscale.mjs +179 -0
- package/package.json +1 -1
- package/dist/_CkwTsHKB.js +0 -2
- package/dist/public/assets/_1RHVsAcK.js +0 -1
- package/dist/public/assets/_4CShjaLP.js +0 -1
- package/dist/public/assets/_68JtNDO1.js +0 -1
- package/dist/public/assets/_8G2Mv7jG.js.br +0 -0
- package/dist/public/assets/_8dvK2NDJ.js.br +0 -0
- package/dist/public/assets/_94L2SIJF.js +0 -1
- package/dist/public/assets/_9AnDb3YH.js +0 -1
- package/dist/public/assets/_9kX9D09B.js.br +0 -0
- package/dist/public/assets/_9lErVegn.js +0 -1
- package/dist/public/assets/_B0oyGUU5.js +0 -1
- package/dist/public/assets/_B0oyGUU5.js.br +0 -0
- package/dist/public/assets/_B1mPnLlp.js +0 -1
- package/dist/public/assets/_B4fi2SSA.js +0 -1
- package/dist/public/assets/_B7Qx25UP.js +0 -1
- package/dist/public/assets/_B7b8EVjA.js +0 -1
- package/dist/public/assets/_BBWaxDkO.js.br +0 -0
- package/dist/public/assets/_BDa-iwuj.js.br +0 -0
- package/dist/public/assets/_BEKHKNmM.js +0 -1
- package/dist/public/assets/_BE_Jyvqd.js.br +0 -0
- package/dist/public/assets/_BFU-kJkk.js +0 -1
- package/dist/public/assets/_BIJ2O2oU.js +0 -1
- package/dist/public/assets/_BJ59XAZ9.js +0 -1
- package/dist/public/assets/_BKqRYfOI.js +0 -15
- package/dist/public/assets/_BKqRYfOI.js.br +0 -0
- package/dist/public/assets/_BKr9Dzz1.js +0 -1
- package/dist/public/assets/_BN7xvxS_.js +0 -1
- package/dist/public/assets/_BNQTVBlH.js +0 -1
- package/dist/public/assets/_BNW5Jiec.js.br +0 -0
- package/dist/public/assets/_BOGkzMx9.js.br +0 -0
- package/dist/public/assets/_BUEpqQ_m.js +0 -1
- package/dist/public/assets/_BUvqweu0.js.br +0 -0
- package/dist/public/assets/_BZKB4fhr.js.br +0 -0
- package/dist/public/assets/_BZo9BjDF.js +0 -1
- package/dist/public/assets/_BbbOvNRH.js.br +0 -0
- package/dist/public/assets/_BdUNnSlC.js +0 -1
- package/dist/public/assets/_Bf8WYPfh.js.br +0 -0
- package/dist/public/assets/_Bhx319Hi.js.br +0 -0
- package/dist/public/assets/_Bm4SHrNp.js.br +0 -0
- package/dist/public/assets/_Bmrqq8Ro.js +0 -2
- package/dist/public/assets/_Bmrqq8Ro.js.br +0 -0
- package/dist/public/assets/_BnHZ6Npj.js +0 -1
- package/dist/public/assets/_BoDxRJLS.js +0 -1
- package/dist/public/assets/_BoDxRJLS.js.br +0 -0
- package/dist/public/assets/_Bo_Ru664.js +0 -1
- package/dist/public/assets/_Bp8-V8yl.js.br +0 -0
- package/dist/public/assets/_BpoeUr5j.js.br +0 -0
- package/dist/public/assets/_Bq2G_Tid.js +0 -1
- package/dist/public/assets/_BsyoLB_D.js +0 -1
- package/dist/public/assets/_Bv3e3rg8.js.br +0 -0
- package/dist/public/assets/_BvXp6HpX.js.br +0 -0
- package/dist/public/assets/_BwP07uVS.js.br +0 -0
- package/dist/public/assets/_Bx1CW-sF.js.br +0 -0
- package/dist/public/assets/_BywcP-As.js.br +0 -0
- package/dist/public/assets/_Bzgtwt3G.js +0 -1
- package/dist/public/assets/_Bzgtwt3G.js.br +0 -0
- package/dist/public/assets/_C0_s45qg.js.br +0 -0
- package/dist/public/assets/_C0ePgF6b.js +0 -1
- package/dist/public/assets/_C0oVtTqO.js +0 -1
- package/dist/public/assets/_C0oVtTqO.js.br +0 -0
- package/dist/public/assets/_C654p96Z.js.br +0 -0
- package/dist/public/assets/_C8_1Y2-z.js +0 -1
- package/dist/public/assets/_C8_1Y2-z.js.br +0 -0
- package/dist/public/assets/_C8v1AZFP.js +0 -1
- package/dist/public/assets/_CAkPJLeF.js.br +0 -0
- package/dist/public/assets/_CB0D5cRH.js +0 -1
- package/dist/public/assets/_CD05JUTh.js +0 -1
- package/dist/public/assets/_CEJUcePr.js.br +0 -0
- package/dist/public/assets/_CEXHZd73.js.br +0 -0
- package/dist/public/assets/_CHcUMVR7.js +0 -1
- package/dist/public/assets/_CHuLFr1f.js.br +0 -0
- package/dist/public/assets/_CIb7xw_1.js.br +0 -0
- package/dist/public/assets/_CMSBfO6u.js.br +0 -0
- package/dist/public/assets/_CN7GPyBo.js +0 -1
- package/dist/public/assets/_COcePo2y.js.br +0 -0
- package/dist/public/assets/_CTINBWaG.js.br +0 -0
- package/dist/public/assets/_CTWrnAbz.js +0 -1
- package/dist/public/assets/_CUXajOKj.js.br +0 -0
- package/dist/public/assets/_CVru3vzC.js +0 -1
- package/dist/public/assets/_CYjE__ml.js.br +0 -0
- package/dist/public/assets/_CZ_OWtIT.js.br +0 -0
- package/dist/public/assets/_C_37_B6u.js.br +0 -0
- package/dist/public/assets/_C_CIQL7J.js +0 -1
- package/dist/public/assets/_C_CIQL7J.js.br +0 -0
- package/dist/public/assets/_C_WdpYbK.js +0 -1
- package/dist/public/assets/_CaiH3VN9.js +0 -1
- package/dist/public/assets/_CamWDaoG.js.br +0 -0
- package/dist/public/assets/_CdDElA0V.js +0 -1
- package/dist/public/assets/_CfnsClzZ.js +0 -1
- package/dist/public/assets/_Cgo1fRhJ.js +0 -1
- package/dist/public/assets/_Cgo1fRhJ.js.br +0 -0
- package/dist/public/assets/_CjhGrlf3.js +0 -1
- package/dist/public/assets/_CjlbL4C_.js +0 -1
- package/dist/public/assets/_CjogTUXK.js +0 -1
- package/dist/public/assets/_ClldMY37.js.br +0 -0
- package/dist/public/assets/_CmFq6Gtp.js +0 -1
- package/dist/public/assets/_CoAPOKiP.js +0 -1
- package/dist/public/assets/_CoUUgh9P.js +0 -1
- package/dist/public/assets/_CpjSCB1I.js.br +0 -0
- package/dist/public/assets/_Ct3RF80L.js.br +0 -0
- package/dist/public/assets/_CtYy5eZs.js +0 -1
- package/dist/public/assets/_CxAPL49a.js.br +0 -0
- package/dist/public/assets/_CyBCIknf.js.br +0 -0
- package/dist/public/assets/_Cz5BPBG8.js.br +0 -0
- package/dist/public/assets/_D-eEFXaI.js +0 -1
- package/dist/public/assets/_D0aoEFRx.js.br +0 -0
- package/dist/public/assets/_D1uRW1qz.js.br +0 -0
- package/dist/public/assets/_D2oIr2T2.js +0 -1
- package/dist/public/assets/_D2un443j.js.br +0 -0
- package/dist/public/assets/_D3MPx4-f.js +0 -1
- package/dist/public/assets/_D4q8XSMI.js.br +0 -0
- package/dist/public/assets/_D4quFMVQ.js.br +0 -0
- package/dist/public/assets/_D4rOX-Fa.js.br +0 -0
- package/dist/public/assets/_D5edrSyA.js +0 -1
- package/dist/public/assets/_D6kktUFn.js.br +0 -0
- package/dist/public/assets/_D80-qtVY.js +0 -1
- package/dist/public/assets/_D9-3EVA4.js +0 -1
- package/dist/public/assets/_D9sS4J_w.js.br +0 -0
- package/dist/public/assets/_DBLpxTDi.js +0 -1
- package/dist/public/assets/_DByHQ7nW.js +0 -1591
- package/dist/public/assets/_DByHQ7nW.js.br +0 -0
- package/dist/public/assets/_DC-78WeM.js.br +0 -0
- package/dist/public/assets/_DDl8KSWJ.js.br +0 -0
- package/dist/public/assets/_DFWOMF-B.js.br +0 -0
- package/dist/public/assets/_DKb-rt9n.js +0 -1
- package/dist/public/assets/_DMnSJCF_.js +0 -1
- package/dist/public/assets/_DOOIlrPh.js +0 -1
- package/dist/public/assets/_DPW-0yKP.js +0 -1
- package/dist/public/assets/_DR3BmvWU.js +0 -1
- package/dist/public/assets/_DSVLaMWS.js.br +0 -0
- package/dist/public/assets/_DYNGNKLk.js +0 -1
- package/dist/public/assets/_DZnEgCbj.js +0 -1
- package/dist/public/assets/_DaMVRI8f.js.br +0 -0
- package/dist/public/assets/_DbvaGqOl.js.br +0 -0
- package/dist/public/assets/_DcMIlvz-.js.br +0 -0
- package/dist/public/assets/_Dd6X3e7w.js.br +0 -0
- package/dist/public/assets/_De7P3jUH.js.br +0 -0
- package/dist/public/assets/_DeiFEAar.js +0 -1
- package/dist/public/assets/_DfI982PI.js.br +0 -0
- package/dist/public/assets/_DfZ6emcw.js +0 -1
- package/dist/public/assets/_Dj1lZ1pa.js +0 -86
- package/dist/public/assets/_Dj1lZ1pa.js.br +0 -0
- package/dist/public/assets/_DkCaEf_h.js.br +0 -0
- package/dist/public/assets/_DonAis0J.js +0 -1
- package/dist/public/assets/_Dp3IZdH8.js.br +0 -0
- package/dist/public/assets/_DqYih4xk.js +0 -1
- package/dist/public/assets/_DqYih4xk.js.br +0 -0
- package/dist/public/assets/_DqhphdU4.js.br +0 -0
- package/dist/public/assets/_DrIgZJzN.js.br +0 -0
- package/dist/public/assets/_Dt4hHR05.js +0 -1
- package/dist/public/assets/_DtTbTraA.js +0 -1
- package/dist/public/assets/_DwMxAJKP.js +0 -1
- package/dist/public/assets/_DxEm-Gwj.js.br +0 -0
- package/dist/public/assets/_Dytf99zx.js.br +0 -0
- package/dist/public/assets/_EAgv5jR9.js +0 -1
- package/dist/public/assets/_Iecpd0kS.js +0 -1
- package/dist/public/assets/_Iecpd0kS.js.br +0 -0
- package/dist/public/assets/_MCwIJAuJ.js.br +0 -0
- package/dist/public/assets/_NM79Lu3L.js +0 -6
- package/dist/public/assets/_NM79Lu3L.js.br +0 -0
- package/dist/public/assets/_QpNKKuS9.js +0 -1
- package/dist/public/assets/_SGDxiwE1.js.br +0 -0
- package/dist/public/assets/_TA8pE7z9.js +0 -1
- package/dist/public/assets/_bE4sNDeU.js +0 -1
- package/dist/public/assets/_bcsuBP7T.js.br +0 -0
- package/dist/public/assets/_cdcAU4yY.js +0 -1
- package/dist/public/assets/_ch_yXAap.js.br +0 -0
- package/dist/public/assets/_d5u7EI97.js.br +0 -0
- package/dist/public/assets/_eoa1EOU-.js.br +0 -0
- package/dist/public/assets/_j2tDSMvo.js.br +0 -0
- package/dist/public/assets/_jNhIFgbc.js +0 -1
- package/dist/public/assets/_kDYiTaag.js +0 -1
- package/dist/public/assets/_lNMVVbUx.js +0 -1
- package/dist/public/assets/_nwJ7Hu3S.js +0 -1
- package/dist/public/assets/_tmDtUACa.js +0 -1
- package/dist/public/assets/_tmDtUACa.js.br +0 -0
- package/dist/public/assets/_wXDh-Z2N.js.br +0 -0
- package/dist/public/assets/_wcshV0sZ.js.br +0 -0
- package/dist/public/assets/_x-NwqgCn.js +0 -1
- package/dist/public/assets/_xyw_DS5P.js.br +0 -0
- package/dist/public/assets/_zSAfqXcm.js.br +0 -0
- package/dist/public/assets/app-shell-ChQoVC5b.css +0 -1
- package/dist/public/assets/app-shell-ChQoVC5b.css.br +0 -0
- package/dist/public/assets/files-view-CLtLp_BW.js +0 -2
- package/dist/public/assets/files-view-CNHQapdI.css +0 -1
- package/dist/public/assets/files-view-CNHQapdI.css.br +0 -0
- package/dist/public/assets/group.css.ts-BG82htKb.css +0 -1
- package/dist/public/assets/group.css.ts-BG82htKb.css.br +0 -0
- package/dist/public/assets/icon-folder-DJOHuEpD.css +0 -1
- package/dist/public/assets/icon-folder-DJOHuEpD.css.br +0 -0
- package/dist/public/assets/icon-search-DsJuFXUJ.css +0 -1
- package/dist/public/assets/icon-search-DsJuFXUJ.css.br +0 -0
- package/dist/public/assets/manage-workspace-NBcFDyrB.js +0 -2
- package/dist/public/assets/manage-workspace-f_Np32TD.css +0 -1
- package/dist/public/assets/modal-view-KVNBpNYi.css +0 -1
- package/dist/public/assets/modal-view-KVNBpNYi.css.br +0 -0
- package/dist/public/assets/new-DHI77GvL.js +0 -1
- package/dist/public/assets/new-workspace-BFE-HpD_.css +0 -1
- package/dist/public/assets/new-workspace-BFE-HpD_.css.br +0 -0
- package/dist/public/assets/new-workspace-BRzimdd5.js +0 -2
- package/dist/public/assets/port-chip-CUUIDOVM.css +0 -1
- package/dist/public/assets/port-chip-CUUIDOVM.css.br +0 -0
- package/dist/public/assets/prompt-dialog-BGs6RXOV.css +0 -1
- package/dist/public/assets/prompt-dialog-BGs6RXOV.css.br +0 -0
- package/dist/public/assets/quick-open-Gx4so1bl.css +0 -1
- package/dist/public/assets/quick-open-Gx4so1bl.css.br +0 -0
- package/dist/public/assets/repo-picker-CUhd0vJN.css +0 -1
- package/dist/public/assets/repo-picker-CUhd0vJN.css.br +0 -4
- package/dist/public/assets/review-view-DFEK9VBa.js +0 -2
- package/dist/public/assets/review-view-deUY3OE5.css +0 -1
- package/dist/public/assets/review-view-deUY3OE5.css.br +0 -0
- package/dist/public/assets/section-CziSOSBR.css +0 -1
- package/dist/public/assets/section-CziSOSBR.css.br +0 -0
- package/dist/public/assets/settings-DHI77GvL.js +0 -1
- package/dist/public/assets/settings-page-OOtPOzIn.js +0 -2
- package/dist/public/assets/settings-page-wZhd7FLi.css +0 -1
- package/dist/public/assets/settings-page-wZhd7FLi.css.br +0 -0
- package/dist/public/assets/skill-row-BoCyFIXg.css +0 -1
- package/dist/public/assets/sso-auth-DV76tTpE.css +0 -1
- package/dist/public/assets/sso-auth-DV76tTpE.css.br +0 -0
- package/dist/public/assets/w-DHI77GvL.js +0 -1
- package/dist/public/assets/w._-DHI77GvL.js +0 -1
- package/dist/public/assets/w._-DsTgq3-C.js +0 -1
- package/dist/public/assets/w._-igEOSPR-.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}}._bF{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}._bG{top:calc(env(safe-area-inset-top) + .65rem);z-index:40;width:min(24rem,100vw - 2rem);position:fixed;right:1rem}._bH{width:100%;box-shadow:none;margin-bottom:.65rem;position:relative}._bI._bI{z-index:1;position:sticky;top:.35rem;box-shadow:0 4px 16px #0000002e,0 0 0 1px #0000000f}._bJ{border-color:color-mix(in srgb, var(--danger) 45%, var(--border));background:color-mix(in srgb, var(--danger) 8%, var(--panel))}._bK{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))}._bL{border-color:color-mix(in srgb, var(--accent) 35%, var(--border));background:color-mix(in srgb, var(--accent) 10%, var(--panel))}._bM{color:var(--danger);font-weight:600}._bN{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);font-weight:600}._bO{color:var(--accent-text);font-weight:600}._bP{flex-wrap:wrap;flex:1;align-items:baseline;gap:.25rem .5rem;min-width:0;display:flex}._bQ{flex:12rem;min-width:0}._bQ:empty{display:none}._bR{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;margin-left:auto;display:flex}._bT{color:var(--dim);margin-block:-.35rem}._bT:hover{color:var(--text)}@media screen and (width<=899px){._bG{width:min(28rem,100vw - 2rem);left:50%;right:auto;translate:-50%}._bS{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)}}._bU{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}._bW{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}._bX{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}._bX._bV{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._bY{width:2.15rem;height:2.15rem;color:var(--dim);position:relative}._bY._bV{color:var(--text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._bZ{flex:1}._b0{position:absolute;top:5px;right:5px}@media screen and (width<=899px){._bU{display:none}}@media (hover:hover){._bX:not(._bV):hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}}._dE{width:2.15rem;height:2.15rem;color:var(--dim)}._dE._dD{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._dF{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}._dG{pointer-events:auto}._i_{flex-shrink:0;display:block}._ja{fill:none;stroke:color-mix(in srgb, currentColor 18%, transparent)}._jb{fill:none;stroke:currentColor;stroke-linecap:round}._jg{grid-template-columns:7.5rem minmax(0,1fr);align-items:start;gap:.35rem .85rem;display:grid}._ji._jg{grid-template-columns:minmax(0,1fr)}._jj{flex-direction:column;gap:.15rem;min-width:0;padding-top:.15rem;display:flex}._jk{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}._jl{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);white-space:nowrap;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._jm{flex-direction:column;gap:.35rem;min-width:0;display:flex}._jn{margin:0}._jo{color:var(--text);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em}._jp{grid-template-columns:2.6rem 1fr 3.1rem 3rem;align-items:center;gap:.5rem;min-height:1.35rem;display:grid}._jq{color:var(--dim);font-size:.72rem;font-weight:600}._jr{background:color-mix(in srgb, currentColor 10%, transparent);border-radius:999px;height:7px;overflow:hidden}._js{border-radius:999px;height:100%;display:block}._jt{font-variant-numeric:tabular-nums;text-align:right;font-size:.78rem;font-weight:600}._ju{color:var(--dim);white-space:nowrap;font-variant-numeric:tabular-nums;align-items:center;gap:.3em;font-size:.72rem;display:inline-flex}._jv{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){._jp{grid-template-columns:2.4rem 1fr 3rem}._ju{display:none}}@media screen and (width<=899px){._jg{grid-template-columns:1fr;gap:.5rem}._jk{font-size:.78rem}._jm{gap:.5rem}._jp{grid-template-columns:2.6rem 1fr 3.2rem 3rem;gap:.5rem;min-height:1.6rem}._jq{font-size:.78rem}._jr{height:8px}._jt{font-size:.85rem}._ju{font-size:.78rem}._jv{font-size:1rem}}._b9{position:relative}._b_{background:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._cb{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}._cc._cc{border-top:1px solid var(--border);flex-shrink:0;max-height:40%;margin:0;padding:0;overflow-y:auto}._cd{color:var(--accent-text)}._cf{flex-direction:column;flex:1;gap:.15rem;min-height:0;padding:.5rem .35rem;display:flex;overflow-y:auto}@media screen and (width<=899px){._cb{background:var(--bg,var(--panel));border-right:none;flex:1;width:100%;min-height:0;font-size:1rem;display:none}._cb._ca{display:flex;overflow:hidden}._cf{-webkit-overflow-scrolling:touch;flex-direction:column;gap:.5rem;padding:.5rem .85rem 1rem;display:flex;overflow-y:auto}._cb._ca ._cf{gap:0}}._ch{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}._ci{flex-direction:column;flex:1;min-height:0;display:flex}._cj{background:color-mix(in srgb, var(--panel) 94%, var(--text));border-bottom:1px solid var(--border);flex-shrink:0}._ck{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}._cl{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._cm{color:var(--dim)}._cn{padding:0 .65rem .5rem .5rem;font-size:.78rem}._cn:not(:has(>*)){display:none}._co{--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}._co>file-tree-container{color-scheme:inherit}._cq{cursor:col-resize;touch-action:none;z-index:1;width:6px;position:absolute;top:0;bottom:0;right:-3px}._cq:after{content:"";background:0 0;width:2px;transition:background .12s;position:absolute;top:0;bottom:0;left:2px}._cq:hover:after,._cq._cp:after{background:var(--accent)}@media screen and (width>=900px){._ch{display:flex}._ch._cg{display:none}}@media screen and (width<=899px){._ch{display:none}}._b7{min-width:8rem;color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._b7:popover-open{display:flex}._b8{flex:none;gap:.5rem;padding:.5rem .65rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._dh{background:var(--bg,var(--panel));min-width:0;min-height:0;color:inherit;flex-direction:column;flex:1;display:flex}._di{border-bottom:1px solid color-mix(in srgb, var(--border) 88%, transparent);flex-shrink:0;min-width:0;padding:.65rem;display:flex}._dj{width:100%;min-width:0;max-width:var(--page-col,48rem);align-items:center;gap:.5rem;display:flex}._dk{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}._dk:hover:not(:disabled){color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._dk:disabled{opacity:.5}._dm{letter-spacing:-.01em;white-space:nowrap;flex-shrink:0;margin:0;font-size:1rem;font-weight:600;line-height:2.15rem}._dn{min-width:0;color:var(--dim);flex:auto;align-items:center;gap:.35rem;font-size:.85rem;line-height:1.35;display:flex;overflow:hidden}._do{flex-shrink:0;align-items:center;gap:.35rem;margin-left:auto;display:flex}._dp{scrollbar-gutter:stable;flex:1;min-height:0;padding:.85rem .65rem 2rem;overflow-y:auto}._dq{flex-direction:column;gap:1.35rem;width:100%;max-width:48rem;display:flex}@media screen and (width>=1440px){._di,._dp{padding-inline:1.35rem}}@media screen and (width<=899px){._di{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))}._dj{max-width:none}._dk{width:2.35rem;height:2.35rem;padding:0}._dl{display:none}._dm{font-size:1.1rem;line-height:2.35rem}._dp{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))}._dq{gap:1rem;max-width:none}}._iS{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}._iU{border-radius:var(--radius);flex-direction:column;flex-shrink:0;display:flex}._iU._iT{background:color-mix(in srgb, var(--accent) 10%, transparent)}._iV{align-items:center;min-width:0;display:flex}._iW{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}._iW:active{background:color-mix(in srgb, currentColor 6%, transparent)}._iX{width:16px;color:var(--dim);flex-shrink:0;justify-content:center;display:inline-flex}._iY{text-overflow:ellipsis;white-space:nowrap;flex:0 auto;min-width:0;overflow:hidden}._iZ{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}._i0{color:var(--dim);flex-shrink:0}._i1{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._i2{margin-top:-.25rem;padding-bottom:.35rem;padding-left:calc(1rem + 16px)}._i2:not(:has(*)){display:none}._i3{border-left:1px solid var(--border);flex-direction:column;gap:1px;margin:0 .25rem .25rem calc(.5rem + 8px);padding-left:.25rem;display:flex}._i4{width:min(24rem,100vw - 1rem);color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._i4:popover-open{display:flex}._fc{border-radius:var(--radius);cursor:pointer;flex-shrink:0}._fc:hover,._fc:focus-within{background:color-mix(in srgb, currentColor 6%, transparent)}._fc._fa{background:color-mix(in srgb, var(--accent) 10%, transparent)}._fd{border-radius:var(--radius);align-items:center;display:flex;position:relative}._fe{min-height:1.8rem;padding:0 .35rem;font-weight:500}._fe:hover{background:0 0}._ff{--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}._fc:hover ._ff,._fc:focus-within ._ff{--ws-actions-bg:color-mix(in srgb, var(--text) 6%, var(--panel))}._fc._fa ._ff{--ws-actions-bg:color-mix(in srgb, var(--accent) 10%, var(--panel))}._fc:hover ._ff,._fc:focus-within ._ff,._ff:has(._t,[aria-busy=true]){opacity:1;pointer-events:auto}._fg{color:var(--dim);line-height:1}._ff ._fg{color:var(--dim);background:0 0}._ff ._fg:hover{color:var(--text);background:color-mix(in srgb, var(--text) 10%, var(--ws-actions-bg))}._fh{flex-shrink:0;width:12px;display:inline-flex}._fi{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}._fj{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._fk{cursor:default}._fk:hover{background:0 0}._fl{flex-shrink:0;margin-top:.15rem}._fm{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a);flex-shrink:0;margin-top:.15rem}._fn,._fc:hover ._fn,._fc:focus-within ._fn{--ws-actions-bg:var(--panel)}._fo{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;font-size:.78rem;line-height:1.2;overflow:hidden}._fp{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] ._fp{display:none}._fq{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] ._fq{display:inline-block}._fq:before{content:"Ctrl "}html[data-mac] ._fq:before{content:"⌘"}._fr{margin-left:-.15rem}._fr:not(:has(*)){display:none}@media screen and (width<=899px){._fb{border-radius:0;margin:0;padding:.35rem .5rem}._fb ._fe{border-radius:0;align-items:flex-start;gap:.5rem;min-height:2.4rem;padding:0;font-size:1rem}._fb ._fh{width:16px}._fb ._fj{font-size:1rem;font-weight:500}._fb ._fn{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}._fb ._fo{font-size:.85rem}}@media (hover:hover){._ff{pointer-events:auto}}@media (pointer:coarse){._fc:has([aria-current=true]) ._ff{opacity:1;pointer-events:auto}}._kG{--chip-split:color-mix(in srgb, currentColor 18%, transparent);align-items:stretch;gap:0;padding:0;overflow:hidden}._kH{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}._kH:first-child{padding-left:.55em;padding-right:.45em}._kH+._kH{border-left-color:var(--chip-split);padding-left:.35em;padding-right:.35em}._kH:last-child{padding-right:.45em}._kH:first-child:hover{background:color-mix(in srgb, currentColor 10%, transparent)}a._kH:first-child:hover{color:var(--lightningcss-light,#116329)var(--lightningcss-dark,#7ee787)}._kI:hover{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._kJ:hover{color:var(--danger);background:color-mix(in srgb, var(--danger) 10%, transparent)}._kJ._kJ._t,._kJ._kJ._t:hover{color:#fff;background:var(--danger)}@media screen and (width<=899px){._kH{padding-top:.28em;padding-bottom:.28em}._kH:first-child{padding-left:.65em}._kH:last-child{padding-right:.55em}}._kK{z-index:1;cursor:default;flex-wrap:wrap;gap:.25rem;padding:0 .15rem .35rem .5rem;display:flex;position:relative}._kL{border-bottom:1px solid var(--border);margin-bottom:.25rem;padding:.25rem .25rem .5rem}._kN{color:var(--text)}._kN:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._kO{background:currentColor;border-radius:50%;width:6px;height:6px}._kP{margin-left:.15rem}a._kQ:first-child:hover{color:inherit;background:color-mix(in srgb, currentColor 10%, transparent)}._kR{font-variant-numeric:tabular-nums;gap:.25em}._kS{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}._kS:popover-open{display:flex}._kT{color:var(--dim);padding:.25rem .35rem;font-size:.78rem}._kU{color:var(--text);margin-right:.25rem;font-weight:600}._kV{border-radius:4px;align-items:center;gap:.35rem;min-width:0;padding:.25rem .35rem;font-size:.85rem;display:flex}._kW{background:color-mix(in srgb, currentColor 6%, transparent)}._kX{min-width:1ch;color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0;font-size:.78rem}._kY{font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:600}._kY:hover{text-decoration:underline}._kZ{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._k0{color:var(--dim);flex-shrink:0}@media screen and (width<=899px){._kK{gap:.35rem;padding:0 .5rem .5rem}._kL{padding:.25rem .25rem .5rem}}._m6{--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)}._m7{color:var(--dim);cursor:not-allowed}a._m8:first-child:hover,a._m8:hover{color:inherit;background:color-mix(in srgb, var(--accent) 22%, transparent)}._j6{--row-bg:var(--row-base,var(--panel));border-radius:var(--radius);align-items:center;min-width:0;display:flex;position:relative}._j6._j4{--row-bg:color-mix(in srgb, var(--accent) 10%, var(--row-base,var(--panel)));background:color-mix(in srgb, var(--accent) 10%, transparent)}._j6:not(._j4):hover{--row-bg:color-mix(in srgb, var(--text) 6%, var(--row-base,var(--panel)));background:color-mix(in srgb, currentColor 6%, transparent)}._j7{gap:.5rem;min-height:2.85rem;padding:0 .65rem}._j7:hover{background:0 0}._j5 ._j7{gap:.35rem;min-height:1.65rem;padding:0 .35rem}._j8{flex-direction:column;flex:1;gap:.15rem;min-width:0;display:flex}._j5 ._j8{flex-direction:row;align-items:baseline;gap:.35rem}._j9{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:500;overflow:hidden}._j5 ._j9{font-weight:400}._j_{flex-shrink:0;align-self:stretch;align-items:stretch;display:flex}._j5 ._j_{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}._j5:hover ._j_,._j5:focus-within ._j_,._j5 ._j_:has(._t){opacity:1;pointer-events:auto}._ka{width:2.6rem;height:auto}._j5 ._ka{width:1.6rem;height:1.6rem}._ka._t,._j5 ._ka._t{width:auto}._kb{margin-left:.65rem}._j5 ._kb{margin-left:.35rem}._kc{margin:.25rem .35rem}._j5 ._kc._kc{align-self:stretch;height:1.65rem;min-height:0;margin:0 .15rem 0 calc(.1rem - 1px);padding:0 .25rem}@media (hover:hover){._j5 ._j_{pointer-events:auto}}._c3{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}._c4{flex-direction:column;gap:.5rem;min-width:0;display:flex}._c5{align-items:center;gap:.5rem;min-height:1.85rem;padding:0 .15rem;display:flex}._c7{flex-direction:column;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}._c9{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}._c9._c8{color:var(--dim)}._c_{text-align:left;min-width:0;color:inherit;flex-direction:column;flex:1;gap:.15rem;text-decoration:none;display:flex}._da{overflow-wrap:anywhere;font-size:1rem;font-weight:600;line-height:1.2}._db{flex-wrap:wrap;align-items:center;gap:.25rem .5rem;min-width:0;display:flex}._dc{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;max-width:100%;font-size:.78rem;overflow:hidden}._dd{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}._dd:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._de{color:var(--dim);margin:0;padding:.35rem .15rem;font-size:.85rem}._df{color:var(--dim);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;padding:2rem;display:flex}._dg{text-transform:uppercase;letter-spacing:.07em;color:var(--dim);margin:0;font-size:.72rem;font-weight:600}@media screen and (width<=899px){._c5{min-height:2.35rem}._c9{border-radius:calc(var(--radius) + 4px);gap:.65rem;padding:.85rem}._da{font-size:1rem}._dc{white-space:normal;text-overflow:unset;overflow-wrap:anywhere;font-size:.85rem;overflow:visible}._dd{min-width:2.35rem;min-height:2.35rem;font-size:1.1rem}._de{font-size:1rem}}._dH{flex-direction:column;align-items:stretch;gap:0;padding:0;overflow:hidden}._dH:has([data-add-pop]:not([hidden])){overflow:visible}._dI{flex-direction:column;gap:.65rem;padding:.65rem;display:flex}._dI+._dI{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._dJ{color:var(--dim);flex-shrink:0;transition:transform .12s}._dK{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._dL{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}._dL:first-child{border-top:none}._dN{min-height:2.15rem;padding:.15rem .35rem .15rem .65rem}._dP{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}._dP:first-child{border-top:none}._dR{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:center;min-height:2.15rem;padding:0;display:flex}._dR:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit;border-top:none}._dR:last-child{border-bottom-left-radius:inherit;border-bottom-right-radius:inherit}._dO>._dR{grid-column:1/-1}._dS{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}._dS:first-child{border-top:none}._dO>._dS{grid-column:1/-1}._dT{font-variant-numeric:tabular-nums;font-weight:400}._dU{transition:opacity .12s}._dV{white-space:nowrap;text-overflow:ellipsis;font-weight:600;overflow:hidden}._dW{min-width:0;color:var(--dim);white-space:nowrap;text-overflow:ellipsis;align-items:center;gap:.35rem;font-size:.78rem;display:flex;overflow:hidden}._dX{justify-self:end;align-items:center;gap:.35rem;display:inline-flex}._dY{color:var(--dim)}._d0{background:0 0;border-radius:4px;flex:none;align-items:center;gap:.15rem;max-width:10rem;padding:.15rem .25rem;display:inline-flex}._d0:hover,._d0._dZ{color:inherit;background:color-mix(in srgb, currentColor 10%, transparent)}._d1._dZ{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}@media screen and (width>=900px){._dO{grid-template-columns:fit-content(16rem) minmax(0,1fr) auto;display:grid}._dO>._dP{grid-column:1/-1;grid-template-columns:subgrid}._dO>._dQ{grid-template-columns:auto minmax(0,1fr)}._dR{background:var(--bg);box-shadow:inset 0 0 0 1px var(--field-border);transition:box-shadow .12s}._dR:hover{box-shadow:inset 0 0 0 1px var(--dim)}._dR:has(input:focus){box-shadow:inset 0 0 0 1px var(--accent)}}@media screen and (width<=899px){._dI{padding:.65rem .85rem}._dL{min-height:2.85rem}._dN{min-height:2.35rem;padding:.25rem .35rem .25rem .65rem}._dP{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"lead end""meta meta";min-height:2.35rem;padding:.25rem .35rem .25rem .65rem}._dR{min-height:2.35rem}._dV{grid-area:lead}._dW{grid-area:meta}._dX{grid-area:end}._d0{min-height:1.75rem}}@media (hover:hover){._dU{opacity:0}li:hover ._dU,li:focus-within ._dU,._dU._t{opacity:1}}._d3{flex-direction:column;flex-shrink:0;margin-top:.5rem;display:flex}._d5{border-radius:var(--radius);text-align:left;align-items:center;gap:.35rem;min-height:1.8rem;padding:0 .35rem;display:flex}._d2 ._d5{min-height:2.85rem;padding:0 .5rem}._d4 ._d5{border-radius:0;flex-shrink:0;height:2.4rem;padding:0 .5rem 0 .85rem}._d6{width:12px}._d7{place-items:center;width:1.85rem;height:1.85rem;display:inline-grid}._d8{transform:rotate(90deg)}._d_{letter-spacing:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-weight:400}._ea{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}._d4 ._ea{padding:0 .35rem .5rem}._eb{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}._d2 ._eb{min-height:2.85rem;padding:0 .5rem 0 calc(1rem + 16px);font-size:1rem}._ec{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._ed{opacity:0;pointer-events:none;flex-shrink:0;align-items:center;gap:.15rem;transition:opacity .12s;display:flex}._eb:hover ._ed,._eb:focus-within ._ed,._ed:has(._t,[aria-busy=true]){opacity:1;pointer-events:auto}._ee{color:var(--dim);background:0 0}@media (hover:hover){._d5:hover{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._eb:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._ed{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){._ed{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}}@media screen and (width<=899px){._ed{opacity:1;pointer-events:auto;box-shadow:none;background:0 0;position:static}}._jw{text-overflow:ellipsis;white-space:nowrap;padding:.35rem .25rem .25rem .65rem;font-size:1rem;font-weight:600;overflow:hidden}._jx{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}._jy{flex-direction:column;display:flex}._jz{min-height:2.85rem;color:inherit;flex:none;gap:.5rem;padding:0 .65rem;font-size:1rem}._jz:hover{background:0 0}._jz:active{background:color-mix(in srgb, currentColor 6%, transparent)}._jz:disabled{opacity:1}._jA{color:var(--danger)}._jB{font-weight:600}._jB._jB,._jB._jB:hover,._jB._jB:active{color:#fff;background:var(--danger)}._iM{border-top:1px solid var(--border);flex-direction:column;flex-shrink:0;max-height:40%;display:flex}._iN{flex-shrink:0;align-items:center;gap:.35rem;height:2.4rem;padding:0 .5rem 0 .85rem;display:flex}._iO{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.72rem}._iP{flex-direction:column;gap:1px;min-height:0;padding:0 .35rem .5rem;display:flex;overflow-y:auto}._iQ{flex-direction:row;align-items:center;gap:.25rem;padding:.35rem .5rem .35rem .35rem;overflow-y:visible}._iR{flex:1}._cX{content-visibility:hidden}._cY{flex-direction:row;flex:1;min-width:0;height:100%;min-height:0;display:flex}._cZ{flex:1;grid-template:minmax(0,1fr)/minmax(0,1fr);min-width:0;min-height:0;display:grid;position:relative}._c0{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._c0[data-live]{visibility:visible}._c1{grid-template:minmax(0,1fr)/minmax(0,1fr);grid-area:1/1;min-height:0;display:grid}._c2{visibility:hidden;flex-direction:column;grid-area:1/1;min-width:0;min-height:0;display:flex}._c2[data-live]{visibility:visible}._b1{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}._b1::backdrop{background:#0006}._b1:not([open]){display:none}._b3{margin:0;font-size:1rem;font-weight:600}._b4{flex-direction:column;flex:1;gap:1rem;min-height:0;padding:1rem 1.35rem;display:flex;overflow-y:auto}._b5{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){._b1{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}._b2{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}._b4{padding-top:max(1rem, calc(env(safe-area-inset-top) + .5rem))}._b5{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))}}._nW{z-index:2;pointer-events:none;display:none;position:absolute;overflow:hidden}._nX{box-sizing:border-box;background:#ffb00059;outline:1px solid #c98400;position:absolute}._nY{background:#ffb0008c;outline:2px solid #ffb000}._nZ{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}._nZ:not(:popover-open){display:none}._n0{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}._n1{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 _e6{0%{opacity:0;translate:-50% .25rem}12%{opacity:1;translate:-50%}75%{opacity:1}to{opacity:0}}._e1{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}._e2{background:#000;flex:1;min-height:0;position:relative;overflow:hidden}._e3{z-index:10;background:#0009;flex-direction:column;justify-content:center;align-items:center;gap:.65rem;display:flex;position:absolute;inset:0}._e4{color:#fff;margin:0;font-size:.85rem}._e5{gap:.5rem;display:flex}._e7{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 _e6;position:absolute;bottom:1rem;left:50%;translate:-50%}._e8{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}._e9{width:min(20rem,100vw - 1.5rem)}._e_{text-align:center;color:var(--dim);margin:0}._e2 .xterm{height:100%;padding:.35rem 0 0 .5rem}._ef._ef{opacity:0;pointer-events:none;border:0;width:1px;height:1px;margin:0;padding:0;position:absolute;overflow:hidden}._eg{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}._eg:focus-within{border-color:var(--accent-text);box-shadow:0 0 0 3px color-mix(in srgb, var(--accent) 22%, transparent);outline:none}._eh{color:var(--dim);pointer-events:none;flex-shrink:0;display:inline-flex}._ei{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}._ei:focus,._ei:focus-visible{box-shadow:none;border-color:#0000;outline:none}._ej{width:100%;min-width:0;max-width:none;box-shadow:none;flex:none;margin-left:0;position:relative;top:auto;right:auto}._ej._eg{background:var(--panel);border-color:var(--border)}._ek{font-variant-numeric:tabular-nums;text-align:center;width:3.2rem;color:var(--dim);flex-shrink:0;font-size:.72rem}._el{display:contents}._em{flex-direction:column;gap:.25rem;min-width:0;display:flex}._en{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}._eo._eo{flex-direction:row;flex:auto;align-items:center;width:auto;min-width:0}._ep._ep{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}._eq{min-width:0}._er{width:2.15rem;height:2.15rem}@media screen and (width<=899px){._eg:not(._ef){flex:100%;width:100%;min-width:0;max-width:none;margin-left:0}._ei{min-width:0}._ek{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}}._es{position:relative}._et{min-width:9rem;max-width:calc(100vw - 1rem);color:inherit;flex-direction:column;margin:0;display:none;position:fixed;inset:auto}._et:popover-open{display:flex}._eu{display:contents}._ev{font-size:.72rem}._ew{border-top:1px solid var(--border);align-items:center;gap:.25rem;margin-top:.25rem;padding-top:.35rem;display:flex}._ex{align-items:center;gap:.25rem;min-width:0;display:flex}@media screen and (width<=899px){._ex{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)}}._i5{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}._i6{align-items:baseline;gap:.3em;display:inline-flex}._i8{font-weight:600}._i9{color:color-mix(in srgb, var(--dim) 60%, transparent);margin-right:.15em}._cr{flex-direction:column;width:min(38rem,100vw - 1.5rem);max-height:min(28rem,70dvh);display:flex;top:12dvh}._cs{border-bottom:1px solid var(--border);color:var(--dim);align-items:center;gap:.5rem;padding:0 .65rem;display:flex}._ct{min-width:0;height:2.75rem;color:var(--text);background:0 0;border:0;flex:1;padding:0;font-size:1rem}._ct:focus-visible{box-shadow:none;outline:none}._cu{margin-right:-.5rem;display:none}._cv{min-height:0;margin:0;padding:.25rem;list-style:none;overflow-y:auto}._cw{padding:.5rem .5rem .25rem}._cy{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}._cy._cx{background:color-mix(in srgb, currentColor 10%, transparent)}._cz{width:16px;color:var(--dim);flex-shrink:0;justify-content:center;display:inline-flex}._cA{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._cB{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}._cC{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}._cD{color:var(--dim);padding:.85rem .65rem;font-size:.85rem}@media screen and (width<=899px){._cr{top:calc(env(safe-area-inset-top) + .5rem);max-height:calc(var(--app-height,100dvh) - env(safe-area-inset-top) - 2rem)}}@media (pointer:coarse){._cu{display:inline-flex}._cy{min-height:2.85rem}._cC{display:none}}._b6{width:min(26rem,100vw - 1.5rem)}._no{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}._np{overflow-wrap:anywhere;min-height:0;padding:.35rem .65rem;overflow:auto}._nq{margin:.25rem -.65rem}._nq:first-child{margin-top:-.35rem}._nq:last-child{margin-bottom:-.35rem}._nr{margin:.35rem 0}._nr:first-child{margin-top:0}._nr:last-child{margin-bottom:0}._ns{font-weight:600}._nt{padding-left:1.35rem}._nu{border:0;border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);margin:.5rem -.65rem}._nv{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}._nw{vertical-align:text-bottom;height:1.1em}._nx{color:var(--accent-text);text-underline-offset:2px;overflow-wrap:anywhere;text-decoration:none}._nx:hover{text-decoration:underline}._ny{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}._nz{min-width:0;display:flex}._nA{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}._nA:hover{text-decoration:underline}._nB{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}._nC{color:var(--dim)}._nD{color:var(--dim);flex-shrink:0;font-size:.78rem}._nE{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;flex-shrink:0;min-height:0;display:flex}._nF{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}._nF:hover{color:var(--text)}._nF::-webkit-details-marker{display:none}._nG{flex-shrink:0;transition:transform .12s}._nE[open] ._nG{transform:rotate(90deg)}._nH{flex-direction:column;max-height:14rem;padding:0 .65rem .35rem;display:flex;overflow:auto}._nI{color:var(--dim);margin-top:.25rem;font-size:.78rem;font-weight:600}._nI:first-child{margin-top:0}._nJ{color:var(--text);margin-top:.25rem}._nK{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}._nK:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._nL{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}._nM{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}._nN{color:var(--dim);margin-top:.25rem;font-size:.78rem}._nO{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}._nP{flex-wrap:wrap;align-items:baseline;gap:0 .35rem;display:flex}._nQ{white-space:pre-wrap;overflow-wrap:anywhere}._nR{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._nS{color:var(--dim);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.35rem .65rem;display:flex}._nT{flex:14rem;min-width:0}._nU{gap:.35rem;margin-left:auto;display:flex}._nV{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);color:var(--dim);flex-shrink:0;padding:.25rem .65rem;font-size:.78rem}._kn{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}._ko{place-items:center end;display:inline-grid}._ko>*{grid-area:1/1}._kp{visibility:hidden}._kr{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}._ks{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}._ks:focus-visible{outline-offset:-3px;outline-color:currentColor}._ks:hover:not(:disabled){background:#0000001f}._ks:active:not(:disabled){background:#0003}._ks:disabled{cursor:default}._kt{flex-shrink:0}._ku{translate:0 .55px}._kv{text-overflow:ellipsis;white-space:nowrap;max-width:11rem;overflow:hidden}._kw{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}._kw:focus-visible{outline-offset:-3px;outline-color:currentColor}._kw: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}._kw:hover:not(:disabled){background:#0000001f}._kw:active:not(:disabled){background:#0003}._kw:disabled{cursor:default}._kx{min-width:13rem}._ky{color:var(--dim);padding:.35rem .65rem .25rem;font-size:.78rem;font-weight:600}._kz{flex:none;justify-content:flex-start;gap:.5rem;padding:.5rem .65rem;font-size:.85rem}._kA{width:1rem;color:var(--accent-text);flex-shrink:0;justify-content:center;display:inline-flex}._kB{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._kC{background:var(--border);height:1px;margin:.25rem 0}._kD{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}._kD: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}._kE{border-radius:0;justify-content:center;align-items:center;gap:.35rem;padding:.35rem .65rem;display:inline-flex}._kE:disabled{opacity:.45}._kE:focus-visible{outline-offset:-3px;outline-color:#fff}._kF{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}._kF:disabled{opacity:.45}._kF:focus-visible{outline:2px solid var(--accent-text);outline-offset:-2px;box-shadow:none}@media screen and (width>=900px){._kq,._kr{display:none}}@media screen and (width<=899px){._ks{padding:0 .5rem}._kw{width:1.6rem}}._kh{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}._ki{white-space:pre-wrap;overflow-wrap:anywhere;margin:0}._kj{resize:vertical;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif}._kk{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}._kl{font-size:.78rem}._km{border-radius:4px}@keyframes _fY{0%{opacity:0}to{opacity:1}}@keyframes _fZ{0%{transform:translate(-100%)}to{transform:translate(300%)}}._fU{flex-direction:column;gap:.5rem;margin-bottom:.65rem;padding-inline:.65rem;display:flex;position:relative}._fX{flex-shrink:0;align-items:center;min-width:0;margin-left:auto;display:flex}._f0{pointer-events:none;visibility:hidden;height:2px;position:absolute;bottom:-1px;left:0;right:0;overflow:hidden}._f1{visibility:visible;animation:.15s .3s both _fY}._f1:after{content:"";background:var(--accent-fill);width:33%;animation:1.1s ease-in-out infinite _fZ;position:absolute;inset:0}._f2{visibility:visible;pointer-events:auto;background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);overflow:visible}._f2:before{content:"";position:absolute;inset:-6px 0}@media screen and (width>=900px){._fU{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){._fU{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}._fV{flex:none;width:1.85rem;height:2.15rem}._fW{flex:100%;order:10;min-height:1.75rem}._f0{left:calc(var(--radius) + 2px);right:calc(var(--radius) + 2px);bottom:0}}@media (prefers-reduced-motion:reduce){._f1{background:var(--accent-fill)}._f1:after{animation:none;display:none}}@keyframes _gz{0%{opacity:0}to{opacity:1}}._f3{flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}._f5{flex-direction:column;flex:1;min-width:0;min-height:0;padding-top:.65rem;display:flex}._f6{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}._f8{flex:0 auto;align-items:center;gap:.35rem;min-width:8rem;display:flex}._f9{border-bottom:1px solid var(--border);align-items:center;gap:.35rem;min-width:0;padding:.25rem .65rem;display:flex}._f_{font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border:0;flex-shrink:0;gap:.25rem;font-size:.78rem}._f_:hover{background:color-mix(in srgb, currentColor 10%, transparent);color:var(--text)}._ga{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._gb{color:var(--danger)}._gd{color:var(--text);font-weight:600}._ge{flex:1}._gf{display:contents}._gj{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}._gk{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding-inline:.65rem;overflow:hidden auto}._gk[hidden]{display:none}._gl{flex-direction:column;flex:1;align-items:center;gap:.5rem;min-height:0;padding:.85rem;display:flex;overflow:auto}._gm{color:var(--dim);font-size:.78rem}._gn{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}._go{border:1px solid var(--border);background:var(--panel);flex:1;width:100%;min-height:30rem}._gp{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}._gq{text-align:left;flex-direction:column;gap:.15rem;width:min(28rem,100%);margin:0;padding:0;list-style:none;display:flex}._gr{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}._gr:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._gs{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dim);font-size:.78rem;overflow:hidden}._gt{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}._gu{color:var(--dim);justify-content:space-between;align-items:center;gap:.5rem;font-size:.78rem;font-weight:600;display:flex}._gv{flex-direction:column;gap:.25rem;display:flex}._gw{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}._gx{color:var(--text);background:color-mix(in srgb, var(--danger) 10%, transparent);display:block}._gy{opacity:.55;transition:opacity .12s .15s}._gA{pointer-events:none;justify-content:center;align-items:center;animation:.12s .15s both _gz;display:flex;position:absolute;inset:0}@media screen and (width>=900px){._f7{flex:1 1 0;min-width:10rem}._f8,._gc,._gh{display:none}}@media screen and (width<=899px){._f3{flex-direction:column}._f5{padding-top:0;padding-inline:max(.2rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-right))}._f4>._f5{flex:none}._f3:not(._f4) ._f7,._f4 ._f8,._f9{display:none}._f_{min-height:1.75rem}._gc{width:1.75rem;height:1.75rem;margin-left:-.65rem;margin-right:-.35rem}._ge{display:none}._cJ ._gf{flex:auto;align-items:center;width:100%;min-width:0;height:100%;display:flex}._gg{display:none}._gi{order:1}._f4 ._gj{display:none}._gk{padding-inline:0}._gt{margin:0 .35rem .35rem}._j3{order:-1}}@media screen and (width<=399px){._j3>a{padding-inline:.5rem}}._kd{position:relative;overflow:visible}._ke._ke{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._kf{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}._kg{width:min(20rem,100vw - 16px);padding:.5rem}._lL{flex-direction:column;gap:.35rem;min-width:0;display:flex}._lM{cursor:pointer;align-items:center;gap:.35rem;min-height:1.6rem;padding-inline:.25rem;font-size:.85rem;display:flex}._lN{flex:auto;min-width:0}._lO{color:var(--dim);font-variant-numeric:tabular-nums;font-size:.78rem}._lP{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}._lQ{text-overflow:ellipsis;min-width:0;overflow:hidden}._lR{color:var(--text);border-radius:4px;margin-left:auto;padding:.15rem .35rem;font-weight:500}._lR:hover{background:color-mix(in srgb, currentColor 6%, transparent)}@media screen and (width<=899px){._lM{min-height:1.85rem}._lR{min-height:1.85rem;padding:0 .5rem}}._m3{flex:1;align-items:center;width:100%;min-width:0;display:flex}._m4{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}._m0{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}._m1{color:color-mix(in srgb, var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364) 55%, var(--dim))}._m2{color:color-mix(in srgb, var(--danger) 55%, var(--dim))}._ms{align-items:center;min-width:0;display:flex;position:relative}._mt{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}._mt::-webkit-scrollbar{display:none}._mv{-webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000);mask-image:linear-gradient(90deg,#000 calc(100% - 2rem),#0000)}._mu{-webkit-mask-image:linear-gradient(90deg,#0000,#000 2rem);mask-image:linear-gradient(90deg,#0000,#000 2rem)}._mu._mv{-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)}._mw{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%}._mx{left:0}._my{right:0}._mz{transform:rotate(180deg)}._mB{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}._mB._mA{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 0 0 1px var(--accent);color:var(--text)}._mC{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}._mD{box-shadow:inset 0 0 0 1px var(--accent)}._mE{color:var(--text);white-space:nowrap;padding:0 .25rem 0 .35rem}._mF{font-weight:600}._mG{border-radius:4px;height:calc(1.75rem - 4px);padding:0 .35rem}._mG._mA{box-shadow:none}._mH{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:4px;flex-shrink:0;align-items:center;display:inline-flex}._mI{background:color-mix(in srgb, var(--accent) 16%, transparent)}._mI ._mB._mA{box-shadow:none;background:0 0}._mJ{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}._mK{color:var(--text)}._mL{gap:.35rem}._mM{background:color-mix(in srgb, currentColor 6%, transparent)}._mN{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}._mO{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}._mO:popover-open{display:flex}._mP{color:var(--dim);padding:.25rem .5rem;font-size:.78rem}._mQ{color:var(--text);margin-right:.25rem;font-weight:600}._mR{color:var(--dim);align-items:center;gap:.25rem;padding:.35rem .5rem .15rem;font-size:.78rem;display:flex}._mS{color:var(--dim)}._mT{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}._mT._mA{background:color-mix(in srgb, var(--accent) 16%, transparent);box-shadow:inset 0 0 0 1px var(--accent)}._mU{padding-left:1rem}._mV{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}._mW{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._mX,._mX._mA{color:var(--dim)}._mY{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._mZ{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}@media (hover:hover){._mw{display:inline-flex}._mw:hover{color:var(--text)}._mB:not(._mA):hover{background:color-mix(in srgb, currentColor 6%, transparent)}._mJ:hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._mT:not(._mA):hover{background:color-mix(in srgb, currentColor 6%, transparent)}}@media screen and (width<=899px){._mB{height:1.75rem}._mG,._mJ{height:calc(1.75rem - 4px)}}._m5{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}}._lY{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}._lZ{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}._l0{color:var(--accent-text);background:0 0;font-weight:600}._l1{color:var(--dim);flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._l2{flex-shrink:0}._fs{max-width:18rem}._ft{color:var(--dim);font-size:.78rem}._ft._ft{padding-left:1.3rem}._fu{color:var(--dim);font-size:.78rem}._fw{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}._fx{min-width:1.85rem;min-height:1.85rem}._fy{align-items:center;gap:.15rem;min-width:0;display:inline-flex}._fA{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}._fB{flex-wrap:wrap;flex-shrink:0;gap:.15rem .35rem;margin-left:.35rem;display:inline-flex}._fC{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}._fC:hover{text-decoration:underline}@media screen and (width<=899px){._fu{display:none}._fv{flex-wrap:wrap;justify-content:flex-end;row-gap:.25rem}}@media (pointer:coarse){._fz{width:1.75rem;height:1.75rem}}._jK{min-width:0;margin-bottom:.65rem}._jL{margin:0;padding:0;list-style:none}._jN{border-radius:var(--radius);align-items:center;gap:.15rem;display:flex}._jN._jM{background:color-mix(in srgb, var(--accent) 10%, transparent)}._jO{gap:.5rem}._jO:hover{background:0 0}._jP,._jQ{color:var(--dim);font-size:.85rem}._jR{border-left:2px solid var(--border);margin:.15rem 0 .25rem 1.35rem;padding-left:.5rem}._jS{margin:0;padding:0;list-style:none}._jT{color:var(--dim)}._jU{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._jV{color:var(--accent-text)}._jW{justify-content:flex-end;align-items:center;gap:.25rem;display:flex}._jX{flex:1;min-width:0;margin:.25rem 0}._jZ{margin-top:.5rem}._j0{margin:0 0 .25rem;padding:0 .65rem}._j1{padding:0 .65rem;font-size:1rem;display:flex}._j2{color:var(--dim);flex-shrink:0;margin-right:.35rem}@media screen and (width<=899px){._jO{gap:.5rem;min-height:2.85rem;padding:.65rem;font-size:1rem}._jP,._jQ{font-size:1rem}._jR{margin:.25rem 0 .5rem .5rem;padding:.5rem}._jY{min-height:2.6rem;padding:.65rem}._j2{display:none}}._hm{align-items:center;gap:.25rem;width:min(24rem,100%);display:flex;position:relative}._hn{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;inset:auto;overflow:hidden}._hp{flex:1;min-width:0;height:1.85rem}._hq{height:100%;padding-top:0;padding-bottom:0}._hr{height:1.85rem}._ht{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}._ht[hidden]{display:none}._hu{flex-direction:column;list-style:none;display:flex}._hv{min-height:2.35rem;color:var(--dim);align-items:center;gap:.35rem;font-size:.85rem;display:flex}._hA{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}._hA:active{background:color-mix(in srgb, var(--accent) 10%, transparent)}@media screen and (width<=899px){._hm{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}._hn{width:1px;height:1px;padding:0;position:absolute;inset:auto}._hp{grid-area:field;height:2.35rem}._hr{grid-area:list;place-self:start stretch;height:2.35rem;margin-top:.35rem}._hs{grid-area:close;align-self:center}._ht{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}._ht[hidden]{visibility:hidden;display:block}}@media screen and (width>=900px){._ho{opacity:1;pointer-events:auto;width:min(24rem,100%);height:auto;position:relative;inset:auto;overflow:visible}._ho ._hs{display:none}._hx._hx{gap:0;width:100%}._hx [data-add-pop]{width:auto;left:0;right:0}._hy._hy{height:2.15rem}._hz._hz,._hz._hz:focus,._hz._hz:focus-visible{box-shadow:none;background:0 0;border:none;border-radius:0;outline:none}._hA{display:none}}._lz{flex-direction:column;width:100%;min-width:0;display:flex}._lA{align-items:center;gap:.35rem;min-width:0;margin:0;padding:.25rem 0;font-size:.85rem;display:flex}._lA+._lA{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._lB{color:var(--dim)}._lC{flex:1;align-items:baseline;gap:.35rem;min-width:0;display:flex}._lD{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:500;overflow:hidden}._lE{color:var(--dim);text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:.78rem;overflow:hidden}._lF{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._lG{color:var(--dim)}._lG:hover{color:var(--text)}._lH{color:var(--dim);flex-wrap:wrap;line-height:1.35}._lI{color:var(--text);letter-spacing:.08em;-webkit-user-select:all;user-select:all;font-size:.85rem}._lJ{color:var(--accent-text)}._lK{color:var(--dim);font-size:.78rem;line-height:1.35}@media screen and (width<=899px){._lC{flex-direction:column;gap:.15rem}._lK{font-size:.85rem}}._gU{align-items:center}._gV{color:var(--dim)}._gW{max-width:18rem}._gV ._gW{color:var(--text)}._gX{font-family:inherit;display:block}._gY{color:var(--dim);white-space:nowrap;text-overflow:ellipsis;max-width:12rem;overflow:hidden}._gZ{min-width:1.85rem;min-height:1.85rem}@media screen and (width<=899px){._gY{display:none}}._ey{flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.5rem;padding-top:.25rem;display:flex}._ez{min-width:10.5rem}._eA{flex-direction:column;gap:.35rem;display:flex}._eB{flex-direction:column;display:flex}li+._eB{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._eC{border-top:none}._eD{padding:0 .65rem .5rem}@media screen and (width<=899px){._ey{flex-direction:column-reverse;align-items:stretch;margin-top:.25rem}._ez{min-width:0}._eA{gap:.5rem}._eD{padding:0 .85rem .65rem}}._jc{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}._je{color:var(--dim);overflow-wrap:anywhere;align-items:center;gap:.5rem;min-width:0;display:flex}._je._jd{color:var(--text)}._jf{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){._jc{gap:.5rem;padding:.85rem 1rem;font-size:1rem}}._jC{width:min(32rem,100vw - 1.5rem)}._jD{margin:0}._jE{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._jF{resize:vertical;min-height:7rem;font-size:.85rem;line-height:1.5}._jG{flex-direction:column;gap:.25rem;margin:0;padding:0;list-style:none;display:flex}._jH{align-items:center;gap:.35rem;min-width:0;font-size:.85rem;display:flex}._jI{text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}._jJ{flex-direction:column;gap:.25rem;display:flex}@media screen and (width<=899px){._jF{font-size:1rem}}._lt{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}._lu{flex-direction:column;gap:.25rem;min-width:0;display:flex}._lv{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}._lw{object-fit:contain;max-width:100%;max-height:100%}._lx{border-radius:var(--radius);background:var(--bg);border:0;width:100%;height:28rem}._ly{text-align:center;flex-direction:column;align-items:center;gap:.25rem;padding:.5rem;display:flex}@keyframes _im{0%,to{opacity:.55}50%{opacity:1}}._ia{flex:1;height:100%;min-height:0;display:flex;position:relative;overflow:hidden}._ib._ib{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._ic{flex-wrap:wrap;align-items:center;gap:.35rem;min-width:0;display:flex}._id{flex-direction:column;flex:1;min-width:0;padding-top:.65rem;display:flex}._ig{height:1.75rem}._ii{pointer-events:none;flex:0 0 0;width:0;min-width:0;overflow:visible}._ii._ii{margin-left:0}._ij{min-width:0;margin-left:auto;display:flex}._ik{display:contents}._il{flex:none;display:inline-flex;position:relative}._in{flex-direction:column;gap:12px;padding-top:.35rem;animation:1.4s ease-in-out infinite _im;display:flex}._io{pointer-events:none;position:absolute;inset:0 .65rem;overflow:hidden}._ip{border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent)}._iq{border-radius:var(--radius);flex-direction:column;display:flex;overflow:hidden}._ir{border-radius:0;height:44px}._is{background:color-mix(in srgb, color-mix(in srgb, currentColor 6%, transparent) 45%, transparent);border-radius:0;height:7rem}._it{padding-inline:.65rem}._iu{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}._iv{overscroll-behavior:contain;flex:1;min-width:0;min-height:0;padding-inline:.65rem;overflow:hidden auto}._iw{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}._iw:hover{background:color-mix(in srgb, var(--panel) 90%, var(--text))}._iy{color:var(--dim);flex-shrink:0;transition:transform .12s;display:inline-flex}._ix ._iy{transform:rotate(-90deg)}._iz{flex-shrink:0;display:block}._iA{text-overflow:ellipsis;white-space:nowrap;text-align:left;direction:rtl;flex:auto;min-width:0;font-weight:600;overflow:hidden}._iB{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}._iB:hover{background:color-mix(in srgb, var(--danger) 20%, transparent)}._iC{font-variant-numeric:tabular-nums;flex-shrink:0;gap:.25rem;font-size:.78rem;display:inline-flex}._iD{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._iE{color:var(--danger)}._iF{color:var(--dim);flex-shrink:0}._iG{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}._iH{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._iI{cursor:pointer;border:0;flex-shrink:0;font-family:inherit}._iI:hover{background:color-mix(in srgb, currentColor 10%, transparent);color:var(--text)}._iJ{color:var(--dim);margin-left:auto}._iJ:disabled{opacity:.4;cursor:default}._iL{flex-direction:column;flex-shrink:0;display:flex}@media screen and (width>=900px){._ic{display:contents}._ie{order:3}._if{flex:1 1 0;order:1;min-width:10rem;margin-left:.25rem}._ih{order:4}._ij{order:4;max-width:18rem;margin-left:0}._ij:not(._ii){flex:12rem}}@media screen and (width<=899px){._ic{box-shadow:none;background:0 0;flex-wrap:nowrap;flex:none;gap:.35rem;margin:0;padding:0}._id{padding-top:0;padding-inline:max(.2rem, env(safe-area-inset-left)) max(.2rem, env(safe-area-inset-right))}._ig{height:1.75rem}._ih{display:none}._ii{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}._ij{flex:100%;margin-left:0}._cJ ._ij:not(._ii){flex:auto;align-items:center;width:100%;min-width:0;height:100%;margin:0;padding:0;display:flex}._io{left:0;right:0}._it{padding-inline:.5rem}._iv{padding-inline:0}._iK{flex-wrap:wrap}}@media screen and (width<=399px){._ic{gap:.15rem}}._lS{align-items:center;gap:.35rem;min-width:0;font-weight:400;display:flex}._lT{flex-shrink:0;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem;font-weight:600}._lT:hover{text-decoration:underline}._lU{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-size:.78rem;overflow:hidden}._lV{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}._lW{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._lX{border-radius:4px;padding:.15rem}._lX:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._lX:disabled{opacity:.5}._m9{text-overflow:ellipsis;white-space:nowrap;min-width:2rem;color:var(--dim);flex:0 100 auto;font-size:.72rem;font-weight:400;overflow:hidden}._m_{color:color-mix(in srgb, var(--text) 70%, var(--dim))}._na{color:var(--text)}._nb{color:var(--dim)}._nj{border-top:1px solid var(--border);background:var(--panel);flex:none;max-height:30%;padding:.35rem 0;overflow-y:auto}._nk{color:var(--dim);padding:0 .65rem .25rem;font-size:.78rem;font-weight:600}._nl{min-height:1.9rem;color:var(--text);align-items:center;gap:.35rem;padding:0 .65rem;display:flex}._nl:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._nm{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}._nn{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){._nl{min-height:2.35rem}}._nc{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)}._nd{flex:none;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._nd:active{background:color-mix(in srgb, currentColor 10%, transparent)}._ne{flex-shrink:0;margin-left:-.15em;display:inline-flex}._nf{white-space:nowrap}._ng{white-space:nowrap;color:var(--text)}._nh{color:var(--dim)}._ni{white-space:nowrap;color:var(--dim)}@media screen and (width<=899px){._nc{gap:.35rem;padding-bottom:.5rem}}@media screen and (width>=900px){._nd:hover{color:var(--accent-text);background:color-mix(in srgb, var(--accent) 10%, transparent)}}._l6{font-size:1.25rem}._l7{letter-spacing:-.02em;font-size:1.1rem;font-weight:700}._l8{background:var(--panel);flex-direction:column;display:flex}._l9{align-items:center;gap:.65rem;padding:.85rem .5rem .5rem 1rem;display:flex}._l_{--sheet-repo:2.35rem;overscroll-behavior:contain;flex:auto;min-height:0;padding:0 .5rem .65rem;overflow-y:auto}._ma+._ma{margin-top:.5rem}._mb{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}._mc{border-radius:var(--radius)}._mc:active{background:color-mix(in srgb, currentColor 6%, transparent)}._md{padding-left:1.35rem;font-weight:500}._me{color:var(--dim);flex-shrink:0;display:inline-flex;transform:rotate(90deg)}._mf{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}._mg{color:var(--dim)}._mh{color:var(--dim);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:400}._mi{padding:0 .35rem .35rem;font-size:.78rem}._mi:not(:has(>*)){display:none}._mj{flex-direction:column;gap:.25rem;display:flex}._mj+._mj{margin-top:.35rem}._mk{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}._mk:active{background:color-mix(in srgb, currentColor 6%, transparent)}._ml{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}._mm{overflow-wrap:anywhere;flex:1;min-width:0;line-height:1.2}._mn{z-index:2;background:var(--panel);margin-bottom:-1px;padding:0 .5rem .5rem;position:relative}._mo{color:var(--dim);text-align:center;margin:0;padding:.65rem}._mp{background:var(--accent-text)}._mq{opacity:.5}._mr{color:var(--dim)}@media screen and (width<=899px){._l9{padding-top:max(.85rem, calc(env(safe-area-inset-top) + .5rem))}}._dr{--page-col:calc(48rem + 8.5rem + 1.35rem)}._du{z-index:1;flex-direction:column;gap:1px;display:flex;position:sticky;top:0}._dw{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}._dw:hover{background:color-mix(in srgb, currentColor 6%, transparent);color:var(--text)}._dw._dv{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--text);font-weight:500}._dx{background:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);margin-left:auto}._dy{flex-direction:column;gap:1.35rem;min-width:0;display:flex}._dz{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}._dA{flex-direction:column;flex:12rem;gap:.15rem;min-width:0;display:flex}._dB{font-size:1rem;font-weight:600}._dC{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem}@media screen and (width>=900px){._ds{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){._dt._dt{padding-top:0}._du{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}._dw{min-height:1.75rem;font-size:.85rem}._dx{margin-left:.25rem}._dy{gap:1rem}._dz{gap:.5rem;padding:.85rem}}._fD{gap:.5rem;padding:.5rem .65rem}._fE{align-items:center;gap:.35rem;display:inline-flex}._fF{min-width:6.5rem;padding:0 1.4rem 0 .5rem;font-size:.78rem}._fG{align-items:center;gap:.5rem;min-width:0;display:flex}._fH{flex-direction:column;gap:.35rem;display:flex}._fI{opacity:.45}._fI:hover,._fI:focus-within{opacity:.8}._fJ{font-size:.85rem;font-weight:600}._fK{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}._g0{margin-left:auto}._g1{gap:.5rem}._g2{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._g3{width:1.4rem;color:var(--text);flex-shrink:0}._g4{align-items:center;gap:.25rem;min-width:0;display:inline-flex}._g5{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364)}._g6{color:var(--lightningcss-light,#8a5a00)var(--lightningcss-dark,#f0b84a)}._g7{color:var(--text);font-weight:600}._g8{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}._g9{flex-wrap:wrap;gap:.25rem;min-width:0;display:inline-flex}._g_{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}._ha{color:var(--accent-text);font-weight:600}._hb{padding-top:.25rem;padding-bottom:.25rem}._hB{pointer-events:none}._hC{background:color-mix(in srgb, currentColor 6%, transparent);border-radius:4px;width:40%;height:.7rem;display:block}._hc{color:var(--dim)}._hd{flex-shrink:0;font-size:.85rem;font-weight:600}._hc ._hd,._hc ._he{font-weight:500}._hf{color:var(--dim);margin-left:.25rem}._hg{color:var(--dim);border-radius:4px;margin:0 -.35rem;padding:0 .35rem;font-size:.78rem}._hg:hover{color:var(--text);background:color-mix(in srgb, currentColor 6%, transparent)}._hh{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}._hh:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._hi{color:var(--accent-text);white-space:nowrap;border-radius:4px;flex-shrink:0;padding:.15rem .35rem;font-size:.78rem;font-weight:500}._hi:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent)}._hi:disabled{opacity:.45}._hj{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}._hj:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 10%, transparent)}._hj:disabled{opacity:.45}._hk{min-width:1.85rem;min-height:1.85rem}._hl{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){._hg,._hh,._hi{min-height:1.75rem}}._hD{flex-direction:column;display:flex}._hE{align-items:flex-start;gap:.85rem;padding:.65rem .85rem;display:flex}._hE+._hE{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._hF{flex-direction:column;flex:1;gap:.25rem;min-width:0;display:flex}._hG{font-size:.85rem;font-weight:600}._hH{color:var(--dim);font-size:.78rem;line-height:1.5}._hI{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}._hJ{flex:14rem;align-items:center;min-width:0;display:flex;position:relative}._hK{color:var(--dim);pointer-events:none;position:absolute;left:.5rem}._hL{width:100%;padding-left:calc(.85rem + 14px)}._hM{border-radius:var(--radius);background:color-mix(in srgb, currentColor 6%, transparent);gap:.15rem;padding:.15rem;display:inline-flex}._hO{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}._hO:hover{color:var(--text)}._hO._hN{background:var(--panel);color:var(--text);box-shadow:0 0 0 1px var(--border)}._hP{color:var(--dim);font-weight:400}._hQ{white-space:nowrap;align-items:center;gap:.25rem;display:inline-flex}._hR{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}._hS{flex:1;min-width:0;font-size:.85rem}._hT{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon body end";gap:.35rem .65rem;padding:.65rem .85rem;display:grid}._hT+._hT{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent)}._hV{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}._hU ._hV{opacity:.45}._hW{flex-direction:column;grid-area:body;gap:.15rem;min-width:0;display:flex}._hX{flex-wrap:wrap;align-items:baseline;column-gap:.35rem;display:flex}._hY{font-size:.85rem;font-weight:600}._hZ{color:var(--dim);font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78rem}._h0{color:var(--dim);overflow-wrap:anywhere;font-size:.78rem}._h1{color:inherit;text-decoration:none}._h1:hover{color:var(--accent-text);text-decoration:underline}._h2{color:var(--dim);flex-wrap:wrap;align-items:center;gap:.15rem .35rem;margin-top:.15rem;font-size:.78rem;display:flex}._h3{font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._h4{color:var(--lightningcss-light,#1a7f37)var(--lightningcss-dark,#57d364);align-items:center;gap:.25rem;display:inline-flex}._h5{background:currentColor}._h6{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent-text);border-radius:4px;padding:0 .25rem;font-weight:500}._h7{flex-direction:column;grid-area:end;justify-content:space-between;align-items:flex-end;gap:.5rem;display:flex}._h8{align-items:center;gap:.35rem;display:flex}._h9{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}._h_{color:var(--dim);text-align:center;padding:1rem .85rem;font-size:.85rem}@media screen and (width<=899px){._hO{min-height:1.75rem}._hT{grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon body""end end"}._h7{flex-direction:row-reverse;justify-content:space-between;align-items:center}}._k1{width:min(30rem,100vw - 1.5rem)}._k2{flex-direction:column;gap:.65rem;display:flex}._k3{flex-direction:column;gap:.25rem;font-size:.85rem;font-weight:500;display:flex}._k4{color:var(--dim);font-size:.78rem;font-weight:400}._k5{color:var(--danger);margin:0;font-size:.85rem}._fN{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}._fN:hover{box-shadow:inset 0 0 0 1px var(--dim)}._fN._fM{background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1px var(--accent);font-family:inherit}._fO{color:var(--dim);font-family:inherit}._fP{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);font-weight:500}@media screen and (width<=899px){._fL{display:none}}._k6{border-top:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:flex-start;gap:1rem;padding:.65rem;display:flex}._k7{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}._k8{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}._k_{color:var(--text);cursor:pointer;position:relative}._k_:hover{background:color-mix(in srgb, currentColor 10%, transparent)}._k_._k9{background:color-mix(in srgb, var(--accent) 10%, transparent);box-shadow:inset 0 0 0 1.5px var(--accent)}._la{background:var(--accent);border-radius:50%;width:5px;height:5px;position:absolute;top:.15rem;right:.15rem}._lb{box-shadow:inset 0 0 0 1px var(--border);color:var(--dim);cursor:pointer;background:0 0}._lb:hover{color:var(--text);box-shadow:inset 0 0 0 1px var(--dim)}._lb._k9{color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}._lc{background:var(--border);grid-column:1/-1;height:1px;margin-block:.15rem}._ld{flex-direction:column;flex:1;gap:.5rem;min-width:0;font-size:.85rem;display:flex}._le{color:var(--dim);font-size:.85rem;line-height:1.5}._lf._lf{vertical-align:-.15em;margin-inline:.1em;display:inline-block}._lg{font-weight:600}._lh{flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0;display:flex}._lj{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}._lj:hover{box-shadow:inset 0 0 0 1px var(--dim)}._lj._li{background:color-mix(in srgb, var(--accent) 10%, transparent);color:var(--accent-text);box-shadow:inset 0 0 0 1.5px var(--accent)}._lk{grid-template-columns:4.5rem minmax(0,1fr);align-items:center;gap:.35rem .5rem;display:grid}._ll{color:var(--dim);font-size:.78rem}._lm{box-sizing:border-box;width:12rem;max-width:100%;height:2.15rem;font-size:.85rem}._ln{text-align:center;width:2.6rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._lo{width:7rem;font-family:JetBrains Mono,Berkeley Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}._lp{color:var(--dim);align-items:center;gap:.25rem;display:inline-flex}._lq{color:var(--dim);font-size:.78rem}._lr{color:var(--lightningcss-light,#bf8700)var(--lightningcss-dark,#d4a72c);font-size:.78rem}._ls{flex-wrap:wrap;grid-column:1/-1;align-items:center;gap:.35rem;display:flex}@media screen and (width<=899px){._k6{flex-direction:column;align-items:stretch;gap:.65rem}._k7{align-self:center}._lj{min-width:1.75rem;height:1.75rem}._lk{grid-template-columns:minmax(0,1fr)}._lm{width:100%;height:2.85rem;font-size:1rem}._ln{width:1.75rem;height:1.75rem}}._eZ{flex-wrap:wrap;align-items:center;gap:.35rem .85rem;display:flex}._e0{color:var(--dim);align-items:center;gap:.35rem;font-size:.85rem;display:inline-flex}@media screen and (width<=899px){._eZ{flex-direction:column;align-items:stretch}._e0{justify-content:space-between}}._eE{flex-direction:column;align-items:stretch;gap:.65rem;display:flex}._eF{grid-template-columns:5.5rem minmax(0,1fr);align-items:center;column-gap:.85rem;display:grid}._eG{font-size:.85rem;font-weight:400}._eH{box-sizing:border-box;width:18rem;max-width:100%;height:2.15rem;font-size:.85rem}._eJ{justify-self:start;min-width:0}._eK{display:none}._eM{border-bottom:1px solid color-mix(in srgb, var(--border) 65%, transparent);align-items:center;gap:.65rem;padding-bottom:.65rem;display:flex}._eN{border-radius:8px;flex-shrink:0;width:32px;height:32px}._eO{flex-direction:column;gap:.15rem;min-width:0;display:flex}._eP{letter-spacing:-.01em;text-overflow:ellipsis;white-space:nowrap;font-size:1rem;font-weight:700;overflow:hidden}._eQ{color:var(--dim);font-size:.78rem}._eR{gap:.25rem}._eS{justify-self:start;align-items:center;gap:.35rem;display:inline-flex}._eT{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}._eT:hover{transform:scale(1.1)}._eU{box-shadow:inset 0 0 0 2px var(--swatch,var(--accent)), inset 0 0 0 4px var(--panel)}._eV{filter:drop-shadow(0 1px 1px #00000059)}._eW{--swatch:var(--lightningcss-light,#4f5bd5)var(--lightningcss-dark,#6470e6)}._eX{color:var(--dim);background:var(--swatch,transparent);box-shadow:inset 0 0 0 1px var(--border)}._eX._eU{color:#fff;box-shadow:inset 0 0 0 2px var(--swatch), inset 0 0 0 4px var(--panel)}._eY{opacity:0;cursor:pointer;border:0;width:100%;height:100%;padding:0;position:absolute;inset:0}@media screen and (width<=899px){._eF{grid-template-columns:minmax(0,1fr);row-gap:.35rem}._eH{width:100%;height:2.85rem;font-size:1rem}._eI{display:none}._eJ{justify-self:stretch}._eK{width:100%;display:inline-flex}._eL{width:100%;min-height:2.85rem;font-size:1rem}._eS{flex-wrap:wrap;justify-self:stretch;gap:.35rem}._eT{width:2.35rem;height:2.35rem}}._fQ{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}._fR{color:var(--dim)}._fS{flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}._fT{align-items:center;gap:.5rem;display:flex}@media screen and (width<=899px){._fT{flex-direction:row-reverse;justify-content:space-between}}._gB{align-items:center;gap:.5rem;width:100%;min-width:0;display:flex}._gC{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;overflow:hidden}._gD{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}._gE{color:var(--dim);margin:0;font-size:.85rem}._gF{flex-direction:column;gap:.35rem;min-width:0;margin:0;padding:0;list-style:none;display:flex}._gG{flex-direction:column;gap:.25rem;display:flex}._gH{border-left:1px solid color-mix(in srgb, var(--border) 65%, transparent);flex-direction:column;gap:.25rem;padding-left:.5rem;display:flex}._gI{flex-wrap:wrap;align-items:center;gap:.35rem;font-size:.85rem;display:flex}._gJ{color:var(--dim);flex-direction:column;gap:.15rem;margin:0;padding:0;font-size:.78rem;list-style:none;display:flex}._gK{align-items:center;gap:.35rem;min-width:0;display:flex}._gL{flex-wrap:wrap;align-items:center;gap:.35rem;padding-top:.25rem;display:flex}._gM{gap:.25rem}._gN{border-radius:var(--radius);cursor:pointer;align-items:center;gap:.5rem;min-width:0;padding:.35rem .5rem;display:flex}._gN:hover{background:color-mix(in srgb, currentColor 6%, transparent)}._gO{accent-color:var(--accent);flex-shrink:0;margin:0}._gP{color:var(--dim);cursor:default}._gP:hover{background:0 0}._gQ{flex-direction:column;gap:.25rem;min-width:0;display:flex}._gR{color:var(--dim);font-size:.78rem}._gS{border-left:1px solid color-mix(in srgb, var(--border) 65%, transparent);margin-left:.65rem;padding-left:.25rem}._gT{overflow-wrap:anywhere;flex:1;min-width:0;font-size:.85rem}@media screen and (width<=899px){._gN{padding:.5rem}}
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C2p1Z5Lf.js";import"./_CE2GEqMx.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C2p1Z5Lf.js";import"./_CE2GEqMx.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C2p1Z5Lf.js";import"./_CE2GEqMx.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./_C2p1Z5Lf.js";import"./_CE2GEqMx.js";import{tt as e}from"./_BGCK5I_O.js";e();
|
package/lib/setup/doctor.d.mts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { TailscaleProbe } from "./tailscale.mjs";
|
|
1
2
|
export interface DoctorTool {
|
|
2
3
|
id: string;
|
|
3
4
|
label: string;
|
|
@@ -47,6 +48,8 @@ export interface Doctor {
|
|
|
47
48
|
awake: boolean | null;
|
|
48
49
|
/** git credential helpers that run a gh which is gone (config keys). */
|
|
49
50
|
staleGhHelpers: string[];
|
|
51
|
+
/** Tailscale, optional: how work is reached from other devices. */
|
|
52
|
+
tailscale: TailscaleProbe;
|
|
50
53
|
}
|
|
51
54
|
export function setupPath(base?: string): string;
|
|
52
55
|
export function which(bin: string): string | null;
|
|
@@ -61,5 +64,13 @@ export const VERSIONED_PATH: RegExp;
|
|
|
61
64
|
export function stableGh(): string | null;
|
|
62
65
|
export function staleGhHelpers(): Promise<string[]>;
|
|
63
66
|
export function discoverAgents(fresh?: boolean): DoctorAgent[];
|
|
64
|
-
export function
|
|
67
|
+
export function tailscaleProbe(opts?: {
|
|
68
|
+
port?: string;
|
|
69
|
+
allowedHosts?: string;
|
|
70
|
+
}): Promise<TailscaleProbe>;
|
|
71
|
+
export function doctor(opts?: {
|
|
72
|
+
hosts?: string[];
|
|
73
|
+
port?: string;
|
|
74
|
+
allowedHosts?: string;
|
|
75
|
+
}): Promise<Doctor>;
|
|
65
76
|
export function formatDoctor(d: Doctor): string;
|
package/lib/setup/doctor.mjs
CHANGED
|
@@ -6,6 +6,7 @@ import fs from "node:fs";
|
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
8
8
|
import { AGENTS, DEFAULT_GITHUB_HOST, TOOLS } from "./catalog.mjs";
|
|
9
|
+
import { readTailscale, tailscaleLine } from "./tailscale.mjs";
|
|
9
10
|
|
|
10
11
|
const home = os.homedir();
|
|
11
12
|
|
|
@@ -363,11 +364,49 @@ async function ghExtensions() {
|
|
|
363
364
|
return out;
|
|
364
365
|
}
|
|
365
366
|
|
|
367
|
+
function parseJson(text) {
|
|
368
|
+
try {
|
|
369
|
+
return JSON.parse(text);
|
|
370
|
+
} catch {
|
|
371
|
+
return null;
|
|
372
|
+
}
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
/** Tailscale here and what its serve config does with work's port
|
|
376
|
+
* (lib/setup/tailscale.mjs), from read-only commands. `port` and
|
|
377
|
+
* `allowedHosts` default to this process's own, which are the server's
|
|
378
|
+
* when the server asks. */
|
|
379
|
+
export async function tailscaleProbe({ port, allowedHosts } = {}) {
|
|
380
|
+
const bin = which("tailscale");
|
|
381
|
+
if (!bin) return { installed: false };
|
|
382
|
+
// Without peers: a large tailnet's full status is megabytes, and only
|
|
383
|
+
// this node is read.
|
|
384
|
+
const [version, status, serve] = await Promise.all([
|
|
385
|
+
run(bin, ["version"], { timeout: 5000 }),
|
|
386
|
+
run(bin, ["status", "--json", "--peers=false"], { timeout: 5000 }),
|
|
387
|
+
run(bin, ["serve", "status", "--json"], { timeout: 5000 }),
|
|
388
|
+
]);
|
|
389
|
+
return readTailscale(
|
|
390
|
+
{
|
|
391
|
+
path: tilde(bin),
|
|
392
|
+
version: version.stdout,
|
|
393
|
+
status: status.ok ? parseJson(status.stdout) : null,
|
|
394
|
+
serve: serve.ok ? parseJson(serve.stdout) : null,
|
|
395
|
+
},
|
|
396
|
+
{
|
|
397
|
+
port: port || process.env.PORT || process.env.WORK_APP_PORT || "7171",
|
|
398
|
+
allowedHosts: allowedHosts ?? process.env.WORK_ALLOWED_HOSTS,
|
|
399
|
+
},
|
|
400
|
+
);
|
|
401
|
+
}
|
|
402
|
+
|
|
366
403
|
/**
|
|
367
404
|
* Full readiness snapshot.
|
|
368
405
|
*
|
|
369
|
-
* @param {{ hosts?: string[] }} [opts]
|
|
370
|
-
* github.com and any host gh is
|
|
406
|
+
* @param {{ hosts?: string[], port?: string, allowedHosts?: string }} [opts]
|
|
407
|
+
* configured GitHub hosts (settings); github.com and any host gh is
|
|
408
|
+
* already signed in to are always included. `port` and `allowedHosts`
|
|
409
|
+
* are the service's, for the Tailscale probe.
|
|
371
410
|
*/
|
|
372
411
|
export async function doctor(opts = {}) {
|
|
373
412
|
const hostSet = new Set([
|
|
@@ -375,13 +414,15 @@ export async function doctor(opts = {}) {
|
|
|
375
414
|
...(opts.hosts || []),
|
|
376
415
|
...ghKnownHosts(),
|
|
377
416
|
]);
|
|
378
|
-
const [versions, github, awake, extensions, helpers] =
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
417
|
+
const [versions, github, awake, extensions, helpers, tailscale] =
|
|
418
|
+
await Promise.all([
|
|
419
|
+
miseVersions(),
|
|
420
|
+
Promise.all([...hostSet].map(githubHostStatus)),
|
|
421
|
+
canStayAwake(),
|
|
422
|
+
ghExtensions(),
|
|
423
|
+
staleGhHelpers(),
|
|
424
|
+
tailscaleProbe(opts),
|
|
425
|
+
]);
|
|
385
426
|
|
|
386
427
|
const tools = TOOLS.map((t) => {
|
|
387
428
|
if (t.ghExtension) {
|
|
@@ -429,6 +470,7 @@ export async function doctor(opts = {}) {
|
|
|
429
470
|
github,
|
|
430
471
|
awake,
|
|
431
472
|
staleGhHelpers: helpers,
|
|
473
|
+
tailscale,
|
|
432
474
|
};
|
|
433
475
|
}
|
|
434
476
|
|
|
@@ -455,6 +497,9 @@ export function formatDoctor(d) {
|
|
|
455
497
|
`${a.label.padEnd(11)}${mark(a.installed)} ${a.installed ? a.instances.map((i) => `${i.command} (${i.path})`).join(", ") : "not installed"}`,
|
|
456
498
|
);
|
|
457
499
|
}
|
|
500
|
+
// Optional, so never part of `ready`: it is how work is reached from
|
|
501
|
+
// elsewhere, not what it needs to run.
|
|
502
|
+
lines.push(tailscaleLine(d.tailscale));
|
|
458
503
|
// Said only when nothing holds the host: not a readiness gate, since
|
|
459
504
|
// work runs either way, but the one place a headless host would say so.
|
|
460
505
|
if (d.awake === false) {
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export const SERVE_SINCE: string;
|
|
2
|
+
export function parseVersion(text: string | undefined): string | null;
|
|
3
|
+
export interface TailscaleServe {
|
|
4
|
+
/** What a browser opens: `https://<name>/`. */
|
|
5
|
+
url: string;
|
|
6
|
+
host: string;
|
|
7
|
+
/** Funnel publishes it to the internet. */
|
|
8
|
+
funnel: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface TailscaleProbe {
|
|
11
|
+
installed: boolean;
|
|
12
|
+
path?: string;
|
|
13
|
+
/** The CLI's version (`1.76.1`). */
|
|
14
|
+
version?: string | null;
|
|
15
|
+
/** The CLI takes `tailscale serve --bg <port>` (SERVE_SINCE). */
|
|
16
|
+
serveCli?: boolean;
|
|
17
|
+
/** tailscaled's BackendState (`Running`, `NeedsLogin`, `Stopped`, …);
|
|
18
|
+
* null when it did not answer. */
|
|
19
|
+
state?: string | null;
|
|
20
|
+
/** Logged in and connected, with a MagicDNS name. */
|
|
21
|
+
running?: boolean;
|
|
22
|
+
/** This machine's MagicDNS name, `<machine>.<tailnet>.ts.net`. */
|
|
23
|
+
name?: string | null;
|
|
24
|
+
/** HTTPS certificates are on for the tailnet; null when unknown. */
|
|
25
|
+
https?: boolean | null;
|
|
26
|
+
/** work's port, as probed. */
|
|
27
|
+
port?: string;
|
|
28
|
+
/** Where the serve config serves work's port, and whether work answers
|
|
29
|
+
* that name (WORK_ALLOWED_HOSTS). */
|
|
30
|
+
serve?: (TailscaleServe & { allowed: boolean }) | null;
|
|
31
|
+
/** What `https://<name>/` serves when it is not work. */
|
|
32
|
+
rootTaken?: string | null;
|
|
33
|
+
}
|
|
34
|
+
export function serveOf(
|
|
35
|
+
config: unknown,
|
|
36
|
+
port: string | number,
|
|
37
|
+
): TailscaleServe | null;
|
|
38
|
+
export function allowHost(
|
|
39
|
+
value: string | undefined,
|
|
40
|
+
name: string,
|
|
41
|
+
allow?: boolean,
|
|
42
|
+
): string;
|
|
43
|
+
export function readTailscale(
|
|
44
|
+
raw: {
|
|
45
|
+
path: string;
|
|
46
|
+
version: string;
|
|
47
|
+
status: Record<string, any> | null;
|
|
48
|
+
serve: Record<string, any> | null;
|
|
49
|
+
},
|
|
50
|
+
opts: { port: string | number; allowedHosts?: string },
|
|
51
|
+
): TailscaleProbe;
|
|
52
|
+
export function stateText(t: TailscaleProbe): string;
|
|
53
|
+
export function tailscaleLine(t: TailscaleProbe): string;
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
// Tailscale, the zero-config way to reach work from the user's other
|
|
2
|
+
// devices. `tailscale serve` terminates TLS for https://<machine>.<tailnet>.ts.net/
|
|
3
|
+
// in the local daemon and proxies it to work's loopback port, for the
|
|
4
|
+
// tailnet alone: requests arrive from this machine under the tailnet name,
|
|
5
|
+
// which work answers once that name is in WORK_ALLOWED_HOSTS
|
|
6
|
+
// (src/server/access.ts). This file only reads what the tailscale CLI
|
|
7
|
+
// printed: doctor.mjs runs the read-only commands, and `work setup`
|
|
8
|
+
// (bin/work.mjs) the one that changes Tailscale's config, only when asked.
|
|
9
|
+
// Plain node, no dependencies.
|
|
10
|
+
|
|
11
|
+
/** The first release whose `tailscale serve --bg <port>` serves
|
|
12
|
+
* https://<name>/ → http://127.0.0.1:<port>. Before it the serve CLI took
|
|
13
|
+
* `serve https / <target>` (1.50 had the new one only behind a dev flag). */
|
|
14
|
+
export const SERVE_SINCE = "1.52.0";
|
|
15
|
+
|
|
16
|
+
/** `tailscale version` prints the short version first (`1.76.1`, or
|
|
17
|
+
* `1.77.30` on an unstable track), then commit lines. */
|
|
18
|
+
export function parseVersion(text) {
|
|
19
|
+
return /\b(\d+)\.(\d+)\.(\d+)\b/.exec(text || "")?.[0] ?? null;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function atLeast(version, min) {
|
|
23
|
+
const a = version.split(".").map(Number);
|
|
24
|
+
const b = min.split(".").map(Number);
|
|
25
|
+
for (let i = 0; i < 3; i++) if (a[i] !== b[i]) return a[i] > b[i];
|
|
26
|
+
return true;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/** The target the CLI writes (`http://127.0.0.1:7171`) or one a hand-made
|
|
30
|
+
* or older config holds (`localhost:7171`, `http://[::1]:7171`, `7171`),
|
|
31
|
+
* when it is work's port on this machine. */
|
|
32
|
+
function targetsPort(proxy, port) {
|
|
33
|
+
if (/^\d+$/.test(proxy)) return proxy === String(port);
|
|
34
|
+
let url;
|
|
35
|
+
try {
|
|
36
|
+
url = new URL(proxy.includes("://") ? proxy : `http://${proxy}`);
|
|
37
|
+
} catch {
|
|
38
|
+
return false;
|
|
39
|
+
}
|
|
40
|
+
return (
|
|
41
|
+
url.protocol === "http:" &&
|
|
42
|
+
["127.0.0.1", "localhost", "[::1]"].includes(url.hostname) &&
|
|
43
|
+
url.port === String(port)
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** The URL a `Web` entry (`<name>:<port>`) is opened at: https unless its
|
|
48
|
+
* port is served as plain HTTP (`--http=<port>`). */
|
|
49
|
+
function webUrl(config, hostPort) {
|
|
50
|
+
const i = hostPort.lastIndexOf(":");
|
|
51
|
+
const host = hostPort.slice(0, i);
|
|
52
|
+
const port = hostPort.slice(i + 1);
|
|
53
|
+
const tls = !config.TCP?.[port]?.HTTP;
|
|
54
|
+
const plain = port === (tls ? "443" : "80");
|
|
55
|
+
return `${tls ? "https" : "http"}://${host}${plain ? "" : `:${port}`}/`;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/** Where `tailscale serve status --json` (an ipn.ServeConfig; `{}` or
|
|
59
|
+
* `null` when empty) serves work's port, and whether Funnel publishes that
|
|
60
|
+
* to the internet — or null. Only a handler at `/` counts: work serves
|
|
61
|
+
* every page, asset and websocket from the root. */
|
|
62
|
+
export function serveOf(config, port) {
|
|
63
|
+
for (const [hostPort, web] of Object.entries(config?.Web || {})) {
|
|
64
|
+
const proxy = web?.Handlers?.["/"]?.Proxy;
|
|
65
|
+
if (!proxy || !targetsPort(proxy, port)) continue;
|
|
66
|
+
const url = webUrl(config, hostPort);
|
|
67
|
+
return {
|
|
68
|
+
url,
|
|
69
|
+
host: new URL(url).hostname,
|
|
70
|
+
funnel: !!config.AllowFunnel?.[hostPort],
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function hosts(value) {
|
|
77
|
+
return (value || "")
|
|
78
|
+
.split(",")
|
|
79
|
+
.map((s) => s.trim())
|
|
80
|
+
.filter(Boolean);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** A WORK_ALLOWED_HOSTS value with `name` in it (`allow`) or out of it:
|
|
84
|
+
* the value as it was when that holds already. */
|
|
85
|
+
export function allowHost(value, name, allow = true) {
|
|
86
|
+
const list = hosts(value);
|
|
87
|
+
const has = list.some((h) => h.toLowerCase() === name.toLowerCase());
|
|
88
|
+
if (has === allow) return value || "";
|
|
89
|
+
return (
|
|
90
|
+
allow
|
|
91
|
+
? [...list, name]
|
|
92
|
+
: list.filter((h) => h.toLowerCase() !== name.toLowerCase())
|
|
93
|
+
).join(",");
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
/**
|
|
97
|
+
* The probe `work doctor` and `work setup` read, from the CLI's output:
|
|
98
|
+
* `version` (`tailscale version`), `status` (`tailscale status --json`,
|
|
99
|
+
* null when tailscaled did not answer) and `serve` (`tailscale serve
|
|
100
|
+
* status --json`). `allowedHosts` is the WORK_ALLOWED_HOSTS the service
|
|
101
|
+
* runs with.
|
|
102
|
+
*/
|
|
103
|
+
export function readTailscale(
|
|
104
|
+
{ path, version: versionText, status, serve },
|
|
105
|
+
{ port, allowedHosts },
|
|
106
|
+
) {
|
|
107
|
+
const version = parseVersion(versionText);
|
|
108
|
+
const name =
|
|
109
|
+
String(status?.Self?.DNSName || "")
|
|
110
|
+
.replace(/\.$/, "")
|
|
111
|
+
.toLowerCase() || null;
|
|
112
|
+
// CertDomains (the names control provisions certificates for) is empty
|
|
113
|
+
// until HTTPS certificates are turned on for the tailnet, and then
|
|
114
|
+
// `tailscale serve` stops to offer a link that turns them on.
|
|
115
|
+
const certs = status?.CertDomains;
|
|
116
|
+
const https = Array.isArray(certs)
|
|
117
|
+
? certs.some((d) => d.toLowerCase() === name)
|
|
118
|
+
: status && "CertDomains" in status
|
|
119
|
+
? false
|
|
120
|
+
: null;
|
|
121
|
+
const served = serveOf(serve, port);
|
|
122
|
+
const root = name ? serve?.Web?.[`${name}:443`]?.Handlers?.["/"] : null;
|
|
123
|
+
return {
|
|
124
|
+
installed: true,
|
|
125
|
+
path,
|
|
126
|
+
version,
|
|
127
|
+
serveCli: !!version && atLeast(version, SERVE_SINCE),
|
|
128
|
+
state: status?.BackendState ?? null,
|
|
129
|
+
running: status?.BackendState === "Running" && !!name,
|
|
130
|
+
name,
|
|
131
|
+
https,
|
|
132
|
+
port: String(port),
|
|
133
|
+
serve: served && {
|
|
134
|
+
...served,
|
|
135
|
+
allowed: hosts(allowedHosts).some((h) => h.toLowerCase() === served.host),
|
|
136
|
+
},
|
|
137
|
+
// What https://<name>/ serves instead of work: `tailscale serve --bg
|
|
138
|
+
// <port>` would replace it.
|
|
139
|
+
rootTaken:
|
|
140
|
+
!served && root
|
|
141
|
+
? root.Proxy || root.Path || root.Redirect || "text"
|
|
142
|
+
: null,
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
const STATES = {
|
|
147
|
+
NeedsLogin: "logged out",
|
|
148
|
+
Stopped: "stopped (tailscale down)",
|
|
149
|
+
NeedsMachineAuth: "waiting for an admin to approve this machine",
|
|
150
|
+
Starting: "starting",
|
|
151
|
+
NoState: "starting",
|
|
152
|
+
};
|
|
153
|
+
|
|
154
|
+
/** What a state that is not Running means, in a word or three. */
|
|
155
|
+
export function stateText(t) {
|
|
156
|
+
if (t.state === null) return "not running (tailscaled did not answer)";
|
|
157
|
+
return STATES[t.state] || t.state;
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
/** `work doctor`'s line. Optional: `–` where nothing is wrong but nothing
|
|
161
|
+
* serves work yet, `✗` only where what is set up does not work. */
|
|
162
|
+
export function tailscaleLine(t) {
|
|
163
|
+
const head = "Tailscale".padEnd(11);
|
|
164
|
+
if (!t?.installed)
|
|
165
|
+
return `${head}– not installed (optional: \`tailscale serve\` reaches work from your other devices)`;
|
|
166
|
+
if (t.serve?.funnel)
|
|
167
|
+
return `${head}✗ Funnel publishes ${t.serve.url} to the internet, and work has no login: tailscale funnel --https=${new URL(t.serve.url).port || 443} off`;
|
|
168
|
+
if (!t.running)
|
|
169
|
+
return `${head}– ${stateText(t)} (optional: ${t.state === null ? "start tailscaled" : "tailscale up"}, then work setup --tailscale)`;
|
|
170
|
+
if (t.serve)
|
|
171
|
+
return t.serve.allowed
|
|
172
|
+
? `${head}✓ serves work at ${t.serve.url}`
|
|
173
|
+
: `${head}✗ serves work at ${t.serve.url}, but work refuses that name: \`work setup\` allows it`;
|
|
174
|
+
if (!t.serveCli)
|
|
175
|
+
return `${head}– ${t.name}: tailscale ${t.version || "(unknown version)"} predates \`tailscale serve --bg\` (${SERVE_SINCE})`;
|
|
176
|
+
if (t.rootTaken)
|
|
177
|
+
return `${head}– ${t.name}: https://${t.name}/ serves ${t.rootTaken}, not work`;
|
|
178
|
+
return `${head}– ${t.name}, not serving work: \`work setup --tailscale\` serves it at https://${t.name}/${t.https === false ? " (HTTPS certificates are off on the tailnet: tailscale offers to turn them on)" : ""}`;
|
|
179
|
+
}
|
package/package.json
CHANGED
package/dist/_CkwTsHKB.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$input_status as e}from"./_DqYih4xk.js";export{e as _};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{$input_fileChange as e}from"./_NM79Lu3L.js";export{e as _};
|