dsh-diff-approval 0.13.1 → 0.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/client.js CHANGED
@@ -11765,8 +11765,12 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
11765
11765
  /**
11766
11766
  * Map one referenced line range from `oldContent` coordinates to `newContent`
11767
11767
  * coordinates. Lines that survive (unchanged context) map to their new line
11768
- * numbers, and the surviving lines' min/max span is returned. When every line
11769
- * in the range was removed, returns `undefined` (the reference is expired).
11768
+ * numbers, and a line whose content changed in place (a delete replaced by an
11769
+ * add at the same logical position) maps to that position's new line — its text
11770
+ * changed, but the line is not gone. Only a line that is genuinely removed
11771
+ * (a delete with no replacement) is omitted. The surviving lines' min/max span
11772
+ * is returned; when every line in the range is gone, returns `undefined` (the
11773
+ * reference is expired).
11770
11774
  * @param oldContent - the file content the reference was made against.
11771
11775
  * @param newContent - the file content now.
11772
11776
  * @param start - first referenced line (1-based, inclusive).
@@ -11776,7 +11780,16 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
11776
11780
  function remapReferenceRange(oldContent, newContent, start, end) {
11777
11781
  const diff = computeWholeFileDiff(oldContent, newContent);
11778
11782
  const oldToNew = /* @__PURE__ */ new Map();
11779
- for (const row of diff.rows) if (row.oldLine !== void 0 && row.newLine !== void 0) oldToNew.set(row.oldLine, row.newLine);
11783
+ let pendingDeletes = [];
11784
+ for (const row of diff.rows) if (row.kind === "context") {
11785
+ if (row.oldLine !== void 0 && row.newLine !== void 0) oldToNew.set(row.oldLine, row.newLine);
11786
+ pendingDeletes = [];
11787
+ } else if (row.kind === "del" && row.oldLine !== void 0) pendingDeletes.push(row.oldLine);
11788
+ else if (row.kind === "add" && row.newLine !== void 0) {
11789
+ const replaced = pendingDeletes.shift();
11790
+ if (replaced !== void 0) oldToNew.set(replaced, row.newLine);
11791
+ pendingDeletes = [];
11792
+ }
11780
11793
  let min = Infinity;
11781
11794
  let max = -Infinity;
