@dylanpiercey/work 0.0.158 → 0.0.159

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 (71) hide show
  1. package/dist/index.mjs +509 -1984
  2. package/dist/public/assets/_BEMlWJ3i.js +1 -0
  3. package/dist/public/assets/_BF3jdOKL.js +1 -0
  4. package/dist/public/assets/_BN2MNMec.js +1 -0
  5. package/dist/public/assets/_BX85X6vL.js +1 -0
  6. package/dist/public/assets/_BgTyVBoz.js +1 -0
  7. package/dist/public/assets/_BtPnCFTI.js +1 -0
  8. package/dist/public/assets/_C62EU_76.js +1 -0
  9. package/dist/public/assets/_C9t1K6t0.js +1 -0
  10. package/dist/public/assets/_CV1AUMfT.js +1 -0
  11. package/dist/public/assets/_DONc62ot.js +1 -0
  12. package/dist/public/assets/_DQxAgIZ5.js +1 -0
  13. package/dist/public/assets/_DRrf0ps3.js +1 -0
  14. package/dist/public/assets/_DUwNzfo2.js +1 -0
  15. package/dist/public/assets/{_DUDy5h6R.js → _DgrVjbbj.js} +20 -20
  16. package/dist/public/assets/_DgrVjbbj.js.br +0 -0
  17. package/dist/public/assets/_DliuBq2F.js +1 -0
  18. package/dist/public/assets/_DrrcCvtP.js +1 -0
  19. package/dist/public/assets/_DrrcCvtP.js.br +0 -0
  20. package/dist/public/assets/_Dt9shJET.js +1 -0
  21. package/dist/public/assets/{_BxabbFws.js → _DzlXAMSp.js} +45 -45
  22. package/dist/public/assets/_DzlXAMSp.js.br +0 -0
  23. package/dist/public/assets/_KbIm5gXb.js +1 -0
  24. package/dist/public/assets/_kP4m5eyY.js +1 -0
  25. package/dist/public/assets/_kRAx7xJD.js +1 -0
  26. package/dist/public/assets/_wGg-Flxh.js +1 -0
  27. package/dist/public/assets/{app-page-LdxNfDbr.css → app-page-DkJHV2Hb.css} +1 -1
  28. package/dist/public/assets/app-page-DkJHV2Hb.css.br +0 -0
  29. package/dist/public/assets/diff-view-B7Akkn43.js +2 -0
  30. package/dist/public/assets/{diff-view-E8jVfABq.css → diff-view-D_kTcxOl.css} +1 -1
  31. package/dist/public/assets/diff-view-D_kTcxOl.css.br +0 -0
  32. package/dist/public/assets/{icon-arrow-down-Bh8nsodJ.css → icon-arrow-down-ptjlirxL.css} +1 -1
  33. package/dist/public/assets/icon-arrow-down-ptjlirxL.css.br +0 -0
  34. package/dist/public/assets/new-CjRAL7y8.js +1 -0
  35. package/dist/public/assets/settings-CjRAL7y8.js +1 -0
  36. package/dist/public/assets/w-CjRAL7y8.js +1 -0
  37. package/dist/public/assets/w._-CjRAL7y8.js +1 -0
  38. package/dist/public/assets/w._-DvPeuuNc.js +1 -0
  39. package/package.json +1 -1
  40. package/dist/public/assets/_1uIdjVuP.js +0 -1
  41. package/dist/public/assets/_B5WqV19M.js +0 -1
  42. package/dist/public/assets/_BNuUCPGS.js +0 -1
  43. package/dist/public/assets/_BOfssVLv.js +0 -1
  44. package/dist/public/assets/_BxIcsysD.js +0 -1
  45. package/dist/public/assets/_BxabbFws.js.br +0 -0
  46. package/dist/public/assets/_C26sXSBM.js +0 -1
  47. package/dist/public/assets/_CDcWSPQn.js +0 -1
  48. package/dist/public/assets/_Cbu4AbsN.js +0 -1
  49. package/dist/public/assets/_Cbu4AbsN.js.br +0 -0
  50. package/dist/public/assets/_Cc9DbAYY.js +0 -1
  51. package/dist/public/assets/_Co6pRCsQ.js +0 -1
  52. package/dist/public/assets/_CoptvGxA.js +0 -1
  53. package/dist/public/assets/_DAh4Jg7Y.js +0 -1
  54. package/dist/public/assets/_DDCSqngu.js +0 -1
  55. package/dist/public/assets/_DEaIhIVb.js +0 -1
  56. package/dist/public/assets/_DFqtdaJl.js +0 -1
  57. package/dist/public/assets/_DUDy5h6R.js.br +0 -0
  58. package/dist/public/assets/_Dms-dGSD.js +0 -1
  59. package/dist/public/assets/_Dw0cv1OC.js +0 -1
  60. package/dist/public/assets/_Qvk4_rZ1.js +0 -1
  61. package/dist/public/assets/_bF5nF4E4.js +0 -1
  62. package/dist/public/assets/_iA6UTJX5.js +0 -1
  63. package/dist/public/assets/app-page-LdxNfDbr.css.br +0 -0
  64. package/dist/public/assets/diff-view-BPU5rMei.js +0 -2
  65. package/dist/public/assets/diff-view-E8jVfABq.css.br +0 -0
  66. package/dist/public/assets/icon-arrow-down-Bh8nsodJ.css.br +0 -0
  67. package/dist/public/assets/new-Cz4e5lzk.js +0 -1
  68. package/dist/public/assets/settings-Cz4e5lzk.js +0 -1
  69. package/dist/public/assets/w-Cz4e5lzk.js +0 -1
  70. package/dist/public/assets/w._-AQhK6cKs.js +0 -1
  71. package/dist/public/assets/w._-Cz4e5lzk.js +0 -1
