@dylanpiercey/work 0.0.25 → 0.0.26

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.
Files changed (155) hide show
  1. package/dist/index.mjs +1339 -1130
  2. package/dist/public/assets/{_HQ9PAY76.js → _3DS0-L56.js} +2 -2
  3. package/dist/public/assets/{_HQ9PAY76.js.map → _3DS0-L56.js.map} +1 -1
  4. package/dist/public/assets/{_9aeA8rOj.js → _4zrhY6Hz.js} +2 -2
  5. package/dist/public/assets/{_9aeA8rOj.js.map → _4zrhY6Hz.js.map} +1 -1
  6. package/dist/public/assets/{_CEkYZBAP.js → _9yxdDAG2.js} +2 -2
  7. package/dist/public/assets/{_CEkYZBAP.js.map → _9yxdDAG2.js.map} +1 -1
  8. package/dist/public/assets/{_BKhpqcjZ.js → _B0EWwyqt.js} +2 -2
  9. package/dist/public/assets/{_BKhpqcjZ.js.map → _B0EWwyqt.js.map} +1 -1
  10. package/dist/public/assets/{_CQ226LoE.js → _B3XlLiMX.js} +2 -2
  11. package/dist/public/assets/{_CQ226LoE.js.map → _B3XlLiMX.js.map} +1 -1
  12. package/dist/public/assets/{_1HL7xKSm2.js → _B6jc5hee2.js} +2 -2
  13. package/dist/public/assets/{_1HL7xKSm2.js.map → _B6jc5hee2.js.map} +1 -1
  14. package/dist/public/assets/{_DpRcj430.js → _B8v4O_0A.js} +2 -2
  15. package/dist/public/assets/{_DpRcj430.js.map → _B8v4O_0A.js.map} +1 -1
  16. package/dist/public/assets/{_DLCyWzcv.js → _B90xUJwa.js} +2 -2
  17. package/dist/public/assets/{_DLCyWzcv.js.map → _B90xUJwa.js.map} +1 -1
  18. package/dist/public/assets/{_Yi88IPV7.js → _BBcHV4t3.js} +2 -2
  19. package/dist/public/assets/{_Yi88IPV7.js.map → _BBcHV4t3.js.map} +1 -1
  20. package/dist/public/assets/{_BZIZ_SK12.js → _BCHgEFuU2.js} +2 -2
  21. package/dist/public/assets/{_BZIZ_SK12.js.map → _BCHgEFuU2.js.map} +1 -1
  22. package/dist/public/assets/{_CLbNAkLH.js → _BFaCc0Fr.js} +2 -2
  23. package/dist/public/assets/{_CLbNAkLH.js.map → _BFaCc0Fr.js.map} +1 -1
  24. package/dist/public/assets/{_YwLd1CyV2.js → _BHOSXRvT2.js} +2 -2
  25. package/dist/public/assets/{_YwLd1CyV2.js.map → _BHOSXRvT2.js.map} +1 -1
  26. package/dist/public/assets/{_CbDgW4182.js → _BL1Qjjbj2.js} +2 -2
  27. package/dist/public/assets/{_CbDgW4182.js.map → _BL1Qjjbj2.js.map} +1 -1
  28. package/dist/public/assets/{_CfPcKX5x.js → _BTSVLq45.js} +2 -2
  29. package/dist/public/assets/{_CfPcKX5x.js.map → _BTSVLq45.js.map} +1 -1
  30. package/dist/public/assets/{_9S18Ta_A2.js → _BWCaJFWu2.js} +2 -2
  31. package/dist/public/assets/{_9S18Ta_A2.js.map → _BWCaJFWu2.js.map} +1 -1
  32. package/dist/public/assets/{_RLVC3hrW.js → _BYgOQIgU.js} +2 -2
  33. package/dist/public/assets/{_RLVC3hrW.js.map → _BYgOQIgU.js.map} +1 -1
  34. package/dist/public/assets/{_DFITprgc.js → _BbQpzv-b.js} +2 -2
  35. package/dist/public/assets/{_DFITprgc.js.map → _BbQpzv-b.js.map} +1 -1
  36. package/dist/public/assets/{_D741vGhV2.js → _BceXC2mY2.js} +2 -2
  37. package/dist/public/assets/{_D741vGhV2.js.map → _BceXC2mY2.js.map} +1 -1
  38. package/dist/public/assets/{_B8kpUU9M2.js → _BezA3VCW2.js} +2 -2
  39. package/dist/public/assets/{_B8kpUU9M2.js.map → _BezA3VCW2.js.map} +1 -1
  40. package/dist/public/assets/{_CuPyQMXG.js → _BkXbkyGW.js} +2 -2
  41. package/dist/public/assets/{_CuPyQMXG.js.map → _BkXbkyGW.js.map} +1 -1
  42. package/dist/public/assets/{_CzR_xKWT2.js → _Bku4aoKi2.js} +2 -2
  43. package/dist/public/assets/{_CzR_xKWT2.js.map → _Bku4aoKi2.js.map} +1 -1
  44. package/dist/public/assets/{_B1V9NmOs.js → _BnAAwGX7.js} +2 -2
  45. package/dist/public/assets/{_B1V9NmOs.js.map → _BnAAwGX7.js.map} +1 -1
  46. package/dist/public/assets/{_lSCX-M2g2.js → _Bn_IeXyJ2.js} +2 -2
  47. package/dist/public/assets/{_lSCX-M2g2.js.map → _Bn_IeXyJ2.js.map} +1 -1
  48. package/dist/public/assets/{_BX1npf8w.js → _BuAtoZO9.js} +2 -2
  49. package/dist/public/assets/{_BX1npf8w.js.map → _BuAtoZO9.js.map} +1 -1
  50. package/dist/public/assets/{_uMjcl_A9.js → _Bw1wXNRb.js} +2 -2
  51. package/dist/public/assets/{_uMjcl_A9.js.map → _Bw1wXNRb.js.map} +1 -1
  52. package/dist/public/assets/{_BRXV43up2.js → _ByM5cKFZ2.js} +2 -2
  53. package/dist/public/assets/{_BRXV43up2.js.map → _ByM5cKFZ2.js.map} +1 -1
  54. package/dist/public/assets/{_CDFX5Mj22.js → _C1BJoPEM2.js} +2 -2
  55. package/dist/public/assets/{_CDFX5Mj22.js.map → _C1BJoPEM2.js.map} +1 -1
  56. package/dist/public/assets/{_CBr5Ba20.js → _C40Q1jUM.js} +2 -2
  57. package/dist/public/assets/{_CBr5Ba20.js.map → _C40Q1jUM.js.map} +1 -1
  58. package/dist/public/assets/{_BF01ag242.js → _C4c3j8-e2.js} +2 -2
  59. package/dist/public/assets/{_BF01ag242.js.map → _C4c3j8-e2.js.map} +1 -1
  60. package/dist/public/assets/{_DdZtiWyr2.js → _C4mc8cz_2.js} +2 -2
  61. package/dist/public/assets/{_DdZtiWyr2.js.map → _C4mc8cz_2.js.map} +1 -1
  62. package/dist/public/assets/{_BH5WECTb.js → _C5Syh0Ww.js} +2 -2
  63. package/dist/public/assets/{_BH5WECTb.js.map → _C5Syh0Ww.js.map} +1 -1
  64. package/dist/public/assets/{_z5A9_LlM2.js → _C9mCOeXC2.js} +2 -2
  65. package/dist/public/assets/{_z5A9_LlM2.js.map → _C9mCOeXC2.js.map} +1 -1
  66. package/dist/public/assets/{_CUQGsk1b.js → _CCXv0fQL.js} +2 -2
  67. package/dist/public/assets/{_CUQGsk1b.js.map → _CCXv0fQL.js.map} +1 -1
  68. package/dist/public/assets/{_3SrQQ7Pj.js → _CIMQ9ucx.js} +2 -2
  69. package/dist/public/assets/{_3SrQQ7Pj.js.map → _CIMQ9ucx.js.map} +1 -1
  70. package/dist/public/assets/{_CJOrfxKo.js → _CJu6XPJp.js} +2 -2
  71. package/dist/public/assets/{_CJOrfxKo.js.map → _CJu6XPJp.js.map} +1 -1
  72. package/dist/public/assets/{_rGOsEcXq.js → _CL3OJTyc.js} +2 -2
  73. package/dist/public/assets/{_rGOsEcXq.js.map → _CL3OJTyc.js.map} +1 -1
  74. package/dist/public/assets/{_BqG-g86k.js → _COWzuJLi.js} +2 -2
  75. package/dist/public/assets/{_BqG-g86k.js.map → _COWzuJLi.js.map} +1 -1
  76. package/dist/public/assets/{_CxuWhOVi.js → _CYAY10rl.js} +2 -2
  77. package/dist/public/assets/{_CxuWhOVi.js.map → _CYAY10rl.js.map} +1 -1
  78. package/dist/public/assets/{_DouGadhR2.js → _C_-cJHl52.js} +2 -2
  79. package/dist/public/assets/{_DouGadhR2.js.map → _C_-cJHl52.js.map} +1 -1
  80. package/dist/public/assets/{_DVVH2TQg2.js → _C_o4jIiI2.js} +2 -2
  81. package/dist/public/assets/{_DVVH2TQg2.js.map → _C_o4jIiI2.js.map} +1 -1
  82. package/dist/public/assets/{_xfzjNXcw.js → _CcEkQOzI.js} +2 -2
  83. package/dist/public/assets/{_xfzjNXcw.js.map → _CcEkQOzI.js.map} +1 -1
  84. package/dist/public/assets/{_DsGSLk202.js → _CcTw2XVJ2.js} +2 -2
  85. package/dist/public/assets/{_DsGSLk202.js.map → _CcTw2XVJ2.js.map} +1 -1
  86. package/dist/public/assets/{_BUav6D33.js → _CcZY13Mv.js} +2 -2
  87. package/dist/public/assets/{_BUav6D33.js.map → _CcZY13Mv.js.map} +1 -1
  88. package/dist/public/assets/{_B_cICNaj.js → _CiM4flzQ.js} +2 -2
  89. package/dist/public/assets/{_B_cICNaj.js.map → _CiM4flzQ.js.map} +1 -1
  90. package/dist/public/assets/{_BrSeKTsf.js → _CkgN_1B4.js} +2 -2
  91. package/dist/public/assets/{_BrSeKTsf.js.map → _CkgN_1B4.js.map} +1 -1
  92. package/dist/public/assets/{_p9UHh3EI.js → _Ckl-BD0z.js} +2 -2
  93. package/dist/public/assets/{_p9UHh3EI.js.map → _Ckl-BD0z.js.map} +1 -1
  94. package/dist/public/assets/{_CmiNapWP.js → _CklPFfiE.js} +2 -2
  95. package/dist/public/assets/{_CmiNapWP.js.map → _CklPFfiE.js.map} +1 -1
  96. package/dist/public/assets/{_CDXimyTs.js → _Cksks7Aq.js} +2 -2
  97. package/dist/public/assets/{_CDXimyTs.js.map → _Cksks7Aq.js.map} +1 -1
  98. package/dist/public/assets/{_gEX1UmtF.js → _D5XNceDa.js} +2 -2
  99. package/dist/public/assets/{_gEX1UmtF.js.map → _D5XNceDa.js.map} +1 -1
  100. package/dist/public/assets/{_aeuo2GrL.js → _D6PSNFK2.js} +2 -2
  101. package/dist/public/assets/{_aeuo2GrL.js.map → _D6PSNFK2.js.map} +1 -1
  102. package/dist/public/assets/{_VC9Lug432.js → _D6ajKbnR2.js} +2 -2
  103. package/dist/public/assets/{_VC9Lug432.js.map → _D6ajKbnR2.js.map} +1 -1
  104. package/dist/public/assets/{_DqrOB1uq.js → _D93mcdV_.js} +2 -2
  105. package/dist/public/assets/{_DqrOB1uq.js.map → _D93mcdV_.js.map} +1 -1
  106. package/dist/public/assets/{_CT89obfW2.js → _DAmVpDm42.js} +2 -2
  107. package/dist/public/assets/{_CT89obfW2.js.map → _DAmVpDm42.js.map} +1 -1
  108. package/dist/public/assets/{_DG7IBgdX2.js → _DHiC3KZs2.js} +2 -2
  109. package/dist/public/assets/{_DG7IBgdX2.js.map → _DHiC3KZs2.js.map} +1 -1
  110. package/dist/public/assets/{_DzBMrtq2.js → _DMnlsxfJ.js} +2 -2
  111. package/dist/public/assets/{_DzBMrtq2.js.map → _DMnlsxfJ.js.map} +1 -1
  112. package/dist/public/assets/{_DlDsWUf0.js → _DR7ERXYG.js} +2 -2
  113. package/dist/public/assets/{_DlDsWUf0.js.map → _DR7ERXYG.js.map} +1 -1
  114. package/dist/public/assets/{_Dp045JNf.js → _DS2n8BHk.js} +2 -2
  115. package/dist/public/assets/{_Dp045JNf.js.map → _DS2n8BHk.js.map} +1 -1
  116. package/dist/public/assets/{_BoTZGNX6.js → _DZLXHJz9.js} +2 -2
  117. package/dist/public/assets/{_BoTZGNX6.js.map → _DZLXHJz9.js.map} +1 -1
  118. package/dist/public/assets/{_CwezUus2.js → _DeVfr9KF.js} +2 -2
  119. package/dist/public/assets/{_CwezUus2.js.map → _DeVfr9KF.js.map} +1 -1
  120. package/dist/public/assets/{_C7kj-vU8.js → _DhKDR71S.js} +2 -2
  121. package/dist/public/assets/{_C7kj-vU8.js.map → _DhKDR71S.js.map} +1 -1
  122. package/dist/public/assets/{_CNtY4cX8.js → _Do8MWxMq.js} +2 -2
  123. package/dist/public/assets/{_CNtY4cX8.js.map → _Do8MWxMq.js.map} +1 -1
  124. package/dist/public/assets/{_ilwK9INO.js → _DvJ5pFyD.js} +2 -2
  125. package/dist/public/assets/{_ilwK9INO.js.map → _DvJ5pFyD.js.map} +1 -1
  126. package/dist/public/assets/{_DuO1iiUc.js → _Ex4BT3jU.js} +2 -2
  127. package/dist/public/assets/{_DuO1iiUc.js.map → _Ex4BT3jU.js.map} +1 -1
  128. package/dist/public/assets/{_C7MvOM-s.js → _G3APpSp7.js} +2 -2
  129. package/dist/public/assets/{_C7MvOM-s.js.map → _G3APpSp7.js.map} +1 -1
  130. package/dist/public/assets/{_eL_pqRE6.js → _IGQ5M1j9.js} +2 -2
  131. package/dist/public/assets/{_eL_pqRE6.js.map → _IGQ5M1j9.js.map} +1 -1
  132. package/dist/public/assets/{_ChHjhnni.js → _Lg72TRS2.js} +2 -2
  133. package/dist/public/assets/{_ChHjhnni.js.map → _Lg72TRS2.js.map} +1 -1
  134. package/dist/public/assets/{_zupI5B7S2.js → _PM3bdTsm2.js} +2 -2
  135. package/dist/public/assets/{_zupI5B7S2.js.map → _PM3bdTsm2.js.map} +1 -1
  136. package/dist/public/assets/{_CusW3CfU.js → _TmaKjRqH.js} +2 -2
  137. package/dist/public/assets/{_CusW3CfU.js.map → _TmaKjRqH.js.map} +1 -1
  138. package/dist/public/assets/{_UrjIppl52.js → _YHmL_kKH2.js} +2 -2
  139. package/dist/public/assets/{_UrjIppl52.js.map → _YHmL_kKH2.js.map} +1 -1
  140. package/dist/public/assets/{_BDQbWw_A.js → _iT2NC6BZ.js} +2 -2
  141. package/dist/public/assets/{_BDQbWw_A.js.map → _iT2NC6BZ.js.map} +1 -1
  142. package/dist/public/assets/{_DKzGGH5Q2.js → _is3ZWpCh2.js} +2 -2
  143. package/dist/public/assets/{_DKzGGH5Q2.js.map → _is3ZWpCh2.js.map} +1 -1
  144. package/dist/public/assets/{_C8A2lH2v2.js → _kmf-1u2q2.js} +2 -2
  145. package/dist/public/assets/{_C8A2lH2v2.js.map → _kmf-1u2q2.js.map} +1 -1
  146. package/dist/public/assets/{_B48WIV67.js → _mFpTNhHE.js} +2 -2
  147. package/dist/public/assets/{_B48WIV67.js.map → _mFpTNhHE.js.map} +1 -1
  148. package/dist/public/assets/{_BKbzIZk3.js → _zitF0rGb.js} +2 -2
  149. package/dist/public/assets/{_BKbzIZk3.js.map → _zitF0rGb.js.map} +1 -1
  150. package/dist/public/assets/{index-BuAiuld1.js → index-ChgwxyPj.js} +63 -63
  151. package/dist/public/assets/index-ChgwxyPj.js.map +1 -0
  152. package/dist/public/assets/index-Cl8B5MV1.css +1 -0
  153. package/package.json +1 -1
  154. package/dist/public/assets/index-BuAiuld1.js.map +0 -1
  155. package/dist/public/assets/index-D2S6Vhpc.css +0 -1
package/dist/index.mjs CHANGED
@@ -3060,6 +3060,14 @@ function _attrs(data, nodeAccessor, scopeId, tagName) {
3060
3060
  }
3061
3061
  return result;
3062
3062
  }