11782
11795
  for (let line = start; line <= end; line++) {
@@ -11794,8 +11807,9 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
11794
11807
  /**
11795
11808
  * Rewrite every `(referencePath:line)` / `(referencePath:start-end)` occurrence
11796
11809
  * in `text`, remapping each range from `oldContent` to `newContent`. A range
11797
- * whose lines all survived becomes the new range; one whose lines were all
11798
- * removed becomes `(referencePath:LINE_MISSING)`.
11810
+ * whose lines all survived (unchanged context or an in-place edit) becomes the
11811
+ * new range; one whose lines were all genuinely removed becomes
11812
+ * `(referencePath:LINE_MISSING)`.
11799
11813
  * @param text - the free text (composer draft, queued message) to rewrite.
11800
11814
  * @param referencePath - the file's reference path (workspace-relative or absolute).
11801
11815
  * @param oldContent - the file content the references were made against.
@@ -11922,7 +11936,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
11922
11936
  }
11923
11937
  //#endregion
11924
11938
  //#region \0dsh-css:/home/runner/work/dsh-diff-approval/dsh-diff-approval/src/client/PendingPanel.module.css.mjs
11925
- const css = ".F1KBNa_layer{box-sizing:border-box;flex:none;align-items:center;width:calc(100% + 4px);height:42px;margin:4px -2px;display:flex;position:relative}.F1KBNa_footerButtons{align-items:center;width:100%;display:flex}.F1KBNa_badge{box-sizing:border-box;width:100%;height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.F1KBNa_badge:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_badge[data-active]{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_badge:disabled{color:var(--dsw-alias-label-tertiary);cursor:default;background:0 0}.F1KBNa_badgeLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.F1KBNa_badgeCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;line-height:16px}.F1KBNa_layer.F1KBNa_rail{width:36px;height:36px;margin:8px 0 10px}.F1KBNa_rail .F1KBNa_badge{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;padding:0}.F1KBNa_rail .F1KBNa_badgeLabel{display:none}.F1KBNa_rail .F1KBNa_badgeCount{box-sizing:border-box;background:var(--dsw-alias-state-business-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-foreground);font-variant-numeric:tabular-nums;border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;line-height:18px;display:flex;position:absolute;top:-3px;right:-7px}.F1KBNa_fullscreenBackdrop{z-index:29;background:var(--dsw-specific-sidebar-fill);position:fixed;inset:0}.F1KBNa_panel{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:auto;max-width:none;box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:8px 8px 128px;overflow:hidden}.F1KBNa_header{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:10px 12px;display:flex}.F1KBNa_headerActions{align-items:center;gap:2px;display:flex}.F1KBNa_settingsPage{padding:8px 12px}.F1KBNa_settingsRow{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.F1KBNa_settingsRowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.F1KBNa_settingsRowTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.F1KBNa_settingsRowDesc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.F1KBNa_settingsSelector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.F1KBNa_settingsSelector:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_settingsSelectorChevron{flex:none}.F1KBNa_states{flex-direction:column;flex:1;min-height:0;padding:4px 12px 12px;display:flex;overflow-y:auto}.F1KBNa_split{flex:1;align-items:stretch;min-height:0;display:flex;position:relative}.F1KBNa_fileListFloat{z-index:40;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:12px;flex-direction:column;padding:6px 8px 10px;display:flex;position:absolute;overflow:hidden}.F1KBNa_fileList{box-sizing:border-box;border-right:1px solid var(--dsw-alias-border-l2);flex-direction:column;flex:none;width:240px;min-height:0;padding:4px 8px 12px;display:flex}.F1KBNa_listScroll{flex:1;min-height:0;overflow-y:auto}.F1KBNa_bulkActions{flex:none;gap:6px;padding-top:8px;display:flex}.F1KBNa_bulkActions .F1KBNa_action{text-align:center;flex:1}.F1KBNa_resizeHandle{cursor:col-resize;background:0 0;flex:none;width:5px;margin:0 -2px}.F1KBNa_resizeHandle:hover{background:var(--dsw-alias-border-l2)}.F1KBNa_detail{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.F1KBNa_detailEmpty{color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;margin:0;padding:24px;font-size:12px;line-height:18px;display:flex}.F1KBNa_confirmBackdrop{z-index:5;background:color-mix(in srgb, var(--dsw-alias-bg-base) 55%, transparent);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.F1KBNa_confirmCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);max-width:340px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.F1KBNa_confirmText{font:var(--dsw-font-caption);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0;line-height:1.5}.F1KBNa_confirmActions{justify-content:flex-end;gap:8px;display:flex}.F1KBNa_title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}.F1KBNa_note,.F1KBNa_readError,.F1KBNa_hint{color:var(--dsw-alias-label-tertiary);margin:4px 0;font-size:12px;line-height:18px}.F1KBNa_noteCentered{text-align:center;margin:auto}.F1KBNa_emptyState{flex-direction:column;align-items:center;gap:10px;margin:auto;display:flex}.F1KBNa_importButton{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;padding:5px 14px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_importButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_importButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_importNote{color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;font-size:12px;line-height:18px}.F1KBNa_readError{color:var(--dsw-alias-state-error-primary)}.F1KBNa_group{color:var(--dsw-alias-label-tertiary);margin:8px 0 4px;font-size:12px;font-weight:500;line-height:16px}.F1KBNa_rows{margin:0;padding:0;list-style:none}.F1KBNa_row{border:1px solid #0000;border-radius:10px;margin:2px 0}.F1KBNa_rowHead{width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.F1KBNa_rowHead:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_rowHead[data-selected]{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_rowPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-markdown-code-block);overflow:hidden}.F1KBNa_kindTag{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_kindHint{color:var(--dsw-alias-label-tertiary);flex:none;font-size:12px;line-height:16px}.F1KBNa_divergedHint,.F1KBNa_missingHint{border-bottom:1px solid var(--dsw-alias-border-l2);margin:0;padding:6px 8px;font-size:12px;line-height:18px}.F1KBNa_missing{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-label,var(--dsw-alias-state-warn-primary));white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_rowFailed{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary);white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_actionError{border-bottom:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;margin:0;padding:6px 8px;font-size:12px;line-height:18px}.F1KBNa_missingHint{color:var(--dsw-alias-state-warn-label,var(--dsw-alias-state-warn-primary))}.F1KBNa_rowMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;gap:6px;margin-left:auto;font-size:12px;line-height:16px;display:inline-flex}.F1KBNa_addCount{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 60%, var(--dsw-alias-label-primary))}.F1KBNa_delCount{color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 60%, var(--dsw-alias-label-primary))}.F1KBNa_diff{background:var(--dsw-alias-markdown-code-block);flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffHeader{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:6px 8px;display:flex}.F1KBNa_diffPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block);flex:1;font-size:12px;line-height:18px;overflow:hidden}.F1KBNa_diffActions{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:6px 8px;display:flex}.F1KBNa_diffStats{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:16px}.F1KBNa_flexSpacer{flex:1}.F1KBNa_action{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_action:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_action:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_actionPrimary{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50)}.F1KBNa_actionPrimary:hover:not(:disabled){background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 85%, var(--dsw-static-neutral-bluish-1000))}.F1KBNa_actionPrimary:disabled{background:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50);opacity:.55}.F1KBNa_actionQuietDisabled:disabled{cursor:pointer;color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l1);background:0 0}.F1KBNa_actionPrimary.F1KBNa_actionQuietDisabled:disabled{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50);opacity:1}.F1KBNa_iconAction{justify-content:center;align-items:center;min-height:25px;padding:4px 6px;display:inline-flex}.F1KBNa_close{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_expand{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_expand:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_expandExpanded svg{transform:rotate(180deg)}.F1KBNa_diffBodyWrap{flex:1;min-height:0;display:flex;position:relative}.F1KBNa_diffBody{min-width:0;font:var(--dsw-font-markdown-code-block);-webkit-text-size-adjust:100%;text-size-adjust:100%;cursor:text;outline:none;flex:1;padding:0;position:relative;overflow:auto}.F1KBNa_diffBody::-webkit-scrollbar,.F1KBNa_diffBody::-webkit-scrollbar-track,.F1KBNa_diffBody::-webkit-scrollbar-thumb{cursor:default}.F1KBNa_blockActions{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);box-shadow:var(--dsw-shadow-lv1);z-index:2;border-radius:10px;align-items:center;gap:9px;padding:5px;display:flex;position:absolute;right:8px}.F1KBNa_blockPosition{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:1px;margin-left:7px;font-size:12px;line-height:16px}.F1KBNa_searchBar{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);box-shadow:var(--dsw-shadow-lv1);border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:8px;right:8px}.F1KBNa_searchInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:150px;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;padding:3px 8px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_searchInput:focus{border-color:var(--dsw-alias-state-business-primary)}.F1KBNa_searchCount{text-align:center;min-width:34px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:16px}.F1KBNa_diffBody [data-diff-search=hit]{background-image:linear-gradient(#facc1529,#facc1529)}.F1KBNa_diffBody [data-diff-search=current]{background-image:linear-gradient(#facc1552,#facc1552)}.F1KBNa_blockFlash{z-index:1;box-sizing:border-box;border:2px solid var(--dsw-alias-state-business-primary);pointer-events:none;border-radius:4px;animation:1s ease-out forwards F1KBNa_diffFlash;position:absolute;left:0;right:0}@keyframes F1KBNa_diffFlash{0%{opacity:1}to{opacity:0}}.F1KBNa_overviewRuler{pointer-events:none;opacity:.5;width:4px;position:absolute;top:0;bottom:0;right:0}.F1KBNa_overviewMarker{border-radius:2px;width:100%;min-height:2px;position:absolute;right:0}.F1KBNa_markerDel{background-color:var(--dsw-alias-state-error-primary)}.F1KBNa_markerAdd{background-color:var(--dsw-alias-state-success-primary)}.F1KBNa_lines{border-spacing:0;width:max-content;min-width:100%;display:table}.F1KBNa_line{height:22px;line-height:22px;display:table-row}.F1KBNa_vSpacer{display:table-row}.F1KBNa_gutter{box-sizing:border-box;text-align:right;width:44px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;user-select:none;cursor:default;padding-right:10px;display:table-cell}.F1KBNa_code{white-space:pre;display:table-cell}.F1KBNa_context{color:var(--dsw-alias-label-primary)}.F1KBNa_del{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_add{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}.F1KBNa_statusBar{box-sizing:border-box;border-top:1px solid var(--dsw-alias-border-l2);height:34px;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-markdown-code-block);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:8px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.F1KBNa_statusAction{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);white-space:nowrap;cursor:pointer;background:0 0;border-radius:8px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_statusAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_langSelect{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;flex:none;align-items:center;gap:4px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px;display:inline-flex}.F1KBNa_langSelect:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_langLabel{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.F1KBNa_notice{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);max-width:360px;box-shadow:var(--dsw-shadow-lv3);border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex;position:fixed;bottom:24px;right:24px}.F1KBNa_noticeText{font:var(--dsw-font-caption);color:var(--dsw-alias-label-primary);flex:1;margin:0;line-height:1.45}.F1KBNa_noticeButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);font:var(--dsw-font-caption);cursor:pointer;border-radius:6px;flex:none;padding:4px 10px}.F1KBNa_noticeButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_wrap .F1KBNa_line{height:auto;min-height:22px}.F1KBNa_subline{white-space:pre;height:22px;line-height:22px;display:block;overflow:hidden}.F1KBNa_wrapActive{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50)}.F1KBNa_wrapActive:hover{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 85%, var(--dsw-static-neutral-bluish-1000))}.F1KBNa_splitRoot{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.F1KBNa_diffBodySplit{flex:1;min-height:0;overflow-x:hidden}.F1KBNa_splitCols{width:100%;min-width:0;display:flex}.F1KBNa_splitCol{box-sizing:border-box;flex:1 1 0;min-width:0;overflow:hidden}.F1KBNa_splitDivider{background:var(--dsw-alias-border-l2);flex:0 0 1px}.F1KBNa_splitCol .F1KBNa_gutter,.F1KBNa_splitCol .F1KBNa_code{vertical-align:top}.F1KBNa_splitHScrollRow{border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;width:100%;min-width:0;display:flex}.F1KBNa_splitHScroll{flex:1 1 0;min-width:0;height:15px;overflow:auto hidden}.F1KBNa_splitHScroll::-webkit-scrollbar{height:15px}.F1KBNa_splitHScroll::-webkit-scrollbar-track{cursor:default}.F1KBNa_splitHScroll::-webkit-scrollbar-thumb{cursor:default}.F1KBNa_splitHScrollFill{height:1px}.F1KBNa_splitLdel{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_splitLadd{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}.F1KBNa_splitRdel{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_splitRadd{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}";
11939
+ const css = ".F1KBNa_layer{box-sizing:border-box;flex:none;align-items:center;width:calc(100% + 4px);height:42px;margin:4px -2px;display:flex;position:relative}.F1KBNa_footerButtons{align-items:center;width:100%;display:flex}.F1KBNa_badge{box-sizing:border-box;width:100%;height:42px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:8px;padding:0 10px 0 8px;font-family:inherit;font-size:14px;line-height:22px;display:flex;overflow:hidden}.F1KBNa_badge:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_badge[data-active]{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_badge:disabled{color:var(--dsw-alias-label-tertiary);cursor:default;background:0 0}.F1KBNa_badgeLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.F1KBNa_badgeCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;margin-left:auto;font-size:12px;line-height:16px}.F1KBNa_layer.F1KBNa_rail{width:36px;height:36px;margin:8px 0 10px}.F1KBNa_rail .F1KBNa_badge{border-radius:50%;justify-content:center;gap:0;width:36px;height:36px;padding:0}.F1KBNa_rail .F1KBNa_badgeLabel{display:none}.F1KBNa_rail .F1KBNa_badgeCount{box-sizing:border-box;background:var(--dsw-alias-state-business-primary);min-width:18px;height:18px;color:var(--dsw-alias-label-primary-foreground);font-variant-numeric:tabular-nums;border-radius:9px;justify-content:center;align-items:center;padding:0 4px;font-size:11px;line-height:18px;display:flex;position:absolute;top:-3px;right:-7px}.F1KBNa_fullscreenBackdrop{z-index:29;background:var(--dsw-specific-sidebar-fill);position:fixed;inset:0}.F1KBNa_panel{z-index:30;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:auto;max-width:none;box-shadow:var(--dsw-shadow-lv2);--dsh-scrollbar-thumb:var(--dsw-alias-scrollbar-bg-l2);--dsh-scrollbar-thumb-hover:var(--dsw-alias-scrollbar-hover-l2);border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:8px 8px 128px;overflow:hidden}.F1KBNa_header{box-sizing:border-box;border-bottom:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;justify-content:space-between;align-items:center;min-height:44px;padding:10px 12px;display:flex}.F1KBNa_headerActions{align-items:center;gap:2px;display:flex}.F1KBNa_settingsPage{padding:8px 12px}.F1KBNa_settingsRow{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:16px 0;display:flex}.F1KBNa_settingsRowText{flex-direction:column;flex:1;gap:4px;min-width:0;padding-right:48px;display:flex}.F1KBNa_settingsRowTitle{color:var(--dsw-alias-label-primary);font-size:14px;font-weight:400;line-height:22px}.F1KBNa_settingsRowDesc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.F1KBNa_settingsSelector{background:var(--dsw-alias-bg-module-platform);height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:12px;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.F1KBNa_settingsSelector:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_settingsSelectorChevron{flex:none}.F1KBNa_states{flex-direction:column;flex:1;min-height:0;padding:4px 12px 12px;display:flex;overflow-y:auto}.F1KBNa_split{flex:1;align-items:stretch;min-height:0;display:flex;position:relative}.F1KBNa_fileListFloat{z-index:40;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:12px;flex-direction:column;padding:6px 8px 10px;display:flex;position:absolute;overflow:hidden}.F1KBNa_fileList{box-sizing:border-box;border-right:1px solid var(--dsw-alias-border-l2);flex-direction:column;flex:none;width:240px;min-height:0;padding:4px 8px 12px;display:flex}.F1KBNa_listScroll{flex:1;min-height:0;overflow-y:auto}.F1KBNa_bulkActions{flex:none;gap:6px;padding-top:8px;display:flex}.F1KBNa_bulkActions .F1KBNa_action{text-align:center;flex:1}.F1KBNa_resizeHandle{cursor:col-resize;background:0 0;flex:none;width:5px;margin:0 -2px}.F1KBNa_resizeHandle:hover{background:var(--dsw-alias-border-l2)}.F1KBNa_detail{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.F1KBNa_detailEmpty{color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;margin:0;padding:24px;font-size:12px;line-height:18px;display:flex}.F1KBNa_confirmBackdrop{z-index:5;background:color-mix(in srgb, var(--dsw-alias-bg-base) 55%, transparent);justify-content:center;align-items:center;padding:24px;display:flex;position:absolute;inset:0}.F1KBNa_confirmCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);max-width:340px;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:12px;padding:16px;display:flex}.F1KBNa_confirmText{font:var(--dsw-font-caption);color:var(--dsw-alias-label-primary);overflow-wrap:anywhere;margin:0;line-height:1.5}.F1KBNa_confirmActions{justify-content:flex-end;gap:8px;display:flex}.F1KBNa_title{color:var(--dsw-alias-label-primary);font-size:13px;font-weight:500;line-height:20px}.F1KBNa_note,.F1KBNa_readError,.F1KBNa_hint{color:var(--dsw-alias-label-tertiary);margin:4px 0;font-size:12px;line-height:18px}.F1KBNa_noteCentered{text-align:center;margin:auto}.F1KBNa_emptyState{flex-direction:column;align-items:center;gap:10px;margin:auto;display:flex}.F1KBNa_importButton{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;padding:5px 14px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_importButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_importButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_importNote{color:var(--dsw-alias-label-tertiary);text-align:center;margin:0;font-size:12px;line-height:18px}.F1KBNa_readError{color:var(--dsw-alias-state-error-primary)}.F1KBNa_group{color:var(--dsw-alias-label-tertiary);margin:8px 0 4px;font-size:12px;font-weight:500;line-height:16px}.F1KBNa_rows{margin:0;padding:0;list-style:none}.F1KBNa_row{border:1px solid #0000;border-radius:10px;margin:2px 0}.F1KBNa_rowHead{width:100%;color:var(--dsw-alias-label-primary);font:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;align-items:baseline;gap:8px;padding:6px 8px;display:flex}.F1KBNa_rowHead:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_rowHead[data-selected]{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_rowPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-markdown-code-block);overflow:hidden}.F1KBNa_kindTag{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-tertiary);white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_kindHint{color:var(--dsw-alias-label-tertiary);flex:none;font-size:12px;line-height:16px}.F1KBNa_divergedHint,.F1KBNa_missingHint{border-bottom:1px solid var(--dsw-alias-border-l2);margin:0;padding:6px 8px;font-size:12px;line-height:18px}.F1KBNa_missing{border:1px solid var(--dsw-alias-state-warn-primary);color:var(--dsw-alias-state-warn-label,var(--dsw-alias-state-warn-primary));white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_rowFailed{border:1px solid var(--dsw-alias-state-error-primary);color:var(--dsw-alias-state-error-primary);white-space:nowrap;border-radius:6px;flex:none;padding:1px 6px;font-size:11px;line-height:14px}.F1KBNa_actionError{border-bottom:1px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-state-error-primary);overflow-wrap:anywhere;margin:0;padding:6px 8px;font-size:12px;line-height:18px}.F1KBNa_missingHint{color:var(--dsw-alias-state-warn-label,var(--dsw-alias-state-warn-primary))}.F1KBNa_rowMeta{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;flex:none;gap:6px;margin-left:auto;font-size:12px;line-height:16px;display:inline-flex}.F1KBNa_addCount{color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 60%, var(--dsw-alias-label-primary))}.F1KBNa_delCount{color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 60%, var(--dsw-alias-label-primary))}.F1KBNa_diff{background:var(--dsw-alias-markdown-code-block);flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffHeader{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:6px 8px;display:flex}.F1KBNa_diffPath{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block);flex:1;font-size:12px;line-height:18px;overflow:hidden}.F1KBNa_diffActions{border-bottom:1px solid var(--dsw-alias-border-l2);align-items:center;gap:8px;padding:6px 8px;display:flex}.F1KBNa_diffStats{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;font-size:12px;line-height:16px}.F1KBNa_flexSpacer{flex:1}.F1KBNa_action{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_action:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_action:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_actionPrimary{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50)}.F1KBNa_actionPrimary:hover:not(:disabled){background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 85%, var(--dsw-static-neutral-bluish-1000))}.F1KBNa_actionPrimary:disabled{background:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50);opacity:.55}.F1KBNa_actionQuietDisabled:disabled{cursor:pointer;color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l1);background:0 0}.F1KBNa_actionPrimary.F1KBNa_actionQuietDisabled:disabled{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50);opacity:1}.F1KBNa_iconAction{justify-content:center;align-items:center;min-height:25px;padding:4px 6px;display:inline-flex}.F1KBNa_close{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_close:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_expand{cursor:pointer;width:28px;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_expand:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_expandExpanded svg{transform:rotate(180deg)}.F1KBNa_diffBodyWrap{flex:1;min-height:0;display:flex;position:relative}.F1KBNa_diffBody{min-width:0;font:var(--dsw-font-markdown-code-block);-webkit-text-size-adjust:100%;text-size-adjust:100%;cursor:text;outline:none;flex:1;padding:0;position:relative;overflow:auto}.F1KBNa_diffBody::-webkit-scrollbar,.F1KBNa_diffBody::-webkit-scrollbar-track,.F1KBNa_diffBody::-webkit-scrollbar-thumb{cursor:default}.F1KBNa_blockActions{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);box-shadow:var(--dsw-shadow-lv1);z-index:2;border-radius:10px;align-items:center;gap:9px;padding:5px;display:flex;position:absolute;right:8px}.F1KBNa_blockPosition{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:1px;margin-left:7px;font-size:12px;line-height:16px}.F1KBNa_searchBar{z-index:3;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-markdown-code-block);box-shadow:var(--dsw-shadow-lv1);border-radius:10px;align-items:center;gap:4px;padding:4px;display:flex;position:absolute;top:8px;right:8px}.F1KBNa_searchInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:150px;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;padding:3px 8px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_searchInput:focus{border-color:var(--dsw-alias-state-business-primary)}.F1KBNa_searchCount{text-align:center;min-width:34px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px;line-height:16px}.F1KBNa_diffBody [data-diff-search=hit]{background-image:linear-gradient(#facc1529,#facc1529)}.F1KBNa_diffBody [data-diff-search=current]{background-image:linear-gradient(#facc1552,#facc1552)}.F1KBNa_blockFlash{z-index:1;box-sizing:border-box;border:2px solid var(--dsw-alias-state-business-primary);pointer-events:none;border-radius:4px;animation:1s ease-out forwards F1KBNa_diffFlash;position:absolute;left:0;right:0}@keyframes F1KBNa_diffFlash{0%{opacity:1}to{opacity:0}}.F1KBNa_overviewRuler{pointer-events:none;opacity:.5;width:4px;position:absolute;top:0;bottom:0;right:0}.F1KBNa_overviewMarker{border-radius:2px;width:100%;min-height:2px;position:absolute;right:0}.F1KBNa_markerDel{background-color:var(--dsw-alias-state-error-primary)}.F1KBNa_markerAdd{background-color:var(--dsw-alias-state-success-primary)}.F1KBNa_lines{border-spacing:0;width:max-content;min-width:100%;display:table}.F1KBNa_line{-webkit-user-select:none;user-select:none;height:22px;line-height:22px;display:table-row}.F1KBNa_vSpacer{display:table-row}.F1KBNa_gutter{box-sizing:border-box;text-align:right;width:44px;color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;cursor:default;padding-right:10px;display:table-cell}.F1KBNa_code{white-space:pre;-webkit-user-select:text;user-select:text;display:table-cell}.F1KBNa_context{color:var(--dsw-alias-label-primary)}.F1KBNa_del{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_add{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}.F1KBNa_statusBar{box-sizing:border-box;border-top:1px solid var(--dsw-alias-border-l2);height:34px;color:var(--dsw-alias-label-tertiary);font-family:var(--dsw-font-markdown-code-block);font-variant-numeric:tabular-nums;flex:none;align-items:center;gap:8px;padding:0 8px;font-size:12px;line-height:18px;display:flex}.F1KBNa_statusAction{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);white-space:nowrap;cursor:pointer;background:0 0;border-radius:8px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_statusAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_langSelect{border:1px solid var(--dsw-alias-border-l1);color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;flex:none;align-items:center;gap:4px;padding:3px 12px;font-family:inherit;font-size:12px;line-height:18px;display:inline-flex}.F1KBNa_langSelect:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_langLabel{text-overflow:ellipsis;white-space:nowrap;max-width:140px;overflow:hidden}.F1KBNa_notice{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);max-width:360px;box-shadow:var(--dsw-shadow-lv3);border-radius:10px;align-items:flex-start;gap:12px;padding:12px 14px;display:flex;position:fixed;bottom:24px;right:24px}.F1KBNa_noticeText{font:var(--dsw-font-caption);color:var(--dsw-alias-label-primary);flex:1;margin:0;line-height:1.45}.F1KBNa_noticeButton{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);font:var(--dsw-font-caption);cursor:pointer;border-radius:6px;flex:none;padding:4px 10px}.F1KBNa_noticeButton:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_wrap .F1KBNa_line{height:auto;min-height:22px}.F1KBNa_subline{white-space:pre;height:22px;line-height:22px;display:block;overflow:hidden}.F1KBNa_wrapActive{background:var(--dsw-alias-state-business-primary);border-color:var(--dsw-alias-state-business-primary);color:var(--dsw-static-neutral-bluish-50)}.F1KBNa_wrapActive:hover{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 85%, var(--dsw-static-neutral-bluish-1000))}.F1KBNa_splitRoot{flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.F1KBNa_diffBodySplit{flex:1;min-height:0;overflow-x:hidden}.F1KBNa_splitCols{width:100%;min-width:0;display:flex}.F1KBNa_splitCol{box-sizing:border-box;flex:1 1 0;min-width:0;overflow:hidden}.F1KBNa_splitDivider{background:var(--dsw-alias-border-l2);flex:0 0 1px}.F1KBNa_splitCol .F1KBNa_gutter,.F1KBNa_splitCol .F1KBNa_code{vertical-align:top}.F1KBNa_splitHScrollRow{border-top:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);flex:none;width:100%;min-width:0;display:flex}.F1KBNa_splitHScroll{flex:1 1 0;min-width:0;height:15px;overflow:auto hidden}.F1KBNa_splitHScroll::-webkit-scrollbar{height:15px}.F1KBNa_splitHScroll::-webkit-scrollbar-track{cursor:default}.F1KBNa_splitHScroll::-webkit-scrollbar-thumb{cursor:default}.F1KBNa_splitHScrollFill{height:1px}.F1KBNa_splitLdel{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_splitLadd{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}.F1KBNa_splitRdel{background-color:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.F1KBNa_splitRadd{background-color:color-mix(in srgb, var(--dsw-alias-state-success-primary) 10%, transparent)}";
11926
11940
  const tagId = "dsh-diff-approval/PendingPanel.module.css";
11927
11941
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
11928
11942
  const tag = document.createElement("style");
@@ -11932,115 +11946,115 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
11932
11946
  document.head.appendChild(tag);
11933
11947
  }
11934
11948
  var PendingPanel_module_css_default = {
11935
- "title": "F1KBNa_title",
11936
- "diffBodyWrap": "F1KBNa_diffBodyWrap",
11937
- "settingsSelector": "F1KBNa_settingsSelector",
11938
- "confirmBackdrop": "F1KBNa_confirmBackdrop",
11939
- "noteCentered": "F1KBNa_noteCentered",
11940
- "actionError": "F1KBNa_actionError",
11941
- "rows": "F1KBNa_rows",
11942
- "diffActions": "F1KBNa_diffActions",
11943
- "diffBody": "F1KBNa_diffBody",
11944
- "note": "F1KBNa_note",
11945
- "diffFlash": "F1KBNa_diffFlash",
11946
- "overviewRuler": "F1KBNa_overviewRuler",
11947
- "iconAction": "F1KBNa_iconAction",
11948
- "context": "F1KBNa_context",
11949
- "panel": "F1KBNa_panel",
11950
- "langSelect": "F1KBNa_langSelect",
11951
- "actionQuietDisabled": "F1KBNa_actionQuietDisabled",
11952
- "wrapActive": "F1KBNa_wrapActive",
11953
- "settingsRowDesc": "F1KBNa_settingsRowDesc",
11954
- "confirmActions": "F1KBNa_confirmActions",
11955
- "actionPrimary": "F1KBNa_actionPrimary",
11956
- "rowFailed": "F1KBNa_rowFailed",
11957
- "expand": "F1KBNa_expand",
11958
- "blockPosition": "F1KBNa_blockPosition",
11959
- "vSpacer": "F1KBNa_vSpacer",
11960
- "rowPath": "F1KBNa_rowPath",
11961
- "wrap": "F1KBNa_wrap",
11962
- "markerAdd": "F1KBNa_markerAdd",
11963
- "splitHScroll": "F1KBNa_splitHScroll",
11949
+ "searchBar": "F1KBNa_searchBar",
11964
11950
  "delCount": "F1KBNa_delCount",
11951
+ "gutter": "F1KBNa_gutter",
11965
11952
  "subline": "F1KBNa_subline",
11966
- "detail": "F1KBNa_detail",
11967
- "footerButtons": "F1KBNa_footerButtons",
11968
- "splitRoot": "F1KBNa_splitRoot",
11969
- "splitCol": "F1KBNa_splitCol",
11953
+ "noteCentered": "F1KBNa_noteCentered",
11954
+ "splitDivider": "F1KBNa_splitDivider",
11970
11955
  "splitHScrollFill": "F1KBNa_splitHScrollFill",
11956
+ "action": "F1KBNa_action",
11957
+ "noticeText": "F1KBNa_noticeText",
11958
+ "header": "F1KBNa_header",
11959
+ "settingsRowTitle": "F1KBNa_settingsRowTitle",
11960
+ "confirmCard": "F1KBNa_confirmCard",
11961
+ "markerDel": "F1KBNa_markerDel",
11962
+ "wrapActive": "F1KBNa_wrapActive",
11963
+ "listScroll": "F1KBNa_listScroll",
11964
+ "hint": "F1KBNa_hint",
11965
+ "diffPath": "F1KBNa_diffPath",
11971
11966
  "splitLadd": "F1KBNa_splitLadd",
11972
- "code": "F1KBNa_code",
11973
- "splitRadd": "F1KBNa_splitRadd",
11974
- "settingsRowText": "F1KBNa_settingsRowText",
11967
+ "blockActions": "F1KBNa_blockActions",
11968
+ "missingHint": "F1KBNa_missingHint",
11975
11969
  "split": "F1KBNa_split",
11976
- "action": "F1KBNa_action",
11977
- "kindHint": "F1KBNa_kindHint",
11978
- "layer": "F1KBNa_layer",
11979
- "badgeCount": "F1KBNa_badgeCount",
11980
- "diffHeader": "F1KBNa_diffHeader",
11981
- "diffStats": "F1KBNa_diffStats",
11982
- "addCount": "F1KBNa_addCount",
11970
+ "rowHead": "F1KBNa_rowHead",
11971
+ "langLabel": "F1KBNa_langLabel",
11972
+ "note": "F1KBNa_note",
11973
+ "splitRadd": "F1KBNa_splitRadd",
11983
11974
  "confirmText": "F1KBNa_confirmText",
11984
- "settingsPage": "F1KBNa_settingsPage",
11985
- "searchBar": "F1KBNa_searchBar",
11975
+ "expandExpanded": "F1KBNa_expandExpanded",
11976
+ "divergedHint": "F1KBNa_divergedHint",
11977
+ "diffBody": "F1KBNa_diffBody",
11978
+ "missing": "F1KBNa_missing",
11979
+ "markerAdd": "F1KBNa_markerAdd",
11986
11980
  "del": "F1KBNa_del",
11987
- "statusAction": "F1KBNa_statusAction",
11988
- "splitHScrollRow": "F1KBNa_splitHScrollRow",
11989
- "splitLdel": "F1KBNa_splitLdel",
11990
- "flexSpacer": "F1KBNa_flexSpacer",
11991
- "fileList": "F1KBNa_fileList",
11992
- "notice": "F1KBNa_notice",
11993
- "bulkActions": "F1KBNa_bulkActions",
11994
- "missingHint": "F1KBNa_missingHint",
11981
+ "add": "F1KBNa_add",
11982
+ "detailEmpty": "F1KBNa_detailEmpty",
11983
+ "badge": "F1KBNa_badge",
11984
+ "title": "F1KBNa_title",
11985
+ "blockPosition": "F1KBNa_blockPosition",
11986
+ "badgeLabel": "F1KBNa_badgeLabel",
11987
+ "headerActions": "F1KBNa_headerActions",
11988
+ "panel": "F1KBNa_panel",
11995
11989
  "group": "F1KBNa_group",
11996
- "markerDel": "F1KBNa_markerDel",
11990
+ "blockFlash": "F1KBNa_blockFlash",
11991
+ "settingsRow": "F1KBNa_settingsRow",
11992
+ "importNote": "F1KBNa_importNote",
11993
+ "diffFlash": "F1KBNa_diffFlash",
11994
+ "notice": "F1KBNa_notice",
11995
+ "rowPath": "F1KBNa_rowPath",
11997
11996
  "readError": "F1KBNa_readError",
11998
- "diffPath": "F1KBNa_diffPath",
11997
+ "settingsPage": "F1KBNa_settingsPage",
11998
+ "settingsRowText": "F1KBNa_settingsRowText",
11999
+ "fileListFloat": "F1KBNa_fileListFloat",
12000
+ "bulkActions": "F1KBNa_bulkActions",
12001
+ "kindTag": "F1KBNa_kindTag",
12002
+ "rowFailed": "F1KBNa_rowFailed",
12003
+ "layer": "F1KBNa_layer",
12004
+ "states": "F1KBNa_states",
12005
+ "diffBodyWrap": "F1KBNa_diffBodyWrap",
12006
+ "emptyState": "F1KBNa_emptyState",
12007
+ "flexSpacer": "F1KBNa_flexSpacer",
12008
+ "splitLdel": "F1KBNa_splitLdel",
12009
+ "diffActions": "F1KBNa_diffActions",
11999
12010
  "settingsSelectorChevron": "F1KBNa_settingsSelectorChevron",
12011
+ "detail": "F1KBNa_detail",
12012
+ "actionError": "F1KBNa_actionError",
12013
+ "actionQuietDisabled": "F1KBNa_actionQuietDisabled",
12014
+ "searchInput": "F1KBNa_searchInput",
12015
+ "searchCount": "F1KBNa_searchCount",
12016
+ "vSpacer": "F1KBNa_vSpacer",
12017
+ "code": "F1KBNa_code",
12018
+ "iconAction": "F1KBNa_iconAction",
12019
+ "kindHint": "F1KBNa_kindHint",
12020
+ "splitHScroll": "F1KBNa_splitHScroll",
12000
12021
  "overviewMarker": "F1KBNa_overviewMarker",
12001
- "add": "F1KBNa_add",
12002
- "statusBar": "F1KBNa_statusBar",
12003
- "emptyState": "F1KBNa_emptyState",
12004
- "hint": "F1KBNa_hint",
12005
- "expandExpanded": "F1KBNa_expandExpanded",
12022
+ "rail": "F1KBNa_rail",
12023
+ "wrap": "F1KBNa_wrap",
12024
+ "splitRdel": "F1KBNa_splitRdel",
12006
12025
  "close": "F1KBNa_close",
12007
- "searchInput": "F1KBNa_searchInput",
12008
- "lines": "F1KBNa_lines",
12009
- "badgeLabel": "F1KBNa_badgeLabel",
12010
- "noticeText": "F1KBNa_noticeText",
12026
+ "rows": "F1KBNa_rows",
12011
12027
  "resizeHandle": "F1KBNa_resizeHandle",
12012
- "blockActions": "F1KBNa_blockActions",
12013
- "langLabel": "F1KBNa_langLabel",
12014
- "noticeButton": "F1KBNa_noticeButton",
12015
- "confirmCard": "F1KBNa_confirmCard",
12016
- "headerActions": "F1KBNa_headerActions",
12017
- "settingsRow": "F1KBNa_settingsRow",
12018
12028
  "importButton": "F1KBNa_importButton",
12019
- "rowHead": "F1KBNa_rowHead",
12020
- "searchCount": "F1KBNa_searchCount",
12021
- "diff": "F1KBNa_diff",
12029
+ "fileList": "F1KBNa_fileList",
12030
+ "expand": "F1KBNa_expand",
12031
+ "langSelect": "F1KBNa_langSelect",
12032
+ "addCount": "F1KBNa_addCount",
12033
+ "splitHScrollRow": "F1KBNa_splitHScrollRow",
12034
+ "fullscreenBackdrop": "F1KBNa_fullscreenBackdrop",
12035
+ "splitCol": "F1KBNa_splitCol",
12036
+ "overviewRuler": "F1KBNa_overviewRuler",
12037
+ "settingsSelector": "F1KBNa_settingsSelector",
12038
+ "badgeCount": "F1KBNa_badgeCount",
12039
+ "confirmActions": "F1KBNa_confirmActions",
12022
12040
  "row": "F1KBNa_row",
12023
- "line": "F1KBNa_line",
12024
- "gutter": "F1KBNa_gutter",
12025
- "splitCols": "F1KBNa_splitCols",
12026
- "importNote": "F1KBNa_importNote",
12027
- "splitDivider": "F1KBNa_splitDivider",
12028
- "listScroll": "F1KBNa_listScroll",
12029
- "rail": "F1KBNa_rail",
12030
- "missing": "F1KBNa_missing",
12031
12041
  "rowMeta": "F1KBNa_rowMeta",
12032
- "fileListFloat": "F1KBNa_fileListFloat",
12033
- "badge": "F1KBNa_badge",
12034
- "divergedHint": "F1KBNa_divergedHint",
12042
+ "settingsRowDesc": "F1KBNa_settingsRowDesc",
12043
+ "diffStats": "F1KBNa_diffStats",
12044
+ "splitRoot": "F1KBNa_splitRoot",
12045
+ "actionPrimary": "F1KBNa_actionPrimary",
12046
+ "lines": "F1KBNa_lines",
12047
+ "context": "F1KBNa_context",
12048
+ "footerButtons": "F1KBNa_footerButtons",
12049
+ "confirmBackdrop": "F1KBNa_confirmBackdrop",
12035
12050
  "diffBodySplit": "F1KBNa_diffBodySplit",
12036
- "fullscreenBackdrop": "F1KBNa_fullscreenBackdrop",
12037
- "header": "F1KBNa_header",
12038
- "kindTag": "F1KBNa_kindTag",
12039
- "settingsRowTitle": "F1KBNa_settingsRowTitle",
12040
- "blockFlash": "F1KBNa_blockFlash",
12041
- "detailEmpty": "F1KBNa_detailEmpty",
12042
- "states": "F1KBNa_states",
12043
- "splitRdel": "F1KBNa_splitRdel"
12051
+ "diff": "F1KBNa_diff",
12052
+ "diffHeader": "F1KBNa_diffHeader",
12053
+ "splitCols": "F1KBNa_splitCols",
12054
+ "line": "F1KBNa_line",
12055
+ "statusAction": "F1KBNa_statusAction",
12056
+ "statusBar": "F1KBNa_statusBar",
12057
+ "noticeButton": "F1KBNa_noticeButton"
12044
12058
  };
12045
12059
  //#endregion
12046
12060
  //#region lib/types/client/PendingPanel.js
@@ -12984,10 +12998,19 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
12984
12998
  side: startInfo.side
12985
12999
  };
12986
13000
  }
12987
- /** Character offset of a selection boundary within its line's code text. */
13001
+ /** The code cell in `node`'s visual row, a sibling of its gutter cells. A
13002
+ * line-number boundary must measure against the line's own selectable text even
13003
+ * though the gutter text is not inside the code cell; this resolves the cell
13004
+ * for both the unified row and a split column row. */
13005
+ function codeCellAt(node) {
13006
+ return ((node instanceof Element ? node : node.parentElement)?.closest("[data-diff-row], [data-diff-split-row]"))?.querySelector("[data-diff-code]") ?? null;
13007
+ }
13008
+ /** Character offset of a selection boundary within its line's code text. A
13009
+ * boundary outside the code cell (the line-number gutter) sits at the line's
13010
+ * start — offset 0, never the line's end — so it never skips the line. */
12988
13011
  function lineOffsetAt(node, offset) {
12989
- const code = (node instanceof Element ? node : node.parentElement)?.closest("[data-diff-code]");
12990
- if (code === null || code === void 0) return 0;
13012
+ const code = codeCellAt(node);
13013
+ if (code === null || !code.contains(node)) return 0;
12991
13014
  let before = 0;
12992
13015
  const walker = document.createTreeWalker(code, NodeFilter.SHOW_TEXT);
12993
13016
  let current = walker.nextNode();
@@ -13010,9 +13033,10 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
13010
13033
  }
13011
13034
  return before;
13012
13035
  }