package/dist/index.mjs CHANGED
@@ -6697,13 +6697,13 @@ var _layout_default = _template("a", (input) => {
6697
6697
  * A lost events socket alone does not count — polling keeps the app live,
6698
6698
  * so the "Reconnecting…" pill stays quiet for bus-only blips. */
6699
6699
  var reachable = true;
6700
- var listeners = /* @__PURE__ */ new Set();
6700
+ var listeners$1 = /* @__PURE__ */ new Set();
6701
6701
  /** Notify only on change: the pill's grace-period timer restarts on every
6702
6702
  * `false` it hears, which would keep it permanently armed. */
6703
6703
  function setReachable(next) {
6704
6704
  if (reachable === next) return;
6705
6705
  reachable = next;
6706
- for (const fn of listeners) fn(next);
6706
+ for (const fn of listeners$1) fn(next);
6707
6707
  }
6708
6708
  //#endregion
6709
6709
  //#region src/client/session.ts
@@ -7185,6 +7185,7 @@ function setTheme(mode) {
7185
7185
  //#region src/client/theme.ts
7186
7186
  var LIGHT_CHROME = "#fafafa";
7187
7187
  var DARK_CHROME = "#131316";
7188
+ var listeners = /* @__PURE__ */ new Set();
7188
7189
  /** Force light/dark, or clear to follow the OS. The layout declares
7189
7190
  * `:root[data-theme=…] { color-scheme: … }`; native `light-dark()` and the
7190
7191
  * bundler's polyfill both key off that. */
@@ -7194,6 +7195,7 @@ function applyTheme(mode) {
7194
7195
  if (mode === "system") root.removeAttribute("data-theme");
7195
7196
  else root.setAttribute("data-theme", mode);
7196
7197
  syncThemeColorMetas(mode, root.style.getPropertyValue("--accent").trim() || "");
7198
+ for (const listener of listeners) listener(mode);
7197
7199
  }
7198
7200
  /** Rebuild theme-color metas for the current force (or both media queries
7199
7201
  * when following the system). Accent, when set, still paints the chrome. */
@@ -7267,18 +7269,18 @@ function applyInstance(inst) {
7267
7269
  if (icon) icon.href = `/api/instance/icon${inst.accent ? `?v=${inst.accent.slice(1)}` : ""}`;
7268
7270
  syncThemeColorMetas(theme(), inst.accent || "");
7269
7271
  }
7270
- var agentList = "_cY _ck _cL _cW";
7271
- var agentRow = "_c2 _cM";
7272
- var toolGrid = "_c_ _cW";
7273
- var toolRow = "_da _cX";
7274
- var themeSeg = "_dy _be";
7275
- var checkList = "_d4 _ci";
7276
- var list$2 = "_cY _ck _cL _cW";
7277
- var flatCardRow = "_cZ _cX";
7278
- var pop$1 = "_cH __";
7279
- var spinner = "_cK _2 _G";
7280
- var busy = "_cx _cw";
7281
- var pop = "_cz __";
7272
+ var agentList = "_ed _ck _d1 _eb";
7273
+ var agentRow = "_fA _d2";
7274
+ var toolGrid = "_fI _eb";
7275
+ var toolRow = "_fJ _ec";
7276
+ var themeSeg = "_f7 _be";
7277
+ var checkList = "_gC _ci";
7278
+ var list$2 = "_ed _ck _d1 _eb";
7279
+ var flatCardRow = "_ee _ec";
7280
+ var pop$1 = "_fu __";
7281
+ var spinner = "_fx _2 _G";
7282
+ var busy = "_fk _fj";
7283
+ var pop = "_fm __";
7282
7284
  var sectionCount = "_ch _N _O";
7283
7285
  var iconBtn$1 = "_5 _l";
7284
7286
  //#endregion
@@ -7320,18 +7322,18 @@ var icon_back_default = _template("R", (input) => {
7320
7322
  var page_head_default = _template("u", (input) => {
7321
7323
  const $scope0_reason = _scope_reason(), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions = _serialize_guard($scope0_reason, 3), $sg__input_meta = _serialize_guard($scope0_reason, 6), $sg__input_actions = _serialize_guard($scope0_reason, 7), $si__input_backHref__OR__input_onBack = _serialize_if($scope0_reason, 1), $si__input_meta = _serialize_if($scope0_reason, 6), $si__input_actions = _serialize_if($scope0_reason, 7);
7322
7324
  const $scope0_id = _scope_id();
7323
- _html(`<header${_attr_class("_ea")}>`);
7325
+ _html(`<header${_attr_class("_dW")}>`);
7324
7326
  _if(() => {
7325
7327
  if (input.backHref) {
7326
7328
  const $scope1_id = _scope_id();
7327
- _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_gY"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
7329
+ _html(`<a${_attr("href", input.backHref)}${_attr_class([iconBtnRow, "_gM"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
7328
7330
  icon_back_default({ size: 14 });
7329
7331
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 0))}`);
7330
7332
  _serialize_if($scope0_reason, 2) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 0) && _scope_with_id($scope0_id) });
7331
7333
  return 0;
7332
7334
  } else if (input.onBack) {
7333
7335
  const $scope2_id = _scope_id();
7334
- _html(`<button${_attr_class([iconBtnRow, "_gY"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
7336
+ _html(`<button${_attr_class([iconBtnRow, "_gM"])}${_attr_or("title", input.backTitle, " title=\"Back (Esc)\"")}${_attr_or("aria-label", input.backTitle, " aria-label=Back")}>`);
7335
7337
  icon_back_default({ size: 14 });
7336
7338
  _html(`</button>${_el_resume($scope2_id, "a")}`);
7337
7339
  _script($scope2_id, "u0");
@@ -7339,11 +7341,11 @@ var page_head_default = _template("u", (input) => {
7339
7341
  return 1;
7340
7342
  }
7341
7343
  }, $scope0_id, "b", _serialize_guard($scope0_reason, 2), _serialize_guard($scope0_reason, 1), $sg__input_backHref__OR__input_onBack__OR__input_meta__OR__input_actions, 0, 1);
7342
- _html(`<div${_attr_class("_ec")}><h1${_attr("id", input.titleId)}${_attr_class("_eb")}>${_text_resume($scope0_id, "e", input.title, _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
7344
+ _html(`<div${_attr_class("_dY")}><h1${_attr("id", input.titleId)}${_attr_class("_dX")}>${_text_resume($scope0_id, "e", input.title, _serialize_guard($scope0_reason, 5))}</h1>${_el_resume($scope0_id, "d", _serialize_guard($scope0_reason, 4))}`);
7343
7345
  _if(() => {
7344
7346
  if (input.meta) {
7345
7347
  const $scope3_id = _scope_id();
7346
- _html(`<p${_attr_class("_ed")}>`);
7348
+ _html(`<p${_attr_class("_dZ")}>`);
7347
7349
  _dynamic_tag($scope3_id, "b", input.meta, {}, 0, 0, $sg__input_meta);
7348
7350
  _html("</p>");
7349
7351
  $si__input_meta && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
@@ -7354,7 +7356,7 @@ var page_head_default = _template("u", (input) => {
7354
7356
  _if(() => {
7355
7357
  if (input.actions) {
7356
7358
  const $scope4_id = _scope_id();
7357
- _html(`<div${_attr_class("_ee")}>`);
7359
+ _html(`<div${_attr_class("_d0")}>`);
7358
7360
  _dynamic_tag($scope4_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
7359
7361
  _html("</div>");
7360
7362
  $si__input_actions && writeScope($scope4_id, { _: _scope_with_id($scope0_id) });
@@ -7422,7 +7424,7 @@ var icon_agent_default = _template("L", (input) => {
7422
7424
  n: $badge__closures
7423
7425
  });
7424
7426
  });
7425
- var usageNote = "_ha _X";
7427
+ var usageNote = "_hc _X";
7426
7428
  //#endregion
7427
7429
  //#region src/tags/icons/icon-warning.marko
7428
7430
  var icon_warning_default = _template("sb", (input) => {
@@ -7452,11 +7454,11 @@ var usage_meters_default = _template("H", (input) => {
7452
7454
  const $scope0_reason = _scope_reason(), $sg__input_agent__OR__input_hideName = _serialize_guard($scope0_reason, 0), $sg__input_agent = _serialize_guard($scope0_reason, 1), $si__input_agent = _serialize_if($scope0_reason, 1), $sg__input_hideName = _serialize_guard($scope0_reason, 2), $si__input_agent__OR__input_hideName = _serialize_if($scope0_reason, 0);
7453
7455
  const $scope0_id = _scope_id();
7454
7456
  const agent = input.agent;
7455
- _html(`<div${_attr_class(["_g5", { ["_g6"]: input.hideName }])}><div${_attr_class("_g7")}>`);
7457
+ _html(`<div${_attr_class(["_g7", { ["_g8"]: input.hideName }])}><div${_attr_class("_g9")}>`);
7456
7458
  _if(() => {
7457
7459
  if (!input.hideName) {
7458
7460
  const $scope1_id = _scope_id();
7459
- _html(`<strong${_attr_class("_hp")}>${_text_resume($scope1_id, "b", agent.agent, $sg__input_agent)}</strong>`);
7461
+ _html(`<strong${_attr_class("_hr")}>${_text_resume($scope1_id, "b", agent.agent, $sg__input_agent)}</strong>`);
7460
7462
  $si__input_agent__OR__input_hideName && writeScope($scope1_id, { _: $si__input_agent && _scope_with_id($scope0_id) });
7461
7463
  return 0;
7462
7464
  }
@@ -7464,7 +7466,7 @@ var usage_meters_default = _template("H", (input) => {
7464
7466
  _if(() => {
7465
7467
  if (agent.plan && agent.plan.toLowerCase() !== agent.agent.toLowerCase()) {
7466
7468
  const $scope2_id = _scope_id();
7467
- _html(`<span${_attr_class("_g8")}>${_text_resume($scope2_id, "b", agent.plan.replace(/^default_/, "").replaceAll("_", " "), $sg__input_agent)}</span>`);
7469
+ _html(`<span${_attr_class("_g_")}>${_text_resume($scope2_id, "b", agent.plan.replace(/^default_/, "").replaceAll("_", " "), $sg__input_agent)}</span>`);
7468
7470
  $si__input_agent && writeScope($scope2_id, { _: _scope_with_id($scope0_id) });
7469
7471
  return 0;
7470
7472
  }
@@ -7472,21 +7474,21 @@ var usage_meters_default = _template("H", (input) => {
7472
7474
  _if(() => {
7473
7475
  if (agent.stale_seconds != null) {
7474
7476
  const $scope3_id = _scope_id();
7475
- _html(`<span${_attr_class("_g9")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
7477
+ _html(`<span${_attr_class("_ha")}${_attr("title", `${agent.note || "provider unreachable"}. Last cached numbers, ${duration(agent.stale_seconds * 1e3)} old`)}>`);
7476
7478
  icon_warning_default({ size: 12 });
7477
7479
  _html(` ${_text_resume($scope3_id, "c", duration(agent.stale_seconds * 1e3), $sg__input_agent * 2)} old</span>${_el_resume($scope3_id, "a", $sg__input_agent)}`);
7478
7480
  $si__input_agent && writeScope($scope3_id, { _: _scope_with_id($scope0_id) });
7479
7481
  return 0;
7480
7482
  }
7481
7483
  }, $scope0_id, "e", $sg__input_agent, $sg__input_agent, $sg__input_agent__OR__input_hideName, 0, 1);
7482
- _html(`</div><div${_attr_class(["_g_", { ["_hq"]: agent.stale_seconds != null }])}>`);
7484
+ _html(`</div><div${_attr_class(["_hb", { ["_hs"]: agent.stale_seconds != null }])}>`);
7483
7485
  _for_of(agent.windows || [], (win) => {
7484
7486
  const $scope4_id = _scope_id();
7485
7487
  const pct = pctText(win.used_percent);
7486
7488
  const label = resetLabel(win.resets_at, agent.stale_seconds != null);
7487
- const fillClass = win.used_percent >= 90 ? "_hi" : win.used_percent >= 70 ? "_hh" : win.used_percent >= 40 ? "_hg" : "_hf";
7488
- const pctClass = win.used_percent >= 90 ? "_hn" : win.used_percent >= 70 ? "_hm" : win.used_percent >= 40 ? "_hl" : "_hk";
7489
- _html(`<div${_attr_class("_hb")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_hc")}>${_text_resume($scope4_id, "c", win.window, $sg__input_agent)}</span><span${_attr_class("_hd")}><span${_attr_class(["_he", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_hj", pctClass])}>${_text_resume($scope4_id, "g", pct, $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_ho")}>`);
7489
+ const fillClass = win.used_percent >= 90 ? "_hk" : win.used_percent >= 70 ? "_hj" : win.used_percent >= 40 ? "_hi" : "_hh";
7490
+ const pctClass = win.used_percent >= 90 ? "_hp" : win.used_percent >= 70 ? "_ho" : win.used_percent >= 40 ? "_hn" : "_hm";
7491
+ _html(`<div${_attr_class("_hd")}${_attr("title", `${win.window}: ${pct} used${win.resets_at ? `, resets ${new Date(win.resets_at).toLocaleString()}` : ""}`)}><span${_attr_class("_he")}>${_text_resume($scope4_id, "c", win.window, $sg__input_agent)}</span><span${_attr_class("_hf")}><span${_attr_class(["_hg", fillClass])}${_attr_style(`width:${Math.min(100, Math.max(2, win.used_percent))}%`)}></span>${_el_resume($scope4_id, "e", $sg__input_agent)}</span><span${_attr_class(["_hl", pctClass])}>${_text_resume($scope4_id, "g", pct, $sg__input_agent)}</span>${_el_resume($scope4_id, "f", $sg__input_agent)}<span${_attr_class("_hq")}>`);
7490
7492
  _if(() => {
7491
7493
  if (label) {
7492
7494
  const $scope6_id = _scope_id();
@@ -7603,14 +7605,14 @@ var sso_auth_default = _template("D", (input) => {
7603
7605
  localCode = null;
7604
7606
  }
7605
7607
  }, "D0", $scope0_id);
7606
- _html(`<div${_attr_class(["_gG", input.class])}>`);
7608
+ _html(`<div${_attr_class(["_iz", input.class])}>`);
7607
7609
  _for_of(input.items, (s) => {
7608
7610
  const $scope1_id = _scope_id();
7609
- _html(`<div${_attr_class("_gH")}><span${_attr_class("_gJ")}><span${_attr_class("_gK")}>${_text_resume($scope1_id, "d", s.org, $sg__input_items)}</span><span${_attr_class(["_gL", "_gM"])} title="Repos and PRs in this org stay hidden until the GitHub CLI is authorized for it.">SSO not authorized</span></span>`);
7611
+ _html(`<div${_attr_class("_iA")}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope1_id, "d", s.org, $sg__input_items)}</span><span${_attr_class(["_iE", "_iF"])} title="Repos and PRs in this org stay hidden until the GitHub CLI is authorized for it.">SSO not authorized</span></span>`);
7610
7612
  _if(() => {
7611
7613
  if (!busy) {
7612
7614
  const $scope2_id = _scope_id();
7613
- _html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "_gN"])}${_attr("title", `Ignore ${s.org} — stop asking about it`)}>Ignore</button>${_el_resume($scope2_id, "b")}`);
7615
+ _html(`<button type=button${_attr_class([btnSm, "_r"])} title="Re-authorize GitHub CLI (same device flow as Sign in)">Authorize</button>${_el_resume($scope2_id, "a")}<button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ignore ${s.org} — stop asking about it`)}>Ignore</button>${_el_resume($scope2_id, "b")}`);
7614
7616
  _script($scope2_id, "D1");
7615
7617
  writeScope($scope2_id, {});
7616
7618
  return 0;
@@ -7625,13 +7627,13 @@ var sso_auth_default = _template("D", (input) => {
7625
7627
  _if(() => {
7626
7628
  if (localBusy && localCode) {
7627
7629
  const $scope4_id = _scope_id();
7628
- _html(`<div${_attr_class(["_gH", "_gO"])}><span${_attr_class("_G")}></span> Enter code <strong${_attr_class("_gP")}>${_text_resume($scope4_id, "d", localCode)}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_gQ")}>${_text_resume($scope4_id, "f", host, _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope4_id, "e")}</div>`);
7630
+ _html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span> Enter code <strong${_attr_class("_iI")}>${_text_resume($scope4_id, "d", localCode)}</strong> at <a${_attr("href", `https://${host}/login/device`)}${_attr_class("_iJ")}>${_text_resume($scope4_id, "f", host, _serialize_guard($scope0_reason, 3))}/login/device</a>${_el_resume($scope4_id, "e")}</div>`);
7629
7631
  _script($scope4_id, "D2");
7630
7632
  writeScope($scope4_id, {});
7631
7633
  return 0;
7632
7634
  } else if (localBusy) {
7633
7635
  const $scope6_id = _scope_id();
7634
- _html(`<div${_attr_class(["_gH", "_gO"])}><span${_attr_class("_G")}></span>Starting GitHub re-authorization…</div>`);
7636
+ _html(`<div${_attr_class(["_iA", "_iH"])}><span${_attr_class("_G")}></span>Starting GitHub re-authorization…</div>`);
7635
7637
  writeScope($scope6_id, {});
7636
7638
  return 1;
7637
7639
  }
@@ -7639,14 +7641,14 @@ var sso_auth_default = _template("D", (input) => {
7639
7641
  _if(() => {
7640
7642
  if (localError) {
7641
7643
  const $scope5_id = _scope_id();
7642
- _html(`<p${_attr_class(["_gH", "_gR"])}>${_text_resume($scope5_id, "b", localError)}</p>`);
7644
+ _html(`<p${_attr_class(["_iA", "_iK"])}>${_text_resume($scope5_id, "b", localError)}</p>`);
7643
7645
  writeScope($scope5_id, {});
7644
7646
  return 0;
7645
7647
  }
7646
7648
  }, $scope0_id, "d", 1, 1, 1, 0, 1);
7647
7649
  _for_of(skipped, (s) => {
7648
7650
  const $scope3_id = _scope_id();
7649
- _html(`<div${_attr_class(["_gH", "_gI"])}><span${_attr_class("_gJ")}><span${_attr_class("_gK")}>${_text_resume($scope3_id, "d", s.org, $sg__input_skipped)}</span><span${_attr_class("_gL")}>Ignored</span></span><button type=button${_attr_class([btnSm, "_gN"])}${_attr("title", `Ask about ${s.org} again`)}>Undo</button>${_el_resume($scope3_id, "f")}</div>`);
7651
+ _html(`<div${_attr_class(["_iA", "_iB"])}><span${_attr_class("_iC")}><span${_attr_class("_iD")}>${_text_resume($scope3_id, "d", s.org, $sg__input_skipped)}</span><span${_attr_class("_iE")}>Ignored</span></span><button type=button${_attr_class([btnSm, "_iG"])}${_attr("title", `Ask about ${s.org} again`)}>Undo</button>${_el_resume($scope3_id, "f")}</div>`);
7650
7652
  _script($scope3_id, "D3");
7651
7653
  writeScope($scope3_id, {
7652
7654
  i: s?.org,
@@ -7714,7 +7716,7 @@ var skill_chip_default = _template("C", (input) => {
7714
7716
  const $input_tags__closures = /* @__PURE__ */ new Set();
7715
7717
  const $input_actions__closures = /* @__PURE__ */ new Set();
7716
7718
  const $input_trailing__closures = /* @__PURE__ */ new Set();
7717
- _html(`<li${_attr_class("_cv")}>`);
7719
+ _html(`<li${_attr_class("_fi")}>`);
7718
7720
  _if(() => {
7719
7721
  if (input.busy != null) {
7720
7722
  const $scope1_id = _scope_id();
@@ -7724,11 +7726,11 @@ var skill_chip_default = _template("C", (input) => {
7724
7726
  } else {
7725
7727
  const $scope2_id = _scope_id();
7726
7728
  const popId = _id();
7727
- _html(`<button${_attr_class("_cw")}${_attr("popovertarget", popId)}${_attr("title", `About ${input.name}`)}>${_text_resume($scope2_id, "b", input.name, $sg__input_name)}`);
7729
+ _html(`<button${_attr_class("_fj")}${_attr("popovertarget", popId)}${_attr("title", `About ${input.name}`)}>${_text_resume($scope2_id, "b", input.name, $sg__input_name)}`);
7728
7730
  _if(() => {
7729
7731
  if (input.hint) {
7730
7732
  const $scope3_id = _scope_id();
7731
- _html(`<span${_attr_class("_cy")}>${_text_resume($scope3_id, "b", input.hint, $sg__input_hint)}</span>`);
7733
+ _html(`<span${_attr_class("_fl")}>${_text_resume($scope3_id, "b", input.hint, $sg__input_hint)}</span>`);
7732
7734
  $si__input_busy__OR__input_hint && _subscribe($si__input_hint && $input_hint__closures, writeScope($scope3_id, { _: _scope_with_id($scope2_id) }));
7733
7735
  return 0;
7734
7736
  }
@@ -7776,7 +7778,7 @@ var skill_chip_default = _template("C", (input) => {
7776
7778
  _if(() => {
7777
7779
  if (input.actions) {
7778
7780
  const $scope8_id = _scope_id();
7779
- _html(`<div${_attr_class("_cA")}>`);
7781
+ _html(`<div${_attr_class("_fn")}>`);
7780
7782
  _dynamic_tag($scope8_id, "b", input.actions, {}, 0, 0, $sg__input_actions);
7781
7783
  _html("</div>");
7782
7784
  $si__input_busy__OR__input_actions && _subscribe($si__input_actions && $input_actions__closures, writeScope($scope8_id, { _: _scope_with_id($scope2_id) }));
@@ -7887,7 +7889,7 @@ var icon_moon_default = _template("jb", (input) => {
7887
7889
  });
7888
7890
  //#endregion
7889
7891
  //#region src/tags/prompt-dialog.css.ts
7890
- var promptDlg = "_gX _gT";
7892
+ var promptDlg = "_ih _hL";
7891
7893
  //#endregion
7892
7894
  //#region src/tags/dialog-close.marko
7893
7895
  var dialog_close_default = _template("f", (input) => {
@@ -7911,7 +7913,7 @@ var modal_view_default = _template("s", (input) => {
7911
7913
  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;
7912
7914
  const dismissable = input.dismissable !== false;
7913
7915
  let open = input.open;
7914
- _html(`<dialog${_attr_class(["_gS", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
7916
+ _html(`<dialog${_attr_class(["_hK", inputClass])}${_attr("aria-labelledby", inputLabelledBy)}${inputLabelledBy ? _attr("aria-label", inputAriaLabel) : _attr("aria-label", inputAriaLabel || label)} closedby=${dismissable ? "any" : "none"}${_attrs_partial({
7915
7917
  ...htmlInput,
7916
7918
  open: null
7917
7919
  }, {
@@ -7921,20 +7923,20 @@ var modal_view_default = _template("s", (input) => {
7921
7923
  closedby: 1,
7922
7924
  "on-cancel": 1,
7923
7925
  "on-close": 1
7924
- }, "a", $scope0_id, "dialog")}><div${_attr_class("_gV")}>`);
7926
+ }, "a", $scope0_id, "dialog")}><div${_attr_class("_hN")}>`);
7925
7927
  _dynamic_tag($scope0_id, "c", content, {}, 0, 0, _serialize_guard($scope0_reason, 6));
7926
7928
  _html("</div>");
7927
7929
  _if(() => {
7928
7930
  if (footer) {
7929
7931
  const $scope1_id = _scope_id();
7930
- _html(`<form method=dialog${_attr_class("_gW")}>`);
7932
+ _html(`<form method=dialog${_attr_class("_hO")}>`);
7931
7933
  _dynamic_tag($scope1_id, "b", footer.content, {}, 0, 0, _serialize_guard($scope0_reason, 7));
7932
7934
  _html("</form>");
7933
7935
  $si__input_openChange__OR__input_footer && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 7) && _scope_with_id($scope0_id) });
7934
7936
  return 0;
7935
7937
  } else if (input.openChange) {
7936
7938
  const $scope2_id = _scope_id();
7937
- _html(`<form method=dialog${_attr_class("_gW")}>`);
7939
+ _html(`<form method=dialog${_attr_class("_hO")}>`);
7938
7940
  dialog_close_default({
7939
7941
  class: ["_q", "_r"],
7940
7942
  content: _content("s0", () => {
@@ -8018,7 +8020,7 @@ var prompt_dialog_default = _template("v", (input) => {
8018
8020
  content: _content("v7", () => {
8019
8021
  _scope_reason();
8020
8022
  const $scope2_id = _scope_id();
8021
- _html(`<h2${_attr_class("_gU")}${_attr("id", titleId)}>${_text_resume($scope2_id, "b", input.label, $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
8023
+ _html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>${_text_resume($scope2_id, "b", input.label, $sg__input_label)}</h2><input${_attr_input_value($scope2_id, "c", value, _resume((_new_value) => {
8022
8024
  value = _new_value;
8023
8025
  }, "v0", $scope2_id))}${_attr("placeholder", input.placeholder)}>${_el_resume($scope2_id, "c")}`);
8024
8026
  _script($scope2_id, "v5");
@@ -8540,7 +8542,7 @@ var settings_page_default = _template("y", (input$3) => {
8540
8542
  const githubId = _id();
8541
8543
  const backupId = _id();
8542
8544
  const machineId = _id();
8543
- _html(`<div${_attr_class("_d8")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_d9")}><div${_attr_class("_d_")}>`);
8545
+ _html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
8544
8546
  _set_serialize_reason({
8545
8547
  0: _serialize_guard($scope0_reason, 4),
8546
8548
  1: $sg__input_backHref__OR__input_onExit,
@@ -8552,7 +8554,7 @@ var settings_page_default = _template("y", (input$3) => {
8552
8554
  if (setup && !setup.ready) $meta = attrTag({ content: _content_resume("y44", () => {
8553
8555
  _scope_reason();
8554
8556
  const $scope4_id = _scope_id();
8555
- _html(`<span${_attr_class("_c1")}>Not ready</span>. Missing ${_text_resume($scope4_id, "b", setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "), 2)}.`);
8557
+ _html(`<span${_attr_class("_fz")}>Not ready</span>. Missing ${_text_resume($scope4_id, "b", setup.missing.map((m) => MISSING_LABEL[m] || m).join(", "), 2)}.`);
8556
8558
  _subscribe($setup_missing__closures, writeScope($scope4_id, { _: _scope_with_id($scope0_id) }));
8557
8559
  _resume_branch($scope4_id);
8558
8560
  }, $scope0_id) });
@@ -8605,16 +8607,16 @@ var settings_page_default = _template("y", (input$3) => {
8605
8607
  _if(() => {
8606
8608
  if (selfUpdatePending || selfUpdating) {
8607
8609
  const $scope44_id = _scope_id();
8608
- _html(`<div${_attr_class("_dC")} role=status><div${_attr_class("_dD")}>`);
8610
+ _html(`<div${_attr_class("_ga")} role=status><div${_attr_class("_gb")}>`);
8609
8611
  _if(() => {
8610
8612
  if (selfUpdating) {
8611
8613
  const $scope79_id = _scope_id();
8612
- _html(`<span${_attr_class("_dE")}><span${_attr_class("_G")}></span> Updating work…</span><span${_attr_class("_dF")}>The app restarts and reloads when it is done.</span>`);
8614
+ _html(`<span${_attr_class("_gc")}><span${_attr_class("_G")}></span> Updating work…</span><span${_attr_class("_gd")}>The app restarts and reloads when it is done.</span>`);
8613
8615
  writeScope($scope79_id, {});
8614
8616
  return 0;
8615
8617
  } else {
8616
8618
  const $scope45_id = _scope_id();
8617
- _html(`<span${_attr_class("_dE")}>Update available</span><span${_attr_class("_dF")}>v${_text_resume($scope45_id, "c", self.version, 2)} → v${_text_resume($scope45_id, "d", self.latest, 2)}</span>`);
8619
+ _html(`<span${_attr_class("_gc")}>Update available</span><span${_attr_class("_gd")}>v${_text_resume($scope45_id, "c", self.version, 2)} → v${_text_resume($scope45_id, "d", self.latest, 2)}</span>`);
8618
8620
  _subscribe($self_version__closures, _subscribe($self_latest__closures, writeScope($scope45_id, {})));
8619
8621
  return 1;
8620
8622
  }
@@ -8633,11 +8635,11 @@ var settings_page_default = _template("y", (input$3) => {
8633
8635
  return 0;
8634
8636
  }
8635
8637
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
8636
- _html(`<section${_attr_class("_cf")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_cg")}><h2${_attr("id", agentsId)}${_attr_class("_ct")}>Agents</h2><div${_attr_class("_z")}></div><label${_attr_class("_c3")}><span${_attr_class("_X")}>Default</span><span${_attr_class("_o")}>`);
8638
+ _html(`<section${_attr_class("_cf")}${_attr("aria-labelledby", agentsId)}><div${_attr_class("_cg")}><h2${_attr("id", agentsId)}${_attr_class("_ct")}>Agents</h2><div${_attr_class("_z")}></div><label${_attr_class("_fB")}><span${_attr_class("_X")}>Default</span><span${_attr_class("_o")}>`);
8637
8639
  _attr_select_value($scope0_id, "n", input$3.preferred, _resume(function(v) {
8638
8640
  setPreferred(v);
8639
8641
  }, "y2", $scope0_id), () => {
8640
- _html(`<select${_attr_class(["_p", "_c4"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
8642
+ _html(`<select${_attr_class(["_p", "_fC"])} aria-label="Default agent (starts when a workspace has no session yet)" title="Starts when a workspace has no session yet">`);
8641
8643
  _for_of(input$3.agents.filter((a) => a !== "shell"), (id) => {
8642
8644
  const $scope80_id = _scope_id();
8643
8645
  _html(`<option${_attr_option_value(id)}>${_text_resume($scope80_id, "b", agentLabel(id), $sg__input_agents)}</option>${_el_resume($scope80_id, "a", $sg__input_agents)}`);
@@ -8651,7 +8653,7 @@ var settings_page_default = _template("y", (input$3) => {
8651
8653
  const rows = lone ? [] : a.instances;
8652
8654
  const loneAccounts = lone ? accountsFor(lone.id) : [];
8653
8655
  const extraAccounts = a.installed ? strayAccountsFor(a) : [];
8654
- _html(`<li${_attr_class(agentRow)}><div${_attr_class(["_c5", { ["_c7"]: lone && !lone.enabled }])}>`);
8656
+ _html(`<li${_attr_class(agentRow)}><div${_attr_class(["_fD", { ["_fF"]: lone && !lone.enabled }])}>`);
8655
8657
  _set_serialize_reason(12);
8656
8658
  const $childScope3 = _peek_scope_id();
8657
8659
  icon_agent_default({
@@ -8671,7 +8673,7 @@ var settings_page_default = _template("y", (input$3) => {
8671
8673
  _if(() => {
8672
8674
  if (active.has(a.id)) {
8673
8675
  const $scope12_id = _scope_id();
8674
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope12_id, "c", active.get(a.id) || "Starting…")}</span>`);
8676
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope12_id, "c", active.get(a.id) || "Starting…")}</span>`);
8675
8677
  _subscribe($active__closures, writeScope($scope12_id, {}));
8676
8678
  return 0;
8677
8679
  } else if (!a.installed) {
@@ -8704,15 +8706,15 @@ var settings_page_default = _template("y", (input$3) => {
8704
8706
  _if(() => {
8705
8707
  if (rows.length || loneAccounts.length || extraAccounts.length) {
8706
8708
  const $scope2_id = _scope_id();
8707
- _html(`<ul${_attr_class(["_c9", { ["_c7"]: lone && !lone.enabled }])}>`);
8709
+ _html(`<ul${_attr_class(["_fH", { ["_fF"]: lone && !lone.enabled }])}>`);
8708
8710
  _for_of(rows, (inst) => {
8709
8711
  const $scope3_id = _scope_id();
8710
8712
  const accounts = accountsFor(inst.id);
8711
- _html(`<li${_attr_class(["_c6", { ["_c7"]: !inst.enabled }])}><div${_attr_class("_c5")}>`);
8713
+ _html(`<li${_attr_class(["_fE", { ["_fF"]: !inst.enabled }])}><div${_attr_class("_fD")}>`);
8712
8714
  _set_serialize_reason(12);
8713
8715
  const $childScope4 = _peek_scope_id();
8714
8716
  icon_agent_default({ agent: inst.id });
8715
- _html(`<span${_attr_class(["_c8", "_y"])}>${_text_resume($scope3_id, "e", inst.command)}</span>`);
8717
+ _html(`<span${_attr_class(["_fG", "_y"])}>${_text_resume($scope3_id, "e", inst.command)}</span>`);
8716
8718
  _if(() => {
8717
8719
  if (input$3.preferred === inst.id) {
8718
8720
  const $scope83_id = _scope_id();
@@ -8808,7 +8810,7 @@ var settings_page_default = _template("y", (input$3) => {
8808
8810
  _if(() => {
8809
8811
  if (setup && !addingHost) {
8810
8812
  const $scope42_id = _scope_id();
8811
- _html(`<button${_attr_class([iconBtnRow, "_dh"])} title="Add Enterprise host" aria-label="Add Enterprise host">`);
8813
+ _html(`<button${_attr_class([iconBtnRow, "_fQ"])} title="Add Enterprise host" aria-label="Add Enterprise host">`);
8812
8814
  icon_plus_default({ size: 16 });
8813
8815
  _html(`</button>${_el_resume($scope42_id, "a")}`);
8814
8816
  _script($scope42_id, "y51");
@@ -8820,10 +8822,10 @@ var settings_page_default = _template("y", (input$3) => {
8820
8822
  if (setup) {
8821
8823
  const $scope41_id = _scope_id();
8822
8824
  _html(`<form${_attr_class([
8823
- "_cB",
8824
- "_dh",
8825
- { ["_cC"]: !addingHost }
8826
- ])}><label${_attr_class(["_1", "_cE"])}>`);
8825
+ "_fo",
8826
+ "_fQ",
8827
+ { ["_fp"]: !addingHost }
8828
+ ])}><label${_attr_class(["_1", "_fr"])}>`);
8827
8829
  icon_github_default({
8828
8830
  size: 14,
8829
8831
  class: "_2"
@@ -8833,12 +8835,12 @@ var settings_page_default = _template("y", (input$3) => {
8833
8835
  }, "y3", $scope41_id))}${_attr_class([
8834
8836
  "_Z",
8835
8837
  "_3",
8836
- "_cF"
8838
+ "_fs"
8837
8839
  ])} type=text placeholder=github.example.com aria-label="GitHub Enterprise host" autocomplete=off spellcheck=false>${_el_resume($scope41_id, "d")}</label><button${_attr_class([
8838
8840
  btnSm,
8839
8841
  "_r",
8840
- "_dg"
8841
- ])} type=submit${_attr("hidden", !addingHost)}${_attr("disabled", !hostInput.trim() || hostBusy)}>${_text_resume($scope41_id, "f", hostBusy ? "Adding…" : "Add")}</button>${_el_resume($scope41_id, "e")}<button${_attr_class([iconBtnRow, "_cG"])} type=button${_attr("hidden", !addingHost)} title=Cancel aria-label=Cancel${_attr("disabled", hostBusy)}>`);
8842
+ "_fP"
8843
+ ])} type=submit${_attr("hidden", !addingHost)}${_attr("disabled", !hostInput.trim() || hostBusy)}>${_text_resume($scope41_id, "f", hostBusy ? "Adding…" : "Add")}</button>${_el_resume($scope41_id, "e")}<button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", !addingHost)} title=Cancel aria-label=Cancel${_attr("disabled", hostBusy)}>`);
8842
8844
  icon_xmark_default({ size: 14 });
8843
8845
  _html(`</button>${_el_resume($scope41_id, "g")}</form>${_el_resume($scope41_id, "a")}`);
8844
8846
  _script($scope41_id, "y52");
@@ -8846,17 +8848,17 @@ var settings_page_default = _template("y", (input$3) => {
8846
8848
  return 0;
8847
8849
  }
8848
8850
  }, $scope0_id, "w", 1, 1, 1, 0, 1);
8849
- _html(`</div><div${_attr_class(["_ck", "_cL"])}>`);
8851
+ _html(`</div><div${_attr_class(["_ck", "_d1"])}>`);
8850
8852
  _for_of(setup?.github || [], (h) => {
8851
8853
  const $scope6_id = _scope_id();
8852
8854
  const $for_content3__h_host__closures = /* @__PURE__ */ new Set();
8853
8855
  const hostSso$1 = (h.sso || []).filter((s) => !ignoredSso.has(s.org));
8854
8856
  const skippedSso = (h.sso || []).filter((s) => ignoredSso.has(s.org));
8855
8857
  const busy = active.has(h.host);
8856
- _html(`<div${_attr_class(["_cM", "_di"])}><div${_attr_class("_dj")}>`);
8858
+ _html(`<div${_attr_class(["_d2", "_fR"])}><div${_attr_class("_fS")}>`);
8857
8859
  icon_github_default({
8858
8860
  size: 18,
8859
- class: "_dk"
8861
+ class: "_fT"
8860
8862
  });
8861
8863
  _html(`<div${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope6_id, "g", h.host)}</span>`);
8862
8864
  _if(() => {
@@ -8871,25 +8873,25 @@ var settings_page_default = _template("y", (input$3) => {
8871
8873
  _if(() => {
8872
8874
  if (busy) {
8873
8875
  const $scope13_id = _scope_id();
8874
- _html(`<span${_attr_class(["_co", "_dl"])}><span${_attr_class("_G")}></span>${_text_resume($scope13_id, "c", authCodes.has(h.host) ? "Waiting for the browser…" : active.get(h.host) || "Starting…")}</span>`);
8876
+ _html(`<span${_attr_class(["_co", "_fU"])}><span${_attr_class("_G")}></span>${_text_resume($scope13_id, "c", authCodes.has(h.host) ? "Waiting for the browser…" : active.get(h.host) || "Starting…")}</span>`);
8875
8877
  _subscribe($authCodes__closures, _subscribe($active__closures, writeScope($scope13_id, { Ch2: 1 })));
8876
8878
  return 0;
8877
8879
  } else if (h.authed) {
8878
8880
  const $scope89_id = _scope_id();
8879
- _html(`<span${_attr_class(["_co", "_dl"])}>`);
8881
+ _html(`<span${_attr_class(["_co", "_fU"])}>`);
8880
8882
  icon_check_default({
8881
8883
  size: 12,
8882
- class: "_dm"
8884
+ class: "_fV"
8883
8885
  });
8884
- _html(` Signed in as <strong${_attr_class("_do")}>${_text_resume($scope89_id, "d", h.user || "?")}</strong></span>`);
8886
+ _html(` Signed in as <strong${_attr_class("_fX")}>${_text_resume($scope89_id, "d", h.user || "?")}</strong></span>`);
8885
8887
  writeScope($scope89_id, {});
8886
8888
  return 1;
8887
8889
  } else if (h.error) {
8888
8890
  const $scope90_id = _scope_id();
8889
8891
  _html(`<span${_attr_class([
8890
8892
  "_co",
8891
- "_dl",
8892
- "_dn"
8893
+ "_fU",
8894
+ "_fW"
8893
8895
  ])}>`);
8894
8896
  icon_warning_default({ size: 12 });
8895
8897
  _html(`${_text_resume($scope90_id, "c", h.error)}</span>`);
@@ -8897,7 +8899,7 @@ var settings_page_default = _template("y", (input$3) => {
8897
8899
  return 2;
8898
8900
  } else {
8899
8901
  const $scope92_id = _scope_id();
8900
- _html(`<span${_attr_class(["_co", "_dl"])}>Not signed in</span>`);
8902
+ _html(`<span${_attr_class(["_co", "_fU"])}>Not signed in</span>`);
8901
8903
  writeScope($scope92_id, {});
8902
8904
  return 3;
8903
8905
  }
@@ -8962,7 +8964,7 @@ var settings_page_default = _template("y", (input$3) => {
8962
8964
  _if(() => {
8963
8965
  if (busy && authCodes.has(h.host)) {
8964
8966
  const $scope30_id = _scope_id();
8965
- _html(`<div${_attr_class("_dp")}><span${_attr_class("_dq")}>Enter this code at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_ds")}>${_text_resume($scope30_id, "d", h.host)}/login/device</a>${_el_resume($scope30_id, "c")}</span><code${_attr_class("_dr")}>${_text_resume($scope30_id, "f", authCodes.get(h.host))}</code></div>`);
8967
+ _html(`<div${_attr_class("_fY")}><span${_attr_class("_fZ")}>Enter this code at <a${_attr("href", `https://${h.host}/login/device`)} target=_blank rel=noopener${_attr_class("_f1")}>${_text_resume($scope30_id, "d", h.host)}/login/device</a>${_el_resume($scope30_id, "c")}</span><code${_attr_class("_f0")}>${_text_resume($scope30_id, "f", authCodes.get(h.host))}</code></div>`);
8966
8968
  _subscribe($authCodes__closures, writeScope($scope30_id, { Ch4: 1 }));
8967
8969
  return 0;
8968
8970
  }
@@ -8974,7 +8976,7 @@ var settings_page_default = _template("y", (input$3) => {
8974
8976
  _set_serialize_reason(30);
8975
8977
  const $childScope9 = _peek_scope_id();
8976
8978
  sso_auth_default({
8977
- class: ["_cM", "_dt"],
8979
+ class: ["_d2", "_f2"],
8978
8980
  items: hostSso$1,
8979
8981
  skipped: skippedSso,
8980
8982
  busy,
@@ -9013,18 +9015,18 @@ var settings_page_default = _template("y", (input$3) => {
9013
9015
  return 0;
9014
9016
  }
9015
9017
  }, $scope0_id, "y", 1, 1, 1, 0, 1);
9016
- _html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_cg")}><h2${_attr("id", machineId)}${_attr_class("_ct")}>Machine</h2></div><div${_attr_class(["_ck", "_cL"])}><div${_attr_class(["_cM", "_cN"])}><div${_attr_class(["_cO", { ["_cP"]: skillsOpen }])}><button${_attr_class("_cQ")} aria-expanded=true>`);
9018
+ _html(`</section><section${_attr_class("_cf")}${_attr("aria-labelledby", machineId)}><div${_attr_class("_cg")}><h2${_attr("id", machineId)}${_attr_class("_ct")}>Machine</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class(["_d2", "_d3"])}><div${_attr_class(["_d4", { ["_d5"]: skillsOpen }])}><button${_attr_class("_d6")} aria-expanded=true>`);
9017
9019
  _set_serialize_reason(1);
9018
9020
  const $childScope10 = _peek_scope_id();
9019
9021
  icon_chevron_right_default({
9020
9022
  size: 12,
9021
- class: ["_cU", { ["_cV"]: skillsOpen }]
9023
+ class: ["_d_", { ["_ea"]: skillsOpen }]
9022
9024
  });
9023
- _html(`<span${_attr_class("_cR")}>Skills</span>`);
9025
+ _html(`<span${_attr_class("_d7")}>Skills</span>`);
9024
9026
  _if(() => {
9025
9027
  if (skills?.global.length) {
9026
9028
  const $scope51_id = _scope_id();
9027
- _html(`<span${_attr_class("_cS")}>${_text_resume($scope51_id, "b", skills.global.length)} installed</span>`);
9029
+ _html(`<span${_attr_class("_d8")}>${_text_resume($scope51_id, "b", skills.global.length)} installed</span>`);
9028
9030
  writeScope($scope51_id, {});
9029
9031
  return 0;
9030
9032
  }
@@ -9044,7 +9046,7 @@ var settings_page_default = _template("y", (input$3) => {
9044
9046
  _if(() => {
9045
9047
  if (skills?.available && skills.agents.length) {
9046
9048
  const $scope14_id = _scope_id();
9047
- _html(`<div${_attr_class(["_cB", { ["_cC"]: true }])}><label${_attr_class(["_1", "_cE"])}>`);
9049
+ _html(`<div${_attr_class(["_fo", { ["_fp"]: true }])}><label${_attr_class(["_1", "_fr"])}>`);
9048
9050
  _if(() => {
9049
9051
  if (skillSearching) {
9050
9052
  const $scope96_id = _scope_id();
@@ -9064,14 +9066,14 @@ var settings_page_default = _template("y", (input$3) => {
9064
9066
  _html(`<input${_attr_input_value($scope14_id, "d", skillQuery, searchSkills)}${_attr_class([
9065
9067
  "_Z",
9066
9068
  "_3",
9067
- "_cF"
9068
- ])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope14_id, "d")}</label><button${_attr_class([iconBtnRow, "_cG"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
9069
+ "_fs"
9070
+ ])} type=text placeholder="Search skills, or paste owner/repo…" aria-label="Search for a skill" autocomplete=off spellcheck=false>${_el_resume($scope14_id, "d")}</label><button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
9069
9071
  icon_xmark_default({ size: 14 });
9070
- _html(`</button>${_el_resume($scope14_id, "e")}<ul${_attr_class([pop$1, "_cI"])}${_attr("hidden", true)}>`);
9072
+ _html(`</button>${_el_resume($scope14_id, "e")}<ul${_attr_class([pop$1, "_fv"])}${_attr("hidden", true)}>`);
9071
9073
  _if(() => {
9072
9074
  if (skillSearching && !skillHits?.length && !looksLikeSource(skillQuery)) {
9073
9075
  const $scope98_id = _scope_id();
9074
- _html(`<li${_attr_class("_cJ")}>Searching skills.sh…</li>`);
9076
+ _html(`<li${_attr_class("_fw")}>Searching skills.sh…</li>`);
9075
9077
  writeScope($scope98_id, {});
9076
9078
  return 0;
9077
9079
  }
@@ -9079,11 +9081,11 @@ var settings_page_default = _template("y", (input$3) => {
9079
9081
  _if(() => {
9080
9082
  if (looksLikeSource(skillQuery)) {
9081
9083
  const $scope15_id = _scope_id();
9082
- _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_dc", "_y"])}>${_text_resume($scope15_id, "d", skillQuery.trim())}</span>`);
9084
+ _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope15_id, "d", skillQuery.trim())}</span>`);
9083
9085
  _if(() => {
9084
9086
  if (active.has(skillQuery.trim())) {
9085
9087
  const $scope16_id = _scope_id();
9086
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope16_id, "c", active.get(skillQuery.trim()) || "Starting…")}</span>`);
9088
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope16_id, "c", active.get(skillQuery.trim()) || "Starting…")}</span>`);
9087
9089
  _subscribe($skillQuery__closures, _subscribe($active__closures, writeScope($scope16_id, {
9088
9090
  Ch2: 3,
9089
9091
  Chr: 1
@@ -9114,11 +9116,11 @@ var settings_page_default = _template("y", (input$3) => {
9114
9116
  _for_of(skillHits || [], (h) => {
9115
9117
  const $scope17_id = _scope_id();
9116
9118
  const $for_content4__h_installs__closures = /* @__PURE__ */ new Set();
9117
- _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_dc", "_y"])}>${_text_resume($scope17_id, "d", h.name)}</span>`);
9119
+ _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope17_id, "d", h.name)}</span>`);
9118
9120
  _if(() => {
9119
9121
  if (active.has(h.skillId)) {
9120
9122
  const $scope18_id = _scope_id();
9121
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope18_id, "c", active.get(h.skillId) || "Starting…")}</span>`);
9123
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope18_id, "c", active.get(h.skillId) || "Starting…")}</span>`);
9122
9124
  _subscribe($active__closures, writeScope($scope18_id, { Ch2: 5 }));
9123
9125
  return 0;
9124
9126
  } else {
@@ -9171,7 +9173,7 @@ var settings_page_default = _template("y", (input$3) => {
9171
9173
  _if(() => {
9172
9174
  if (skillHits && !skillHits.length && !skillSearching && !looksLikeSource(skillQuery)) {
9173
9175
  const $scope53_id = _scope_id();
9174
- _html(`<li${_attr_class("_cJ")}>No skills match "${_text_resume($scope53_id, "b", skillQuery, 2)}".</li>`);
9176
+ _html(`<li${_attr_class("_fw")}>No skills match "${_text_resume($scope53_id, "b", skillQuery, 2)}".</li>`);
9175
9177
  _subscribe($skillQuery__closures, writeScope($scope53_id, { Chr: 2 }));
9176
9178
  return 0;
9177
9179
  }
@@ -9186,7 +9188,7 @@ var settings_page_default = _template("y", (input$3) => {
9186
9188
  _if(() => {
9187
9189
  {
9188
9190
  const $scope19_id = _scope_id();
9189
- _html(`<div${_attr_class("_cT")}>`);
9191
+ _html(`<div${_attr_class("_d9")}>`);
9190
9192
  _if(() => {
9191
9193
  if (skills && !skills.agents.length) {
9192
9194
  const $scope103_id = _scope_id();
@@ -9201,7 +9203,7 @@ var settings_page_default = _template("y", (input$3) => {
9201
9203
  return 1;
9202
9204
  }
9203
9205
  }, $scope19_id, "b", 1, 1, 1, 0, 1);
9204
- _html(`<ul${_attr_class("_cu")}>`);
9206
+ _html(`<ul${_attr_class("_fh")}>`);
9205
9207
  _for_of(skills?.global || [], (s) => {
9206
9208
  const $scope21_id = _scope_id();
9207
9209
  const $for_content5__s_agents__closures = /* @__PURE__ */ new Set();
@@ -9287,14 +9289,14 @@ var settings_page_default = _template("y", (input$3) => {
9287
9289
  return 0;
9288
9290
  }
9289
9291
  }, $scope0_id, "ab", 1, 1, 1, 0, 1);
9290
- _html(`</div><div${_attr_class(["_cM", "_cN"])}><div${_attr_class(["_cO", { ["_cP"]: machineOpen }])}><button${_attr_class("_cQ")} aria-expanded=${machineOpen ? "true" : "false"}>`);
9292
+ _html(`</div><div${_attr_class(["_d2", "_d3"])}><div${_attr_class(["_d4", { ["_d5"]: machineOpen }])}><button${_attr_class("_d6")} aria-expanded=${machineOpen ? "true" : "false"}>`);
9291
9293
  _set_serialize_reason(1);
9292
9294
  const $childScope12 = _peek_scope_id();
9293
9295
  icon_chevron_right_default({
9294
9296
  size: 12,
9295
- class: ["_cU", { ["_cV"]: machineOpen }]
9297
+ class: ["_d_", { ["_ea"]: machineOpen }]
9296
9298
  });
9297
- _html(`<span${_attr_class("_cR")}>Tools</span><span${_attr_class("_cS")}>${_text_resume($scope0_id, "ai", tools.filter((t) => t.installed).length)} installed ${_text_resume($scope0_id, "aj", missingCount ? `${_to_text(" · ")}${_to_text(missingCount)} missing` : "", 2)}${_text_resume($scope0_id, "ak", outdatedIds.length ? `${_to_text(" · ")}${_to_text(outdatedIds.length)} outdated` : "", 2)}</span></button>${_el_resume($scope0_id, "ae")}`);
9299
+ _html(`<span${_attr_class("_d7")}>Tools</span><span${_attr_class("_d8")}>${_text_resume($scope0_id, "ai", tools.filter((t) => t.installed).length)} installed ${_text_resume($scope0_id, "aj", missingCount ? `${_to_text(" · ")}${_to_text(missingCount)} missing` : "", 2)}${_text_resume($scope0_id, "ak", outdatedIds.length ? `${_to_text(" · ")}${_to_text(outdatedIds.length)} outdated` : "", 2)}</span></button>${_el_resume($scope0_id, "ae")}`);
9298
9300
  _if(() => {
9299
9301
  if (outdatedIds.length > 1) {
9300
9302
  const $scope22_id = _scope_id();
@@ -9327,7 +9329,7 @@ var settings_page_default = _template("y", (input$3) => {
9327
9329
  _if(() => {
9328
9330
  if (setup && setup.mise.installed) {
9329
9331
  const $scope24_id = _scope_id();
9330
- _html(`<div${_attr_class(["_cB", { ["_cC"]: true }])}><label${_attr_class(["_1", "_cE"])}>`);
9332
+ _html(`<div${_attr_class(["_fo", { ["_fp"]: true }])}><label${_attr_class(["_1", "_fr"])}>`);
9331
9333
  _if(() => {
9332
9334
  if (searching) {
9333
9335
  const $scope109_id = _scope_id();
@@ -9347,14 +9349,14 @@ var settings_page_default = _template("y", (input$3) => {
9347
9349
  _html(`<input${_attr_input_value($scope24_id, "d", query, search)}${_attr_class([
9348
9350
  "_Z",
9349
9351
  "_3",
9350
- "_cF"
9351
- ])} type=text placeholder="Search the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope24_id, "d")}</label><button${_attr_class([iconBtnRow, "_cG"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
9352
+ "_fs"
9353
+ ])} type=text placeholder="Search the mise registry…" aria-label="Search the mise registry" autocomplete=off>${_el_resume($scope24_id, "d")}</label><button${_attr_class([iconBtnRow, "_ft"])} type=button${_attr("hidden", true)} title="Close search" aria-label="Close search">`);
9352
9354
  icon_xmark_default({ size: 14 });
9353
- _html(`</button>${_el_resume($scope24_id, "e")}<ul${_attr_class([pop$1, "_cI"])}${_attr("hidden", true)}>`);
9355
+ _html(`</button>${_el_resume($scope24_id, "e")}<ul${_attr_class([pop$1, "_fv"])}${_attr("hidden", true)}>`);
9354
9356
  _if(() => {
9355
9357
  if (searching && !hits?.length) {
9356
9358
  const $scope111_id = _scope_id();
9357
- _html(`<li${_attr_class("_cJ")}>Searching the mise registry…</li>`);
9359
+ _html(`<li${_attr_class("_fw")}>Searching the mise registry…</li>`);
9358
9360
  writeScope($scope111_id, {});
9359
9361
  return 0;
9360
9362
  }
@@ -9362,18 +9364,18 @@ var settings_page_default = _template("y", (input$3) => {
9362
9364
  _if(() => {
9363
9365
  if (hits && !hits.length && !searching) {
9364
9366
  const $scope43_id = _scope_id();
9365
- _html(`<li${_attr_class("_cJ")}>No tools match "${_text_resume($scope43_id, "b", query, 2)}".</li>`);
9367
+ _html(`<li${_attr_class("_fw")}>No tools match "${_text_resume($scope43_id, "b", query, 2)}".</li>`);
9366
9368
  _subscribe($query__closures, writeScope($scope43_id, {}));
9367
9369
  return 0;
9368
9370
  }
9369
9371
  }, $scope24_id, "i", 1, 1, 1, 0, 1);
9370
9372
  _for_of(hits || [], (h) => {
9371
9373
  const $scope25_id = _scope_id();
9372
- _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_dc", "_y"])}>${_text_resume($scope25_id, "d", h.name)}</span>`);
9374
+ _html(`<li${_attr_class(toolRow)}><div${_attr_class("_cl")}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope25_id, "d", h.name)}</span>`);
9373
9375
  _if(() => {
9374
9376
  if (active.has(h.name)) {
9375
9377
  const $scope26_id = _scope_id();
9376
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope26_id, "c", active.get(h.name) || "Starting…")}</span>`);
9378
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope26_id, "c", active.get(h.name) || "Starting…")}</span>`);
9377
9379
  _subscribe($active__closures, writeScope($scope26_id, { Ch2: 9 }));
9378
9380
  return 0;
9379
9381
  } else if (h.description) {
@@ -9423,7 +9425,7 @@ var settings_page_default = _template("y", (input$3) => {
9423
9425
  _if(() => {
9424
9426
  if (machineOpen) {
9425
9427
  const $scope5_id = _scope_id();
9426
- _html(`<div${_attr_class("_cT")}>`);
9428
+ _html(`<div${_attr_class("_d9")}>`);
9427
9429
  _if(() => {
9428
9430
  if (setup && !setup.mise.installed) {
9429
9431
  const $scope27_id = _scope_id();
@@ -9437,11 +9439,11 @@ var settings_page_default = _template("y", (input$3) => {
9437
9439
  _if(() => {
9438
9440
  if (self) {
9439
9441
  const $scope47_id = _scope_id();
9440
- _html(`<li${_attr_class(toolRow)}><span${_attr_class(["_dc", "_y"])}>work</span>`);
9442
+ _html(`<li${_attr_class(toolRow)}><span${_attr_class(["_fL", "_y"])}>work</span>`);
9441
9443
  _if(() => {
9442
9444
  if (selfUpdating) {
9443
9445
  const $scope114_id = _scope_id();
9444
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>Updating — the app restarts and reloads when it is done…</span>`);
9446
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>Updating — the app restarts and reloads when it is done…</span>`);
9445
9447
  writeScope($scope114_id, {});
9446
9448
  return 0;
9447
9449
  } else {
@@ -9455,7 +9457,7 @@ var settings_page_default = _template("y", (input$3) => {
9455
9457
  return 0;
9456
9458
  } else if (self.latest && self.latest !== self.version) {
9457
9459
  const $scope49_id = _scope_id();
9458
- _html(`<button${_attr_class([btnSm, "_df"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
9460
+ _html(`<button${_attr_class([btnSm, "_fO"])}${_attr("title", `Update work to v${self.latest} and restart`)}>`);
9459
9461
  icon_arrow_up_default({ size: 12 });
9460
9462
  _html(` ${_text_resume($scope49_id, "c", self.latest, 2)}</button>${_el_resume($scope49_id, "a")}`);
9461
9463
  _script($scope49_id, "y72");
@@ -9499,11 +9501,11 @@ var settings_page_default = _template("y", (input$3) => {
9499
9501
  const $for_content7__t_label__closures = /* @__PURE__ */ new Set();
9500
9502
  const $for_content7__t_newest__closures = /* @__PURE__ */ new Set();
9501
9503
  const $for_content7__t_id__closures = /* @__PURE__ */ new Set();
9502
- _html(`<li${_attr_class([toolRow, { ["_db"]: !t.installed }])}><span${_attr_class(["_dc", "_y"])}>${_text_resume($scope28_id, "c", t.label)}</span>`);
9504
+ _html(`<li${_attr_class([toolRow, { ["_fK"]: !t.installed }])}><span${_attr_class(["_fL", "_y"])}>${_text_resume($scope28_id, "c", t.label)}</span>`);
9503
9505
  _if(() => {
9504
9506
  if (active.has(t.id)) {
9505
9507
  const $scope29_id = _scope_id();
9506
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope29_id, "c", active.get(t.id) || "Starting…")}</span>`);
9508
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope29_id, "c", active.get(t.id) || "Starting…")}</span>`);
9507
9509
  _subscribe($active__closures, writeScope($scope29_id, { Ch2: 12 }));
9508
9510
  return 0;
9509
9511
  } else if (t.installed) {
@@ -9511,11 +9513,11 @@ var settings_page_default = _template("y", (input$3) => {
9511
9513
  _if(() => {
9512
9514
  if (t.version) {
9513
9515
  const $scope40_id = _scope_id();
9514
- _html(`<button${_attr_class(["_de", "_y"])}${_attr("title", `${t.path || t.label}${aliasPin(t) ? `, pinned to ${t.pin}` : ""}. Pin a version`)}>v${_text_resume($scope40_id, "b", t.version, 2)}`);
9516
+ _html(`<button${_attr_class(["_fN", "_y"])}${_attr("title", `${t.path || t.label}${aliasPin(t) ? `, pinned to ${t.pin}` : ""}. Pin a version`)}>v${_text_resume($scope40_id, "b", t.version, 2)}`);
9515
9517
  _if(() => {
9516
9518
  if (aliasPin(t)) {
9517
9519
  const $scope118_id = _scope_id();
9518
- _html(`<span${_attr_class("_dd")}>${_text_resume($scope118_id, "b", t.pin)}</span>`);
9520
+ _html(`<span${_attr_class("_fM")}>${_text_resume($scope118_id, "b", t.pin)}</span>`);
9519
9521
  _subscribe($for_content7__t_pin__closures, writeScope($scope118_id, { Ca0: 1 }));
9520
9522
  return 0;
9521
9523
  }
@@ -9534,7 +9536,7 @@ var settings_page_default = _template("y", (input$3) => {
9534
9536
  _if(() => {
9535
9537
  if (outdated(t)) {
9536
9538
  const $scope59_id = _scope_id();
9537
- _html(`<button${_attr_class([btnSm, "_df"])}${_attr("title", `Update to v${t.latest}`)}>`);
9539
+ _html(`<button${_attr_class([btnSm, "_fO"])}${_attr("title", `Update to v${t.latest}`)}>`);
9538
9540
  icon_arrow_up_default({ size: 12 });
9539
9541
  _html(` ${_text_resume($scope59_id, "c", t.latest, 2)}</button>${_el_resume($scope59_id, "a")}`);
9540
9542
  _script($scope59_id, "y74");
@@ -9542,7 +9544,7 @@ var settings_page_default = _template("y", (input$3) => {
9542
9544
  return 0;
9543
9545
  } else if (t.newest) {
9544
9546
  const $scope60_id = _scope_id();
9545
- _html(`<button${_attr_class(["_de", "_y"])}${_attr("title", `v${t.newest} is out; ${t.pin} holds ${t.label} at v${t.version}. Pin v${t.newest} instead`)}>${_text_resume($scope60_id, "b", t.newest)} available</button>${_el_resume($scope60_id, "a")}`);
9547
+ _html(`<button${_attr_class(["_fN", "_y"])}${_attr("title", `v${t.newest} is out; ${t.pin} holds ${t.label} at v${t.version}. Pin v${t.newest} instead`)}>${_text_resume($scope60_id, "b", t.newest)} available</button>${_el_resume($scope60_id, "a")}`);
9546
9548
  _script($scope60_id, "y75");
9547
9549
  _subscribe($for_content7__t_newest__closures, _subscribe($for_content7__t_pin__closures, _subscribe($for_content7__t_version__closures, _subscribe($for_content7__t_label__closures, writeScope($scope60_id, {
9548
9550
  Cw: 1,
@@ -9658,14 +9660,14 @@ var settings_page_default = _template("y", (input$3) => {
9658
9660
  label: "Dark"
9659
9661
  }
9660
9662
  ];
9661
- _html(`</div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_cg")}><h2${_attr("id", appearanceId)}${_attr_class("_ct")}>Appearance</h2></div><div${_attr_class(["_ck", "_du"])}><div${_attr_class("_dG")}><img${_attr_class("_dH")}${_attr("src", `/api/instance/icon${accent ? `?v=${accent.slice(1)}` : ""}`)} alt aria-hidden=true>${_el_resume($scope0_id, "av", $sg__input_instance_accent)}<span${_attr_class("_dI")}><span${_attr_class("_dJ")}>${_text_resume($scope0_id, "ay", input$3.instance.name || "work", _serialize_guard($scope0_reason, 7))}</span><span${_attr_class("_dK")}>Sidebar, tab title, home-screen icon and notifications</span></span></div><label${_attr_class("_dv")}><span${_attr_class("_dw")}>Name</span><input${_attr_input_value($scope0_id, "b2", input$3.instance.name, _resume(function(v) {
9663
+ _html(`</div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", appearanceId)}><div${_attr_class("_cg")}><h2${_attr("id", appearanceId)}${_attr_class("_ct")}>Appearance</h2></div><div${_attr_class(["_ck", "_f3"])}><div${_attr_class("_ge")}><img${_attr_class("_gf")}${_attr("src", `/api/instance/icon${accent ? `?v=${accent.slice(1)}` : ""}`)} alt aria-hidden=true>${_el_resume($scope0_id, "av", $sg__input_instance_accent)}<span${_attr_class("_gg")}><span${_attr_class("_gh")}>${_text_resume($scope0_id, "ay", input$3.instance.name || "work", _serialize_guard($scope0_reason, 7))}</span><span${_attr_class("_gi")}>Sidebar, tab title, home-screen icon and notifications</span></span></div><label${_attr_class("_f4")}><span${_attr_class("_f5")}>Name</span><input${_attr_input_value($scope0_id, "b2", input$3.instance.name, _resume(function(v) {
9662
9664
  setInstance({ name: v });
9663
- }, "y4", $scope0_id))}${_attr_class(["_Z", "_dx"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "b2")}</label><div${_attr_class("_dv")}><span${_attr_class("_dw")}>Theme</span><span${_attr_class("_dz")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
9665
+ }, "y4", $scope0_id))}${_attr_class(["_Z", "_f6"])} type=text placeholder=work maxlength=32 autocomplete=off spellcheck=false>${_el_resume($scope0_id, "b2")}</label><div${_attr_class("_f4")}><span${_attr_class("_f5")}>Theme</span><span${_attr_class("_f8")}><span${_attr_class(themeSeg)} role=radiogroup aria-label="Color theme">`);
9664
9666
  _for_of(themeOpts, (opt) => {
9665
9667
  const $scope50_id = _scope_id();
9666
9668
  _html(`<button type=button${_attr_class([
9667
9669
  "_bg",
9668
- "_dL",
9670
+ "_gj",
9669
9671
  { ["_bf"]: themeMode === opt.id }
9670
9672
  ])} role=radio aria-checked=${themeMode === opt.id ? "true" : "false"}>`);
9671
9673
  if (opt.id === "system") {
@@ -9685,28 +9687,28 @@ var settings_page_default = _template("y", (input$3) => {
9685
9687
  _: _scope_with_id($scope0_id)
9686
9688
  });
9687
9689
  }, "id", $scope0_id, "b6", 1, 0, 1, 0, 1);
9688
- _html(`</span><span${_attr_class(["_o", "_dA"])}>`);
9690
+ _html(`</span><span${_attr_class(["_o", "_f9"])}>`);
9689
9691
  _attr_select_value($scope0_id, "b8", themeMode, _resume(function(v) {
9690
9692
  setThemeMode(v);
9691
9693
  }, "y5", $scope0_id), () => {
9692
- _html(`<select${_attr_class(["_p", "_dB"])} aria-label="Color theme">`);
9694
+ _html(`<select${_attr_class(["_p", "_f_"])} aria-label="Color theme">`);
9693
9695
  forOf(themeOpts, (opt) => {
9694
9696
  _scope_id();
9695
9697
  _html(`<option${_attr_option_value(opt.id)}>${_escape(opt.label)}</option>`);
9696
9698
  });
9697
9699
  _html("</select>");
9698
9700
  });
9699
- _html(`${_el_resume($scope0_id, "b8")}</span></span></div><div${_attr_class("_dv")}><span${_attr_class("_dw")}>Accent</span><span${_attr_class("_dM")} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
9700
- "_dN",
9701
- "_dQ",
9702
- { ["_dO"]: !accent }
9701
+ _html(`${_el_resume($scope0_id, "b8")}</span></span></div><div${_attr_class("_f4")}><span${_attr_class("_f5")}>Accent</span><span${_attr_class("_gk")} role=radiogroup aria-label="Accent colour"><button type=button${_attr_class([
9702
+ "_gl",
9703
+ "_go",
9704
+ { ["_gm"]: !accent }
9703
9705
  ])} role=radio aria-checked=${!accent ? "true" : "false"} title="Default (blue)" aria-label="Default (blue)">`);
9704
9706
  _if(() => {
9705
9707
  if (!accent) {
9706
9708
  const $scope129_id = _scope_id();
9707
9709
  icon_check_default({
9708
9710
  size: 12,
9709
- class: "_dP"
9711
+ class: "_gn"
9710
9712
  });
9711
9713
  $si__input_instance_accent && writeScope($scope129_id, {});
9712
9714
  return 0;
@@ -9714,13 +9716,13 @@ var settings_page_default = _template("y", (input$3) => {
9714
9716
  }, $scope0_id, "bc", $sg__input_instance_accent, 1, 1, "</button>", 1);
9715
9717
  _for_of(ACCENT_PRESETS, (p) => {
9716
9718
  const $scope77_id = _scope_id();
9717
- _html(`<button type=button${_attr_class(["_dN", { ["_dO"]: accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}>`);
9719
+ _html(`<button type=button${_attr_class(["_gl", { ["_gm"]: accent === p.value }])}${_attr_style(`--swatch:${p.value}`)} role=radio aria-checked=${accent === p.value ? "true" : "false"}${_attr("title", p.name)}${_attr("aria-label", p.name)}>`);
9718
9720
  _if(() => {
9719
9721
  if (accent === p.value) {
9720
9722
  const $scope130_id = _scope_id();
9721
9723
  icon_check_default({
9722
9724
  size: 12,
9723
- class: "_dP"
9725
+ class: "_gn"
9724
9726
  });
9725
9727
  $si__input_instance_accent && writeScope($scope130_id, {});
9726
9728
  return 0;
@@ -9734,18 +9736,18 @@ var settings_page_default = _template("y", (input$3) => {
9734
9736
  }, "value", $scope0_id, "bd", $sg__input_instance_accent, 0, 1, 0, 1);
9735
9737
  const customOn = !!accent && !ACCENT_PRESETS.some((p) => p.value === accent);
9736
9738
  _html(`<label${_attr_class([
9737
- "_dN",
9738
- "_dR",
9739
- { ["_dO"]: customOn }
9739
+ "_gl",
9740
+ "_gp",
9741
+ { ["_gm"]: customOn }
9740
9742
  ])}${customOn ? _attr_style(`--swatch:${accent}`) : ""}${customOn ? _attr("title", `Custom ${accent}`) : " title=\"Custom colour\""}><input${_attr_input_value($scope0_id, "bf", accent || "#3556d8", _resume(function(v) {
9741
9743
  setInstance({ accent: v });
9742
- }, "y6", $scope0_id))}${_attr_class("_dS")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "bf")}`);
9744
+ }, "y6", $scope0_id))}${_attr_class("_gq")} type=color aria-label="Custom accent colour">${_el_resume($scope0_id, "bf")}`);
9743
9745
  _if(() => {
9744
9746
  if (customOn) {
9745
9747
  const $scope131_id = _scope_id();
9746
9748
  icon_check_default({
9747
9749
  size: 12,
9748
- class: "_dP"
9750
+ class: "_gn"
9749
9751
  });
9750
9752
  $si__input_instance_accent && writeScope($scope131_id, {});
9751
9753
  return 0;
@@ -9756,11 +9758,11 @@ var settings_page_default = _template("y", (input$3) => {
9756
9758
  return 1;
9757
9759
  }
9758
9760
  }, $scope0_id, "bg", $sg__input_instance_accent, $sg__input_instance_accent, 1, 0, 1);
9759
- _html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", backupId)}><div${_attr_class("_cg")}><h2${_attr("id", backupId)}${_attr_class("_ct")}>Backup</h2></div><div${_attr_class(["_ck", "_cL"])}><div${_attr_class("_cM")}><div${_attr_class("_dT")}><div${_attr_class("_cl")}>`);
9761
+ _html(`</label>${_el_resume($scope0_id, "be", $sg__input_instance_accent)}</span></div></div></section><section${_attr_class("_cf")}${_attr("aria-labelledby", backupId)}><div${_attr_class("_cg")}><h2${_attr("id", backupId)}${_attr_class("_ct")}>Backup</h2></div><div${_attr_class(["_ck", "_d1"])}><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
9760
9762
  _if(() => {
9761
9763
  if (backupBusy === "preflight") {
9762
9764
  const $scope65_id = _scope_id();
9763
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope65_id, "c", backupLine || "Checking workspaces…")}</span>`);
9765
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope65_id, "c", backupLine || "Checking workspaces…")}</span>`);
9764
9766
  writeScope($scope65_id, {});
9765
9767
  return 0;
9766
9768
  } else {
@@ -9783,7 +9785,7 @@ var settings_page_default = _template("y", (input$3) => {
9783
9785
  _if(() => {
9784
9786
  if (preflight && !backupBusy) {
9785
9787
  const $scope67_id = _scope_id();
9786
- _html(`<div${_attr_class("_dV")}><p${_attr_class("_dW")}>In the file: ${_text_resume($scope67_id, "c", preflight.contents.workspaces, 2)} workspace${_text_resume($scope67_id, "d", preflight.contents.workspaces === 1 ? "" : "s", 2)}${_text_resume($scope67_id, "e", preflight.contents.archived ? `${_to_text(" ")}(${_to_text(preflight.contents.archived)} archived)` : "", 2)} , ${_text_resume($scope67_id, "f", preflight.contents.tools, 2)} tool pin${_text_resume($scope67_id, "g", preflight.contents.tools === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "h", preflight.contents.skills, 2)} skill${_text_resume($scope67_id, "i", preflight.contents.skills === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "j", preflight.contents.agents, 2)} agent${_text_resume($scope67_id, "k", preflight.contents.agents === 1 ? "" : "s", 2)}.</p><p${_attr_class("_dW")}>Not in the file: `);
9788
+ _html(`<div${_attr_class("_gt")}><p${_attr_class("_gu")}>In the file: ${_text_resume($scope67_id, "c", preflight.contents.workspaces, 2)} workspace${_text_resume($scope67_id, "d", preflight.contents.workspaces === 1 ? "" : "s", 2)}${_text_resume($scope67_id, "e", preflight.contents.archived ? `${_to_text(" ")}(${_to_text(preflight.contents.archived)} archived)` : "", 2)} , ${_text_resume($scope67_id, "f", preflight.contents.tools, 2)} tool pin${_text_resume($scope67_id, "g", preflight.contents.tools === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "h", preflight.contents.skills, 2)} skill${_text_resume($scope67_id, "i", preflight.contents.skills === 1 ? "" : "s", 2)}, ${_text_resume($scope67_id, "j", preflight.contents.agents, 2)} agent${_text_resume($scope67_id, "k", preflight.contents.agents === 1 ? "" : "s", 2)}.</p><p${_attr_class("_gu")}>Not in the file: `);
9787
9789
  _if(() => {
9788
9790
  if (preflight.unpushed) {
9789
9791
  const $scope68_id = _scope_id();
@@ -9800,15 +9802,15 @@ var settings_page_default = _template("y", (input$3) => {
9800
9802
  return 0;
9801
9803
  }
9802
9804
  }, $scope67_id, "m");
9803
- _html(`${_text_resume($scope67_id, "n", preflight.files ? `${_to_text(" ")}${_to_text(preflight.files)} uncommitted file${_to_text(preflight.files === 1 ? "" : "s")}` : "", 2)} .</p><ul${_attr_class("_dX")}>`);
9805
+ _html(`${_text_resume($scope67_id, "n", preflight.files ? `${_to_text(" ")}${_to_text(preflight.files)} uncommitted file${_to_text(preflight.files === 1 ? "" : "s")}` : "", 2)} .</p><ul${_attr_class("_gv")}>`);
9804
9806
  _for_of(preflight.workspaces, (w) => {
9805
9807
  const $scope135_id = _scope_id();
9806
9808
  const $for_content18__w_name__closures = /* @__PURE__ */ new Set();
9807
- _html(`<li${_attr_class("_dY")}><span${_attr_class("_cm")}>${_text_resume($scope135_id, "c", w.name)}</span><ul${_attr_class("_dX")}>`);
9809
+ _html(`<li${_attr_class("_gw")}><span${_attr_class("_cm")}>${_text_resume($scope135_id, "c", w.name)}</span><ul${_attr_class("_gv")}>`);
9808
9810
  _for_of(w.repos, (r) => {
9809
9811
  const $scope136_id = _scope_id();
9810
9812
  const $for_content19__r_more__closures = /* @__PURE__ */ new Set();
9811
- _html(`<li${_attr_class("_dZ")}><span${_attr_class("_d0")}><span${_attr_class("_y")}>${_text_resume($scope136_id, "d", r.worktree)}/</span>`);
9813
+ _html(`<li${_attr_class("_gx")}><span${_attr_class("_gy")}><span${_attr_class("_y")}>${_text_resume($scope136_id, "d", r.worktree)}/</span>`);
9812
9814
  _for_of(r.unpushed, (b) => {
9813
9815
  const $scope137_id = _scope_id();
9814
9816
  _html(`<span${_attr_class(["_N", tone.warn])}${_attr("title", `${b.branch}: ${b.count} commit${b.count === 1 ? "" : "s"} origin does not have`)}>${_text_resume($scope137_id, "b", b.count)} unpushed `);
@@ -9827,10 +9829,10 @@ var settings_page_default = _template("y", (input$3) => {
9827
9829
  _if(() => {
9828
9830
  if (r.modified.length || r.untracked.length || r.ignored.length) {
9829
9831
  const $scope138_id = _scope_id();
9830
- _html(`<ul${_attr_class("_d1")}>`);
9832
+ _html(`<ul${_attr_class("_gz")}>`);
9831
9833
  _for_of(r.modified, (f) => {
9832
9834
  const $scope141_id = _scope_id();
9833
- _html(`<li${_attr_class("_d2")}><span${_attr_class([
9835
+ _html(`<li${_attr_class("_gA")}><span${_attr_class([
9834
9836
  "_N",
9835
9837
  "_P",
9836
9838
  tone.warn
@@ -9839,18 +9841,18 @@ var settings_page_default = _template("y", (input$3) => {
9839
9841
  }, (f) => f, $scope138_id, "b", 1, 1, 1, 0, 1);
9840
9842
  _for_of(r.untracked, (f) => {
9841
9843
  const $scope142_id = _scope_id();
9842
- _html(`<li${_attr_class("_d2")}><span${_attr_class(["_N", "_P"])} title=Untracked>?</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope142_id, "d", f)}</span></li>`);
9844
+ _html(`<li${_attr_class("_gA")}><span${_attr_class(["_N", "_P"])} title=Untracked>?</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope142_id, "d", f)}</span></li>`);
9843
9845
  writeScope($scope142_id, {});
9844
9846
  }, (f) => f, $scope138_id, "c", 1, 1, 1, 0, 1);
9845
9847
  _for_of(r.ignored, (f) => {
9846
9848
  const $scope143_id = _scope_id();
9847
- _html(`<li${_attr_class("_d2")}><span${_attr_class(["_N", "_P"])} title="Ignored by git — a restore cannot bring it back">ignored</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope143_id, "d", f)}</span></li>`);
9849
+ _html(`<li${_attr_class("_gA")}><span${_attr_class(["_N", "_P"])} title="Ignored by git — a restore cannot bring it back">ignored</span><span${_attr_class(["_y", "_bb"])}>${_text_resume($scope143_id, "d", f)}</span></li>`);
9848
9850
  writeScope($scope143_id, {});
9849
9851
  }, (f) => f, $scope138_id, "d", 1, 1, 1, 0, 1);
9850
9852
  _if(() => {
9851
9853
  if (r.more) {
9852
9854
  const $scope139_id = _scope_id();
9853
- _html(`<li${_attr_class(["_d2", "_x"])}>+${_text_resume($scope139_id, "b", r.more, 2)} more</li>`);
9855
+ _html(`<li${_attr_class(["_gA", "_x"])}>+${_text_resume($scope139_id, "b", r.more, 2)} more</li>`);
9854
9856
  _subscribe($for_content19__r_more__closures, writeScope($scope139_id, {}));
9855
9857
  return 0;
9856
9858
  }
@@ -9875,17 +9877,17 @@ var settings_page_default = _template("y", (input$3) => {
9875
9877
  i: $for_content18__w_name__closures
9876
9878
  });
9877
9879
  }, "id", $scope67_id, "o", 1, 1, 1, "</ul>", 1);
9878
- _html(`<div${_attr_class("_d3")}><button${_attr_class([btnSm, { ["_r"]: !preflight.unpushed }])}>${_text_resume($scope67_id, "r", preflight.unpushed ? "Export anyway" : "Export")}</button>${_el_resume($scope67_id, "q")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope67_id, "s")}</div></div>`);
9880
+ _html(`<div${_attr_class("_gB")}><button${_attr_class([btnSm, { ["_r"]: !preflight.unpushed }])}>${_text_resume($scope67_id, "r", preflight.unpushed ? "Export anyway" : "Export")}</button>${_el_resume($scope67_id, "q")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope67_id, "s")}</div></div>`);
9879
9881
  _script($scope67_id, "y81");
9880
9882
  writeScope($scope67_id, {});
9881
9883
  return 0;
9882
9884
  }
9883
9885
  }, $scope0_id, "bp", 1, 1, 1, 0, 1);
9884
- _html(`</div><div${_attr_class("_cM")}><div${_attr_class("_dT")}><div${_attr_class("_cl")}>`);
9886
+ _html(`</div><div${_attr_class("_d2")}><div${_attr_class("_gr")}><div${_attr_class("_cl")}>`);
9885
9887
  _if(() => {
9886
9888
  if (backupBusy === "restore") {
9887
9889
  const $scope66_id = _scope_id();
9888
- _html(`<span${_attr_class("_c0")}><span${_attr_class("_G")}></span>${_text_resume($scope66_id, "c", backupLine || "Restoring…")}</span>`);
9890
+ _html(`<span${_attr_class("_fy")}><span${_attr_class("_G")}></span>${_text_resume($scope66_id, "c", backupLine || "Restoring…")}</span>`);
9889
9891
  writeScope($scope66_id, {});
9890
9892
  return 0;
9891
9893
  } else if (restoreDone) {
@@ -9903,7 +9905,7 @@ var settings_page_default = _template("y", (input$3) => {
9903
9905
  _if(() => {
9904
9906
  if (!restorePreview && backupBusy !== "restore") {
9905
9907
  const $scope76_id = _scope_id();
9906
- _html(`<label${_attr_class(btnSm)} title="Pick a work backup file">Restore… <input${_attr_class("_dU")} type=file accept=application/json,.json aria-label="Backup file">${_el_resume($scope76_id, "b")}</label>`);
9908
+ _html(`<label${_attr_class(btnSm)} title="Pick a work backup file">Restore… <input${_attr_class("_gs")} type=file accept=application/json,.json aria-label="Backup file">${_el_resume($scope76_id, "b")}</label>`);
9907
9909
  _script($scope76_id, "y82");
9908
9910
  writeScope($scope76_id, {});
9909
9911
  return 0;
@@ -9914,14 +9916,14 @@ var settings_page_default = _template("y", (input$3) => {
9914
9916
  if (restorePreview && backupBusy !== "restore") {
9915
9917
  const $scope69_id = _scope_id();
9916
9918
  const { preview } = restorePreview;
9917
- _html(`<div${_attr_class("_dV")}><p${_attr_class("_dW")}>From ${_text_resume($scope69_id, "c", preview.from.host, 2)} on ${_text_resume($scope69_id, "d", new Date(preview.from.exportedAt).toLocaleDateString(), 2)}${_text_resume($scope69_id, "e", preview.from.version ? ` (work ${preview.from.version})` : "", 2)}.</p>`);
9919
+ _html(`<div${_attr_class("_gt")}><p${_attr_class("_gu")}>From ${_text_resume($scope69_id, "c", preview.from.host, 2)} on ${_text_resume($scope69_id, "d", new Date(preview.from.exportedAt).toLocaleDateString(), 2)}${_text_resume($scope69_id, "e", preview.from.version ? ` (work ${preview.from.version})` : "", 2)}.</p>`);
9918
9920
  _if(() => {
9919
9921
  if (preview.workspaces.length) {
9920
9922
  const $scope70_id = _scope_id();
9921
9923
  _html(`<ul${_attr_class(checkList)}>`);
9922
9924
  _for_of(preview.workspaces, (w) => {
9923
9925
  const $scope71_id = _scope_id();
9924
- _html(`<li><label${_attr_class(["_d5", { ["_d7"]: w.exists || !!w.unknownHost }])}><input${_attr_input_checked($scope71_id, "b", restoreWs.has(w.id))}${_attr_class("_d6")} type=checkbox${_attr("disabled", w.exists || !!w.unknownHost)}>${_el_resume($scope71_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope71_id, "f", w.name)}</span>`);
9926
+ _html(`<li><label${_attr_class(["_gD", { ["_gF"]: w.exists || !!w.unknownHost }])}><input${_attr_input_checked($scope71_id, "b", restoreWs.has(w.id))}${_attr_class("_gE")} type=checkbox${_attr("disabled", w.exists || !!w.unknownHost)}>${_el_resume($scope71_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cn")}><span${_attr_class("_cm")}>${_text_resume($scope71_id, "f", w.name)}</span>`);
9925
9927
  _if(() => {
9926
9928
  if (w.status === "archived") {
9927
9929
  const $scope148_id = _scope_id();
@@ -9994,7 +9996,7 @@ var settings_page_default = _template("y", (input$3) => {
9994
9996
  _if(() => {
9995
9997
  if (p.total) {
9996
9998
  const $scope73_id = _scope_id();
9997
- _html(`<li><label${_attr_class(["_d5", { ["_d7"]: !p.missing.length && p.key !== "settings" }])}><input${_attr_input_checked($scope73_id, "b", restoreParts[p.key])}${_attr_class("_d6")} type=checkbox${_attr("disabled", !p.missing.length && p.key !== "settings")}>${_el_resume($scope73_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope73_id, "e", p.label)}</span><span${_attr_class("_co")}>`);
9999
+ _html(`<li><label${_attr_class(["_gD", { ["_gF"]: !p.missing.length && p.key !== "settings" }])}><input${_attr_input_checked($scope73_id, "b", restoreParts[p.key])}${_attr_class("_gE")} type=checkbox${_attr("disabled", !p.missing.length && p.key !== "settings")}>${_el_resume($scope73_id, "b")}<span${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope73_id, "e", p.label)}</span><span${_attr_class("_co")}>`);
9998
10000
  _if(() => {
9999
10001
  if (p.key === "settings") {
10000
10002
  const $scope145_id = _scope_id();
@@ -10041,7 +10043,7 @@ var settings_page_default = _template("y", (input$3) => {
10041
10043
  i: $for_content10__p_total__closures
10042
10044
  });
10043
10045
  }, "key", $scope69_id, "h");
10044
- _html(`</ul><div${_attr_class("_d3")}><button${_attr_class([btnSm, "_r"])}${_attr("disabled", !restoreWs.size && !Object.values(restoreParts).some(Boolean))}>Restore</button>${_el_resume($scope69_id, "j")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope69_id, "k")}</div></div>`);
10046
+ _html(`</ul><div${_attr_class("_gB")}><button${_attr_class([btnSm, "_r"])}${_attr("disabled", !restoreWs.size && !Object.values(restoreParts).some(Boolean))}>Restore</button>${_el_resume($scope69_id, "j")}<button${_attr_class(btnSm)}>Cancel</button>${_el_resume($scope69_id, "k")}</div></div>`);
10045
10047
  _script($scope69_id, "y85");
10046
10048
  writeScope($scope69_id, {});
10047
10049
  return 0;
@@ -10326,7 +10328,7 @@ function activeAgent(session) {
10326
10328
  const command = session.state?.command?.trim();
10327
10329
  return command && agentFromCommand(command) || session.agent;
10328
10330
  }
10329
- var rowState = "_e6 _N";
10331
+ var rowState = "_c_ _N";
10330
10332
  //#endregion
10331
10333
  //#region src/client/arm.ts
10332
10334
  /** Two-step destructive controls: first click arms (label/colour flips),
@@ -10337,12 +10339,12 @@ var ARM_MS = 3500;
10337
10339
  function disarmLater(fn) {
10338
10340
  return setTimeout(fn, ARM_MS);
10339
10341
  }
10340
- var prChip = "_hJ _u _hI";
10341
- var portChip = "_hK _u _hI";
10342
+ var prChip = "_hv _u _hu";
10343
+ var portChip = "_hw _u _hu";
10342
10344
  var prState = {
10343
- open: "_hO",
10344
- merged: "_hP",
10345
- closed: "_hQ"
10345
+ open: "_hA",
10346
+ merged: "_hB",
10347
+ closed: "_hC"
10346
10348
  };
10347
10349
  //#endregion
10348
10350
  //#region src/tags/icons/icon-diff.marko
@@ -10433,7 +10435,7 @@ var side_nav_chips_default = _template("z", (input) => {
10433
10435
  const name = repo.full_name.split("/").at(-1);
10434
10436
  return repos.some((r) => r.full_name !== repo.full_name && r.full_name.split("/").at(-1) === name) ? repoLabel(repo.full_name) : name;
10435
10437
  }, "z4", $scope1_id);
10436
- _html(`<div${_attr_class("_hH")}>`);
10438
+ _html(`<div${_attr_class("_ht")}>`);
10437
10439
  _for_of(repos, (repo) => {
10438
10440
  const $scope2_id = _scope_id();
10439
10441
  const $for_content__repo_worktree__closures = /* @__PURE__ */ new Set();
@@ -10449,11 +10451,11 @@ var side_nav_chips_default = _template("z", (input) => {
10449
10451
  [prState.merged]: pr$1.state === "MERGED",
10450
10452
  [prState.closed]: pr$1.state === "CLOSED"
10451
10453
  }
10452
- ])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["_hL", { ["_hT"]: !open }])}${_attr("href", pr$1.url)} target=_blank rel=noopener>${_text_resume($scope3_id, "c", repoLabel$1(repo))}#${_text_resume($scope3_id, "d", pr$1.number, 2)}</a>${_el_resume($scope3_id, "b")}`);
10454
+ ])}${_attr("title", prTitle(repo, pr$1))}><a${_attr_class(["_hx", { ["_hF"]: !open }])}${_attr("href", pr$1.url)} target=_blank rel=noopener>${_text_resume($scope3_id, "c", repoLabel$1(repo))}#${_text_resume($scope3_id, "d", pr$1.number, 2)}</a>${_el_resume($scope3_id, "b")}`);
10453
10455
  _if(() => {
10454
10456
  if (open) {
10455
10457
  const $scope4_id = _scope_id();
10456
- _html(`<a${_attr_class(["_hL", "_hM"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr$1.number}`)}`)}${_attr("title", `Review #${pr$1.number} changes`)}>`);
10458
+ _html(`<a${_attr_class(["_hx", "_hy"])}${_attr("href", `/w/${input.workspaceId}/review?pr=${encodeURIComponent(`${repo.worktree}/${pr$1.number}`)}`)}${_attr("title", `Review #${pr$1.number} changes`)}>`);
10457
10459
  icon_diff_default({ size: 12 });
10458
10460
  _html(`</a>${_el_resume($scope4_id, "a")}`);
10459
10461
  _subscribe($for_content__repo_worktree__closures, _subscribe($si__input_workspaceId && $input_workspaceId__closures, writeScope($scope4_id, {})));
@@ -10461,9 +10463,9 @@ var side_nav_chips_default = _template("z", (input) => {
10461
10463
  } else {
10462
10464
  const $scope6_id = _scope_id();
10463
10465
  _html(`<button type=button${_attr_class([
10464
- "_hL",
10465
- "_hM",
10466
- "_hN"
10466
+ "_hx",
10467
+ "_hy",
10468
+ "_hz"
10467
10469
  ])}${_attr("title", `Dismiss #${pr$1.number}`)}>`);
10468
10470
  icon_xmark_default({ size: 12 });
10469
10471
  _html(`</button>${_el_resume($scope6_id, "a")}`);
@@ -10491,21 +10493,21 @@ var side_nav_chips_default = _template("z", (input) => {
10491
10493
  _if(() => {
10492
10494
  if (dead.has(p.port)) {
10493
10495
  const $scope7_id = _scope_id();
10494
- _html(`<span${_attr_class(["_hL", "_hR"])}${_attr("title", dead.get(p.port))} aria-disabled=true>:${_text_resume($scope7_id, "b", p.port, 2)}</span>${_el_resume($scope7_id, "a")}`);
10496
+ _html(`<span${_attr_class(["_hx", "_hD"])}${_attr("title", dead.get(p.port))} aria-disabled=true>:${_text_resume($scope7_id, "b", p.port, 2)}</span>${_el_resume($scope7_id, "a")}`);
10495
10497
  _subscribe($dead__closures, writeScope($scope7_id, { Ca3: 1 }));
10496
10498
  return 0;
10497
10499
  } else {
10498
10500
  const $scope8_id = _scope_id();
10499
- _html(`<button type=button${_attr_class(["_hL", "_hS"])}${_attr("title", `Open port ${p.port}`)}>:${_text_resume($scope8_id, "b", p.port, 2)}</button>${_el_resume($scope8_id, "a")}`);
10501
+ _html(`<button type=button${_attr_class(["_hx", "_hE"])}${_attr("title", `Open port ${p.port}`)}>:${_text_resume($scope8_id, "b", p.port, 2)}</button>${_el_resume($scope8_id, "a")}`);
10500
10502
  _script($scope8_id, "z6");
10501
10503
  writeScope($scope8_id, {});
10502
10504
  return 1;
10503
10505
  }
10504
10506
  }, $scope5_id, "b", 1, 1, 1, 0, 1);
10505
10507
  _html(`<button type=button${_attr_class([
10506
- "_hL",
10507
- "_hM",
10508
- "_hN",
10508
+ "_hx",
10509
+ "_hy",
10510
+ "_hz",
10509
10511
  { ["_s"]: armedPid === p.pid }
10510
10512
  ])}${armedPid === p.pid ? " title=Kill?" : _attr("title", `Kill ${p.cmd} (pid ${p.pid})`)}>`);
10511
10513
  icon_xmark_default({ size: 12 });
@@ -10548,16 +10550,16 @@ var side_nav_chips_default = _template("z", (input) => {
10548
10550
  });
10549
10551
  _resume_branch($scope0_id);
10550
10552
  });
10551
- var railBtn = "_fv _l";
10552
- var wsBtn = "_fA _I";
10553
- var rowIcon = "_fD _4 _l";
10554
- var close = "_fE _7 _l _8";
10555
- var sessRename$1 = "_fP _J";
10556
- var sessBtn$1 = "_fR _I";
10553
+ var railBtn = "_dq _l";
10554
+ var wsBtn = "_dv _I";
10555
+ var rowIcon = "_dy _4 _l";
10556
+ var close = "_dz _7 _l _8";
10557
+ var sessRename$1 = "_dK _J";
10558
+ var sessBtn$1 = "_dM _I";
10557
10559
  //#endregion
10558
10560
  //#region src/styles/session-pop.css.ts
10559
- var sessionPop = "_e8 __";
10560
- var sessionPopBtn = "_e9 _I";
10561
+ var sessionPop = "_dm __";
10562
+ var sessionPopBtn = "_dn _I";
10561
10563
  //#endregion
10562
10564
  //#region src/tags/icons/icon-manage.marko
10563
10565
  var icon_manage_default = _template("hb", (input) => {
@@ -10586,22 +10588,22 @@ var usage_pcts_default = _template("I", (input) => {
10586
10588
  if (windows.length) {
10587
10589
  const $scope1_id = _scope_id();
10588
10590
  _html(`<span${_attr_class([
10589
- "_gZ",
10591
+ "_gG",
10590
10592
  input.class,
10591
- { ["_g0"]: agent.stale_seconds != null }
10593
+ { ["_gH"]: agent.stale_seconds != null }
10592
10594
  ])}${agent.stale_seconds != null ? _attr("title", `${agent.note || "provider unreachable"}; last cached numbers`) : " title=\"Plan usage\""}>`);
10593
10595
  _for_of(windows, (win$1, i) => {
10594
10596
  const $scope2_id = _scope_id();
10595
- _html(`<span${_attr_class("_g1")}>`);
10597
+ _html(`<span${_attr_class("_gI")}>`);
10596
10598
  _if(() => {
10597
10599
  if (i) {
10598
10600
  const $scope3_id = _scope_id();
10599
- _html(`<span${_attr_class("_g4")} aria-hidden=true>·</span>`);
10601
+ _html(`<span${_attr_class("_gL")} aria-hidden=true>·</span>`);
10600
10602
  $si__input_agent && writeScope($scope3_id, {});
10601
10603
  return 0;
10602
10604
  }
10603
10605
  }, $scope2_id, "b", $sg__input_agent, $sg__input_agent, $sg__input_agent, 0, 1);
10604
- _html(`<span${_attr_class("_g2")}>${_text_resume($scope2_id, "d", win$1.window, $sg__input_agent)}</span><span${_attr_class(["_g3", win$1.used_percent >= 90 ? "_hn" : win$1.used_percent >= 70 ? "_hm" : win$1.used_percent >= 40 ? "_hl" : "_hk"])}>${_text_resume($scope2_id, "f", pctText(win$1.used_percent), $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
10606
+ _html(`<span${_attr_class("_gJ")}>${_text_resume($scope2_id, "d", win$1.window, $sg__input_agent)}</span><span${_attr_class(["_gK", win$1.used_percent >= 90 ? "_hp" : win$1.used_percent >= 70 ? "_ho" : win$1.used_percent >= 40 ? "_hn" : "_hm"])}>${_text_resume($scope2_id, "f", pctText(win$1.used_percent), $sg__input_agent)}</span>${_el_resume($scope2_id, "e", $sg__input_agent)}</span>`);
10605
10607
  $si__input_agent && writeScope($scope2_id, {});
10606
10608
  }, "window", $scope1_id, "a", $sg__input_agent, $sg__input_agent__OR__input_class, $sg__input_agent, "</span>", 1);
10607
10609
  $si__input_agent__OR__input_class && writeScope($scope1_id, { _: _scope_with_id($scope0_id) });
@@ -10712,7 +10714,7 @@ var side_nav_item_default = _template("A", (input) => {
10712
10714
  _if(() => {
10713
10715
  if (input.rail) {
10714
10716
  const $scope2_id = _scope_id();
10715
- _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_ft"]: input.current }])}${ws$1.pending ? _attr("title", `${ws$1.name} — restoring`) : _attr("title", ws$1.name)}>${_text_resume($scope2_id, "b", input.index === void 0 ? "·" : input.index + 1, _serialize_guard($scope0_reason, 27))}<span${_attr_class([
10717
+ _html(`<a${_attr("href", `/w/${ws$1.id}`)}${_attr_class([railBtn, { ["_do"]: input.current }])}${ws$1.pending ? _attr("title", `${ws$1.name} — restoring`) : _attr("title", ws$1.name)}>${_text_resume($scope2_id, "b", input.index === void 0 ? "·" : input.index + 1, _serialize_guard($scope0_reason, 27))}<span${_attr_class([
10716
10718
  "_A",
10717
10719
  phase[dot$1],
10718
10720
  "_bc"
@@ -10722,34 +10724,34 @@ var side_nav_item_default = _template("A", (input) => {
10722
10724
  } else if (ws$1.pending) {
10723
10725
  const $scope3_id = _scope_id();
10724
10726
  _html(`<section${_attr_class([
10725
- "_fx",
10726
- "_fT",
10727
+ "_ds",
10728
+ "_dO",
10727
10729
  {
10728
- ["_fy"]: input.railPop,
10729
- ["_fw"]: input.page
10730
+ ["_dt"]: input.railPop,
10731
+ ["_dr"]: input.page
10730
10732
  }
10731
- ])} aria-busy=${ws$1.pending_error ? "false" : "true"}><div${_attr_class("_fz")}><div${_attr_class(wsBtn)}>`);
10733
+ ])} aria-busy=${ws$1.pending_error ? "false" : "true"}><div${_attr_class("_du")}><div${_attr_class(wsBtn)}>`);
10732
10734
  _if(() => {
10733
10735
  if (ws$1.pending_error) {
10734
10736
  const $scope15_id = _scope_id();
10735
10737
  icon_warning_default({
10736
10738
  size: 12,
10737
- class: "_fV"
10739
+ class: "_dQ"
10738
10740
  });
10739
10741
  $si__input_workspace && writeScope($scope15_id, {});
10740
10742
  return 0;
10741
10743
  } else {
10742
10744
  const $scope16_id = _scope_id();
10743
- _html(`<span${_attr_class(["_G", "_fU"])}></span>`);
10745
+ _html(`<span${_attr_class(["_G", "_dP"])}></span>`);
10744
10746
  $si__input_workspace && writeScope($scope16_id, {});
10745
10747
  return 1;
10746
10748
  }
10747
10749
  }, $scope3_id, "d", $sg__input_workspace, $sg__input_workspace, 1, 0, 1);
10748
- _html(`<span${_attr_class("_fG")}><span${_attr_class("_fH")}>${_text_resume($scope3_id, "g", ws$1.name, $sg__input_workspace)}</span><span${_attr_class("_fX")}${_attr("title", ws$1.pending_error || restoreLine)}>${_text_resume($scope3_id, "i", ws$1.pending_error ? `Restore failed: ${ws$1.pending_error}` : restoreLine || "Restoring…")}</span>${_el_resume($scope3_id, "h")}</span></div></div>`);
10750
+ _html(`<span${_attr_class("_dB")}><span${_attr_class("_dC")}>${_text_resume($scope3_id, "g", ws$1.name, $sg__input_workspace)}</span><span${_attr_class("_dS")}${_attr("title", ws$1.pending_error || restoreLine)}>${_text_resume($scope3_id, "i", ws$1.pending_error ? `Restore failed: ${ws$1.pending_error}` : restoreLine || "Restoring…")}</span>${_el_resume($scope3_id, "h")}</span></div></div>`);
10749
10751
  _if(() => {
10750
10752
  if (ws$1.pending_error && !retrying) {
10751
10753
  const $scope14_id = _scope_id();
10752
- _html(`<div${_attr_class("_fW")}><button type=button${_attr_class(["_q", btnSm])} title="Run the restore again">Retry</button>${_el_resume($scope14_id, "b")}<button type=button${_attr_class([
10754
+ _html(`<div${_attr_class("_dR")}><button type=button${_attr_class(["_q", btnSm])} title="Run the restore again">Retry</button>${_el_resume($scope14_id, "b")}<button type=button${_attr_class([
10753
10755
  "_q",
10754
10756
  btnSm,
10755
10757
  { ["_s"]: armedDelete }
@@ -10769,15 +10771,15 @@ var side_nav_item_default = _template("A", (input) => {
10769
10771
  const $scope4_id = _scope_id();
10770
10772
  const sessions$1 = input.sessions || [];
10771
10773
  const phaseLabel = dot$1 === "working" ? "Working" : dot$1 === "waiting" ? "Needs input" : dot$1 === "idle" ? "Idle" : "Not running";
10772
- _html(`<section${_attr_class(["_fx", {
10773
- ["_ft"]: input.current,
10774
+ _html(`<section${_attr_class(["_ds", {
10775
+ ["_do"]: input.current,
10774
10776
  ["_bd"]: input.current,
10775
- ["_fy"]: input.railPop,
10776
- ["_fw"]: input.page
10777
- }])}><div${_attr_class("_fz")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class(wsBtn)}><span${_attr_class([
10777
+ ["_dt"]: input.railPop,
10778
+ ["_dr"]: input.page
10779
+ }])}><div${_attr_class("_du")}><a${_attr("href", `/w/${ws$1.id}`)}${_attr_class(wsBtn)}><span${_attr_class([
10778
10780
  "_A",
10779
10781
  phase[dot$1],
10780
- "_fL"
10782
+ "_dG"
10781
10783
  ])}${_attr("title", phaseLabel)}></span>${_el_resume($scope4_id, "d", $sg__input_status)}`);
10782
10784
  _if(() => {
10783
10785
  if (sessions$1.length === 1) {
@@ -10790,7 +10792,7 @@ var side_nav_item_default = _template("A", (input) => {
10790
10792
  icon_agent_default({
10791
10793
  agent: activeAgent(sessions$1[0]),
10792
10794
  size: 12,
10793
- class: "_fF"
10795
+ class: "_dA"
10794
10796
  });
10795
10797
  $si__input_sessions && writeScope($scope17_id, {
10796
10798
  _: _scope_with_id($scope4_id),
@@ -10800,11 +10802,11 @@ var side_nav_item_default = _template("A", (input) => {
10800
10802
  }
10801
10803
  }, $scope4_id, "e", $sg__input_sessions, $sg__input_sessions);
10802
10804
  const metaText = sessions$1.length === 0 ? phaseLabel : sessions$1.length > 1 ? `${sessions$1.length} sessions` : "";
10803
- _html(`<span${_attr_class("_fG")}><span${_attr_class("_fH")}>${_text_resume($scope4_id, "h", ws$1.name, $sg__input_workspace)}</span>`);
10805
+ _html(`<span${_attr_class("_dB")}><span${_attr_class("_dC")}>${_text_resume($scope4_id, "h", ws$1.name, $sg__input_workspace)}</span>`);
10804
10806
  _if(() => {
10805
10807
  if (input.page && metaText) {
10806
10808
  const $scope18_id = _scope_id();
10807
- _html(`<span${_attr_class("_fK")}>${_text_resume($scope18_id, "b", metaText, _serialize_guard($scope0_reason, 3))}</span>`);
10809
+ _html(`<span${_attr_class("_dF")}>${_text_resume($scope18_id, "b", metaText, _serialize_guard($scope0_reason, 3))}</span>`);
10808
10810
  $si__input_page__OR__input_sessions__OR__input_status && writeScope($scope18_id, { _: _serialize_if($scope0_reason, 3) && _scope_with_id($scope4_id) });
10809
10811
  return 0;
10810
10812
  }
@@ -10813,7 +10815,7 @@ var side_nav_item_default = _template("A", (input) => {
10813
10815
  _if(() => {
10814
10816
  if (!input.page) {
10815
10817
  const $scope5_id = _scope_id();
10816
- _html(`<div${_attr_class("_fB")}>`);
10818
+ _html(`<div${_attr_class("_dw")}>`);
10817
10819
  _if(() => {
10818
10820
  if (input.onNewSession) {
10819
10821
  const $scope6_id = _scope_id();
@@ -10862,7 +10864,7 @@ var side_nav_item_default = _template("A", (input) => {
10862
10864
  return 0;
10863
10865
  }
10864
10866
  }, $scope5_id, "c", $sg__input_onReview, $sg__input_onReview, $sg__input_onNewSession__OR__input_onReview, 0, 1);
10865
- _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_fu"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
10867
+ _html(`<a${input.managing ? _attr("href", `/w/${ws$1.id}`) : _attr("href", `/w/${ws$1.id}/manage`)}${_attr_class([rowIcon, { ["_dp"]: input.managing }])} title=${input.managing ? "\"Back to terminal\"" : "\"Manage workspace\""}${input.managing ? " aria-current=page" : ""}>`);
10866
10868
  icon_manage_default({ size: 12 });
10867
10869
  _html(`</a>${_el_resume($scope5_id, "d", _serialize_guard($scope0_reason, 4))}</div>`);
10868
10870
  _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_managing && $input_managing__closures, _subscribe($si__input_onReview && $input_onReview__closures, _subscribe($si__input_onNewSession && $input_onNewSession__closures, writeScope($scope5_id, {
@@ -10872,7 +10874,7 @@ var side_nav_item_default = _template("A", (input) => {
10872
10874
  return 0;
10873
10875
  }
10874
10876
  }, $scope4_id, "j", $sg__input_page, $sg__input_page, 1, 0, 1);
10875
- _html(`</div><div${_attr_class("_fQ")}>`);
10877
+ _html(`</div><div${_attr_class("_dL")}>`);
10876
10878
  _if(() => {
10877
10879
  if (sessions$1.length === 1 && openPlan) {
10878
10880
  const $scope11_id = _scope_id();
@@ -10880,7 +10882,7 @@ var side_nav_item_default = _template("A", (input) => {
10880
10882
  const $childScope3 = _peek_scope_id();
10881
10883
  usage_pcts_default({
10882
10884
  agent: openPlan,
10883
- class: "_fI"
10885
+ class: "_dD"
10884
10886
  });
10885
10887
  _subscribe($openPlan__closures, writeScope($scope11_id, {
10886
10888
  a: _existing_scope($childScope3),
@@ -10891,14 +10893,14 @@ var side_nav_item_default = _template("A", (input) => {
10891
10893
  }, $scope4_id, "l");
10892
10894
  _for_of(sessions$1.length > 1 ? sessions$1 : [], (s) => {
10893
10895
  const $scope8_id = _scope_id();
10894
- _html(`<div${_attr_class(["_fC", { ["_ft"]: s.id === input.currentTab }])}>`);
10896
+ _html(`<div${_attr_class(["_dx", { ["_do"]: s.id === input.currentTab }])}>`);
10895
10897
  _if(() => {
10896
10898
  if (renamingId === s.id) {
10897
10899
  const $scope10_id = _scope_id();
10898
10900
  _html(`<span${_attr_class([
10899
10901
  "_A",
10900
10902
  phase[sessionPhase(s.state)],
10901
- "_fO"
10903
+ "_dJ"
10902
10904
  ])}></span>${_el_resume($scope10_id, "a", $sg__input_sessions)}`);
10903
10905
  _set_serialize_reason({
10904
10906
  1: $sg__input_sessions,
@@ -10908,7 +10910,7 @@ var side_nav_item_default = _template("A", (input) => {
10908
10910
  icon_agent_default({
10909
10911
  agent: activeAgent(s),
10910
10912
  size: 12,
10911
- class: "_fS"
10913
+ class: "_dN"
10912
10914
  });
10913
10915
  _html(`<input${_attr_input_value($scope10_id, "c", renameValue, _resume((_new_renameValue) => {
10914
10916
  renameValue = _new_renameValue;
@@ -10927,9 +10929,9 @@ var side_nav_item_default = _template("A", (input) => {
10927
10929
  icon_agent_default({
10928
10930
  agent: activeAgent(s),
10929
10931
  size: 12,
10930
- class: "_fS"
10932
+ class: "_dN"
10931
10933
  });
10932
- _html(`<span${_attr_class("_fM")}>${_text_resume($scope9_id, "e", s.title || activeAgent(s), $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 2))}<div${_attr_class("_fN")}><button${_attr_class(rowIcon)} title="Rename session">`);
10934
+ _html(`<span${_attr_class("_dH")}>${_text_resume($scope9_id, "e", s.title || activeAgent(s), $sg__input_sessions)}</span></a>${_el_resume($scope9_id, "a", _serialize_guard($scope0_reason, 2))}<div${_attr_class("_dI")}><button${_attr_class(rowIcon)} title="Rename session">`);
10933
10935
  icon_edit_default({ size: 12 });
10934
10936
  _html(`</button>${_el_resume($scope9_id, "g")}<button${_attr_class([close, { ["_s"]: armedKill === s.id }])} title=${armedKill === s.id ? "Close?" : "\"Close session\""}>`);
10935
10937
  icon_xmark_default({ size: 12 });
@@ -10941,7 +10943,7 @@ var side_nav_item_default = _template("A", (input) => {
10941
10943
  const $childScope6 = _peek_scope_id();
10942
10944
  usage_pcts_default({
10943
10945
  agent: openPlan,
10944
- class: "_fJ"
10946
+ class: "_dE"
10945
10947
  });
10946
10948
  _subscribe($openPlan__closures, writeScope($scope12_id, {
10947
10949
  a: _existing_scope($childScope6),
@@ -11081,11 +11083,11 @@ var workspace_switcher_default = _template("K", (input) => {
11081
11083
  const sessions = input.sessions || st?.sessions || [];
11082
11084
  const manySessions = sessions.length > 1;
11083
11085
  const heroMeta$1 = sessions.length === 0 ? "No sessions" : manySessions ? `${sessions.length} sessions` : "";
11084
- _html(`<div${_attr_class("_eR")}>`);
11086
+ _html(`<div${_attr_class("_cV")}>`);
11085
11087
  _if(() => {
11086
11088
  if (ws) {
11087
11089
  const $scope1_id = _scope_id();
11088
- _html(`<section${_attr_class("_eS")} aria-current=page><a${_attr("href", `/w/${ws.id}`)}${_attr_class("_eT")} data-open><span${_attr_class(["_A", phase[phase$1]])}></span>${_el_resume($scope1_id, "c", _serialize_guard($scope0_reason, 0))}`);
11090
+ _html(`<section${_attr_class("_cW")} aria-current=page><a${_attr("href", `/w/${ws.id}`)}${_attr_class("_cX")} data-open><span${_attr_class(["_A", phase[phase$1]])}></span>${_el_resume($scope1_id, "c", _serialize_guard($scope0_reason, 0))}`);
11089
11091
  _if(() => {
11090
11092
  if (sessions.length === 1) {
11091
11093
  const $scope8_id = _scope_id();
@@ -11097,7 +11099,7 @@ var workspace_switcher_default = _template("K", (input) => {
11097
11099
  icon_agent_default({
11098
11100
  agent: activeAgent(sessions[0]),
11099
11101
  size: 16,
11100
- class: "_eW"
11102
+ class: "_c0"
11101
11103
  });
11102
11104
  $si__input_workspace__OR__input_allStatus__OR__input_sessions && _subscribe($sessions___closures, writeScope($scope8_id, {
11103
11105
  _: _scope_with_id($scope1_id),
@@ -11106,14 +11108,14 @@ var workspace_switcher_default = _template("K", (input) => {
11106
11108
  return 0;
11107
11109
  }
11108
11110
  }, $scope1_id, "d", $sg__input_workspace__OR__input_allStatus__OR__input_sessions, $sg__input_workspace__OR__input_allStatus__OR__input_sessions, $sg__input_workspace__OR__input_allStatus__OR__input_sessions);
11109
- _html(`<span${_attr_class("_eU")}>${_text_resume($scope1_id, "f", ws.name, $sg__input_workspace)}</span><span${_attr_class("_eV")}>${_text_resume($scope1_id, "h", heroMeta$1, $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope1_id, "b", $sg__input_workspace)}`);
11111
+ _html(`<span${_attr_class("_cY")}>${_text_resume($scope1_id, "f", ws.name, $sg__input_workspace)}</span><span${_attr_class("_cZ")}>${_text_resume($scope1_id, "h", heroMeta$1, $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope1_id, "b", $sg__input_workspace)}`);
11110
11112
  _if(() => {
11111
11113
  if (manySessions) {
11112
11114
  const $scope2_id = _scope_id();
11113
- _html(`<div${_attr_class("_eX")}>`);
11115
+ _html(`<div${_attr_class("_c1")}>`);
11114
11116
  _for_of(sessions, (s) => {
11115
11117
  const $scope3_id = _scope_id();
11116
- _html(`<a${_attr("href", `/w/${ws.id}?s=${s.id}`)}${_attr_class(["_eZ", { ["_eY"]: s.id === input.tab }])}><span${_attr_class(["_A", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope3_id, "b", $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}`);
11118
+ _html(`<a${_attr("href", `/w/${ws.id}?s=${s.id}`)}${_attr_class(["_c3", { ["_c2"]: s.id === input.tab }])}><span${_attr_class(["_A", phase[sessionPhase(s.state)]])}></span>${_el_resume($scope3_id, "b", $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}`);
11117
11119
  _set_serialize_reason({
11118
11120
  1: $sg__input_workspace__OR__input_allStatus__OR__input_sessions,
11119
11121
  2: $sg__input_workspace__OR__input_allStatus__OR__input_sessions
@@ -11123,7 +11125,7 @@ var workspace_switcher_default = _template("K", (input) => {
11123
11125
  agent: activeAgent(s),
11124
11126
  size: 14
11125
11127
  });
11126
- _html(`<span${_attr_class("_e0")}>${_text_resume($scope3_id, "e", s.title || activeAgent(s), $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 7))}`);
11128
+ _html(`<span${_attr_class("_c4")}>${_text_resume($scope3_id, "e", s.title || activeAgent(s), $sg__input_workspace__OR__input_allStatus__OR__input_sessions)}</span></a>${_el_resume($scope3_id, "a", _serialize_guard($scope0_reason, 7))}`);
11127
11129
  $si__input_workspace__OR__input_allStatus__OR__input_sessions__OR__input_tab && _subscribe($si__input_workspace && $ws_id__closures, _subscribe($si__input_tab && $input_tab__closures, writeScope($scope3_id, {
11128
11130
  h: $si__input_tab && s?.id,
11129
11131
  _: _scope_with_id($scope2_id),
@@ -11152,7 +11154,7 @@ var workspace_switcher_default = _template("K", (input) => {
11152
11154
  _if(() => {
11153
11155
  if (input.ids.length) {
11154
11156
  const $scope4_id = _scope_id();
11155
- _html(`<div${_attr_class("_e1")}>`);
11157
+ _html(`<div${_attr_class("_c5")}>`);
11156
11158
  _for_of(input.ids, (id) => {
11157
11159
  const $scope5_id = _scope_id();
11158
11160
  const w = input.byId.get(id);
@@ -11202,7 +11204,7 @@ var workspace_switcher_default = _template("K", (input) => {
11202
11204
  const rp = phaseOf(rs);
11203
11205
  const rowSessions = rs?.sessions || [];
11204
11206
  const many = rowSessions.length > 1;
11205
- _html(`<div${_attr_class("_e2")}><a${_attr("href", `/w/${id}`)}${_attr_class("_e3")}><span${_attr_class(["_A", phase[rp]])}></span>${_el_resume($scope7_id, "c", $sg__input_allStatus__OR__input_ids)}`);
11207
+ _html(`<div${_attr_class("_c6")}><a${_attr("href", `/w/${id}`)}${_attr_class("_c7")}><span${_attr_class(["_A", phase[rp]])}></span>${_el_resume($scope7_id, "c", $sg__input_allStatus__OR__input_ids)}`);
11206
11208
  _if(() => {
11207
11209
  if (rowSessions.length === 1) {
11208
11210
  const $scope9_id = _scope_id();
@@ -11214,7 +11216,7 @@ var workspace_switcher_default = _template("K", (input) => {
11214
11216
  icon_agent_default({
11215
11217
  agent: activeAgent(rowSessions[0]),
11216
11218
  size: 16,
11217
- class: "_e5"
11219
+ class: "_c9"
11218
11220
  });
11219
11221
  $si__input_allStatus__OR__input_ids && writeScope($scope9_id, {
11220
11222
  _: _scope_with_id($scope7_id),
@@ -11223,7 +11225,7 @@ var workspace_switcher_default = _template("K", (input) => {
11223
11225
  return 0;
11224
11226
  }
11225
11227
  }, $scope7_id, "d", $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids);
11226
- _html(`<span${_attr_class("_e4")}>${_text_resume($scope7_id, "f", w.name, $sg__input_ids__OR__input_byId)}</span>`);
11228
+ _html(`<span${_attr_class("_c8")}>${_text_resume($scope7_id, "f", w.name, $sg__input_ids__OR__input_byId)}</span>`);
11227
11229
  _if(() => {
11228
11230
  if (many) {
11229
11231
  const $scope10_id = _scope_id();
@@ -11234,7 +11236,7 @@ var workspace_switcher_default = _template("K", (input) => {
11234
11236
  }, $scope7_id, "g", $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, $sg__input_allStatus__OR__input_ids, 0, 1);
11235
11237
  icon_chevron_right_default({
11236
11238
  size: 14,
11237
- class: "_e7"
11239
+ class: "_da"
11238
11240
  });
11239
11241
  _html(`</a>${_el_resume($scope7_id, "b", $sg__input_ids)}`);
11240
11242
  _set_serialize_reason($sg__input_ids);
@@ -12097,8 +12099,8 @@ function treeDirs(files) {
12097
12099
  };
12098
12100
  return build(root, "", "", -1);
12099
12101
  }
12100
- var treeToggle = "_gj _5 _l";
12101
- var pageTitle = "_gq _eb";
12102
+ var treeToggle = "_eV _5 _l";
12103
+ var pageTitle = "_e2 _dX";
12102
12104
  //#endregion
12103
12105
  //#region src/tags/diff-send.marko
12104
12106
  var diff_send_default = _template("j", (input) => {
@@ -12108,7 +12110,7 @@ var diff_send_default = _template("j", (input) => {
12108
12110
  let sendTarget = null;
12109
12111
  const sessions = input.sessions || [];
12110
12112
  const sendPick = sessions.some((s) => s.id === sendTarget) ? sendTarget : sessions[0]?.id ?? null;
12111
- _html(`<span${_attr_class("_hr")}><button type=button${_attr_class("_q")} title="Copy comments as markdown">${_text_resume($scope0_id, "c", "Copy")}</button>${_el_resume($scope0_id, "b")}`);
12113
+ _html(`<span${_attr_class("_hG")}><button type=button${_attr_class("_q")} title="Copy comments as markdown">${_text_resume($scope0_id, "c", "Copy")}</button>${_el_resume($scope0_id, "b")}`);
12112
12114
  _if(() => {
12113
12115
  if (sessions.length === 1) {
12114
12116
  const $scope1_id = _scope_id();
@@ -12118,11 +12120,11 @@ var diff_send_default = _template("j", (input) => {
12118
12120
  return 0;
12119
12121
  } else if (sessions.length) {
12120
12122
  const $scope2_id = _scope_id();
12121
- _html(`<span${_attr_class("_hs")}><button type=button${_attr_class(["_r", "_ht"])}${_attr("disabled", sending)}>${_text_resume($scope2_id, "c", "Send to")}</button>${_el_resume($scope2_id, "b")}`);
12123
+ _html(`<span${_attr_class("_hH")}><button type=button${_attr_class(["_r", "_hI"])}${_attr("disabled", sending)}>${_text_resume($scope2_id, "c", "Send to")}</button>${_el_resume($scope2_id, "b")}`);
12122
12124
  _attr_select_value($scope2_id, "d", sendTarget, _resume((_new_sendTarget) => {
12123
12125
  sendTarget = _new_sendTarget;
12124
12126
  }, "j0", $scope2_id), () => {
12125
- _html(`<select${_attr_class("_hu")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
12127
+ _html(`<select${_attr_class("_hJ")} aria-label="Send comments to session"${_attr("disabled", sending)}>`);
12126
12128
  _for_of(sessions, (s) => {
12127
12129
  const $scope3_id = _scope_id();
12128
12130
  _html(`<option${_attr_option_value(s.id)}>${_text_resume($scope3_id, "b", s.title || s.agent, $sg__input_sessions)}</option>${_el_resume($scope3_id, "a", $sg__input_sessions)}`);
@@ -12149,1493 +12151,8 @@ var diff_send_default = _template("j", (input) => {
12149
12151
  });
12150
12152
  _resume_branch($scope0_id);
12151
12153
  });
12152
- //#endregion
12153
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/constants.js
12154
- var GIT_DIFF_FILE_BREAK_REGEX = /(?=^diff --git)/gm;
12155
- var FILENAME_HEADER_REGEX = /^(---|\+\+\+)\s+([^\t\r\n]+)/;
12156
- var FILENAME_HEADER_REGEX_GIT = /^(---|\+\+\+)\s+[ab]\/([^\t\r\n]+)/;
12157
- var ALTERNATE_FILE_NAMES_GIT = /^diff --git (?:"a\/(.+?)"|a\/(.+?)) (?:"b\/(.+?)"|b\/(.+?))$/;
12158
- var INDEX_LINE_METADATA = /^index ([0-9a-f]+)\.\.([0-9a-f]+)(?: (\d+))?$/i;
12159
- Object.freeze({
12160
- fromStart: 0,
12161
- fromEnd: 0
12162
- });
12163
- //#endregion
12164
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/cleanLastNewline.js
12165
- function cleanLastNewline(contents) {
12166
- let end = contents.length;
12167
- if (contents.charCodeAt(end - 1) === 10) {
12168
- end--;
12169
- if (contents.charCodeAt(end - 1) === 13) end--;
12170
- }
12171
- return contents.slice(0, end);
12172
- }
12173
- //#endregion
12174
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/detachString.js
12175
- var stringDetachEncoder = new TextEncoder();
12176
- var stringDetachDecoder = new TextDecoder("utf-8", { ignoreBOM: true });
12177
- var SURROGATE_CODE_UNIT_PATTERN = /[\uD800-\uDFFF]/;
12178
- var STRING_DETACH_INITIAL_BUFFER_SIZE = 1024;
12179
- var stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
12180
- function releaseStringDetachBuffer() {
12181
- if (stringDetachBuffer.length !== STRING_DETACH_INITIAL_BUFFER_SIZE) stringDetachBuffer = new Uint8Array(STRING_DETACH_INITIAL_BUFFER_SIZE);
12182
- }
12183
- function detachString(value) {
12184
- if (value.length === 0) return value;
12185
- if (SURROGATE_CODE_UNIT_PATTERN.test(value)) return JSON.parse(JSON.stringify(value));
12186
- const requiredByteLength = value.length * 3;
12187
- if (stringDetachBuffer.length < requiredByteLength) stringDetachBuffer = new Uint8Array(requiredByteLength);
12188
- const { written } = stringDetachEncoder.encodeInto(value, stringDetachBuffer);
12189
- return stringDetachDecoder.decode(stringDetachBuffer.subarray(0, written));
12190
- }
12191
- //#endregion
12192
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/getHunkSideBoundaries.js
12193
- /** Converts a unified hunk side's start/count into its consumed-file range. */
12194
- function getHunkSideStartBoundary(start, count) {
12195
- return start - (count === 0 ? 0 : 1);
12196
- }
12197
- function getHunkSideEndBoundary(start, count) {
12198
- return getHunkSideStartBoundary(start, count) + count;
12199
- }
12200
- //#endregion
12201
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/realignChangeContent.js
12202
- var MAX_ALIGNMENT_COMPARISONS = 4096;
12203
- var MIN_IMPROVEMENT_PER_PAIR = .5;
12204
- /**
12205
- * Re-split count-mismatched change blocks in every hunk so paired lines are
12206
- * chosen by content similarity instead of position, then slide blank-line
12207
- * insert/delete blocks to the top of their blank run. Mutates `hunks` in
12208
- * place; rendered row counts are unchanged (a split block covers the same
12209
- * split/unified rows as the original).
12210
- */
12211
- function realignChangeContentBySimilarity(diff) {
12212
- for (const hunk of diff.hunks) {
12213
- for (let index = 0; index < hunk.hunkContent.length; index++) {
12214
- const content = hunk.hunkContent[index];
12215
- if (content.type !== "change") continue;
12216
- const replacement = realignChangeBlock(diff, content);
12217
- if (replacement != null) {
12218
- hunk.hunkContent.splice(index, 1, ...replacement);
12219
- index += replacement.length - 1;
12220
- }
12221
- }
12222
- slideBlankBoundaryBlocksUp(hunk, diff);
12223
- }
12224
- }
12225
- /**
12226
- * Slide pure insert/delete blocks made entirely of blank lines to the top of
12227
- * the blank run they sit in. Adding or removing a blank line next to
12228
- * existing blanks is ambiguous, and the diff library reports the change at
12229
- * the run's bottom — so pressing Enter at the end of a line marks a blank
12230
- * *below* the caret as inserted while the caret's own new line renders as
12231
- * context. Sliding up anchors the change to the content above it (the caret
12232
- * line after an Enter) instead.
12233
- *
12234
- * The slide is all-or-nothing: it only applies when the block comes to rest
12235
- * directly beneath remaining in-hunk content. A slide that would consume the
12236
- * hunk's entire leading context was stopped by the hunk's edge — a context
12237
- * window cut, not the top of the blank run — and that landing spot is
12238
- * arbitrary, so the block keeps the library's bottom-of-run anchor (which
12239
- * sits against the content below the run). Non-blank blocks never slide, so
12240
- * code that merely ends like its neighbor (an added function before an
12241
- * identical `}`) keeps the library's canonical position.
12242
- */
12243
- function slideBlankBoundaryBlocksUp(hunk, diff) {
12244
- const { hunkContent } = hunk;
12245
- for (let index = 1; index < hunkContent.length; index++) {
12246
- const block = hunkContent[index];
12247
- const previous = hunkContent[index - 1];
12248
- if (block.type !== "change" || block.additions > 0 && block.deletions > 0 || previous.type !== "context") continue;
12249
- const isInsert = block.additions > 0;
12250
- const lines = isInsert ? diff.additionLines : diff.deletionLines;
12251
- const blockStart = isInsert ? block.additionLineIndex : block.deletionLineIndex;
12252
- const blockLength = isInsert ? block.additions : block.deletions;
12253
- const unit = lines[blockStart] ?? "";
12254
- if (unit.trim() !== "") continue;
12255
- let uniform = true;
12256
- for (let offset = 1; offset < blockLength; offset++) if (lines[blockStart + offset] !== unit) {
12257
- uniform = false;
12258
- break;
12259
- }
12260
- if (!uniform) continue;
12261
- let slide = 0;
12262
- while (slide < previous.lines && diff.additionLines[previous.additionLineIndex + previous.lines - 1 - slide] === unit) slide++;
12263
- if (slide === 0) continue;
12264
- if (index === 1 && slide === previous.lines) continue;
12265
- block.additionLineIndex -= slide;
12266
- block.deletionLineIndex -= slide;
12267
- const blockAdditionEnd = block.additionLineIndex + block.additions;
12268
- const blockDeletionEnd = block.deletionLineIndex + block.deletions;
12269
- const next = hunkContent[index + 1];
12270
- if (next?.type === "context") {
12271
- next.lines += slide;
12272
- next.additionLineIndex = blockAdditionEnd;
12273
- next.deletionLineIndex = blockDeletionEnd;
12274
- } else hunkContent.splice(index + 1, 0, {
12275
- type: "context",
12276
- lines: slide,
12277
- additionLineIndex: blockAdditionEnd,
12278
- deletionLineIndex: blockDeletionEnd
12279
- });
12280
- previous.lines -= slide;
12281
- if (previous.lines === 0) {
12282
- hunkContent.splice(index - 1, 1);
12283
- index--;
12284
- }
12285
- }
12286
- }
12287
- function realignChangeBlock(diff, content) {
12288
- const { deletions, additions, deletionLineIndex, additionLineIndex } = content;
12289
- const pairCount = Math.min(deletions, additions);
12290
- const surplus = Math.abs(additions - deletions);
12291
- if (pairCount === 0 || surplus === 0 || pairCount * (surplus + 1) > MAX_ALIGNMENT_COMPARISONS) return null;
12292
- const strippedDeletions = [];
12293
- for (let line = 0; line < deletions; line++) strippedDeletions.push(stripWhitespace(diff.deletionLines[deletionLineIndex + line] ?? ""));
12294
- const strippedAdditions = [];
12295
- for (let line = 0; line < additions; line++) strippedAdditions.push(stripWhitespace(diff.additionLines[additionLineIndex + line] ?? ""));
12296
- const additionsAreLonger = additions > deletions;
12297
- let bestOffset = 0;
12298
- let bestScore = -1;
12299
- for (let offset = 0; offset <= surplus; offset++) {
12300
- let score = 0;
12301
- for (let pair = 0; pair < pairCount; pair++) score += lineSimilarity(strippedDeletions[pair + (additionsAreLonger ? 0 : offset)], strippedAdditions[pair + (additionsAreLonger ? offset : 0)]);
12302
- if (offset === 0) bestScore = score + pairCount * MIN_IMPROVEMENT_PER_PAIR;
12303
- else if (score > bestScore) {
12304
- bestScore = score;
12305
- bestOffset = offset;
12306
- }
12307
- }
12308
- if (bestOffset === 0) return null;
12309
- const blocks = [];
12310
- const pushBlock = (blockDeletions, blockAdditions, blockDeletionIndex, blockAdditionIndex) => {
12311
- if (blockDeletions > 0 || blockAdditions > 0) blocks.push({
12312
- type: "change",
12313
- deletions: blockDeletions,
12314
- additions: blockAdditions,
12315
- deletionLineIndex: blockDeletionIndex,
12316
- additionLineIndex: blockAdditionIndex
12317
- });
12318
- };
12319
- if (additionsAreLonger) {
12320
- pushBlock(0, bestOffset, deletionLineIndex, additionLineIndex);
12321
- pushBlock(pairCount, pairCount, deletionLineIndex, additionLineIndex + bestOffset);
12322
- pushBlock(0, additions - pairCount - bestOffset, deletionLineIndex + pairCount, additionLineIndex + bestOffset + pairCount);
12323
- } else {
12324
- pushBlock(bestOffset, 0, deletionLineIndex, additionLineIndex);
12325
- pushBlock(pairCount, pairCount, deletionLineIndex + bestOffset, additionLineIndex);
12326
- pushBlock(deletions - pairCount - bestOffset, 0, deletionLineIndex + bestOffset + pairCount, additionLineIndex + pairCount);
12327
- }
12328
- return blocks;
12329
- }
12330
- var WHITESPACE = /\s+/g;
12331
- function stripWhitespace(line) {
12332
- return line.replace(WHITESPACE, "");
12333
- }
12334
- function lineSimilarity(a, b) {
12335
- if (a === b) return 1;
12336
- const maxLength = Math.max(a.length, b.length);
12337
- const minLength = Math.min(a.length, b.length);
12338
- if (minLength === 0) return 0;
12339
- let prefix = 0;
12340
- while (prefix < minLength && a[prefix] === b[prefix]) prefix++;
12341
- let suffix = 0;
12342
- while (suffix < minLength - prefix && a[a.length - 1 - suffix] === b[b.length - 1 - suffix]) suffix++;
12343
- return (prefix + suffix) / maxLength;
12344
- }
12345
- //#endregion
12346
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parsePatchFiles.js
12347
- function processFile(fileDiffString, options) {
12348
- try {
12349
- return _processFile(fileDiffString, options);
12350
- } finally {
12351
- releaseStringDetachBuffer();
12352
- }
12353
- }
12354
- function _processFile(fileDiffString, { cacheKey, isGitDiff = GIT_DIFF_FILE_BREAK_REGEX.test(fileDiffString), oldFile, newFile, throwOnError = false } = {}) {
12355
- let lastHunkEnd = 0;
12356
- const hunks = splitAtLinePrefix(fileDiffString, "@@ ");
12357
- let currentFile;
12358
- const isPartial = oldFile == null || newFile == null;
12359
- let deletionLineIndex = 0;
12360
- let additionLineIndex = 0;
12361
- for (const hunk of hunks) {
12362
- const lines = splitWithNewlines(hunk);
12363
- const firstLine = lines[0];
12364
- if (firstLine == null) {
12365
- if (throwOnError) throw Error("parsePatchContent: invalid hunk");
12366
- else console.error("parsePatchContent: invalid hunk", hunk);
12367
- continue;
12368
- }
12369
- const fileHeader = parseHunkHeader(firstLine);
12370
- let additionLines = 0;
12371
- let deletionLines = 0;
12372
- if (fileHeader == null || currentFile == null) {
12373
- if (currentFile != null) {
12374
- if (throwOnError) throw Error("parsePatchContent: Invalid hunk");
12375
- else console.error("parsePatchContent: Invalid hunk", hunk);
12376
- continue;
12377
- }
12378
- currentFile = {
12379
- name: "",
12380
- type: "change",
12381
- hunks: [],
12382
- splitLineCount: 0,
12383
- unifiedLineCount: 0,
12384
- isPartial,
12385
- additionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(newFile.contents) : [],
12386
- deletionLines: !isPartial && oldFile != null && newFile != null ? splitFileContents(oldFile.contents) : [],
12387
- cacheKey: maybeDetachOptionalString(cacheKey)
12388
- };
12389
- if (currentFile.additionLines.length === 1 && newFile?.contents === "") currentFile.additionLines.length = 0;
12390
- if (currentFile.deletionLines.length === 1 && oldFile?.contents === "") currentFile.deletionLines.length = 0;
12391
- for (const line of lines) {
12392
- if (line.startsWith("diff --git")) {
12393
- const filenameMatch = line.trim().match(ALTERNATE_FILE_NAMES_GIT);
12394
- const prevName = filenameMatch?.[1] ?? filenameMatch?.[2];
12395
- const name = filenameMatch?.[3] ?? filenameMatch?.[4];
12396
- if (prevName == null || name == null) {
12397
- if (throwOnError) throw Error("parsePatchContent: invalid git diff header");
12398
- else console.error("parsePatchContent: invalid git diff header", line);
12399
- continue;
12400
- }
12401
- currentFile.name = detachString(name.trim());
12402
- if (prevName !== name) currentFile.prevName = detachString(prevName.trim());
12403
- continue;
12404
- }
12405
- const filenameMatch = line.startsWith("---") || line.startsWith("+++") ? line.match(isGitDiff ? FILENAME_HEADER_REGEX_GIT : FILENAME_HEADER_REGEX) : null;
12406
- if (filenameMatch != null) {
12407
- const [, type, fileName] = filenameMatch;
12408
- if (type === "---" && fileName !== "/dev/null") {
12409
- const detachedFileName = detachString(fileName.trim());
12410
- currentFile.prevName = detachedFileName;
12411
- currentFile.name = detachedFileName;
12412
- } else if (type === "+++" && fileName !== "/dev/null") currentFile.name = detachString(fileName.trim());
12413
- } else if (isGitDiff) {
12414
- if (line.startsWith("new mode ")) currentFile.mode = detachString(line.slice(8).trim());
12415
- if (line.startsWith("old mode ")) currentFile.prevMode = detachString(line.slice(8).trim());
12416
- if (line.startsWith("new file mode")) {
12417
- currentFile.type = "new";
12418
- currentFile.mode = detachString(line.slice(13).trim());
12419
- }
12420
- if (line.startsWith("deleted file mode")) {
12421
- currentFile.type = "deleted";
12422
- currentFile.mode = detachString(line.slice(17).trim());
12423
- }
12424
- if (line.startsWith("similarity index")) if (line.startsWith("similarity index 100%")) currentFile.type = "rename-pure";
12425
- else currentFile.type = "rename-changed";
12426
- if (line.startsWith("index ")) {
12427
- const [, prevObjectId, newObjectId, mode] = line.trim().match(INDEX_LINE_METADATA) ?? [];
12428
- if (prevObjectId != null) currentFile.prevObjectId = detachString(prevObjectId);
12429
- if (newObjectId != null) currentFile.newObjectId = detachString(newObjectId);
12430
- if (mode != null) currentFile.mode = detachString(mode);
12431
- }
12432
- if (line.startsWith("rename from ")) currentFile.prevName = detachString(line.slice(12).trim());
12433
- if (line.startsWith("rename to ")) currentFile.name = detachString(line.slice(10).trim());
12434
- }
12435
- }
12436
- continue;
12437
- }
12438
- let currentContent;
12439
- let lastLineType;
12440
- while (lines.length > 0 && (lines[lines.length - 1] === "\n" || lines[lines.length - 1] === "\r" || lines[lines.length - 1] === "\r\n" || lines[lines.length - 1] === "")) lines.pop();
12441
- const { additionStart, deletionStart } = fileHeader;
12442
- deletionLineIndex = isPartial ? deletionLineIndex : deletionStart - 1;
12443
- additionLineIndex = isPartial ? additionLineIndex : additionStart - 1;
12444
- const hunkData = {
12445
- collapsedBefore: 0,
12446
- splitLineCount: 0,
12447
- splitLineStart: 0,
12448
- unifiedLineCount: 0,
12449
- unifiedLineStart: 0,
12450
- additionCount: fileHeader.additionCount,
12451
- additionStart,
12452
- additionLines,
12453
- deletionCount: fileHeader.deletionCount,
12454
- deletionStart,
12455
- deletionLines,
12456
- deletionLineIndex,
12457
- additionLineIndex,
12458
- hunkContent: [],
12459
- hunkContext: maybeDetachOptionalString(fileHeader.hunkContext),
12460
- hunkSpecs: detachString(firstLine),
12461
- noEOFCRAdditions: false,
12462
- noEOFCRDeletions: false
12463
- };
12464
- let parsedAdditionLines = 0;
12465
- let parsedDeletionLines = 0;
12466
- for (let lineIndex = 1; lineIndex < lines.length; lineIndex++) {
12467
- const rawLine = lines[lineIndex];
12468
- if (parsedAdditionLines >= hunkData.additionCount && parsedDeletionLines >= hunkData.deletionCount && !rawLine.startsWith("\\")) {
12469
- if (throwOnError && isHunkBodyLine(rawLine) && !isFormatPatchVersionSeparator(rawLine)) throw Error("parsePatchContent: hunk has more lines than expected");
12470
- break;
12471
- }
12472
- const firstChar = rawLine[0];
12473
- if (firstChar !== "+" && firstChar !== "-" && firstChar !== " " && firstChar !== "\\") {
12474
- if (throwOnError) throw Error("parsePatchContent: invalid hunk line");
12475
- console.error(`parseLineType: Invalid firstChar: "${firstChar}", full line: "${rawLine}"`);
12476
- console.error("processFile: invalid rawLine:", rawLine);
12477
- continue;
12478
- }
12479
- const type = parseRawLineType(firstChar);
12480
- if (type === "addition") {
12481
- if (throwOnError && parsedAdditionLines >= hunkData.additionCount) throw Error("parsePatchContent: hunk has too many addition lines");
12482
- const line = getParsedLineContent(rawLine);
12483
- if (currentContent == null || currentContent.type !== "change") {
12484
- currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
12485
- hunkData.hunkContent.push(currentContent);
12486
- }
12487
- additionLineIndex++;
12488
- parsedAdditionLines++;
12489
- if (isPartial) currentFile.additionLines.push(line);
12490
- currentContent.additions++;
12491
- additionLines++;
12492
- lastLineType = "addition";
12493
- } else if (type === "deletion") {
12494
- if (throwOnError && parsedDeletionLines >= hunkData.deletionCount) throw Error("parsePatchContent: hunk has too many deletion lines");
12495
- const line = getParsedLineContent(rawLine);
12496
- if (currentContent == null || currentContent.type !== "change") {
12497
- currentContent = createContentGroup("change", deletionLineIndex, additionLineIndex);
12498
- hunkData.hunkContent.push(currentContent);
12499
- }
12500
- deletionLineIndex++;
12501
- parsedDeletionLines++;
12502
- if (isPartial) currentFile.deletionLines.push(line);
12503
- currentContent.deletions++;
12504
- deletionLines++;
12505
- lastLineType = "deletion";
12506
- } else if (type === "context") {
12507
- if (throwOnError && (parsedDeletionLines >= hunkData.deletionCount || parsedAdditionLines >= hunkData.additionCount)) throw Error("parsePatchContent: hunk has too many context lines");
12508
- const line = getParsedLineContent(rawLine);
12509
- if (currentContent == null || currentContent.type !== "context") {
12510
- currentContent = createContentGroup("context", deletionLineIndex, additionLineIndex);
12511
- hunkData.hunkContent.push(currentContent);
12512
- }
12513
- additionLineIndex++;
12514
- deletionLineIndex++;
12515
- parsedAdditionLines++;
12516
- parsedDeletionLines++;
12517
- if (isPartial) {
12518
- currentFile.deletionLines.push(line);
12519
- currentFile.additionLines.push(line);
12520
- }
12521
- currentContent.lines++;
12522
- lastLineType = "context";
12523
- } else if (type === "metadata" && currentContent != null) {
12524
- if (currentContent.type === "context") {
12525
- hunkData.noEOFCRAdditions = true;
12526
- hunkData.noEOFCRDeletions = true;
12527
- } else if (lastLineType === "deletion") hunkData.noEOFCRDeletions = true;
12528
- else if (lastLineType === "addition") hunkData.noEOFCRAdditions = true;
12529
- if (isPartial && (lastLineType === "addition" || lastLineType === "context")) {
12530
- const lastIndex = currentFile.additionLines.length - 1;
12531
- if (lastIndex >= 0) currentFile.additionLines[lastIndex] = cleanLastNewline(currentFile.additionLines[lastIndex]);
12532
- }
12533
- if (isPartial && (lastLineType === "deletion" || lastLineType === "context")) {
12534
- const lastIndex = currentFile.deletionLines.length - 1;
12535
- if (lastIndex >= 0) currentFile.deletionLines[lastIndex] = cleanLastNewline(currentFile.deletionLines[lastIndex]);
12536
- }
12537
- }
12538
- }
12539
- if (throwOnError && (parsedAdditionLines !== hunkData.additionCount || parsedDeletionLines !== hunkData.deletionCount)) throw Error("parsePatchContent: hunk line count mismatch");
12540
- hunkData.additionLines = additionLines;
12541
- hunkData.deletionLines = deletionLines;
12542
- hunkData.collapsedBefore = Math.max(getHunkSideStartBoundary(hunkData.additionStart, hunkData.additionCount) - lastHunkEnd, 0);
12543
- currentFile.hunks.push(hunkData);
12544
- lastHunkEnd = getHunkSideEndBoundary(hunkData.additionStart, hunkData.additionCount);
12545
- for (const content of hunkData.hunkContent) if (content.type === "context") {
12546
- hunkData.splitLineCount += content.lines;
12547
- hunkData.unifiedLineCount += content.lines;
12548
- } else {
12549
- hunkData.splitLineCount += Math.max(content.additions, content.deletions);
12550
- hunkData.unifiedLineCount += content.deletions + content.additions;
12551
- }
12552
- hunkData.splitLineStart = currentFile.splitLineCount + hunkData.collapsedBefore;
12553
- hunkData.unifiedLineStart = currentFile.unifiedLineCount + hunkData.collapsedBefore;
12554
- currentFile.splitLineCount += hunkData.collapsedBefore + hunkData.splitLineCount;
12555
- currentFile.unifiedLineCount += hunkData.collapsedBefore + hunkData.unifiedLineCount;
12556
- }
12557
- if (currentFile == null) return;
12558
- if (throwOnError && isPartial && !isGitDiff && currentFile.hunks.length === 0) throw Error("parsePatchContent: unified file has no hunks");
12559
- if (currentFile.hunks.length > 0 && !isPartial && currentFile.additionLines.length > 0 && currentFile.deletionLines.length > 0) {
12560
- const lastHunk = currentFile.hunks[currentFile.hunks.length - 1];
12561
- const lastHunkEnd = getHunkSideEndBoundary(lastHunk.additionStart, lastHunk.additionCount);
12562
- const totalFileLines = currentFile.additionLines.length;
12563
- const collapsedAfter = Math.max(totalFileLines - lastHunkEnd, 0);
12564
- currentFile.splitLineCount += collapsedAfter;
12565
- currentFile.unifiedLineCount += collapsedAfter;
12566
- }
12567
- if (!isGitDiff) {
12568
- if (currentFile.prevName != null && currentFile.name !== currentFile.prevName) if (currentFile.hunks.length > 0) currentFile.type = "rename-changed";
12569
- else currentFile.type = "rename-pure";
12570
- else if ((oldFile == null || oldFile.contents === "") && newFile != null && newFile.contents !== "") currentFile.type = "new";
12571
- else if (oldFile != null && oldFile.contents !== "" && (newFile == null || newFile.contents === "")) currentFile.type = "deleted";
12572
- }
12573
- if (currentFile.type !== "rename-pure" && currentFile.type !== "rename-changed") currentFile.prevName = void 0;
12574
- realignChangeContentBySimilarity(currentFile);
12575
- return currentFile;
12576
- }
12577
- function splitFileContents(contents) {
12578
- const lines = splitWithNewlines(contents);
12579
- for (let index = 0; index < lines.length; index++) lines[index] = detachString(lines[index]);
12580
- return lines;
12581
- }
12582
- function splitWithNewlines(contents) {
12583
- if (contents.length === 0) return [""];
12584
- const lines = [];
12585
- let startIndex = 0;
12586
- for (;;) {
12587
- const newlineIndex = contents.indexOf("\n", startIndex);
12588
- if (newlineIndex === -1) break;
12589
- lines.push(contents.slice(startIndex, newlineIndex + 1));
12590
- startIndex = newlineIndex + 1;
12591
- }
12592
- if (startIndex < contents.length) lines.push(contents.slice(startIndex));
12593
- return lines;
12594
- }
12595
- function isHunkBodyLine(line) {
12596
- const firstChar = line[0];
12597
- return firstChar === "+" || firstChar === "-" || firstChar === " ";
12598
- }
12599
- function isFormatPatchVersionSeparator(line) {
12600
- if (!line.startsWith("--")) return false;
12601
- for (let index = 2; index < line.length; index++) {
12602
- const char = line[index];
12603
- if (char !== " " && char !== " " && char !== "\n" && char !== "\r") return false;
12604
- }
12605
- return true;
12606
- }
12607
- function parseHunkHeader(line) {
12608
- if (!line.startsWith("@@ -")) return;
12609
- let index = 4;
12610
- const deletionStartResult = readPositiveInteger(line, index);
12611
- if (deletionStartResult == null) return;
12612
- const deletionStart = deletionStartResult.value;
12613
- index = deletionStartResult.endIndex;
12614
- let deletionCount = 1;
12615
- if (line[index] === ",") {
12616
- const deletionCountResult = readPositiveInteger(line, index + 1);
12617
- if (deletionCountResult == null) return;
12618
- deletionCount = deletionCountResult.value;
12619
- index = deletionCountResult.endIndex;
12620
- }
12621
- if (line[index] !== " " || line[index + 1] !== "+") return;
12622
- index += 2;
12623
- const additionStartResult = readPositiveInteger(line, index);
12624
- if (additionStartResult == null) return;
12625
- const additionStart = additionStartResult.value;
12626
- index = additionStartResult.endIndex;
12627
- let additionCount = 1;
12628
- if (line[index] === ",") {
12629
- const additionCountResult = readPositiveInteger(line, index + 1);
12630
- if (additionCountResult == null) return;
12631
- additionCount = additionCountResult.value;
12632
- index = additionCountResult.endIndex;
12633
- }
12634
- if (line[index] !== " " || line[index + 1] !== "@" || line[index + 2] !== "@") return;
12635
- let hunkContext;
12636
- const contextStartIndex = index + 3;
12637
- if (line[contextStartIndex] === " ") hunkContext = trimLineEnd(line.slice(contextStartIndex + 1));
12638
- return {
12639
- additionCount,
12640
- additionStart,
12641
- deletionCount,
12642
- deletionStart,
12643
- hunkContext
12644
- };
12645
- }
12646
- function readPositiveInteger(value, startIndex) {
12647
- let index = startIndex;
12648
- let parsedValue = 0;
12649
- for (; index < value.length; index++) {
12650
- const digit = value.charCodeAt(index) - 48;
12651
- if (digit < 0 || digit > 9) break;
12652
- parsedValue = parsedValue * 10 + digit;
12653
- }
12654
- if (index === startIndex) return;
12655
- return {
12656
- value: parsedValue,
12657
- endIndex: index
12658
- };
12659
- }
12660
- function trimLineEnd(value) {
12661
- if (value.endsWith("\r\n")) return value.slice(0, -2);
12662
- if (value.endsWith("\n")) return value.slice(0, -1);
12663
- return value;
12664
- }
12665
- function splitAtLinePrefix(contents, prefix) {
12666
- if (contents.length === 0) return [""];
12667
- const newlinePrefix = `\n${prefix}`;
12668
- const firstBoundaryIndex = contents.startsWith(prefix) ? 0 : findLinePrefixIndex(contents, newlinePrefix, 0);
12669
- if (firstBoundaryIndex === -1) return [contents];
12670
- const parts = [];
12671
- if (firstBoundaryIndex > 0) parts.push(contents.slice(0, firstBoundaryIndex));
12672
- let startIndex = firstBoundaryIndex;
12673
- for (;;) {
12674
- const nextBoundaryIndex = findLinePrefixIndex(contents, newlinePrefix, startIndex + 1);
12675
- if (nextBoundaryIndex === -1) break;
12676
- parts.push(contents.slice(startIndex, nextBoundaryIndex));
12677
- startIndex = nextBoundaryIndex;
12678
- }
12679
- parts.push(contents.slice(startIndex));
12680
- return parts;
12681
- }
12682
- function findLinePrefixIndex(contents, newlinePrefix, fromIndex) {
12683
- const index = contents.indexOf(newlinePrefix, fromIndex);
12684
- return index === -1 ? -1 : index + 1;
12685
- }
12686
- function maybeDetachOptionalString(value) {
12687
- return value == null ? value : detachString(value);
12688
- }
12689
- function parseRawLineType(firstChar) {
12690
- return firstChar === " " ? "context" : firstChar === "\\" ? "metadata" : firstChar === "+" ? "addition" : "deletion";
12691
- }
12692
- function getParsedLineContent(rawLine) {
12693
- const processedLine = rawLine.slice(1);
12694
- return detachString(processedLine === "" ? "\n" : processedLine);
12695
- }
12696
- function createContentGroup(type, deletionLineIndex, additionLineIndex) {
12697
- if (type === "change") return {
12698
- type: "change",
12699
- additions: 0,
12700
- deletions: 0,
12701
- additionLineIndex,
12702
- deletionLineIndex
12703
- };
12704
- return {
12705
- type: "context",
12706
- lines: 0,
12707
- additionLineIndex,
12708
- deletionLineIndex
12709
- };
12710
- }
12711
- //#endregion
12712
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/base.js
12713
- var Diff = class {
12714
- diff(oldStr, newStr, options = {}) {
12715
- let callback;
12716
- if (typeof options === "function") {
12717
- callback = options;
12718
- options = {};
12719
- } else if ("callback" in options) callback = options.callback;
12720
- const oldString = this.castInput(oldStr, options);
12721
- const newString = this.castInput(newStr, options);
12722
- const oldTokens = this.removeEmpty(this.tokenize(oldString, options));
12723
- const newTokens = this.removeEmpty(this.tokenize(newString, options));
12724
- return this.diffWithOptionsObj(oldTokens, newTokens, options, callback);
12725
- }
12726
- diffWithOptionsObj(oldTokens, newTokens, options, callback) {
12727
- var _a;
12728
- const done = (value) => {
12729
- value = this.postProcess(value, options);
12730
- if (callback) {
12731
- setTimeout(function() {
12732
- callback(value);
12733
- }, 0);
12734
- return;
12735
- } else return value;
12736
- };
12737
- const newLen = newTokens.length, oldLen = oldTokens.length;
12738
- let editLength = 1;
12739
- let maxEditLength = newLen + oldLen;
12740
- if (options.maxEditLength != null) maxEditLength = Math.min(maxEditLength, options.maxEditLength);
12741
- const maxExecutionTime = (_a = options.timeout) !== null && _a !== void 0 ? _a : Infinity;
12742
- const abortAfterTimestamp = Date.now() + maxExecutionTime;
12743
- const bestPath = [{
12744
- oldPos: -1,
12745
- lastComponent: void 0
12746
- }];
12747
- let newPos = this.extractCommon(bestPath[0], newTokens, oldTokens, 0, options);
12748
- if (bestPath[0].oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(bestPath[0].lastComponent, newTokens, oldTokens));
12749
- let minDiagonalToConsider = -Infinity, maxDiagonalToConsider = Infinity;
12750
- const execEditLength = () => {
12751
- for (let diagonalPath = Math.max(minDiagonalToConsider, -editLength); diagonalPath <= Math.min(maxDiagonalToConsider, editLength); diagonalPath += 2) {
12752
- let basePath;
12753
- const removePath = bestPath[diagonalPath - 1], addPath = bestPath[diagonalPath + 1];
12754
- if (removePath) bestPath[diagonalPath - 1] = void 0;
12755
- let canAdd = false;
12756
- if (addPath) {
12757
- const addPathNewPos = addPath.oldPos - diagonalPath;
12758
- canAdd = addPath && 0 <= addPathNewPos && addPathNewPos < newLen;
12759
- }
12760
- const canRemove = removePath && removePath.oldPos + 1 < oldLen;
12761
- if (!canAdd && !canRemove) {
12762
- bestPath[diagonalPath] = void 0;
12763
- continue;
12764
- }
12765
- if (!canRemove || canAdd && removePath.oldPos < addPath.oldPos) basePath = this.addToPath(addPath, true, false, 0, options);
12766
- else basePath = this.addToPath(removePath, false, true, 1, options);
12767
- newPos = this.extractCommon(basePath, newTokens, oldTokens, diagonalPath, options);
12768
- if (basePath.oldPos + 1 >= oldLen && newPos + 1 >= newLen) return done(this.buildValues(basePath.lastComponent, newTokens, oldTokens)) || true;
12769
- else {
12770
- bestPath[diagonalPath] = basePath;
12771
- if (basePath.oldPos + 1 >= oldLen) maxDiagonalToConsider = Math.min(maxDiagonalToConsider, diagonalPath - 1);
12772
- if (newPos + 1 >= newLen) minDiagonalToConsider = Math.max(minDiagonalToConsider, diagonalPath + 1);
12773
- }
12774
- }
12775
- editLength++;
12776
- };
12777
- if (callback) (function exec() {
12778
- setTimeout(function() {
12779
- if (editLength > maxEditLength || Date.now() > abortAfterTimestamp) return callback(void 0);
12780
- if (!execEditLength()) exec();
12781
- }, 0);
12782
- })();
12783
- else while (editLength <= maxEditLength && Date.now() <= abortAfterTimestamp) {
12784
- const ret = execEditLength();
12785
- if (ret) return ret;
12786
- }
12787
- }
12788
- addToPath(path, added, removed, oldPosInc, options) {
12789
- const last = path.lastComponent;
12790
- if (last && !options.oneChangePerToken && last.added === added && last.removed === removed) return {
12791
- oldPos: path.oldPos + oldPosInc,
12792
- lastComponent: {
12793
- count: last.count + 1,
12794
- added,
12795
- removed,
12796
- previousComponent: last.previousComponent
12797
- }
12798
- };
12799
- else return {
12800
- oldPos: path.oldPos + oldPosInc,
12801
- lastComponent: {
12802
- count: 1,
12803
- added,
12804
- removed,
12805
- previousComponent: last
12806
- }
12807
- };
12808
- }
12809
- extractCommon(basePath, newTokens, oldTokens, diagonalPath, options) {
12810
- const newLen = newTokens.length, oldLen = oldTokens.length;
12811
- let oldPos = basePath.oldPos, newPos = oldPos - diagonalPath, commonCount = 0;
12812
- while (newPos + 1 < newLen && oldPos + 1 < oldLen && this.equals(oldTokens[oldPos + 1], newTokens[newPos + 1], options)) {
12813
- newPos++;
12814
- oldPos++;
12815
- commonCount++;
12816
- if (options.oneChangePerToken) basePath.lastComponent = {
12817
- count: 1,
12818
- previousComponent: basePath.lastComponent,
12819
- added: false,
12820
- removed: false
12821
- };
12822
- }
12823
- if (commonCount && !options.oneChangePerToken) basePath.lastComponent = {
12824
- count: commonCount,
12825
- previousComponent: basePath.lastComponent,
12826
- added: false,
12827
- removed: false
12828
- };
12829
- basePath.oldPos = oldPos;
12830
- return newPos;
12831
- }
12832
- equals(left, right, options) {
12833
- if (options.comparator) return options.comparator(left, right);
12834
- else return left === right || !!options.ignoreCase && left.toLowerCase() === right.toLowerCase();
12835
- }
12836
- removeEmpty(array) {
12837
- const ret = [];
12838
- for (let i = 0; i < array.length; i++) if (array[i]) ret.push(array[i]);
12839
- return ret;
12840
- }
12841
- castInput(value, options) {
12842
- return value;
12843
- }
12844
- tokenize(value, options) {
12845
- return Array.from(value);
12846
- }
12847
- join(chars) {
12848
- return chars.join("");
12849
- }
12850
- postProcess(changeObjects, options) {
12851
- return changeObjects;
12852
- }
12853
- get useLongestToken() {
12854
- return false;
12855
- }
12856
- buildValues(lastComponent, newTokens, oldTokens) {
12857
- const components = [];
12858
- let nextComponent;
12859
- while (lastComponent) {
12860
- components.push(lastComponent);
12861
- nextComponent = lastComponent.previousComponent;
12862
- delete lastComponent.previousComponent;
12863
- lastComponent = nextComponent;
12864
- }
12865
- components.reverse();
12866
- const componentLen = components.length;
12867
- let componentPos = 0, newPos = 0, oldPos = 0;
12868
- for (; componentPos < componentLen; componentPos++) {
12869
- const component = components[componentPos];
12870
- if (!component.removed) {
12871
- if (!component.added && this.useLongestToken) {
12872
- let value = newTokens.slice(newPos, newPos + component.count);
12873
- value = value.map(function(value, i) {
12874
- const oldValue = oldTokens[oldPos + i];
12875
- return oldValue.length > value.length ? oldValue : value;
12876
- });
12877
- component.value = this.join(value);
12878
- } else component.value = this.join(newTokens.slice(newPos, newPos + component.count));
12879
- newPos += component.count;
12880
- if (!component.added) oldPos += component.count;
12881
- } else {
12882
- component.value = this.join(oldTokens.slice(oldPos, oldPos + component.count));
12883
- oldPos += component.count;
12884
- }
12885
- }
12886
- return components;
12887
- }
12888
- };
12889
- //#endregion
12890
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/character.js
12891
- var CharacterDiff = class extends Diff {};
12892
- new CharacterDiff();
12893
- //#endregion
12894
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/util/string.js
12895
- function longestCommonPrefix(str1, str2) {
12896
- let i;
12897
- for (i = 0; i < str1.length && i < str2.length; i++) if (str1[i] != str2[i]) return str1.slice(0, i);
12898
- return str1.slice(0, i);
12899
- }
12900
- function longestCommonSuffix(str1, str2) {
12901
- let i;
12902
- if (!str1 || !str2 || str1[str1.length - 1] != str2[str2.length - 1]) return "";
12903
- for (i = 0; i < str1.length && i < str2.length; i++) if (str1[str1.length - (i + 1)] != str2[str2.length - (i + 1)]) return str1.slice(-i);
12904
- return str1.slice(-i);
12905
- }
12906
- function replacePrefix(string, oldPrefix, newPrefix) {
12907
- if (string.slice(0, oldPrefix.length) != oldPrefix) throw Error(`string ${JSON.stringify(string)} doesn't start with prefix ${JSON.stringify(oldPrefix)}; this is a bug`);
12908
- return newPrefix + string.slice(oldPrefix.length);
12909
- }
12910
- function replaceSuffix(string, oldSuffix, newSuffix) {
12911
- if (!oldSuffix) return string + newSuffix;
12912
- if (string.slice(-oldSuffix.length) != oldSuffix) throw Error(`string ${JSON.stringify(string)} doesn't end with suffix ${JSON.stringify(oldSuffix)}; this is a bug`);
12913
- return string.slice(0, -oldSuffix.length) + newSuffix;
12914
- }
12915
- function removePrefix(string, oldPrefix) {
12916
- return replacePrefix(string, oldPrefix, "");
12917
- }
12918
- function removeSuffix(string, oldSuffix) {
12919
- return replaceSuffix(string, oldSuffix, "");
12920
- }
12921
- function maximumOverlap(string1, string2) {
12922
- return string2.slice(0, overlapCount(string1, string2));
12923
- }
12924
- function overlapCount(a, b) {
12925
- let startA = 0;
12926
- if (a.length > b.length) startA = a.length - b.length;
12927
- let endB = b.length;
12928
- if (a.length < b.length) endB = a.length;
12929
- const map = Array(endB);
12930
- let k = 0;
12931
- map[0] = 0;
12932
- for (let j = 1; j < endB; j++) {
12933
- if (b[j] == b[k]) map[j] = map[k];
12934
- else map[j] = k;
12935
- while (k > 0 && b[j] != b[k]) k = map[k];
12936
- if (b[j] == b[k]) k++;
12937
- }
12938
- k = 0;
12939
- for (let i = startA; i < a.length; i++) {
12940
- while (k > 0 && a[i] != b[k]) k = map[k];
12941
- if (a[i] == b[k]) k++;
12942
- }
12943
- return k;
12944
- }
12945
- /**
12946
- * Split a string into segments using a word segmenter, merging consecutive
12947
- * segments if they are both whitespace segments. Whitespace segments can
12948
- * appear adjacent to one another for two reasons:
12949
- * - newlines always get their own segment
12950
- * - where a diacritic is attached to a whitespace character in the text, the
12951
- * segment ends after the diacritic, so e.g. " \u0300 " becomes two segments.
12952
- * This function therefore runs the segmenter's .segment() method and then
12953
- * merges consecutive segments of whitespace into a single part.
12954
- */
12955
- function segment(string, segmenter) {
12956
- const parts = [];
12957
- for (const segmentObj of Array.from(segmenter.segment(string))) {
12958
- const segment = segmentObj.segment;
12959
- if (parts.length && /\s/.test(parts[parts.length - 1]) && /\s/.test(segment)) parts[parts.length - 1] += segment;
12960
- else parts.push(segment);
12961
- }
12962
- return parts;
12963
- }
12964
- function trailingWs(string, segmenter) {
12965
- if (segmenter) return leadingAndTrailingWs(string, segmenter)[1];
12966
- let i;
12967
- for (i = string.length - 1; i >= 0; i--) if (!string[i].match(/\s/)) break;
12968
- return string.substring(i + 1);
12969
- }
12970
- function leadingWs(string, segmenter) {
12971
- if (segmenter) return leadingAndTrailingWs(string, segmenter)[0];
12972
- const match = string.match(/^\s*/);
12973
- return match ? match[0] : "";
12974
- }
12975
- function leadingAndTrailingWs(string, segmenter) {
12976
- if (!segmenter) return [leadingWs(string), trailingWs(string)];
12977
- if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
12978
- const segments = segment(string, segmenter);
12979
- const firstSeg = segments[0];
12980
- const lastSeg = segments[segments.length - 1];
12981
- return [/\s/.test(firstSeg) ? firstSeg : "", /\s/.test(lastSeg) ? lastSeg : ""];
12982
- }
12983
- //#endregion
12984
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/word.js
12985
- var extendedWordChars = "a-zA-Z0-9_\\u{AD}\\u{C0}-\\u{D6}\\u{D8}-\\u{F6}\\u{F8}-\\u{2C6}\\u{2C8}-\\u{2D7}\\u{2DE}-\\u{2FF}\\u{1E00}-\\u{1EFF}";
12986
- var tokenizeIncludingWhitespace = new RegExp(`[${extendedWordChars}]+|\\s+|[^${extendedWordChars}]`, "ug");
12987
- var WordDiff = class extends Diff {
12988
- equals(left, right, options) {
12989
- if (options.ignoreCase) {
12990
- left = left.toLowerCase();
12991
- right = right.toLowerCase();
12992
- }
12993
- return left.trim() === right.trim();
12994
- }
12995
- tokenize(value, options = {}) {
12996
- let parts;
12997
- if (options.intlSegmenter) {
12998
- const segmenter = options.intlSegmenter;
12999
- if (segmenter.resolvedOptions().granularity != "word") throw new Error("The segmenter passed must have a granularity of \"word\"");
13000
- parts = segment(value, segmenter);
13001
- } else parts = value.match(tokenizeIncludingWhitespace) || [];
13002
- const tokens = [];
13003
- let prevPart = null;
13004
- parts.forEach((part) => {
13005
- if (/\s/.test(part)) {
13006
- if (prevPart == null) tokens.push(part);
13007
- else tokens.push(tokens.pop() + part);
13008
- } else if (prevPart != null && /\s/.test(prevPart)) {
13009
- if (tokens[tokens.length - 1] == prevPart) tokens.push(tokens.pop() + part);
13010
- else tokens.push(prevPart + part);
13011
- } else tokens.push(part);
13012
- prevPart = part;
13013
- });
13014
- return tokens;
13015
- }
13016
- join(tokens) {
13017
- return tokens.map((token, i) => {
13018
- if (i == 0) return token;
13019
- else return token.replace(/^\s+/, "");
13020
- }).join("");
13021
- }
13022
- postProcess(changes, options) {
13023
- if (!changes || options.oneChangePerToken) return changes;
13024
- let lastKeep = null;
13025
- let insertion = null;
13026
- let deletion = null;
13027
- changes.forEach((change) => {
13028
- if (change.added) insertion = change;
13029
- else if (change.removed) deletion = change;
13030
- else {
13031
- if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, change, options.intlSegmenter);
13032
- lastKeep = change;
13033
- insertion = null;
13034
- deletion = null;
13035
- }
13036
- });
13037
- if (insertion || deletion) dedupeWhitespaceInChangeObjects(lastKeep, deletion, insertion, null, options.intlSegmenter);
13038
- return changes;
13039
- }
13040
- };
13041
- new WordDiff();
13042
- function dedupeWhitespaceInChangeObjects(startKeep, deletion, insertion, endKeep, segmenter) {
13043
- if (deletion && insertion) {
13044
- const [oldWsPrefix, oldWsSuffix] = leadingAndTrailingWs(deletion.value, segmenter);
13045
- const [newWsPrefix, newWsSuffix] = leadingAndTrailingWs(insertion.value, segmenter);
13046
- if (startKeep) {
13047
- const commonWsPrefix = longestCommonPrefix(oldWsPrefix, newWsPrefix);
13048
- startKeep.value = replaceSuffix(startKeep.value, newWsPrefix, commonWsPrefix);
13049
- deletion.value = removePrefix(deletion.value, commonWsPrefix);
13050
- insertion.value = removePrefix(insertion.value, commonWsPrefix);
13051
- }
13052
- if (endKeep) {
13053
- const commonWsSuffix = longestCommonSuffix(oldWsSuffix, newWsSuffix);
13054
- endKeep.value = replacePrefix(endKeep.value, newWsSuffix, commonWsSuffix);
13055
- deletion.value = removeSuffix(deletion.value, commonWsSuffix);
13056
- insertion.value = removeSuffix(insertion.value, commonWsSuffix);
13057
- }
13058
- } else if (insertion) {
13059
- if (startKeep) {
13060
- const ws = leadingWs(insertion.value, segmenter);
13061
- insertion.value = insertion.value.substring(ws.length);
13062
- }
13063
- if (endKeep) {
13064
- const ws = leadingWs(endKeep.value, segmenter);
13065
- endKeep.value = endKeep.value.substring(ws.length);
13066
- }
13067
- } else if (startKeep && endKeep) {
13068
- const newWsFull = leadingWs(endKeep.value, segmenter), [delWsStart, delWsEnd] = leadingAndTrailingWs(deletion.value, segmenter);
13069
- const newWsStart = longestCommonPrefix(newWsFull, delWsStart);
13070
- deletion.value = removePrefix(deletion.value, newWsStart);
13071
- const newWsEnd = longestCommonSuffix(removePrefix(newWsFull, newWsStart), delWsEnd);
13072
- deletion.value = removeSuffix(deletion.value, newWsEnd);
13073
- endKeep.value = replacePrefix(endKeep.value, newWsFull, newWsEnd);
13074
- startKeep.value = replaceSuffix(startKeep.value, newWsFull, newWsFull.slice(0, newWsFull.length - newWsEnd.length));
13075
- } else if (endKeep) {
13076
- const endKeepWsPrefix = leadingWs(endKeep.value, segmenter);
13077
- const overlap = maximumOverlap(trailingWs(deletion.value, segmenter), endKeepWsPrefix);
13078
- deletion.value = removeSuffix(deletion.value, overlap);
13079
- } else if (startKeep) {
13080
- const overlap = maximumOverlap(trailingWs(startKeep.value, segmenter), leadingWs(deletion.value, segmenter));
13081
- deletion.value = removePrefix(deletion.value, overlap);
13082
- }
13083
- }
13084
- var WordsWithSpaceDiff = class extends Diff {
13085
- tokenize(value) {
13086
- const regex = new RegExp(`(\\r?\\n)|[${extendedWordChars}]+|[^\\S\\n\\r]+|[^${extendedWordChars}]`, "ug");
13087
- return value.match(regex) || [];
13088
- }
13089
- };
13090
- new WordsWithSpaceDiff();
13091
- //#endregion
13092
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/line.js
13093
- var LineDiff = class extends Diff {
13094
- constructor() {
13095
- super(...arguments);
13096
- this.tokenize = tokenize;
13097
- }
13098
- equals(left, right, options) {
13099
- if (options.ignoreWhitespace) {
13100
- if (!options.newlineIsToken || !left.includes("\n")) left = left.trim();
13101
- if (!options.newlineIsToken || !right.includes("\n")) right = right.trim();
13102
- } else if (options.ignoreNewlineAtEof && !options.newlineIsToken) {
13103
- if (left.endsWith("\n")) left = left.slice(0, -1);
13104
- if (right.endsWith("\n")) right = right.slice(0, -1);
13105
- }
13106
- return super.equals(left, right, options);
13107
- }
13108
- };
13109
- var lineDiff = new LineDiff();
13110
- function diffLines(oldStr, newStr, options) {
13111
- return lineDiff.diff(oldStr, newStr, options);
13112
- }
13113
- function tokenize(value, options) {
13114
- if (options.stripTrailingCr) value = value.replace(/\r\n/g, "\n");
13115
- const retLines = [], linesAndNewlines = value.split(/(\n|\r\n)/);
13116
- if (!linesAndNewlines[linesAndNewlines.length - 1]) linesAndNewlines.pop();
13117
- for (let i = 0; i < linesAndNewlines.length; i++) {
13118
- const line = linesAndNewlines[i];
13119
- if (i % 2 && !options.newlineIsToken) retLines[retLines.length - 1] += line;
13120
- else retLines.push(line);
13121
- }
13122
- return retLines;
13123
- }
13124
- //#endregion
13125
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/sentence.js
13126
- function isSentenceEndPunct(char) {
13127
- return char == "." || char == "!" || char == "?";
13128
- }
13129
- var SentenceDiff = class extends Diff {
13130
- tokenize(value) {
13131
- var _a;
13132
- const result = [];
13133
- let tokenStartI = 0;
13134
- for (let i = 0; i < value.length; i++) {
13135
- if (i == value.length - 1) {
13136
- result.push(value.slice(tokenStartI));
13137
- break;
13138
- }
13139
- if (isSentenceEndPunct(value[i]) && value[i + 1].match(/\s/)) {
13140
- result.push(value.slice(tokenStartI, i + 1));
13141
- i = tokenStartI = i + 1;
13142
- while ((_a = value[i + 1]) === null || _a === void 0 ? void 0 : _a.match(/\s/)) i++;
13143
- result.push(value.slice(tokenStartI, i + 1));
13144
- tokenStartI = i + 1;
13145
- }
13146
- }
13147
- return result;
13148
- }
13149
- };
13150
- new SentenceDiff();
13151
- //#endregion
13152
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/css.js
13153
- var CssDiff = class extends Diff {
13154
- tokenize(value) {
13155
- return value.split(/([{}:;,]|\s+)/);
13156
- }
13157
- };
13158
- new CssDiff();
13159
- //#endregion
13160
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/json.js
13161
- var JsonDiff = class extends Diff {
13162
- constructor() {
13163
- super(...arguments);
13164
- this.tokenize = tokenize;
13165
- }
13166
- get useLongestToken() {
13167
- return true;
13168
- }
13169
- castInput(value, options) {
13170
- const { undefinedReplacement, stringifyReplacer = (k, v) => typeof v === "undefined" ? undefinedReplacement : v } = options;
13171
- return typeof value === "string" ? value : JSON.stringify(canonicalize(value, null, null, stringifyReplacer), null, " ");
13172
- }
13173
- equals(left, right, options) {
13174
- return super.equals(left.replace(/,([\r\n])/g, "$1"), right.replace(/,([\r\n])/g, "$1"), options);
13175
- }
13176
- };
13177
- new JsonDiff();
13178
- function canonicalize(obj, stack, replacementStack, replacer, key) {
13179
- stack = stack || [];
13180
- replacementStack = replacementStack || [];
13181
- if (replacer) obj = replacer(key === void 0 ? "" : key, obj);
13182
- let i;
13183
- for (i = 0; i < stack.length; i += 1) if (stack[i] === obj) return replacementStack[i];
13184
- let canonicalizedObj;
13185
- if ("[object Array]" === Object.prototype.toString.call(obj)) {
13186
- stack.push(obj);
13187
- canonicalizedObj = new Array(obj.length);
13188
- replacementStack.push(canonicalizedObj);
13189
- for (i = 0; i < obj.length; i += 1) canonicalizedObj[i] = canonicalize(obj[i], stack, replacementStack, replacer, String(i));
13190
- stack.pop();
13191
- replacementStack.pop();
13192
- return canonicalizedObj;
13193
- }
13194
- if (obj && obj.toJSON) obj = obj.toJSON();
13195
- if (typeof obj === "object" && obj !== null) {
13196
- stack.push(obj);
13197
- canonicalizedObj = {};
13198
- replacementStack.push(canonicalizedObj);
13199
- const sortedKeys = [];
13200
- let key;
13201
- for (key in obj)
13202
- /* istanbul ignore else */
13203
- if (Object.prototype.hasOwnProperty.call(obj, key)) sortedKeys.push(key);
13204
- sortedKeys.sort();
13205
- for (i = 0; i < sortedKeys.length; i += 1) {
13206
- key = sortedKeys[i];
13207
- canonicalizedObj[key] = canonicalize(obj[key], stack, replacementStack, replacer, key);
13208
- }
13209
- stack.pop();
13210
- replacementStack.pop();
13211
- } else canonicalizedObj = obj;
13212
- return canonicalizedObj;
13213
- }
13214
- //#endregion
13215
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/diff/array.js
13216
- var ArrayDiff = class extends Diff {
13217
- tokenize(value) {
13218
- return value.slice();
13219
- }
13220
- join(value) {
13221
- return value;
13222
- }
13223
- removeEmpty(value) {
13224
- return value;
13225
- }
13226
- };
13227
- new ArrayDiff();
13228
- //#endregion
13229
- //#region node_modules/.pnpm/diff@9.0.0/node_modules/diff/libesm/patch/create.js
13230
- /**
13231
- * Returns true if the filename contains characters that require C-style
13232
- * quoting (as used by Git and GNU diffutils in diff output).
13233
- */
13234
- function needsQuoting(s) {
13235
- for (let i = 0; i < s.length; i++) if (s[i] < " " || s[i] > "~" || s[i] === "\"" || s[i] === "\\") return true;
13236
- return false;
13237
- }
13238
- /**
13239
- * C-style quotes a filename, encoding special characters as escape sequences
13240
- * and non-ASCII bytes as octal escapes. This is the inverse of
13241
- * `parseQuotedFileName` in parse.ts.
13242
- *
13243
- * Non-ASCII bytes are encoded as UTF-8 before being emitted as octal escapes.
13244
- * This matches the behaviour of both Git and GNU diffutils, which always emit
13245
- * UTF-8 octal escapes regardless of the underlying filesystem encoding (e.g.
13246
- * Git for Windows converts from NTFS's UTF-16 to UTF-8 internally).
13247
- *
13248
- * If the filename doesn't need quoting, returns it as-is.
13249
- */
13250
- function quoteFileNameIfNeeded(s) {
13251
- if (!needsQuoting(s)) return s;
13252
- let result = "\"";
13253
- const bytes = new TextEncoder().encode(s);
13254
- let i = 0;
13255
- while (i < bytes.length) {
13256
- const b = bytes[i];
13257
- if (b === 7) result += "\\a";
13258
- else if (b === 8) result += "\\b";
13259
- else if (b === 9) result += "\\t";
13260
- else if (b === 10) result += "\\n";
13261
- else if (b === 11) result += "\\v";
13262
- else if (b === 12) result += "\\f";
13263
- else if (b === 13) result += "\\r";
13264
- else if (b === 34) result += "\\\"";
13265
- else if (b === 92) result += "\\\\";
13266
- else if (b >= 32 && b <= 126) result += String.fromCharCode(b);
13267
- else result += "\\" + b.toString(8).padStart(3, "0");
13268
- i++;
13269
- }
13270
- result += "\"";
13271
- return result;
13272
- }
13273
- var INCLUDE_HEADERS = {
13274
- includeIndex: true,
13275
- includeUnderline: true,
13276
- includeFileHeaders: true
13277
- };
13278
- function structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
13279
- let optionsObj;
13280
- if (!options) optionsObj = {};
13281
- else if (typeof options === "function") optionsObj = { callback: options };
13282
- else optionsObj = options;
13283
- if (typeof optionsObj.context === "undefined") optionsObj.context = 4;
13284
- const context = optionsObj.context;
13285
- if (optionsObj.newlineIsToken) throw new Error("newlineIsToken may not be used with patch-generation functions, only with diffing functions");
13286
- if (!optionsObj.callback) return diffLinesResultToPatch(diffLines(oldStr, newStr, optionsObj));
13287
- else {
13288
- const { callback } = optionsObj;
13289
- diffLines(oldStr, newStr, Object.assign(Object.assign({}, optionsObj), { callback: (diff) => {
13290
- const patch = diffLinesResultToPatch(diff);
13291
- callback(patch);
13292
- } }));
13293
- }
13294
- function diffLinesResultToPatch(diff) {
13295
- if (!diff) return;
13296
- diff.push({
13297
- value: "",
13298
- lines: []
13299
- });
13300
- function contextLines(lines) {
13301
- return lines.map(function(entry) {
13302
- return " " + entry;
13303
- });
13304
- }
13305
- const hunks = [];
13306
- let oldRangeStart = 0, newRangeStart = 0, curRange = [], oldLine = 1, newLine = 1;
13307
- for (let i = 0; i < diff.length; i++) {
13308
- const current = diff[i], lines = current.lines || splitLines(current.value);
13309
- current.lines = lines;
13310
- if (current.added || current.removed) {
13311
- if (!oldRangeStart) {
13312
- const prev = diff[i - 1];
13313
- oldRangeStart = oldLine;
13314
- newRangeStart = newLine;
13315
- if (prev) {
13316
- curRange = context > 0 ? contextLines(prev.lines.slice(-context)) : [];
13317
- oldRangeStart -= curRange.length;
13318
- newRangeStart -= curRange.length;
13319
- }
13320
- }
13321
- for (const line of lines) curRange.push((current.added ? "+" : "-") + line);
13322
- if (current.added) newLine += lines.length;
13323
- else oldLine += lines.length;
13324
- } else {
13325
- if (oldRangeStart) {
13326
- if (lines.length <= context * 2 && i < diff.length - 2) for (const line of contextLines(lines)) curRange.push(line);
13327
- else {
13328
- const contextSize = Math.min(lines.length, context);
13329
- for (const line of contextLines(lines.slice(0, contextSize))) curRange.push(line);
13330
- const hunk = {
13331
- oldStart: oldRangeStart,
13332
- oldLines: oldLine - oldRangeStart + contextSize,
13333
- newStart: newRangeStart,
13334
- newLines: newLine - newRangeStart + contextSize,
13335
- lines: curRange
13336
- };
13337
- hunks.push(hunk);
13338
- oldRangeStart = 0;
13339
- newRangeStart = 0;
13340
- curRange = [];
13341
- }
13342
- }
13343
- oldLine += lines.length;
13344
- newLine += lines.length;
13345
- }
13346
- }
13347
- for (const hunk of hunks) for (let i = 0; i < hunk.lines.length; i++) if (hunk.lines[i].endsWith("\n")) hunk.lines[i] = hunk.lines[i].slice(0, -1);
13348
- else {
13349
- hunk.lines.splice(i + 1, 0, "\");
13350
- i++;
13351
- }
13352
- return {
13353
- oldFileName,
13354
- newFileName,
13355
- oldHeader,
13356
- newHeader,
13357
- hunks
13358
- };
13359
- }
13360
- }
13361
- /**
13362
- * creates a unified diff patch.
13363
- *
13364
- * @param patch either a single structured patch object (as returned by `structuredPatch`) or an
13365
- * array of them (as returned by `parsePatch`).
13366
- * @param headerOptions behaves the same as the `headerOptions` option of `createTwoFilesPatch`.
13367
- * Ignored for patches where `isGit` is `true`.
13368
- *
13369
- * When a patch has `isGit: true`, `formatPatch` output is changed to more closely match Git's
13370
- * output: it emits a `diff --git` header, emits Git extended headers as appropriate based on
13371
- * properties like `isRename`, `isCreate`, `newMode`, etc, and will omit `---`/`+++` file
13372
- * headers for patches with no hunks (e.g. renames without content changes).
13373
- */
13374
- function formatPatch(patch, headerOptions) {
13375
- var _a, _b, _c, _d, _e, _f;
13376
- if (!headerOptions) headerOptions = INCLUDE_HEADERS;
13377
- if (Array.isArray(patch)) {
13378
- if (patch.length > 1 && !headerOptions.includeFileHeaders && !patch.every((p) => p.isGit)) throw new Error("Cannot omit file headers on a multi-file patch. (The result would be unparseable; how would a tool trying to apply the patch know which changes are to which file?)");
13379
- return patch.map((p) => formatPatch(p, headerOptions)).join("\n");
13380
- }
13381
- const ret = [];
13382
- if (patch.isGit) {
13383
- headerOptions = INCLUDE_HEADERS;
13384
- if (!patch.oldFileName) throw new Error("oldFileName must be specified for Git patches");
13385
- if (!patch.newFileName) throw new Error("newFileName must be specified for Git patches");
13386
- let gitOldName = patch.oldFileName;
13387
- let gitNewName = patch.newFileName;
13388
- if (patch.isCreate && gitOldName === "/dev/null") gitOldName = gitNewName.replace(/^b\//, "a/");
13389
- else if (patch.isDelete && gitNewName === "/dev/null") gitNewName = gitOldName.replace(/^a\//, "b/");
13390
- ret.push("diff --git " + quoteFileNameIfNeeded(gitOldName) + " " + quoteFileNameIfNeeded(gitNewName));
13391
- if (patch.isDelete) ret.push("deleted file mode " + ((_a = patch.oldMode) !== null && _a !== void 0 ? _a : "100644"));
13392
- if (patch.isCreate) ret.push("new file mode " + ((_b = patch.newMode) !== null && _b !== void 0 ? _b : "100644"));
13393
- if (patch.oldMode && patch.newMode && !patch.isDelete && !patch.isCreate) {
13394
- ret.push("old mode " + patch.oldMode);
13395
- ret.push("new mode " + patch.newMode);
13396
- }
13397
- if (patch.isRename) {
13398
- ret.push("rename from " + quoteFileNameIfNeeded(((_c = patch.oldFileName) !== null && _c !== void 0 ? _c : "").replace(/^a\//, "")));
13399
- ret.push("rename to " + quoteFileNameIfNeeded(((_d = patch.newFileName) !== null && _d !== void 0 ? _d : "").replace(/^b\//, "")));
13400
- }
13401
- if (patch.isCopy) {
13402
- ret.push("copy from " + quoteFileNameIfNeeded(((_e = patch.oldFileName) !== null && _e !== void 0 ? _e : "").replace(/^a\//, "")));
13403
- ret.push("copy to " + quoteFileNameIfNeeded(((_f = patch.newFileName) !== null && _f !== void 0 ? _f : "").replace(/^b\//, "")));
13404
- }
13405
- } else {
13406
- if (headerOptions.includeIndex && patch.oldFileName == patch.newFileName && patch.oldFileName !== void 0) ret.push("Index: " + patch.oldFileName);
13407
- if (headerOptions.includeUnderline) ret.push("===================================================================");
13408
- }
13409
- const hasHunks = patch.hunks.length > 0;
13410
- if (headerOptions.includeFileHeaders && patch.oldFileName !== void 0 && patch.newFileName !== void 0 && (!patch.isGit || hasHunks)) {
13411
- ret.push("--- " + quoteFileNameIfNeeded(patch.oldFileName) + (patch.oldHeader ? " " + patch.oldHeader : ""));
13412
- ret.push("+++ " + quoteFileNameIfNeeded(patch.newFileName) + (patch.newHeader ? " " + patch.newHeader : ""));
13413
- }
13414
- for (let i = 0; i < patch.hunks.length; i++) {
13415
- const hunk = patch.hunks[i];
13416
- const oldStart = hunk.oldLines === 0 ? hunk.oldStart - 1 : hunk.oldStart;
13417
- const newStart = hunk.newLines === 0 ? hunk.newStart - 1 : hunk.newStart;
13418
- ret.push("@@ -" + oldStart + "," + hunk.oldLines + " +" + newStart + "," + hunk.newLines + " @@");
13419
- for (const line of hunk.lines) ret.push(line);
13420
- }
13421
- return ret.join("\n") + "\n";
13422
- }
13423
- function createTwoFilesPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options) {
13424
- if (typeof options === "function") options = { callback: options };
13425
- if (!(options === null || options === void 0 ? void 0 : options.callback)) {
13426
- const patchObj = structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, options);
13427
- if (!patchObj) return;
13428
- return formatPatch(patchObj, options === null || options === void 0 ? void 0 : options.headerOptions);
13429
- } else {
13430
- const { callback } = options;
13431
- structuredPatch(oldFileName, newFileName, oldStr, newStr, oldHeader, newHeader, Object.assign(Object.assign({}, options), { callback: (patchObj) => {
13432
- if (!patchObj) callback(void 0);
13433
- else callback(formatPatch(patchObj, options.headerOptions));
13434
- } }));
13435
- }
13436
- }
13437
- /**
13438
- * Split `text` into an array of lines, including the trailing newline character (where present)
13439
- */
13440
- function splitLines(text) {
13441
- const hasTrailingNl = text.endsWith("\n");
13442
- const result = text.split("\n").map((line) => line + "\n");
13443
- if (hasTrailingNl) result.pop();
13444
- else result.push(result.pop().slice(0, -1));
13445
- return result;
13446
- }
13447
- //#endregion
13448
- //#region node_modules/.pnpm/@pierre+diffs@1.3.6_@shikijs+themes@4.4.3_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@pierre/diffs/dist/utils/parseDiffFromFile.js
13449
- var MISSING_FILE_NAME = "/dev/null";
13450
- /**
13451
- * Parses a diff from two file contents objects.
13452
- *
13453
- * If both `oldFile` and `newFile` have a `cacheKey`, the resulting diff will
13454
- * automatically get a combined cache key in the format `oldKey:newKey`.
13455
- */
13456
- function parseDiffFromFile(oldFile, newFile, options, throwOnError = false) {
13457
- if (oldFile === null && newFile === null) throw new Error("parseDiffFromFile: You must pass oldFile, newFile, or both");
13458
- const resolvedOldFile = oldFile ?? createMissingFile();
13459
- const resolvedNewFile = newFile ?? createMissingFile();
13460
- const fileData = processFile(createTwoFilesPatch(resolvedOldFile.name, resolvedNewFile.name, resolvedOldFile.contents, resolvedNewFile.contents, resolvedOldFile.header, resolvedNewFile.header, options), {
13461
- cacheKey: (() => {
13462
- const oldCacheKey = oldFile?.cacheKey ?? oldFile?.name;
13463
- const newCacheKey = newFile?.cacheKey ?? newFile?.name;
13464
- if (oldCacheKey != null && newCacheKey != null) return oldCacheKey + ":" + newCacheKey;
13465
- return oldCacheKey ?? newCacheKey;
13466
- })(),
13467
- oldFile: resolvedOldFile,
13468
- newFile: resolvedNewFile,
13469
- throwOnError
13470
- });
13471
- if (fileData == null) throw new Error("parseDiffFrom: FileInvalid diff -- probably need to fix something -- if the files are the same maybe?");
13472
- if (oldFile === null) {
13473
- fileData.type = "new";
13474
- fileData.prevName = void 0;
13475
- } else if (newFile === null) {
13476
- fileData.type = "deleted";
13477
- fileData.prevName = void 0;
13478
- }
13479
- const language = newFile?.lang ?? (newFile === null ? oldFile?.lang : void 0);
13480
- if (language != null) fileData.lang = language;
13481
- return fileData;
13482
- }
13483
- function createMissingFile() {
13484
- return {
13485
- name: MISSING_FILE_NAME,
13486
- contents: ""
13487
- };
13488
- }
13489
- var MAX_PER_FILE = 40;
13490
- /** Substring search over path + lines pierre actually renders (hunk
13491
- * change + context). Full-file old/new text is much larger than the
13492
- * visible diff — counting those made Next feel broken ("32 matches"
13493
- * with nothing on screen for many steps). */
13494
- /** Last search, keyed by files identity + query: the find box asks up to
13495
- * three times per keystroke (immediate paint, debounced state, template). */
13496
- var last;
13497
- /** Files with hits, or null when the list hit its cap and so can't say
13498
- * which files are clean (paint then falls back to walking every host). */
13499
- function hitKeys(hits) {
13500
- return hits.length >= 200 ? null : [...new Set(hits.map((h) => h.key))];
13501
- }
13502
- function searchDiffFiles(files, raw) {
13503
- const query = raw.trim();
13504
- if (!query) return [];
13505
- if (last && last.files === files && last.query === query) return last.hits;
13506
- const hits = searchUncached(files, query);
13507
- last = {
13508
- files,
13509
- query,
13510
- hits
13511
- };
13512
- return hits;
13513
- }
13514
- /** Hunk line sets and split lines are query-independent and dominate the
13515
- * cost (pierre re-parses the whole file); keep them per file object. */
13516
- var parsed = /* @__PURE__ */ new WeakMap();
13517
- function parsedFor(file) {
13518
- let p = parsed.get(file);
13519
- if (!p) {
13520
- p = {
13521
- visible: visibleHunkLines(file.old, file.new),
13522
- newLines: file.new == null ? null : file.new.split("\n"),
13523
- oldLines: file.old == null ? null : file.old.split("\n")
13524
- };
13525
- parsed.set(file, p);
13526
- }
13527
- return p;
13528
- }
13529
- function searchUncached(files, query) {
13530
- const sensitive = /[A-Z]/.test(query);
13531
- const needle = sensitive ? query : query.toLowerCase();
13532
- const ascii = !/[^\x00-\x7f]/.test(needle);
13533
- const hits = [];
13534
- for (const file of files) {
13535
- if (hits.length >= 200) break;
13536
- const before = hits.length;
13537
- if (ascii) {
13538
- const oldHay = sensitive ? file.old || "" : (file.old || "").toLowerCase();
13539
- const newHay = sensitive ? file.new || "" : (file.new || "").toLowerCase();
13540
- if (!oldHay.includes(needle) && !newHay.includes(needle)) {
13541
- if (pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
13542
- key: file.key,
13543
- path: file.path,
13544
- repo: file.repo,
13545
- line: 0,
13546
- side: null,
13547
- preview: file.path
13548
- });
13549
- continue;
13550
- }
13551
- }
13552
- const { visible, newLines, oldLines } = parsedFor(file);
13553
- const seen = /* @__PURE__ */ new Set();
13554
- scanSide(file, newLines, "additions", needle, sensitive, seen, hits, visible.additions);
13555
- scanSide(file, oldLines, "deletions", needle, sensitive, seen, hits, visible.deletions);
13556
- if (hits.length === before && pathMeaningfulMatch(file.path, needle, sensitive)) hits.push({
13557
- key: file.key,
13558
- path: file.path,
13559
- repo: file.repo,
13560
- line: 0,
13561
- side: null,
13562
- preview: file.path
13563
- });
13564
- }
13565
- return hits;
13566
- }
13567
- /** True when needle hits the path somewhere other than only the final
13568
- * extension (`file.marko` + "marko" → false; `marko/src/x.ts` → true). */
13569
- function pathMeaningfulMatch(path, needle, sensitive) {
13570
- const hay = sensitive ? path : path.toLowerCase();
13571
- if (!hay.includes(needle)) return false;
13572
- const slash = path.lastIndexOf("/");
13573
- const base = slash >= 0 ? path.slice(slash + 1) : path;
13574
- const dot = base.lastIndexOf(".");
13575
- if (dot <= 0) return true;
13576
- const ext = base.slice(dot + 1);
13577
- if (!(sensitive ? ext : ext.toLowerCase()).includes(needle)) return true;
13578
- const extStartInPath = path.length - ext.length;
13579
- for (let at = hay.indexOf(needle); at !== -1; at = hay.indexOf(needle, at + 1)) if (at < extStartInPath) return true;
13580
- return false;
13581
- }
13582
- /** 1-based line numbers pierre shows for each side (hunk ranges only). */
13583
- function visibleHunkLines(oldText, newText) {
13584
- const additions = /* @__PURE__ */ new Set();
13585
- const deletions = /* @__PURE__ */ new Set();
13586
- if (oldText == null && newText == null) return {
13587
- additions,
13588
- deletions
13589
- };
13590
- try {
13591
- const meta = parseDiffFromFile(oldText == null ? null : {
13592
- name: "old",
13593
- contents: oldText
13594
- }, newText == null ? null : {
13595
- name: "new",
13596
- contents: newText
13597
- });
13598
- for (const h of meta.hunks) {
13599
- for (let i = 0; i < h.additionCount; i++) additions.add(h.additionStart + i);
13600
- for (let i = 0; i < h.deletionCount; i++) deletions.add(h.deletionStart + i);
13601
- }
13602
- } catch {}
13603
- return {
13604
- additions,
13605
- deletions
13606
- };
13607
- }
13608
- function scanSide(file, lines, side, needle, sensitive, seen, hits, visible) {
13609
- if (!lines || hits.length >= 200 || !visible.size) return;
13610
- let fromFile = 0;
13611
- for (let i = 0; i < lines.length; i++) {
13612
- if (hits.length >= 200 || fromFile >= MAX_PER_FILE) return;
13613
- const lineNo = i + 1;
13614
- if (!visible.has(lineNo)) continue;
13615
- const line = lines[i];
13616
- const at = (sensitive ? line : line.toLowerCase()).indexOf(needle);
13617
- if (at < 0) continue;
13618
- if (side === "deletions" && seen.has(line)) continue;
13619
- if (side === "additions") seen.add(line);
13620
- fromFile++;
13621
- hits.push({
13622
- key: file.key,
13623
- path: file.path,
13624
- repo: file.repo,
13625
- line: lineNo,
13626
- side,
13627
- preview: clip(line, at, needle.length)
13628
- });
13629
- }
13630
- }
13631
- function clip(line, at, len) {
13632
- const pad = 36;
13633
- const start = Math.max(0, at - pad);
13634
- const end = Math.min(line.length, at + len + pad);
13635
- return (start > 0 ? "…" : "") + line.slice(start, end) + (end < line.length ? "…" : "");
13636
- }
13637
- var findInput = "_eh _n";
13638
- var findIconBtn = "_ek _l";
12154
+ var findInput = "_cw _n";
12155
+ var findIconBtn = "_cz _l";
13639
12156
  //#endregion
13640
12157
  //#region src/tags/icons/icon-arrow-down.marko
13641
12158
  var icon_arrow_down_default = _template("N", (input) => {
@@ -13655,6 +12172,8 @@ var icon_arrow_down_default = _template("N", (input) => {
13655
12172
  });
13656
12173
  //#endregion
13657
12174
  //#region src/tags/diff-find.marko
12175
+ var hitKeys;
12176
+ var searchDiffFiles;
13658
12177
  var setSearchPaint$1;
13659
12178
  var diff_find_default = _template("i", (input) => {
13660
12179
  const $scope0_reason = _scope_reason();
@@ -13723,9 +12242,9 @@ var diff_find_default = _template("i", (input) => {
13723
12242
  el.select();
13724
12243
  }, 0);
13725
12244
  }, "i0", $scope0_id);
13726
- _html(`<div${_attr_class(["_eg", !open && "_ef"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
12245
+ _html(`<div${_attr_class(["_cv", !open && "_cu"])} aria-hidden=${open ? "false" : "true"}><input${_attr_input_value($scope0_id, "b", query || "", _resume(function(v) {
13727
12246
  type(v);
13728
- }, "i1", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_ej")}>${_text_resume($scope0_id, "d", open && (query || "").trim() ? hits.length ? `${at + 1}/${hits.length}` : "0/0" : "")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
12247
+ }, "i1", $scope0_id))}${_attr_class(findInput)} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in review" aria-label="Find in review">${_el_resume($scope0_id, "b")}<span${_attr_class("_cy")}>${_text_resume($scope0_id, "d", open && (query || "").trim() ? hits.length ? `${at + 1}/${hits.length}` : "0/0" : "")}</span><button type=button${_attr_class(findIconBtn)} title="Previous match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
13729
12248
  icon_arrow_up_default({ size: 14 });
13730
12249
  _html(`</button>${_el_resume($scope0_id, "e")}<button type=button${_attr_class(findIconBtn)} title="Next match"${_attr("disabled", !hits.length || !open)} tabindex=${open ? "0" : "-1"}>`);
13731
12250
  icon_arrow_down_default({ size: 14 });
@@ -13869,7 +12388,7 @@ var diff_file_default = _template("h", (input) => {
13869
12388
  _scope_reason();
13870
12389
  const $scope0_id = _scope_id();
13871
12390
  _el($scope0_id, "h0");
13872
- _html(`<div${_attr_class(["_jf", input.class])}></div>${_el_resume($scope0_id, "a")}`);
12391
+ _html(`<div${_attr_class(["_jh", input.class])}></div>${_el_resume($scope0_id, "a")}`);
13873
12392
  _script($scope0_id, "h1");
13874
12393
  writeScope($scope0_id, {
13875
12394
  e: input.file,
@@ -14241,7 +12760,7 @@ var review_section_default = _template("x", (input) => {
14241
12760
  cd: $si__input_findHit_line && $input_findHit_line__closures
14242
12761
  });
14243
12762
  });
14244
- var fileFilter = "_jh _n";
12763
+ var fileFilter = "_jg _n";
14245
12764
  //#endregion
14246
12765
  //#region src/tags/file-filter.marko
14247
12766
  var file_filter_default = _template("n", (input) => {
@@ -14271,7 +12790,7 @@ var file_filter_default = _template("n", (input) => {
14271
12790
  pending = v;
14272
12791
  box.timer = setTimeout(flush, 150);
14273
12792
  }, "n2", $scope0_id);
14274
- _html(`<div${_attr_class("_jg")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
12793
+ _html(`<div${_attr_class("_jf")}><input${_attr_input_value($scope0_id, "b", draft, _resume(function(v) {
14275
12794
  type(v);
14276
12795
  }, "n0", $scope0_id))}${_attr_class(fileFilter)} type=search placeholder="Filter files…" aria-label="Filter files">${_el_resume($scope0_id, "b")}</div>`);
14277
12796
  _script($scope0_id, "n3");
@@ -14304,7 +12823,7 @@ var $content = (input) => {
14304
12823
  _for_of(dir.dirs, (child) => {
14305
12824
  const $scope1_id = _scope_id();
14306
12825
  const shut = input.collapsed.has(input.collapsedKey(child.path));
14307
- _html(`<div${_attr_class("_il")}><button type=button${_attr_class(["_im", { ["_id"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_it")}>`);
12826
+ _html(`<div${_attr_class("_h9")}><button type=button${_attr_class(["_h_", { ["_h1"]: shut }])}${_attr("title", child.path)}${_attr_style(`--depth:${child.depth}`)}><span${_attr_class("_ig")}>`);
14308
12827
  _if(() => {
14309
12828
  if (shut) {
14310
12829
  const $scope4_id = _scope_id();
@@ -14318,7 +12837,7 @@ var $content = (input) => {
14318
12837
  return 1;
14319
12838
  }
14320
12839
  }, $scope1_id, "c", $sg__input, $sg__input, $sg__input, "</span>", 1);
14321
- _html(`<span${_attr_class("_in")}>${_text_resume($scope1_id, "e", child.label, $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
12840
+ _html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", child.label, $sg__input_dir)}/</span></button>${_el_resume($scope1_id, "b")}`);
14322
12841
  _if(() => {
14323
12842
  if (!shut) {
14324
12843
  const $scope2_id = _scope_id();
@@ -14365,11 +12884,11 @@ var $content = (input) => {
14365
12884
  }, "path", $scope0_id, "a", $sg__input, $sg__input_dir, $sg__input_dir, 0, 1);
14366
12885
  _for_of(dir.files, ({ file, name }) => {
14367
12886
  const $scope3_id = _scope_id();
14368
- _html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_ip", { ["_io"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope3_id, "c", file.status, $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_iq")}>${_text_resume($scope3_id, "e", name, $sg__input_dir)}</span>`);
12887
+ _html(`<a${_attr("href", input.hrefFor(file.key))}${_attr_class(["_ic", { ["_ib"]: input.collapsedFiles?.has(file.key) }])}${input.collapsedFiles?.has(file.key) ? _attr("title", `${file.path} (folded — click to open)`) : _attr("title", file.path)}${_attr_style(`--depth:${dir.depth + 1}`)}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope3_id, "c", file.status, $sg__input_dir)}</span>${_el_resume($scope3_id, "b", $sg__input_dir)}<span${_attr_class("_id")}>${_text_resume($scope3_id, "e", name, $sg__input_dir)}</span>`);
14369
12888
  _if(() => {
14370
12889
  if (input.newKeys.has(file.key)) {
14371
12890
  const $scope6_id = _scope_id();
14372
- _html(`<span${_attr_class(["_A", "_ir"])} title="Changed since your last visit"></span>`);
12891
+ _html(`<span${_attr_class(["_A", "_ie"])} title="Changed since your last visit"></span>`);
14373
12892
  _serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
14374
12893
  return 0;
14375
12894
  }
@@ -14377,7 +12896,7 @@ var $content = (input) => {
14377
12896
  _if(() => {
14378
12897
  if (input.commentKeys.has(file.key)) {
14379
12898
  const $scope7_id = _scope_id();
14380
- _html(`<span${_attr_class("_is")}>`);
12899
+ _html(`<span${_attr_class("_if")}>`);
14381
12900
  icon_comment_default({ size: 12 });
14382
12901
  _html("</span>");
14383
12902
  _serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
@@ -14435,7 +12954,7 @@ var diff_tree_default = _template("l", (input) => {
14435
12954
  scope: input.scope ?? null,
14436
12955
  file: key
14437
12956
  }), "l0", $scope0_id);
14438
- _html(`<aside${_attr_class(["_ie", { ["_id"]: input.open === false }])}><div${_attr_class("_if")}>`);
12957
+ _html(`<aside${_attr_class(["_h2", { ["_h1"]: input.open === false }])}><div${_attr_class("_h3")}>`);
14439
12958
  _set_serialize_reason(2);
14440
12959
  const $childScope = _peek_scope_id();
14441
12960
  file_filter_default({
@@ -14444,18 +12963,18 @@ var diff_tree_default = _template("l", (input) => {
14444
12963
  filter = _new_filter;
14445
12964
  }, "l1", $scope0_id)
14446
12965
  });
14447
- _html(`</div><div${_attr_class("_ig")}>`);
12966
+ _html(`</div><div${_attr_class("_h4")}>`);
14448
12967
  _if(() => {
14449
12968
  if (!input.sections.length && filter) {
14450
12969
  const $scope3_id = _scope_id();
14451
- _html(`<p${_attr_class("_ih")}>No files match.</p>`);
12970
+ _html(`<p${_attr_class("_h5")}>No files match.</p>`);
14452
12971
  writeScope($scope3_id, {});
14453
12972
  return 0;
14454
12973
  }
14455
12974
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
14456
12975
  _for_of(input.sections, (section) => {
14457
12976
  const $scope1_id = _scope_id();
14458
- _html(`<div${_attr_class("_ii")}><button type=button${_attr_class(["_ij", { ["_id"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_it")}>`);
12977
+ _html(`<div${_attr_class("_h6")}><button type=button${_attr_class(["_h7", { ["_h1"]: collapsedRepos.has(section.id) }])}><span${_attr_class("_ig")}>`);
14459
12978
  _if(() => {
14460
12979
  if (collapsedRepos.has(section.id)) {
14461
12980
  const $scope4_id = _scope_id();
@@ -14469,12 +12988,12 @@ var diff_tree_default = _template("l", (input) => {
14469
12988
  return 1;
14470
12989
  }
14471
12990
  }, $scope1_id, "c", 1, 1, 1, "</span>", 1);
14472
- _html(`<span${_attr_class("_in")}>${_text_resume($scope1_id, "e", section.label, $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
12991
+ _html(`<span${_attr_class("_ia")}>${_text_resume($scope1_id, "e", section.label, $sg__input_sections)}</span></button>${_el_resume($scope1_id, "b")}`);
14473
12992
  _if(() => {
14474
12993
  if (!collapsedRepos.has(section.id) || openedRepos.has(section.id)) {
14475
12994
  const $scope2_id = _scope_id();
14476
12995
  const root = treeDirs(section.files);
14477
- _html(`<div${_attr_class("_ik")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
12996
+ _html(`<div${_attr_class("_h8")}${_attr("hidden", collapsedRepos.has(section.id))}>`);
14478
12997
  _set_serialize_reason(1);
14479
12998
  const $childScope2 = _peek_scope_id();
14480
12999
  diff_tree_dir_default({
@@ -14544,7 +13063,7 @@ var diff_tree_default = _template("l", (input) => {
14544
13063
  });
14545
13064
  _resume_branch($scope0_id);
14546
13065
  });
14547
- var sheetDir = "_iF _bb";
13066
+ var sheetDir = "_it _bb";
14548
13067
  //#endregion
14549
13068
  //#region src/tags/diff-file-sheet.marko
14550
13069
  var diff_file_sheet_default = _template("g", (input) => {
@@ -14600,9 +13119,9 @@ var diff_file_sheet_default = _template("g", (input) => {
14600
13119
  _if(() => {
14601
13120
  if (open) {
14602
13121
  const $scope1_id = _scope_id();
14603
- _html(`<div${_attr_class("_iw")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_ix")} role=dialog aria-label="Jump to file"><div${_attr_class("_iy")}><strong${_attr_class("_iv")}>Files</strong><span${_attr_class("_iz")}>${_text_resume($scope1_id, "f", input.files.length, $sg__input_files_length)}${_text_resume($scope1_id, "g", input.files.length !== total ? ` / ${total}` : "", _serialize_guard($scope0_reason, 2) * 2)}</span><button type=button${_attr_class([iconBtnLg, "_iu"])} title=Close aria-label=Close>`);
13122
+ _html(`<div${_attr_class("_ik")}></div>${_el_resume($scope1_id, "a")}<div${_attr_class("_il")} role=dialog aria-label="Jump to file"><div${_attr_class("_im")}><strong${_attr_class("_ij")}>Files</strong><span${_attr_class("_in")}>${_text_resume($scope1_id, "f", input.files.length, $sg__input_files_length)}${_text_resume($scope1_id, "g", input.files.length !== total ? ` / ${total}` : "", _serialize_guard($scope0_reason, 2) * 2)}</span><button type=button${_attr_class([iconBtnLg, "_ii"])} title=Close aria-label=Close>`);
14604
13123
  icon_xmark_default({ size: 16 });
14605
- _html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_iH")}>`);
13124
+ _html(`</button>${_el_resume($scope1_id, "h")}</div><div${_attr_class("_iv")}>`);
14606
13125
  _set_serialize_reason(2);
14607
13126
  const $childScope = _peek_scope_id();
14608
13127
  file_filter_default({
@@ -14611,13 +13130,13 @@ var diff_file_sheet_default = _template("g", (input) => {
14611
13130
  filter = _new_filter;
14612
13131
  }, "g1", $scope1_id)
14613
13132
  });
14614
- _html(`</div><div${_attr_class("_iA")}>`);
13133
+ _html(`</div><div${_attr_class("_io")}>`);
14615
13134
  _for_of(groups, (group) => {
14616
13135
  const $scope2_id = _scope_id();
14617
- _html(`<div${_attr_class("_iB")}><div${_attr_class("_iC")}>${_text_resume($scope2_id, "c", group.repo, $sg__input_files)}</div>`);
13136
+ _html(`<div${_attr_class("_ip")}><div${_attr_class("_iq")}>${_text_resume($scope2_id, "c", group.repo, $sg__input_files)}</div>`);
14618
13137
  _for_of(group.dirs, ({ dir, files }) => {
14619
13138
  const $scope3_id = _scope_id();
14620
- _html(`<div${_attr_class("_iD")}>`);
13139
+ _html(`<div${_attr_class("_ir")}>`);
14621
13140
  _if(() => {
14622
13141
  if (dir) {
14623
13142
  const $scope5_id = _scope_id();
@@ -14628,11 +13147,11 @@ var diff_file_sheet_default = _template("g", (input) => {
14628
13147
  }, $scope3_id, "b", $sg__input_files, $sg__input_files, $sg__input_files, 0, 1);
14629
13148
  _for_of(files, ({ file, name }) => {
14630
13149
  const $scope4_id = _scope_id();
14631
- _html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_iE", "_y"])}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope4_id, "c", file.status, $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_iG")}><bdi>${_text_resume($scope4_id, "e", name, $sg__input_files)}</bdi></span>`);
13150
+ _html(`<a${_attr("href", hrefFor(file.key))}${_attr_class(["_is", "_y"])}><span${_attr_class("_ba")}${_attr("data-status", file.status)}>${_text_resume($scope4_id, "c", file.status, $sg__input_files)}</span>${_el_resume($scope4_id, "b", $sg__input_files)}<span${_attr_class("_iu")}><bdi>${_text_resume($scope4_id, "e", name, $sg__input_files)}</bdi></span>`);
14632
13151
  _if(() => {
14633
13152
  if (newKeys.has(file.key)) {
14634
13153
  const $scope6_id = _scope_id();
14635
- _html(`<span${_attr_class(["_A", "_iJ"])} title="Changed since your last visit"></span>`);
13154
+ _html(`<span${_attr_class(["_A", "_ix"])} title="Changed since your last visit"></span>`);
14636
13155
  _serialize_if($scope0_reason, 1) && writeScope($scope6_id, {});
14637
13156
  return 0;
14638
13157
  }
@@ -14642,7 +13161,7 @@ var diff_file_sheet_default = _template("g", (input) => {
14642
13161
  const $scope7_id = _scope_id();
14643
13162
  icon_comment_default({
14644
13163
  size: 12,
14645
- class: "_iK"
13164
+ class: "_iy"
14646
13165
  });
14647
13166
  _serialize_if($scope0_reason, 0) && writeScope($scope7_id, {});
14648
13167
  return 0;
@@ -14667,7 +13186,7 @@ var diff_file_sheet_default = _template("g", (input) => {
14667
13186
  _if(() => {
14668
13187
  if (!input.files.length) {
14669
13188
  const $scope8_id = _scope_id();
14670
- _html(`<p${_attr_class("_iI")}>No files match.</p>`);
13189
+ _html(`<p${_attr_class("_iw")}>No files match.</p>`);
14671
13190
  $si__input_files_length && writeScope($scope8_id, {});
14672
13191
  return 0;
14673
13192
  }
@@ -14710,7 +13229,7 @@ var setSearchPaint;
14710
13229
  var diff_view_default = _template("m", (input) => {
14711
13230
  const $scope0_reason = _scope_reason(), $si__input_sessions = _serialize_if($scope0_reason, 7), $si__input_workspaceBranch = _serialize_if($scope0_reason, 8), $si__input_workspaceName = _serialize_if($scope0_reason, 9);
14712
13231
  const $scope0_id = _scope_id();
14713
- const $findFocus_getter = _hoist($scope0_id, "m51");
13232
+ const $findFocus_getter = _hoist($scope0_id, "m52");
14714
13233
  const $error__closures = /* @__PURE__ */ new Set();
14715
13234
  const $scope__closures = /* @__PURE__ */ new Set();
14716
13235
  const $input_sessions__closures = /* @__PURE__ */ new Set();
@@ -14805,6 +13324,11 @@ var diff_view_default = _template("m", (input) => {
14805
13324
  }
14806
13325
  });
14807
13326
  }, "m3", $scope0_id);
13327
+ const posBox = {
13328
+ anchor: null,
13329
+ raf: 0,
13330
+ run: 0
13331
+ };
14808
13332
  const pinToTop = _resume((el) => {
14809
13333
  const root = ((scrollEl) => scrollEl())(_el_read_error);
14810
13334
  if (!root) {
@@ -14814,15 +13338,19 @@ var diff_view_default = _template("m", (input) => {
14814
13338
  const top = el.getBoundingClientRect().top - root.getBoundingClientRect().top + root.scrollTop;
14815
13339
  root.scrollTo({ top: Math.max(0, top - 8) });
14816
13340
  }, "m4", $scope0_id);
13341
+ const cancelRestore = _resume(() => {
13342
+ posBox.run++;
13343
+ }, "m5", $scope0_id);
14817
13344
  const retryFrames = _resume((attempt, ms = 2500) => {
14818
13345
  const started = Date.now();
14819
13346
  const tick = () => {
14820
13347
  if (!attempt() && Date.now() - started < ms) requestAnimationFrame(tick);
14821
13348
  };
14822
13349
  tick();
14823
- }, "m5");
13350
+ }, "m6");
14824
13351
  const focusPrSection = _resume((pr) => {
14825
13352
  if (!pr) return;
13353
+ cancelRestore();
14826
13354
  const list = repos || [];
14827
13355
  const focused = list.find((r) => r.pr && `${r.worktree}/${r.pr.number}` === pr);
14828
13356
  const keep = new Set(openedRepos);
@@ -14838,26 +13366,22 @@ var diff_view_default = _template("m", (input) => {
14838
13366
  if (el) pinToTop(el);
14839
13367
  return !!el;
14840
13368
  });
14841
- }, "m6", $scope0_id);
14842
- const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "m7", $scope0_id);
13369
+ }, "m7", $scope0_id);
13370
+ const findFile = _resume((key) => ((scrollEl) => scrollEl())(_el_read_error)?.querySelector(`details[data-key="${CSS.escape(key)}"]`) ?? null, "m8", $scope0_id);
14843
13371
  const openFile = _resume((key) => {
14844
13372
  const el = findFile(key);
14845
13373
  if (el) el.open = true;
14846
13374
  return el;
14847
- }, "m8", $scope0_id);
13375
+ }, "m9", $scope0_id);
14848
13376
  const jumpTo = _resume((key) => {
13377
+ cancelRestore();
14849
13378
  input.onFileChange?.(key);
14850
13379
  retryFrames(() => {
14851
13380
  const el = openFile(key);
14852
13381
  if (el) pinToTop(el);
14853
13382
  return !!el;
14854
13383
  });
14855
- }, "m9", $scope0_id);
14856
- const posBox = {
14857
- anchor: null,
14858
- raf: 0,
14859
- run: 0
14860
- };
13384
+ }, "m10", $scope0_id);
14861
13385
  const anchorAt = _resume(() => {
14862
13386
  const root = ((scrollEl) => scrollEl())(_el_read_error);
14863
13387
  if (!root || !root.scrollTop) return null;
@@ -14874,17 +13398,17 @@ var diff_view_default = _template("m", (input) => {
14874
13398
  };
14875
13399
  }
14876
13400
  return best;
14877
- }, "m10", $scope0_id);
13401
+ }, "m11", $scope0_id);
14878
13402
  const noteScroll = _resume(() => {
14879
13403
  if (posBox.raf) return;
14880
13404
  posBox.raf = requestAnimationFrame(() => {
14881
13405
  posBox.raf = 0;
14882
13406
  if (((scrollEl) => scrollEl())(_el_read_error)?.isConnected) posBox.anchor = anchorAt();
14883
13407
  });
14884
- }, "m11", $scope0_id);
13408
+ }, "m12", $scope0_id);
14885
13409
  const savePos = _resume(() => {
14886
13410
  if (repos) setDiffPos(input.workspaceId, posBox.anchor);
14887
- }, "m12", $scope0_id);
13411
+ }, "m13", $scope0_id);
14888
13412
  const restorePos = _resume((pos) => {
14889
13413
  const run = ++posBox.run;
14890
13414
  const started = Date.now();
@@ -14914,7 +13438,7 @@ var diff_view_default = _template("m", (input) => {
14914
13438
  } else if (!pinnedAt && Date.now() - started < 2500) requestAnimationFrame(tick);
14915
13439
  };
14916
13440
  requestAnimationFrame(tick);
14917
- }, "m13", $scope0_id);
13441
+ }, "m14", $scope0_id);
14918
13442
  const headBox = {
14919
13443
  sig: "",
14920
13444
  timer: 0
@@ -14936,8 +13460,8 @@ var diff_view_default = _template("m", (input) => {
14936
13460
  comments = reviewData.comments || [];
14937
13461
  headBox.sig = prHeadSigFromDiff(diffData);
14938
13462
  if (input.focusPr) focusPrSection(input.focusPr);
14939
- else if (input.focusFile) jumpTo(input.focusFile);
14940
- else if (!refresh && loadBox.seq === 1) {
13463
+ if (input.focusFile) jumpTo(input.focusFile);
13464
+ else if (!input.focusPr && !refresh && loadBox.seq === 1) {
14941
13465
  const pos = diffPos(input.workspaceId);
14942
13466
  if (pos && pos.scope === which) restorePos(pos);
14943
13467
  }
@@ -14947,14 +13471,14 @@ var diff_view_default = _template("m", (input) => {
14947
13471
  } finally {
14948
13472
  if (seq === loadBox.seq) loading = false;
14949
13473
  }
14950
- }, "m14", $scope0_id);
13474
+ }, "m15", $scope0_id);
14951
13475
  const setScope = _resume((next, persist = true) => {
14952
13476
  if (next === scope) return;
14953
13477
  scope = next;
14954
13478
  if (persist) setDiffScope(next);
14955
13479
  input.onScopeChange?.(next);
14956
13480
  load(next);
14957
- }, "m15", $scope0_id);
13481
+ }, "m16", $scope0_id);
14958
13482
  const sendGate = { busy: 0 };
14959
13483
  const loadReview = _resume(async () => {
14960
13484
  if (sendGate.busy) return;
@@ -14963,15 +13487,15 @@ var diff_view_default = _template("m", (input) => {
14963
13487
  if (sendGate.busy) return;
14964
13488
  comments = reviewData.comments || [];
14965
13489
  } catch {}
14966
- }, "m16", $scope0_id);
14967
- const reload = _resume(() => load(scope, true), "m17", $scope0_id);
13490
+ }, "m17", $scope0_id);
13491
+ const reload = _resume(() => load(scope, true), "m18", $scope0_id);
14968
13492
  const reloadSoon = _resume(() => {
14969
13493
  if (headBox.timer) clearTimeout(headBox.timer);
14970
13494
  headBox.timer = setTimeout(() => {
14971
13495
  headBox.timer = 0;
14972
13496
  reload();
14973
13497
  }, 250);
14974
- }, "m18", $scope0_id);
13498
+ }, "m19", $scope0_id);
14975
13499
  const markSeen = _resume(() => {
14976
13500
  if (!repos) return;
14977
13501
  const heads = {};
@@ -14990,7 +13514,7 @@ var diff_view_default = _template("m", (input) => {
14990
13514
  }),
14991
13515
  keepalive: true
14992
13516
  }).catch(() => {});
14993
- }, "m19", $scope0_id);
13517
+ }, "m20", $scope0_id);
14994
13518
  const repoList = repos || [];
14995
13519
  const allFiles = repoList.flatMap((r) => r.files.map((f) => ({
14996
13520
  ...f,
@@ -15013,7 +13537,7 @@ var diff_view_default = _template("m", (input) => {
15013
13537
  else map.set(f.repo, [f]);
15014
13538
  }
15015
13539
  return map;
15016
- }, "m20");
13540
+ }, "m21");
15017
13541
  const filesByRepo = groupByRepo(allFiles);
15018
13542
  const shownByRepo = groupByRepo(shownFiles);
15019
13543
  const commentsByFile = (() => {
@@ -15032,7 +13556,7 @@ var diff_view_default = _template("m", (input) => {
15032
13556
  }));
15033
13557
  const localDifferIds = new Set(repoList.filter((repo) => !!repo.pr && !!repo.localHead && (repo.localHead !== repo.head || repo.branch !== repo.pr.headRefName)).map((r) => r.id));
15034
13558
  const hasFiles = !repos || allFiles.length > 0;
15035
- const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "m21");
13559
+ const fileWorktree = _resume((repo) => repo.includes("#") ? repo.split("#")[0] : repo, "m22");
15036
13560
  const anchorFor = _resume((file, range) => {
15037
13561
  const section = repoList.find((r) => r.id === file.repo);
15038
13562
  const source = range.side === "deletions" ? file.old : file.new;
@@ -15040,7 +13564,7 @@ var diff_view_default = _template("m", (input) => {
15040
13564
  head: section?.head,
15041
13565
  snippet: source == null ? void 0 : quoteRange(source, range.start, range.end, range.side === "deletions" ? "deletions" : "additions")
15042
13566
  };
15043
- }, "m22", $scope0_id);
13567
+ }, "m23", $scope0_id);
15044
13568
  const saveComment = _resume(async (file, text) => {
15045
13569
  const range = draft;
15046
13570
  draft = null;
@@ -15064,16 +13588,16 @@ var diff_view_default = _template("m", (input) => {
15064
13588
  } catch (err) {
15065
13589
  error = String(err.message || err);
15066
13590
  }
15067
- }, "m23", $scope0_id);
13591
+ }, "m24", $scope0_id);
15068
13592
  const deleteRemote = _resume((ids) => ids === "all" ? fetch(`/api/workspaces/${input.workspaceId}/review`, {
15069
13593
  method: "POST",
15070
13594
  headers: { "content-type": "application/json" },
15071
13595
  body: JSON.stringify({ action: "clear" })
15072
- }) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "m24", $scope0_id);
13596
+ }) : Promise.all(ids.map((id) => fetch(`/api/workspaces/${input.workspaceId}/review/${id}`, { method: "DELETE" }))), "m25", $scope0_id);
15073
13597
  const removeComment = _resume(async (id) => {
15074
13598
  comments = comments.filter((c) => c.id !== id);
15075
13599
  await deleteRemote([id]).catch(() => {});
15076
- }, "m25", $scope0_id);
13600
+ }, "m26", $scope0_id);
15077
13601
  const editComment = _resume(async (id, text) => {
15078
13602
  const prev = comments.find((c) => c.id === id);
15079
13603
  if (!prev) return;
@@ -15094,7 +13618,7 @@ var diff_view_default = _template("m", (input) => {
15094
13618
  error = String(err.message || err);
15095
13619
  throw err;
15096
13620
  }
15097
- }, "m26", $scope0_id);
13621
+ }, "m27", $scope0_id);
15098
13622
  const dispatch = _resume(async (list, to, consume) => {
15099
13623
  if (!list.length) return true;
15100
13624
  sendGate.busy++;
@@ -15130,13 +13654,13 @@ var diff_view_default = _template("m", (input) => {
15130
13654
  } finally {
15131
13655
  sendGate.busy--;
15132
13656
  }
15133
- }, "m27", $scope0_id);
15134
- const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "m28", $scope0_id);
15135
- const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "m29", $scope0_id);
13657
+ }, "m28", $scope0_id);
13658
+ const copyMarkdown = _resume(() => dispatch(comments, { clipboard: true }, "all"), "m29", $scope0_id);
13659
+ const sendTo = _resume((sessionId) => dispatch(comments, { session: sessionId }, "all"), "m30", $scope0_id);
15136
13660
  const sendOneComment = _resume((id, sessionId) => {
15137
13661
  const comment = comments.find((c) => c.id === id);
15138
13662
  return comment ? dispatch([comment], { session: sessionId }, [id]) : Promise.resolve(false);
15139
- }, "m30", $scope0_id);
13663
+ }, "m31", $scope0_id);
15140
13664
  const sendDraftComment = _resume((file, text, sessionId) => {
15141
13665
  const range = draft;
15142
13666
  const trimmed = text.trim();
@@ -15154,12 +13678,12 @@ var diff_view_default = _template("m", (input) => {
15154
13678
  ...anchorFor(file, range)
15155
13679
  };
15156
13680
  return dispatch([one], { session: sessionId }, []);
15157
- }, "m31", $scope0_id);
13681
+ }, "m32", $scope0_id);
15158
13682
  const openFind = _resume(() => {
15159
13683
  findOpen = true;
15160
13684
  findTick++;
15161
13685
  ((findFocus) => findFocus())(_hoist_read_error);
15162
- }, "m32", $scope0_id);
13686
+ }, "m33", $scope0_id);
15163
13687
  const onFindState = (next) => {
15164
13688
  findState = next;
15165
13689
  if (!next.hit) return;
@@ -15206,12 +13730,12 @@ var diff_view_default = _template("m", (input) => {
15206
13730
  openedRepos = /* @__PURE__ */ new Set([...openedRepos, id]);
15207
13731
  collapsedRepos = /* @__PURE__ */ new Set([...collapsedRepos, id]);
15208
13732
  }
15209
- }, "m33", $scope0_id);
15210
- _html(`<div${_attr_class("_gg")}><div${_attr_class("_gl")}><div${_attr_class("_gm")}><div${_attr_class(["_gw", { ["_gv"]: !comments.length }])}>`);
13733
+ }, "m34", $scope0_id);
13734
+ _html(`<div${_attr_class("_eS")}><div${_attr_class("_eX")}><div${_attr_class("_eY")}><div${_attr_class(["_e8", { ["_e7"]: !comments.length }])}>`);
15211
13735
  _if(() => {
15212
13736
  if (input.onExit) {
15213
13737
  const $scope1_id = _scope_id();
15214
- _html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_gn"])} title="Back to terminal (⌘/Ctrl+Shift+D)">`);
13738
+ _html(`<a${_attr("href", `/w/${input.workspaceId}`)}${_attr_class([iconBtnRow, "_eZ"])} title="Back to terminal (⌘/Ctrl+Shift+D)">`);
15215
13739
  icon_back_default({ size: 14 });
15216
13740
  _html(`</a>${_el_resume($scope1_id, "a", _serialize_guard($scope0_reason, 1))}`);
15217
13741
  _serialize_if($scope0_reason, 0) && writeScope($scope1_id, { _: _serialize_if($scope0_reason, 1) && _scope_with_id($scope0_id) });
@@ -15222,7 +13746,7 @@ var diff_view_default = _template("m", (input) => {
15222
13746
  _if(() => {
15223
13747
  if (comments.length) {
15224
13748
  const $scope5_id = _scope_id();
15225
- _html(`<span${_attr_class("_gp")}>${_text_resume($scope5_id, "b", comments.length)} comment${_text_resume($scope5_id, "c", comments.length === 1 ? "" : "s", 2)}</span>`);
13749
+ _html(`<span${_attr_class("_e1")}>${_text_resume($scope5_id, "b", comments.length)} comment${_text_resume($scope5_id, "c", comments.length === 1 ? "" : "s", 2)}</span>`);
15226
13750
  writeScope($scope5_id, {});
15227
13751
  return 0;
15228
13752
  }
@@ -15230,7 +13754,7 @@ var diff_view_default = _template("m", (input) => {
15230
13754
  _if(() => {
15231
13755
  if (comments.length) {
15232
13756
  const $scope2_id = _scope_id();
15233
- _html(`<span${_attr_class("_go")}>`);
13757
+ _html(`<span${_attr_class("_e0")}>`);
15234
13758
  _set_serialize_reason(_serialize_guard($scope0_reason, 7));
15235
13759
  const $childScope = _peek_scope_id();
15236
13760
  diff_send_default({
@@ -15243,23 +13767,23 @@ var diff_view_default = _template("m", (input) => {
15243
13767
  return 0;
15244
13768
  }
15245
13769
  }, $scope0_id, "h", 1, 1, 1, 0, 1);
15246
- _html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("_gk")}>`);
13770
+ _html(`</div>${_el_resume($scope0_id, "d")}<div${_attr_class("_eW")}>`);
15247
13771
  _if(() => {
15248
13772
  if (hasFiles) {
15249
13773
  const $scope12_id = _scope_id();
15250
13774
  _html(`<button${_attr_class([
15251
13775
  treeToggle,
15252
- "_gi",
15253
- { ["_gh"]: treeOpen }
13776
+ "_eU",
13777
+ { ["_eT"]: treeOpen }
15254
13778
  ])} title=${treeOpen ? "\"Hide file tree\"" : "\"Show file tree\""}>`);
15255
13779
  icon_sidebar_default({ size: 14 });
15256
13780
  _html(`</button>${_el_resume($scope12_id, "a")}`);
15257
- _script($scope12_id, "m52");
13781
+ _script($scope12_id, "m53");
15258
13782
  writeScope($scope12_id, {});
15259
13783
  return 0;
15260
13784
  }
15261
13785
  }, $scope0_id, "j", 1, 1, 1, 0, 1);
15262
- _html(`<button${_attr_class([iconBtnRow, "_gi"])} title="Refresh diff"${_attr("disabled", loading)}>`);
13786
+ _html(`<button${_attr_class([iconBtnRow, "_eU"])} title="Refresh diff"${_attr("disabled", loading)}>`);
15263
13787
  _set_serialize_reason(1);
15264
13788
  const $childScope2 = _peek_scope_id();
15265
13789
  icon_refresh_default({
@@ -15270,19 +13794,19 @@ var diff_view_default = _template("m", (input) => {
15270
13794
  _if(() => {
15271
13795
  if (hasFiles) {
15272
13796
  const $scope13_id = _scope_id();
15273
- _html(`<button${_attr_class(["_q", "_gF"])} title="Jump to file">Files (${_text_resume($scope13_id, "b", shownFiles.length, 2)})</button>${_el_resume($scope13_id, "a")}`);
15274
- _script($scope13_id, "m53");
13797
+ _html(`<button${_attr_class(["_q", "_fg"])} title="Jump to file">Files (${_text_resume($scope13_id, "b", shownFiles.length, 2)})</button>${_el_resume($scope13_id, "a")}`);
13798
+ _script($scope13_id, "m54");
15275
13799
  writeScope($scope13_id, {});
15276
13800
  return 0;
15277
13801
  }
15278
13802
  }, $scope0_id, "m", 1, 1, 1, 0, 1);
15279
- _html(`<span${_attr_class(["_o", "_gx"])}>`);
13803
+ _html(`<span${_attr_class(["_o", "_e9"])}>`);
15280
13804
  _attr_select_value($scope0_id, "o", scope, _resume(function(v) {
15281
13805
  setScope(v);
15282
13806
  }, "m0", $scope0_id), () => {
15283
- _html(`<select${_attr_class(["_p", "_gy"])} aria-label="Review scope"${_attr("disabled", loading)}><option${_attr_option_value("committed")}>Committed</option><option${_attr_option_value("working")}>Working tree</option><option${_attr_option_value("dirty")}>Uncommitted</option></select>`);
13807
+ _html(`<select${_attr_class(["_p", "_e_"])} aria-label="Review scope"${_attr("disabled", loading)}><option${_attr_option_value("committed")}>Committed</option><option${_attr_option_value("working")}>Working tree</option><option${_attr_option_value("dirty")}>Uncommitted</option></select>`);
15284
13808
  });
15285
- _html(`${_el_resume($scope0_id, "o")}</span><div${_attr_class(["_gt", { ["_gs"]: !findOpen }])}>`);
13809
+ _html(`${_el_resume($scope0_id, "o")}</span><div${_attr_class(["_e5", { ["_e4"]: !findOpen }])}>`);
15286
13810
  _set_serialize_reason(2);
15287
13811
  const $childScope3 = _peek_scope_id();
15288
13812
  let findFocus = diff_find_default({
@@ -15291,37 +13815,37 @@ var diff_view_default = _template("m", (input) => {
15291
13815
  open: findOpen,
15292
13816
  openChange: _resume((_new_findOpen) => {
15293
13817
  findOpen = _new_findOpen;
15294
- }, "m34", $scope0_id),
13818
+ }, "m35", $scope0_id),
15295
13819
  stateChange: function(s) {
15296
13820
  onFindState(s);
15297
13821
  }
15298
13822
  });
15299
- _var($scope0_id, "r", $childScope3, "m54");
13823
+ _var($scope0_id, "r", $childScope3, "m55");
15300
13824
  _html(`</div>${_el_resume($scope0_id, "p")}`);
15301
13825
  _if(() => {
15302
13826
  if (hasFiles) {
15303
13827
  const $scope14_id = _scope_id();
15304
13828
  _html(`<button${_attr_class([
15305
13829
  iconBtnRow,
15306
- "_gr",
15307
- "_gi"
13830
+ "_e3",
13831
+ "_eU"
15308
13832
  ])} title="Find in review (⌘/Ctrl+F)" aria-label="Find in review"${_attr("hidden", findOpen)}>`);
15309
13833
  icon_search_default({ size: 14 });
15310
13834
  _html(`</button>${_el_resume($scope14_id, "a")}`);
15311
- _script($scope14_id, "m55");
13835
+ _script($scope14_id, "m56");
15312
13836
  writeScope($scope14_id, {});
15313
13837
  return 0;
15314
13838
  }
15315
13839
  }, $scope0_id, "s", 1, 1, 1, 0, 1);
15316
- _html(`</div></div><div${_attr_class("_gu")} data-diff-main>`);
13840
+ _html(`</div></div><div${_attr_class("_e6")} data-diff-main>`);
15317
13841
  _if(() => {
15318
13842
  if (error) {
15319
13843
  const $scope6_id = _scope_id();
15320
13844
  toast_default({
15321
13845
  onDismiss: _resume(function() {
15322
13846
  error = null;
15323
- }, "m35", $scope6_id),
15324
- content: _content("m56", () => {
13847
+ }, "m36", $scope6_id),
13848
+ content: _content("m57", () => {
15325
13849
  _scope_reason();
15326
13850
  const $scope7_id = _scope_id();
15327
13851
  _html(_text_resume($scope7_id, "a", error));
@@ -15336,7 +13860,7 @@ var diff_view_default = _template("m", (input) => {
15336
13860
  _if(() => {
15337
13861
  if (!repos && loading) {
15338
13862
  const $scope15_id = _scope_id();
15339
- _html(`<div${_attr_class("_gA")} aria-hidden=true><div${_attr_class(["_gB", "_gC"])}></div><div${_attr_class(["_gB", "_gD"])}></div><div${_attr_class(["_gB", "_gE"])}></div><div${_attr_class(["_gB", "_gD"])}></div><div${_attr_class(["_gB", "_gE"])}></div></div>`);
13863
+ _html(`<div${_attr_class("_fb")} aria-hidden=true><div${_attr_class(["_fc", "_fd"])}></div><div${_attr_class(["_fc", "_fe"])}></div><div${_attr_class(["_fc", "_ff"])}></div><div${_attr_class(["_fc", "_fe"])}></div><div${_attr_class(["_fc", "_ff"])}></div></div>`);
15340
13864
  writeScope($scope15_id, {});
15341
13865
  return 0;
15342
13866
  }
@@ -15350,7 +13874,7 @@ var diff_view_default = _template("m", (input) => {
15350
13874
  kind: "warn",
15351
13875
  placement: "inline",
15352
13876
  title: `${repo.worktree}: base not found`,
15353
- content: _content("m57", () => {
13877
+ content: _content("m58", () => {
15354
13878
  _scope_reason();
15355
13879
  const $scope10_id = _scope_id();
15356
13880
  _html(`${_text_resume($scope10_id, "a", repo.base)}${_text_resume($scope10_id, "b", scope !== "committed" ? ", showing uncommitted changes only" : "", 2)}.`);
@@ -15394,14 +13918,14 @@ var diff_view_default = _template("m", (input) => {
15394
13918
  opened: openedRepos.has(repo.id),
15395
13919
  onToggle: _resume(function() {
15396
13920
  toggleSection(repo.id);
15397
- }, "m36", $scope4_id),
13921
+ }, "m37", $scope4_id),
15398
13922
  workspaceBranch: input.workspaceBranch || "",
15399
13923
  workspaceName: input.workspaceName || "",
15400
13924
  localDiffers: localDifferIds.has(repo.id),
15401
13925
  onlyNew,
15402
13926
  onToggleNew: _resume(function() {
15403
13927
  onlyNew = !onlyNew;
15404
- }, "m37", $scope4_id),
13928
+ }, "m38", $scope4_id),
15405
13929
  onReload: reload,
15406
13930
  loading,
15407
13931
  findHit: findState.hit,
@@ -15412,7 +13936,7 @@ var diff_view_default = _template("m", (input) => {
15412
13936
  collapsedFiles,
15413
13937
  onFileToggle: _resume(function(key, open) {
15414
13938
  setFilesCollapsed([key], !open);
15415
- }, "m38", $scope4_id),
13939
+ }, "m39", $scope4_id),
15416
13940
  onSelect: _resume(function(file, range) {
15417
13941
  draft = {
15418
13942
  key: file.key,
@@ -15420,28 +13944,28 @@ var diff_view_default = _template("m", (input) => {
15420
13944
  start: Math.min(range.start, range.end),
15421
13945
  end: Math.max(range.start, range.end)
15422
13946
  };
15423
- }, "m39", $scope4_id),
13947
+ }, "m40", $scope4_id),
15424
13948
  onSaveComment: _resume(function(file, text) {
15425
13949
  saveComment(file, text);
15426
- }, "m40", $scope4_id),
13950
+ }, "m41", $scope4_id),
15427
13951
  onSendDraft: _resume(function(file, text, sessionId) {
15428
13952
  return sendDraftComment(file, text, sessionId);
15429
- }, "m41", $scope4_id),
13953
+ }, "m42", $scope4_id),
15430
13954
  onCancelDraft: _resume(function() {
15431
13955
  draft = null;
15432
- }, "m42", $scope4_id),
13956
+ }, "m43", $scope4_id),
15433
13957
  onDeleteComment: _resume(function(id) {
15434
13958
  removeComment(id);
15435
- }, "m43", $scope4_id),
13959
+ }, "m44", $scope4_id),
15436
13960
  onEditComment: _resume(function(id, text) {
15437
13961
  editComment(id, text);
15438
- }, "m44", $scope4_id),
13962
+ }, "m45", $scope4_id),
15439
13963
  onSendComment: _resume(function(id, sessionId) {
15440
13964
  return sendOneComment(id, sessionId);
15441
- }, "m45", $scope4_id),
13965
+ }, "m46", $scope4_id),
15442
13966
  onError: _resume(function(message) {
15443
13967
  error = message;
15444
- }, "m46", $scope4_id)
13968
+ }, "m47", $scope4_id)
15445
13969
  });
15446
13970
  _subscribe($toggleSection2__closures, _subscribe($sendDraftComment2__closures, _subscribe($sendOneComment2__closures, _subscribe($editComment2__closures, _subscribe($removeComment2__closures, _subscribe($saveComment2__closures, _subscribe($localDifferIds__closures, _subscribe($commentsByFile__closures, _subscribe($shownKeySet__closures, _subscribe($repoList_length__closures, _subscribe($reload2__closures, _subscribe($expandingRepos__closures, _subscribe($openedRepos__closures, _subscribe($setFilesCollapsed2__closures, _subscribe($collapsedFiles__closures, _subscribe($collapsedRepos__closures, _subscribe($findState_hit__closures, _subscribe($onlyNew__closures, _subscribe($loading__closures, _subscribe($draft__closures, _subscribe($si__input_workspaceName && $input_workspaceName__closures, _subscribe($si__input_workspaceBranch && $input_workspaceBranch__closures, _subscribe($si__input_sessions && $input_sessions__closures, writeScope($scope4_id, { a: _existing_scope($childScope5) }))))))))))))))))))))))));
15447
13971
  return 0;
@@ -15463,17 +13987,17 @@ var diff_view_default = _template("m", (input) => {
15463
13987
  collapsedRepos,
15464
13988
  collapsedReposChange: _resume((_new_collapsedRepos) => {
15465
13989
  collapsedRepos = _new_collapsedRepos;
15466
- }, "m47", $scope0_id),
13990
+ }, "m48", $scope0_id),
15467
13991
  openedRepos,
15468
13992
  openedReposChange: _resume((_new_openedRepos) => {
15469
13993
  openedRepos = _new_openedRepos;
15470
- }, "m48", $scope0_id),
13994
+ }, "m49", $scope0_id),
15471
13995
  commentKeys,
15472
13996
  newKeys,
15473
13997
  collapsedFiles,
15474
13998
  onDirToggle: _resume(function(keys, collapsed) {
15475
13999
  setFilesCollapsed(keys, collapsed);
15476
- }, "m49", $scope0_id),
14000
+ }, "m50", $scope0_id),
15477
14001
  workspaceId: input.workspaceId,
15478
14002
  scope
15479
14003
  });
@@ -15483,7 +14007,7 @@ var diff_view_default = _template("m", (input) => {
15483
14007
  open: fileSheet,
15484
14008
  openChange: _resume((_new_fileSheet) => {
15485
14009
  fileSheet = _new_fileSheet;
15486
- }, "m50", $scope0_id),
14010
+ }, "m51", $scope0_id),
15487
14011
  files: shownFiles,
15488
14012
  filter: fileFilter,
15489
14013
  filterChange: $filterChange,
@@ -15495,10 +14019,10 @@ var diff_view_default = _template("m", (input) => {
15495
14019
  });
15496
14020
  _html("</div>");
15497
14021
  const $return = $findFocus_getter;
15498
- _script($scope0_id, "m58");
15499
14022
  _script($scope0_id, "m59");
15500
14023
  _script($scope0_id, "m60");
15501
14024
  _script($scope0_id, "m61");
14025
+ _script($scope0_id, "m62");
15502
14026
  writeScope($scope0_id, {
15503
14027
  a3: input.workspaceId,
15504
14028
  a4: input.scope,
@@ -15541,85 +14065,86 @@ var diff_view_default = _template("m", (input) => {
15541
14065
  bk: nearBox.io,
15542
14066
  bl: nearBox.root,
15543
14067
  bn: observeNear,
15544
- bo: pinToTop,
15545
- bp: retryFrames,
15546
- br: focusPrSection,
15547
- bs: findFile,
15548
- bt: openFile,
15549
- bw: jumpTo,
15550
- by: posBox.raf,
15551
- bz: posBox.anchor,
15552
- c1: posBox.run,
15553
- c3: anchorAt,
15554
- c5: noteScroll,
15555
- c6: savePos,
15556
- c7: restorePos,
15557
- c9: headBox.sig,
15558
- ca: headBox.timer,
15559
- cc: loadBox.seq,
15560
- ce: load,
15561
- ch: setScope,
15562
- ck: sendGate.busy,
15563
- cm: loadReview,
15564
- cn: reload,
15565
- cp: reloadSoon,
15566
- cq: markSeen,
15567
- cs: repoList,
15568
- ct: repoList.length,
15569
- cu: allFiles,
15570
- cw: allFiles?.length,
15571
- cx: fileFiltered,
15572
- cy: findKeys,
15573
- d1: shownFiles?.length,
15574
- d3: shownKeySet,
15575
- d5: groupByRepo,
15576
- d8: filesByRepo,
15577
- db: commentsByFile,
15578
- de: localDifferIds,
15579
- df: hasFiles,
15580
- dg: fileWorktree,
15581
- dh: anchorFor,
15582
- dj: saveComment,
15583
- dk: deleteRemote,
15584
- dn: removeComment,
15585
- do: editComment,
15586
- dp: dispatch,
15587
- ds: copyMarkdown,
15588
- dt: sendTo,
15589
- du: sendOneComment,
15590
- dv: sendDraftComment,
15591
- dw: openFind,
15592
- dz: toggleSection,
15593
- e0: findFocus,
14068
+ bp: posBox.run,
14069
+ bq: posBox.raf,
14070
+ br: posBox.anchor,
14071
+ bt: pinToTop,
14072
+ bu: cancelRestore,
14073
+ bv: retryFrames,
14074
+ bx: focusPrSection,
14075
+ by: findFile,
14076
+ c0: openFile,
14077
+ c3: jumpTo,
14078
+ c4: anchorAt,
14079
+ c6: noteScroll,
14080
+ c7: savePos,
14081
+ c8: restorePos,
14082
+ ca: headBox.sig,
14083
+ cb: headBox.timer,
14084
+ cd: loadBox.seq,
14085
+ cf: load,
14086
+ ci: setScope,
14087
+ cl: sendGate.busy,
14088
+ cn: loadReview,
14089
+ co: reload,
14090
+ cq: reloadSoon,
14091
+ cr: markSeen,
14092
+ ct: repoList,
14093
+ cu: repoList.length,
14094
+ cv: allFiles,
14095
+ cx: allFiles?.length,
14096
+ cy: fileFiltered,
14097
+ cz: findKeys,
14098
+ d2: shownFiles?.length,
14099
+ d4: shownKeySet,
14100
+ d6: groupByRepo,
14101
+ d9: filesByRepo,
14102
+ dc: commentsByFile,
14103
+ df: localDifferIds,
14104
+ dg: hasFiles,
14105
+ dh: fileWorktree,
14106
+ di: anchorFor,
14107
+ dk: saveComment,
14108
+ dl: deleteRemote,
14109
+ do: removeComment,
14110
+ dp: editComment,
14111
+ dq: dispatch,
14112
+ dt: copyMarkdown,
14113
+ du: sendTo,
14114
+ dv: sendOneComment,
14115
+ dw: sendDraftComment,
14116
+ dx: openFind,
14117
+ e0: toggleSection,
14118
+ e1: findFocus,
15594
14119
  b4: input.findOpenChange || void 0,
15595
14120
  b6: input.findTickChange || void 0,
15596
14121
  l: _existing_scope($childScope2),
15597
14122
  q: _existing_scope($childScope3),
15598
- e7: $error__closures,
15599
- eb: $scope__closures,
15600
- e2: $si__input_sessions && $input_sessions__closures,
15601
- e3: $si__input_workspaceBranch && $input_workspaceBranch__closures,
15602
- e4: $si__input_workspaceName && $input_workspaceName__closures,
15603
- e6: $draft__closures,
15604
- e8: $loading__closures,
15605
- ea: $onlyNew__closures,
15606
- ef: $findState_hit__closures,
15607
- eg: $collapsedRepos__closures,
15608
- eh: $collapsedFiles__closures,
15609
- ei: $setFilesCollapsed2__closures,
15610
- ej: $openedRepos__closures,
15611
- ek: $expandingRepos__closures,
15612
- em: $reload2__closures,
15613
- eo: $repoList_length__closures,
15614
- eq: $shownKeySet__closures,
15615
- es: $commentsByFile__closures,
15616
- et: $localDifferIds__closures,
15617
- ev: $saveComment2__closures,
15618
- ew: $removeComment2__closures,
15619
- ex: $editComment2__closures,
15620
- f0: $sendOneComment2__closures,
15621
- f1: $sendDraftComment2__closures,
15622
- f2: $toggleSection2__closures,
14123
+ e8: $error__closures,
14124
+ ec: $scope__closures,
14125
+ e3: $si__input_sessions && $input_sessions__closures,
14126
+ e4: $si__input_workspaceBranch && $input_workspaceBranch__closures,
14127
+ e5: $si__input_workspaceName && $input_workspaceName__closures,
14128
+ e7: $draft__closures,
14129
+ e9: $loading__closures,
14130
+ eb: $onlyNew__closures,
14131
+ eg: $findState_hit__closures,
14132
+ eh: $collapsedRepos__closures,
14133
+ ei: $collapsedFiles__closures,
14134
+ ej: $setFilesCollapsed2__closures,
14135
+ ek: $openedRepos__closures,
14136
+ el: $expandingRepos__closures,
14137
+ en: $reload2__closures,
14138
+ ep: $repoList_length__closures,
14139
+ er: $shownKeySet__closures,
14140
+ et: $commentsByFile__closures,
14141
+ eu: $localDifferIds__closures,
14142
+ ew: $saveComment2__closures,
14143
+ ex: $removeComment2__closures,
14144
+ ey: $editComment2__closures,
14145
+ f1: $sendOneComment2__closures,
14146
+ f2: $sendDraftComment2__closures,
14147
+ f3: $toggleSection2__closures,
15623
14148
  z: _existing_scope($childScope6),
15624
14149
  a0: _existing_scope($childScope7)
15625
14150
  });
@@ -15738,12 +14263,12 @@ function parseInvite(text) {
15738
14263
  }
15739
14264
  //#endregion
15740
14265
  //#region src/tags/manage-workspace.css.ts
15741
- var pageMeta = "_fY _ed";
15742
- var pathMeta = "_f1 _y";
15743
- var skillRow = "_f7 _f2";
15744
- var skillName = "_f9 _f3";
15745
- var skillDesc = "_gb _f4";
15746
- var skillEnd = "_gc _f5";
14266
+ var pageMeta = "_ez _dZ";
14267
+ var pathMeta = "_eC _y";
14268
+ var skillRow = "_eI _eD";
14269
+ var skillName = "_eK _eE";
14270
+ var skillDesc = "_eN _eF";
14271
+ var skillEnd = "_eO _eG";
15747
14272
  //#endregion
15748
14273
  //#region src/tags/icons/icon-clipboard.marko
15749
14274
  var icon_clipboard_default = _template("Y", (input) => {
@@ -15761,8 +14286,8 @@ var icon_clipboard_default = _template("Y", (input) => {
15761
14286
  });
15762
14287
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
15763
14288
  });
15764
- var resultRow = "_h2 _I";
15765
- var resultBranch = "_h4 _4 _l";
14289
+ var resultRow = "_gV _I";
14290
+ var resultBranch = "_gX _4 _l";
15766
14291
  //#endregion
15767
14292
  //#region src/tags/icons/icon-branch.marko
15768
14293
  var icon_branch_default = _template("U", (input) => {
@@ -15792,7 +14317,7 @@ var branch_pick_default = _template("d", (input) => {
15792
14317
  let branchFilter = "";
15793
14318
  let reloadTick = 0;
15794
14319
  let refreshing = false;
15795
- _html(`<div${_attr_class("_h6")}>`);
14320
+ _html(`<div${_attr_class("_gZ")}>`);
15796
14321
  _if(() => {
15797
14322
  {
15798
14323
  const $scope4_id = _scope_id();
@@ -15897,21 +14422,21 @@ var repo_picker_default = _template("w", (input$2) => {
15897
14422
  _resume_branch($scope9_id);
15898
14423
  }, $scope0_id) };
15899
14424
  const hasBody = !!(pasted || results.length || filter && (!catalog || !pasted) || compact && ssoPending.length);
15900
- _html(`<div${_attr_class([compact ? "_cB" : "_hU", {
15901
- ["_cC"]: compact && !input$2.open,
15902
- ["_cD"]: input$2.pinned
14425
+ _html(`<div${_attr_class([compact ? "_fo" : "_gN", {
14426
+ ["_fp"]: compact && !input$2.open,
14427
+ ["_fq"]: input$2.pinned
15903
14428
  }])}>`);
15904
14429
  _if(() => {
15905
14430
  if (!compact && ssoPending.length) {
15906
14431
  const $scope11_id = _scope_id();
15907
- _html(`<div${_attr_class("_hX")}>`);
14432
+ _html(`<div${_attr_class("_gQ")}>`);
15908
14433
  ssoBlock.content({});
15909
14434
  _html("</div>");
15910
14435
  writeScope($scope11_id, {});
15911
14436
  return 0;
15912
14437
  }
15913
14438
  }, $scope0_id, "b", 1, 1, 1, 0, 1);
15914
- _html(`<div${!compact && input$2.action ? _attr_class("_hV") : _attr_class("_hW")}><label${_attr_class(["_1", compact && "_cE"])}>`);
14439
+ _html(`<div${!compact && input$2.action ? _attr_class("_gO") : _attr_class("_gP")}><label${_attr_class(["_1", compact && "_fr"])}>`);
15915
14440
  icon_search_default({
15916
14441
  size: 14,
15917
14442
  class: "_2"
@@ -15923,7 +14448,7 @@ var repo_picker_default = _template("w", (input$2) => {
15923
14448
  }, "w0", $scope0_id))}${_attr_class([
15924
14449
  compact ? "_Z" : inputLg,
15925
14450
  "_3",
15926
- compact && "_cF"
14451
+ compact && "_fs"
15927
14452
  ])} placeholder="Add a repo…" aria-label="Add a repo"${_attr("disabled", input$2.disabled)}>${_el_resume($scope0_id, "f")}</label>${_el_resume($scope0_id, "d", $sg__input_compact)}`);
15928
14453
  _if(() => {
15929
14454
  if (!compact && input$2.action) {
@@ -15937,7 +14462,7 @@ var repo_picker_default = _template("w", (input$2) => {
15937
14462
  _if(() => {
15938
14463
  if (compact) {
15939
14464
  const $scope2_id = _scope_id();
15940
- _html(`<button${_attr_class([iconBtnRow, "_cG"])} type=button title="Close search" aria-label="Close search"${_attr("hidden", !input$2.open)}>`);
14465
+ _html(`<button${_attr_class([iconBtnRow, "_ft"])} type=button title="Close search" aria-label="Close search"${_attr("hidden", !input$2.open)}>`);
15941
14466
  icon_xmark_default({ size: 14 });
15942
14467
  _html(`</button>${_el_resume($scope2_id, "a")}`);
15943
14468
  _script($scope2_id, "w14");
@@ -15945,11 +14470,11 @@ var repo_picker_default = _template("w", (input$2) => {
15945
14470
  return 0;
15946
14471
  }
15947
14472
  }, $scope0_id, "h", _serialize_guard($scope0_reason, 0), $sg__input_compact, 1, 0, 1);
15948
- _html(`<div${_attr_class([compact ? pop$1 : "_hY"])}${_attr("hidden", !hasBody || compact && !input$2.open && !input$2.pinned)}>`);
14473
+ _html(`<div${_attr_class([compact ? pop$1 : "_gR"])}${_attr("hidden", !hasBody || compact && !input$2.open && !input$2.pinned)}>`);
15949
14474
  _if(() => {
15950
14475
  if (compact && ssoPending.length) {
15951
14476
  const $scope12_id = _scope_id();
15952
- _html(`<div${_attr_class("_hX")}>`);
14477
+ _html(`<div${_attr_class("_gQ")}>`);
15953
14478
  ssoBlock.content({});
15954
14479
  _html("</div>");
15955
14480
  writeScope($scope12_id, {});
@@ -15959,16 +14484,16 @@ var repo_picker_default = _template("w", (input$2) => {
15959
14484
  _if(() => {
15960
14485
  if (pasted) {
15961
14486
  const $scope3_id = _scope_id();
15962
- _html(`<ul${_attr_class("_hZ")}><li><div${_attr_class(["_h1", "_h0"])}><button${_attr_class(resultRow)}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
14487
+ _html(`<ul${_attr_class("_gS")}><li><div${_attr_class(["_gU", "_gT"])}><button${_attr_class(resultRow)}${pasteWillFork ? _attr("title", `Fork ${pasted} to your account and add the fork`) : _attr("title", `Add ${pasted} as-is (pushes go to that repo)`)}>`);
15963
14488
  icon_plus_default({
15964
14489
  size: 12,
15965
- class: "_h8"
14490
+ class: "_g1"
15966
14491
  });
15967
- _html(`<span${_attr_class("_h9")}>${_text_resume($scope3_id, "f", repoLabel(pasted))}</span></button>${_el_resume($scope3_id, "c")}`);
14492
+ _html(`<span${_attr_class("_g2")}>${_text_resume($scope3_id, "f", repoLabel(pasted))}</span></button>${_el_resume($scope3_id, "c")}`);
15968
14493
  _if(() => {
15969
14494
  if (pastedForkable) {
15970
14495
  const $scope10_id = _scope_id();
15971
- _html(`<button${_attr_class(["_h5", { ["_h3"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
14496
+ _html(`<button${_attr_class(["_gY", { ["_gW"]: pasteWillFork }])}${pasteWillFork ? " title=\"Will fork to your account; click to clone as-is instead\"" : _attr("title", `Fork ${pasted} to your account and clone the fork`)} aria-pressed=${pasteWillFork ? "true" : "false"}>`);
15972
14497
  _if(() => {
15973
14498
  if (pasteWillFork) {
15974
14499
  const $scope14_id = _scope_id();
@@ -15988,7 +14513,7 @@ var repo_picker_default = _template("w", (input$2) => {
15988
14513
  return 0;
15989
14514
  }
15990
14515
  }, $scope3_id, "g", 1, 1, 1, 0, 1);
15991
- _html(`<button${_attr_class([resultBranch, { ["_h3"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
14516
+ _html(`<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === pasted }])}${_attr("title", `Pick a base branch for ${pasted}`)}${_attr("aria-label", `Pick a base branch for ${pasted}`)}>`);
15992
14517
  icon_branch_default({ size: 12 });
15993
14518
  _html(`</button>${_el_resume($scope3_id, "h")}</div>`);
15994
14519
  _if(() => {
@@ -16023,15 +14548,15 @@ var repo_picker_default = _template("w", (input$2) => {
16023
14548
  _if(() => {
16024
14549
  if (results.length) {
16025
14550
  const $scope5_id = _scope_id();
16026
- _html(`<ul${_attr_class("_hZ")}>`);
14551
+ _html(`<ul${_attr_class("_gS")}>`);
16027
14552
  _for_of(results, (repo, i) => {
16028
14553
  const $scope6_id = _scope_id();
16029
- _html(`<li><div${_attr_class(["_h1", { ["_h0"]: i === highlight }])}><button${_attr_class(resultRow)}>`);
14554
+ _html(`<li><div${_attr_class(["_gU", { ["_gT"]: i === highlight }])}><button${_attr_class(resultRow)}>`);
16030
14555
  icon_plus_default({
16031
14556
  size: 12,
16032
- class: "_h8"
14557
+ class: "_g1"
16033
14558
  });
16034
- _html(`<span${_attr_class("_h9")}>${_text_resume($scope6_id, "e", repoLabel(repo.nameWithOwner))}</span></button>${_el_resume($scope6_id, "b")}<button${_attr_class([resultBranch, { ["_h3"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
14559
+ _html(`<span${_attr_class("_g2")}>${_text_resume($scope6_id, "e", repoLabel(repo.nameWithOwner))}</span></button>${_el_resume($scope6_id, "b")}<button${_attr_class([resultBranch, { ["_gW"]: branchesFor === repo.nameWithOwner }])}${_attr("title", `Pick a base branch for ${repo.nameWithOwner}`)}${_attr("aria-label", `Pick a base branch for ${repo.nameWithOwner}`)}>`);
16035
14560
  icon_branch_default({ size: 12 });
16036
14561
  _html(`</button>${_el_resume($scope6_id, "f")}</div>${_el_resume($scope6_id, "a")}`);
16037
14562
  _if(() => {
@@ -16286,7 +14811,7 @@ var manage_workspace_default = _template("r", (input) => {
16286
14811
  setTimeout(() => loadProcs(void 0), 500);
16287
14812
  }, "r10", $scope0_id);
16288
14813
  const titleId = _id();
16289
- _html(`<div${_attr_class("_d8")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_d9")}><div${_attr_class("_d_")}>`);
14814
+ _html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
16290
14815
  _set_serialize_reason(30);
16291
14816
  const $childScope = _peek_scope_id();
16292
14817
  page_head_default({
@@ -16299,7 +14824,7 @@ var manage_workspace_default = _template("r", (input) => {
16299
14824
  meta: attrTag({ content: _content("r20", () => {
16300
14825
  _scope_reason();
16301
14826
  const $scope13_id = _scope_id();
16302
- _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_fZ")}>${_text_resume($scope13_id, "c", ws.name)}</span>`);
14827
+ _html(`<span${_attr_class(pageMeta)}${_attr("title", ws.display_path || ws.path)}><span${_attr_class("_eA")}>${_text_resume($scope13_id, "c", ws.name)}</span>`);
16303
14828
  _if(() => {
16304
14829
  if (ws.status !== "active") {
16305
14830
  const $scope17_id = _scope_id();
@@ -16308,7 +14833,7 @@ var manage_workspace_default = _template("r", (input) => {
16308
14833
  return 0;
16309
14834
  }
16310
14835
  }, $scope13_id, "d", 1, 1, 1, 0, 1);
16311
- _html(`<span${_attr_class("_f0")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_text_resume($scope13_id, "g", ws.display_path || ws.path)}</span></span>${_el_resume($scope13_id, "a")}`);
14836
+ _html(`<span${_attr_class("_eB")} aria-hidden=true>·</span><span${_attr_class(pathMeta)}>${_text_resume($scope13_id, "g", ws.display_path || ws.path)}</span></span>${_el_resume($scope13_id, "a")}`);
16312
14837
  _subscribe($ws_status__closures, _subscribe($ws_path__closures, _subscribe($ws_display_path__closures, _subscribe($ws_name__closures, writeScope($scope13_id, {
16313
14838
  _: _scope_with_id($scope0_id),
16314
14839
  Ccf: 1
@@ -16393,7 +14918,7 @@ var manage_workspace_default = _template("r", (input) => {
16393
14918
  return 0;
16394
14919
  }
16395
14920
  }, $scope0_id, "f", 1, 1, 1, 0, 1);
16396
- _html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Repos</h2><span${_attr_class(sectionCount)}>${_text_resume($scope0_id, "k", ws.repos.length)}</span><div${_attr_class("_z")}></div><button${_attr_class([iconBtnRow, "_gf"])} title="Add repo" aria-label="Add repo"${_attr("hidden", addingRepo)}>`);
14921
+ _html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Repos</h2><span${_attr_class(sectionCount)}>${_text_resume($scope0_id, "k", ws.repos.length)}</span><div${_attr_class("_z")}></div><button${_attr_class([iconBtnRow, "_eR"])} title="Add repo" aria-label="Add repo"${_attr("hidden", addingRepo)}>`);
16397
14922
  icon_plus_default({ size: 16 });
16398
14923
  _html(`</button>${_el_resume($scope0_id, "m")}`);
16399
14924
  _set_serialize_reason(26);
@@ -16509,14 +15034,14 @@ var manage_workspace_default = _template("r", (input) => {
16509
15034
  _for_of(allSkills, ({ s, linked }) => {
16510
15035
  const $scope3_id = _scope_id();
16511
15036
  const isBusy = skillBusy.has(s.id);
16512
- _html(`<li${_attr_class([skillRow, { ["_f8"]: !linked }])}><span${_attr_class("_f_")}><span${_attr_class(["_y", skillName])}>${_text_resume($scope3_id, "d", s.name)}</span>`);
15037
+ _html(`<li${_attr_class([skillRow, { ["_eJ"]: !linked }])}><span${_attr_class("_eL")}><span${_attr_class(["_y", skillName])}>${_text_resume($scope3_id, "d", s.name)}</span>`);
16513
15038
  _if(() => {
16514
15039
  if (s.worktree && !s.broken) {
16515
15040
  const $scope26_id = _scope_id();
16516
15041
  _html(`<span${_attr_class([
16517
15042
  "_N",
16518
15043
  "_y",
16519
- "_ga"
15044
+ "_eM"
16520
15045
  ])}${linked ? _attr("title", `Linked from ${s.worktree}/ in this workspace`) : _attr("title", `Ships in ${s.worktree}/ — not linked into this workspace yet`)}>${_text_resume($scope26_id, "b", s.worktree)}/</span>${_el_resume($scope26_id, "a")}`);
16521
15046
  writeScope($scope26_id, {});
16522
15047
  return 0;
@@ -16571,7 +15096,7 @@ var manage_workspace_default = _template("r", (input) => {
16571
15096
  "_cp",
16572
15097
  "_8",
16573
15098
  "_9",
16574
- "_gd",
15099
+ "_eP",
16575
15100
  { ["_s"]: confirmingSkill === s.id }
16576
15101
  ])} type=button${_attr("disabled", isBusy)}${isBusy ? " aria-busy=true" : ""}${confirmingSkill === s.id ? _attr("title", `Remove ${s.name} from this workspace?`) : s.linked ? _attr("title", `Stop using ${s.name} here`) : _attr("title", `Remove ${s.name}`)}>`);
16577
15102
  _if(() => {
@@ -16624,17 +15149,17 @@ var manage_workspace_default = _template("r", (input) => {
16624
15149
  _html(`<section${_attr_class("_cf")}><div${_attr_class("_cg")}><h2${_attr_class("_ct")}>Running</h2><span${_attr_class(sectionCount)}>${_text_resume($scope15_id, "e", running.length)}</span></div><ul${_attr_class(list$2)}>`);
16625
15150
  _for_of(running, (p) => {
16626
15151
  const $scope16_id = _scope_id();
16627
- _html(`<li${_attr_class("_f2")}${_attr("title", `${p.cmd} ${p.args}`.trim())}><span${_attr_class(["_y", "_f3"])}>${_text_resume($scope16_id, "c", p.cmd)}</span><span${_attr_class(["_y", "_f4"])}>${_text_resume($scope16_id, "e", p.args)}</span><span${_attr_class("_f5")}>`);
15152
+ _html(`<li${_attr_class("_eD")}${_attr("title", `${p.cmd} ${p.args}`.trim())}><span${_attr_class(["_y", "_eE"])}>${_text_resume($scope16_id, "c", p.cmd)}</span><span${_attr_class(["_y", "_eF"])}>${_text_resume($scope16_id, "e", p.args)}</span><span${_attr_class("_eG")}>`);
16628
15153
  _for_of(p.ports, (port) => {
16629
15154
  const $scope34_id = _scope_id();
16630
15155
  _html(`<button${_attr_class(["_u", "_K"])}${_attr("title", `Open port ${port}`)}>:${_text_resume($scope34_id, "b", port, 2)}</button>${_el_resume($scope34_id, "a")}`);
16631
15156
  _script($scope34_id, "r27");
16632
15157
  writeScope($scope34_id, { d: port });
16633
15158
  }, (x) => String(x), $scope16_id, "g", 1, 1, 1, 0, 1);
16634
- _html(`<span${_attr_class(["_y", "_f6"])}>${_text_resume($scope16_id, "i", p.pid)}</span><button${_attr_class([
15159
+ _html(`<span${_attr_class(["_y", "_eH"])}>${_text_resume($scope16_id, "i", p.pid)}</span><button${_attr_class([
16635
15160
  "_cp",
16636
15161
  "_8",
16637
- "_ge"
15162
+ "_eQ"
16638
15163
  ])} type=button${_attr("title", `Kill process ${p.pid}`)}${_attr("aria-label", `Kill process ${p.pid}`)}>`);
16639
15164
  icon_xmark_default({ size: 14 });
16640
15165
  _html(`</button>${_el_resume($scope16_id, "j")}</span></li>${_el_resume($scope16_id, "a")}`);
@@ -16715,14 +15240,14 @@ var manage_workspace_default = _template("r", (input) => {
16715
15240
  });
16716
15241
  _resume_branch($scope0_id);
16717
15242
  });
16718
- var curRepos = "_cY _ck _cL _cW";
16719
- var curRow = "_ff _cZ _cX";
16720
- var curEmpty = "_fh _cq";
16721
- var curBase = "_fk _Y _X";
16722
- var archived = "_fp _cf";
16723
- var archivedHint = "_fq _X";
16724
- var archivedList = "_cY _ck _cL _cW";
16725
- var archivedRow = "_fr _cZ _cX";
15243
+ var curRepos = "_ed _ck _d1 _eb";
15244
+ var curRow = "_el _ee _ec";
15245
+ var curEmpty = "_en _cq";
15246
+ var curBase = "_eq _Y _X";
15247
+ var archived = "_ev _cf";
15248
+ var archivedHint = "_ew _X";
15249
+ var archivedList = "_ed _ck _d1 _eb";
15250
+ var archivedRow = "_ex _ee _ec";
16726
15251
  //#endregion
16727
15252
  //#region src/tags/icons/icon-group.marko
16728
15253
  var icon_group_default = _template("fb", (input) => {
@@ -16742,8 +15267,8 @@ var icon_group_default = _template("fb", (input) => {
16742
15267
  });
16743
15268
  //#endregion
16744
15269
  //#region src/tags/join-dialog.css.ts
16745
- var dlg = "_hv _gT";
16746
- var hint = "_hw _X";
15270
+ var dlg = "_hP _hL";
15271
+ var hint = "_hQ _X";
16747
15272
  //#endregion
16748
15273
  //#region src/tags/join-dialog.marko
16749
15274
  var api$3;
@@ -16872,26 +15397,26 @@ var join_dialog_default = _template("o", (input) => {
16872
15397
  content: _content("o12", () => {
16873
15398
  _scope_reason();
16874
15399
  const $scope1_id = _scope_id();
16875
- _html(`<h2${_attr_class("_gU")}${_attr("id", titleId)}>Join a workspace</h2><p${_attr_class(hint)}>Paste an invite: the same repos, on your own lane of their branch.</p><textarea${_attr_class([
15400
+ _html(`<h2${_attr_class("_hM")}${_attr("id", titleId)}>Join a workspace</h2><p${_attr_class(hint)}>Paste an invite: the same repos, on your own lane of their branch.</p><textarea${_attr_class([
16876
15401
  "_Z",
16877
15402
  "_y",
16878
- "_hy"
15403
+ "_hS"
16879
15404
  ])} placeholder="{ &#34;name&#34;: …, &#34;branch&#34;: …, &#34;repos&#34;: [&#34;owner/name&#34;, …] }" aria-label="Workspace invite" rows=6 autocomplete=off spellcheck=false${_attr("disabled", busy)} autofocus>${_attr_textarea_value($scope1_id, "c", invite, setInvite)}</textarea>${_el_resume($scope1_id, "c")}`);
16880
15405
  _if(() => {
16881
15406
  if (parsed.error) {
16882
15407
  const $scope8_id = _scope_id();
16883
- _html(`<p${_attr_class([hint, "_hx"])}>${_text_resume($scope8_id, "b", parsed.error)}</p>`);
15408
+ _html(`<p${_attr_class([hint, "_hR"])}>${_text_resume($scope8_id, "b", parsed.error)}</p>`);
16884
15409
  _subscribe($parsed_error__closures, writeScope($scope8_id, { Cag: 1 }));
16885
15410
  return 0;
16886
15411
  } else if (parsed.ok) {
16887
15412
  const $scope3_id = _scope_id();
16888
- _html(`<ul${_attr_class("_hz")}>`);
15413
+ _html(`<ul${_attr_class("_hT")}>`);
16889
15414
  _for_of(parsed.ok.repos, (fullName) => {
16890
15415
  const $scope9_id = _scope_id();
16891
- _html(`<li${_attr_class("_hA")}><span${_attr_class("_hB")}>${_text_resume($scope9_id, "c", repoLabel(fullName))}</span></li>`);
15416
+ _html(`<li${_attr_class("_hU")}><span${_attr_class("_hV")}>${_text_resume($scope9_id, "c", repoLabel(fullName))}</span></li>`);
16892
15417
  writeScope($scope9_id, {});
16893
15418
  }, (r) => r, $scope3_id, "a", 1, 1, 1, "</ul>", 1);
16894
- _html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("_hC")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope3_id, "g", name, _resume((_new_name) => {
15419
+ _html(`<p${_attr_class(hint)}>Your own lane of <span${_attr_class("_y")}>${_text_resume($scope3_id, "d", parsed.ok.branch)}</span> in each; PRs target theirs.</p><label${_attr_class("_hW")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope3_id, "g", name, _resume((_new_name) => {
16895
15420
  name = _new_name;
16896
15421
  }, "o1", $scope3_id))}${_attr_class("_Z")}${_attr("placeholder", parsed.ok.name)}${_attr("disabled", busy)}>${_el_resume($scope3_id, "g")}</label>`);
16897
15422
  _script($scope3_id, "o8");
@@ -16928,10 +15453,10 @@ var join_dialog_default = _template("o", (input) => {
16928
15453
  _if(() => {
16929
15454
  if (busy && steps$2.length) {
16930
15455
  const $scope6_id = _scope_id();
16931
- _html(`<ul${_attr_class("_hD")}>`);
15456
+ _html(`<ul${_attr_class("_hX")}>`);
16932
15457
  _for_of(steps$2, (step$2, i) => {
16933
15458
  const $scope7_id = _scope_id();
16934
- _html(`<li${_attr_class(["_hF", { ["_hE"]: i === steps$2.length - 1 }])}>`);
15459
+ _html(`<li${_attr_class(["_hZ", { ["_hY"]: i === steps$2.length - 1 }])}>`);
16935
15460
  _if(() => {
16936
15461
  if (i === steps$2.length - 1) {
16937
15462
  const $scope10_id = _scope_id();
@@ -16940,7 +15465,7 @@ var join_dialog_default = _template("o", (input) => {
16940
15465
  return 0;
16941
15466
  } else {
16942
15467
  const $scope11_id = _scope_id();
16943
- _html(`<span${_attr_class("_hG")}>`);
15468
+ _html(`<span${_attr_class("_h0")}>`);
16944
15469
  icon_check_default({ size: 14 });
16945
15470
  _html("</span>");
16946
15471
  writeScope($scope11_id, {});
@@ -17098,7 +15623,7 @@ var new_workspace_default = _template("t", (input) => {
17098
15623
  }
17099
15624
  }, "t6", $scope0_id);
17100
15625
  const titleId = _id();
17101
- _html(`<div${_attr_class("_d8")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_d9")}><div${_attr_class("_d_")}>`);
15626
+ _html(`<div${_attr_class("_dT")} role=region${_attr("aria-labelledby", titleId)}><div${_attr_class("_dU")}><div${_attr_class("_dV")}>`);
17102
15627
  _set_serialize_reason({
17103
15628
  0: _serialize_guard($scope0_reason, 2),
17104
15629
  1: $sg__input_backHref__OR__input_onExit,
@@ -17147,16 +15672,16 @@ var new_workspace_default = _template("t", (input) => {
17147
15672
  return 0;
17148
15673
  }
17149
15674
  }, $scope0_id, "e", 1, 1, 1, 0, 1);
17150
- _html(`<label${_attr_class("_fb")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
15675
+ _html(`<label${_attr_class("_eh")}><span${_attr_class("_ct")}>Name</span><input${_attr_input_value($scope0_id, "h", name, _resume((_new_name) => {
17151
15676
  name = _new_name;
17152
- }, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("_cf")}><div${_attr_class("_fd")}><h2${_attr_class("_ct")}>Repos</h2></div><ul${_attr_class(curRepos)}>`);
15677
+ }, "t0", $scope0_id))}${_attr_class(inputLg)} placeholder=my-feature${_attr("disabled", busy)} autofocus>${_el_resume($scope0_id, "h")}</label><section${_attr_class("_cf")}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Repos</h2></div><ul${_attr_class(curRepos)}>`);
17153
15678
  _for_of(selected, (repo) => {
17154
15679
  const $scope4_id = _scope_id();
17155
- _html(`<li${_attr_class("_fe")}><div${_attr_class(curRow)}><span${_attr_class("_fi")}>${_text_resume($scope4_id, "d", repoLabel(repo.fullName))}</span>`);
15680
+ _html(`<li${_attr_class("_ek")}><div${_attr_class(curRow)}><span${_attr_class("_eo")}>${_text_resume($scope4_id, "d", repoLabel(repo.fullName))}</span>`);
17156
15681
  _if(() => {
17157
15682
  if (repo.fork !== void 0) {
17158
15683
  const $scope5_id = _scope_id();
17159
- _html(`<button${_attr_class(["_fl", { ["_fj"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
15684
+ _html(`<button${_attr_class(["_er", { ["_ep"]: repo.fork }])}${repo.fork ? _attr("title", `${repo.fullName} will be forked to your account; click to clone as-is instead`) : _attr("title", `Fork ${repo.fullName} to your account and clone the fork`)} aria-pressed=${repo.fork ? "true" : "false"}${_attr("disabled", busy)}>`);
17160
15685
  _if(() => {
17161
15686
  if (repo.fork) {
17162
15687
  const $scope14_id = _scope_id();
@@ -17179,7 +15704,7 @@ var new_workspace_default = _template("t", (input) => {
17179
15704
  _html(`<button${_attr_class([
17180
15705
  curBase,
17181
15706
  "_y",
17182
- { ["_fj"]: branchesFor === repo.fullName }
15707
+ { ["_ep"]: branchesFor === repo.fullName }
17183
15708
  ])}${_attr("title", `Change base branch for ${repo.fullName}`)}${_attr("aria-label", `Change base branch for ${repo.fullName}`)}${_attr("disabled", busy)}>`);
17184
15709
  icon_branch_default({ size: 12 });
17185
15710
  _html(`${_text_resume($scope4_id, "h", repo.baseBranch ? `${_to_text(" ")}${_to_text(repo.baseBranch)}` : "")}</button>${_el_resume($scope4_id, "f")}<button${_attr_class([iconBtnXs, "_8"])}${_attr("title", `Remove ${repo.fullName}`)}${_attr("disabled", busy)}>`);
@@ -17188,7 +15713,7 @@ var new_workspace_default = _template("t", (input) => {
17188
15713
  _if(() => {
17189
15714
  if (branchesFor === repo.fullName) {
17190
15715
  const $scope10_id = _scope_id();
17191
- _html(`<div${_attr_class("_fg")}>`);
15716
+ _html(`<div${_attr_class("_em")}>`);
17192
15717
  const $childScope2 = _peek_scope_id();
17193
15718
  branch_pick_default({
17194
15719
  repo: repo.fullName,
@@ -17239,7 +15764,7 @@ var new_workspace_default = _template("t", (input) => {
17239
15764
  action: attrTag({ content: _content("t21", () => {
17240
15765
  _scope_reason();
17241
15766
  const $scope2_id = _scope_id();
17242
- _html(`<button${_attr_class([iconBtnRow, "_fc"])} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
15767
+ _html(`<button${_attr_class([iconBtnRow, "_ei"])} title="Refresh repo list" aria-label="Refresh repo list"${_attr("disabled", catalogRefreshing)}>`);
17243
15768
  _set_serialize_reason(1);
17244
15769
  const $childScope3 = _peek_scope_id();
17245
15770
  icon_refresh_default({
@@ -17260,10 +15785,10 @@ var new_workspace_default = _template("t", (input) => {
17260
15785
  _if(() => {
17261
15786
  if (busy && steps.length) {
17262
15787
  const $scope11_id = _scope_id();
17263
- _html(`<ul${_attr_class("_fm")}>`);
15788
+ _html(`<ul${_attr_class("_es")}>`);
17264
15789
  _for_of(steps, (step, i) => {
17265
15790
  const $scope12_id = _scope_id();
17266
- _html(`<li${_attr_class(["_fs", { ["_fn"]: i === steps.length - 1 }])}>`);
15791
+ _html(`<li${_attr_class(["_ey", { ["_et"]: i === steps.length - 1 }])}>`);
17267
15792
  _if(() => {
17268
15793
  if (i === steps.length - 1) {
17269
15794
  const $scope17_id = _scope_id();
@@ -17272,7 +15797,7 @@ var new_workspace_default = _template("t", (input) => {
17272
15797
  return 0;
17273
15798
  } else {
17274
15799
  const $scope18_id = _scope_id();
17275
- _html(`<span${_attr_class("_fo")}>`);
15800
+ _html(`<span${_attr_class("_eu")}>`);
17276
15801
  icon_check_default({ size: 14 });
17277
15802
  _html("</span>");
17278
15803
  writeScope($scope18_id, {});
@@ -17286,15 +15811,15 @@ var new_workspace_default = _template("t", (input) => {
17286
15811
  return 0;
17287
15812
  }
17288
15813
  }, $scope0_id, "q", 1, 1, 1, 0, 1);
17289
- _html(`<div${_attr_class("_e_")}><button type=button${_attr_class([
15814
+ _html(`<div${_attr_class("_ef")}><button type=button${_attr_class([
17290
15815
  btnLg,
17291
15816
  "_r",
17292
- "_fa"
15817
+ "_eg"
17293
15818
  ])}${_attr("disabled", busy || !!restoring || !name.trim())}>${_text_resume($scope0_id, "t", busy ? "Creating…" : "Create workspace")}</button>${_el_resume($scope0_id, "s")}</div>`);
17294
15819
  _if(() => {
17295
15820
  if (archived$1.length) {
17296
15821
  const $scope6_id = _scope_id();
17297
- _html(`<section${_attr_class(archived)}><div${_attr_class("_fd")}><h2${_attr_class("_ct")}>Archived</h2><span${_attr_class(sectionCount)}>${_text_resume($scope6_id, "e", archived$1.length, $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class(archivedList)}>`);
15822
+ _html(`<section${_attr_class(archived)}><div${_attr_class("_ej")}><h2${_attr_class("_ct")}>Archived</h2><span${_attr_class(sectionCount)}>${_text_resume($scope6_id, "e", archived$1.length, $sg__input_workspaces)}</span></div><p${_attr_class(archivedHint)}>Restore an archived workspace instead of creating a new one.</p><ul${_attr_class(archivedList)}>`);
17298
15823
  _for_of(archived$1, (ws) => {
17299
15824
  const $scope7_id = _scope_id();
17300
15825
  _html(`<li${_attr_class(archivedRow)}><div${_attr_class("_cl")}><span${_attr_class("_cm")}>${_text_resume($scope7_id, "d", ws.name, $sg__input_workspaces)}</span><span${_attr_class([metaTrunc, "_y"])}${_attr("title", ws.display_path || ws.path)}>${_text_resume($scope7_id, "f", ws.display_path || ws.path, $sg__input_workspaces)}</span>${_el_resume($scope7_id, "e", $sg__input_workspaces)}</div><button type=button${_attr_class(btnSm)}${_attr("disabled", busy || !!restoring)}>`);
@@ -17413,19 +15938,19 @@ var term_find_default = _template("E", (input) => {
17413
15938
  const canStep = hasQuery && open;
17414
15939
  const keybar = input.placement === "keybar";
17415
15940
  _html(`<div${_attr_class([
17416
- "_el",
17417
- keybar ? "_en" : "_em",
17418
- !open && "_ep"
17419
- ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_eg", keybar ? "_eo" : "_ei"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
15941
+ "_cA",
15942
+ keybar ? "_cC" : "_cB",
15943
+ !open && "_cE"
15944
+ ])} aria-hidden=${open ? "false" : "true"}><div${_attr_class(["_cv", keybar ? "_cD" : "_cx"])}><input${_attr_input_value($scope0_id, "c", query, _resume(function(v) {
17420
15945
  if (!open) return;
17421
15946
  query = v;
17422
15947
  live.query = v;
17423
15948
  run(0);
17424
- }, "E1", $scope0_id))}${_attr_class([findInput, keybar && "_eq"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_er"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
15949
+ }, "E1", $scope0_id))}${_attr_class([findInput, keybar && "_cF"])} type=search enterkeyhint=search autocomplete=off tabindex=${open ? "0" : "-1"} placeholder="Find in terminal" aria-label="Find in terminal">${_el_resume($scope0_id, "c")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Previous match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
17425
15950
  icon_arrow_up_default({ size: 14 });
17426
- _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_er"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
15951
+ _html(`</button>${_el_resume($scope0_id, "d")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Next match"${_attr("disabled", !canStep)} tabindex=${open ? "0" : "-1"}>`);
17427
15952
  icon_arrow_down_default({ size: 14 });
17428
- _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_er"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
15953
+ _html(`</button>${_el_resume($scope0_id, "f")}<button type=button${_attr_class([findIconBtn, keybar && "_cG"])} title="Close find" tabindex=${open ? "0" : "-1"}>`);
17429
15954
  icon_xmark_default({ size: 14 });
17430
15955
  _html(`</button>${_el_resume($scope0_id, "h")}</div>${_el_resume($scope0_id, "b", _serialize_guard($scope0_reason, 2))}</div>${_el_resume($scope0_id, "a")}`);
17431
15956
  const $return = focusInput;
@@ -17576,7 +16101,7 @@ var term_default = _template("F", (input) => {
17576
16101
  }
17577
16102
  }, "F9", $scope0_id);
17578
16103
  input.keys;
17579
- _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_eG")}><div${_attr_class("_eH")}></div>${_el_resume($scope0_id, "b")}`);
16104
+ _html(`<div${_attr("hidden", !onTermPage)}${_attr_class("_db")}><div${_attr_class("_dc")}></div>${_el_resume($scope0_id, "b")}`);
17580
16105
  _if(() => {
17581
16106
  if (findOpen) {
17582
16107
  const $scope4_id = _scope_id();
@@ -17603,7 +16128,7 @@ var term_default = _template("F", (input) => {
17603
16128
  _if(() => {
17604
16129
  if (uploading) {
17605
16130
  const $scope5_id = _scope_id();
17606
- _html(`<div${_attr_class("_eN")}>uploading…</div>`);
16131
+ _html(`<div${_attr_class("_di")}>uploading…</div>`);
17607
16132
  writeScope($scope5_id, {});
17608
16133
  return 0;
17609
16134
  }
@@ -17611,7 +16136,7 @@ var term_default = _template("F", (input) => {
17611
16136
  _if(() => {
17612
16137
  if (copiedFlash) {
17613
16138
  const $scope6_id = _scope_id();
17614
- _html(`<div${_attr_class("_eM")}>Copied</div>`);
16139
+ _html(`<div${_attr_class("_dh")}>Copied</div>`);
17615
16140
  writeScope($scope6_id, {});
17616
16141
  return 0;
17617
16142
  }
@@ -17620,7 +16145,7 @@ var term_default = _template("F", (input) => {
17620
16145
  _if(() => {
17621
16146
  if (trapOpen) {
17622
16147
  const $scope3_id = _scope_id();
17623
- _html(`<div${_attr_class("_eO")}><div${_attr_class("_eP")}><p${_attr_class("_eQ")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope3_id, "d")}<button${_attr_class("_q")}>Cancel</button>${_el_resume($scope3_id, "e")}</div>${_el_resume($scope3_id, "b")}</div>${_el_resume($scope3_id, "a")}`);
16148
+ _html(`<div${_attr_class("_dj")}><div${_attr_class("_dk")}><p${_attr_class("_dl")}>Long-press the field below and choose Paste</p><input placeholder="Paste here…">${_el_resume($scope3_id, "d")}<button${_attr_class("_q")}>Cancel</button>${_el_resume($scope3_id, "e")}</div>${_el_resume($scope3_id, "b")}</div>${_el_resume($scope3_id, "a")}`);
17624
16149
  _script($scope3_id, "F16");
17625
16150
  _script($scope3_id, "F17");
17626
16151
  writeScope($scope3_id, {});
@@ -18219,8 +16744,8 @@ _template("tb", (input) => {
18219
16744
  });
18220
16745
  _serialize_if($scope0_reason, 0) && writeScope($scope0_id, { a: _existing_scope($childScope) });
18221
16746
  });
18222
- var sessOpen = "_ew _I";
18223
- var sessRename = "_eA _J";
16747
+ var sessOpen = "_cL _I";
16748
+ var sessRename = "_cP _J";
18224
16749
  //#endregion
18225
16750
  //#region src/tags/key-bar-sessions.marko
18226
16751
  var usageFor;
@@ -18251,7 +16776,7 @@ _template("p", (input) => {
18251
16776
  popEl.style.top = `${Math.max(8, btn.top - popEl.offsetHeight - 8)}px`;
18252
16777
  popEl.style.left = `${Math.max(8, Math.min(btn.left + btn.width / 2 - popEl.offsetWidth / 2, window.innerWidth - popEl.offsetWidth - 8))}px`;
18253
16778
  }, "p2", $scope0_id);
18254
- _html(`<button${_attr_class([kbtn, "_es"])} title=${input.onTermPage ? "Sessions" : "\"Back to session\""}${input.onTermPage ? _attr("popovertarget", popId) : ""}>`);
16779
+ _html(`<button${_attr_class([kbtn, "_cH"])} title=${input.onTermPage ? "Sessions" : "\"Back to session\""}${input.onTermPage ? _attr("popovertarget", popId) : ""}>`);
18255
16780
  _set_serialize_reason({
18256
16781
  1: $sg__input_sessions__OR__input_sessionId,
18257
16782
  2: $sg__input_sessions__OR__input_sessionId
@@ -18265,12 +16790,12 @@ _template("p", (input) => {
18265
16790
  "_A",
18266
16791
  "_bc",
18267
16792
  phase[sessionPhase(current$2?.state)]
18268
- ])}></span>${_el_resume($scope0_id, "c", $sg__input_sessions__OR__input_sessionId)}</button>${_el_resume($scope0_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(["__", "_et"])}>`);
16793
+ ])}></span>${_el_resume($scope0_id, "c", $sg__input_sessions__OR__input_sessionId)}</button>${_el_resume($scope0_id, "a")}<div${_attr("id", popId)} popover=auto${_attr_class(["__", "_cI"])}>`);
18269
16794
  _for_of(input.sessions, (s) => {
18270
16795
  const $scope1_id = _scope_id();
18271
16796
  const $for_content__s_agent__closures = /* @__PURE__ */ new Set();
18272
16797
  const $for_content__s_id__closures = /* @__PURE__ */ new Set();
18273
- _html(`<div${_attr_class(["_ev", { ["_eu"]: s.id === input.sessionId }])}>`);
16798
+ _html(`<div${_attr_class(["_cK", { ["_cJ"]: s.id === input.sessionId }])}>`);
18274
16799
  _if(() => {
18275
16800
  if (renamingId === s.id) {
18276
16801
  const $scope5_id = _scope_id();
@@ -18302,7 +16827,7 @@ _template("p", (input) => {
18302
16827
  agent: activeAgent(s),
18303
16828
  size: 14
18304
16829
  });
18305
- _html(`<span${_attr_class("_ex")}><span${_attr_class("_ez")}>${_text_resume($scope2_id, "f", s.title || activeAgent(s), $sg__input_sessions)}</span>`);
16830
+ _html(`<span${_attr_class("_cM")}><span${_attr_class("_cO")}>${_text_resume($scope2_id, "f", s.title || activeAgent(s), $sg__input_sessions)}</span>`);
18306
16831
  _if(() => {
18307
16832
  if (s.id === input.sessionId) {
18308
16833
  const $scope7_id = _scope_id();
@@ -18314,7 +16839,7 @@ _template("p", (input) => {
18314
16839
  const $childScope4 = _peek_scope_id();
18315
16840
  usage_pcts_default({
18316
16841
  agent: plan,
18317
- class: "_ey"
16842
+ class: "_cN"
18318
16843
  });
18319
16844
  writeScope($scope8_id, { a: _existing_scope($childScope4) });
18320
16845
  return 0;
@@ -18331,7 +16856,7 @@ _template("p", (input) => {
18331
16856
  _if(() => {
18332
16857
  if (input.onRenameSession) {
18333
16858
  const $scope6_id = _scope_id();
18334
- _html(`<button${_attr_class(["_eB", "_eC"])} title="Rename session">`);
16859
+ _html(`<button${_attr_class(["_cQ", "_cR"])} title="Rename session">`);
18335
16860
  icon_edit_default({ size: 12 });
18336
16861
  _html(`</button>${_el_resume($scope6_id, "a")}`);
18337
16862
  _script($scope6_id, "p4");
@@ -18343,7 +16868,7 @@ _template("p", (input) => {
18343
16868
  if (input.onCloseSession) {
18344
16869
  const $scope3_id = _scope_id();
18345
16870
  _html(`<button${_attr_class([
18346
- "_eB",
16871
+ "_cQ",
18347
16872
  "_8",
18348
16873
  { ["_s"]: armedClose === s.id }
18349
16874
  ])} title=${armedClose === s.id ? "Close?" : "\"Close session\""}>`);
@@ -18370,7 +16895,7 @@ _template("p", (input) => {
18370
16895
  k: $si__input_sessions && $for_content__s_id__closures
18371
16896
  });
18372
16897
  }, "id", $scope0_id, "e", 1, $sg__input_sessions, $sg__input_sessions__OR__input_agents, 0, 1);
18373
- _html(`<div${_attr_class("_eD")}><span${_attr_class("_eE")}>New session</span><div${_attr_class("_eF")}>`);
16898
+ _html(`<div${_attr_class("_cS")}><span${_attr_class("_cT")}>New session</span><div${_attr_class("_cU")}>`);
18374
16899
  _for_of(["shell", ...input.agents], (agent) => {
18375
16900
  const $scope4_id = _scope_id();
18376
16901
  _html(`<button${_attr_class(iconBtnRow)}${_attr("title", `New ${agent} session`)}>`);
@@ -27377,4 +25902,4 @@ server.listen(port, () => {
27377
25902
  //#endregion
27378
25903
  export {};
27379
25904
 
27380
- ;var __MARKO_MANIFEST__={"ZLT8joi":{"block":[2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">",2,"stylesheet#/assets/app-page-LdxNfDbr.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LdxNfDbr.css\"",">"],"defer":[2,"/assets/new-Cz4e5lzk.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-Cz4e5lzk.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_Cbu4AbsN.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Cbu4AbsN.js\"",">",2,"modulepreload#/assets/_DUDy5h6R.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DUDy5h6R.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">",2,"stylesheet#/assets/app-page-LdxNfDbr.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LdxNfDbr.css\"",">"],"defer":[2,"/assets/settings-Cz4e5lzk.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-Cz4e5lzk.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_Cbu4AbsN.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Cbu4AbsN.js\"",">",2,"modulepreload#/assets/_DUDy5h6R.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DUDy5h6R.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">",2,"stylesheet#/assets/app-page-LdxNfDbr.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LdxNfDbr.css\"",">"],"defer":[2,"/assets/w._-Cz4e5lzk.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-Cz4e5lzk.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_Cbu4AbsN.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Cbu4AbsN.js\"",">",2,"modulepreload#/assets/_DUDy5h6R.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DUDy5h6R.js\"",">"]},"T$MNY0k":{"block":[2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">",2,"stylesheet#/assets/app-page-LdxNfDbr.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LdxNfDbr.css\"",">"],"defer":[2,"/assets/w._-AQhK6cKs.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-AQhK6cKs.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_Cbu4AbsN.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Cbu4AbsN.js\"",">",2,"modulepreload#/assets/_DUDy5h6R.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DUDy5h6R.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">",2,"stylesheet#/assets/app-page-LdxNfDbr.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-LdxNfDbr.css\"",">"],"defer":[2,"/assets/w-Cz4e5lzk.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-Cz4e5lzk.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_Cbu4AbsN.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_Cbu4AbsN.js\"",">",2,"modulepreload#/assets/_DUDy5h6R.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DUDy5h6R.js\"",">"]},"_m":{"block":[2,"stylesheet#/assets/diff-view-E8jVfABq.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/diff-view-E8jVfABq.css\"",">",2,"stylesheet#/assets/icon-arrow-down-Bh8nsodJ.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/icon-arrow-down-Bh8nsodJ.css\"",">"],"defer":[2,"/assets/diff-view-BPU5rMei.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/diff-view-BPU5rMei.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">"]}};
25905
+ ;var __MARKO_MANIFEST__={"T$MNY0k":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"LH2lXAg":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ibphXY4":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/w._-DvPeuuNc.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/w._-DvPeuuNc.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"ZLT8joi":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/new-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/new-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"AA0T2xt":{"block":[2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">",2,"stylesheet#/assets/app-page-DkJHV2Hb.css",6,"<link",0," rel=\"stylesheet\" crossorigin href=\"",1,"assets/app-page-DkJHV2Hb.css\"",">"],"defer":[2,"/assets/settings-CjRAL7y8.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/settings-CjRAL7y8.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">",2,"modulepreload#/assets/_hePW80VL.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_hePW80VL.js\"",">",2,"modulepreload#/assets/_DrrcCvtP.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DrrcCvtP.js\"",">",2,"modulepreload#/assets/_DgrVjbbj.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_DgrVjbbj.js\"",">"]},"_m":{"block":[2,"stylesheet#/assets/diff-view-D_kTcxOl.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/diff-view-D_kTcxOl.css\"",">",2,"stylesheet#/assets/icon-arrow-down-ptjlirxL.css",6,"<link",0," rel=\"stylesheet\" href=\"",1,"assets/icon-arrow-down-ptjlirxL.css\"",">"],"defer":[2,"/assets/diff-view-B7Akkn43.js",6,"<script",0," async type=\"module\" crossorigin src=\"",1,"assets/diff-view-B7Akkn43.js\"","></script>",2,"modulepreload#/assets/_BOllftHQ.js",6,"<link",0," rel=\"modulepreload\" crossorigin href=\"",1,"assets/_BOllftHQ.js\"",">"]}};