3063
+ function _attrs_partial(data, skip, nodeAccessor, scopeId, tagName) {
3064
+ let partial = {};
3065
+ for (let name in data) {
3066
+ let key = isEventHandler(name) ? `on-${getEventHandlerName(name)}` : name;
3067
+ skip[key] || (partial[key] = data[name]);
3068
+ }
3069
+ return _attrs(partial, nodeAccessor, scopeId, tagName);
3070
+ }
3063
3071
  function writeControlledScope(type, scopeId, nodeAccessor, value, valueChange, serializeType) {
3064
3072
  writeScope(scopeId, serializeType ? {
3065
3073
  ["F" + nodeAccessor]: type,
@@ -3359,30 +3367,35 @@ function coalesce(fn) {
3359
3367
  }
3360
3368
  //#endregion
3361
3369
  //#region src/tags/toast.marko
3362
- var toast_default = _template("q", (input) => {
3363
- const $scope0_reason = _scope_reason(), $sg__input_title = _serialize_guard($scope0_reason, 4), $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 2), $sg__input_content = _serialize_guard($scope0_reason, 5), $sg__input_action = _serialize_guard($scope0_reason, 6), $sg__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 1), $sg__input_onDismiss = _serialize_guard($scope0_reason, 7), $si__input_title = _serialize_if($scope0_reason, 4), $si__input_content = _serialize_if($scope0_reason, 5), $si__input_action__OR__input_onDismiss = _serialize_if($scope0_reason, 1), $si__input_action_content = _serialize_if($scope0_reason, 8);
3370
+ var toast_default = _template("u", (input) => {
3371
+ const $scope0_reason = _scope_reason(), $sg__input_title = _serialize_guard($scope0_reason, 4), $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 3), $sg__input_content = _serialize_guard($scope0_reason, 5), $sg__input_action = _serialize_guard($scope0_reason, 6), $sg__input_action__OR__input_onDismiss = _serialize_guard($scope0_reason, 2), $sg__input_onDismiss = _serialize_guard($scope0_reason, 8), $si__input_title = _serialize_if($scope0_reason, 4), $si__input_content = _serialize_if($scope0_reason, 5), $si__input_action__OR__input_onDismiss = _serialize_if($scope0_reason, 2), $si__input_action_content = _serialize_if($scope0_reason, 7);
3364
3372
  const $scope0_id = _scope_id();
3365
3373
  const $input_action_content__closures = /* @__PURE__ */ new Set();
3366
- const kind = input.kind || "error";
3367
- const placement = input.placement || "float";
3374
+ const { kind: inputKind, placement: inputPlacement, title, class: inputClass, content, action, onDismiss, ...htmlInput } = input;
3375
+ const kind = inputKind || "error";
3376
+ const placement = inputPlacement || "float";
3368
3377
  _html(`<div${_attr_class([
3369
3378
  "toast",
3370
3379
  `toast-${kind}`,
3371
- `toast-${placement}`
3372
- ])} role=${kind === "error" ? "alert" : "status"}><div class=toast-body>`);
3380
+ `toast-${placement}`,
3381
+ inputClass
3382
+ ])} role=${kind === "error" ? "alert" : "status"}${_attrs_partial(htmlInput, {
3383
+ class: 1,
3384
+ role: 1
3385
+ }, "a", $scope0_id, "div")}><div class=toast-body>`);
3373
3386
  _if(() => {
3374
- if (input.title) {
3387
+ if (title) {
3375
3388
  const $scope1_id = _scope_id();
3376
- _html(`<strong class=toast-title>${_escape(input.title)}${_el_resume($scope1_id, "a", $sg__input_title)}</strong>`);
3389
+ _html(`<strong class=toast-title>${_escape(title)}${_el_resume($scope1_id, "a", $sg__input_title)}</strong>`);
3377
3390
  $si__input_title && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
3378
3391
  return 0;
3379
3392
  }
3380
3393
  }, $scope0_id, "b", $sg__input_title, $sg__input_title, $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss, 0, 1);
3381
3394
  _if(() => {
3382
- if (input.content) {
3395
+ if (content) {
3383
3396
  const $scope2_id = _scope_id();
3384
3397
  _html("<div class=toast-content>");
3385
- _dynamic_tag($scope2_id, "a", input.content, {}, 0, 0, $sg__input_content);
3398
+ _dynamic_tag($scope2_id, "a", content, {}, 0, 0, $sg__input_content);
3386
3399
  _html("</div>");
3387
3400
  $si__input_content && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
3388
3401
  return 0;
@@ -3390,22 +3403,22 @@ var toast_default = _template("q", (input) => {
3390
3403
  }, $scope0_id, "c", $sg__input_content, $sg__input_content, $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss, 0, 1);
3391
3404
  _html("</div>");
3392
3405
  _if(() => {
3393
- if (input.action || input.onDismiss) {
3406
+ if (action || onDismiss) {
3394
3407
  const $scope3_id = _scope_id();
3395
3408
  _html("<div class=toast-actions>");
3396
3409
  _if(() => {
3397
- if (input.action) {
3410
+ if (action) {
3398
3411
  const $scope4_id = _scope_id();
3399
- _dynamic_tag($scope4_id, "a", input.action.content, {}, 0, 0, _serialize_guard($scope0_reason, 8));
3412
+ _dynamic_tag($scope4_id, "a", action.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
3400
3413
  $si__input_action__OR__input_onDismiss && _subscribe($si__input_action_content && $input_action_content__closures, writeScope($scope4_id, { _: _scope_with_id($scope3_id) }));
3401
3414
  return 0;
3402
3415
  }
3403
3416
  }, $scope3_id, "a", $sg__input_action, $sg__input_action, $sg__input_action__OR__input_onDismiss);
3404
3417
  _if(() => {
3405
- if (input.onDismiss) {
3418
+ if (onDismiss) {
3406
3419
  const $scope5_id = _scope_id();
3407
- _html(`<button class="icon-btn toast-dismiss" title=Dismiss>×</button>${_el_resume($scope5_id, "a")}`);
3408
- _script($scope5_id, "q0");
3420
+ _html(`<button class="icon-btn toast-dismiss" type=button title=Dismiss aria-label=Dismiss>×</button>${_el_resume($scope5_id, "a")}`);
3421
+ _script($scope5_id, "u0");
3409
3422
  writeScope($scope5_id, { _: _scope_with_id($scope3_id) });
3410
3423
  return 0;
3411
3424
  }
@@ -3415,23 +3428,25 @@ var toast_default = _template("q", (input) => {
3415
3428
  return 0;
3416
3429
  }
3417
3430
  }, $scope0_id, "d", $sg__input_action__OR__input_onDismiss, $sg__input_action__OR__input_onDismiss, $sg__input_title__OR__input_content__OR__input_action__OR__input_onDismiss, 0, 1);
3418
- _html(`</div>${_el_resume($scope0_id, "a", _serialize_guard($scope0_reason, 0))}`);
3419
- _script($scope0_id, "q1");
3431
+ _html(`</div>${_el_resume($scope0_id, "a")}`);
3432
+ _script($scope0_id, "u1");
3433
+ _script($scope0_id, "u2");
3420
3434
  writeScope($scope0_id, {
3421
- i: $si__input_title && input.title,
3422
- j: $si__input_content && input.content,
3423
- k: $si__input_action__OR__input_onDismiss && input.action,
3424
- l: input.onDismiss,
3425
- n: $si__input_action__OR__input_onDismiss && input.action?.content,
3426
- o: _serialize_if($scope0_reason, 3) && kind,
3427
- p: placement,
3428
- w: $si__input_action_content && $input_action_content__closures
3435
+ i: $si__input_title && title,
3436
+ j: _serialize_if($scope0_reason, 0) && inputClass,
3437
+ k: $si__input_content && content,
3438
+ l: $si__input_action__OR__input_onDismiss && action,
3439
+ m: $si__input_action__OR__input_onDismiss && action?.content,
3440
+ n: onDismiss,
3441
+ q: _serialize_if($scope0_reason, 1) && kind,
3442
+ r: placement,
3443
+ x: $si__input_action_content && $input_action_content__closures
3429
3444
  });
3430
3445
  _resume_branch($scope0_id);
3431
3446
  });
3432
3447
  //#endregion
3433
3448
  //#region src/tags/icons/icon-base.marko
3434
- var icon_base_default = _template("v", (input) => {
3449
+ var icon_base_default = _template("z", (input) => {
3435
3450
  const $scope0_reason = _scope_reason();
3436
3451
  const $scope0_id = _scope_id();
3437
3452
  const size = input.size ?? 15;
@@ -3440,7 +3455,7 @@ var icon_base_default = _template("v", (input) => {
3440
3455
  });
3441
3456
  //#endregion
3442
3457
  //#region src/tags/icons/icon-diff.marko
3443
- var icon_diff_default = _template("y", (input) => {
3458
+ var icon_diff_default = _template("C", (input) => {
3444
3459
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3445
3460
  const $scope0_id = _scope_id();
3446
3461
  _set_serialize_reason({
@@ -3457,7 +3472,7 @@ var icon_diff_default = _template("y", (input) => {
3457
3472
  });
3458
3473
  //#endregion
3459
3474
  //#region src/tags/icons/icon-manage.marko
3460
- var icon_manage_default = _template("F", (input) => {
3475
+ var icon_manage_default = _template("J", (input) => {
3461
3476
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3462
3477
  const $scope0_id = _scope_id();
3463
3478
  _set_serialize_reason({
@@ -3474,7 +3489,7 @@ var icon_manage_default = _template("F", (input) => {
3474
3489
  });
3475
3490
  //#endregion
3476
3491
  //#region src/tags/icons/icon-plus.marko
3477
- var icon_plus_default = _template("G", (input) => {
3492
+ var icon_plus_default = _template("K", (input) => {
3478
3493
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3479
3494
  const $scope0_id = _scope_id();
3480
3495
  _set_serialize_reason({
@@ -3498,7 +3513,7 @@ var PATHS = {
3498
3513
  copilot: "M19.245 5.364c1.322 1.36 1.877 3.216 2.11 5.817.622 0 1.2.135 1.592.654l.73.964c.21.278.323.61.323.955v2.62c0 .339-.173.669-.453.868C20.239 19.602 16.157 21.5 12 21.5c-4.6 0-9.205-2.583-11.547-4.258-.28-.2-.452-.53-.453-.868v-2.62c0-.345.113-.679.321-.956l.73-.963c.392-.517.974-.654 1.593-.654l.029-.297c.25-2.446.81-4.213 2.082-5.52 2.461-2.54 5.71-2.851 7.146-2.864h.198c1.436.013 4.685.323 7.146 2.864zm-7.244 4.328c-.284 0-.613.016-.962.05-.123.447-.305.85-.57 1.108-1.05 1.023-2.316 1.18-2.994 1.18-.638 0-1.306-.13-1.851-.464-.516.165-1.012.403-1.044.996a65.882 65.882 0 00-.063 2.884l-.002.48c-.002.563-.005 1.126-.013 1.69.002.326.204.63.51.765 2.482 1.102 4.83 1.657 6.99 1.657 2.156 0 4.504-.555 6.985-1.657a.854.854 0 00.51-.766c.03-1.682.006-3.372-.076-5.053-.031-.596-.528-.83-1.046-.996-.546.333-1.212.464-1.85.464-.677 0-1.942-.157-2.993-1.18-.266-.258-.447-.661-.57-1.108-.32-.032-.64-.049-.96-.05zm-2.525 4.013c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zm5 0c.539 0 .976.426.976.95v1.753c0 .525-.437.95-.976.95a.964.964 0 01-.976-.95v-1.752c0-.525.437-.951.976-.951zM7.635 5.087c-1.05.102-1.935.438-2.385.906-.975 1.037-.765 3.668-.21 4.224.405.394 1.17.657 1.995.657h.09c.649-.013 1.785-.176 2.73-1.11.435-.41.705-1.433.675-2.47-.03-.834-.27-1.52-.63-1.813-.39-.336-1.275-.482-2.265-.394zm6.465.394c-.36.292-.6.98-.63 1.813-.03 1.037.24 2.06.675 2.47.968.957 2.136 1.104 2.776 1.11h.044c.825 0 1.59-.263 1.995-.657.555-.556.765-3.187-.21-4.224-.45-.468-1.335-.804-2.385-.906-.99-.088-1.875.058-2.265.394zM12 7.615c-.24 0-.525.015-.84.044.03.16.045.336.06.526l-.001.159a2.94 2.94 0 01-.014.25c.225-.022.425-.027.612-.028h.366c.187 0 .387.006.612.028-.015-.146-.015-.277-.015-.409.015-.19.03-.365.06-.526a9.29 9.29 0 00-.84-.044z",
3499
3514
  cursor: "M22.106 5.68L12.5.135a.998.998 0 00-.998 0L1.893 5.68a.84.84 0 00-.419.726v11.186c0 .3.16.577.42.727l9.607 5.547a.999.999 0 00.998 0l9.608-5.547a.84.84 0 00.42-.727V6.407a.84.84 0 00-.42-.726zm-.603 1.176L12.228 22.92c-.063.108-.228.064-.228-.061V12.34a.59.59 0 00-.295-.51l-9.11-5.26c-.107-.062-.063-.228.062-.228h18.55c.264 0 .428.286.296.514z"
3500
3515
  };
3501
- var icon_agent_default = _template("t", (input) => {
3516
+ var icon_agent_default = _template("x", (input) => {
3502
3517
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0), $si__input_size__OR__input_class = _serialize_if($scope0_reason, 0), $si__input_size__OR__input_agent__OR__input_class = _serialize_if($scope0_reason, 1), $sg__input_agent = _serialize_guard($scope0_reason, 2);
3503
3518
  const $scope0_id = _scope_id();
3504
3519
  const size = input.size ?? 15;
@@ -3546,18 +3561,20 @@ var $class$3 = [
3546
3561
  "\"row archived\"",
3547
3562
  "\"row hi archived\""
3548
3563
  ];
3549
- var palette_default = _template("k", (input) => {
3550
- const $scope0_reason = _scope_reason(), $sg__input_inline = _serialize_guard($scope0_reason, 4), $sg__input_inline__OR__input_workspaces_length = _serialize_guard($scope0_reason, 1), $sg__input_settings_agents = _serialize_guard($scope0_reason, 6), $si__input_settings_agents = _serialize_if($scope0_reason, 6), $si__input_selectedId = _serialize_if($scope0_reason, 2), $si__input_status = _serialize_if($scope0_reason, 5);
3564
+ var palette_default = _template("n", (input) => {
3565
+ const $scope0_reason = _scope_reason(), $sg__input_inline = _serialize_guard($scope0_reason, 8), $sg__input_inline__OR__input_workspaces_length = _serialize_guard($scope0_reason, 0), $sg__input_settings_agents = _serialize_guard($scope0_reason, 10), $si__input_settings_agents = _serialize_if($scope0_reason, 10), $si__input_selectedId = _serialize_if($scope0_reason, 7), $si__input_status = _serialize_if($scope0_reason, 9);
3551
3566
  const $scope0_id = _scope_id();
3552
3567
  const $input_selectedId__closures = /* @__PURE__ */ new Set();
3553
3568
  const $input_status__closures = /* @__PURE__ */ new Set();
3554
3569
  const $input_settings_agents__closures = /* @__PURE__ */ new Set();
3555
- let query = "";
3570
+ input.open;
3571
+ let query = input.query;
3572
+ let settings = input.settings;
3556
3573
  let hiRaw = 0;
3557
3574
  let showArchived = false;
3558
3575
  const active = input.workspaces.filter((ws) => ws.status === "active");
3559
3576
  const archived = input.workspaces.filter((ws) => ws.status === "archived");
3560
- const matches = _resume((list) => list.filter((ws) => fuzzy(query, ws.name)), "k2", $scope0_id);
3577
+ const matches = _resume((list) => list.filter((ws) => fuzzy(query || "", ws.name)), "n2", $scope0_id);
3561
3578
  const currentWs = input.workspaces.find((ws) => ws.id === input.selectedId);
3562
3579
  const commands = !query || !currentWs ? [] : [
3563
3580
  {
@@ -3572,10 +3589,10 @@ var palette_default = _template("k", (input) => {
3572
3589
  },
3573
3590
  {
3574
3591
  kind: "cmd",
3575
- label: `New ${input.settings?.preferredAgent || "agent"} session — ${currentWs.name}`,
3576
- run: () => input.onNewSession(currentWs, input.settings?.preferredAgent || "claude")
3592
+ label: `New ${settings?.preferredAgent || "agent"} session — ${currentWs.name}`,
3593
+ run: () => input.onNewSession(currentWs, settings?.preferredAgent || "claude")
3577
3594
  }
3578
- ].filter((r) => r.kind === "cmd" && fuzzy(query, r.label));
3595
+ ].filter((r) => r.kind === "cmd" && fuzzy(query || "", r.label));
3579
3596
  const rows = [
3580
3597
  ...matches(active).map((ws) => ({
3581
3598
  kind: "ws",
@@ -3595,13 +3612,13 @@ var palette_default = _template("k", (input) => {
3595
3612
  if (row.kind === "new") input.onNew();
3596
3613
  else if (row.kind === "cmd") row.run();
3597
3614
  else input.onSelect(row.ws);
3598
- }, "k3", $scope0_id);
3615
+ }, "n3", $scope0_id);
3599
3616
  _if(() => {
3600
3617
  if (!input.inline) {
3601
- const $scope1_id = _scope_id();
3602
- _html(`<div class=palette-backdrop></div>${_el_resume($scope1_id, "a")}`);
3603
- _script($scope1_id, "k4");
3604
- writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
3618
+ const $scope5_id = _scope_id();
3619
+ _html(`<div class=palette-backdrop></div>${_el_resume($scope5_id, "a")}`);
3620
+ _script($scope5_id, "n4");
3621
+ writeScope($scope5_id, {});
3605
3622
  return 0;
3606
3623
  }
3607
3624
  }, $scope0_id, "a", $sg__input_inline, $sg__input_inline, 1, 0, 1);
@@ -3610,16 +3627,16 @@ var palette_default = _template("k", (input) => {
3610
3627
  if (input.inline && !input.workspaces.length) {
3611
3628
  const $scope8_id = _scope_id();
3612
3629
  _html("<div class=\"onboard dim\"><p>A <strong>workspace</strong> checks out one or more repos as git worktrees on a shared branch and gives each agent session its own terminal. Create one to get started.</p><p>Pick your preferred agent below — new sessions and the quick-create button use it. GitHub access uses your <code>gh</code> login.</p></div>");
3613
- _serialize_if($scope0_reason, 1) && writeScope($scope8_id, {});
3630
+ _serialize_if($scope0_reason, 0) && writeScope($scope8_id, {});
3614
3631
  return 0;
3615
3632
  }
3616
3633
  }, $scope0_id, "c", $sg__input_inline__OR__input_workspaces_length, $sg__input_inline__OR__input_workspaces_length, 1, 0, 1);
3617
- _html(`<input${_attr_input_value($scope0_id, "d", query, _resume(function(v) {
3634
+ _html(`<input${_attr_input_value($scope0_id, "d", query || "", _resume(function(v) {
3618
3635
  query = v;
3619
3636
  hiRaw = 0;
3620
- }, "k0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3637
+ }, "n0", $scope0_id))} autofocus placeholder="Jump to workspace…" aria-label="Filter workspaces">${_el_resume($scope0_id, "d")}<ul class=rows>`);
3621
3638
  _for_of(rows, (row, i) => {
3622
- const $scope2_id = _scope_id();
3639
+ const $scope1_id = _scope_id();
3623
3640
  _html(`<li><div class=row-wrap><button class=${$class$3[(i === hi ? 1 : 0) + (row.kind === "ws" && row.archived ? 2 : 0)]}>`);
3624
3641
  _if(() => {
3625
3642
  if (row.kind === "new") {
@@ -3633,10 +3650,10 @@ var palette_default = _template("k", (input) => {
3633
3650
  writeScope($scope9_id, {});
3634
3651
  return 1;
3635
3652
  } else {
3636
- const $scope3_id = _scope_id();
3653
+ const $scope2_id = _scope_id();
3637
3654
  const st = input.status[row.ws.id];
3638
3655
  const rowPrs = (st?.repos || []).flatMap((r) => r.prs || []);
3639
- _html(`<span class=row-name><span${_attr_class(["dot", phaseOf$1(st)])}></span>${_el_resume($scope3_id, "a")}<span class=row-name-text>${_escape(row.ws.name)}${_el_resume($scope3_id, "b")}</span>`);
3656
+ _html(`<span class=row-name><span${_attr_class(["dot", phaseOf$1(st)])}></span>${_el_resume($scope2_id, "a")}<span class=row-name-text>${_escape(row.ws.name)}${_el_resume($scope2_id, "b")}</span>`);
3640
3657
  _if(() => {
3641
3658
  if (row.ws.id === input.selectedId) {
3642
3659
  const $scope14_id = _scope_id();
@@ -3644,7 +3661,7 @@ var palette_default = _template("k", (input) => {
3644
3661
  writeScope($scope14_id, {});
3645
3662
  return 0;
3646
3663
  }
3647
- }, $scope3_id, "c", 1, 1, 1, 0, 1);
3664
+ }, $scope2_id, "c", 1, 1, 1, 0, 1);
3648
3665
  _if(() => {
3649
3666
  if (row.archived) {
3650
3667
  const $scope15_id = _scope_id();
@@ -3652,7 +3669,7 @@ var palette_default = _template("k", (input) => {
3652
3669
  writeScope($scope15_id, {});
3653
3670
  return 0;
3654
3671
  }
3655
- }, $scope3_id, "d", 1, 1, 1, 0, 1);
3672
+ }, $scope2_id, "d", 1, 1, 1, 0, 1);
3656
3673
  _html("<span class=row-stats>");
3657
3674
  _if(() => {
3658
3675
  if (st?.agents) {
@@ -3661,7 +3678,7 @@ var palette_default = _template("k", (input) => {
3661
3678
  writeScope($scope11_id, {});
3662
3679
  return 0;
3663
3680
  }
3664
- }, $scope3_id, "e", 1, 1, 1, 0, 1);
3681
+ }, $scope2_id, "e", 1, 1, 1, 0, 1);
3665
3682
  _if(() => {
3666
3683
  if (rowPrs.length) {
3667
3684
  const $scope13_id = _scope_id();
@@ -3669,7 +3686,7 @@ var palette_default = _template("k", (input) => {
3669
3686
  writeScope($scope13_id, {});
3670
3687
  return 0;
3671
3688
  }
3672
- }, $scope3_id, "f", 1, 1, 1, 0, 1);
3689
+ }, $scope2_id, "f", 1, 1, 1, 0, 1);
3673
3690
  _if(() => {
3674
3691
  if ((st?.ports || []).length) {
3675
3692
  const $scope12_id = _scope_id();
@@ -3677,14 +3694,14 @@ var palette_default = _template("k", (input) => {
3677
3694
  writeScope($scope12_id, {});
3678
3695
  return 0;
3679
3696
  }
3680
- }, $scope3_id, "g", 1, 1, 1, 0, 1);
3697
+ }, $scope2_id, "g", 1, 1, 1, 0, 1);
3681
3698
  _html("</span></span><span class=row-repos>");
3682
3699
  _for_of(st?.repos || row.ws.repos, (repo) => {
3683
3700
  const $scope16_id = _scope_id();
3684
3701
  _html(`<span class=mono>${_escape(repo.worktree)}${_el_resume($scope16_id, "a")}</span>`);
3685
3702
  writeScope($scope16_id, {});
3686
- }, "full_name", $scope3_id, "h", 1, 1, 1, "</span>", 1);
3687
- _subscribe($si__input_status && $input_status__closures, _subscribe($si__input_selectedId && $input_selectedId__closures, writeScope($scope3_id, {
3703
+ }, "full_name", $scope2_id, "h", 1, 1, 1, "</span>", 1);
3704
+ _subscribe($si__input_status && $input_status__closures, _subscribe($si__input_selectedId && $input_selectedId__closures, writeScope($scope2_id, {
3688
3705
  l: st?.agents,
3689
3706
  m: st?.working,
3690
3707
  n: st?.waiting,
@@ -3694,20 +3711,20 @@ var palette_default = _template("k", (input) => {
3694
3711
  })));
3695
3712
  return 2;
3696
3713
  }
3697
- }, $scope2_id, "a", 1, 1, 1, "</button>");
3714
+ }, $scope1_id, "a", 1, 1, 1, "</button>");
3698
3715
  _if(() => {
3699
3716
  if (row.kind === "ws") {
3700
- const $scope4_id = _scope_id();
3717
+ const $scope3_id = _scope_id();
3701
3718
  _html("<button class=row-more title=\"Review changes\">");
3702
3719
  icon_diff_default({ size: 13 });
3703
- _html(`</button>${_el_resume($scope4_id, "a")}<button class=row-more title="Manage workspace">`);
3720
+ _html(`</button>${_el_resume($scope3_id, "a")}<button class=row-more title="Manage workspace">`);
3704
3721
  icon_manage_default({ size: 13 });
3705
3722
  const newPopId = _id();
3706
- _html(`</button>${_el_resume($scope4_id, "c")}<button class=row-more title="New session"${_attr("popovertarget", newPopId)}>`);
3723
+ _html(`</button>${_el_resume($scope3_id, "c")}<button class=row-more title="New session"${_attr("popovertarget", newPopId)}>`);
3707
3724
  icon_plus_default({ size: 13 });
3708
- _html(`</button>${_el_resume($scope4_id, "e")}<div${_attr("id", newPopId)} popover=auto class=new-session-pop>`);
3725
+ _html(`</button>${_el_resume($scope3_id, "e")}<div${_attr("id", newPopId)} popover=auto class=new-session-pop>`);
3709
3726
  _for_of([...input.settings?.agents || [], "shell"], (agent) => {
3710
- const $scope5_id = _scope_id();
3727
+ const $scope4_id = _scope_id();
3711
3728
  _html("<button>");
3712
3729
  _set_serialize_reason({
3713
3730
  1: $sg__input_settings_agents,
@@ -3718,22 +3735,22 @@ var palette_default = _template("k", (input) => {
3718
3735
  agent,
3719
3736
  size: 14
3720
3737
  });
3721
- _html(`${_sep($sg__input_settings_agents)}${_escape(agent)}${_el_resume($scope5_id, "c", $sg__input_settings_agents)}</button>${_el_resume($scope5_id, "a")}`);
3722
- _script($scope5_id, "k5");
3723
- writeScope($scope5_id, {
3738
+ _html(`${_sep($sg__input_settings_agents)}${_escape(agent)}${_el_resume($scope4_id, "c", $sg__input_settings_agents)}</button>${_el_resume($scope4_id, "a")}`);
3739
+ _script($scope4_id, "n5");
3740
+ writeScope($scope4_id, {
3724
3741
  e: agent,
3725
- _: _scope_with_id($scope4_id),
3742
+ _: _scope_with_id($scope3_id),
3726
3743
  b: $si__input_settings_agents && _existing_scope($childScope)
3727
3744
  });
3728
- }, (a) => a, $scope4_id, "g", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</div>", 1);
3729
- _script($scope4_id, "k6");
3730
- _subscribe($si__input_settings_agents && $input_settings_agents__closures, writeScope($scope4_id, {}));
3745
+ }, (a) => a, $scope3_id, "g", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</div>", 1);
3746
+ _script($scope3_id, "n6");
3747
+ _subscribe($si__input_settings_agents && $input_settings_agents__closures, writeScope($scope3_id, {}));
3731
3748
  return 0;
3732
3749
  }
3733
- }, $scope2_id, "b");
3750
+ }, $scope1_id, "b");
3734
3751
  _html("</div></li>");
3735
- _script($scope2_id, "k7");
3736
- writeScope($scope2_id, {
3752
+ _script($scope1_id, "n7");
3753
+ writeScope($scope1_id, {
3737
3754
  d: row,
3738
3755
  e: row?.kind,
3739
3756
  f: row?.archived,
@@ -3749,76 +3766,84 @@ var palette_default = _template("k", (input) => {
3749
3766
  if (archived.length && !query) {
3750
3767
  const $scope7_id = _scope_id();
3751
3768
  _html(`<button class="archived-link dim">${`archived (${_escape(`${archived.length}`)})`}${_el_resume($scope7_id, "b")}</button>${_el_resume($scope7_id, "a")}`);
3752
- _script($scope7_id, "k8");
3769
+ _script($scope7_id, "n8");
3753
3770
  writeScope($scope7_id, {});
3754
3771
  return 0;
3755
3772
  }
3756
3773
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
3757
3774
  _html("<div class=palette-foot><span></span><span class=\"dim hint\">↑↓ navigate · ↵ open · ⌘1–9 switch · esc close</span>");
3758
3775
  _if(() => {
3759
- if (input.settings) {
3776
+ if (settings) {
3760
3777
  const $scope6_id = _scope_id();
3761
3778
  _html("<label class=dim>");
3762
- _attr_select_value($scope6_id, "a", input.settings.preferredAgent, _resume(function(v) {
3763
- input.onSettings({
3764
- ...input.settings,
3779
+ _attr_select_value($scope6_id, "a", settings.preferredAgent, _resume(function(v) {
3780
+ settings = {
3781
+ ...settings,
3765
3782
  preferredAgent: v
3766
- });
3783
+ };
3767
3784
  api$7("/api/settings", {
3768
3785
  method: "PUT",
3769
3786
  headers: { "content-type": "application/json" },
3770
3787
  body: JSON.stringify({ preferredAgent: v })
3771
3788
  }).catch(() => {});
3772
- }, "k1", $scope6_id), () => {
3789
+ }, "n1", $scope6_id), () => {
3773
3790
  _html("<select aria-label=\"Preferred agent\">");
3774
- _for_of(input.settings.agents, (agent) => {
3791
+ _for_of(settings.agents, (agent) => {
3775
3792
  const $scope17_id = _scope_id();
3776
- _html(`<option${_attr_option_value(agent)}>${_escape(agent)}${_el_resume($scope17_id, "b", $sg__input_settings_agents)}</option>${_el_resume($scope17_id, "a", $sg__input_settings_agents)}`);
3777
- $si__input_settings_agents && writeScope($scope17_id, {});
3778
- }, (a) => a, $scope6_id, "a", $sg__input_settings_agents, 1, $sg__input_settings_agents, "</select>", 1);
3793
+ _html(`<option${_attr_option_value(agent)}>${_escape(agent)}${_el_resume($scope17_id, "b")}</option>${_el_resume($scope17_id, "a")}`);
3794
+ writeScope($scope17_id, {});
3795
+ }, (a) => a, $scope6_id, "a", 1, 1, 1, "</select>", 1);
3779
3796
  });
3780
3797
  _html("</label>");
3781
- _script($scope6_id, "k9");
3782
- writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
3798
+ _script($scope6_id, "n9");
3799
+ writeScope($scope6_id, {});
3783
3800
  return 0;
3784
3801
  }
3785
- }, $scope0_id, "g", _serialize_guard($scope0_reason, 0), _serialize_guard($scope0_reason, 3), 1, 0, 1);
3786
- _html(`</div></div>${_el_resume($scope0_id, "b", $sg__input_inline)}`);
3787
- _script($scope0_id, "k10");
3788
- _script($scope0_id, "k11");
3789
- _script($scope0_id, "k12");
3802
+ }, $scope0_id, "g", 1, 1, 1, 0, 1);
3803
+ _html(`</div></div>${_el_resume($scope0_id, "b")}`);
3804
+ _script($scope0_id, "n10");
3805
+ _script($scope0_id, "n11");
3806
+ _script($scope0_id, "n12");
3790
3807
  writeScope($scope0_id, {
3791
- j: $si__input_selectedId && input.workspaces,
3792
- k: input.selectedId,
3793
- m: input.onReview,
3794
- n: input.onManage,
3795
- o: input.settings,
3796
- p: input.settings?.preferredAgent,
3797
- q: input.onNewSession,
3798
- r: input.onNew,
3799
- s: input.onSelect,
3800
- u: input.inline,
3801
- v: input.openChange,
3802
- w: _serialize_if($scope0_reason, 4) && input.workspaces?.length,
3803
- y: input.status,
3804
- z: input.settings?.agents,
3805
- a0: input.onSettings,
3806
- a1: query,
3807
- a2: hiRaw,
3808
- a3: showArchived,
3809
- a4: active,
3810
- a5: archived,
3811
- a6: archived?.length,
3812
- a8: matches,
3813
- a9: currentWs,
3814
- ab: commands,
3815
- ad: rows,
3816
- af: rows.length,
3817
- ah: hi,
3818
- ai: pick,
3819
- aj: $si__input_selectedId && $input_selectedId__closures,
3820
- al: $si__input_status && $input_status__closures,
3821
- am: $si__input_settings_agents && $input_settings_agents__closures
3808
+ j: _serialize_if($scope0_reason, 2) && input.open,
3809
+ k: _serialize_if($scope0_reason, 1) && input.openChange,
3810
+ m: _serialize_if($scope0_reason, 4) && input.query,
3811
+ n: _serialize_if($scope0_reason, 3) && input.queryChange,
3812
+ p: _serialize_if($scope0_reason, 6) && input.settings,
3813
+ q: _serialize_if($scope0_reason, 5) && input.settingsChange,
3814
+ s: $si__input_selectedId && input.workspaces,
3815
+ t: input.selectedId,
3816
+ v: input.onReview,
3817
+ w: input.onManage,
3818
+ x: input.onNewSession,
3819
+ y: input.onNew,
3820
+ z: input.onSelect,
3821
+ a1: input.inline,
3822
+ a2: _serialize_if($scope0_reason, 8) && input.workspaces?.length,
3823
+ a4: input.status,
3824
+ a5: input.settings?.agents,
3825
+ a6: query,
3826
+ a8: settings,
3827
+ aa: settings?.preferredAgent,
3828
+ ab: settings?.agents,
3829
+ ac: hiRaw,
3830
+ ad: showArchived,
3831
+ ae: active,
3832
+ af: archived,
3833
+ ag: archived?.length,
3834
+ ai: matches,
3835
+ aj: currentWs,
3836
+ al: commands,
3837
+ an: rows,
3838
+ ao: rows.length,
3839
+ aq: hi,
3840
+ as: pick,
3841
+ u: input.openChange || void 0,
3842
+ a7: input.queryChange || void 0,
3843
+ a9: input.settingsChange || void 0,
3844
+ at: $si__input_selectedId && $input_selectedId__closures,
3845
+ au: $si__input_status && $input_status__closures,
3846
+ av: $si__input_settings_agents && $input_settings_agents__closures
3822
3847
  });
3823
3848
  _resume_branch($scope0_id);
3824
3849
  });
@@ -3827,14 +3852,19 @@ var palette_default = _template("k", (input) => {
3827
3852
  var dialog_close_default = _template("c", (input) => {
3828
3853
  const $scope0_reason = _scope_reason();
3829
3854
  const $scope0_id = _scope_id();
3830
- _html(`<button type=submit${_attr_class(input.class)}${_attr("disabled", input.disabled)}${_attr("title", input.title)}>`);
3831
- _dynamic_tag($scope0_id, "b", input.content, {}, 0, 0, _serialize_guard($scope0_reason, 2));
3832
- _html(`</button>${_el_resume($scope0_id, "a", _serialize_guard($scope0_reason, 0))}`);
3833
- _serialize_if($scope0_reason, 1) && writeScope($scope0_id, {});
3855
+ const { content, ...htmlInput } = input;
3856
+ _html(`<button${_attrs({
3857
+ type: "submit",
3858
+ ...htmlInput
3859
+ }, "a", $scope0_id, "button")}>`);
3860
+ _dynamic_tag($scope0_id, "b", content, {}, 0, 0, _serialize_guard($scope0_reason, 0));
3861
+ _html(`</button>${_el_resume($scope0_id, "a")}`);
3862
+ _script($scope0_id, "c0");
3863
+ writeScope($scope0_id, {});
3834
3864
  });
3835
3865
  //#endregion
3836
3866
  //#region src/tags/icons/icon-refresh.marko
3837
- var icon_refresh_default = _template("H", (input) => {
3867
+ var icon_refresh_default = _template("L", (input) => {
3838
3868
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
3839
3869
  const $scope0_id = _scope_id();
3840
3870
  _set_serialize_reason({
@@ -3853,26 +3883,27 @@ var icon_refresh_default = _template("H", (input) => {
3853
3883
  //#region src/tags/repo-picker.marko
3854
3884
  var api$6;
3855
3885
  var rankRepos;
3856
- var repo_picker_default = _template("m", (input) => {
3857
- _scope_reason();
3886
+ var repo_picker_default = _template("p", (input) => {
3887
+ const $scope0_reason = _scope_reason();
3858
3888
  const $scope0_id = _scope_id();
3859
3889
  const $branchFilter__closures = /* @__PURE__ */ new Set();
3860
3890
  const $branches__closures = /* @__PURE__ */ new Set();
3861
3891
  const $branches_length__closures = /* @__PURE__ */ new Set();
3862
3892
  const $highlight__closures = /* @__PURE__ */ new Set();
3863
3893
  const $branchesFor__closures = /* @__PURE__ */ new Set();
3894
+ input.refreshing;
3864
3895
  let catalog = null;
3865
3896
  let filter = "";
3866
3897
  let highlight = 0;
3867
3898
  const loadCatalog = _resume(async (refresh) => {
3868
- if (refresh) input.refreshingChange?.(true);
3899
+ if (refresh);
3869
3900
  try {
3870
3901
  catalog = await api$6(`/api/repos${refresh ? "?refresh" : ""}`);
3871
3902
  } catch (err) {
3872
3903
  input.onError?.(String(err.message || err));
3873
3904
  }
3874
- if (refresh) input.refreshingChange?.(false);
3875
- }, "m3", $scope0_id);
3905
+ if (refresh);
3906
+ }, "p3", $scope0_id);
3876
3907
  const results = catalog && filter ? rankRepos(filter, catalog.repos, (name) => input.exclude.has(name)) : [];
3877
3908
  let branchesFor = null;
3878
3909
  let branches = null;
@@ -3881,7 +3912,7 @@ var repo_picker_default = _template("m", (input) => {
3881
3912
  filter = "";
3882
3913
  branchesFor = null;
3883
3914
  input.onPick(fullName, baseBranch);
3884
- }, "m4", $scope0_id);
3915
+ }, "p4", $scope0_id);
3885
3916
  const toggleBranches = _resume(async (fullName) => {
3886
3917
  if (branchesFor === fullName) {
3887
3918
  branchesFor = null;
@@ -3897,11 +3928,11 @@ var repo_picker_default = _template("m", (input) => {
3897
3928
  branchesFor = null;
3898
3929
  input.onError?.(String(err.message || err));
3899
3930
  }
3900
- }, "m5", $scope0_id);
3931
+ }, "p5", $scope0_id);
3901
3932
  _html(`<div class=add-repo><input${_attr_input_value($scope0_id, "a", filter, _resume(function(v) {
3902
3933
  filter = v;
3903
3934
  highlight = 0;
3904
- }, "m0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3935
+ }, "p0", $scope0_id))} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input.disabled)}>${_el_resume($scope0_id, "a")}`);
3905
3936
  _if(() => {
3906
3937
  if (filter && !catalog) {
3907
3938
  const $scope8_id = _scope_id();
@@ -3939,9 +3970,9 @@ var repo_picker_default = _template("m", (input) => {
3939
3970
  const $scope6_id = _scope_id();
3940
3971
  _html(`<input${_attr_input_value($scope6_id, "a", branchFilter, _resume((_new_branchFilter) => {
3941
3972
  branchFilter = _new_branchFilter;
3942
- }, "m1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3943
- _script($scope6_id, "m6");
3944
- _subscribe($branchFilter__closures, writeScope($scope6_id, { Ca7: 1 }));
3973
+ }, "p1", $scope6_id))} placeholder="Filter branches…" aria-label="Filter branches" autofocus>${_el_resume($scope6_id, "a")}`);
3974
+ _script($scope6_id, "p6");
3975
+ _subscribe($branchFilter__closures, writeScope($scope6_id, { Ca8: 1 }));
3945
3976
  return 0;
3946
3977
  }
3947
3978
  }, $scope5_id, "a", 1, 1, 1, 0, 1);
@@ -3950,7 +3981,7 @@ var repo_picker_default = _template("m", (input) => {
3950
3981
  _for_of(shown, (branch) => {
3951
3982
  const $scope7_id = _scope_id();
3952
3983
  _html(`<li><button class=result-row><span class="repo-name mono">${_escape(branch)}${_el_resume($scope7_id, "b")}</span></button>${_el_resume($scope7_id, "a")}</li>`);
3953
- _script($scope7_id, "m7");
3984
+ _script($scope7_id, "p7");
3954
3985
  writeScope($scope7_id, { d: branch });
3955
3986
  }, (b) => b, $scope5_id, "b", 1, 1, 1, 0, 1);
3956
3987
  _if(() => {
@@ -3962,7 +3993,7 @@ var repo_picker_default = _template("m", (input) => {
3962
3993
  }
3963
3994
  }, $scope5_id, "c", 1, 1, 1, 0, 1);
3964
3995
  _html("</ul>");
3965
- _subscribe($branchFilter__closures, _subscribe($branches_length__closures, _subscribe($branches__closures, writeScope($scope5_id, { Ca5: 1 }))));
3996
+ _subscribe($branchFilter__closures, _subscribe($branches_length__closures, _subscribe($branches__closures, writeScope($scope5_id, { Ca6: 1 }))));
3966
3997
  return 1;
3967
3998
  }
3968
3999
  }, $scope4_id, "a", 1, 1, 1, "</div>");
@@ -3971,7 +4002,7 @@ var repo_picker_default = _template("m", (input) => {
3971
4002
  }
3972
4003
  }, $scope3_id, "f", 1, 1, 1, 0, 1);
3973
4004
  _html("</li>");
3974
- _script($scope3_id, "m8");
4005
+ _script($scope3_id, "p8");
3975
4006
  _subscribe($branchesFor__closures, _subscribe($highlight__closures, writeScope($scope3_id, {
3976
4007
  i: repo?.nameWithOwner,
3977
4008
  k: i
@@ -3987,58 +4018,70 @@ var repo_picker_default = _template("m", (input) => {
3987
4018
  }
3988
4019
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
3989
4020
  _html("</div>");
3990
- const $return = _resume(() => loadCatalog(true), "m2", $scope0_id);
3991
- _script($scope0_id, "m9");
3992
- _script($scope0_id, "m10");
4021
+ const $return = _resume(() => loadCatalog(true), "p2", $scope0_id);
4022
+ _script($scope0_id, "p9");
4023
+ _script($scope0_id, "p10");
3993
4024
  writeScope($scope0_id, {
3994
- f: input.refreshingChange,
3995
- g: input.onError,
3996
- i: input.exclude,
3997
- j: input.onPick,
3998
- l: catalog,
3999
- m: filter,
4000
- p: highlight,
4001
- q: loadCatalog,
4002
- r: results,
4003
- u: branchesFor,
4004
- w: branches,
4005
- x: branches?.length,
4006
- y: branchFilter,
4007
- z: pick,
4008
- a0: toggleBranches,
4009
- a7: $branchFilter__closures,
4010
- a5: $branches__closures,
4011
- a6: $branches_length__closures,
4012
- a2: $highlight__closures,
4013
- a4: $branchesFor__closures
4025
+ f: _serialize_if($scope0_reason, 1) && input.refreshing,
4026
+ g: _serialize_if($scope0_reason, 0) && input.refreshingChange,
4027
+ i: input.onError,
4028
+ j: input.exclude,
4029
+ k: input.onPick,
4030
+ m: catalog,
4031
+ n: filter,
4032
+ q: highlight,
4033
+ r: loadCatalog,
4034
+ s: results,
4035
+ v: branchesFor,
4036
+ x: branches,
4037
+ y: branches?.length,
4038
+ z: branchFilter,
4039
+ a0: pick,
4040
+ a1: toggleBranches,
4041
+ a8: $branchFilter__closures,
4042
+ a6: $branches__closures,
4043
+ a7: $branches_length__closures,
4044
+ a3: $highlight__closures,
4045
+ a5: $branchesFor__closures
4014
4046
  });
4015
4047
  _resume_branch($scope0_id);
4016
4048
  return $return;
4017
4049
  });
4018
4050
  //#endregion
4019
4051
  //#region src/tags/modal-view.marko
4020
- var modal_view_default = _template("i", (input) => {
4021
- const $scope0_reason = _scope_reason(), $si__input_openChange__OR__input_footer = _serialize_if($scope0_reason, 1), $sg__input_openChange__OR__input_footer = _serialize_guard($scope0_reason, 1), $si__input_openChange = _serialize_if($scope0_reason, 2);
4052
+ var modal_view_default = _template("l", (input) => {
4053
+ const $scope0_reason = _scope_reason(), $si__input_openChange__OR__input_footer = _serialize_if($scope0_reason, 1), $sg__input_openChange__OR__input_footer = _serialize_guard($scope0_reason, 1), $si__input_openChange = _serialize_if($scope0_reason, 5);
4022
4054
  const $scope0_id = _scope_id();
4055
+ const { label, class: inputClass, open: _open, openChange: _openChange, dismissable: _dismissable, content, footer, closedby: _closedby, onCancel: _onCancel, onClose: _onClose, "aria-label": inputAriaLabel, "aria-labelledby": inputLabelledBy, ...htmlInput } = input;
4023
4056
  const dismissable = input.dismissable !== false;
4024
4057
  let open = input.open;
4025
- _html(`<dialog${_attr_class(["manage-view", input.class])}${_attr("aria-label", input.label)} closedby=${dismissable ? "any" : "none"}><div class=manage>`);
4026
- _dynamic_tag($scope0_id, "b", input.content, {}, 0, 0, _serialize_guard($scope0_reason, 3));
4058
+ _html(`<dialog${_attr_class(["manage-view", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
4059
+ ...htmlInput,
4060
+ open: null
4061
+ }, {
4062
+ class: 1,
4063
+ "aria-labelledby": 1,
4064
+ "aria-label": 1,
4065
+ closedby: 1,
4066
+ "on-cancel": 1,
4067
+ "on-close": 1
4068
+ }, "a", $scope0_id, "dialog")}><div class=manage>`);
4069
+ _dynamic_tag($scope0_id, "b", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
4027
4070
  _html("</div>");
4028
4071
  _if(() => {
4029
- if (input.footer) {
4072
+ if (footer) {
4030
4073
  const $scope1_id = _scope_id();
4031
4074
  _html("<form method=dialog class=manage-bar>");
4032
- _dynamic_tag($scope1_id, "a", input.footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 4));
4075
+ _dynamic_tag($scope1_id, "a", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
4033
4076
  _html("</form>");
4034
- $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 4) && _scope_with_id($scope0_id) });
4077
+ $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
4035
4078
  return 0;
4036
4079
  } else if (input.openChange) {
4037
4080
  const $scope2_id = _scope_id();
4038
4081
  _html("<form method=dialog class=manage-bar>");
4039
4082
  dialog_close_default({
4040
4083
  class: "btn primary",
4041
- content: _content("i0", () => {
4084
+ content: _content("l0", () => {
4042
4085
  _scope_reason();
4043
4086
  _scope_id();
4044
4087
  _html("Done");
@@ -4050,16 +4093,21 @@ var modal_view_default = _template("i", (input) => {
4050
4093
  }
4051
4094
  }, $scope0_id, "c", $sg__input_openChange__OR__input_footer, $sg__input_openChange__OR__input_footer, $sg__input_openChange__OR__input_footer, 0, 1);
4052
4095
  _html(`</dialog>${_el_resume($scope0_id, "a")}`);
4053
- _script($scope0_id, "i1");
4054
- _script($scope0_id, "i2");
4096
+ _script($scope0_id, "l1");
4097
+ _script($scope0_id, "l2");
4098
+ _script($scope0_id, "l3");
4055
4099
  writeScope($scope0_id, {
4056
4100
  g: $si__input_openChange && input.open,
4057
4101
  h: _serialize_if($scope0_reason, 0) && input.openChange,
4058
- m: $si__input_openChange && input.footer,
4059
- o: $si__input_openChange__OR__input_footer && input.footer?.content,
4060
- p: dismissable,
4061
- q: open,
4062
- r: input.openChange || void 0
4102
+ j: _serialize_if($scope0_reason, 4) && label,
4103
+ m: $si__input_openChange && footer,
4104
+ o: $si__input_openChange__OR__input_footer && footer?.content,
4105
+ p: _serialize_if($scope0_reason, 3) && inputAriaLabel,
4106
+ q: _serialize_if($scope0_reason, 2) && inputLabelledBy,
4107
+ s: htmlInput,
4108
+ t: dismissable,
4109
+ u: open,
4110
+ v: input.openChange || void 0
4063
4111
  });
4064
4112
  _resume_branch($scope0_id);
4065
4113
  });
@@ -4067,8 +4115,8 @@ var modal_view_default = _template("i", (input) => {
4067
4115
  //#region src/tags/manage-workspace.marko
4068
4116
  var api$5;
4069
4117
  var lastData = /* @__PURE__ */ new Map();
4070
- var manage_workspace_default = _template("h", (input) => {
4071
- const $scope0_reason = _scope_reason(), $sg__input_workspace = _serialize_guard($scope0_reason, 0), $si__input_workspace = _serialize_if($scope0_reason, 0), $sg__input_openChange = _serialize_guard($scope0_reason, 1);
4118
+ var manage_workspace_default = _template("k", (input) => {
4119
+ const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 2);
4072
4120
  const $scope0_id = _scope_id();
4073
4121
  const $actionStep__closures = /* @__PURE__ */ new Set();
4074
4122
  const $pendingAction__closures = /* @__PURE__ */ new Set();
@@ -4100,26 +4148,28 @@ var manage_workspace_default = _template("h", (input) => {
4100
4148
  let confirmingDelete = false;
4101
4149
  let confirmingRemove = null;
4102
4150
  let actionStep = null;
4103
- const ws = input.workspace;
4151
+ input.open;
4152
+ let workspace = input.workspace;
4153
+ const ws = workspace;
4104
4154
  const loadProcs = _resume(async (signal) => {
4105
4155
  try {
4106
4156
  const data = await api$5(`/api/workspaces/${ws.id}/procs`, { signal });
4107
4157
  procs = data;
4108
4158
  lastData.set(`procs:${ws.id}`, data);
4109
4159
  } catch {}
4110
- }, "h0", $scope0_id);
4160
+ }, "k0", $scope0_id);
4111
4161
  const loadPrs = _resume(async (signal, refresh) => {
4112
4162
  try {
4113
4163
  const data = await api$5(`/api/workspaces/${ws.id}/prs${refresh ? "?refresh" : ""}`, { signal });
4114
4164
  prs = data;
4115
4165
  lastData.set(`prs:${ws.id}`, data);
4116
4166
  } catch {}
4117
- }, "h1", $scope0_id);
4167
+ }, "k1", $scope0_id);
4118
4168
  const refreshPrs = _resume(async () => {
4119
4169
  prsRefreshing = true;
4120
4170
  await loadPrs(void 0, true);
4121
4171
  prsRefreshing = false;
4122
- }, "h2", $scope0_id);
4172
+ }, "k2", $scope0_id);
4123
4173
  const clearFinished = _resume(async () => {
4124
4174
  for (const repo of prs || []) for (const pr of repo.prs) {
4125
4175
  if (pr.state === "OPEN") continue;
@@ -4133,7 +4183,7 @@ var manage_workspace_default = _template("h", (input) => {
4133
4183
  }).catch(() => {});
4134
4184
  }
4135
4185
  await loadPrs(void 0, false);
4136
- }, "h3", $scope0_id);
4186
+ }, "k3", $scope0_id);
4137
4187
  const dismissPr = _resume(async (fullName, number) => {
4138
4188
  error = null;
4139
4189
  try {
@@ -4150,20 +4200,20 @@ var manage_workspace_default = _template("h", (input) => {
4150
4200
  } catch (err) {
4151
4201
  error = String(err.message || err);
4152
4202
  }
4153
- }, "h4", $scope0_id);
4203
+ }, "k4", $scope0_id);
4154
4204
  const inWorkspace = new Set(ws.repos.map((r) => r.full_name));
4155
4205
  const setBusy = _resume((name, on) => {
4156
4206
  const next = new Set(busy);
4157
4207
  if (on) next.add(name);
4158
4208
  else next.delete(name);
4159
4209
  busy = next;
4160
- }, "h5", $scope0_id);
4210
+ }, "k5", $scope0_id);
4161
4211
  const addRepo = _resume(async (name, baseBranch) => {
4162
4212
  if (!name || busy.has(name)) return;
4163
4213
  error = null;
4164
4214
  setBusy(name, true);
4165
4215
  try {
4166
- const updated = await api$5(`/api/workspaces/${ws.id}/repos`, {
4216
+ workspace = await api$5(`/api/workspaces/${ws.id}/repos`, {
4167
4217
  method: "POST",
4168
4218
  headers: { "content-type": "application/json" },
4169
4219
  body: JSON.stringify({
@@ -4171,27 +4221,26 @@ var manage_workspace_default = _template("h", (input) => {
4171
4221
  baseBranch
4172
4222
  })
4173
4223
  });
4174
- input.onChange?.(updated);
4175
4224
  } catch (err) {
4176
4225
  error = String(err.message || err);
4177
4226
  }
4178
4227
  setBusy(name, false);
4179
- }, "h6", $scope0_id);
4228
+ }, "k6", $scope0_id);
4180
4229
  const removeRepo = _resume(async (row) => {
4181
4230
  if (busy.has(row.full_name)) return;
4182
4231
  error = null;
4183
4232
  setBusy(row.full_name, true);
4184
4233
  try {
4185
4234
  await api$5(`/api/workspaces/${ws.id}/repos/${encodeURIComponent(row.worktree)}`, { method: "DELETE" });
4186
- input.onChange?.({
4235
+ workspace = {
4187
4236
  ...ws,
4188
4237
  repos: ws.repos.filter((r) => r.full_name !== row.full_name)
4189
- });
4238
+ };
4190
4239
  } catch (err) {
4191
4240
  error = String(err.message || err);
4192
4241
  }
4193
4242
  setBusy(row.full_name, false);
4194
- }, "h7", $scope0_id);
4243
+ }, "k7", $scope0_id);
4195
4244
  const runAction = _resume(async (action) => {
4196
4245
  error = null;
4197
4246
  pendingAction = action;
@@ -4202,22 +4251,25 @@ var manage_workspace_default = _template("h", (input) => {
4202
4251
  headers: { "content-type": "application/json" },
4203
4252
  body: JSON.stringify({ action })
4204
4253
  });
4205
- if (action === "delete") input.openChange?.(false);
4254
+ if (action === "delete");
4206
4255
  } catch (err) {
4207
4256
  error = String(err.message || err);
4208
4257
  } finally {
4209
4258
  pendingAction = null;
4210
4259
  actionStep = null;
4211
4260
  }
4212
- }, "h8", $scope0_id);
4261
+ }, "k8", $scope0_id);
4213
4262
  const killProc = _resume(async (pid) => {
4214
4263
  await fetch(`/api/procs/${pid}`, { method: "DELETE" });
4215
4264
  setTimeout(() => loadProcs(void 0), 500);
4216
- }, "h9", $scope0_id);
4265
+ }, "k9", $scope0_id);
4266
+ const titleId = _id();
4217
4267
  _set_serialize_reason({
4218
- 0: _serialize_guard($scope0_reason, 2),
4268
+ 0: _serialize_guard($scope0_reason, 1),
4219
4269
  1: $sg__input_openChange,
4220
- 2: $sg__input_openChange
4270
+ 2: 1,
4271
+ 3: 1,
4272
+ 5: $sg__input_openChange
4221
4273
  });
4222
4274
  const $childScope3 = _peek_scope_id();
4223
4275
  modal_view_default({
@@ -4225,15 +4277,15 @@ var manage_workspace_default = _template("h", (input) => {
4225
4277
  open: input.open,
4226
4278
  openChange: input.openChange,
4227
4279
  dismissable: !pendingAction,
4228
- footer: attrTag({ content: _content_resume("h27", () => {
4280
+ "aria-labelledby": titleId,
4281
+ footer: attrTag({ content: _content_resume("k27", () => {
4229
4282
  _scope_reason();
4230
4283
  const $scope8_id = _scope_id();
4231
- _set_serialize_reason(6);
4232
4284
  const $childScope = _peek_scope_id();
4233
4285
  dialog_close_default({
4234
4286
  class: "btn primary",
4235
4287
  disabled: !!pendingAction,
4236
- content: _content("h14", () => {
4288
+ content: _content("k14", () => {
4237
4289
  _scope_reason();
4238
4290
  _scope_id();
4239
4291
  _html("Done");
@@ -4243,7 +4295,7 @@ var manage_workspace_default = _template("h", (input) => {
4243
4295
  if (pendingAction && actionStep) {
4244
4296
  const $scope12_id = _scope_id();
4245
4297
  _html(`<span class="act-step dim"><span class=spin></span><!>${_escape(actionStep)}${_el_resume($scope12_id, "a")}</span>`);
4246
- _subscribe($actionStep__closures, writeScope($scope12_id, { Cat: 1 }));
4298
+ _subscribe($actionStep__closures, writeScope($scope12_id, { Caw: 1 }));
4247
4299
  return 0;
4248
4300
  }
4249
4301
  }, $scope8_id, "b", 1, 1, 1, 0, 1);
@@ -4252,35 +4304,29 @@ var manage_workspace_default = _template("h", (input) => {
4252
4304
  if (ws.status === "active") {
4253
4305
  const $scope9_id = _scope_id();
4254
4306
  _html(`<button type=button class=btn${_attr("disabled", !!pendingAction)}>${pendingAction === "archive" ? "Archiving…" : "Archive"}${_el_resume($scope9_id, "b")}</button>${_el_resume($scope9_id, "a")}`);
4255
- _script($scope9_id, "h15");
4256
- _subscribe($pendingAction__closures, writeScope($scope9_id, {
4257
- _: _scope_with_id($scope8_id),
4258
- Caq: 1
4259
- }));
4307
+ _script($scope9_id, "k15");
4308
+ _subscribe($pendingAction__closures, writeScope($scope9_id, { Cat: 1 }));
4260
4309
  return 0;
4261
4310
  } else {
4262
4311
  const $scope10_id = _scope_id();
4263
4312
  _html(`<button type=button class=btn${_attr("disabled", !!pendingAction)}>Restore</button>${_el_resume($scope10_id, "a")}`);
4264
- _script($scope10_id, "h16");
4265
- _subscribe($pendingAction__closures, writeScope($scope10_id, {
4266
- _: _scope_with_id($scope8_id),
4267
- Caq: 2
4268
- }));
4313
+ _script($scope10_id, "k16");
4314
+ _subscribe($pendingAction__closures, writeScope($scope10_id, { Cat: 2 }));
4269
4315
  return 1;
4270
4316
  }
4271
- }, $scope8_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4317
+ }, $scope8_id, "c", 1, 1, 1, 0, 1);
4272
4318
  _html(`<button type=button class="btn danger"${_attr("disabled", !!pendingAction)}>${pendingAction === "delete" ? "Deleting…" : "Delete"}${_el_resume($scope8_id, "e")}</button>${_el_resume($scope8_id, "d")}`);
4273
- _script($scope8_id, "h17");
4274
- _subscribe($si__input_workspace && $ws_status__closures, _subscribe($actionStep__closures, _subscribe($confirmingDelete__closures, _subscribe($pendingAction__closures, writeScope($scope8_id, {
4319
+ _script($scope8_id, "k17");
4320
+ _subscribe($ws_status__closures, _subscribe($actionStep__closures, _subscribe($confirmingDelete__closures, _subscribe($pendingAction__closures, writeScope($scope8_id, {
4275
4321
  _: _scope_with_id($scope0_id),
4276
4322
  a: _existing_scope($childScope)
4277
4323
  })))));
4278
4324
  _resume_branch($scope8_id);
4279
4325
  }, $scope0_id) }),
4280
- content: _content("h28", () => {
4326
+ content: _content("k28", () => {
4281
4327
  _scope_reason();
4282
4328
  const $scope1_id = _scope_id();
4283
- _html(`<header class=manage-head><div><h2>${_escape(ws.name)}${_el_resume($scope1_id, "a", $sg__input_workspace)}</h2><p class="dim mono">${_escape(ws.display_path || ws.path)}${_el_resume($scope1_id, "b", $sg__input_workspace)}</p></div></header>`);
4329
+ _html(`<header class=manage-head><div><h2${_attr("id", titleId)}>${_escape(ws.name)}${_el_resume($scope1_id, "b")}</h2><p class="dim mono">${_escape(ws.display_path || ws.path)}${_el_resume($scope1_id, "c")}</p></div></header>`);
4284
4330
  _if(() => {
4285
4331
  if (error) {
4286
4332
  const $scope6_id = _scope_id();
@@ -4288,14 +4334,14 @@ var manage_workspace_default = _template("h", (input) => {
4288
4334
  placement: "inline",
4289
4335
  onDismiss: _resume(function() {
4290
4336
  error = null;
4291
- }, "h10", $scope6_id),
4292
- content: _content_resume("h18", () => {
4337
+ }, "k10", $scope6_id),
4338
+ content: _content_resume("k18", () => {
4293
4339
  _scope_reason();
4294
4340
  const $scope7_id = _scope_id();
4295
4341
  _html(`${_escape(error)}${_el_resume($scope7_id, "a")}`);
4296
4342
  _subscribe($error__closures, writeScope($scope7_id, {
4297
4343
  _: _scope_with_id($scope6_id),
4298
- Cap: 1
4344
+ Cas: 1
4299
4345
  }));
4300
4346
  _resume_branch($scope7_id);
4301
4347
  }, $scope6_id)
@@ -4303,7 +4349,7 @@ var manage_workspace_default = _template("h", (input) => {
4303
4349
  writeScope($scope6_id, {});
4304
4350
  return 0;
4305
4351
  }
4306
- }, $scope1_id, "c", 1, 1, 1, 0, 1);
4352
+ }, $scope1_id, "d", 1, 1, 1, 0, 1);
4307
4353
  _if(() => {
4308
4354
  if (prs && prs.some((r) => r.prs.length)) {
4309
4355
  const $scope3_id = _scope_id();
@@ -4313,12 +4359,12 @@ var manage_workspace_default = _template("h", (input) => {
4313
4359
  if (finishedCount) {
4314
4360
  const $scope13_id = _scope_id();
4315
4361
  _html(`<button class=btn title="Confirm every merged/closed PR is done — remove them from this list">Clear <!>${_escape(finishedCount)}${_el_resume($scope13_id, "b")} finished</button>${_el_resume($scope13_id, "a")}`);
4316
- _script($scope13_id, "h19");
4362
+ _script($scope13_id, "k19");
4317
4363
  writeScope($scope13_id, {});
4318
4364
  return 0;
4319
4365
  }
4320
4366
  }, $scope3_id, "a", 1, 1, 1, 0, 1);
4321
- _html(`<button class=${prsRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh PRs"${_attr("disabled", prsRefreshing)}>`);
4367
+ _html(`<button class=${prsRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh PRs" aria-label="Refresh PRs"${_attr("disabled", prsRefreshing)}>`);
4322
4368
  icon_refresh_default({ size: 13 });
4323
4369
  _html(`</button>${_el_resume($scope3_id, "b")}</div>`);
4324
4370
  _for_of(prs.filter((r) => r.prs.length), (repo) => {
@@ -4354,7 +4400,7 @@ var manage_workspace_default = _template("h", (input) => {
4354
4400
  if (pr.state !== "OPEN") {
4355
4401
  const $scope15_id = _scope_id();
4356
4402
  _html(`<button class=pr-dismiss${_attr("title", `Confirm #${pr.number} is done — remove from this list`)}>✓</button>${_el_resume($scope15_id, "a")}`);
4357
- _script($scope15_id, "h20");
4403
+ _script($scope15_id, "k20");
4358
4404
  writeScope($scope15_id, {});
4359
4405
  return 0;
4360
4406
  }
@@ -4369,28 +4415,28 @@ var manage_workspace_default = _template("h", (input) => {
4369
4415
  }));
4370
4416
  }, "full_name", $scope3_id, "d", 1, 1, 1, 0, 1);
4371
4417
  _html("</section>");
4372
- _script($scope3_id, "h21");
4418
+ _script($scope3_id, "k21");
4373
4419
  _subscribe($prsRefreshing__closures, _subscribe($prs__closures, writeScope($scope3_id, {
4374
4420
  e: finishedCount,
4375
- Cak: 1
4421
+ Can: 1
4376
4422
  })));
4377
4423
  return 0;
4378
4424
  }
4379
- }, $scope1_id, "d", 1, 1, 1, 0, 1);
4380
- _html(`<section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4425
+ }, $scope1_id, "e", 1, 1, 1, 0, 1);
4426
+ _html(`<section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4381
4427
  icon_refresh_default({ size: 13 });
4382
- _html(`</button>${_el_resume($scope1_id, "e")}</div><ul class=cur-repos>`);
4428
+ _html(`</button>${_el_resume($scope1_id, "f")}</div><ul class=cur-repos>`);
4383
4429
  _for_of(ws.repos, (row) => {
4384
4430
  const $scope5_id = _scope_id();
4385
- _html(`<li class=cur-repo><span class="mono cur-worktree">${_escape(row.worktree)}${_el_resume($scope5_id, "a", $sg__input_workspace)}/</span><span class="dim cur-full">${_escape(row.full_name)}${_el_resume($scope5_id, "b", $sg__input_workspace)}</span>`);
4431
+ _html(`<li class=cur-repo><span class="mono cur-worktree">${_escape(row.worktree)}${_el_resume($scope5_id, "a")}/</span><span class="dim cur-full">${_escape(row.full_name)}${_el_resume($scope5_id, "b")}</span>`);
4386
4432
  _if(() => {
4387
4433
  if (row.base_branch !== row.default_branch) {
4388
4434
  const $scope21_id = _scope_id();
4389
- _html(`<span class="cur-base mono" title="Base branch">⎇ ${_sep($sg__input_workspace)}${_escape(row.base_branch)}${_el_resume($scope21_id, "a", $sg__input_workspace)}</span>`);
4390
- $si__input_workspace && writeScope($scope21_id, { _: _scope_with_id($scope5_id) });
4435
+ _html(`<span class="cur-base mono" title="Base branch">⎇ <!>${_escape(row.base_branch)}${_el_resume($scope21_id, "a")}</span>`);
4436
+ writeScope($scope21_id, {});
4391
4437
  return 0;
4392
4438
  }
4393
- }, $scope5_id, "c", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4439
+ }, $scope5_id, "c", 1, 1, 1, 0, 1);
4394
4440
  _if(() => {
4395
4441
  if (busy.has(row.full_name)) {
4396
4442
  const $scope22_id = _scope_id();
@@ -4400,7 +4446,7 @@ var manage_workspace_default = _template("h", (input) => {
4400
4446
  } else {
4401
4447
  const $scope11_id = _scope_id();
4402
4448
  _html(`<button class=${confirmingRemove === row.full_name ? "\"cur-remove armed\"" : "cur-remove"}${confirmingRemove === row.full_name ? _attr("title", `Really remove ${row.worktree}/? Uncommitted changes are lost.`) : _attr("title", `Remove ${row.worktree}/`)}>${confirmingRemove === row.full_name ? "remove?" : "×"}${_el_resume($scope11_id, "b")}</button>${_el_resume($scope11_id, "a")}`);
4403
- _script($scope11_id, "h22");
4449
+ _script($scope11_id, "k22");
4404
4450
  _subscribe($confirmingRemove__closures, writeScope($scope11_id, {}));
4405
4451
  return 1;
4406
4452
  }
@@ -4410,16 +4456,15 @@ var manage_workspace_default = _template("h", (input) => {
4410
4456
  f: row,
4411
4457
  g: row?.worktree,
4412
4458
  h: row?.full_name,
4413
- j: $si__input_workspace && row?.base_branch,
4414
- _: _scope_with_id($scope1_id),
4415
- Can: 1
4459
+ j: row?.base_branch,
4460
+ Caq: 1
4416
4461
  }));
4417
- }, "full_name", $scope1_id, "g", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
4462
+ }, "full_name", $scope1_id, "h", 1, 1, 1, 0, 1);
4418
4463
  _for_of([...busy].filter((n) => !inWorkspace.has(n)), (name) => {
4419
4464
  const $scope23_id = _scope_id();
4420
4465
  _html(`<li class="cur-repo pending"><span class=spin></span><span class="dim cur-full">${_escape(name)}${_el_resume($scope23_id, "a")}</span></li>`);
4421
4466
  writeScope($scope23_id, {});
4422
- }, (n) => n, $scope1_id, "h", 1, 1, 1, 0, 1);
4467
+ }, (n) => n, $scope1_id, "i", 1, 1, 1, 0, 1);
4423
4468
  _if(() => {
4424
4469
  if (!ws.repos.length && !busy.size) {
4425
4470
  const $scope24_id = _scope_id();
@@ -4427,22 +4472,22 @@ var manage_workspace_default = _template("h", (input) => {
4427
4472
  writeScope($scope24_id, {});
4428
4473
  return 0;
4429
4474
  }
4430
- }, $scope1_id, "i", 1, 1, 1, 0, 1);
4475
+ }, $scope1_id, "j", 1, 1, 1, 0, 1);
4431
4476
  _html("</ul>");
4432
4477
  const $childScope2 = _peek_scope_id();
4433
4478
  let refreshCatalog = repo_picker_default({
4434
4479
  exclude: inWorkspace,
4435
4480
  onPick: _resume(function(name, baseBranch) {
4436
4481
  addRepo(name, baseBranch);
4437
- }, "h11", $scope1_id),
4482
+ }, "k11", $scope1_id),
4438
4483
  onError: _resume(function(message) {
4439
4484
  error = message;
4440
- }, "h12", $scope1_id),
4485
+ }, "k12", $scope1_id),
4441
4486
  refreshingChange: _resume(function(busy) {
4442
4487
  catalogRefreshing = busy;
4443
- }, "h13", $scope1_id)
4488
+ }, "k13", $scope1_id)
4444
4489
  });
4445
- _var($scope1_id, "k", $childScope2, "h23");
4490
+ _var($scope1_id, "l", $childScope2, "k23");
4446
4491
  _html("</section>");
4447
4492
  _if(() => {
4448
4493
  if (procs && procs.length) {
@@ -4454,77 +4499,80 @@ var manage_workspace_default = _template("h", (input) => {
4454
4499
  _for_of(p.ports, (port) => {
4455
4500
  const $scope25_id = _scope_id();
4456
4501
  _html(`<button class="chip port-link"${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${port}`)}>:<!>${_escape(port)}${_el_resume($scope25_id, "b")}</button>${_el_resume($scope25_id, "a")}`);
4457
- _script($scope25_id, "h24");
4502
+ _script($scope25_id, "k24");
4458
4503
  writeScope($scope25_id, { d: port });
4459
4504
  }, (x) => String(x), $scope16_id, "c", 1, 1, 1, 0, 1);
4460
- _html(`</span>${_el_resume($scope16_id, "a")}<button class=proc-kill${_attr("title", `Kill ${p.pid}`)}>×</button>${_el_resume($scope16_id, "d")}</li>`);
4461
- _script($scope16_id, "h25");
4505
+ _html(`</span>${_el_resume($scope16_id, "a")}<button class=proc-kill type=button${_attr("title", `Kill ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>×</button>${_el_resume($scope16_id, "d")}</li>`);
4506
+ _script($scope16_id, "k25");
4462
4507
  writeScope($scope16_id, { j: p?.pid });
4463
4508
  }, "pid", $scope2_id, "a", 1, 1, 1, "</ul>", 1);
4464
4509
  _html("</section>");
4465
- _subscribe($procs__closures, writeScope($scope2_id, { Caj: 1 }));
4510
+ _subscribe($procs__closures, writeScope($scope2_id, { Cam: 1 }));
4466
4511
  return 0;
4467
4512
  }
4468
- }, $scope1_id, "l", 1, 1, 1, 0, 1);
4469
- _script($scope1_id, "h26");
4470
- _subscribe($addRepo2__closures, _subscribe($si__input_workspace && $inWorkspace__closures, _subscribe($si__input_workspace && $ws_repos_length__closures, _subscribe($si__input_workspace && $ws_path__closures, _subscribe($si__input_workspace && $ws_display_path__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_repos__closures, _subscribe($error__closures, _subscribe($busy_size__closures, _subscribe($busy__closures, _subscribe($prs__closures, _subscribe($procs__closures, _subscribe($catalogRefreshing__closures, writeScope($scope1_id, {
4471
- m: refreshCatalog,
4513
+ }, $scope1_id, "m", 1, 1, 1, 0, 1);
4514
+ _script($scope1_id, "k26");
4515
+ _subscribe($addRepo2__closures, _subscribe($inWorkspace__closures, _subscribe($ws_repos_length__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, _subscribe($ws_name__closures, _subscribe($ws_repos__closures, _subscribe($error__closures, _subscribe($busy_size__closures, _subscribe($busy__closures, _subscribe($prs__closures, _subscribe($procs__closures, _subscribe($catalogRefreshing__closures, writeScope($scope1_id, {
4516
+ n: refreshCatalog,
4472
4517
  _: _scope_with_id($scope0_id),
4473
- j: _existing_scope($childScope2)
4518
+ k: _existing_scope($childScope2)
4474
4519
  }))))))))))))));
4475
4520
  _resume_branch($scope1_id);
4476
4521
  })
4477
4522
  });
4478
- _script($scope0_id, "h29");
4523
+ _script($scope0_id, "k29");
4479
4524
  writeScope($scope0_id, {
4480
- f: input.onChange,
4481
- g: input.openChange,
4482
- j: procs,
4483
- k: prs,
4484
- l: prs?.length,
4485
- m: prsRefreshing,
4486
- n: busy,
4487
- o: busy?.size,
4488
- p: error,
4489
- q: pendingAction,
4490
- r: confirmingDelete,
4491
- s: confirmingRemove,
4492
- t: actionStep,
4493
- u: ws,
4494
- v: ws?.id,
4495
- z: ws?.status,
4496
- a2: ws?.repos?.length,
4497
- a3: loadProcs,
4498
- a4: loadPrs,
4499
- a7: refreshPrs,
4500
- a8: clearFinished,
4501
- a9: dismissPr,
4502
- aa: inWorkspace,
4503
- ab: setBusy,
4504
- ae: addRepo,
4505
- af: removeRepo,
4506
- ag: runAction,
4507
- ah: killProc,
4508
- at: $actionStep__closures,
4509
- aq: $pendingAction__closures,
4510
- ar: $confirmingDelete__closures,
4511
- aw: $si__input_workspace && $ws_status__closures,
4512
- ap: $error__closures,
4513
- al: $prs_length__closures,
4514
- ak: $prs__closures,
4515
- am: $prsRefreshing__closures,
4516
- as: $confirmingRemove__closures,
4517
- an: $busy__closures,
4518
- aj: $procs__closures,
4519
- ai: $catalogRefreshing__closures,
4520
- ao: $busy_size__closures,
4521
- au: $si__input_workspace && $ws_repos__closures,
4522
- av: $si__input_workspace && $ws_name__closures,
4523
- ax: $si__input_workspace && $ws_display_path__closures,
4524
- ay: $si__input_workspace && $ws_path__closures,
4525
- az: $si__input_workspace && $ws_repos_length__closures,
4526
- b0: $si__input_workspace && $inWorkspace__closures,
4527
- b1: $addRepo2__closures,
4525
+ d: _serialize_if($scope0_reason, 3) && input.workspace,
4526
+ f: _serialize_if($scope0_reason, 2) && input.open,
4527
+ g: _serialize_if($scope0_reason, 1) && input.openChange,
4528
+ i: _serialize_if($scope0_reason, 0) && input.workspaceChange,
4529
+ l: procs,
4530
+ m: prs,
4531
+ n: prs?.length,
4532
+ o: prsRefreshing,
4533
+ p: busy,
4534
+ q: busy?.size,
4535
+ r: error,
4536
+ s: pendingAction,
4537
+ t: confirmingDelete,
4538
+ u: confirmingRemove,
4539
+ v: actionStep,
4540
+ w: workspace,
4541
+ y: workspace?.id,
4542
+ a1: workspace?.status,
4543
+ a4: workspace?.repos?.length,
4544
+ a5: loadProcs,
4545
+ a6: loadPrs,
4546
+ a9: refreshPrs,
4547
+ aa: clearFinished,
4548
+ ab: dismissPr,
4549
+ ac: inWorkspace,
4550
+ ad: setBusy,
4551
+ ag: addRepo,
4552
+ ah: removeRepo,
4553
+ ai: runAction,
4554
+ aj: killProc,
4555
+ x: input.workspaceChange || void 0,
4556
+ aw: $actionStep__closures,
4557
+ at: $pendingAction__closures,
4558
+ au: $confirmingDelete__closures,
4559
+ az: $ws_status__closures,
4560
+ as: $error__closures,
4561
+ ao: $prs_length__closures,
4562
+ an: $prs__closures,
4563
+ ap: $prsRefreshing__closures,
4564
+ av: $confirmingRemove__closures,
4565
+ aq: $busy__closures,
4566
+ am: $procs__closures,
4567
+ al: $catalogRefreshing__closures,
4568
+ ar: $busy_size__closures,
4569
+ ax: $ws_repos__closures,
4570
+ ay: $ws_name__closures,
4571
+ b0: $ws_display_path__closures,
4572
+ b1: $ws_path__closures,
4573
+ b2: $ws_repos_length__closures,
4574
+ b3: $inWorkspace__closures,
4575
+ b4: $addRepo2__closures,
4528
4576
  a: _existing_scope($childScope3)
4529
4577
  });
4530
4578
  _resume_branch($scope0_id);
@@ -4532,7 +4580,7 @@ var manage_workspace_default = _template("h", (input) => {
4532
4580
  //#endregion
4533
4581
  //#region src/tags/new-workspace.marko
4534
4582
  var api$4;
4535
- var new_workspace_default = _template("j", (input) => {
4583
+ var new_workspace_default = _template("m", (input) => {
4536
4584
  const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 1);
4537
4585
  const $scope0_id = _scope_id();
4538
4586
  const $name__closures = /* @__PURE__ */ new Set();
@@ -4561,17 +4609,17 @@ var new_workspace_default = _template("j", (input) => {
4561
4609
  if (e.seq) prog.last = e.seq;
4562
4610
  steps = steps.concat(e.message);
4563
4611
  }
4564
- }, "j1", $scope0_id);
4612
+ }, "m1", $scope0_id);
4565
4613
  const addRepo = _resume((fullName, baseBranch) => {
4566
4614
  if (!fullName || selected.some((r) => r.fullName === fullName)) return;
4567
4615
  selected = selected.concat({
4568
4616
  fullName,
4569
4617
  baseBranch
4570
4618
  });
4571
- }, "j2", $scope0_id);
4619
+ }, "m2", $scope0_id);
4572
4620
  const removeRepo = _resume((fullName) => {
4573
4621
  selected = selected.filter((r) => r.fullName !== fullName);
4574
- }, "j3", $scope0_id);
4622
+ }, "m3", $scope0_id);
4575
4623
  const create = _resume(async () => {
4576
4624
  busy = true;
4577
4625
  error = null;
@@ -4604,11 +4652,12 @@ var new_workspace_default = _template("j", (input) => {
4604
4652
  } finally {
4605
4653
  clearInterval(poll);
4606
4654
  }
4607
- }, "j4", $scope0_id);
4655
+ }, "m4", $scope0_id);
4656
+ const titleId = _id();
4608
4657
  _set_serialize_reason({
4609
4658
  0: _serialize_guard($scope0_reason, 0),
4610
4659
  1: $sg__input_openChange,
4611
- 2: $sg__input_openChange
4660
+ 5: $sg__input_openChange
4612
4661
  });
4613
4662
  const $childScope3 = _peek_scope_id();
4614
4663
  modal_view_default({
@@ -4617,32 +4666,32 @@ var new_workspace_default = _template("j", (input) => {
4617
4666
  open: input.open,
4618
4667
  openChange: input.openChange,
4619
4668
  dismissable: !busy,
4620
- footer: attrTag({ content: _content_resume("j15", () => {
4669
+ "aria-labelledby": titleId,
4670
+ footer: attrTag({ content: _content_resume("m15", () => {
4621
4671
  _scope_reason();
4622
4672
  const $scope1_id = _scope_id();
4623
4673
  _html(`<button type=button class="btn primary"${_attr("disabled", busy || !name.trim())}>${busy ? "Creating…" : "Create workspace"}${_el_resume($scope1_id, "b")}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div>`);
4624
- _set_serialize_reason(6);
4625
4674
  const $childScope = _peek_scope_id();
4626
4675
  dialog_close_default({
4627
4676
  class: "btn",
4628
4677
  disabled: busy,
4629
- content: _content("j9", () => {
4678
+ content: _content("m9", () => {
4630
4679
  _scope_reason();
4631
4680
  _scope_id();
4632
4681
  _html("Cancel");
4633
4682
  })
4634
4683
  });
4635
- _script($scope1_id, "j10");
4684
+ _script($scope1_id, "m10");
4636
4685
  _subscribe($busy__closures, _subscribe($name__closures, writeScope($scope1_id, {
4637
4686
  _: _scope_with_id($scope0_id),
4638
4687
  c: _existing_scope($childScope)
4639
4688
  })));
4640
4689
  _resume_branch($scope1_id);
4641
4690
  }, $scope0_id) }),
4642
- content: _content("j16", () => {
4691
+ content: _content("m16", () => {
4643
4692
  _scope_reason();
4644
4693
  const $scope2_id = _scope_id();
4645
- _html("<header class=manage-head><div><h2>New workspace</h2></div></header>");
4694
+ _html(`<header class=manage-head><div><h2${_attr("id", titleId)}>New workspace</h2></div></header>`);
4646
4695
  _if(() => {
4647
4696
  if (error) {
4648
4697
  const $scope4_id = _scope_id();
@@ -4650,14 +4699,14 @@ var new_workspace_default = _template("j", (input) => {
4650
4699
  placement: "inline",
4651
4700
  onDismiss: _resume(function() {
4652
4701
  error = null;
4653
- }, "j5", $scope4_id),
4654
- content: _content_resume("j11", () => {
4702
+ }, "m5", $scope4_id),
4703
+ content: _content_resume("m11", () => {
4655
4704
  _scope_reason();
4656
4705
  const $scope5_id = _scope_id();
4657
4706
  _html(`${_escape(error)}${_el_resume($scope5_id, "a")}`);
4658
4707
  _subscribe($error__closures, writeScope($scope5_id, {
4659
4708
  _: _scope_with_id($scope4_id),
4660
- Ca3: 1
4709
+ Ca4: 1
4661
4710
  }));
4662
4711
  _resume_branch($scope5_id);
4663
4712
  }, $scope4_id)
@@ -4665,12 +4714,12 @@ var new_workspace_default = _template("j", (input) => {
4665
4714
  writeScope($scope4_id, {});
4666
4715
  return 0;
4667
4716
  }
4668
- }, $scope2_id, "a", 1, 1, 1, 0, 1);
4669
- _html(`<label class=field><span>Name</span><input${_attr_input_value($scope2_id, "b", name, _resume((_new_name) => {
4717
+ }, $scope2_id, "b", 1, 1, 1, 0, 1);
4718
+ _html(`<label class=field><span>Name</span><input${_attr_input_value($scope2_id, "c", name, _resume((_new_name) => {
4670
4719
  name = _new_name;
4671
- }, "j0", $scope2_id))} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope2_id, "b")}</label><section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4720
+ }, "m0", $scope2_id))} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope2_id, "c")}</label><section><div class=repos-head><h3>Repos</h3><button class=${catalogRefreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
4672
4721
  icon_refresh_default({ size: 13 });
4673
- _html(`</button>${_el_resume($scope2_id, "c")}</div><ul class=cur-repos>`);
4722
+ _html(`</button>${_el_resume($scope2_id, "d")}</div><ul class=cur-repos>`);
4674
4723
  _for_of(selected, (repo) => {
4675
4724
  const $scope3_id = _scope_id();
4676
4725
  _html(`<li class=cur-repo><span class=cur-full>${_escape(repo.fullName)}${_el_resume($scope3_id, "a")}</span>`);
@@ -4683,13 +4732,13 @@ var new_workspace_default = _template("j", (input) => {
4683
4732
  }
4684
4733
  }, $scope3_id, "b", 1, 1, 1, 0, 1);
4685
4734
  _html(`<button class=cur-remove${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>×</button>${_el_resume($scope3_id, "c")}</li>`);
4686
- _script($scope3_id, "j12");
4735
+ _script($scope3_id, "m12");
4687
4736
  _subscribe($busy__closures, writeScope($scope3_id, {
4688
4737
  f: repo?.fullName,
4689
4738
  g: repo?.baseBranch,
4690
- Ca2: 2
4739
+ Ca3: 2
4691
4740
  }));
4692
- }, "fullName", $scope2_id, "e", 1, 1, 1, 0, 1);
4741
+ }, "fullName", $scope2_id, "f", 1, 1, 1, 0, 1);
4693
4742
  _if(() => {
4694
4743
  if (!selected.length) {
4695
4744
  const $scope10_id = _scope_id();
@@ -4697,7 +4746,7 @@ var new_workspace_default = _template("j", (input) => {
4697
4746
  writeScope($scope10_id, {});
4698
4747
  return 0;
4699
4748
  }
4700
- }, $scope2_id, "f", 1, 1, 1, 0, 1);
4749
+ }, $scope2_id, "g", 1, 1, 1, 0, 1);
4701
4750
  _html("</ul>");
4702
4751
  const $childScope2 = _peek_scope_id();
4703
4752
  let refreshCatalog = repo_picker_default({
@@ -4705,15 +4754,15 @@ var new_workspace_default = _template("j", (input) => {
4705
4754
  disabled: busy,
4706
4755
  onPick: _resume(function(fullName, baseBranch) {
4707
4756
  addRepo(fullName, baseBranch);
4708
- }, "j6", $scope2_id),
4757
+ }, "m6", $scope2_id),
4709
4758
  onError: _resume(function(message) {
4710
4759
  error = message;
4711
- }, "j7", $scope2_id),
4760
+ }, "m7", $scope2_id),
4712
4761
  refreshingChange: _resume(function(v) {
4713
4762
  catalogRefreshing = v;
4714
- }, "j8", $scope2_id)
4763
+ }, "m8", $scope2_id)
4715
4764
  });
4716
- _var($scope2_id, "h", $childScope2, "j13");
4765
+ _var($scope2_id, "i", $childScope2, "m13");
4717
4766
  _html("</section>");
4718
4767
  _if(() => {
4719
4768
  if (busy && steps.length) {
@@ -4736,24 +4785,24 @@ var new_workspace_default = _template("j", (input) => {
4736
4785
  }
4737
4786
  }, $scope7_id, "b", 1, 1, 1, 0, 1);
4738
4787
  _html(`<!>${_escape(step)}${_el_resume($scope7_id, "c")}</li>${_el_resume($scope7_id, "a")}`);
4739
- _subscribe($steps_length__closures, writeScope($scope7_id, { Ca5: 1 }));
4788
+ _subscribe($steps_length__closures, writeScope($scope7_id, { Ca6: 1 }));
4740
4789
  }, 0, $scope6_id, "a", 1, 1, 1, "</ul>", 1);
4741
4790
  _subscribe($steps__closures, writeScope($scope6_id, {}));
4742
4791
  return 0;
4743
4792
  }
4744
- }, $scope2_id, "i", 1, 1, 1, 0, 1);
4745
- _script($scope2_id, "j14");
4793
+ }, $scope2_id, "j", 1, 1, 1, 0, 1);
4794
+ _script($scope2_id, "m14");
4746
4795
  _subscribe($addRepo2__closures, _subscribe($steps_length__closures, _subscribe($error__closures, _subscribe($busy__closures, _subscribe($selected_length__closures, _subscribe($selected__closures, _subscribe($catalogRefreshing__closures, _subscribe($name__closures, writeScope($scope2_id, {
4747
- j: refreshCatalog,
4796
+ k: refreshCatalog,
4748
4797
  _: _scope_with_id($scope0_id),
4749
- g: _existing_scope($childScope2),
4750
- Cy: 1,
4751
- Ca2: 1
4798
+ h: _existing_scope($childScope2),
4799
+ Cz: 1,
4800
+ Ca3: 1
4752
4801
  })))))))));
4753
4802
  _resume_branch($scope2_id);
4754
4803
  })
4755
4804
  });
4756
- _script($scope0_id, "j17");
4805
+ _script($scope0_id, "m17");
4757
4806
  writeScope($scope0_id, {
4758
4807
  d: input.onCreate,
4759
4808
  g: name,
@@ -4768,15 +4817,15 @@ var new_workspace_default = _template("j", (input) => {
4768
4817
  v: addRepo,
4769
4818
  w: removeRepo,
4770
4819
  x: create,
4771
- y: $name__closures,
4772
- a2: $busy__closures,
4773
- a3: $error__closures,
4774
- a5: $steps_length__closures,
4775
- a4: $steps__closures,
4776
- z: $catalogRefreshing__closures,
4777
- a0: $selected__closures,
4778
- a1: $selected_length__closures,
4779
- a6: $addRepo2__closures,
4820
+ z: $name__closures,
4821
+ a3: $busy__closures,
4822
+ a4: $error__closures,
4823
+ a6: $steps_length__closures,
4824
+ a5: $steps__closures,
4825
+ a0: $catalogRefreshing__closures,
4826
+ a1: $selected__closures,
4827
+ a2: $selected_length__closures,
4828
+ a7: $addRepo2__closures,
4780
4829
  a: _existing_scope($childScope3)
4781
4830
  });
4782
4831
  _resume_branch($scope0_id);
@@ -4826,7 +4875,7 @@ function diffUncommitted() {
4826
4875
  }
4827
4876
  //#endregion
4828
4877
  //#region src/tags/icons/icon-edit.marko
4829
- var icon_edit_default = _template("A", (input) => {
4878
+ var icon_edit_default = _template("E", (input) => {
4830
4879
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
4831
4880
  const $scope0_id = _scope_id();
4832
4881
  _set_serialize_reason({
@@ -4842,17 +4891,93 @@ var icon_edit_default = _template("A", (input) => {
4842
4891
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
4843
4892
  });
4844
4893
  //#endregion
4845
- //#region src/tags/side-nav-item.marko
4846
- var phaseOf;
4847
- var sessionPhase;
4894
+ //#region src/tags/side-nav-chips.marko
4848
4895
  var $class$2 = [
4849
4896
  "\"chip pr\"",
4850
4897
  "\"chip pr draft\"",
4851
4898
  "\"chip pr rejected\"",
4852
4899
  "\"chip pr draft rejected\""
4853
4900
  ];
4854
- var side_nav_item_default = _template("n", (input) => {
4855
- const $scope0_reason = _scope_reason(), $sg__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 1), $sg__input_onReview = _serialize_guard($scope0_reason, 14), $sg__input_agents = _serialize_guard($scope0_reason, 16), $si__input_agents = _serialize_if($scope0_reason, 16), $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession = _serialize_guard($scope0_reason, 9), $sg__input_onNewSession = _serialize_guard($scope0_reason, 15), $sg__input_sessions = _serialize_guard($scope0_reason, 17), $si__input_workspaceId__OR__input_status = _serialize_if($scope0_reason, 1), $si__input_current = _serialize_if($scope0_reason, 12), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 0), $sg__input_rail = _serialize_guard($scope0_reason, 11), $si__input_workspaceId__OR__input_status__OR__input_rail = _serialize_if($scope0_reason, 5), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_workspaces__OR__input_workspaceId__OR__input_rail = _serialize_if($scope0_reason, 4), $si__input_index = _serialize_if($scope0_reason, 13), $si__input_currentTab = _serialize_if($scope0_reason, 18), $si__input_onReview = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15);
4901
+ var side_nav_chips_default = _template("q", (input) => {
4902
+ const $scope0_reason = _scope_reason(), $sg__input_status_repos = _serialize_guard($scope0_reason, 1), $si__input_status_repos = _serialize_if($scope0_reason, 1), $sg__input_status_ports = _serialize_guard($scope0_reason, 2), $sg__input_status_repos__OR__input_status_ports = _serialize_guard($scope0_reason, 0), $si__input_status_repos__OR__input_status_ports = _serialize_if($scope0_reason, 0);
4903
+ const $scope0_id = _scope_id();
4904
+ const $armedPid__closures = /* @__PURE__ */ new Set();
4905
+ let armedPid = null;
4906
+ const armBox = { timer: 0 };
4907
+ const arm = _resume((pid) => {
4908
+ clearTimeout(armBox.timer);
4909
+ armedPid = pid;
4910
+ armBox.timer = setTimeout(() => {
4911
+ armedPid = null;
4912
+ }, 3500);
4913
+ }, "q0", $scope0_id);
4914
+ const repos = input.status?.repos || [];
4915
+ const ports = input.status?.ports || [];
4916
+ _if(() => {
4917
+ if (repos.some((r) => (r.prs || []).length) || ports.length) {
4918
+ const $scope1_id = _scope_id();
4919
+ const $if_content__repoLabel__closures = /* @__PURE__ */ new Set();
4920
+ const repoLabel = _resume((repo) => {
4921
+ if (repos.length < 2) return "";
4922
+ const name = repo.full_name.split("/")[1];
4923
+ return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/")[1] === name) ? repo.full_name : name;
4924
+ }, "q1", $scope1_id);
4925
+ _html("<div class=side-chips>");
4926
+ _for_of(repos, (repo) => {
4927
+ const $scope2_id = _scope_id();
4928
+ _for_of(repo.prs || [], (pr) => {
4929
+ const $scope3_id = _scope_id();
4930
+ _html(`<button type=button class=${$class$2[(pr.isDraft ? 1 : 0) + (pr.reviewDecision === "CHANGES_REQUESTED" ? 2 : 0)]}${_attr("title", `${repo.worktree} — ${pr.title}${pr.reviewDecision === "APPROVED" ? " (approved)" : pr.reviewDecision === "CHANGES_REQUESTED" ? " (changes requested)" : ""}`)}>${_escape(repoLabel(repo))}${_el_resume($scope3_id, "b", $sg__input_status_repos)}#${_sep($sg__input_status_repos)}${_escape(pr.number)}${_el_resume($scope3_id, "c", $sg__input_status_repos)}${_sep($sg__input_status_repos)}${pr.reviewDecision === "APPROVED" ? " ✓" : pr.reviewDecision === "CHANGES_REQUESTED" ? " ✗" : ""}${_el_resume($scope3_id, "d", $sg__input_status_repos)}</button>${_el_resume($scope3_id, "a")}`);
4931
+ _script($scope3_id, "q2");
4932
+ _subscribe($si__input_status_repos && $if_content__repoLabel__closures, writeScope($scope3_id, {
4933
+ l: pr?.number,
4934
+ _: _scope_with_id($scope2_id)
4935
+ }));
4936
+ }, "number", $scope2_id, "a", $sg__input_status_repos, $sg__input_status_repos, $sg__input_status_repos, 0, 1);
4937
+ writeScope($scope2_id, {
4938
+ c: $si__input_status_repos && repo,
4939
+ e: repo?.worktree,
4940
+ _: _scope_with_id($scope1_id)
4941
+ });
4942
+ }, "full_name", $scope1_id, "a", $sg__input_status_repos, $sg__input_status_repos, $sg__input_status_repos__OR__input_status_ports);
4943
+ _for_of(ports, (p) => {
4944
+ const $scope4_id = _scope_id();
4945
+ _html(`<span class="chip port-chip"${_attr("title", p.cmd)}><button type=button class=port-open${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_status_ports)}${_escape(p.port)}${_el_resume($scope4_id, "c", $sg__input_status_ports)}</button>${_el_resume($scope4_id, "b")}<button type=button class=${armedPid === p.pid ? "\"port-kill armed\"" : "port-kill"}${armedPid === p.pid ? _attr("title", `Really kill ${p.cmd}?`) : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>×</button>${_el_resume($scope4_id, "d")}</span>${_el_resume($scope4_id, "a", $sg__input_status_ports)}`);
4946
+ _script($scope4_id, "q3");
4947
+ _subscribe($armedPid__closures, writeScope($scope4_id, {
4948
+ g: p?.cmd,
4949
+ h: p?.port,
4950
+ i: p?.pid,
4951
+ _: _scope_with_id($scope1_id)
4952
+ }));
4953
+ }, "port", $scope1_id, "b", $sg__input_status_ports, $sg__input_status_ports, $sg__input_status_repos__OR__input_status_ports, 0, 1);
4954
+ _html("</div>");
4955
+ writeScope($scope1_id, {
4956
+ c: $si__input_status_repos && repoLabel,
4957
+ _: _scope_with_id($scope0_id),
4958
+ d: $si__input_status_repos && $if_content__repoLabel__closures
4959
+ });
4960
+ return 0;
4961
+ }
4962
+ }, $scope0_id, "a", $sg__input_status_repos__OR__input_status_ports, $sg__input_status_repos__OR__input_status_ports, $sg__input_status_repos__OR__input_status_ports, 0, 1);
4963
+ writeScope($scope0_id, {
4964
+ g: input.onReviewPr,
4965
+ h: armedPid,
4966
+ j: armBox.timer,
4967
+ k: arm,
4968
+ l: $si__input_status_repos__OR__input_status_ports && repos,
4969
+ m: $si__input_status_repos__OR__input_status_ports && ports,
4970
+ n: $si__input_status_repos && ports.length,
4971
+ p: $armedPid__closures
4972
+ });
4973
+ _resume_branch($scope0_id);
4974
+ });
4975
+ //#endregion
4976
+ //#region src/tags/side-nav-item.marko
4977
+ var phaseOf;
4978
+ var sessionPhase;
4979
+ var side_nav_item_default = _template("r", (input) => {
4980
+ const $scope0_reason = _scope_reason(), $sg__input_workspaceId__OR__input_status = _serialize_guard($scope0_reason, 1), $sg__input_onReview = _serialize_guard($scope0_reason, 15), $sg__input_agents = _serialize_guard($scope0_reason, 17), $si__input_agents = _serialize_if($scope0_reason, 17), $sg__input_onReview__OR__input_onNewSession = _serialize_guard($scope0_reason, 2), $sg__input_onNewSession = _serialize_guard($scope0_reason, 16), $sg__input_sessions = _serialize_guard($scope0_reason, 18), $si__input_current = _serialize_if($scope0_reason, 13), $si__input_sessions = _serialize_if($scope0_reason, 18), $si__input_workspaces__OR__input_workspaceId = _serialize_if($scope0_reason, 0), $sg__input_rail = _serialize_guard($scope0_reason, 12), $si__input_rail = _serialize_if($scope0_reason, 12), $sg__input_workspaces__OR__input_workspaceId = _serialize_guard($scope0_reason, 0), $si__input_workspaces__OR__input_workspaceId__OR__input_rail = _serialize_if($scope0_reason, 5), $si__input_index = _serialize_if($scope0_reason, 14), $si__input_currentTab = _serialize_if($scope0_reason, 19), $si__input_onReview = _serialize_if($scope0_reason, 15), $si__input_onNewSession = _serialize_if($scope0_reason, 16), $si__input_onReviewPr = _serialize_if($scope0_reason, 20);
4856
4981
  const $scope0_id = _scope_id();
4857
4982
  const $input_current__closures = /* @__PURE__ */ new Set();
4858
4983
  const $input_index__closures = /* @__PURE__ */ new Set();
@@ -4860,34 +4985,30 @@ var side_nav_item_default = _template("n", (input) => {
4860
4985
  const $input_agents__closures = /* @__PURE__ */ new Set();
4861
4986
  const $input_currentTab__closures = /* @__PURE__ */ new Set();
4862
4987
  const $armedKill__closures = /* @__PURE__ */ new Set();
4863
- const $armedPid__closures = /* @__PURE__ */ new Set();
4864
4988
  const $input_onReview__closures = /* @__PURE__ */ new Set();
4865
4989
  const $input_onNewSession__closures = /* @__PURE__ */ new Set();
4866
4990
  const $input_sessions__closures = /* @__PURE__ */ new Set();
4991
+ const $input_onReviewPr__closures = /* @__PURE__ */ new Set();
4867
4992
  let armedKill = null;
4868
- let armedPid = null;
4869
4993
  const armBox = { timer: 0 };
4870
- const arm = _resume((set) => {
4994
+ const arm = _resume((id) => {
4871
4995
  clearTimeout(armBox.timer);
4872
- set();
4996
+ armedKill = id;
4873
4997
  armBox.timer = setTimeout(() => {
4874
4998
  armedKill = null;
4875
- armedPid = null;
4876
4999
  }, 3500);
4877
- }, "n0", $scope0_id);
5000
+ }, "r0", $scope0_id);
4878
5001
  const ws = input.workspaces.find((w) => w.id === input.workspaceId);
4879
5002
  _if(() => {
4880
5003
  if (ws) {
4881
5004
  const $scope1_id = _scope_id();
4882
- const $if_content__st_repos__closures = /* @__PURE__ */ new Set();
4883
- const $if_content__st_ports__closures = /* @__PURE__ */ new Set();
4884
5005
  const st = input.status[input.workspaceId];
4885
5006
  const dot = phaseOf(st);
4886
5007
  _if(() => {
4887
5008
  if (input.rail) {
4888
5009
  const $scope2_id = _scope_id();
4889
- _html(`<button class=${input.current ? "\"icon-btn rail-btn current\"" : "\"icon-btn rail-btn\""}${_attr("title", ws.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 13))}<span${_attr_class(["dot", dot])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope2_id, "a")}`);
4890
- _script($scope2_id, "n2");
5010
+ _html(`<button class=${input.current ? "\"icon-btn rail-btn current\"" : "\"icon-btn rail-btn\""}${_attr("title", ws.name)}>${_escape((input.index ?? 0) + 1)}${_el_resume($scope2_id, "b", _serialize_guard($scope0_reason, 14))}<span${_attr_class(["dot", dot])}></span>${_el_resume($scope2_id, "c", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope2_id, "a")}`);
5011
+ _script($scope2_id, "r1");
4891
5012
  _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_index && $input_index__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope2_id, { _: _scope_with_id($scope1_id) }))));
4892
5013
  return 0;
4893
5014
  } else {
@@ -4899,11 +5020,11 @@ var side_nav_item_default = _template("n", (input) => {
4899
5020
  _html("<button class=\"row-icon new-sess\" title=\"Review changes\">");
4900
5021
  icon_diff_default({ size: 12 });
4901
5022
  _html(`</button>${_el_resume($scope4_id, "a")}`);
4902
- _script($scope4_id, "n3");
5023
+ _script($scope4_id, "r2");
4903
5024
  writeScope($scope4_id, { _: _scope_with_id($scope3_id) });
4904
5025
  return 0;
4905
5026
  }
4906
- }, $scope3_id, "e", $sg__input_onReview, $sg__input_onReview, $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession, 0, 1);
5027
+ }, $scope3_id, "e", $sg__input_onReview, $sg__input_onReview, $sg__input_onReview__OR__input_onNewSession, 0, 1);
4907
5028
  _html("<button class=row-icon title=\"Manage workspace\">");
4908
5029
  icon_manage_default({ size: 12 });
4909
5030
  _html(`</button>${_el_resume($scope3_id, "f")}`);
@@ -4930,18 +5051,18 @@ var side_nav_item_default = _template("n", (input) => {
4930
5051
  size: 14
4931
5052
  });
4932
5053
  _html(`${_sep($sg__input_agents)}${_escape(agent)}${_el_resume($scope6_id, "c", $sg__input_agents)}</button>${_el_resume($scope6_id, "a")}`);
4933
- _script($scope6_id, "n4");
5054
+ _script($scope6_id, "r3");
4934
5055
  writeScope($scope6_id, {
4935
5056
  e: agent,
4936
5057
  _: _scope_with_id($scope5_id),
4937
5058
  b: $si__input_agents && _existing_scope($childScope)
4938
5059
  });
4939
5060
  }, (a) => a, $scope5_id, "c", $sg__input_agents, 1, $sg__input_agents, "</div>", 1);
4940
- _script($scope5_id, "n5");
5061
+ _script($scope5_id, "r4");
4941
5062
  _subscribe($si__input_agents && $input_agents__closures, writeScope($scope5_id, { _: _scope_with_id($scope3_id) }));
4942
5063
  return 0;
4943
5064
  }
4944
- }, $scope3_id, "h", $sg__input_onNewSession, $sg__input_onNewSession, $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession);
5065
+ }, $scope3_id, "h", $sg__input_onNewSession, $sg__input_onNewSession, $sg__input_onReview__OR__input_onNewSession);
4945
5066
  const sessions = input.sessions || [];
4946
5067
  _html("</div><div class=side-sessions>");
4947
5068
  _for_of(sessions.length > 1 ? sessions : [], (s) => {
@@ -4959,8 +5080,8 @@ var side_nav_item_default = _template("n", (input) => {
4959
5080
  });
4960
5081
  _html(`${_sep($sg__input_sessions)}${_escape(s.title || s.agent)}${_el_resume($scope7_id, "e", $sg__input_sessions)}</button>${_el_resume($scope7_id, "b")}<button class=row-icon title="Rename session">`);
4961
5082
  icon_edit_default({ size: 12 });
4962
- _html(`</button>${_el_resume($scope7_id, "f")}<button class=${armedKill === s.id ? "\"close armed\"" : "close"} title=${armedKill === s.id ? "\"Really kill this session?\"" : "\"Kill session\""}>×</button>${_el_resume($scope7_id, "h")}</div>${_el_resume($scope7_id, "a", _serialize_guard($scope0_reason, 2))}`);
4963
- _script($scope7_id, "n6");
5083
+ _html(`</button>${_el_resume($scope7_id, "f")}<button class=${armedKill === s.id ? "\"close armed\"" : "close"} title=${armedKill === s.id ? "\"Really kill this session?\"" : "\"Kill session\""}>×</button>${_el_resume($scope7_id, "h")}</div>${_el_resume($scope7_id, "a", _serialize_guard($scope0_reason, 3))}`);
5084
+ _script($scope7_id, "r5");
4964
5085
  _subscribe($armedKill__closures, _subscribe($si__input_currentTab && $input_currentTab__closures, writeScope($scope7_id, {
4965
5086
  j: s,
4966
5087
  k: s?.id,
@@ -4968,78 +5089,38 @@ var side_nav_item_default = _template("n", (input) => {
4968
5089
  d: $si__input_sessions && _existing_scope($childScope2)
4969
5090
  })));
4970
5091
  }, "id", $scope3_id, "i", $sg__input_sessions, $sg__input_sessions, $sg__input_sessions, 0, 1);
4971
- _if(() => {
4972
- if ((st?.repos || []).some((r) => (r.prs || []).length) || (st?.ports || []).length) {
4973
- const $scope8_id = _scope_id();
4974
- const $if_content5__repoLabel__closures = /* @__PURE__ */ new Set();
4975
- const repoLabel = _resume((repo) => {
4976
- const repos = st?.repos || [];
4977
- if (repos.length < 2) return "";
4978
- const name = repo.full_name.split("/")[1];
4979
- return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/")[1] === name) ? repo.full_name : name;
4980
- }, "n1", $scope8_id);
4981
- _html("<div class=side-chips>");
4982
- _for_of(st?.repos || [], (repo) => {
4983
- const $scope9_id = _scope_id();
4984
- _for_of(repo.prs || [], (pr) => {
4985
- const $scope10_id = _scope_id();
4986
- _html(`<button class=${$class$2[(pr.isDraft ? 1 : 0) + (pr.reviewDecision === "CHANGES_REQUESTED" ? 2 : 0)]}${_attr("title", `${repo.worktree} — ${pr.title}${pr.reviewDecision === "APPROVED" ? " (approved)" : pr.reviewDecision === "CHANGES_REQUESTED" ? " (changes requested)" : ""}`)}>${_escape(repoLabel(repo))}${_el_resume($scope10_id, "b", $sg__input_workspaceId__OR__input_status)}#${_sep($sg__input_workspaceId__OR__input_status)}${_escape(pr.number)}${_el_resume($scope10_id, "c", $sg__input_workspaceId__OR__input_status)}${_sep($sg__input_workspaceId__OR__input_status)}${pr.reviewDecision === "APPROVED" ? " ✓" : pr.reviewDecision === "CHANGES_REQUESTED" ? " ✗" : ""}${_el_resume($scope10_id, "d", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope10_id, "a")}`);
4987
- _script($scope10_id, "n7");
4988
- _subscribe($si__input_workspaceId__OR__input_status && $if_content5__repoLabel__closures, writeScope($scope10_id, {
4989
- l: pr?.number,
4990
- _: _scope_with_id($scope9_id)
4991
- }));
4992
- }, "number", $scope9_id, "a", $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, 0, 1);
4993
- writeScope($scope9_id, {
4994
- c: $si__input_workspaceId__OR__input_status && repo,
4995
- e: repo?.worktree,
4996
- _: _scope_with_id($scope8_id)
4997
- });
4998
- }, "full_name", $scope8_id, "a", $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status);
4999
- _for_of(st?.ports || [], (p) => {
5000
- const $scope11_id = _scope_id();
5001
- _html(`<span class="chip port-chip"${_attr("title", p.cmd)}><button class=port-open${_attr("title", `Open http://${typeof location === "undefined" ? "localhost" : location.hostname}:${p.port}`)}>:${_sep($sg__input_workspaceId__OR__input_status)}${_escape(p.port)}${_el_resume($scope11_id, "c", $sg__input_workspaceId__OR__input_status)}</button>${_el_resume($scope11_id, "b")}<button class=${armedPid === p.pid ? "\"port-kill armed\"" : "port-kill"}${armedPid === p.pid ? _attr("title", `Really kill ${p.cmd}?`) : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>×</button>${_el_resume($scope11_id, "d")}</span>${_el_resume($scope11_id, "a", $sg__input_workspaceId__OR__input_status)}`);
5002
- _script($scope11_id, "n8");
5003
- _subscribe($armedPid__closures, writeScope($scope11_id, {
5004
- g: p?.cmd,
5005
- h: p?.port,
5006
- i: p?.pid,
5007
- _: _scope_with_id($scope8_id)
5008
- }));
5009
- }, "port", $scope8_id, "b", $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, 0, 1);
5010
- _html("</div>");
5011
- _subscribe($si__input_workspaceId__OR__input_status && $if_content__st_ports__closures, _subscribe($si__input_workspaceId__OR__input_status && $if_content__st_repos__closures, writeScope($scope8_id, {
5012
- c: $si__input_workspaceId__OR__input_status && repoLabel,
5013
- _: _scope_with_id($scope3_id),
5014
- d: $si__input_workspaceId__OR__input_status && $if_content5__repoLabel__closures
5015
- })));
5016
- return 0;
5017
- }
5018
- }, $scope3_id, "j", $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status, $sg__input_workspaceId__OR__input_status__OR__input_onReview__OR__input_onNewSession, 0, 1);
5019
- _html(`</div></section>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 12))}`);
5020
- _script($scope3_id, "n9");
5021
- _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope3_id, {
5092
+ _set_serialize_reason({
5093
+ 0: $sg__input_workspaceId__OR__input_status,
5094
+ 1: $sg__input_workspaceId__OR__input_status,
5095
+ 2: $sg__input_workspaceId__OR__input_status
5096
+ });
5097
+ const $childScope3 = _peek_scope_id();
5098
+ side_nav_chips_default({
5099
+ status: st,
5100
+ onReviewPr: input.onReviewPr
5101
+ });
5102
+ _html(`</div></section>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 13))}`);
5103
+ _script($scope3_id, "r6");
5104
+ _subscribe($si__input_workspaces__OR__input_workspaceId && $ws_name__closures, _subscribe($si__input_onReviewPr && $input_onReviewPr__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_current && $input_current__closures, writeScope($scope3_id, {
5022
5105
  _: _scope_with_id($scope1_id),
5023
- Ca5: $si__input_current && 1,
5024
- Cae: $si__input_workspaces__OR__input_workspaceId && 1
5025
- }))))));
5106
+ j: _serialize_if($scope0_reason, 7) && _existing_scope($childScope3),
5107
+ Ca4: $si__input_current && 1,
5108
+ Cad: $si__input_workspaces__OR__input_workspaceId && 1
5109
+ })))))));
5026
5110
  return 1;
5027
5111
  }
5028
- }, $scope1_id, "a", _serialize_guard($scope0_reason, 5), $sg__input_rail, $sg__input_rail, 0, 1);
5112
+ }, $scope1_id, "a", _serialize_guard($scope0_reason, 6), $sg__input_rail, $sg__input_rail, 0, 1);
5029
5113
  writeScope($scope1_id, {
5030
- c: $si__input_workspaceId__OR__input_status__OR__input_rail && st?.repos,
5031
- d: $si__input_workspaceId__OR__input_status__OR__input_rail && st?.ports,
5032
- e: _serialize_if($scope0_reason, 11) && dot,
5033
- _: _scope_with_id($scope0_id),
5034
- g: $si__input_workspaceId__OR__input_status && $if_content__st_repos__closures,
5035
- h: $si__input_workspaceId__OR__input_status && $if_content__st_ports__closures
5114
+ b: $si__input_rail && st,
5115
+ c: $si__input_rail && dot,
5116
+ _: _scope_with_id($scope0_id)
5036
5117
  });
5037
5118
  return 0;
5038
5119
  }
5039
- }, $scope0_id, "a", _serialize_guard($scope0_reason, 6), $sg__input_workspaces__OR__input_workspaceId, $sg__input_workspaces__OR__input_workspaceId);
5120
+ }, $scope0_id, "a", _serialize_guard($scope0_reason, 8), $sg__input_workspaces__OR__input_workspaceId, $sg__input_workspaces__OR__input_workspaceId);
5040
5121
  writeScope($scope0_id, {
5041
- d: _serialize_if($scope0_reason, 10) && input.workspaces,
5042
- e: _serialize_if($scope0_reason, 3) && input.workspaceId,
5122
+ d: _serialize_if($scope0_reason, 11) && input.workspaces,
5123
+ e: _serialize_if($scope0_reason, 4) && input.workspaceId,
5043
5124
  g: $si__input_workspaces__OR__input_workspaceId && input.status,
5044
5125
  h: $si__input_workspaces__OR__input_workspaceId && input.rail,
5045
5126
  i: $si__input_workspaces__OR__input_workspaceId__OR__input_rail && input.current,
@@ -5048,34 +5129,33 @@ var side_nav_item_default = _template("n", (input) => {
5048
5129
  l: input.onReview,
5049
5130
  m: input.onManage,
5050
5131
  n: input.onNewSession,
5051
- o: _serialize_if($scope0_reason, 7) && input.agents,
5132
+ o: _serialize_if($scope0_reason, 9) && input.agents,
5052
5133
  p: $si__input_workspaces__OR__input_workspaceId__OR__input_rail && input.sessions,
5053
- q: _serialize_if($scope0_reason, 8) && input.currentTab,
5134
+ q: _serialize_if($scope0_reason, 10) && input.currentTab,
5054
5135
  r: input.onOpenTab,
5055
5136
  s: input.onRenameSession,
5056
5137
  t: input.onCloseSession,
5057
- u: input.onReviewPr,
5138
+ u: $si__input_workspaces__OR__input_workspaceId__OR__input_rail && input.onReviewPr,
5058
5139
  v: armedKill,
5059
- w: armedPid,
5060
- y: armBox.timer,
5061
- z: arm,
5062
- a1: $si__input_workspaces__OR__input_workspaceId__OR__input_rail && ws?.name,
5063
- a5: $si__input_current && $input_current__closures,
5064
- a6: $si__input_index && $input_index__closures,
5065
- ae: $si__input_workspaces__OR__input_workspaceId && $ws_name__closures,
5066
- a9: $si__input_agents && $input_agents__closures,
5067
- ab: $si__input_currentTab && $input_currentTab__closures,
5140
+ x: armBox.timer,
5141
+ y: arm,
5142
+ a0: $si__input_workspaces__OR__input_workspaceId__OR__input_rail && ws?.name,
5143
+ a4: $si__input_current && $input_current__closures,
5144
+ a5: $si__input_index && $input_index__closures,
5145
+ ad: $si__input_workspaces__OR__input_workspaceId && $ws_name__closures,
5146
+ a8: $si__input_agents && $input_agents__closures,
5147
+ aa: $si__input_currentTab && $input_currentTab__closures,
5068
5148
  ac: $armedKill__closures,
5069
- ad: $armedPid__closures,
5070
- a7: $si__input_onReview && $input_onReview__closures,
5071
- a8: $si__input_onNewSession && $input_onNewSession__closures,
5072
- aa: $si__input_sessions && $input_sessions__closures
5149
+ a6: $si__input_onReview && $input_onReview__closures,
5150
+ a7: $si__input_onNewSession && $input_onNewSession__closures,
5151
+ a9: $si__input_sessions && $input_sessions__closures,
5152
+ ab: $si__input_onReviewPr && $input_onReviewPr__closures
5073
5153
  });
5074
5154
  _resume_branch($scope0_id);
5075
5155
  });
5076
5156
  //#endregion
5077
5157
  //#region src/tags/icons/icon-sidebar-collapse.marko
5078
- var icon_sidebar_collapse_default = _template("J", (input) => {
5158
+ var icon_sidebar_collapse_default = _template("N", (input) => {
5079
5159
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5080
5160
  const $scope0_id = _scope_id();
5081
5161
  _set_serialize_reason({
@@ -5092,7 +5172,7 @@ var icon_sidebar_collapse_default = _template("J", (input) => {
5092
5172
  });
5093
5173
  //#endregion
5094
5174
  //#region src/tags/icons/icon-sidebar.marko
5095
- var icon_sidebar_default = _template("K", (input) => {
5175
+ var icon_sidebar_default = _template("O", (input) => {
5096
5176
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5097
5177
  const $scope0_id = _scope_id();
5098
5178
  _set_serialize_reason({
@@ -5109,7 +5189,7 @@ var icon_sidebar_default = _template("K", (input) => {
5109
5189
  });
5110
5190
  //#endregion
5111
5191
  //#region src/tags/icons/icon-bell.marko
5112
- var icon_bell_default = _template("w", (input) => {
5192
+ var icon_bell_default = _template("A", (input) => {
5113
5193
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5114
5194
  const $scope0_id = _scope_id();
5115
5195
  _set_serialize_reason({
@@ -5126,7 +5206,7 @@ var icon_bell_default = _template("w", (input) => {
5126
5206
  });
5127
5207
  //#endregion
5128
5208
  //#region src/tags/icons/icon-gauge.marko
5129
- var icon_gauge_default = _template("C", (input) => {
5209
+ var icon_gauge_default = _template("G", (input) => {
5130
5210
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5131
5211
  const $scope0_id = _scope_id();
5132
5212
  _set_serialize_reason({
@@ -5143,7 +5223,7 @@ var icon_gauge_default = _template("C", (input) => {
5143
5223
  });
5144
5224
  //#endregion
5145
5225
  //#region src/tags/icons/icon-folder-plus.marko
5146
- var icon_folder_plus_default = _template("B", (input) => {
5226
+ var icon_folder_plus_default = _template("F", (input) => {
5147
5227
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5148
5228
  const $scope0_id = _scope_id();
5149
5229
  _set_serialize_reason({
@@ -5170,8 +5250,8 @@ var $class$1 = [
5170
5250
  "\"side-nav open\"",
5171
5251
  "\"side-nav closed open\""
5172
5252
  ];
5173
- var side_nav_default = _template("o", (input) => {
5174
- const $scope0_reason = _scope_reason(), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 1), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession = _serialize_guard($scope0_reason, 2), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions = _serialize_guard($scope0_reason, 3), $sg__input_agents = _serialize_guard($scope0_reason, 14), $si__input_workspace = _serialize_if($scope0_reason, 4), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 12), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 13), $si__input_agents = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15), $si__input_onReviewOpened = _serialize_if($scope0_reason, 16), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_onRenameSession = _serialize_if($scope0_reason, 18), $si__input_onCloseSession = _serialize_if($scope0_reason, 19);
5253
+ var side_nav_default = _template("s", (input) => {
5254
+ const $scope0_reason = _scope_reason(), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus = _serialize_guard($scope0_reason, 1), $sg__input_workspace__OR__input_allWorkspaces = _serialize_guard($scope0_reason, 0), $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession = _serialize_guard($scope0_reason, 2), $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions = _serialize_guard($scope0_reason, 3), $sg__input_agents = _serialize_guard($scope0_reason, 14), $sg__input_workspace = _serialize_guard($scope0_reason, 4), $si__input_workspace = _serialize_if($scope0_reason, 4), $si__input_workspace__OR__input_allWorkspaces = _serialize_if($scope0_reason, 0), $si__input_allStatus = _serialize_if($scope0_reason, 12), $si__input_onSelectWorkspace = _serialize_if($scope0_reason, 13), $si__input_agents = _serialize_if($scope0_reason, 14), $si__input_onNewSession = _serialize_if($scope0_reason, 15), $si__input_onReviewOpened = _serialize_if($scope0_reason, 16), $si__input_sessions = _serialize_if($scope0_reason, 17), $si__input_onRenameSession = _serialize_if($scope0_reason, 18), $si__input_onCloseSession = _serialize_if($scope0_reason, 19);
5175
5255
  const $scope0_id = _scope_id();
5176
5256
  const $ws_id__closures = /* @__PURE__ */ new Set();
5177
5257
  const $workspaces__closures = /* @__PURE__ */ new Set();
@@ -5204,7 +5284,7 @@ var side_nav_default = _template("o", (input) => {
5204
5284
  notifyOn = false;
5205
5285
  input.onError?.(`Notifications failed: ${String(err.message || err)}`);
5206
5286
  }
5207
- }, "o0", $scope0_id);
5287
+ }, "s0", $scope0_id);
5208
5288
  const itemIds = input.allWorkspaces?.length ? input.allWorkspaces.filter((w) => w.status === "active").map((w) => w.id) : [ws.id];
5209
5289
  const workspaces = input.allWorkspaces || [ws];
5210
5290
  const allStatus = input.allStatus || {};
@@ -5213,7 +5293,7 @@ var side_nav_default = _template("o", (input) => {
5213
5293
  if (drawerOpen) {
5214
5294
  const $scope5_id = _scope_id();
5215
5295
  _html(`<div class=drawer-backdrop></div>${_el_resume($scope5_id, "a")}`);
5216
- _script($scope5_id, "o16");
5296
+ _script($scope5_id, "s16");
5217
5297
  writeScope($scope5_id, {});
5218
5298
  return 0;
5219
5299
  }
@@ -5225,20 +5305,22 @@ var side_nav_default = _template("o", (input) => {
5225
5305
  0: $sg__input_workspace__OR__input_allWorkspaces,
5226
5306
  1: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5227
5307
  2: 1,
5228
- 3: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5229
- 4: $sg__input_workspace__OR__input_allWorkspaces,
5230
- 5: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5308
+ 3: 1,
5309
+ 4: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5310
+ 5: $sg__input_workspace__OR__input_allWorkspaces,
5231
5311
  6: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5232
- 7: $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession,
5233
- 8: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions,
5234
- 9: 1,
5235
- 10: $sg__input_workspace__OR__input_allWorkspaces,
5236
- 12: $sg__input_workspace__OR__input_allWorkspaces,
5237
- 14: 1,
5238
- 15: $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession,
5239
- 16: $sg__input_agents,
5240
- 17: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions,
5241
- 18: 1
5312
+ 7: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5313
+ 8: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5314
+ 9: $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession,
5315
+ 10: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions,
5316
+ 11: $sg__input_workspace__OR__input_allWorkspaces,
5317
+ 13: $sg__input_workspace__OR__input_allWorkspaces,
5318
+ 15: 1,
5319
+ 16: $sg__input_workspace__OR__input_allWorkspaces__OR__input_onNewSession,
5320
+ 17: $sg__input_agents,
5321
+ 18: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus__OR__input_sessions,
5322
+ 19: 1,
5323
+ 20: $sg__input_workspace
5242
5324
  });
5243
5325
  const $childScope = _peek_scope_id();
5244
5326
  side_nav_item_default({
@@ -5251,16 +5333,16 @@ var side_nav_default = _template("o", (input) => {
5251
5333
  drawerOpen = false;
5252
5334
  input.onSelectWorkspace?.(wsId);
5253
5335
  }
5254
- }, "o1", $scope1_id),
5336
+ }, "s1", $scope1_id),
5255
5337
  onManage: _resume(function() {
5256
5338
  drawerOpen = false;
5257
5339
  input.onManage?.(wsId);
5258
- }, "o2", $scope1_id),
5340
+ }, "s2", $scope1_id),
5259
5341
  agents: input.agents,
5260
5342
  onNewSession: _resume(function(agent) {
5261
5343
  drawerOpen = false;
5262
5344
  input.onNewSession(wsId, agent);
5263
- }, "o3", $scope1_id),
5345
+ }, "s3", $scope1_id),
5264
5346
  onReview: _resume(function() {
5265
5347
  drawerOpen = false;
5266
5348
  if (wsId === ws.id) {
@@ -5270,7 +5352,7 @@ var side_nav_default = _template("o", (input) => {
5270
5352
  navIntent$1.requestDiff(wsId);
5271
5353
  input.onSelectWorkspace?.(wsId);
5272
5354
  }
5273
- }, "o4", $scope1_id),
5355
+ }, "s4", $scope1_id),
5274
5356
  onReviewPr: _resume(function(worktree, number) {
5275
5357
  drawerOpen = false;
5276
5358
  const pr = `${worktree}/${number}`;
@@ -5281,7 +5363,7 @@ var side_nav_default = _template("o", (input) => {
5281
5363
  navIntent$1.requestDiff(wsId, pr);
5282
5364
  input.onSelectWorkspace?.(wsId);
5283
5365
  }
5284
- }, "o5", $scope1_id),
5366
+ }, "s5", $scope1_id),
5285
5367
  sessions: wsId === ws.id && input.sessions ? input.sessions : allStatus[wsId]?.sessions || [],
5286
5368
  currentTab: wsId === ws.id && view === "term" ? tab : null,
5287
5369
  onOpenTab: _resume(function(sessionId) {
@@ -5290,7 +5372,7 @@ var side_nav_default = _template("o", (input) => {
5290
5372
  tab = sessionId;
5291
5373
  view = "term";
5292
5374
  } else input.onOpenSession?.(wsId, sessionId);
5293
- }, "o6", $scope1_id),
5375
+ }, "s6", $scope1_id),
5294
5376
  onRenameSession: input.onRenameSession,
5295
5377
  onCloseSession: input.onCloseSession
5296
5378
  });
@@ -5305,13 +5387,13 @@ var side_nav_default = _template("o", (input) => {
5305
5387
  const $scope2_id = _scope_id();
5306
5388
  let railHover = null;
5307
5389
  const railHoverBox = { timer: 0 };
5308
- const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "o7", $scope2_id);
5390
+ const railKeep = _resume(() => clearTimeout(railHoverBox.timer), "s7", $scope2_id);
5309
5391
  const railHide = _resume(() => {
5310
5392
  clearTimeout(railHoverBox.timer);
5311
5393
  railHoverBox.timer = setTimeout(() => {
5312
5394
  railHover = null;
5313
5395
  }, 150);
5314
- }, "o8", $scope2_id);
5396
+ }, "s8", $scope2_id);
5315
5397
  _html("<div class=side-rail>");
5316
5398
  _for_of(itemIds, (wsId, i) => {
5317
5399
  const $scope3_id = _scope_id();
@@ -5319,16 +5401,16 @@ var side_nav_default = _template("o", (input) => {
5319
5401
  _set_serialize_reason({
5320
5402
  0: $sg__input_workspace__OR__input_allWorkspaces,
5321
5403
  1: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5322
- 3: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5323
- 4: $sg__input_workspace__OR__input_allWorkspaces,
5324
- 5: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5404
+ 4: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5405
+ 5: $sg__input_workspace__OR__input_allWorkspaces,
5325
5406
  6: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5326
- 7: $sg__input_workspace__OR__input_allWorkspaces,
5327
- 8: $sg__input_workspace__OR__input_allWorkspaces,
5328
- 9: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5407
+ 7: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5408
+ 8: $sg__input_workspace__OR__input_allWorkspaces__OR__input_allStatus,
5409
+ 9: $sg__input_workspace__OR__input_allWorkspaces,
5329
5410
  10: $sg__input_workspace__OR__input_allWorkspaces,
5330
- 12: $sg__input_workspace__OR__input_allWorkspaces,
5331
- 13: $sg__input_workspace__OR__input_allWorkspaces
5411
+ 11: $sg__input_workspace__OR__input_allWorkspaces,
5412
+ 13: $sg__input_workspace__OR__input_allWorkspaces,
5413
+ 14: $sg__input_workspace__OR__input_allWorkspaces
5332
5414
  });
5333
5415
  const $childScope2 = _peek_scope_id();
5334
5416
  side_nav_item_default({
@@ -5340,10 +5422,10 @@ var side_nav_default = _template("o", (input) => {
5340
5422
  current: wsId === ws.id,
5341
5423
  onSelect: _resume(function() {
5342
5424
  if (wsId !== ws.id) input.onSelectWorkspace?.(wsId);
5343
- }, "o9", $scope3_id)
5425
+ }, "s9", $scope3_id)
5344
5426
  });
5345
5427
  _html(`</span>${_el_resume($scope3_id, "a")}`);
5346
- _script($scope3_id, "o17");
5428
+ _script($scope3_id, "s17");
5347
5429
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($si__input_workspace && $ws_id__closures, writeScope($scope3_id, {
5348
5430
  d: wsId,
5349
5431
  _: _scope_with_id($scope2_id),
@@ -5367,12 +5449,14 @@ var side_nav_default = _template("o", (input) => {
5367
5449
  8: 1,
5368
5450
  9: 1,
5369
5451
  10: 1,
5370
- 12: 1,
5371
- 14: 1,
5452
+ 11: 1,
5453
+ 13: 1,
5372
5454
  15: 1,
5373
- 16: $sg__input_agents,
5374
- 17: 1,
5375
- 18: 1
5455
+ 16: 1,
5456
+ 17: $sg__input_agents,
5457
+ 18: 1,
5458
+ 19: 1,
5459
+ 20: $sg__input_workspace
5376
5460
  });
5377
5461
  const $childScope3 = _peek_scope_id();
5378
5462
  side_nav_item_default({
@@ -5383,16 +5467,16 @@ var side_nav_default = _template("o", (input) => {
5383
5467
  onSelect: _resume(function() {
5384
5468
  railHover = null;
5385
5469
  if (hoverId !== ws.id) input.onSelectWorkspace?.(hoverId);
5386
- }, "o10", $scope4_id),
5470
+ }, "s10", $scope4_id),
5387
5471
  onManage: _resume(function() {
5388
5472
  railHover = null;
5389
5473
  input.onManage?.(hoverId);
5390
- }, "o11", $scope4_id),
5474
+ }, "s11", $scope4_id),
5391
5475
  agents: input.agents,
5392
5476
  onNewSession: _resume(function(agent) {
5393
5477
  railHover = null;
5394
5478
  input.onNewSession(hoverId, agent);
5395
- }, "o12", $scope4_id),
5479
+ }, "s12", $scope4_id),
5396
5480
  onReview: _resume(function() {
5397
5481
  railHover = null;
5398
5482
  if (hoverId === ws.id) {
@@ -5402,7 +5486,7 @@ var side_nav_default = _template("o", (input) => {
5402
5486
  navIntent$1.requestDiff(hoverId);
5403
5487
  input.onSelectWorkspace?.(hoverId);
5404
5488
  }
5405
- }, "o13", $scope4_id),
5489
+ }, "s13", $scope4_id),
5406
5490
  onReviewPr: _resume(function(worktree, number) {
5407
5491
  railHover = null;
5408
5492
  const pr = `${worktree}/${number}`;
@@ -5413,7 +5497,7 @@ var side_nav_default = _template("o", (input) => {
5413
5497
  navIntent$1.requestDiff(hoverId, pr);
5414
5498
  input.onSelectWorkspace?.(hoverId);
5415
5499
  }
5416
- }, "o14", $scope4_id),
5500
+ }, "s14", $scope4_id),
5417
5501
  sessions: hoverId === ws.id && input.sessions ? input.sessions : allStatus[hoverId]?.sessions || [],
5418
5502
  currentTab: hoverId === ws.id && view === "term" ? tab : null,
5419
5503
  onOpenTab: _resume(function(sessionId) {
@@ -5422,12 +5506,12 @@ var side_nav_default = _template("o", (input) => {
5422
5506
  tab = sessionId;
5423
5507
  view = "term";
5424
5508
  } else input.onOpenSession?.(hoverId, sessionId);
5425
- }, "o15", $scope4_id),
5509
+ }, "s15", $scope4_id),
5426
5510
  onRenameSession: input.onRenameSession,
5427
5511
  onCloseSession: input.onCloseSession
5428
5512
  });
5429
5513
  _html(`</div>${_el_resume($scope4_id, "a")}`);
5430
- _script($scope4_id, "o18");
5514
+ _script($scope4_id, "s18");
5431
5515
  _subscribe($si__input_allStatus && $allStatus__closures, _subscribe($si__input_workspace__OR__input_allWorkspaces && $workspaces__closures, _subscribe($view__closures, _subscribe($tab__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_onCloseSession && $input_onCloseSession__closures, _subscribe($si__input_onRenameSession && $input_onRenameSession__closures, _subscribe($si__input_sessions && $input_sessions__closures, _subscribe($si__input_onReviewOpened && $input_onReviewOpened__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_onSelectWorkspace && $input_onSelectWorkspace__closures, writeScope($scope4_id, {
5432
5516
  c: hoverId,
5433
5517
  b: _existing_scope($childScope3),
@@ -5470,7 +5554,7 @@ var side_nav_default = _template("o", (input) => {
5470
5554
  _html(`<button class=${notifyOn ? "\"icon-btn notify-btn on\"" : "\"icon-btn notify-btn\""} title=${notifyOn ? "\"Disable agent-waiting notifications\"" : "\"Notify when an agent is waiting\""}>`);
5471
5555
  icon_bell_default({ size: 15 });
5472
5556
  _html(`</button>${_el_resume($scope6_id, "a")}`);
5473
- _script($scope6_id, "o19");
5557
+ _script($scope6_id, "s19");
5474
5558
  writeScope($scope6_id, { _: _scope_with_id($scope0_id) });
5475
5559
  return 0;
5476
5560
  }
@@ -5480,8 +5564,8 @@ var side_nav_default = _template("o", (input) => {
5480
5564
  _html(`</button>${_el_resume($scope0_id, "g")}<button class=icon-btn title="New workspace">`);
5481
5565
  icon_folder_plus_default({ size: 16 });
5482
5566
  _html(`</button>${_el_resume($scope0_id, "i")}</div></aside>${_el_resume($scope0_id, "b")}`);
5483
- _script($scope0_id, "o20");
5484
- _script($scope0_id, "o21");
5567
+ _script($scope0_id, "s20");
5568
+ _script($scope0_id, "s21");
5485
5569
  writeScope($scope0_id, {
5486
5570
  n: _serialize_if($scope0_reason, 6) && input.tab,
5487
5571
  o: _serialize_if($scope0_reason, 5) && input.tabChange,
@@ -5660,8 +5744,113 @@ function treeRows(files) {
5660
5744
  return rows;
5661
5745
  }
5662
5746
  //#endregion
5747
+ //#region src/tags/diff-tree.marko
5748
+ var diff_tree_default = _template("h", (input) => {
5749
+ const $scope0_reason = _scope_reason(), $sg__input_sections = _serialize_guard($scope0_reason, 6), $sg__input_commentKeys__OR__input_sections = _serialize_guard($scope0_reason, 0), $si__input_sections = _serialize_if($scope0_reason, 6), $si__input_viewed = _serialize_if($scope0_reason, 4), $si__input_commentKeys = _serialize_if($scope0_reason, 5);
5750
+ const $scope0_id = _scope_id();
5751
+ const $collapsedDirs__closures = /* @__PURE__ */ new Set();
5752
+ const $viewed__closures = /* @__PURE__ */ new Set();
5753
+ const $commentKeys__closures = /* @__PURE__ */ new Set();
5754
+ let collapsedRepos = input.collapsedRepos;
5755
+ let collapsedDirs = /* @__PURE__ */ new Set();
5756
+ const viewed = input.viewed || /* @__PURE__ */ new Set();
5757
+ const commentKeys = input.commentKeys || /* @__PURE__ */ new Set();
5758
+ _html(`<aside class=${input.open === false ? "\"tree closed\"" : "tree"}>`);
5759
+ _for_of(input.sections, (section) => {
5760
+ const $scope1_id = _scope_id();
5761
+ _html(`<div class=tree-repo><button type=button class=${collapsedRepos.has(section.id) ? "\"tree-repo-name mono closed\"" : "\"tree-repo-name mono\""}><span class=tree-chev>${collapsedRepos.has(section.id) ? "▸" : "▾"}${_el_resume($scope1_id, "b")}</span>${_sep($sg__input_sections)}${_escape(section.label)}${_el_resume($scope1_id, "c", $sg__input_sections)}</button>${_el_resume($scope1_id, "a")}`);
5762
+ _if(() => {
5763
+ if (!collapsedRepos.has(section.id)) {
5764
+ const $scope2_id = _scope_id();
5765
+ const $if_content__dirKey__closures = /* @__PURE__ */ new Set();
5766
+ const repoRows = treeRows(section.files);
5767
+ const dirKey = _resume((path) => `${section.id}/${path}`, "h0", $scope2_id);
5768
+ const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "h1");
5769
+ const hiddenByCollapse = _resume((row) => {
5770
+ const dir = rowDir(row);
5771
+ for (const collapsed of collapsedDirs) {
5772
+ const slash = collapsed.indexOf("/");
5773
+ const wt = collapsed.slice(0, slash);
5774
+ const path = collapsed.slice(slash + 1);
5775
+ if (wt !== section.id) continue;
5776
+ if (row.kind === "dir" && row.path === path) continue;
5777
+ if (dir === path || dir.startsWith(`${path}/`)) return true;
5778
+ }
5779
+ return false;
5780
+ }, "h2", $scope2_id);
5781
+ _for_of(repoRows, (row) => {
5782
+ const $scope3_id = _scope_id();
5783
+ _if(() => {
5784
+ if (!hiddenByCollapse(row) && row.kind === "dir") {
5785
+ const $scope5_id = _scope_id();
5786
+ _html(`<button type=button class=${collapsedDirs.has(dirKey(row.path)) ? "\"tree-dir dim mono closed\"" : "\"tree-dir dim mono\""}${_attr("title", row.path)}${_attr_style(`padding-left:${.35 + row.depth * .75}rem`)}><span class=tree-chev>${collapsedDirs.has(dirKey(row.path)) ? "▸" : "▾"}${_el_resume($scope5_id, "b")}</span>${_escape(row.label)}${_el_resume($scope5_id, "c", $sg__input_sections)}/</button>${_el_resume($scope5_id, "a")}`);
5787
+ _script($scope5_id, "h3");
5788
+ _subscribe($si__input_sections && $if_content__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope5_id, { Cr: 1 })));
5789
+ return 0;
5790
+ } else if (!hiddenByCollapse(row) && row.kind !== "dir") {
5791
+ const $scope4_id = _scope_id();
5792
+ _html(`<button type=button class=${viewed.has(row.file.key) ? "\"tree-file mono seen\"" : "\"tree-file mono\""}${_attr("title", row.file.path)}${_attr_style(`padding-left:${.5 + row.depth * .75}rem`)}><span${_attr_class(["status", row.file.status])}>${_escape(row.file.status)}${_el_resume($scope4_id, "c", $sg__input_sections)}</span>${_el_resume($scope4_id, "b", $sg__input_sections)}<span class=tree-file-name>${_escape(row.name)}${_el_resume($scope4_id, "d", $sg__input_sections)}</span>`);
5793
+ _if(() => {
5794
+ if (commentKeys.has(row.file.key)) {
5795
+ const $scope6_id = _scope_id();
5796
+ _html("<span class=tree-note>💬</span>");
5797
+ _serialize_if($scope0_reason, 0) && writeScope($scope6_id, {});
5798
+ return 0;
5799
+ }
5800
+ }, $scope4_id, "e", $sg__input_commentKeys__OR__input_sections, $sg__input_commentKeys__OR__input_sections, $sg__input_commentKeys__OR__input_sections, 0, 1);
5801
+ _html(`</button>${_el_resume($scope4_id, "a")}`);
5802
+ _script($scope4_id, "h4");
5803
+ _subscribe($si__input_commentKeys && $commentKeys__closures, _subscribe($si__input_viewed && $viewed__closures, writeScope($scope4_id, {})));
5804
+ return 1;
5805
+ }
5806
+ }, $scope3_id, "a", 1, 1, 1, 0, 1);
5807
+ writeScope($scope3_id, {
5808
+ c: row,
5809
+ e: row?.path,
5810
+ f: row?.depth,
5811
+ g: row?.label,
5812
+ i: row?.file?.key,
5813
+ j: row?.file?.path,
5814
+ k: row?.file?.status,
5815
+ l: row?.name,
5816
+ _: _scope_with_id($scope2_id)
5817
+ });
5818
+ }, (r) => r.kind === "dir" ? `d:${r.path}` : r.file.key, $scope2_id, "a", 1, $sg__input_sections, $sg__input_sections);
5819
+ _subscribe($collapsedDirs__closures, writeScope($scope2_id, {
5820
+ c: dirKey,
5821
+ d: rowDir,
5822
+ f: $si__input_sections && hiddenByCollapse,
5823
+ g: $si__input_sections && $if_content__dirKey__closures
5824
+ }));
5825
+ return 0;
5826
+ }
5827
+ }, $scope1_id, "d");
5828
+ _html("</div>");
5829
+ _script($scope1_id, "h5");
5830
+ writeScope($scope1_id, {
5831
+ g: section?.id,
5832
+ j: section?.files,
5833
+ _: _scope_with_id($scope0_id)
5834
+ });
5835
+ }, "id", $scope0_id, "a", 1, _serialize_guard($scope0_reason, 1), $sg__input_sections, "</aside>", 1);
5836
+ writeScope($scope0_id, {
5837
+ d: _serialize_if($scope0_reason, 3) && input.collapsedRepos,
5838
+ e: _serialize_if($scope0_reason, 2) && input.collapsedReposChange,
5839
+ k: input.onJump,
5840
+ l: collapsedRepos,
5841
+ n: collapsedDirs,
5842
+ o: viewed,
5843
+ p: commentKeys,
5844
+ m: input.collapsedReposChange || void 0,
5845
+ r: $collapsedDirs__closures,
5846
+ s: $si__input_viewed && $viewed__closures,
5847
+ t: $si__input_commentKeys && $commentKeys__closures
5848
+ });
5849
+ _resume_branch($scope0_id);
5850
+ });
5851
+ //#endregion
5663
5852
  //#region src/tags/icons/icon-back.marko
5664
- var icon_back_default = _template("u", (input) => {
5853
+ var icon_back_default = _template("y", (input) => {
5665
5854
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5666
5855
  const $scope0_id = _scope_id();
5667
5856
  _set_serialize_reason({
@@ -5677,8 +5866,58 @@ var icon_back_default = _template("u", (input) => {
5677
5866
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
5678
5867
  });
5679
5868
  //#endregion
5869
+ //#region src/tags/diff-send.marko
5870
+ var diff_send_default = _template("g", (input) => {
5871
+ const $scope0_reason = _scope_reason(), $sg__input_sessions = _serialize_guard($scope0_reason, 0), $si__input_sessions = _serialize_if($scope0_reason, 0);
5872
+ const $scope0_id = _scope_id();
5873
+ let sending = false;
5874
+ let sendTarget = null;
5875
+ const sessions = input.sessions || [];
5876
+ const sendPick = sessions.some((s) => s.id === sendTarget) ? sendTarget : sessions[0]?.id ?? null;
5877
+ _html(`<span class=head-actions><button type=button class=btn title="Copy comments as markdown">Copy${_el_resume($scope0_id, "b")}</button>${_el_resume($scope0_id, "a")}`);
5878
+ _if(() => {
5879
+ if (sessions.length === 1) {
5880
+ const $scope1_id = _scope_id();
5881
+ _html(`<button type=button class="btn primary"${_attr("disabled", sending)}>${`Send to ${_escape(`${sessions[0].title || sessions[0].agent}`)}`}${_el_resume($scope1_id, "b")}</button>${_el_resume($scope1_id, "a")}`);
5882
+ _script($scope1_id, "g1");
5883
+ writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
5884
+ return 0;
5885
+ } else if (sessions.length) {
5886
+ const $scope2_id = _scope_id();
5887
+ _html(`<span class="split-btn primary"><button type=button${_attr("disabled", sending)}>Send to${_el_resume($scope2_id, "b")}</button>${_el_resume($scope2_id, "a")}`);
5888
+ _attr_select_value($scope2_id, "c", sendTarget, _resume((_new_sendTarget) => {
5889
+ sendTarget = _new_sendTarget;
5890
+ }, "g0", $scope2_id), () => {
5891
+ _html(`<select aria-label="Send comments to session"${_attr("disabled", sending)}>`);
5892
+ _for_of(sessions, (s) => {
5893
+ const $scope3_id = _scope_id();
5894
+ _html(`<option${_attr_option_value(s.id)}>${_escape(s.title || s.agent)}${_el_resume($scope3_id, "b", $sg__input_sessions)}</option>${_el_resume($scope3_id, "a", $sg__input_sessions)}`);
5895
+ $si__input_sessions && writeScope($scope3_id, {});
5896
+ }, "id", $scope2_id, "c", $sg__input_sessions, 1, $sg__input_sessions, "</select>", 1);
5897
+ });
5898
+ _html("</span>");
5899
+ _script($scope2_id, "g2");
5900
+ writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
5901
+ return 1;
5902
+ }
5903
+ }, $scope0_id, "c", 1, $sg__input_sessions, $sg__input_sessions, 0, 1);
5904
+ _html("</span>");
5905
+ _script($scope0_id, "g3");
5906
+ writeScope($scope0_id, {
5907
+ g: input.onCopy,
5908
+ h: input.onSend,
5909
+ j: sending,
5910
+ k: $si__input_sessions && sendTarget,
5911
+ l: sessions,
5912
+ p: sessions[0]?.title,
5913
+ q: sessions[0]?.agent,
5914
+ r: sendPick
5915
+ });
5916
+ _resume_branch($scope0_id);
5917
+ });
5918
+ //#endregion
5680
5919
  //#region src/tags/icons/icon-search.marko
5681
- var icon_search_default = _template("I", (input) => {
5920
+ var icon_search_default = _template("M", (input) => {
5682
5921
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
5683
5922
  const $scope0_id = _scope_id();
5684
5923
  _set_serialize_reason({
@@ -5695,7 +5934,7 @@ var icon_search_default = _template("I", (input) => {
5695
5934
  });
5696
5935
  //#endregion
5697
5936
  //#region src/tags/file-filter.marko
5698
- var file_filter_default = _template("g", (input) => {
5937
+ var file_filter_default = _template("j", (input) => {
5699
5938
  const $scope0_reason = _scope_reason();
5700
5939
  const $scope0_id = _scope_id();
5701
5940
  let value = input.value;
@@ -5710,7 +5949,7 @@ var file_filter_default = _template("g", (input) => {
5710
5949
  const next = pending !== null ? pending : value || "";
5711
5950
  pending = null;
5712
5951
  value = next;
5713
- }, "g1", $scope0_id);
5952
+ }, "j1", $scope0_id);
5714
5953
  const type = _resume((v) => {
5715
5954
  if (box.timer) clearTimeout(box.timer);
5716
5955
  if (!v) {
@@ -5721,11 +5960,11 @@ var file_filter_default = _template("g", (input) => {
5721
5960
  }
5722
5961
  pending = v;
5723
5962
  box.timer = setTimeout(flush, 150);
5724
- }, "g2", $scope0_id);
5963
+ }, "j2", $scope0_id);
5725
5964
  _html(`<div class=wrap><input${_attr_input_value($scope0_id, "a", draft, _resume(function(v) {
5726
5965
  type(v);
5727
- }, "g0", $scope0_id))} class=file-filter type=search placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "a")}</div>`);
5728
- _script($scope0_id, "g3");
5966
+ }, "j0", $scope0_id))} class=file-filter type=search placeholder="Filter files… (globs, !excludes)" aria-label="Filter files">${_el_resume($scope0_id, "a")}</div>`);
5967
+ _script($scope0_id, "j3");
5729
5968
  writeScope($scope0_id, {
5730
5969
  d: _serialize_if($scope0_reason, 1) && input.value,
5731
5970
  e: _serialize_if($scope0_reason, 0) && input.valueChange,
@@ -5743,12 +5982,14 @@ var file_filter_default = _template("g", (input) => {
5743
5982
  //#region src/tags/diff-find.marko
5744
5983
  var searchDiffFiles;
5745
5984
  var setSearchPaint;
5746
- var diff_find_default = _template("e", (input) => {
5747
- _scope_reason();
5985
+ var diff_find_default = _template("f", (input) => {
5986
+ const $scope0_reason = _scope_reason();
5748
5987
  const $scope0_id = _scope_id();
5749
- let query = "";
5988
+ input.open;
5989
+ let query = input.query;
5990
+ input.state;
5750
5991
  let hi = 0;
5751
- const hits = searchDiffFiles(input.files, query);
5992
+ const hits = searchDiffFiles(input.files, query || "");
5752
5993
  const at = hits.length ? Math.min(hi, hits.length - 1) : -1;
5753
5994
  const box = {
5754
5995
  timer: 0,
@@ -5756,26 +5997,16 @@ var diff_find_default = _template("e", (input) => {
5756
5997
  };
5757
5998
  const emit = _resume((q, i) => {
5758
5999
  const list = searchDiffFiles(input.files, q);
5759
- const keys = [...new Set(list.map((h) => h.key))];
6000
+ [...new Set(list.map((h) => h.key))];
5760
6001
  if (!list.length) {
5761
6002
  hi = 0;
5762
6003
  setSearchPaint(q, null);
5763
- input.onState({
5764
- query: q,
5765
- hit: null,
5766
- keys
5767
- });
5768
6004
  return;
5769
6005
  }
5770
6006
  hi = (i % list.length + list.length) % list.length;
5771
6007
  const hit = list[hi];
5772
6008
  setSearchPaint(q, hit);
5773
- input.onState({
5774
- query: q,
5775
- hit,
5776
- keys
5777
- });
5778
- }, "e1", $scope0_id);
6009
+ }, "f1", $scope0_id);
5779
6010
  const type = _resume((v) => {
5780
6011
  query = v;
5781
6012
  hi = 0;
@@ -5785,42 +6016,47 @@ var diff_find_default = _template("e", (input) => {
5785
6016
  box.timer = 0;
5786
6017
  emit(v, 0);
5787
6018
  }, 80);
5788
- }, "e2", $scope0_id);
6019
+ }, "f2", $scope0_id);
5789
6020
  const next = _resume((dir) => {
5790
6021
  if (box.timer) {
5791
6022
  clearTimeout(box.timer);
5792
6023
  box.timer = 0;
5793
6024
  }
5794
- emit(query, (at < 0 ? 0 : at) + dir);
5795
- }, "e3", $scope0_id);
5796
- _html(`<div class=find-bar><input${_attr_input_value($scope0_id, "a", query, _resume(function(v) {
6025
+ emit(query || "", (at < 0 ? 0 : at) + dir);
6026
+ }, "f3", $scope0_id);
6027
+ _html(`<div class=find-bar><input${_attr_input_value($scope0_id, "a", query || "", _resume(function(v) {
5797
6028
  type(v);
5798
- }, "e0", $scope0_id))} class=find-input type=search placeholder="Find in diffs" aria-label="Find in diffs">${_el_resume($scope0_id, "a")}<span class=count>${query.trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "b")}</span><button class=icon-btn title="Previous match"${_attr("disabled", !hits.length)}>↑</button>${_el_resume($scope0_id, "c")}<button class=icon-btn title="Next match"${_attr("disabled", !hits.length)}>↓</button>${_el_resume($scope0_id, "d")}<button class=icon-btn title="Close find">×</button>${_el_resume($scope0_id, "e")}</div>`);
5799
- _script($scope0_id, "e4");
5800
- _script($scope0_id, "e5");
6029
+ }, "f0", $scope0_id))} class=find-input type=search placeholder="Find in diffs" aria-label="Find in diffs">${_el_resume($scope0_id, "a")}<span class=count>${(query || "").trim() ? hits.length ? `${_escape(`${at + 1}`)}/${_escape(`${hits.length}`)}` : "0/0" : ""}${_el_resume($scope0_id, "b")}</span><button class=icon-btn title="Previous match"${_attr("disabled", !hits.length)}>↑</button>${_el_resume($scope0_id, "c")}<button class=icon-btn title="Next match"${_attr("disabled", !hits.length)}>↓</button>${_el_resume($scope0_id, "d")}<button class=icon-btn title="Close find">×</button>${_el_resume($scope0_id, "e")}</div>`);
6030
+ _script($scope0_id, "f4");
6031
+ _script($scope0_id, "f5");
5801
6032
  writeScope($scope0_id, {
5802
- h: input.files,
5803
- i: input.onState,
5804
- j: input.onClose,
5805
- k: input.tick,
5806
- l: query,
5807
- n: hi,
5808
- q: hits?.length,
5809
- s: at,
5810
- v: box.timer,
5811
- w: box.tick,
5812
- x: emit,
5813
- a0: type,
5814
- a2: next
6033
+ h: _serialize_if($scope0_reason, 1) && input.open,
6034
+ i: _serialize_if($scope0_reason, 0) && input.openChange,
6035
+ k: _serialize_if($scope0_reason, 3) && input.query,
6036
+ l: _serialize_if($scope0_reason, 2) && input.queryChange,
6037
+ n: _serialize_if($scope0_reason, 5) && input.state,
6038
+ o: _serialize_if($scope0_reason, 4) && input.stateChange,
6039
+ q: input.files,
6040
+ r: input.tick,
6041
+ s: query,
6042
+ v: hi,
6043
+ y: hits?.length,
6044
+ a0: at,
6045
+ a3: box.timer,
6046
+ a4: box.tick,
6047
+ a5: emit,
6048
+ a8: type,
6049
+ aa: next,
6050
+ t: input.queryChange || void 0
5815
6051
  });
5816
6052
  _resume_branch($scope0_id);
5817
6053
  });
5818
- _template("d", (input) => {
6054
+ _template("e", (input) => {
5819
6055
  _scope_reason();
5820
6056
  const $scope0_id = _scope_id();
5821
- _el($scope0_id, "d0");
6057
+ _el($scope0_id, "e0");
5822
6058
  _html(`<div class=diff-file></div>${_el_resume($scope0_id, "a")}`);
5823
- _script($scope0_id, "d1");
6059
+ _script($scope0_id, "e1");
5824
6060
  writeScope($scope0_id, {
5825
6061
  d: input.file,
5826
6062
  e: input.comments,
@@ -5834,24 +6070,79 @@ _template("d", (input) => {
5834
6070
  _resume_branch($scope0_id);
5835
6071
  });
5836
6072
  //#endregion
6073
+ //#region src/tags/diff-file-sheet.marko
6074
+ var diff_file_sheet_default = _template("d", (input) => {
6075
+ const $scope0_reason = _scope_reason(), $sg__input_total__OR__input_files_length = _serialize_guard($scope0_reason, 2), $sg__input_files = _serialize_guard($scope0_reason, 9), $sg__input_commentKeys__OR__input_files = _serialize_guard($scope0_reason, 1), $sg__input_viewed__OR__input_commentKeys__OR__input_files = _serialize_guard($scope0_reason, 3), $sg__input_viewed__OR__input_files = _serialize_guard($scope0_reason, 0), $si__input_viewed = _serialize_if($scope0_reason, 6), $si__input_commentKeys = _serialize_if($scope0_reason, 7);
6076
+ const $scope0_id = _scope_id();
6077
+ const $viewed__closures = /* @__PURE__ */ new Set();
6078
+ const $commentKeys__closures = /* @__PURE__ */ new Set();
6079
+ let open = input.open;
6080
+ const viewed = input.viewed || /* @__PURE__ */ new Set();
6081
+ const commentKeys = input.commentKeys || /* @__PURE__ */ new Set();
6082
+ const total = input.total ?? input.files.length;
6083
+ _if(() => {
6084
+ if (open) {
6085
+ const $scope1_id = _scope_id();
6086
+ _html(`<div class=sheet-backdrop></div>${_el_resume($scope1_id, "a")}<div class=file-sheet role=dialog aria-label="Jump to file"><div class=sheet-head><strong>Files</strong><span class=dim>${_escape(viewed.size)}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 6))}/${_sep($sg__input_total__OR__input_files_length)}${_escape(total)}${_el_resume($scope1_id, "c", $sg__input_total__OR__input_files_length)} viewed</span><button type=button class=icon-btn title=Close aria-label=Close>×</button>${_el_resume($scope1_id, "d")}</div><div class=sheet-list>`);
6087
+ _for_of(input.files, (file) => {
6088
+ const $scope2_id = _scope_id();
6089
+ _html(`<button type=button class=${viewed.has(file.key) ? "\"sheet-file mono seen\"" : "\"sheet-file mono\""}><span${_attr_class(["status", file.status])}>${_escape(file.status)}${_el_resume($scope2_id, "c", $sg__input_files)}</span>${_el_resume($scope2_id, "b", $sg__input_files)}<span class=sheet-path${_attr("title", file.key)}><bdi>${_escape(file.key)}${_el_resume($scope2_id, "e", $sg__input_files)}</bdi></span>${_el_resume($scope2_id, "d", $sg__input_files)}`);
6090
+ _if(() => {
6091
+ if (commentKeys.has(file.key)) {
6092
+ const $scope3_id = _scope_id();
6093
+ _html("<span>💬</span>");
6094
+ _serialize_if($scope0_reason, 1) && writeScope($scope3_id, {});
6095
+ return 0;
6096
+ }
6097
+ }, $scope2_id, "f", $sg__input_commentKeys__OR__input_files, $sg__input_commentKeys__OR__input_files, $sg__input_viewed__OR__input_commentKeys__OR__input_files, 0, 1);
6098
+ _if(() => {
6099
+ if (viewed.has(file.key)) {
6100
+ const $scope4_id = _scope_id();
6101
+ _html("<span class=dim>✓</span>");
6102
+ _serialize_if($scope0_reason, 0) && writeScope($scope4_id, {});
6103
+ return 0;
6104
+ }
6105
+ }, $scope2_id, "g", $sg__input_viewed__OR__input_files, $sg__input_viewed__OR__input_files, $sg__input_viewed__OR__input_commentKeys__OR__input_files, 0, 1);
6106
+ _html(`</button>${_el_resume($scope2_id, "a")}`);
6107
+ _script($scope2_id, "d0");
6108
+ _subscribe($si__input_commentKeys && $commentKeys__closures, _subscribe($si__input_viewed && $viewed__closures, writeScope($scope2_id, {
6109
+ j: file?.key,
6110
+ _: _scope_with_id($scope1_id)
6111
+ })));
6112
+ }, "key", $scope1_id, "e", $sg__input_files, $sg__input_files, $sg__input_files, "</div>", 1);
6113
+ _html("</div>");
6114
+ _script($scope1_id, "d1");
6115
+ writeScope($scope1_id, {});
6116
+ return 0;
6117
+ }
6118
+ }, $scope0_id, "a");
6119
+ writeScope($scope0_id, {
6120
+ d: _serialize_if($scope0_reason, 5) && input.open,
6121
+ e: _serialize_if($scope0_reason, 4) && input.openChange,
6122
+ i: _serialize_if($scope0_reason, 10) && input.total,
6123
+ j: input.files,
6124
+ k: _serialize_if($scope0_reason, 8) && input.files?.length,
6125
+ m: input.onJump,
6126
+ p: viewed,
6127
+ q: viewed.size,
6128
+ r: commentKeys,
6129
+ s: total,
6130
+ o: input.openChange || void 0,
6131
+ u: $si__input_viewed && $viewed__closures,
6132
+ w: $si__input_commentKeys && $commentKeys__closures
6133
+ });
6134
+ _resume_branch($scope0_id);
6135
+ });
6136
+ //#endregion
5837
6137
  //#region src/tags/diff-view.marko
5838
6138
  var api$3;
5839
6139
  var copyText;
5840
6140
  var prHeadSigFromDiff;
5841
6141
  var getTermDims;
5842
6142
  var makeFileFilter;
5843
- var diff_view_default = _template("f", (input) => {
5844
- const $scope0_reason = _scope_reason(), $sg__input_onExit = _serialize_guard($scope0_reason, 1), $sg__input_sessions = _serialize_guard($scope0_reason, 0), $si__input_sessions = _serialize_if($scope0_reason, 0), $si__input_sessions_0_title = _serialize_if($scope0_reason, 2), $si__input_sessions_0_agent = _serialize_if($scope0_reason, 3);
6143
+ var diff_view_default = _template("i", (input) => {
6144
+ const $scope0_reason = _scope_reason(), $sg__input_onExit = _serialize_guard($scope0_reason, 0);
5845
6145
  const $scope0_id = _scope_id();
5846
- const $collapsedDirs__closures = /* @__PURE__ */ new Set();
5847
- const $viewed__closures = /* @__PURE__ */ new Set();
5848
- const $commentsByFile__closures = /* @__PURE__ */ new Set();
5849
- const $shownByRepo__closures = /* @__PURE__ */ new Set();
5850
- const $input_sessions_0_title__closures = /* @__PURE__ */ new Set();
5851
- const $input_sessions_0_agent__closures = /* @__PURE__ */ new Set();
5852
- const $sending__closures = /* @__PURE__ */ new Set();
5853
- const $input_sessions__closures = /* @__PURE__ */ new Set();
5854
- const $sendTarget__closures = /* @__PURE__ */ new Set();
5855
6146
  const $error__closures = /* @__PURE__ */ new Set();
5856
6147
  const $uncommitted__closures = /* @__PURE__ */ new Set();
5857
6148
  const $loading__closures = /* @__PURE__ */ new Set();
@@ -5860,7 +6151,9 @@ var diff_view_default = _template("f", (input) => {
5860
6151
  const $draft__closures = /* @__PURE__ */ new Set();
5861
6152
  const $saveComment2__closures = /* @__PURE__ */ new Set();
5862
6153
  const $removeComment2__closures = /* @__PURE__ */ new Set();
6154
+ const $viewed__closures = /* @__PURE__ */ new Set();
5863
6155
  const $shownKeySet__closures = /* @__PURE__ */ new Set();
6156
+ const $commentsByFile__closures = /* @__PURE__ */ new Set();
5864
6157
  const $toggleViewed2__closures = /* @__PURE__ */ new Set();
5865
6158
  const $findState_hit_repo__closures = /* @__PURE__ */ new Set();
5866
6159
  const $repoList_length__closures = /* @__PURE__ */ new Set();
@@ -5870,12 +6163,10 @@ var diff_view_default = _template("f", (input) => {
5870
6163
  let draft = null;
5871
6164
  let error = null;
5872
6165
  let loading = false;
5873
- let copied = false;
5874
- let sending = false;
5875
- let sendTarget = null;
5876
6166
  let fileFilter = "";
5877
6167
  let uncommitted = diffUncommitted();
5878
6168
  let treeOpen = diffTreeOpen();
6169
+ let fileSheet = false;
5879
6170
  let findOpen = false;
5880
6171
  let findTick = 0;
5881
6172
  let findState = {
@@ -5883,14 +6174,8 @@ var diff_view_default = _template("f", (input) => {
5883
6174
  hit: null,
5884
6175
  keys: []
5885
6176
  };
5886
- let collapsedDirs = /* @__PURE__ */ new Set();
5887
6177
  let collapsedRepos = /* @__PURE__ */ new Set();
5888
6178
  let dismissedDrift = /* @__PURE__ */ new Set();
5889
- const toggleRepo = _resume((worktree) => {
5890
- const next = new Set(collapsedRepos);
5891
- if (!next.delete(worktree)) next.add(worktree);
5892
- collapsedRepos = next;
5893
- }, "f2", $scope0_id);
5894
6179
  const nearBox = {
5895
6180
  io: null,
5896
6181
  cbs: null
@@ -5905,7 +6190,7 @@ var diff_view_default = _template("f", (input) => {
5905
6190
  }, { rootMargin: "600px 0px" });
5906
6191
  nearBox.cbs.set(el, cb);
5907
6192
  nearBox.io.observe(el);
5908
- }, "f3", $scope0_id);
6193
+ }, "i1", $scope0_id);
5909
6194
  const focusPrSection = _resume((pr) => {
5910
6195
  if (!pr) return;
5911
6196
  const list = repos || [];
@@ -5925,7 +6210,7 @@ var diff_view_default = _template("f", (input) => {
5925
6210
  root.scrollTo({ top: Math.max(0, top - 8) });
5926
6211
  };
5927
6212
  requestAnimationFrame(tryScroll);
5928
- }, "f4", $scope0_id);
6213
+ }, "i2", $scope0_id);
5929
6214
  const headBox = {
5930
6215
  sig: "",
5931
6216
  timer: 0
@@ -5948,25 +6233,25 @@ var diff_view_default = _template("f", (input) => {
5948
6233
  error = String(err.message || err);
5949
6234
  }
5950
6235
  loading = false;
5951
- }, "f5", $scope0_id);
6236
+ }, "i3", $scope0_id);
5952
6237
  const loadReview = _resume(async () => {
5953
6238
  try {
5954
6239
  const reviewData = await api$3(`/api/workspaces/${input.workspaceId}/review`);
5955
6240
  comments = reviewData.comments || [];
5956
6241
  viewed = new Set(reviewData.viewed || []);
5957
6242
  } catch {}
5958
- }, "f6", $scope0_id);
6243
+ }, "i4", $scope0_id);
5959
6244
  const reload = _resume(() => {
5960
6245
  dismissedDrift = /* @__PURE__ */ new Set();
5961
6246
  return load(uncommitted, true);
5962
- }, "f7", $scope0_id);
6247
+ }, "i5", $scope0_id);
5963
6248
  const reloadSoon = _resume(() => {
5964
6249
  if (headBox.timer) clearTimeout(headBox.timer);
5965
6250
  headBox.timer = setTimeout(() => {
5966
6251
  headBox.timer = 0;
5967
6252
  reload();
5968
6253
  }, 250);
5969
- }, "f8", $scope0_id);
6254
+ }, "i6", $scope0_id);
5970
6255
  const repoList = repos || [];
5971
6256
  const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
5972
6257
  ...f,
@@ -5988,12 +6273,17 @@ var diff_view_default = _template("f", (input) => {
5988
6273
  }
5989
6274
  return map;
5990
6275
  })();
5991
- const sendPick = (input.sessions || []).some((s) => s.id === sendTarget) ? sendTarget : input.sessions?.[0]?.id ?? null;
5992
- const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "f9");
6276
+ const commentKeys = new Set(commentsByFile.keys());
6277
+ const treeSections = repoList.filter((r) => (shownByRepo.get(r.id) || []).length).map((r) => ({
6278
+ id: r.id,
6279
+ label: r.pr ? `${r.worktree} #${r.pr.number}` : r.worktree,
6280
+ files: shownByRepo.get(r.id) || []
6281
+ }));
6282
+ const localDiffers = _resume((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName), "i7");
5993
6283
  const driftRepos = repoList.filter((r) => r.githubDrift && !dismissedDrift.has(r.id));
5994
6284
  const dismissDrift = _resume(() => {
5995
6285
  dismissedDrift = /* @__PURE__ */ new Set([...dismissedDrift, ...driftRepos.map((r) => r.id)]);
5996
- }, "f10", $scope0_id);
6286
+ }, "i8", $scope0_id);
5997
6287
  const toggleViewed = _resume((key) => {
5998
6288
  const next = new Set(viewed);
5999
6289
  const isViewed = !next.has(key);
@@ -6011,7 +6301,7 @@ var diff_view_default = _template("f", (input) => {
6011
6301
  }).catch(() => {
6012
6302
  error = "Saving viewed state failed — it may reset on reload.";
6013
6303
  });
6014
- }, "f11", $scope0_id);
6304
+ }, "i9", $scope0_id);
6015
6305
  const saveComment = _resume(async (file, text) => {
6016
6306
  const range = draft;
6017
6307
  draft = null;
@@ -6033,11 +6323,11 @@ var diff_view_default = _template("f", (input) => {
6033
6323
  } catch (err) {
6034
6324
  error = String(err.message || err);
6035
6325
  }
6036
- }, "f12", $scope0_id);
6326
+ }, "i10", $scope0_id);
6037
6327
  const removeComment = _resume(async (id) => {
6038
6328
  comments = comments.filter((c) => c.id !== id);
6039
6329
  await fetch(`/api/review-comments/${id}`, { method: "DELETE" });
6040
- }, "f13", $scope0_id);
6330
+ }, "i11", $scope0_id);
6041
6331
  const clearComments = _resume(async () => {
6042
6332
  comments = [];
6043
6333
  draft = null;
@@ -6046,21 +6336,16 @@ var diff_view_default = _template("f", (input) => {
6046
6336
  headers: { "content-type": "application/json" },
6047
6337
  body: JSON.stringify({ action: "clear" })
6048
6338
  });
6049
- }, "f14", $scope0_id);
6339
+ }, "i12", $scope0_id);
6050
6340
  const copyMarkdown = _resume(async () => {
6051
6341
  if (!await copyText(commentMarkdown(comments, repos))) {
6052
6342
  error = "Copy failed — clipboard needs HTTPS on this browser.";
6053
- return;
6343
+ return false;
6054
6344
  }
6055
- copied = true;
6056
- setTimeout(() => {
6057
- copied = false;
6058
- }, 1500);
6059
6345
  await clearComments();
6060
- }, "f15", $scope0_id);
6346
+ return true;
6347
+ }, "i13", $scope0_id);
6061
6348
  const sendTo = _resume(async (sessionId) => {
6062
- if (!sessionId) return;
6063
- sending = true;
6064
6349
  try {
6065
6350
  await api$3(`/api/sessions/${sessionId}/send`, {
6066
6351
  method: "POST",
@@ -6070,100 +6355,41 @@ var diff_view_default = _template("f", (input) => {
6070
6355
  ...getTermDims() || {}
6071
6356
  })
6072
6357
  });
6073
- sending = false;
6074
6358
  await clearComments();
6075
6359
  input.onSent?.(sessionId);
6076
6360
  } catch (err) {
6077
6361
  error = String(err.message || err);
6078
- sending = false;
6079
6362
  }
6080
- }, "f16", $scope0_id);
6363
+ }, "i14", $scope0_id);
6081
6364
  const jumpTo = _resume((key) => {
6082
6365
  const el = ((scrollEl) => scrollEl())(_el_read_error).querySelector(`details[data-key="${CSS.escape(key)}"]`);
6083
6366
  if (el) {
6084
6367
  el.open = true;
6085
6368
  el.scrollIntoView({ block: "start" });
6086
6369
  }
6087
- }, "f17", $scope0_id);
6370
+ }, "i15", $scope0_id);
6088
6371
  const openFind = _resume(() => {
6089
6372
  findOpen = true;
6090
6373
  findTick++;
6091
- }, "f18", $scope0_id);
6374
+ }, "i16", $scope0_id);
6092
6375
  const onFindState = _resume((next) => {
6093
6376
  findState = next;
6094
6377
  if (next.hit) setTimeout(() => jumpTo(next.hit.key), 0);
6095
- }, "f19", $scope0_id);
6096
- _html(`<div class=diff-view><aside class=${!treeOpen ? "\"tree closed\"" : "tree"}>`);
6097
- _for_of(repoList.filter((r) => shownByRepo.get(r.id)?.length), (repo) => {
6098
- const $scope5_id = _scope_id();
6099
- _html(`<div class=tree-repo><button class=${collapsedRepos.has(repo.id) ? "\"tree-repo-name mono closed\"" : "\"tree-repo-name mono\""}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope5_id, "b")}</span><!>${repo.pr ? `${_escape(`${repo.worktree}`)} #${_escape(`${repo.pr.number}`)}` : _escape(repo.worktree)}${_el_resume($scope5_id, "c")}</button>${_el_resume($scope5_id, "a")}`);
6100
- _if(() => {
6101
- if (!collapsedRepos.has(repo.id)) {
6102
- const $scope6_id = _scope_id();
6103
- const $if_content4__dirKey__closures = /* @__PURE__ */ new Set();
6104
- const repoRows = treeRows(shownByRepo.get(repo.id) || []);
6105
- const dirKey = _resume((path) => `${repo.id}/${path}`, "f20", $scope6_id);
6106
- const rowDir = _resume((row) => row.kind === "dir" ? row.path : row.file.path.includes("/") ? row.file.path.slice(0, row.file.path.lastIndexOf("/")) : "", "f21");
6107
- const hiddenByCollapse = _resume((row) => {
6108
- const dir = rowDir(row);
6109
- for (const collapsed of collapsedDirs) {
6110
- const [wt, path] = [collapsed.slice(0, collapsed.indexOf("/")), collapsed.slice(collapsed.indexOf("/") + 1)];
6111
- if (wt !== repo.id) continue;
6112
- if (row.kind === "dir" && row.path === path) continue;
6113
- if (dir === path || dir.startsWith(`${path}/`)) return true;
6114
- }
6115
- return false;
6116
- }, "f22", $scope6_id);
6117
- _for_of(repoRows, (row) => {
6118
- const $scope7_id = _scope_id();
6119
- _if(() => {
6120
- if (!hiddenByCollapse(row) && row.kind === "dir") {
6121
- const $scope29_id = _scope_id();
6122
- _html(`<button class=${collapsedDirs.has(dirKey(row.path)) ? "\"tree-dir dim mono closed\"" : "\"tree-dir dim mono\""}${_attr("title", row.path)}${_attr_style(`padding-left:${.35 + row.depth * .75}rem`)}><span class=tree-chev>${collapsedDirs.has(dirKey(row.path)) ? "▸" : "▾"}${_el_resume($scope29_id, "b")}</span>${_escape(row.label)}${_el_resume($scope29_id, "c")}/</button>${_el_resume($scope29_id, "a")}`);
6123
- _script($scope29_id, "f33");
6124
- _subscribe($if_content4__dirKey__closures, _subscribe($collapsedDirs__closures, writeScope($scope29_id, { Cd5: 1 })));
6125
- return 0;
6126
- } else if (!hiddenByCollapse(row) && row.kind !== "dir") {
6127
- const $scope8_id = _scope_id();
6128
- _html(`<button class=${viewed.has(row.file.key) ? "\"tree-file mono seen\"" : "\"tree-file mono\""}${_attr("title", row.file.path)}${_attr_style(`padding-left:${.5 + row.depth * .75}rem`)}><span${_attr_class(["status", row.file.status])}>${_escape(row.file.status)}${_el_resume($scope8_id, "c")}</span>${_el_resume($scope8_id, "b")}<span class=tree-file-name>${_escape(row.name)}${_el_resume($scope8_id, "d")}</span>`);
6129
- _if(() => {
6130
- if (commentsByFile.has(row.file.key)) {
6131
- const $scope35_id = _scope_id();
6132
- _html("<span class=tree-note>💬</span>");
6133
- writeScope($scope35_id, {});
6134
- return 0;
6135
- }
6136
- }, $scope8_id, "e", 1, 1, 1, 0, 1);
6137
- _html(`</button>${_el_resume($scope8_id, "a")}`);
6138
- _script($scope8_id, "f34");
6139
- _subscribe($commentsByFile__closures, _subscribe($viewed__closures, writeScope($scope8_id, {})));
6140
- return 1;
6141
- }
6142
- }, $scope7_id, "a", 1, 1, 1, 0, 1);
6143
- writeScope($scope7_id, {
6144
- c: row,
6145
- e: row?.path,
6146
- f: row?.depth,
6147
- g: row?.label,
6148
- i: row?.file?.key,
6149
- j: row?.file?.path,
6150
- k: row?.file?.status,
6151
- l: row?.name
6152
- });
6153
- }, (r) => r.kind === "dir" ? `d:${r.path}` : r.file.key, $scope6_id, "a");
6154
- _subscribe($shownByRepo__closures, _subscribe($collapsedDirs__closures, writeScope($scope6_id, {
6155
- c: dirKey,
6156
- d: rowDir,
6157
- f: hiddenByCollapse,
6158
- h: $if_content4__dirKey__closures
6159
- })));
6160
- return 0;
6161
- }
6162
- }, $scope5_id, "d");
6163
- _html("</div>");
6164
- _script($scope5_id, "f35");
6165
- writeScope($scope5_id, { g: repo?.id });
6166
- }, "id", $scope0_id, "a", 1, 1, 1, "</aside>", 1);
6378
+ }, "i17", $scope0_id);
6379
+ _html("<div class=diff-view>");
6380
+ _set_serialize_reason(238);
6381
+ const $childScope = _peek_scope_id();
6382
+ diff_tree_default({
6383
+ open: treeOpen,
6384
+ sections: treeSections,
6385
+ collapsedRepos,
6386
+ collapsedReposChange: _resume((_new_collapsedRepos) => {
6387
+ collapsedRepos = _new_collapsedRepos;
6388
+ }, "i18", $scope0_id),
6389
+ viewed,
6390
+ commentKeys,
6391
+ onJump: jumpTo
6392
+ });
6167
6393
  _html("<div class=diff-col><div class=diff-head>");
6168
6394
  _if(() => {
6169
6395
  if (input.onExit) {
@@ -6171,50 +6397,26 @@ var diff_view_default = _template("f", (input) => {
6171
6397
  _html("<button class=icon-btn title=\"Back to terminal\">");
6172
6398
  icon_back_default({ size: 14 });
6173
6399
  _html(`</button>${_el_resume($scope1_id, "a")}`);
6174
- _script($scope1_id, "f36");
6400
+ _script($scope1_id, "i30");
6175
6401
  writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
6176
6402
  return 0;
6177
6403
  }
6178
6404
  }, $scope0_id, "b", $sg__input_onExit, $sg__input_onExit, 1, 0, 1);
6179
- _html(`<span class="dim diff-stats">${_escape(allFiles.length)}${_el_resume($scope0_id, "c")} file<!>${allFiles.length === 1 ? "" : "s"}${_el_resume($scope0_id, "d")} changed <!>${viewed.size ? ` · ${_escape(`${_to_text(viewed.size)}`)} viewed` : ""}${_el_resume($scope0_id, "e")}<!>${comments.length ? `· ${_escape(`${_to_text(comments.length)}`)} comment${_escape(`${_to_text(comments.length === 1 ? "" : "s")}`)}` : ""}${_el_resume($scope0_id, "f")}</span><span class=head-actions>`);
6405
+ _html(`<span class="dim diff-stats">${_escape(allFiles.length)}${_el_resume($scope0_id, "c")} file<!>${allFiles.length === 1 ? "" : "s"}${_el_resume($scope0_id, "d")} changed <!>${viewed.size ? ` · ${_escape(`${_to_text(viewed.size)}`)} viewed` : ""}${_el_resume($scope0_id, "e")}<!>${comments.length ? `· ${_escape(`${_to_text(comments.length)}`)} comment${_escape(`${_to_text(comments.length === 1 ? "" : "s")}`)}` : ""}${_el_resume($scope0_id, "f")}</span>`);
6180
6406
  _if(() => {
6181
6407
  if (comments.length) {
6182
6408
  const $scope2_id = _scope_id();
6183
- _html(`<button class=btn title="Copy comments as markdown">${copied ? "Copied ✓" : "Copy"}${_el_resume($scope2_id, "b")}</button>${_el_resume($scope2_id, "a")}`);
6184
- _if(() => {
6185
- if ((input.sessions || []).length === 1) {
6186
- const $scope3_id = _scope_id();
6187
- _html(`<button class="btn primary"${_attr("disabled", sending)}>${sending ? "Sending…" : `Send to ${_escape(`${input.sessions[0].title || input.sessions[0].agent}`)}`}${_el_resume($scope3_id, "b")}</button>${_el_resume($scope3_id, "a")}`);
6188
- _script($scope3_id, "f37");
6189
- _subscribe($sending__closures, _subscribe($si__input_sessions_0_agent && $input_sessions_0_agent__closures, _subscribe($si__input_sessions_0_title && $input_sessions_0_title__closures, writeScope($scope3_id, { _: _scope_with_id($scope2_id) }))));
6190
- return 0;
6191
- } else if ((input.sessions || []).length) {
6192
- const $scope4_id = _scope_id();
6193
- _html(`<span class="split-btn primary"><button${_attr("disabled", sending)}>${sending ? "Sending…" : "Send to"}${_el_resume($scope4_id, "b")}</button>${_el_resume($scope4_id, "a")}`);
6194
- _attr_select_value($scope4_id, "c", sendTarget, _resume((_new_sendTarget) => {
6195
- sendTarget = _new_sendTarget;
6196
- }, "f0", $scope4_id), () => {
6197
- _html(`<select aria-label="Send comments to session"${_attr("disabled", sending)}>`);
6198
- _for_of(input.sessions, (s) => {
6199
- const $scope36_id = _scope_id();
6200
- _html(`<option${_attr_option_value(s.id)}>${_escape(s.title || s.agent)}${_el_resume($scope36_id, "b", $sg__input_sessions)}</option>${_el_resume($scope36_id, "a", $sg__input_sessions)}`);
6201
- $si__input_sessions && writeScope($scope36_id, {});
6202
- }, "id", $scope4_id, "c", $sg__input_sessions, 1, $sg__input_sessions, "</select>", 1);
6203
- });
6204
- _html("</span>");
6205
- _script($scope4_id, "f38");
6206
- _subscribe($sendTarget__closures, _subscribe($sending__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, {
6207
- _: _scope_with_id($scope2_id),
6208
- Ccy: 1
6209
- }))));
6210
- return 1;
6211
- }
6212
- }, $scope2_id, "c", $sg__input_sessions, $sg__input_sessions, $sg__input_sessions, 0, 1);
6213
- _script($scope2_id, "f39");
6214
- writeScope($scope2_id, {});
6409
+ _set_serialize_reason(_serialize_guard($scope0_reason, 1));
6410
+ const $childScope2 = _peek_scope_id();
6411
+ diff_send_default({
6412
+ sessions: input.sessions,
6413
+ onCopy: copyMarkdown,
6414
+ onSend: sendTo
6415
+ });
6416
+ writeScope($scope2_id, { a: _existing_scope($childScope2) });
6215
6417
  return 0;
6216
6418
  }
6217
- }, $scope0_id, "g", 1, 1, 1, "</span>");
6419
+ }, $scope0_id, "g", 1, 1, 1, 0, 1);
6218
6420
  _html(`</div><div class=diff-tools><button class=${treeOpen ? "\"icon-btn tree-toggle on\"" : "\"icon-btn tree-toggle\""} title=${treeOpen ? "\"Hide file tree\"" : "\"Show file tree\""}>`);
6219
6421
  icon_sidebar_default({ size: 14 });
6220
6422
  _html(`</button>${_el_resume($scope0_id, "h")}<button class=${loading ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh diff"${_attr("disabled", loading)}>`);
@@ -6223,263 +6425,260 @@ var diff_view_default = _template("f", (input) => {
6223
6425
  icon_search_default({ size: 14 });
6224
6426
  _html(`<span class=find-label>Find</span></button>${_el_resume($scope0_id, "n")}<label class=two-dot title="Include uncommitted and untracked files in the review. Off by default — the review is commit-to-commit."><input${_attr_input_checked($scope0_id, "p", uncommitted)} type=checkbox>${_el_resume($scope0_id, "p")} include uncommitted</label>`);
6225
6427
  _set_serialize_reason(2);
6226
- const $childScope = _peek_scope_id();
6428
+ const $childScope3 = _peek_scope_id();
6227
6429
  file_filter_default({
6228
6430
  value: fileFilter,
6229
6431
  valueChange: _resume((_new_fileFilter) => {
6230
6432
  fileFilter = _new_fileFilter;
6231
- }, "f23", $scope0_id)
6433
+ }, "i19", $scope0_id)
6232
6434
  });
6233
6435
  _html("</div>");
6234
6436
  _if(() => {
6235
6437
  if (findOpen) {
6236
- const $scope28_id = _scope_id();
6237
- const $childScope2 = _peek_scope_id();
6438
+ const $scope20_id = _scope_id();
6439
+ _set_serialize_reason(2);
6440
+ const $childScope4 = _peek_scope_id();
6238
6441
  diff_find_default({
6239
6442
  files: fileFiltered,
6240
6443
  tick: findTick,
6241
- onState: _resume(function(s) {
6444
+ open: findOpen,
6445
+ openChange: _resume((_new_findOpen) => {
6446
+ findOpen = _new_findOpen;
6447
+ }, "i20", $scope20_id),
6448
+ stateChange: _resume(function(s) {
6242
6449
  onFindState(s);
6243
- }, "f24", $scope28_id),
6244
- onClose: _resume(function() {
6245
- findOpen = false;
6246
- findState = {
6247
- query: "",
6248
- hit: null,
6249
- keys: []
6250
- };
6251
- }, "f25", $scope28_id)
6450
+ }, "i21", $scope20_id)
6252
6451
  });
6253
- writeScope($scope28_id, { a: _existing_scope($childScope2) });
6452
+ writeScope($scope20_id, { a: _existing_scope($childScope4) });
6254
6453
  return 0;
6255
6454
  }
6256
6455
  }, $scope0_id, "r", 1, 1, 1, 0, 1);
6257
6456
  _html("<div class=diff-main>");
6258
6457
  _if(() => {
6259
6458
  if (error) {
6260
- const $scope17_id = _scope_id();
6459
+ const $scope9_id = _scope_id();
6261
6460
  toast_default({
6262
6461
  onDismiss: _resume(function() {
6263
6462
  error = null;
6264
- }, "f26", $scope17_id),
6265
- content: _content_resume("f40", () => {
6463
+ }, "i22", $scope9_id),
6464
+ content: _content_resume("i31", () => {
6266
6465
  _scope_reason();
6267
- const $scope18_id = _scope_id();
6268
- _html(`${_escape(error)}${_el_resume($scope18_id, "a")}`);
6269
- _subscribe($error__closures, writeScope($scope18_id, { _: _scope_with_id($scope17_id) }));
6270
- _resume_branch($scope18_id);
6271
- }, $scope17_id)
6466
+ const $scope10_id = _scope_id();
6467
+ _html(`${_escape(error)}${_el_resume($scope10_id, "a")}`);
6468
+ _subscribe($error__closures, writeScope($scope10_id, { _: _scope_with_id($scope9_id) }));
6469
+ _resume_branch($scope10_id);
6470
+ }, $scope9_id)
6272
6471
  });
6273
- writeScope($scope17_id, {});
6472
+ writeScope($scope9_id, {});
6274
6473
  return 0;
6275
6474
  }
6276
6475
  }, $scope0_id, "t", 1, 1, 1, 0, 1);
6277
6476
  _for_of(repoList.filter((r) => r.baseMissing), (repo) => {
6278
- const $scope22_id = _scope_id();
6279
- const $for_content6__repo_base__closures = /* @__PURE__ */ new Set();
6280
- _set_serialize_reason(40);
6281
- const $childScope3 = _peek_scope_id();
6477
+ const $scope14_id = _scope_id();
6478
+ const $for_content3__repo_base__closures = /* @__PURE__ */ new Set();
6479
+ _set_serialize_reason(48);
6480
+ const $childScope5 = _peek_scope_id();
6282
6481
  toast_default({
6283
6482
  kind: "warn",
6284
6483
  placement: "inline",
6285
6484
  title: `${repo.worktree}: base not found`,
6286
- content: _content_resume("f41", () => {
6485
+ content: _content_resume("i32", () => {
6287
6486
  _scope_reason();
6288
- const $scope23_id = _scope_id();
6289
- _html(`${_escape(repo.base)}${_el_resume($scope23_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope23_id, "b")}.`);
6290
- _subscribe($for_content6__repo_base__closures, _subscribe($uncommitted__closures, writeScope($scope23_id, { _: _scope_with_id($scope22_id) })));
6291
- _resume_branch($scope23_id);
6292
- }, $scope22_id)
6487
+ const $scope15_id = _scope_id();
6488
+ _html(`${_escape(repo.base)}${_el_resume($scope15_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope15_id, "b")}.`);
6489
+ _subscribe($for_content3__repo_base__closures, _subscribe($uncommitted__closures, writeScope($scope15_id, { _: _scope_with_id($scope14_id) })));
6490
+ _resume_branch($scope15_id);
6491
+ }, $scope14_id)
6293
6492
  });
6294
- writeScope($scope22_id, {
6493
+ writeScope($scope14_id, {
6295
6494
  e: repo?.base,
6296
- f: $for_content6__repo_base__closures,
6297
- a: _existing_scope($childScope3)
6495
+ f: $for_content3__repo_base__closures,
6496
+ a: _existing_scope($childScope5)
6298
6497
  });
6299
6498
  }, "id", $scope0_id, "u", 1, 1, 1, 0, 1);
6300
6499
  _for_of(repoList.filter((r) => r.contained && r.files.length), (repo) => {
6301
- const $scope24_id = _scope_id();
6302
- const $for_content7__repo_base__closures = /* @__PURE__ */ new Set();
6303
- _set_serialize_reason(40);
6304
- const $childScope4 = _peek_scope_id();
6500
+ const $scope16_id = _scope_id();
6501
+ const $for_content4__repo_base__closures = /* @__PURE__ */ new Set();
6502
+ _set_serialize_reason(48);
6503
+ const $childScope6 = _peek_scope_id();
6305
6504
  toast_default({
6306
6505
  kind: "info",
6307
6506
  placement: "inline",
6308
6507
  title: repo.pr ? `${repo.worktree} #${repo.pr.number}` : repo.worktree,
6309
- content: _content_resume("f42", () => {
6508
+ content: _content_resume("i33", () => {
6310
6509
  _scope_reason();
6311
- const $scope25_id = _scope_id();
6312
- _html(`already in <!>${_escape(repo.base)}${_el_resume($scope25_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope25_id, "b")}.`);
6313
- _subscribe($for_content7__repo_base__closures, _subscribe($uncommitted__closures, writeScope($scope25_id, {
6314
- _: _scope_with_id($scope24_id),
6315
- Cd1: 1
6510
+ const $scope17_id = _scope_id();
6511
+ _html(`already in <!>${_escape(repo.base)}${_el_resume($scope17_id, "a")}<!>${uncommitted ? " — showing uncommitted changes only" : ""}${_el_resume($scope17_id, "b")}.`);
6512
+ _subscribe($for_content4__repo_base__closures, _subscribe($uncommitted__closures, writeScope($scope17_id, {
6513
+ _: _scope_with_id($scope16_id),
6514
+ Cco: 1
6316
6515
  })));
6317
- _resume_branch($scope25_id);
6318
- }, $scope24_id)
6516
+ _resume_branch($scope17_id);
6517
+ }, $scope16_id)
6319
6518
  });
6320
- writeScope($scope24_id, {
6519
+ writeScope($scope16_id, {
6321
6520
  g: repo?.base,
6322
- h: $for_content7__repo_base__closures,
6323
- a: _existing_scope($childScope4)
6521
+ h: $for_content4__repo_base__closures,
6522
+ a: _existing_scope($childScope6)
6324
6523
  });
6325
6524
  }, "id", $scope0_id, "v", 1, 1, 1, 0, 1);
6326
6525
  _if(() => {
6327
6526
  if (driftRepos.length) {
6328
- const $scope19_id = _scope_id();
6329
- _set_serialize_reason(268);
6330
- const $childScope5 = _peek_scope_id();
6527
+ const $scope11_id = _scope_id();
6528
+ _set_serialize_reason(536);
6529
+ const $childScope7 = _peek_scope_id();
6331
6530
  toast_default({
6332
6531
  kind: "info",
6333
6532
  placement: "inline",
6334
6533
  title: "GitHub is behind",
6335
6534
  onDismiss: _resume(function() {
6336
6535
  dismissDrift();
6337
- }, "f27", $scope19_id),
6338
- action: attrTag({ content: _content_resume("f44", () => {
6536
+ }, "i23", $scope11_id),
6537
+ action: attrTag({ content: _content_resume("i35", () => {
6339
6538
  _scope_reason();
6340
- const $scope20_id = _scope_id();
6341
- _html(`<button class=btn${_attr("disabled", loading)}>${loading ? "Reloading…" : "Reload"}${_el_resume($scope20_id, "b")}</button>${_el_resume($scope20_id, "a")}`);
6342
- _script($scope20_id, "f43");
6343
- _subscribe($loading__closures, writeScope($scope20_id, { _: _scope_with_id($scope19_id) }));
6344
- _resume_branch($scope20_id);
6345
- }, $scope19_id) }),
6346
- content: _content_resume("f45", () => {
6539
+ const $scope12_id = _scope_id();
6540
+ _html(`<button class=btn${_attr("disabled", loading)}>${loading ? "Reloading…" : "Reload"}${_el_resume($scope12_id, "b")}</button>${_el_resume($scope12_id, "a")}`);
6541
+ _script($scope12_id, "i34");
6542
+ _subscribe($loading__closures, writeScope($scope12_id, { _: _scope_with_id($scope11_id) }));
6543
+ _resume_branch($scope12_id);
6544
+ }, $scope11_id) }),
6545
+ content: _content_resume("i36", () => {
6347
6546
  _scope_reason();
6348
- const $scope34_id = _scope_id();
6547
+ const $scope25_id = _scope_id();
6349
6548
  _html("<span class=dim>");
6350
6549
  _for_of(driftRepos, (repo, i) => {
6351
- const $scope37_id = _scope_id();
6352
- _html(`${i > 0 ? " · " : ""}${_el_resume($scope37_id, "a")}<!>${_escape(repo.worktree)}${_el_resume($scope37_id, "b")} #<!>${_escape(repo.pr.number)}${_el_resume($scope37_id, "c")}`);
6353
- writeScope($scope37_id, {});
6354
- }, "id", $scope34_id, "a");
6550
+ const $scope26_id = _scope_id();
6551
+ _html(`${i > 0 ? " · " : ""}${_el_resume($scope26_id, "a")}<!>${_escape(repo.worktree)}${_el_resume($scope26_id, "b")} #<!>${_escape(repo.pr.number)}${_el_resume($scope26_id, "c")}`);
6552
+ writeScope($scope26_id, {});
6553
+ }, "id", $scope25_id, "a");
6355
6554
  _html(" — this view has a newer tip than the PR page.</span><span class=\"mono dim toast-meta\">");
6356
6555
  _for_of(driftRepos, (repo, i) => {
6357
- const $scope38_id = _scope_id();
6358
- _html(`<span${_attr("title", `origin/${repo.pr.headRefName} ${repo.head} · GitHub ${repo.pr.headRefOid}`)}>${i > 0 ? " · " : ""}${_el_resume($scope38_id, "b")}<!>${_escape(shortSha(repo.head))}${_el_resume($scope38_id, "c")} → <!>${_escape(shortSha(repo.pr.headRefOid))}${_el_resume($scope38_id, "d")}</span>${_el_resume($scope38_id, "a")}`);
6359
- writeScope($scope38_id, {});
6360
- }, "id", $scope34_id, "b", 1, 1, 1, "</span>", 1);
6361
- _subscribe($driftRepos__closures, writeScope($scope34_id, { _: _scope_with_id($scope19_id) }));
6362
- _resume_branch($scope34_id);
6363
- }, $scope19_id)
6556
+ const $scope27_id = _scope_id();
6557
+ _html(`<span${_attr("title", `origin/${repo.pr.headRefName} ${repo.head} · GitHub ${repo.pr.headRefOid}`)}>${i > 0 ? " · " : ""}${_el_resume($scope27_id, "b")}<!>${_escape(shortSha(repo.head))}${_el_resume($scope27_id, "c")} → <!>${_escape(shortSha(repo.pr.headRefOid))}${_el_resume($scope27_id, "d")}</span>${_el_resume($scope27_id, "a")}`);
6558
+ writeScope($scope27_id, {});
6559
+ }, "id", $scope25_id, "b", 1, 1, 1, "</span>", 1);
6560
+ _subscribe($driftRepos__closures, writeScope($scope25_id, { _: _scope_with_id($scope11_id) }));
6561
+ _resume_branch($scope25_id);
6562
+ }, $scope11_id)
6364
6563
  });
6365
- writeScope($scope19_id, { a: _existing_scope($childScope5) });
6564
+ writeScope($scope11_id, { a: _existing_scope($childScope7) });
6366
6565
  return 0;
6367
6566
  }
6368
6567
  }, $scope0_id, "w", 1, 1, 1, 0, 1);
6369
6568
  _for_of(repoList.filter(localDiffers), (repo) => {
6370
- const $scope26_id = _scope_id();
6371
- const $for_content8__repo_head__closures = /* @__PURE__ */ new Set();
6372
- const $for_content8__repo_pr_headRefName__closures = /* @__PURE__ */ new Set();
6373
- const $for_content8__repo_localHead__closures = /* @__PURE__ */ new Set();
6374
- const $for_content8__repo_branch__closures = /* @__PURE__ */ new Set();
6375
- _set_serialize_reason(40);
6376
- const $childScope6 = _peek_scope_id();
6569
+ const $scope18_id = _scope_id();
6570
+ const $for_content5__repo_head__closures = /* @__PURE__ */ new Set();
6571
+ const $for_content5__repo_pr_headRefName__closures = /* @__PURE__ */ new Set();
6572
+ const $for_content5__repo_localHead__closures = /* @__PURE__ */ new Set();
6573
+ const $for_content5__repo_branch__closures = /* @__PURE__ */ new Set();
6574
+ _set_serialize_reason(48);
6575
+ const $childScope8 = _peek_scope_id();
6377
6576
  toast_default({
6378
6577
  kind: "info",
6379
6578
  placement: "inline",
6380
6579
  title: `${repo.worktree} #${repo.pr.number}`,
6381
- content: _content_resume("f46", () => {
6580
+ content: _content_resume("i37", () => {
6382
6581
  _scope_reason();
6383
- const $scope27_id = _scope_id();
6384
- _html(`this view is <!>${_escape(shortSha(repo.head))}${_el_resume($scope27_id, "a")} (<!>${_escape(repo.pr.headRefName)}${_el_resume($scope27_id, "b")}). Local is <!>${_escape(shortSha(repo.localHead))}${_el_resume($scope27_id, "c")} (<!>${_escape(repo.branch)}${_el_resume($scope27_id, "d")}<!>${uncommitted ? ", plus uncommitted" : ""}${_el_resume($scope27_id, "e")}).`);
6385
- _subscribe($for_content8__repo_branch__closures, _subscribe($for_content8__repo_localHead__closures, _subscribe($for_content8__repo_pr_headRefName__closures, _subscribe($for_content8__repo_head__closures, _subscribe($uncommitted__closures, writeScope($scope27_id, {
6386
- _: _scope_with_id($scope26_id),
6387
- Cd1: 2
6582
+ const $scope19_id = _scope_id();
6583
+ _html(`this view is <!>${_escape(shortSha(repo.head))}${_el_resume($scope19_id, "a")} (<!>${_escape(repo.pr.headRefName)}${_el_resume($scope19_id, "b")}). Local is <!>${_escape(shortSha(repo.localHead))}${_el_resume($scope19_id, "c")} (<!>${_escape(repo.branch)}${_el_resume($scope19_id, "d")}<!>${uncommitted ? ", plus uncommitted" : ""}${_el_resume($scope19_id, "e")}).`);
6584
+ _subscribe($for_content5__repo_branch__closures, _subscribe($for_content5__repo_localHead__closures, _subscribe($for_content5__repo_pr_headRefName__closures, _subscribe($for_content5__repo_head__closures, _subscribe($uncommitted__closures, writeScope($scope19_id, {
6585
+ _: _scope_with_id($scope18_id),
6586
+ Cco: 2
6388
6587
  }))))));
6389
- _resume_branch($scope27_id);
6390
- }, $scope26_id)
6588
+ _resume_branch($scope19_id);
6589
+ }, $scope18_id)
6391
6590
  });
6392
- writeScope($scope26_id, {
6591
+ writeScope($scope18_id, {
6393
6592
  h: repo?.head,
6394
6593
  i: repo?.pr?.headRefName,
6395
6594
  j: repo?.localHead,
6396
6595
  k: repo?.branch,
6397
- l: $for_content8__repo_head__closures,
6398
- m: $for_content8__repo_pr_headRefName__closures,
6399
- n: $for_content8__repo_localHead__closures,
6400
- o: $for_content8__repo_branch__closures,
6401
- a: _existing_scope($childScope6)
6596
+ l: $for_content5__repo_head__closures,
6597
+ m: $for_content5__repo_pr_headRefName__closures,
6598
+ n: $for_content5__repo_localHead__closures,
6599
+ o: $for_content5__repo_branch__closures,
6600
+ a: _existing_scope($childScope8)
6402
6601
  });
6403
6602
  }, "id", $scope0_id, "x", 1, 1, 1, 0, 1);
6404
6603
  _if(() => {
6405
6604
  if (repos && !allFiles.length) {
6406
- const $scope32_id = _scope_id();
6407
- _html(`<p class="dim center-pad">${repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base."}${_el_resume($scope32_id, "a")}</p>`);
6408
- writeScope($scope32_id, {});
6605
+ const $scope23_id = _scope_id();
6606
+ _html(`<p class="dim center-pad">${repoList.some((r) => r.pr) ? "No file changes on these PRs." : "No changes vs base."}${_el_resume($scope23_id, "a")}</p>`);
6607
+ writeScope($scope23_id, {});
6409
6608
  return 0;
6410
6609
  } else if (repos && !shownFiles.length && !findState.hit) {
6411
- const $scope21_id = _scope_id();
6412
- _html(`<p class="dim center-pad">${findState.query.trim() ? "No matches in diffs." : `No files match "${_escape(`${fileFilter}`)}".`}${_el_resume($scope21_id, "a")}</p>`);
6413
- writeScope($scope21_id, {});
6610
+ const $scope13_id = _scope_id();
6611
+ _html(`<p class="dim center-pad">${findState.query.trim() ? "No matches in diffs." : `No files match "${_escape(`${fileFilter}`)}".`}${_el_resume($scope13_id, "a")}</p>`);
6612
+ writeScope($scope13_id, {});
6414
6613
  return 1;
6415
6614
  }
6416
6615
  }, $scope0_id, "y", 1, 1, 1, 0, 1);
6417
6616
  _for_of(repoList, (repo) => {
6418
- const $scope9_id = _scope_id();
6419
- const $for_content3__repo_pr_number__closures = /* @__PURE__ */ new Set();
6420
- const $for_content3__repo_pr_url__closures = /* @__PURE__ */ new Set();
6421
- const $for_content3__repo_pr_title__closures = /* @__PURE__ */ new Set();
6422
- const $for_content3__repo_pr_headRefName__closures = /* @__PURE__ */ new Set();
6423
- const $for_content3__repo_head__closures = /* @__PURE__ */ new Set();
6424
- const $for_content3__repo_base__closures = /* @__PURE__ */ new Set();
6425
- const $for_content3__repo_baseSha__closures = /* @__PURE__ */ new Set();
6426
- const $for_content3__repo_full_name__closures = /* @__PURE__ */ new Set();
6427
- const $for_content3__repo_branch__closures = /* @__PURE__ */ new Set();
6428
- const $for_content3__repo_localHead__closures = /* @__PURE__ */ new Set();
6429
- const $for_content3__repo__closures = /* @__PURE__ */ new Set();
6430
- const $for_content3__repo_id__closures = /* @__PURE__ */ new Set();
6431
- const $for_content3__repo_pr__closures = /* @__PURE__ */ new Set();
6432
- const $for_content3__repo_worktree__closures = /* @__PURE__ */ new Set();
6433
- const $for_content3__repoFiles__closures = /* @__PURE__ */ new Set();
6617
+ const $scope3_id = _scope_id();
6618
+ const $for_content__repo_pr_number__closures = /* @__PURE__ */ new Set();
6619
+ const $for_content__repo_pr_url__closures = /* @__PURE__ */ new Set();
6620
+ const $for_content__repo_pr_title__closures = /* @__PURE__ */ new Set();
6621
+ const $for_content__repo_pr_headRefName__closures = /* @__PURE__ */ new Set();
6622
+ const $for_content__repo_head__closures = /* @__PURE__ */ new Set();
6623
+ const $for_content__repo_base__closures = /* @__PURE__ */ new Set();
6624
+ const $for_content__repo_baseSha__closures = /* @__PURE__ */ new Set();
6625
+ const $for_content__repo_full_name__closures = /* @__PURE__ */ new Set();
6626
+ const $for_content__repo_branch__closures = /* @__PURE__ */ new Set();
6627
+ const $for_content__repo_localHead__closures = /* @__PURE__ */ new Set();
6628
+ const $for_content__repo__closures = /* @__PURE__ */ new Set();
6629
+ const $for_content__repo_id__closures = /* @__PURE__ */ new Set();
6630
+ const $for_content__repo_pr__closures = /* @__PURE__ */ new Set();
6631
+ const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
6632
+ const $for_content__repoFiles__closures = /* @__PURE__ */ new Set();
6434
6633
  const repoFiles = filesByRepo.get(repo.id) || [];
6435
6634
  const shownInRepo = shownByRepo.get(repo.id) || [];
6436
6635
  _if(() => {
6437
6636
  if (repoFiles.length || repo.pr) {
6438
- const $scope10_id = _scope_id();
6637
+ const $scope4_id = _scope_id();
6439
6638
  _html(`<section class=repo-section${repo.pr ? _attr("data-pr", `${repo.worktree}/${repo.pr.number}`) : ""}${_attr("hidden", !shownInRepo.length && !repo.pr && findState.hit?.repo !== repo.id)}>`);
6440
6639
  _if(() => {
6441
6640
  if (repoList.length > 1) {
6442
- const $scope30_id = _scope_id();
6443
- _html(`<button class=${collapsedRepos.has(repo.id) ? "\"repo-sep closed\"" : "repo-sep"}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope30_id, "b")}</span><span class=mono>${_escape(repo.worktree)}${_el_resume($scope30_id, "c")}</span>`);
6641
+ const $scope21_id = _scope_id();
6642
+ _html(`<button class=${collapsedRepos.has(repo.id) ? "\"repo-sep closed\"" : "repo-sep"}><span class=tree-chev>${collapsedRepos.has(repo.id) ? "▸" : "▾"}${_el_resume($scope21_id, "b")}</span><span class=mono>${_escape(repo.worktree)}${_el_resume($scope21_id, "c")}</span>`);
6444
6643
  _if(() => {
6445
6644
  if (repo.pr) {
6446
- const $scope39_id = _scope_id();
6447
- _html(`<a class="chip pr"${_attr("href", `${repo.pr.url}/files`)} target=_blank rel=noopener${_attr("title", `${repo.pr.title} — ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}`)}>#<!>${_escape(repo.pr.number)}${_el_resume($scope39_id, "b")}</a>${_el_resume($scope39_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope39_id, "c")}</span>`);
6448
- _script($scope39_id, "f47");
6449
- _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_pr_headRefName__closures, _subscribe($for_content3__repo_pr_title__closures, _subscribe($for_content3__repo_pr_url__closures, _subscribe($for_content3__repo_pr_number__closures, writeScope($scope39_id, {
6645
+ const $scope28_id = _scope_id();
6646
+ _html(`<a class="chip pr"${_attr("href", `${repo.pr.url}/files`)} target=_blank rel=noopener${_attr("title", `${repo.pr.title} — ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}`)}>#<!>${_escape(repo.pr.number)}${_el_resume($scope28_id, "b")}</a>${_el_resume($scope28_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope28_id, "c")}</span>`);
6647
+ _script($scope28_id, "i38");
6648
+ _subscribe($for_content__repo_baseSha__closures, _subscribe($for_content__repo_base__closures, _subscribe($for_content__repo_head__closures, _subscribe($for_content__repo_pr_headRefName__closures, _subscribe($for_content__repo_pr_title__closures, _subscribe($for_content__repo_pr_url__closures, _subscribe($for_content__repo_pr_number__closures, writeScope($scope28_id, {
6450
6649
  Ca5: 2,
6451
6650
  Ca6: 2,
6452
6651
  Ca7: 2
6453
6652
  }))))))));
6454
6653
  return 0;
6455
6654
  } else {
6456
- const $scope40_id = _scope_id();
6457
- _html(`<span class=dim>${_escape(repo.full_name)}${_el_resume($scope40_id, "a")}</span>`);
6458
- _subscribe($for_content3__repo_full_name__closures, writeScope($scope40_id, {}));
6655
+ const $scope29_id = _scope_id();
6656
+ _html(`<span class=dim>${_escape(repo.full_name)}${_el_resume($scope29_id, "a")}</span>`);
6657
+ _subscribe($for_content__repo_full_name__closures, writeScope($scope29_id, {}));
6459
6658
  return 1;
6460
6659
  }
6461
- }, $scope30_id, "d");
6462
- _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope30_id, "f")}</span>${_el_resume($scope30_id, "e")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope30_id, "h")}</span>${_el_resume($scope30_id, "g")}`);
6660
+ }, $scope21_id, "d");
6661
+ _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope21_id, "f")}</span>${_el_resume($scope21_id, "e")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope21_id, "h")}</span>${_el_resume($scope21_id, "g")}`);
6463
6662
  _if(() => {
6464
6663
  if (localDiffers(repo)) {
6465
- const $scope41_id = _scope_id();
6466
- _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope41_id, "b")}</span>${_el_resume($scope41_id, "a")}`);
6467
- _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope41_id, { Ca9: 2 })));
6664
+ const $scope30_id = _scope_id();
6665
+ _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope30_id, "b")}</span>${_el_resume($scope30_id, "a")}`);
6666
+ _subscribe($for_content__repo_localHead__closures, _subscribe($for_content__repo_branch__closures, writeScope($scope30_id, { Ca9: 2 })));
6468
6667
  return 0;
6469
6668
  }
6470
- }, $scope30_id, "i", 1, 1, 1, 0, 1);
6471
- _html(`</button>${_el_resume($scope30_id, "a")}`);
6472
- _script($scope30_id, "f48");
6473
- _subscribe($for_content3__repo_branch__closures, _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_worktree__closures, _subscribe($for_content3__repo_pr__closures, _subscribe($for_content3__repo_id__closures, _subscribe($for_content3__repo__closures, _subscribe($collapsedRepos__closures, writeScope($scope30_id, { Cd6: 1 }))))))))));
6669
+ }, $scope21_id, "i", 1, 1, 1, 0, 1);
6670
+ _html(`</button>${_el_resume($scope21_id, "a")}`);
6671
+ _script($scope21_id, "i39");
6672
+ _subscribe($for_content__repo_branch__closures, _subscribe($for_content__repo_baseSha__closures, _subscribe($for_content__repo_base__closures, _subscribe($for_content__repo_head__closures, _subscribe($for_content__repo_worktree__closures, _subscribe($for_content__repo_pr__closures, _subscribe($for_content__repo_id__closures, _subscribe($for_content__repo__closures, _subscribe($collapsedRepos__closures, writeScope($scope21_id, { Cct: 1 }))))))))));
6474
6673
  return 0;
6475
6674
  } else {
6476
- const $scope33_id = _scope_id();
6675
+ const $scope24_id = _scope_id();
6477
6676
  _html("<p class=repo-meta>");
6478
6677
  _if(() => {
6479
6678
  if (repo.pr) {
6480
- const $scope42_id = _scope_id();
6481
- _html(`<a class="chip pr"${_attr("href", `${repo.pr.url}/files`)} target=_blank rel=noopener${_attr("title", `${repo.pr.title} — ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}`)}>#<!>${_escape(repo.pr.number)}${_el_resume($scope42_id, "b")}</a>${_el_resume($scope42_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope42_id, "c")}</span>`);
6482
- _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_pr_headRefName__closures, _subscribe($for_content3__repo_pr_title__closures, _subscribe($for_content3__repo_pr_url__closures, _subscribe($for_content3__repo_pr_number__closures, writeScope($scope42_id, {
6679
+ const $scope31_id = _scope_id();
6680
+ _html(`<a class="chip pr"${_attr("href", `${repo.pr.url}/files`)} target=_blank rel=noopener${_attr("title", `${repo.pr.title} — ${repo.pr.headRefName} ${repo.head} vs ${repo.base} ${repo.baseSha}`)}>#<!>${_escape(repo.pr.number)}${_el_resume($scope31_id, "b")}</a>${_el_resume($scope31_id, "a")}<span class=dim>${_escape(repo.pr.title)}${_el_resume($scope31_id, "c")}</span>`);
6681
+ _subscribe($for_content__repo_baseSha__closures, _subscribe($for_content__repo_base__closures, _subscribe($for_content__repo_head__closures, _subscribe($for_content__repo_pr_headRefName__closures, _subscribe($for_content__repo_pr_title__closures, _subscribe($for_content__repo_pr_url__closures, _subscribe($for_content__repo_pr_number__closures, writeScope($scope31_id, {
6483
6682
  Ca1: 1,
6484
6683
  Ca2: 1,
6485
6684
  Ca3: 1,
@@ -6490,21 +6689,21 @@ var diff_view_default = _template("f", (input) => {
6490
6689
  }))))))));
6491
6690
  return 0;
6492
6691
  }
6493
- }, $scope33_id, "a");
6494
- _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope33_id, "c")}</span>${_el_resume($scope33_id, "b")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope33_id, "e")}</span>${_el_resume($scope33_id, "d")}`);
6692
+ }, $scope24_id, "a");
6693
+ _html(`<span class="chip lane"${_attr("title", `${repo.pr ? "PR head" : "checked out"} ${repo.pr ? repo.pr.headRefName : repo.branch} ${repo.head}`)}>on <!>${repo.pr ? _escape(repo.pr.headRefName) : _escape(repo.branch)}${_el_resume($scope24_id, "c")}</span>${_el_resume($scope24_id, "b")}<span class=chip${_attr("title", `${repo.base} ${repo.baseSha}`)}>vs <!>${_escape(repo.base)}${_el_resume($scope24_id, "e")}</span>${_el_resume($scope24_id, "d")}`);
6495
6694
  _if(() => {
6496
6695
  if (localDiffers(repo)) {
6497
- const $scope43_id = _scope_id();
6498
- _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope43_id, "b")}</span>${_el_resume($scope43_id, "a")}`);
6499
- _subscribe($for_content3__repo_localHead__closures, _subscribe($for_content3__repo_branch__closures, writeScope($scope43_id, {
6696
+ const $scope32_id = _scope_id();
6697
+ _html(`<span class=chip${_attr("title", `checked out ${repo.branch} ${repo.localHead}`)}>local <!>${_escape(repo.branch)}${_el_resume($scope32_id, "b")}</span>${_el_resume($scope32_id, "a")}`);
6698
+ _subscribe($for_content__repo_localHead__closures, _subscribe($for_content__repo_branch__closures, writeScope($scope32_id, {
6500
6699
  Ca9: 3,
6501
6700
  Caa: 1
6502
6701
  })));
6503
6702
  return 0;
6504
6703
  }
6505
- }, $scope33_id, "f", 1, 1, 1, 0, 1);
6704
+ }, $scope24_id, "f", 1, 1, 1, 0, 1);
6506
6705
  _html("</p>");
6507
- _subscribe($for_content3__repo_branch__closures, _subscribe($for_content3__repo_baseSha__closures, _subscribe($for_content3__repo_base__closures, _subscribe($for_content3__repo_head__closures, _subscribe($for_content3__repo_pr__closures, _subscribe($for_content3__repo__closures, writeScope($scope33_id, {
6706
+ _subscribe($for_content__repo_branch__closures, _subscribe($for_content__repo_baseSha__closures, _subscribe($for_content__repo_base__closures, _subscribe($for_content__repo_head__closures, _subscribe($for_content__repo_pr__closures, _subscribe($for_content__repo__closures, writeScope($scope24_id, {
6508
6707
  Cx: 1,
6509
6708
  Cz: 1,
6510
6709
  Ca5: 1,
@@ -6514,64 +6713,64 @@ var diff_view_default = _template("f", (input) => {
6514
6713
  })))))));
6515
6714
  return 1;
6516
6715
  }
6517
- }, $scope10_id, "b", 1, 1, 1, 0, 1);
6716
+ }, $scope4_id, "b", 1, 1, 1, 0, 1);
6518
6717
  _if(() => {
6519
6718
  if (!(repoList.length > 1 && collapsedRepos.has(repo.id))) {
6520
- const $scope11_id = _scope_id();
6719
+ const $scope5_id = _scope_id();
6521
6720
  _html("<div class=files>");
6522
6721
  _for_of(repoFiles, (file) => {
6523
- const $scope12_id = _scope_id();
6524
- const $for_content4__file__closures = /* @__PURE__ */ new Set();
6525
- const $for_content4__file_key__closures = /* @__PURE__ */ new Set();
6526
- const $for_content4__fileComments__closures = /* @__PURE__ */ new Set();
6722
+ const $scope6_id = _scope_id();
6723
+ const $for_content2__file__closures = /* @__PURE__ */ new Set();
6724
+ const $for_content2__file_key__closures = /* @__PURE__ */ new Set();
6725
+ const $for_content2__fileComments__closures = /* @__PURE__ */ new Set();
6527
6726
  const fileComments = commentsByFile.get(file.key) || [];
6528
6727
  let expanded = !viewed.has(file.key);
6529
- _html(`<details${_attr_details_or_dialog_open($scope12_id, "a", expanded)} class=file${_attr("data-key", file.key)}${_attr("hidden", !shownKeySet.has(file.key))}><summary><span${_attr_class(["status", file.status])}>${_escape(file.status)}${_el_resume($scope12_id, "c")}</span>${_el_resume($scope12_id, "b")}<span class=path${_attr("title", file.path)}><bdi>${_escape(file.path)}${_el_resume($scope12_id, "e")}</bdi></span>${_el_resume($scope12_id, "d")}`);
6728
+ _html(`<details${_attr_details_or_dialog_open($scope6_id, "a", expanded)} class=file${_attr("data-key", file.key)}${_attr("hidden", !shownKeySet.has(file.key))}><summary><span${_attr_class(["status", file.status])}>${_escape(file.status)}${_el_resume($scope6_id, "c")}</span>${_el_resume($scope6_id, "b")}<span class=path${_attr("title", file.path)}><bdi>${_escape(file.path)}${_el_resume($scope6_id, "e")}</bdi></span>${_el_resume($scope6_id, "d")}`);
6530
6729
  _if(() => {
6531
6730
  if (fileComments.length) {
6532
- const $scope44_id = _scope_id();
6533
- _html(`<span class=chip>💬 <!>${_escape(fileComments.length)}${_el_resume($scope44_id, "a")}</span>`);
6534
- writeScope($scope44_id, {});
6731
+ const $scope33_id = _scope_id();
6732
+ _html(`<span class=chip>💬 <!>${_escape(fileComments.length)}${_el_resume($scope33_id, "a")}</span>`);
6733
+ writeScope($scope33_id, {});
6535
6734
  return 0;
6536
6735
  }
6537
- }, $scope12_id, "f", 1, 1, 1, 0, 1);
6538
- _html(`<label class=viewed><input${_attr_input_checked($scope12_id, "h", viewed.has(file.key), _resume(function() {
6736
+ }, $scope6_id, "f", 1, 1, 1, 0, 1);
6737
+ _html(`<label class=viewed><input${_attr_input_checked($scope6_id, "h", viewed.has(file.key), _resume(function() {
6539
6738
  toggleViewed(file.key);
6540
- }, "f1", $scope12_id))} type=checkbox>${_el_resume($scope12_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope12_id, "g")}</summary>`);
6739
+ }, "i0", $scope6_id))} type=checkbox>${_el_resume($scope6_id, "h")}<span class=dim>viewed</span></label>${_el_resume($scope6_id, "g")}</summary>`);
6541
6740
  _if(() => {
6542
6741
  if (file.binary) {
6543
- const $scope45_id = _scope_id();
6742
+ const $scope34_id = _scope_id();
6544
6743
  _html("<p class=\"dim diff-pad\">binary file</p>");
6545
- writeScope($scope45_id, {});
6744
+ writeScope($scope34_id, {});
6546
6745
  return 0;
6547
6746
  } else if (file.tooLarge) {
6548
- const $scope46_id = _scope_id();
6747
+ const $scope35_id = _scope_id();
6549
6748
  _html("<p class=\"dim diff-pad\">file too large to display</p>");
6550
- writeScope($scope46_id, {});
6749
+ writeScope($scope35_id, {});
6551
6750
  return 1;
6552
6751
  } else if (file.old == null && file.new == null) {
6553
- const $scope47_id = _scope_id();
6752
+ const $scope36_id = _scope_id();
6554
6753
  _html("<p class=\"dim diff-pad\">file could not be read</p>");
6555
- writeScope($scope47_id, {});
6754
+ writeScope($scope36_id, {});
6556
6755
  return 2;
6557
6756
  } else if (expanded) {
6558
- const $scope15_id = _scope_id();
6757
+ const $scope7_id = _scope_id();
6559
6758
  _if(() => {
6560
6759
  {
6561
- const $scope31_id = _scope_id();
6562
- _html(`<div class=diff-wait></div>${_el_resume($scope31_id, "a")}`);
6563
- _script($scope31_id, "f49");
6564
- writeScope($scope31_id, {});
6760
+ const $scope22_id = _scope_id();
6761
+ _html(`<div class=diff-wait></div>${_el_resume($scope22_id, "a")}`);
6762
+ _script($scope22_id, "i40");
6763
+ writeScope($scope22_id, {});
6565
6764
  return 0;
6566
6765
  }
6567
- }, $scope15_id, "a", 1, 1, 1, 0, 1);
6568
- writeScope($scope15_id, {});
6766
+ }, $scope7_id, "a", 1, 1, 1, 0, 1);
6767
+ writeScope($scope7_id, {});
6569
6768
  return 3;
6570
6769
  }
6571
- }, $scope12_id, "i");
6572
- _html(`</details>${_el_resume($scope12_id, "a")}`);
6573
- _script($scope12_id, "f50");
6574
- _subscribe($toggleViewed2__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($viewed__closures, writeScope($scope12_id, {
6770
+ }, $scope6_id, "i");
6771
+ _html(`</details>${_el_resume($scope6_id, "a")}`);
6772
+ _script($scope6_id, "i41");
6773
+ _subscribe($toggleViewed2__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($viewed__closures, writeScope($scope6_id, {
6575
6774
  k: file,
6576
6775
  l: file?.key,
6577
6776
  s: file?.binary,
@@ -6581,23 +6780,21 @@ var diff_view_default = _template("f", (input) => {
6581
6780
  w: fileComments,
6582
6781
  x: fileComments.length,
6583
6782
  y: expanded,
6584
- a0: $for_content4__file__closures,
6585
- a1: $for_content4__file_key__closures,
6586
- a2: $for_content4__fileComments__closures,
6587
- Ccs: 1,
6588
- Cdg: 1
6783
+ a0: $for_content2__file__closures,
6784
+ a1: $for_content2__file_key__closures,
6785
+ a2: $for_content2__fileComments__closures
6589
6786
  })))));
6590
- }, "key", $scope11_id, "a", 1, 1, 1, "</div>", 1);
6591
- _subscribe($for_content3__repoFiles__closures, writeScope($scope11_id, {}));
6787
+ }, "key", $scope5_id, "a", 1, 1, 1, "</div>", 1);
6788
+ _subscribe($for_content__repoFiles__closures, writeScope($scope5_id, {}));
6592
6789
  return 0;
6593
6790
  }
6594
- }, $scope10_id, "c", 1, 1, 1, 0, 1);
6595
- _html(`</section>${_el_resume($scope10_id, "a")}`);
6596
- _subscribe($repoList_length__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit_repo__closures, writeScope($scope10_id, {}))));
6791
+ }, $scope4_id, "c", 1, 1, 1, 0, 1);
6792
+ _html(`</section>${_el_resume($scope4_id, "a")}`);
6793
+ _subscribe($repoList_length__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit_repo__closures, writeScope($scope4_id, {}))));
6597
6794
  return 0;
6598
6795
  }
6599
- }, $scope9_id, "a", 1, 1, 1, 0, 1);
6600
- writeScope($scope9_id, {
6796
+ }, $scope3_id, "a", 1, 1, 1, 0, 1);
6797
+ writeScope($scope3_id, {
6601
6798
  c: repo,
6602
6799
  d: repo?.id,
6603
6800
  g: repo?.pr,
@@ -6614,121 +6811,120 @@ var diff_view_default = _template("f", (input) => {
6614
6811
  r: repo?.localHead,
6615
6812
  s: repoFiles,
6616
6813
  w: shownInRepo.length,
6617
- a1: $for_content3__repo_pr_number__closures,
6618
- a2: $for_content3__repo_pr_url__closures,
6619
- a3: $for_content3__repo_pr_title__closures,
6620
- a4: $for_content3__repo_pr_headRefName__closures,
6621
- a5: $for_content3__repo_head__closures,
6622
- a6: $for_content3__repo_base__closures,
6623
- a7: $for_content3__repo_baseSha__closures,
6624
- a8: $for_content3__repo_full_name__closures,
6625
- a9: $for_content3__repo_branch__closures,
6626
- aa: $for_content3__repo_localHead__closures,
6627
- x: $for_content3__repo__closures,
6628
- y: $for_content3__repo_id__closures,
6629
- z: $for_content3__repo_pr__closures,
6630
- a0: $for_content3__repo_worktree__closures,
6631
- ab: $for_content3__repoFiles__closures
6814
+ a1: $for_content__repo_pr_number__closures,
6815
+ a2: $for_content__repo_pr_url__closures,
6816
+ a3: $for_content__repo_pr_title__closures,
6817
+ a4: $for_content__repo_pr_headRefName__closures,
6818
+ a5: $for_content__repo_head__closures,
6819
+ a6: $for_content__repo_base__closures,
6820
+ a7: $for_content__repo_baseSha__closures,
6821
+ a8: $for_content__repo_full_name__closures,
6822
+ a9: $for_content__repo_branch__closures,
6823
+ aa: $for_content__repo_localHead__closures,
6824
+ x: $for_content__repo__closures,
6825
+ y: $for_content__repo_id__closures,
6826
+ z: $for_content__repo_pr__closures,
6827
+ a0: $for_content__repo_worktree__closures,
6828
+ ab: $for_content__repoFiles__closures
6632
6829
  });
6633
6830
  }, "id", $scope0_id, "z");
6634
6831
  _html(`</div>${_el_resume($scope0_id, "s")}</div>`);
6635
- _if(() => {}, $scope0_id, "a0");
6832
+ _set_serialize_reason(4030);
6833
+ const $childScope10 = _peek_scope_id();
6834
+ diff_file_sheet_default({
6835
+ open: fileSheet,
6836
+ openChange: _resume((_new_fileSheet) => {
6837
+ fileSheet = _new_fileSheet;
6838
+ }, "i29", $scope0_id),
6839
+ files: shownFiles,
6840
+ viewed,
6841
+ commentKeys,
6842
+ total: allFiles.length,
6843
+ onJump: jumpTo
6844
+ });
6636
6845
  _html("</div>");
6637
- _script($scope0_id, "f53");
6638
- _script($scope0_id, "f54");
6846
+ _script($scope0_id, "i42");
6847
+ _script($scope0_id, "i43");
6848
+ _script($scope0_id, "i44");
6639
6849
  writeScope($scope0_id, {
6640
6850
  a3: input.workspaceId,
6641
6851
  a4: input.focusPr,
6642
6852
  a5: input.active,
6643
6853
  a6: input.focusNonce,
6644
- a7: input.sessions,
6645
- a9: input.onSent,
6646
- aa: input.onExit,
6647
- ab: input.sessions?.[0]?.title,
6648
- ac: input.sessions?.[0]?.agent,
6649
- ad: repos,
6650
- ae: comments,
6651
- ag: viewed,
6652
- ai: viewed?.size,
6653
- aj: draft,
6654
- al: error,
6655
- am: loading,
6656
- an: copied,
6657
- ao: sending,
6658
- ap: sendTarget,
6659
- ar: fileFilter,
6660
- as: uncommitted,
6661
- at: treeOpen,
6662
- aw: findTick,
6663
- ay: findState?.query,
6664
- b0: findState?.hit,
6665
- b1: findState?.hit?.key,
6666
- b2: findState?.hit?.repo,
6667
- b3: collapsedDirs,
6668
- b4: collapsedRepos,
6669
- b5: dismissedDrift,
6670
- b6: toggleRepo,
6671
- b8: nearBox.cbs,
6672
- b9: nearBox.io,
6673
- bb: observeNear,
6674
- bc: focusPrSection,
6675
- be: headBox.sig,
6676
- bg: headBox.timer,
6677
- bh: load,
6678
- bj: loadReview,
6679
- bk: reload,
6680
- bm: reloadSoon,
6681
- bo: repoList,
6682
- bq: repoList.length,
6683
- br: allFiles,
6684
- bs: allFiles?.length,
6685
- bt: fileMatch,
6686
- bv: fileFiltered,
6687
- bw: findKeys,
6688
- by: shownFiles,
6689
- c2: shownKeySet,
6690
- c3: filesByRepo,
6691
- c4: shownByRepo,
6692
- c6: commentsByFile,
6693
- c7: sendPick,
6694
- c8: localDiffers,
6695
- ca: driftRepos,
6696
- cd: dismissDrift,
6697
- ce: toggleViewed,
6698
- cf: saveComment,
6699
- cg: removeComment,
6700
- ch: clearComments,
6701
- ck: copyMarkdown,
6702
- cl: sendTo,
6703
- cm: jumpTo,
6704
- cn: openFind,
6705
- co: onFindState,
6706
- d5: $collapsedDirs__closures,
6707
- cs: $viewed__closures,
6708
- dg: $commentsByFile__closures,
6709
- df: $shownByRepo__closures,
6710
- cq: $si__input_sessions_0_title && $input_sessions_0_title__closures,
6711
- cr: $si__input_sessions_0_agent && $input_sessions_0_agent__closures,
6712
- cy: $sending__closures,
6713
- cp: $si__input_sessions && $input_sessions__closures,
6714
- cz: $sendTarget__closures,
6715
- q: _existing_scope($childScope),
6716
- cv: $error__closures,
6717
- d1: $uncommitted__closures,
6718
- cw: $loading__closures,
6719
- di: $driftRepos__closures,
6720
- d6: $collapsedRepos__closures,
6721
- cu: $draft__closures,
6722
- dl: $saveComment2__closures,
6723
- dm: $removeComment2__closures,
6724
- dd: $shownKeySet__closures,
6725
- dk: $toggleViewed2__closures,
6726
- d4: $findState_hit_repo__closures,
6727
- d9: $repoList_length__closures
6854
+ a7: input.onSent,
6855
+ a8: input.onExit,
6856
+ a9: input.sessions,
6857
+ aa: repos,
6858
+ ab: comments,
6859
+ ad: viewed,
6860
+ ag: draft,
6861
+ ai: error,
6862
+ aj: loading,
6863
+ ak: fileFilter,
6864
+ al: uncommitted,
6865
+ am: treeOpen,
6866
+ ao: findOpen,
6867
+ ap: findTick,
6868
+ as: findState?.query,
6869
+ au: findState?.hit,
6870
+ av: findState?.hit?.key,
6871
+ aw: findState?.hit?.repo,
6872
+ ax: collapsedRepos,
6873
+ ay: dismissedDrift,
6874
+ b0: nearBox.cbs,
6875
+ b1: nearBox.io,
6876
+ b3: observeNear,
6877
+ b4: focusPrSection,
6878
+ b6: headBox.sig,
6879
+ b8: headBox.timer,
6880
+ b9: load,
6881
+ bb: loadReview,
6882
+ bc: reload,
6883
+ be: reloadSoon,
6884
+ bg: repoList,
6885
+ bi: repoList.length,
6886
+ bj: allFiles,
6887
+ bk: allFiles?.length,
6888
+ bl: fileMatch,
6889
+ bn: fileFiltered,
6890
+ bo: findKeys,
6891
+ bu: shownKeySet,
6892
+ bv: filesByRepo,
6893
+ bw: shownByRepo,
6894
+ by: commentsByFile,
6895
+ c1: localDiffers,
6896
+ c3: driftRepos,
6897
+ c6: dismissDrift,
6898
+ c7: toggleViewed,
6899
+ c8: saveComment,
6900
+ c9: removeComment,
6901
+ ca: clearComments,
6902
+ cd: copyMarkdown,
6903
+ ce: sendTo,
6904
+ cf: jumpTo,
6905
+ cg: openFind,
6906
+ ch: onFindState,
6907
+ a: _existing_scope($childScope),
6908
+ q: _existing_scope($childScope3),
6909
+ cl: $error__closures,
6910
+ co: $uncommitted__closures,
6911
+ cm: $loading__closures,
6912
+ d3: $driftRepos__closures,
6913
+ ct: $collapsedRepos__closures,
6914
+ ck: $draft__closures,
6915
+ d6: $saveComment2__closures,
6916
+ d7: $removeComment2__closures,
6917
+ cj: $viewed__closures,
6918
+ cy: $shownKeySet__closures,
6919
+ d1: $commentsByFile__closures,
6920
+ d5: $toggleViewed2__closures,
6921
+ cs: $findState_hit_repo__closures,
6922
+ cw: $repoList_length__closures,
6923
+ a0: _existing_scope($childScope10)
6728
6924
  });
6729
6925
  _resume_branch($scope0_id);
6730
6926
  });
6731
- _template("z", (input) => {
6927
+ _template("D", (input) => {
6732
6928
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6733
6929
  const $scope0_id = _scope_id();
6734
6930
  _set_serialize_reason({
@@ -6743,7 +6939,7 @@ _template("z", (input) => {
6743
6939
  });
6744
6940
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6745
6941
  });
6746
- _template("E", (input) => {
6942
+ _template("I", (input) => {
6747
6943
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6748
6944
  const $scope0_id = _scope_id();
6749
6945
  _set_serialize_reason({
@@ -6758,7 +6954,7 @@ _template("E", (input) => {
6758
6954
  });
6759
6955
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6760
6956
  });
6761
- _template("x", (input) => {
6957
+ _template("B", (input) => {
6762
6958
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6763
6959
  const $scope0_id = _scope_id();
6764
6960
  _set_serialize_reason({
@@ -6773,7 +6969,7 @@ _template("x", (input) => {
6773
6969
  });
6774
6970
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
6775
6971
  });
6776
- _template("D", (input) => {
6972
+ _template("H", (input) => {
6777
6973
  const $scope0_reason = _scope_reason(), $sg__input_size__OR__input_class = _serialize_guard($scope0_reason, 0);
6778
6974
  const $scope0_id = _scope_id();
6779
6975
  _set_serialize_reason({
@@ -6792,7 +6988,7 @@ _template("D", (input) => {
6792
6988
  //#region src/tags/term.marko
6793
6989
  var REPEAT_DELAY = 400;
6794
6990
  var REPEAT_EVERY = 55;
6795
- var term_default = _template("p", (input) => {
6991
+ var term_default = _template("t", (input) => {
6796
6992
  const $scope0_reason = _scope_reason();
6797
6993
  _serialize_guard($scope0_reason, 6);
6798
6994
  _serialize_guard($scope0_reason, 7);
@@ -6809,7 +7005,7 @@ var term_default = _template("p", (input) => {
6809
7005
  _serialize_guard($scope0_reason, 14);
6810
7006
  const $si__input_sessionId = _serialize_if($scope0_reason, 10), $si__input_onRenameSession = _serialize_if($scope0_reason, 11), $si__input_onCloseSession = _serialize_if($scope0_reason, 12), $si__input_workspaceName = _serialize_if($scope0_reason, 14);
6811
7007
  const $scope0_id = _scope_id();
6812
- _hoist($scope0_id, "p6");
7008
+ _hoist($scope0_id, "t6");
6813
7009
  const $input_sessionId__closures = /* @__PURE__ */ new Set();
6814
7010
  const $input_onRenameSession__closures = /* @__PURE__ */ new Set();
6815
7011
  const $input_onCloseSession__closures = /* @__PURE__ */ new Set();
@@ -6832,7 +7028,7 @@ var term_default = _template("p", (input) => {
6832
7028
  copyFlashBox.timer = setTimeout(() => {
6833
7029
  copiedFlash = false;
6834
7030
  }, 1200);
6835
- }, "p0", $scope0_id);
7031
+ }, "t0", $scope0_id);
6836
7032
  const holdBox = { current: null };
6837
7033
  const startHold = _resume((seq) => {
6838
7034
  ((stopHold) => stopHold())(_hoist_read_error);
@@ -6842,7 +7038,7 @@ var term_default = _template("p", (input) => {
6842
7038
  state.repeat = setInterval(() => ioBox.current?.send(seq), REPEAT_EVERY);
6843
7039
  }, REPEAT_DELAY);
6844
7040
  holdBox.current = state;
6845
- }, "p1", $scope0_id);
7041
+ }, "t1", $scope0_id);
6846
7042
  const stopHold = _resume(() => {
6847
7043
  const hold = holdBox.current;
6848
7044
  if (hold) {
@@ -6850,7 +7046,7 @@ var term_default = _template("p", (input) => {
6850
7046
  clearInterval(hold.repeat);
6851
7047
  holdBox.current = null;
6852
7048
  }
6853
- }, "p2", $scope0_id);
7049
+ }, "t2", $scope0_id);
6854
7050
  const uploadAsset = _resume(async (file) => {
6855
7051
  if (!file) return;
6856
7052
  uploading = true;
@@ -6863,7 +7059,7 @@ var term_default = _template("p", (input) => {
6863
7059
  } finally {
6864
7060
  uploading = false;
6865
7061
  }
6866
- }, "p3", $scope0_id);
7062
+ }, "t3", $scope0_id);
6867
7063
  const handlePasted = _resume(async (clipboardData) => {
6868
7064
  const files = [...clipboardData?.files || []];
6869
7065
  for (const file of files) await uploadAsset(file);
@@ -6872,7 +7068,7 @@ var term_default = _template("p", (input) => {
6872
7068
  if (text) ioBox.current?.send(text);
6873
7069
  }
6874
7070
  trapOpen = false;
6875
- }, "p4", $scope0_id);
7071
+ }, "t4", $scope0_id);
6876
7072
  const pasteClipboard = _resume(async () => {
6877
7073
  if (!navigator.clipboard?.read) {
6878
7074
  trapOpen = true;
@@ -6892,7 +7088,7 @@ var term_default = _template("p", (input) => {
6892
7088
  } catch {
6893
7089
  trapOpen = true;
6894
7090
  }
6895
- }, "p5", $scope0_id);
7091
+ }, "t5", $scope0_id);
6896
7092
  _html(`<div${_attr("hidden", input.mode === "diff")} class=term-wrap><div class=term></div>${_el_resume($scope0_id, "b")}`);
6897
7093
  _if(() => {
6898
7094
  if (uploading) {
@@ -6915,16 +7111,16 @@ var term_default = _template("p", (input) => {
6915
7111
  if (trapOpen) {
6916
7112
  const $scope12_id = _scope_id();
6917
7113
  _html(`<div class=trap-backdrop><div class=paste-trap><p class=dim>Long-press below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope12_id, "c")}<button class=btn>Cancel</button>${_el_resume($scope12_id, "d")}</div>${_el_resume($scope12_id, "b")}</div>${_el_resume($scope12_id, "a")}`);
6918
- _script($scope12_id, "p8");
6919
- _script($scope12_id, "p9");
7114
+ _script($scope12_id, "t8");
7115
+ _script($scope12_id, "t9");
6920
7116
  writeScope($scope12_id, {});
6921
7117
  return 0;
6922
7118
  }
6923
7119
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
6924
7120
  _html(`</div>${_el_resume($scope0_id, "a")}`);
6925
7121
  _if(() => {}, $scope0_id, "g", 1, 1, 1, 0, 1);
6926
- _script($scope0_id, "p24");
6927
- _script($scope0_id, "p25");
7122
+ _script($scope0_id, "t24");
7123
+ _script($scope0_id, "t25");
6928
7124
  writeScope($scope0_id, {
6929
7125
  j: input.workspaceId,
6930
7126
  k: input.mode,
@@ -6989,7 +7185,7 @@ var $class = [
6989
7185
  "\"meter-fill warm\"",
6990
7186
  "\"meter-fill hot warm\""
6991
7187
  ];
6992
- var usage_stats_default = _template("r", (input) => {
7188
+ var usage_stats_default = _template("v", (input) => {
6993
7189
  const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 2);
6994
7190
  const $scope0_id = _scope_id();
6995
7191
  const $usage_error__closures = /* @__PURE__ */ new Set();
@@ -7004,16 +7200,17 @@ var usage_stats_default = _template("r", (input) => {
7004
7200
  } catch (err) {
7005
7201
  usage = { error: String(err.message || err) };
7006
7202
  }
7007
- }, "r0", $scope0_id);
7203
+ }, "v0", $scope0_id);
7008
7204
  const refresh = _resume(async () => {
7009
7205
  refreshing = true;
7010
7206
  await load(true);
7011
7207
  refreshing = false;
7012
- }, "r1", $scope0_id);
7208
+ }, "v1", $scope0_id);
7209
+ const titleId = _id();
7013
7210
  _set_serialize_reason({
7014
7211
  0: _serialize_guard($scope0_reason, 1),
7015
7212
  1: $sg__input_openChange,
7016
- 2: $sg__input_openChange
7213
+ 5: $sg__input_openChange
7017
7214
  });
7018
7215
  const $childScope = _peek_scope_id();
7019
7216
  modal_view_default({
@@ -7021,12 +7218,13 @@ var usage_stats_default = _template("r", (input) => {
7021
7218
  class: "usage-modal",
7022
7219
  open: input.open,
7023
7220
  openChange: input.openChange,
7024
- content: _content("r3", () => {
7221
+ "aria-labelledby": titleId,
7222
+ content: _content("v3", () => {
7025
7223
  _scope_reason();
7026
7224
  const $scope1_id = _scope_id();
7027
- _html(`<header class=manage-head><div><h2>Usage</h2></div><button class=${refreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh usage"${_attr("disabled", refreshing)}>`);
7225
+ _html(`<header class=manage-head><div><h2${_attr("id", titleId)}>Usage</h2></div><button class=${refreshing ? "\"icon-btn spinning\"" : "icon-btn"} title="Refresh usage" aria-label="Refresh usage"${_attr("disabled", refreshing)}>`);
7028
7226
  icon_refresh_default({ size: 13 });
7029
- _html(`</button>${_el_resume($scope1_id, "a")}</header>`);
7227
+ _html(`</button>${_el_resume($scope1_id, "b")}</header>`);
7030
7228
  _if(() => {
7031
7229
  if (!usage) {
7032
7230
  const $scope4_id = _scope_id();
@@ -7077,45 +7275,49 @@ var usage_stats_default = _template("r", (input) => {
7077
7275
  _subscribe($usage_agents__closures, writeScope($scope3_id, {}));
7078
7276
  return 2;
7079
7277
  }
7080
- }, $scope1_id, "c", 1, 1, 1, 0, 1);
7081
- _script($scope1_id, "r2");
7278
+ }, $scope1_id, "d", 1, 1, 1, 0, 1);
7279
+ _script($scope1_id, "v2");
7082
7280
  _subscribe($refreshing__closures, _subscribe($usage__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
7083
7281
  _resume_branch($scope1_id);
7084
7282
  })
7085
7283
  });
7086
- _script($scope0_id, "r4");
7284
+ _script($scope0_id, "v4");
7087
7285
  writeScope($scope0_id, {
7088
7286
  g: usage?.error,
7089
7287
  h: usage?.agents,
7090
7288
  j: load,
7091
7289
  k: refresh,
7092
- m: $usage_error__closures,
7093
- n: $usage_agents__closures,
7094
- l: $usage__closures,
7095
- o: $refreshing__closures,
7290
+ n: $usage_error__closures,
7291
+ o: $usage_agents__closures,
7292
+ m: $usage__closures,
7293
+ p: $refreshing__closures,
7096
7294
  a: _serialize_if($scope0_reason, 0) && _existing_scope($childScope)
7097
7295
  });
7098
7296
  _resume_branch($scope0_id);
7099
7297
  });
7100
7298
  //#endregion
7101
7299
  //#region src/tags/prompt-dialog.marko
7102
- var prompt_dialog_default = _template("l", (input) => {
7103
- const $scope0_reason = _scope_reason(), $sg__input_openChange = _serialize_guard($scope0_reason, 3), $si__input_submitLabel = _serialize_if($scope0_reason, 4), $si__input_label = _serialize_if($scope0_reason, 1), $si__input_placeholder = _serialize_if($scope0_reason, 5);
7300
+ var prompt_dialog_default = _template("o", (input) => {
7301
+ const $scope0_reason = _scope_reason(), $sg__input_label = _serialize_guard($scope0_reason, 3), $sg__input_openChange = _serialize_guard($scope0_reason, 2), $si__input_submitLabel = _serialize_if($scope0_reason, 4), $si__input_label = _serialize_if($scope0_reason, 3), $si__input_placeholder = _serialize_if($scope0_reason, 5);
7104
7302
  const $scope0_id = _scope_id();
7105
7303
  const $modalview_content__subscribers = /* @__PURE__ */ new Set();
7106
7304
  const $input_submitLabel__closures = /* @__PURE__ */ new Set();
7107
7305
  const $value__closures = /* @__PURE__ */ new Set();
7108
7306
  const $input_label__closures = /* @__PURE__ */ new Set();
7109
7307
  const $input_placeholder__closures = /* @__PURE__ */ new Set();
7308
+ input.open;
7110
7309
  let value = input.value || "";
7111
7310
  const submit = _resume(() => {
7112
7311
  const v = value.trim();
7113
7312
  if (v) input.onSubmit(v);
7114
- }, "l1", $scope0_id);
7313
+ }, "o1", $scope0_id);
7314
+ const titleId = _id();
7115
7315
  _set_serialize_reason({
7116
- 0: _serialize_guard($scope0_reason, 2),
7316
+ 0: _serialize_guard($scope0_reason, 1),
7117
7317
  1: $sg__input_openChange,
7118
- 2: $sg__input_openChange
7318
+ 2: $sg__input_label,
7319
+ 3: $sg__input_label,
7320
+ 5: $sg__input_openChange
7119
7321
  });
7120
7322
  const $childScope = _peek_scope_id();
7121
7323
  modal_view_default({
@@ -7123,48 +7325,51 @@ var prompt_dialog_default = _template("l", (input) => {
7123
7325
  class: "prompt-dlg",
7124
7326
  open: input.open,
7125
7327
  openChange: input.openChange,
7126
- footer: attrTag({ content: _content_resume("l5", () => {
7328
+ "aria-labelledby": titleId,
7329
+ footer: attrTag({ content: _content_resume("o5", () => {
7127
7330
  _scope_reason();
7128
7331
  const $scope1_id = _scope_id();
7129
7332
  _html(`<button type=button class="btn primary"${_attr("disabled", !value.trim())}>${_escape(input.submitLabel || "OK")}${_el_resume($scope1_id, "b", _serialize_guard($scope0_reason, 4))}</button>${_el_resume($scope1_id, "a")}<div class=spacer></div>`);
7130
7333
  dialog_close_default({
7131
7334
  class: "btn",
7132
- content: _content("l2", () => {
7335
+ content: _content("o2", () => {
7133
7336
  _scope_reason();
7134
7337
  _scope_id();
7135
7338
  _html("Cancel");
7136
7339
  })
7137
7340
  });
7138
- _script($scope1_id, "l3");
7341
+ _script($scope1_id, "o3");
7139
7342
  _subscribe($value__closures, _subscribe($si__input_submitLabel && $input_submitLabel__closures, writeScope($scope1_id, { _: _scope_with_id($scope0_id) })));
7140
7343
  _resume_branch($scope1_id);
7141
7344
  }, $scope0_id) }),
7142
- content: _content("l6", () => {
7345
+ content: _content("o6", () => {
7143
7346
  _scope_reason();
7144
7347
  const $scope2_id = _scope_id();
7145
- _html(`<h2 class=prompt-title>${_escape(input.label)}${_el_resume($scope2_id, "a", _serialize_guard($scope0_reason, 1))}</h2><input${_attr_input_value($scope2_id, "b", value, _resume((_new_value) => {
7348
+ _html(`<h2 class=prompt-title${_attr("id", titleId)}>${_escape(input.label)}${_el_resume($scope2_id, "b", $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
7146
7349
  value = _new_value;
7147
- }, "l0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "b")}`);
7148
- _script($scope2_id, "l4");
7350
+ }, "o0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
7351
+ _script($scope2_id, "o4");
7149
7352
  _subscribe($value__closures, _subscribe($si__input_placeholder && $input_placeholder__closures, _subscribe($si__input_label && $input_label__closures, _subscribe($modalview_content__subscribers, writeScope($scope2_id, {
7150
7353
  _: _scope_with_id($scope0_id),
7151
- Cq: 1
7354
+ Cs: 1
7152
7355
  })))));
7153
7356
  _resume_branch($scope2_id);
7154
7357
  })
7155
7358
  });
7156
- _script($scope0_id, "l7");
7359
+ _script($scope0_id, "o7");
7157
7360
  writeScope($scope0_id, {
7158
- e: input.onSubmit,
7159
- h: input.openChange,
7160
- i: input.submitLabel,
7161
- k: value,
7162
- m: submit,
7361
+ d: _serialize_if($scope0_reason, 2) && input.open,
7362
+ e: _serialize_if($scope0_reason, 1) && input.openChange,
7363
+ h: input.onSubmit,
7364
+ j: input.submitLabel,
7365
+ l: value,
7366
+ n: submit,
7163
7367
  B2: $modalview_content__subscribers,
7164
- o: $si__input_submitLabel && $input_submitLabel__closures,
7165
- q: $value__closures,
7166
- n: $si__input_label && $input_label__closures,
7167
- p: $si__input_placeholder && $input_placeholder__closures,
7368
+ k: input.openChange || void 0,
7369
+ q: $si__input_submitLabel && $input_submitLabel__closures,
7370
+ s: $value__closures,
7371
+ p: $si__input_label && $input_label__closures,
7372
+ r: $si__input_placeholder && $input_placeholder__closures,
7168
7373
  a: _serialize_if($scope0_reason, 0) && _existing_scope($childScope)
7169
7374
  });
7170
7375
  _resume_branch($scope0_id);
@@ -7173,7 +7378,7 @@ var prompt_dialog_default = _template("l", (input) => {
7173
7378
  //#region src/tags/work-view.marko
7174
7379
  var api$1;
7175
7380
  var isTransientApiError$1;
7176
- var work_view_default = _template("s", (input) => {
7381
+ var work_view_default = _template("w", (input) => {
7177
7382
  const $scope0_reason = _scope_reason(), $sg__input_agents = _serialize_guard($scope0_reason, 8), $sg__input_workspace = _serialize_guard($scope0_reason, 2), $si__input_workspace = _serialize_if($scope0_reason, 2), $si__input_active = _serialize_if($scope0_reason, 4), $si__input_agents = _serialize_if($scope0_reason, 8), $si__input_preferred = _serialize_if($scope0_reason, 5);
7178
7383
  const $scope0_id = _scope_id();
7179
7384
  const $error__closures = /* @__PURE__ */ new Set();
@@ -7203,7 +7408,7 @@ var work_view_default = _template("s", (input) => {
7203
7408
  focusPr = pr || "";
7204
7409
  if (pr) focusNonce++;
7205
7410
  view = "diff";
7206
- }, "s0", $scope0_id);
7411
+ }, "w0", $scope0_id);
7207
7412
  const shownSessions = sessions ?? input.allStatus?.[ws.id]?.sessions ?? null;
7208
7413
  const curTab = (() => {
7209
7414
  if (tab && shownSessions?.some((s) => s.id === tab)) return tab;
@@ -7230,7 +7435,7 @@ var work_view_default = _template("s", (input) => {
7230
7435
  } finally {
7231
7436
  spawning = false;
7232
7437
  }
7233
- }, "s1", $scope0_id);
7438
+ }, "w1", $scope0_id);
7234
7439
  const loadMem = {
7235
7440
  wanted: false,
7236
7441
  run: void 0
@@ -7253,11 +7458,11 @@ var work_view_default = _template("s", (input) => {
7253
7458
  if (isTransientApiError$1(err)) return;
7254
7459
  error = String(err.message || err);
7255
7460
  }
7256
- }, "s2", $scope0_id);
7461
+ }, "w2", $scope0_id);
7257
7462
  const loadSessions = _resume((autoCreate) => {
7258
7463
  if (autoCreate) loadMem.wanted = true;
7259
7464
  return (loadMem.run ??= coalesce(loadBody))();
7260
- }, "s3", $scope0_id);
7465
+ }, "w3", $scope0_id);
7261
7466
  const closeSession = _resume(async (id) => {
7262
7467
  try {
7263
7468
  await api$1(`/api/sessions/${id}`, { method: "DELETE" });
@@ -7266,7 +7471,7 @@ var work_view_default = _template("s", (input) => {
7266
7471
  } catch (err) {
7267
7472
  error = `Kill session failed: ${String(err.message || err)}`;
7268
7473
  }
7269
- }, "s4", $scope0_id);
7474
+ }, "w4", $scope0_id);
7270
7475
  const renameSession = _resume(async (id, title) => {
7271
7476
  title = title.trim();
7272
7477
  if (!title) return;
@@ -7279,7 +7484,7 @@ var work_view_default = _template("s", (input) => {
7279
7484
  headers: { "content-type": "application/json" },
7280
7485
  body: JSON.stringify({ title })
7281
7486
  });
7282
- }, "s5", $scope0_id);
7487
+ }, "w5", $scope0_id);
7283
7488
  const newSession = _resume(async (wsId, agent) => {
7284
7489
  if (wsId === ws.id) {
7285
7490
  const session = await createSession(agent, true);
@@ -7296,10 +7501,10 @@ var work_view_default = _template("s", (input) => {
7296
7501
  } catch (err) {
7297
7502
  error = String(err.message || err);
7298
7503
  }
7299
- }, "s6", $scope0_id);
7504
+ }, "w6", $scope0_id);
7300
7505
  const promptRename = _resume((s) => {
7301
7506
  renaming = s;
7302
- }, "s7", $scope0_id);
7507
+ }, "w7", $scope0_id);
7303
7508
  _html("<div class=work-view>");
7304
7509
  _set_serialize_reason({
7305
7510
  0: _serialize_guard($scope0_reason, 0),
@@ -7326,40 +7531,40 @@ var work_view_default = _template("s", (input) => {
7326
7531
  tab: curTab,
7327
7532
  tabChange: _resume(function(id) {
7328
7533
  tab = id;
7329
- }, "s8", $scope0_id),
7534
+ }, "w8", $scope0_id),
7330
7535
  view,
7331
7536
  viewChange: _resume((_new_view) => {
7332
7537
  view = _new_view;
7333
- }, "s9", $scope0_id),
7538
+ }, "w9", $scope0_id),
7334
7539
  drawerOpen,
7335
7540
  drawerOpenChange: _resume((_new_drawerOpen) => {
7336
7541
  drawerOpen = _new_drawerOpen;
7337
- }, "s10", $scope0_id),
7542
+ }, "w10", $scope0_id),
7338
7543
  allWorkspaces: input.allWorkspaces,
7339
7544
  allStatus: input.allStatus,
7340
7545
  agents: input.agents,
7341
7546
  onError: _resume(function(message) {
7342
7547
  error = message;
7343
- }, "s11", $scope0_id),
7548
+ }, "w11", $scope0_id),
7344
7549
  onSelectWorkspace: input.onSelectWorkspace,
7345
7550
  onOpenSession: input.onOpenSession,
7346
7551
  onManage: input.onManage,
7347
7552
  onNew: input.onNew,
7348
7553
  onUsage: _resume(function() {
7349
7554
  usageOpen = true;
7350
- }, "s12", $scope0_id),
7555
+ }, "w12", $scope0_id),
7351
7556
  onNewSession: _resume(function(wsId, agent) {
7352
7557
  newSession(wsId, agent);
7353
- }, "s13", $scope0_id),
7558
+ }, "w13", $scope0_id),
7354
7559
  onCloseSession: _resume(function(id) {
7355
7560
  closeSession(id);
7356
- }, "s14", $scope0_id),
7561
+ }, "w14", $scope0_id),
7357
7562
  onRenameSession: _resume(function(s) {
7358
7563
  promptRename(s);
7359
- }, "s15", $scope0_id),
7564
+ }, "w15", $scope0_id),
7360
7565
  onReviewOpened: _resume(function(pr) {
7361
7566
  openDiff(pr);
7362
- }, "s16", $scope0_id)
7567
+ }, "w16", $scope0_id)
7363
7568
  });
7364
7569
  _html("<div class=main-col>");
7365
7570
  _if(() => {
@@ -7368,8 +7573,8 @@ var work_view_default = _template("s", (input) => {
7368
7573
  toast_default({
7369
7574
  onDismiss: _resume(function() {
7370
7575
  error = null;
7371
- }, "s17", $scope5_id),
7372
- content: _content_resume("s31", () => {
7576
+ }, "w17", $scope5_id),
7577
+ content: _content_resume("w31", () => {
7373
7578
  _scope_reason();
7374
7579
  const $scope6_id = _scope_id();
7375
7580
  _html(`${_escape(error)}${_el_resume($scope6_id, "a")}`);
@@ -7383,7 +7588,7 @@ var work_view_default = _template("s", (input) => {
7383
7588
  }, $scope0_id, "c", 1, 1, 1, 0, 1);
7384
7589
  const $show = view === "diff";
7385
7590
  _show_start($show, 1);
7386
- _set_serialize_reason(26);
7591
+ _set_serialize_reason(4);
7387
7592
  const $childScope2 = _peek_scope_id();
7388
7593
  diff_view_default({
7389
7594
  workspaceId: ws.id,
@@ -7394,10 +7599,10 @@ var work_view_default = _template("s", (input) => {
7394
7599
  onSent: _resume(function(sessionId) {
7395
7600
  tab = sessionId;
7396
7601
  view = "term";
7397
- }, "s18", $scope0_id),
7602
+ }, "w18", $scope0_id),
7398
7603
  onExit: _resume(function() {
7399
7604
  view = "term";
7400
- }, "s19", $scope0_id)
7605
+ }, "w19", $scope0_id)
7401
7606
  });
7402
7607
  _show_end($scope0_id, "g", $show);
7403
7608
  _html(`<div class=${view === "diff" ? "\"term-area as-bar\"" : "term-area"}>`);
@@ -7436,31 +7641,31 @@ var work_view_default = _template("s", (input) => {
7436
7641
  sessions: shownSessions,
7437
7642
  onNewSession: _resume(function(agent) {
7438
7643
  newSession(ws.id, agent);
7439
- }, "s20", $scope2_id),
7644
+ }, "w20", $scope2_id),
7440
7645
  onOpenTab: _resume(function(id) {
7441
7646
  tab = id;
7442
- }, "s21", $scope2_id),
7647
+ }, "w21", $scope2_id),
7443
7648
  onCloseSession: _resume(function(id) {
7444
7649
  closeSession(id);
7445
- }, "s22", $scope2_id),
7650
+ }, "w22", $scope2_id),
7446
7651
  onRenameSession: _resume(function(id) {
7447
7652
  const target = (shownSessions || []).find((x) => x.id === id);
7448
7653
  if (target) renaming = target;
7449
- }, "s23", $scope2_id),
7654
+ }, "w23", $scope2_id),
7450
7655
  active: input.active && view === "term" && s.id === curTab,
7451
7656
  mode: view,
7452
7657
  onToggleDiff: _resume(function() {
7453
7658
  openDiff();
7454
- }, "s24", $scope2_id),
7659
+ }, "w24", $scope2_id),
7455
7660
  onExitReview: _resume(function() {
7456
7661
  view = "term";
7457
- }, "s25", $scope2_id),
7662
+ }, "w25", $scope2_id),
7458
7663
  onOpenNav: _resume(function() {
7459
7664
  drawerOpen = true;
7460
- }, "s26", $scope2_id),
7665
+ }, "w26", $scope2_id),
7461
7666
  onManage: _resume(function() {
7462
7667
  input.onManage?.(ws.id);
7463
- }, "s27", $scope2_id)
7668
+ }, "w27", $scope2_id)
7464
7669
  });
7465
7670
  _show_end($scope2_id, "d", $show2);
7466
7671
  _subscribe($newSession2__closures, _subscribe($closeSession2__closures, _subscribe($curTab__closures, _subscribe($shownSessions__closures, _subscribe($si__input_workspace && $ws_name__closures, _subscribe($si__input_workspace && $ws_id__closures, _subscribe($view__closures, _subscribe($si__input_agents && $input_agents__closures, _subscribe($si__input_active && $input_active__closures, writeScope($scope2_id, {
@@ -7472,7 +7677,7 @@ var work_view_default = _template("s", (input) => {
7472
7677
  if (!shownSessions.length) {
7473
7678
  const $scope3_id = _scope_id();
7474
7679
  _html(`<div class=empty-sess><p class=dim>No sessions in this workspace.</p><button class="btn primary"${_attr("disabled", spawning)}>${spawning ? "Starting…" : `Start ${_escape(`${input.preferred || "claude"}`)}`}${_el_resume($scope3_id, "b")}</button>${_el_resume($scope3_id, "a")}</div>`);
7475
- _script($scope3_id, "s32");
7680
+ _script($scope3_id, "w32");
7476
7681
  _subscribe($spawning__closures, _subscribe($si__input_preferred && $input_preferred__closures, writeScope($scope3_id, {})));
7477
7682
  return 0;
7478
7683
  }
@@ -7496,7 +7701,7 @@ var work_view_default = _template("s", (input) => {
7496
7701
  open: usageOpen,
7497
7702
  openChange: _resume((_new_usageOpen) => {
7498
7703
  usageOpen = _new_usageOpen;
7499
- }, "s28", $scope4_id)
7704
+ }, "w28", $scope4_id)
7500
7705
  });
7501
7706
  writeScope($scope4_id, { a: _existing_scope($childScope4) });
7502
7707
  return 0;
@@ -7505,7 +7710,7 @@ var work_view_default = _template("s", (input) => {
7505
7710
  _if(() => {
7506
7711
  if (renaming) {
7507
7712
  const $scope7_id = _scope_id();
7508
- _set_serialize_reason(10);
7713
+ _set_serialize_reason(6);
7509
7714
  const $childScope5 = _peek_scope_id();
7510
7715
  prompt_dialog_default({
7511
7716
  label: "Rename session",
@@ -7514,21 +7719,21 @@ var work_view_default = _template("s", (input) => {
7514
7719
  open: !!renaming,
7515
7720
  openChange: _resume(function(v) {
7516
7721
  if (!v) renaming = null;
7517
- }, "s29", $scope7_id),
7722
+ }, "w29", $scope7_id),
7518
7723
  onSubmit: _resume(function(title) {
7519
7724
  renameSession(renaming.id, title);
7520
7725
  renaming = null;
7521
- }, "s30", $scope7_id)
7726
+ }, "w30", $scope7_id)
7522
7727
  });
7523
7728
  writeScope($scope7_id, { a: _existing_scope($childScope5) });
7524
7729
  return 0;
7525
7730
  }
7526
7731
  }, $scope0_id, "j", 1, 1, 1, 0, 1);
7527
7732
  _html(`</div>${_el_resume($scope0_id, "a")}`);
7528
- _script($scope0_id, "s33");
7529
- _script($scope0_id, "s34");
7530
- _script($scope0_id, "s35");
7531
- _script($scope0_id, "s36");
7733
+ _script($scope0_id, "w33");
7734
+ _script($scope0_id, "w34");
7735
+ _script($scope0_id, "w35");
7736
+ _script($scope0_id, "w36");
7532
7737
  writeScope($scope0_id, {
7533
7738
  n: input.allStatus,
7534
7739
  o: input.active,
@@ -7689,7 +7894,7 @@ var _page_default = _template("b", (input) => {
7689
7894
  writeScope($scope6_id, {});
7690
7895
  return 0;
7691
7896
  }
7692
- }, $scope0_id, "a", 1, 1, 1, 0, 1);
7897
+ }, $scope0_id, "b", 1, 1, 1, 0, 1);
7693
7898
  _if(() => {
7694
7899
  if (!loaded) {
7695
7900
  const $scope8_id = _scope_id();
@@ -7699,7 +7904,7 @@ var _page_default = _template("b", (input) => {
7699
7904
  const $scope9_id = _scope_id();
7700
7905
  _html(`<p>${_escape(error)}${_el_resume($scope9_id, "a")}</p><button class=btn>Retry</button>${_el_resume($scope9_id, "b")}`);
7701
7906
  _script($scope9_id, "b20");
7702
- _subscribe($error__closures, writeScope($scope9_id, { Caf: 1 }));
7907
+ _subscribe($error__closures, writeScope($scope9_id, { Cag: 1 }));
7703
7908
  return 0;
7704
7909
  } else {
7705
7910
  const $scope10_id = _scope_id();
@@ -7711,11 +7916,11 @@ var _page_default = _template("b", (input) => {
7711
7916
  writeScope($scope8_id, {});
7712
7917
  return 0;
7713
7918
  }
7714
- }, $scope0_id, "b", 1, 1, 1, 0, 1);
7919
+ }, $scope0_id, "c", 1, 1, 1, 0, 1);
7715
7920
  _if(() => {
7716
7921
  if (paletteOpen || showInlinePalette) {
7717
7922
  const $scope1_id = _scope_id();
7718
- _set_serialize_reason(1);
7923
+ _set_serialize_reason(3910);
7719
7924
  const $childScope = _peek_scope_id();
7720
7925
  palette_default({
7721
7926
  workspaces,
@@ -7723,7 +7928,7 @@ var _page_default = _template("b", (input) => {
7723
7928
  settings,
7724
7929
  selectedId,
7725
7930
  inline: !paletteOpen && showInlinePalette,
7726
- onSettings: _resume(function(s) {
7931
+ settingsChange: _resume(function(s) {
7727
7932
  settings = s;
7728
7933
  }, "b4", $scope1_id),
7729
7934
  onSelect: _resume(function(ws) {
@@ -7755,6 +7960,7 @@ var _page_default = _template("b", (input) => {
7755
7960
  creating = true;
7756
7961
  paletteOpen = false;
7757
7962
  }, "b9", $scope1_id),
7963
+ open: paletteOpen,
7758
7964
  openChange: _resume((_new_paletteOpen) => {
7759
7965
  paletteOpen = _new_paletteOpen;
7760
7966
  }, "b10", $scope1_id)
@@ -7762,11 +7968,11 @@ var _page_default = _template("b", (input) => {
7762
7968
  writeScope($scope1_id, { a: _existing_scope($childScope) });
7763
7969
  return 0;
7764
7970
  }
7765
- }, $scope0_id, "c");
7971
+ }, $scope0_id, "d");
7766
7972
  _if(() => {
7767
7973
  if (managing) {
7768
7974
  const $scope2_id = _scope_id();
7769
- _set_serialize_reason(10);
7975
+ _set_serialize_reason(22);
7770
7976
  const $childScope2 = _peek_scope_id();
7771
7977
  manage_workspace_default({
7772
7978
  workspace: managing,
@@ -7774,14 +7980,14 @@ var _page_default = _template("b", (input) => {
7774
7980
  openChange: _resume(function(v) {
7775
7981
  if (!v) managingId = null;
7776
7982
  }, "b11", $scope2_id),
7777
- onChange: _resume(function(ws) {
7983
+ workspaceChange: _resume(function(ws) {
7778
7984
  workspaces = workspaces.map((w) => w.id === ws.id ? ws : w);
7779
7985
  }, "b12", $scope2_id)
7780
7986
  });
7781
7987
  writeScope($scope2_id, { a: _existing_scope($childScope2) });
7782
7988
  return 0;
7783
7989
  }
7784
- }, $scope0_id, "d", 1, 1, 1, 0, 1);
7990
+ }, $scope0_id, "e", 1, 1, 1, 0, 1);
7785
7991
  _if(() => {
7786
7992
  if (creating) {
7787
7993
  const $scope3_id = _scope_id();
@@ -7801,7 +8007,7 @@ var _page_default = _template("b", (input) => {
7801
8007
  writeScope($scope3_id, { a: _existing_scope($childScope3) });
7802
8008
  return 0;
7803
8009
  }
7804
- }, $scope0_id, "e", 1, 1, 1, 0, 1);
8010
+ }, $scope0_id, "f", 1, 1, 1, 0, 1);
7805
8011
  _for_of(openIds, (id) => {
7806
8012
  const $scope4_id = _scope_id();
7807
8013
  const ws = workspaces.find((w) => w.id === id);
@@ -7844,36 +8050,37 @@ var _page_default = _template("b", (input) => {
7844
8050
  e: ws,
7845
8051
  f: ws?.id
7846
8052
  });
7847
- }, (id) => id, $scope0_id, "f");
7848
- _html("</main>");
8053
+ }, (id) => id, $scope0_id, "g");
8054
+ _html(`</main>${_el_resume($scope0_id, "a")}`);
7849
8055
  _script($scope0_id, "b21");
8056
+ _script($scope0_id, "b22");
7850
8057
  writeScope($scope0_id, {
7851
- g: workspaces,
7852
- h: status,
7853
- i: settings,
7854
- j: loaded,
7855
- k: selectedId,
7856
- m: openIds,
7857
- p: creating,
7858
- q: managingId,
7859
- s: paletteOpen,
7860
- t: error,
7861
- v: load,
7862
- x: statusMem.fresh,
7863
- y: statusMem.run,
7864
- a0: loadStatus,
7865
- a1: openWorkspace,
7866
- a3: selected,
7867
- a5: managing,
7868
- a6: showInlinePalette,
7869
- af: $error__closures,
7870
- a8: $workspaces__closures,
7871
- a9: $status__closures,
7872
- aa: $settings__closures,
7873
- ab: $selectedId__closures,
7874
- ac: $creating__closures,
7875
- ag: $openWorkspace2__closures,
7876
- ah: $managing__closures
8058
+ h: workspaces,
8059
+ i: status,
8060
+ j: settings,
8061
+ k: loaded,
8062
+ l: selectedId,
8063
+ n: openIds,
8064
+ q: creating,
8065
+ r: managingId,
8066
+ t: paletteOpen,
8067
+ u: error,
8068
+ w: load,
8069
+ y: statusMem.fresh,
8070
+ z: statusMem.run,
8071
+ a1: loadStatus,
8072
+ a2: openWorkspace,
8073
+ a4: selected,
8074
+ a6: managing,
8075
+ a7: showInlinePalette,
8076
+ ag: $error__closures,
8077
+ a9: $workspaces__closures,
8078
+ aa: $status__closures,
8079
+ ab: $settings__closures,
8080
+ ac: $selectedId__closures,
8081
+ ad: $creating__closures,
8082
+ ah: $openWorkspace2__closures,
8083
+ ai: $managing__closures
7877
8084
  });
7878
8085
  _resume_branch($scope0_id);
7879
8086
  });
@@ -16553,10 +16760,12 @@ async function computeStatus() {
16553
16760
  return Object.fromEntries(entries);
16554
16761
  }
16555
16762
  async function repoStatus(ws, repo, foreign) {
16556
- const repoPrs = await workspacePrs(repo.full_name, ws.branch, foreign).then((list) => list.filter((pr) => pr.state === "OPEN"));
16763
+ const dir = path.join(ws.path, repo.worktree);
16764
+ const [repoPrs, localHead] = await Promise.all([workspacePrs(repo.full_name, ws.branch, foreign).then((list) => list.filter((pr) => pr.state === "OPEN")), git(["rev-parse", "HEAD"], dir).catch(() => "")]);
16557
16765
  return {
16558
16766
  full_name: repo.full_name,
16559
16767
  worktree: repo.worktree,
16768
+ ...localHead && { localHead },
16560
16769
  prs: repoPrs
16561
16770
  };
16562
16771
  }
@@ -22107,4 +22316,4 @@ server.listen(port, () => {
22107
22316
  //#endregion
22108
22317
  export {};
22109
22318
 
22110
- ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-D2S6Vhpc.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-D2S6Vhpc.css\"",">"],"defer":[2,"/assets/index-BuAiuld1.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-BuAiuld1.js\"","></script>"]}};
22319
+ ;var __MARKO_MANIFEST__={"esfPH6H":{"block":[2,"stylesheet#/assets/index-Cl8B5MV1.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/index-Cl8B5MV1.css\"",">"],"defer":[2,"/assets/index-ChgwxyPj.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/index-ChgwxyPj.js\"","></script>"]}};