13013
- /** Length of the code text on the line holding a node. */
13036
+ /** Length of the code text on the line holding a node (the line's selectable
13037
+ * text, even when `node` is in a gutter cell of the same row). */
13014
13038
  function lineLengthAt(node) {
13015
- return ((node instanceof Element ? node : node.parentElement)?.closest("[data-diff-code]"))?.textContent?.length ?? 0;
13039
+ return codeCellAt(node)?.textContent?.length ?? 0;
13016
13040
  }
13017
13041
  /**
13018
13042
  * Derive the selected diff-row range from a native text selection. A
@@ -14177,7 +14201,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
14177
14201
  document.removeEventListener("pointerdown", onPointerDown, true);
14178
14202
  };
14179
14203
  }, [open]);
14180
- const files = snapshot.files.filter((file) => file.sessionId === current).sort((left, right) => compareFileNames(left.path, right.path));
14204
+ const files = snapshot.files.filter((file) => current !== void 0 && (file.sessionIds ?? [file.sessionId]).includes(current)).sort((left, right) => compareFileNames(left.path, right.path));
14181
14205
  /** Per-file keep/revert failures, surfaced inline on the row and detail. */
14182
14206
  const failed = snapshot.failed ?? EMPTY_FAILED_MAP;
14183
14207
  const failedInitialized = (0, react.useRef)(false);
@@ -15004,13 +15028,14 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
15004
15028
  /** Narrow one pending entry from the wire; malformed rows are skipped. */
15005
15029
  function pendingFileOf(value) {
15006
15030
  if (typeof value !== "object" || value === null || Array.isArray(value)) return void 0;
15007
- const { id, sessionId, path, kind, oldText, newText, updatedAt, missing, diverged } = value;
15031
+ const { id, sessionId, sessionIds, path, kind, oldText, newText, updatedAt, missing, diverged } = value;
15008
15032
  if (typeof id !== "string" || id.length === 0) return void 0;
15009
15033
  if (typeof sessionId !== "string" || sessionId.length === 0) return void 0;
15010
15034
  if (typeof path !== "string" || path.length === 0) return void 0;
15011
15035
  if (kind !== "edit" && kind !== "create") return void 0;
15012
15036
  if (typeof oldText !== "string" || typeof newText !== "string") return void 0;
15013
15037
  if (typeof updatedAt !== "number") return void 0;
15038
+ const touched = Array.isArray(sessionIds) ? sessionIds.filter((value) => typeof value === "string" && value.length > 0) : [];
15014
15039
  return {
15015
15040
  id,
15016
15041
  sessionId,
@@ -15019,6 +15044,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
15019
15044
  oldText,
15020
15045
  newText,
15021
15046
  updatedAt,
15047
+ sessionIds: touched.length > 0 ? touched : [sessionId],
15022
15048
  missing: missing === true,
15023
15049
  diverged: diverged === true
15024
15050
  };
@@ -15372,12 +15398,20 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
15372
15398
  };
15373
15399
  const observe = () => {
15374
15400
  const snapshot = store.getSnapshot();
15401
+ const newestByPath = /* @__PURE__ */ new Map();
15375
15402
  for (const file of snapshot.files) {
15376
- const previous = lastContent.get(file.path);
15377
- if (previous !== void 0 && contentKey(previous) !== contentKey(file.newText)) remap(file.path, previous, file.newText, snapshot.workspacePath);
15378
- lastContent.set(file.path, file.newText);
15403
+ const current = newestByPath.get(file.path);
15404
+ if (current === void 0 || file.updatedAt >= current.updatedAt) newestByPath.set(file.path, {
15405
+ newText: file.newText,
15406
+ updatedAt: file.updatedAt
15407
+ });
15408
+ }
15409
+ for (const [path, { newText }] of newestByPath) {
15410
+ const previous = lastContent.get(path);
15411
+ if (previous !== void 0 && contentKey(previous) !== contentKey(newText)) remap(path, previous, newText, snapshot.workspacePath);
15412
+ lastContent.set(path, newText);
15379
15413
  }
15380
- for (const path of [...lastContent.keys()]) if (!snapshot.files.some((file) => file.path === path)) lastContent.delete(path);
15414
+ for (const path of [...lastContent.keys()]) if (!newestByPath.has(path)) lastContent.delete(path);
15381
15415
  };
15382
15416
  const unsubscribe = store.subscribe(observe);
15383
15417
  observe();