dsh-diff-approval 0.27.0 → 0.28.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
@@ -21,7 +21,7 @@ window.__ModuleLoader__.load({
21
21
  let react_dom = require("react-dom");
22
22
  let _deepseek_ai_dsh_client_ui_primitives = require("@deepseek-ai/dsh-client-ui-primitives");
23
23
  //#region \0dsh-css:/home/runner/work/dsh-diff-approval/dsh-diff-approval/src/client/PendingPanel.module.css.mjs
24
- const css = ".F1KBNa_panelFailure{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;line-height:16px;display:flex}.F1KBNa_panelFailureText{min-width:0}.F1KBNa_panelFailureRetry{border:1px solid var(--dsw-alias-border-l2);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;margin-left:auto;padding:2px 8px}.F1KBNa_panelFailureRetry:hover{background:var(--dsw-alias-interactive-bg-hover)}.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_headerEntry{box-sizing:border-box;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:28px;flex:none;justify-content:center;align-items:center;padding:6px;display:inline-flex;position:relative}.F1KBNa_headerEntry:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_headerEntry[data-active]{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.F1KBNa_headerEntry:disabled{color:var(--dsw-alias-label-tertiary);cursor:default;background:0 0}.F1KBNa_headerEntryCount{box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);min-width:14px;height:14px;color:var(--dsw-alias-label-primary-foreground);text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:7px;padding:0 3px;font-size:10px;line-height:14px;position:absolute;top:-1px;right:-1px}.F1KBNa_headerEntry svg{display:block}.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_coverBackdrop{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);-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:8px 8px 128px;overflow:hidden}.F1KBNa_panel .F1KBNa_code,.F1KBNa_panel .F1KBNa_mdPreviewBody,.F1KBNa_panel .F1KBNa_discussionUser,.F1KBNa_panel .F1KBNa_discussionAnswer,.F1KBNa_panel .F1KBNa_quoteText,.F1KBNa_panel .F1KBNa_diffPath,.F1KBNa_panel .F1KBNa_rowPath,.F1KBNa_panel input,.F1KBNa_panel textarea,.F1KBNa_panel [contenteditable]{-webkit-user-select:text;user-select:text}.F1KBNa_panelDocked{width:100%;max-width:none;height:100%;box-shadow:none;border:none;border-radius:0;position:static;inset:auto}.F1KBNa_dockHost{flex-direction:column;min-height:0;display:flex;position:absolute;inset:0}.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_settingsGroup{border-bottom:1px solid var(--dsw-alias-border-l2)}.F1KBNa_settingsGroupHeader{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:16px 0;display:flex}.F1KBNa_settingsGroupText{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.F1KBNa_settingsGroupTitle{font-size:14px;font-weight:400;line-height:22px}.F1KBNa_settingsGroupDesc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.F1KBNa_settingsGroupChevron{margin-left:auto;transition:transform .15s}.F1KBNa_settingsGroup[data-open] .F1KBNa_settingsGroupChevron{transform:rotate(180deg)}.F1KBNa_settingsGroup[data-open] .F1KBNa_settingsGroupHeader{border-bottom:1px solid var(--dsw-alias-border-l2)}.F1KBNa_settingsGroupBody{flex-direction:column;display:flex}.F1KBNa_settingsGroupBody .F1KBNa_settingsRow{padding-left:16px}.F1KBNa_settingsGroupBody .F1KBNa_settingsRow:last-child,.F1KBNa_settingsPage>.F1KBNa_settingsRow:last-child{border-bottom:none}.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);min-width:72px;height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.F1KBNa_settingsSelector:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_settingsSelector[data-recording]{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary);color:var(--dsw-alias-label-secondary)}.F1KBNa_settingsReset{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;margin-left:6px;padding:0;display:inline-flex}.F1KBNa_settingsReset:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_settingsReset:disabled{opacity:.4;cursor:default}.F1KBNa_colorPicker{position:relative}.F1KBNa_colorPickerTrigger{background:var(--dsw-alias-bg-module-platform);width:120px;height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:8px;padding:0 8px;font-size:12px;line-height:18px;display:inline-flex}.F1KBNa_colorPickerTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_colorSwatch{border:1px solid var(--dsw-alias-border-l2);border-radius:50%;flex:none;width:24px;height:24px}.F1KBNa_colorValue{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;flex:1;min-width:0;overflow:hidden}.F1KBNa_colorPickerChevron{flex:none}.F1KBNa_colorBackdrop{z-index:40;position:fixed;inset:0}.F1KBNa_colorPickerPopover{z-index:41;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:10px;padding:10px;position:absolute;top:calc(100% + 6px);right:0}.F1KBNa_colorPickerPanel{flex-direction:column;gap:8px;display:flex}.F1KBNa_colorPickerInputRow{align-items:center;gap:8px;display:flex}.F1KBNa_colorPickerPreview{border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex:none;width:22px;height:22px}.F1KBNa_colorPickerInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-module-platform);min-width:0;height:30px;font:inherit;color:var(--dsw-alias-label-primary);border-radius:8px;flex:1;padding:0 8px;font-size:12px;line-height:28px}.F1KBNa_colorPickerInput:focus{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.F1KBNa_colorSv{border:1px solid var(--dsw-alias-border-l1);cursor:crosshair;touch-action:none;border-radius:8px;height:140px;position:relative}.F1KBNa_colorSvCursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.F1KBNa_colorHue{border:1px solid var(--dsw-alias-border-l1);cursor:pointer;touch-action:none;border-radius:7px;height:14px;position:relative}.F1KBNa_colorHueCursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.F1KBNa_diffPreview{z-index:2;border:1px solid var(--dsw-alias-border-l1);font:var(--dsw-font-markdown-code-block);background:var(--dsw-alias-markdown-code-block);border-radius:8px;margin:16px 0 8px;padding:8px;position:sticky;top:0;overflow:hidden}.F1KBNa_diffPreviewTitle{color:var(--dsw-alias-label-tertiary);margin-bottom:6px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_diffPreviewScroll{height:132px;overflow-y:auto}.F1KBNa_mdPreviewWrap{isolation:isolate;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_mdPreviewBody{overscroll-behavior:none;min-width:0;min-height:0;color:var(--dsw-alias-label-primary);flex:1;padding:12px 16px;position:relative;overflow:auto}.F1KBNa_mdPreviewContent{width:100%;min-width:0;margin:0 auto}.F1KBNa_mdPreviewSingle{display:block}.F1KBNa_mdPreviewDouble{display:flex}.F1KBNa_mdPreviewBody .mdBlock{border-radius:4px;margin-bottom:12px;padding:2px 6px}.F1KBNa_mdPreviewBody .mdAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 10%, transparent)}.F1KBNa_mdPreviewBody .mdDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 12%, transparent)}.F1KBNa_mdPreviewBody .mdWordDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 34%, transparent);border-radius:2px;padding:0 1px}.F1KBNa_mdPreviewBody .mdWordAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 34%, transparent);border-radius:2px;padding:0 1px}.F1KBNa_mdPreviewBody .mdDouble{flex-direction:column;width:100%;min-width:0;display:flex}.F1KBNa_mdPreviewBody .mdDoubleRow{align-items:flex-start;width:100%;min-width:0;display:flex}.F1KBNa_mdPreviewBody .mdDoubleCol{flex:1;min-width:0}.F1KBNa_mdPreviewBody .mdDoubleRule{background:var(--dsw-alias-border-l2);flex:none;align-self:stretch;width:1px;margin:0 12px}.F1KBNa_mdPreviewFallback{font-family:var(--dsw-font-markdown-code-block);color:var(--dsw-alias-label-tertiary);padding:12px 16px;font-size:12px;line-height:18px}.F1KBNa_mdPreviewBody{word-break:break-word;font-size:13px;line-height:20px}.F1KBNa_mdPreviewBody>:first-child{margin-top:0}.F1KBNa_mdPreviewBody>:last-child{margin-bottom:0}.F1KBNa_mdPreviewBody h1,.F1KBNa_mdPreviewBody h2,.F1KBNa_mdPreviewBody h3,.F1KBNa_mdPreviewBody h4,.F1KBNa_mdPreviewBody h5,.F1KBNa_mdPreviewBody h6{margin:16px 0 8px;font-weight:600;line-height:1.3}.F1KBNa_mdPreviewBody h1{font-size:22px}.F1KBNa_mdPreviewBody h2{font-size:19px}.F1KBNa_mdPreviewBody h3{font-size:16px}.F1KBNa_mdPreviewBody h4{font-size:15px}.F1KBNa_mdPreviewBody h5{font-size:14px}.F1KBNa_mdPreviewBody h6{font-size:13px}.F1KBNa_mdPreviewBody p{margin:8px 0}.F1KBNa_mdPreviewBody ul,.F1KBNa_mdPreviewBody ol{margin:8px 0;padding-left:22px}.F1KBNa_mdPreviewBody li{margin:2px 0}.F1KBNa_mdPreviewBody a{color:var(--dsw-alias-state-business-primary);text-decoration:none}.F1KBNa_mdPreviewBody a:hover{text-decoration:underline}.F1KBNa_mdPreviewBody code{font-family:var(--dsw-font-markdown-code-block);background:#9e9e9e40;border-radius:4px;padding:1px 5px;font-size:12.5px}.F1KBNa_mdPreviewBody pre{overscroll-behavior-x:none;border:1px solid var(--dsw-alias-border-l1);font-family:var(--dsw-font-markdown-code-block);background:#9e9e9e40;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:12.5px;line-height:18px;overflow:auto}.F1KBNa_mdPreviewBody pre code{background:0 0;padding:0}.F1KBNa_mdPreviewBody blockquote{border-left:3px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);margin:8px 0;padding:0 12px}.F1KBNa_mdPreviewBody hr{background:var(--dsw-alias-border-l1);border:none;height:1px;margin:16px 0}.F1KBNa_mdPreviewBody table{border-collapse:collapse;margin:8px 0}.F1KBNa_mdPreviewBody th,.F1KBNa_mdPreviewBody td{border:1px solid var(--dsw-alias-border-l1);padding:4px 10px}.F1KBNa_mdPreviewBody img{max-width:100%}.F1KBNa_mdPreviewBody .mdImageFallback{border:1px dashed var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-markdown-code-block) 45%, transparent);width:100%;min-height:120px;color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-markdown-code-block);text-align:center;white-space:pre-wrap;word-break:break-all;border-radius:4px;justify-content:center;align-items:center;margin:0 auto;padding:8px 12px;font-size:12px;line-height:16px;display:flex}.F1KBNa_toggle{border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:18px;flex:none;width:60px;height:36px;padding:0;position:relative}.F1KBNa_toggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_toggle:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.F1KBNa_toggleOn{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-state-business-primary)}.F1KBNa_toggleOn:hover{background:var(--dsw-alias-state-business-primary)}.F1KBNa_toggleThumb{background:var(--dsw-alias-label-primary);border-radius:50%;width:28px;height:28px;transition:left .12s;position:absolute;top:3px;left:3px}.F1KBNa_toggleOn .F1KBNa_toggleThumb{background:#fff;left:27px}.F1KBNa_stepper{align-items:center;gap:6px;display:inline-flex}.F1KBNa_stepperButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);width:32px;height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:8px;padding:0;position:relative}.F1KBNa_stepperButton:before,.F1KBNa_stepperButton:after{content:\"\";background:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.F1KBNa_stepperButton:before{width:10px;height:1px}.F1KBNa_stepperButton:after{width:1px;height:10px;display:none}.F1KBNa_stepperButtonUp:after{display:block}.F1KBNa_stepperButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_stepperButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_stepperValue{text-align:center;min-width:2ch;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:14px;line-height:22px}.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_fileListKnob{z-index:39;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;box-shadow:var(--dsw-elevation-prominent);border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.F1KBNa_fileListKnob[data-open]{box-shadow:none;opacity:0}.F1KBNa_fileListKnob:not([data-open]){animation:.32s ease-in-out .5s both F1KBNa_fileListKnobIn}@keyframes F1KBNa_fileListKnobIn{0%{opacity:0}to{opacity:1}}.F1KBNa_fileListKnob:hover,.F1KBNa_fileListKnob:focus-visible{background-color:var(--dsw-alias-bg-base);background-image:linear-gradient(var(--dsw-alias-interactive-bg-hover), var(--dsw-alias-interactive-bg-hover))}.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:none;transform-origin:0 0;border-radius:12px;flex-direction:column;padding:6px 0 10px 8px;display:flex;position:absolute;overflow:hidden}.F1KBNa_fileListFloatClosing{pointer-events:none;animation:.14s ease-in forwards F1KBNa_fileListShrink}@keyframes F1KBNa_fileListShrink{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.F1KBNa_fileList{box-sizing:border-box;border-right:1px solid var(--dsw-alias-border-l2);flex-direction:column;flex:none;width:260px;min-height:0;padding:4px 8px 12px;display:flex}.F1KBNa_listScroll{flex:1;min-height:0;overflow-y:scroll}.F1KBNa_bulkActions{flex:none;gap:6px;padding:8px 8px 0 0;display:flex}.F1KBNa_bulkActions .F1KBNa_action{text-align:center;flex:auto}.F1KBNa_addPath{justify-content:center;align-items:center;gap:4px;display:inline-flex}.F1KBNa_resizeHandle{cursor:col-resize;touch-action:none;background:0 0;flex:none;width:5px;margin:0 -2px}.F1KBNa_resizeHandle:hover{background:var(--dsw-alias-border-l2)}.F1KBNa_floatResizeHandle{z-index:41;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;background:0 0;border-radius:4px;position:absolute}.F1KBNa_floatResizeHandle:hover{background-color:var(--dsw-alias-bg-base);background-image:linear-gradient(var(--dsw-alias-border-l2), 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:55;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{flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.F1KBNa_pickerCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:420px;max-width:100%;height:70%;max-height:100%;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex;position:relative;overflow:hidden}.F1KBNa_pickerTitle{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:20px}.F1KBNa_pickerClose{width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.F1KBNa_pickerClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_pickerForm{flex:none;gap:8px;display:flex}.F1KBNa_pickerInput{border:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;flex:auto;padding:3px 8px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_pickerInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.F1KBNa_tree{border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex:auto;min-height:0;padding:4px 2px 4px 4px;overflow:auto scroll}.F1KBNa_treeRow{border-radius:6px;align-items:center;gap:2px;padding-right:4px;display:flex}.F1KBNa_treeRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_treeRow[data-selected]{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 18%, transparent)}.F1KBNa_treeCaret{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_treeCaret:hover{color:var(--dsw-alias-label-primary)}.F1KBNa_treeName{min-width:0;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:auto;align-items:center;gap:6px;padding:2px 4px;font-family:inherit;font-size:12px;line-height:18px;display:flex}.F1KBNa_treeName:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_treeNote{color:var(--dsw-alias-label-tertiary);margin:2px 0;font-size:12px;line-height:18px}.F1KBNa_pickerIcon{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.F1KBNa_pickerName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.F1KBNa_pickerNote{color:var(--dsw-alias-label-tertiary);flex:none;margin:0;font-size:12px;line-height:18px}.F1KBNa_pickerCheck{color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;margin-right:auto;font-size:12px;line-height:18px;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_groupHead{align-items:center;gap:4px;margin:8px 0 4px;padding-right:8px;display:flex}.F1KBNa_action.F1KBNa_addButton{box-sizing:border-box;border-radius:6px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;min-height:0;padding:0;display:inline-flex}.F1KBNa_groupHead>.F1KBNa_group{margin:0}.F1KBNa_listHead{flex:none;align-items:center;gap:4px;margin:8px 1px 2px;padding-right:8px;display:flex}.F1KBNa_action.F1KBNa_addButton.F1KBNa_listFold{width:26px;height:26px}.F1KBNa_listTitle{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:16px}.F1KBNa_listTabs{background:var(--dsw-alias-interactive-bg-hover);border-radius:8px;flex:auto;gap:2px;min-width:0;padding:2px;display:flex}.F1KBNa_listTab{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:3px 8px;font-size:12px;line-height:16px;display:inline-flex}.F1KBNa_tabCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.F1KBNa_listTab[aria-selected=true]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.F1KBNa_commentRow{box-sizing:border-box;width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:6px 8px;display:block}.F1KBNa_commentRow:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_commentHead{align-items:baseline;gap:6px;min-width:0;display:flex}.F1KBNa_commentLabel{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-markdown-code-block);font-size:11px;line-height:16px;overflow:hidden}.F1KBNa_commentLost{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;line-height:16px}.F1KBNa_commentTitle{text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-primary);font-size:12px;line-height:18px;display:block;overflow:hidden}.F1KBNa_listEmpty{color:var(--dsw-alias-label-tertiary);margin:8px 12px;font-size:12px;line-height:18px}.F1KBNa_emptyActions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.F1KBNa_rows{margin:0;padding:0;list-style:none}.F1KBNa_row{border:1px solid #0000;border-radius:10px;margin:2px 0}.F1KBNa_rowMenuAnchor{display:none}.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:center;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;margin-left:4px;font-size:12px;line-height:18px;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(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 60%, var(--dsw-alias-label-primary))}.F1KBNa_delCount{color:color-mix(in srgb, var(--dsh-diff-del-color,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_panelDocked .F1KBNa_diffHeader{background:var(--dsw-alias-bg-base)}.F1KBNa_diffPath{appearance:none;min-width:0;font:inherit;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);background:0 0;border:0;flex:1;margin-left:4px;padding:0;font-size:12px;line-height:18px;position:relative;top:1px}.F1KBNa_diffPath:focus{outline:none}.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_gotoBox{background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:12px;align-items:center;gap:8px;padding:12px;display:flex}.F1KBNa_gotoInput{border:1px solid var(--dsw-alias-border-l2);width:8em;color:inherit;font:inherit;background:0 0;border-radius:8px;padding:4px 8px}.F1KBNa_divider{background:var(--dsw-alias-border-l1);align-self:stretch;width:1px;margin:2px 0}.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_actionChord{color:var(--dsw-alias-label-tertiary);margin-left:6px;font-size:11px}.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{isolation:isolate;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffBody{overscroll-behavior:none;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_blockActionsDivider{background:var(--dsw-alias-border-l2);flex:none;align-self:stretch;width:1px;margin:2px 0}.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_searchToggle{border:1px solid var(--dsw-alias-border-l1);min-height:25px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:4px 6px;display:inline-flex}.F1KBNa_searchToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_searchToggleOn{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}.F1KBNa_searchMatch{color:inherit;background-color:#facc1542;border-radius:2px}.F1KBNa_searchMatchCurrent{color:inherit;background-color:#facc1599;border-radius:2px}.F1KBNa_blockFlash{z-index:3;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_diffFlashFade;position:absolute;left:0;right:0}.F1KBNa_blockFlashShake{animation:.7s ease-out forwards F1KBNa_diffFlashShake}.F1KBNa_discussionRow{background:var(--dsw-alias-bg-base);display:table-row}.F1KBNa_discussionCell{display:table-cell}.F1KBNa_discussionPin{z-index:2;width:0;height:0;position:sticky;left:0}.F1KBNa_discussion{z-index:2;box-sizing:border-box;border-left:3px solid var(--dsw-alias-state-business-primary);box-shadow:inset 0 1px 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent), inset 0 -1px 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent), inset -1px 0 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent);cursor:default;background:0 0;flex-direction:column;display:flex;position:absolute;top:0;left:0;overflow:hidden}.F1KBNa_discussionHead{font:var(--dsw-font-markdown-code-block)}.F1KBNa_discussionBody,.F1KBNa_threadFontProbe{font:var(--dsw-font-markdown-base);font-size:calc(var(--dsh-content-font-size,14px) - 2px)}.F1KBNa_threadFontProbe{visibility:hidden;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.F1KBNa_discussionBody{flex-direction:column;flex:auto;min-height:0;padding:0 12px;display:flex;overflow:hidden}.F1KBNa_discussion[data-lost]{border-left-color:var(--dsw-alias-label-secondary);background:repeating-linear-gradient(135deg, var(--dsw-alias-interactive-bg-hover) 0 4px, transparent 4px 8px);background-origin:border-box}.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend,.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend:hover:not(:disabled),.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend:disabled{background:var(--dsw-alias-label-secondary);border-color:var(--dsw-alias-label-secondary);color:var(--dsw-alias-label-primary-foreground)}.F1KBNa_discussion[data-lost] .F1KBNa_discussionUser{background:color-mix(in srgb, var(--dsw-alias-label-secondary) 30%, transparent)}.F1KBNa_discussionAnswer{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;margin:0;padding:0;font-family:inherit;line-height:22px}.F1KBNa_discussionUser{box-sizing:border-box;background:var(--dsw-specific-bubble,var(--dsw-alias-bg-layer-2,var(--dsw-alias-interactive-bg-hover)));width:fit-content;max-width:82%;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;border-radius:8px 0 8px 8px;margin:6.6px 0 6.6px auto;padding:4.4px 11px;font-family:inherit;line-height:22px}.F1KBNa_discussionCode{box-sizing:border-box;font:var(--dsw-font-markdown-code);font-family:var(--ds-font-family-code);background:color-mix(in srgb, var(--dsw-alias-markdown-inline-code,var(--dsw-alias-interactive-bg-hover-solid)) 90%, var(--dsw-alias-label-secondary));border:.5px solid var(--dsw-alias-border-l1);border-radius:6px;align-items:center;padding:0 5px;font-size:.875em;line-height:16px;display:inline-flex}.F1KBNa_discussionBody strong{font-weight:700}.F1KBNa_discussionNote{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:0;font-family:inherit;line-height:22px}.F1KBNa_discussionNote[data-diff-discussion-hidden]{color:var(--dsw-alias-label-tertiary)}.F1KBNa_discussionDots{margin-left:1px}.F1KBNa_discussionDots>span{animation:1.2s ease-in-out infinite F1KBNa_discussionDot}.F1KBNa_discussionDots>span:nth-child(2){animation-delay:.15s}.F1KBNa_discussionDots>span:nth-child(3){animation-delay:.3s}@keyframes F1KBNa_discussionDot{0%,60%,to{opacity:.25}30%{opacity:1}}.F1KBNa_quoteLines{table-layout:fixed;border-spacing:0;width:calc(100% + 27px);min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block);line-height:var(--dsh-diff-line-height,22px);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover) 55%, transparent);margin:0 -12px 0 -15px;display:table}.F1KBNa_quoteAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 12%, transparent)}.F1KBNa_quoteDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 13%, transparent)}.F1KBNa_quoteLine{font-size:calc(1em * var(--dsh-diff-font-scale,1));height:var(--dsh-diff-line-height,22px);display:table-row}.F1KBNa_quoteCode{display:table-cell}.F1KBNa_quoteText{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;display:block}.F1KBNa_quoteNoWrap .F1KBNa_quoteText{white-space:pre;overflow-wrap:normal;overflow:hidden}.F1KBNa_quoteNoWrap .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-diff-quote-width,0px) + 100%);display:inline-block}.F1KBNa_quoteSplit{align-self:stretch;align-items:flex-start;margin:0 -12px;display:flex}.F1KBNa_quoteSplitSide{flex:1 1 0;min-width:0}.F1KBNa_quoteSplitSide+.F1KBNa_quoteSplitSide{border-left:1px solid var(--dsw-alias-border-l2)}.F1KBNa_quoteSplitTable{table-layout:fixed;border-spacing:0;width:100%;display:table}.F1KBNa_quoteNoWrap .F1KBNa_quoteSplit [data-diff-quote-side=left] .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-quote-width-left,0px) + 100%);display:inline-block}.F1KBNa_quoteNoWrap .F1KBNa_quoteSplit [data-diff-quote-side=right] .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-quote-width-right,0px) + 100%);display:inline-block}.F1KBNa_discussionHead{box-sizing:border-box;flex:none;align-items:center;gap:8px;height:22px;padding:0 12px;font-size:12px;line-height:16px;display:flex}.F1KBNa_discussionCompose{box-sizing:border-box;flex:none;align-items:flex-end;gap:8px;height:44px;margin:0 -6px;padding:0 0 6.6px;display:flex}.F1KBNa_discussionSlack{flex:1 1 0;min-height:0;max-height:22px}.F1KBNa_discussionInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-primary);cursor:text;border-radius:6px;flex:auto;padding:3px 8px;font-family:inherit;line-height:18px}.F1KBNa_discussionToggle{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_discussionToggle:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_discussionRangeWrap{font:var(--dsw-font-markdown-code-block);flex:none}.F1KBNa_discussionRange{color:var(--dsw-alias-label-tertiary);font-family:inherit}.F1KBNa_discussionInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.F1KBNa_discussionInput::placeholder{font-family:inherit;font-size:inherit;color:var(--dsw-alias-label-tertiary)}.F1KBNa_discussionSend{box-sizing:border-box;white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:6px;height:26px;padding-left:9px;padding-right:9px;display:inline-flex}.F1KBNa_rowDiscussed{--diff-row-wash:color-mix(in srgb, var(--dsw-alias-label-secondary) 14%, transparent);background-image:linear-gradient(var(--diff-row-wash), var(--diff-row-wash))}@keyframes F1KBNa_diffFlashFade{0%{opacity:1}to{opacity:0}}@keyframes F1KBNa_diffFlashShake{0%{opacity:1;transform:translateY(0)}10%{transform:translateY(1px)}20%{transform:translateY(-1px)}30%{transform:translateY(1px)}40%{transform:translateY(-1px)}50%{transform:translateY(1px)}60%{transform:translateY(-1px)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(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%;font-size:calc(1em * var(--dsh-diff-font-scale,1));display:table}.F1KBNa_line{height:var(--dsh-diff-line-height,22px);line-height:var(--dsh-diff-line-height,22px);-webkit-user-select:none;user-select:none;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_line>.F1KBNa_gutter{z-index:1;background-color:var(--dsw-alias-markdown-code-block);background-image:linear-gradient(var(--diff-row-tint,transparent), var(--diff-row-tint,transparent)), linear-gradient(var(--diff-row-wash,transparent), var(--diff-row-wash,transparent));position:sticky;left:0}.F1KBNa_line>.F1KBNa_gutter+.F1KBNa_gutter{left:44px}.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{--diff-row-tint:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent);background-color:var(--diff-row-tint)}.F1KBNa_add{--diff-row-tint:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent);background-color:var(--diff-row-tint)}.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_presentationSelect{cursor:pointer;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;gap:2px;padding:0 6px;display:inline-flex}.F1KBNa_presentationSelect:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_chip{justify-content:flex-end;align-items:center;gap:5px;min-width:0;padding-right:14px;display:inline-flex}.F1KBNa_chipLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.F1KBNa_coverHost{align-items:center;display:inline-flex;position:relative}.F1KBNa_coverCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:12px;align-items:center;gap:4px;padding:6px;display:flex}.F1KBNa_coverPopover{z-index:50;position:absolute;top:calc(100% + 6px);right:0}.F1KBNa_coverNotice{z-index:80;pointer-events:none;animation:1.25s ease-out forwards F1KBNa_coverNoticeFade;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.F1KBNa_coverNoticeCard{gap:4px;padding:6px 8px}@keyframes F1KBNa_coverNoticeFade{0%,78%{opacity:1}to{opacity:0}}.F1KBNa_coverNoticeGlyph{width:44px;height:44px;color:var(--dsw-alias-label-tertiary);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.F1KBNa_coverNoticeGlyph[data-on]{color:var(--dsw-alias-label-primary)}.F1KBNa_coverNoticeGlyph[data-changed]{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_coverNoticeText{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.F1KBNa_coverButton{width:32px;height:32px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_coverButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_coverButton[data-on]{color:var(--dsw-alias-label-primary)}.F1KBNa_presentationHost{align-items:center;display:inline-flex}.F1KBNa_chipPresentation{min-width:36px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:20px;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 6px;display:inline-flex}.F1KBNa_chipPresentation:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_mirrored{transform:scaleX(-1)}.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:var(--dsh-diff-line-height,22px)}.F1KBNa_subline{height:var(--dsh-diff-line-height,22px);line-height:var(--dsh-diff-line-height,22px);white-space:pre;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{isolation:isolate;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffBodySplit{flex:1;min-height:0;overflow-x:hidden}.F1KBNa_splitCols{width:100%;min-width:0;min-height:100%;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_splitDiscussions{z-index:3;pointer-events:none;width:100%;height:0;position:absolute;top:0;left:0}.F1KBNa_splitDiscussion{box-sizing:border-box;pointer-events:auto;background:var(--dsw-alias-bg-base);position:absolute;left:0}.F1KBNa_splitSealed,.F1KBNa_splitSealed *{-webkit-user-select:none!important;user-select:none!important}.F1KBNa_splitSealedLeft [data-diff-split-side=left],.F1KBNa_splitSealedLeft [data-diff-split-side=left] *,.F1KBNa_splitSealedRight [data-diff-split-side=right],.F1KBNa_splitSealedRight [data-diff-split-side=right] *{-webkit-user-select:text!important;user-select:text!important}.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{overscroll-behavior-x:none;min-width:0;height:var(--dsh-scrollbar-width,8px);flex:1 1 0;overflow:auto hidden}.F1KBNa_splitHScroll::-webkit-scrollbar{height:var(--dsh-scrollbar-width,8px)}.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(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent)}.F1KBNa_splitLadd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent)}.F1KBNa_splitRdel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent)}.F1KBNa_splitRadd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent)}.F1KBNa_intraDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 34%, transparent);text-decoration:line-through}.F1KBNa_intraAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 32%, transparent)}";
24
+ const css = ".F1KBNa_panelFailure{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary);border-radius:8px;align-items:center;gap:8px;padding:8px 10px;font-size:12px;line-height:16px;display:flex}.F1KBNa_panelFailureText{min-width:0}.F1KBNa_panelFailureRetry{border:1px solid var(--dsw-alias-border-l2);color:inherit;font:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;margin-left:auto;padding:2px 8px}.F1KBNa_panelFailureRetry:hover{background:var(--dsw-alias-interactive-bg-hover)}.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_headerEntry{box-sizing:border-box;width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:28px;flex:none;justify-content:center;align-items:center;padding:6px;display:inline-flex;position:relative}.F1KBNa_headerEntry:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_headerEntry[data-active]{background:var(--dsw-alias-interactive-bg-hover-solid);color:var(--dsw-alias-label-primary)}.F1KBNa_headerEntry:disabled{color:var(--dsw-alias-label-tertiary);cursor:default;background:0 0}.F1KBNa_headerEntryCount{box-sizing:border-box;background:var(--dsw-alias-button-primary-fill);min-width:14px;height:14px;color:var(--dsw-alias-label-primary-foreground);text-align:center;font-variant-numeric:tabular-nums;pointer-events:none;border-radius:7px;padding:0 3px;font-size:10px;line-height:14px;position:absolute;top:-1px;right:-1px}.F1KBNa_headerEntry svg{display:block}.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_coverBackdrop{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);-webkit-user-select:none;user-select:none;border-radius:12px;flex-direction:column;display:flex;position:fixed;inset:8px 8px 128px;overflow:hidden}.F1KBNa_panel .F1KBNa_code,.F1KBNa_panel .F1KBNa_mdPreviewBody,.F1KBNa_panel .F1KBNa_discussionUser,.F1KBNa_panel .F1KBNa_discussionAnswer,.F1KBNa_panel .F1KBNa_quoteText,.F1KBNa_panel .F1KBNa_diffPath,.F1KBNa_panel .F1KBNa_rowPath,.F1KBNa_panel input,.F1KBNa_panel textarea,.F1KBNa_panel [contenteditable]{-webkit-user-select:text;user-select:text}.F1KBNa_panelDocked{width:100%;max-width:none;height:100%;box-shadow:none;border:none;border-radius:0;position:static;inset:auto}.F1KBNa_dockHost{flex-direction:column;min-height:0;display:flex;position:absolute;inset:0}.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_settingsGroup{border-bottom:1px solid var(--dsw-alias-border-l2)}.F1KBNa_settingsGroupHeader{width:100%;color:var(--dsw-alias-label-primary);font:inherit;cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:16px 0;display:flex}.F1KBNa_settingsGroupText{text-align:left;flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.F1KBNa_settingsGroupTitle{font-size:14px;font-weight:400;line-height:22px}.F1KBNa_settingsGroupDesc{color:var(--dsw-alias-label-tertiary);font-size:12px;font-weight:400;line-height:18px}.F1KBNa_settingsGroupChevron{margin-left:auto;transition:transform .15s}.F1KBNa_settingsGroup[data-open] .F1KBNa_settingsGroupChevron{transform:rotate(180deg)}.F1KBNa_settingsGroup[data-open] .F1KBNa_settingsGroupHeader{border-bottom:1px solid var(--dsw-alias-border-l2)}.F1KBNa_settingsGroupBody{flex-direction:column;display:flex}.F1KBNa_settingsGroupBody .F1KBNa_settingsRow{padding-left:16px}.F1KBNa_settingsGroupBody .F1KBNa_settingsRow:last-child,.F1KBNa_settingsPage>.F1KBNa_settingsRow:last-child{border-bottom:none}.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);min-width:72px;height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;justify-content:center;align-items:center;padding:0 14px;font-size:14px;line-height:22px;display:inline-flex}.F1KBNa_settingsSelector:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_settingsSelector[data-recording]{box-shadow:inset 0 0 0 1px var(--dsw-alias-state-business-primary);color:var(--dsw-alias-label-secondary)}.F1KBNa_settingsReset{width:28px;height:28px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;margin-left:6px;padding:0;display:inline-flex}.F1KBNa_settingsReset:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_settingsReset:disabled{opacity:.4;cursor:default}.F1KBNa_colorPicker{position:relative}.F1KBNa_colorPickerTrigger{background:var(--dsw-alias-bg-module-platform);width:120px;height:36px;font:inherit;color:var(--dsw-alias-label-primary);cursor:pointer;border:none;border-radius:18px;align-items:center;gap:8px;padding:0 8px;font-size:12px;line-height:18px;display:inline-flex}.F1KBNa_colorPickerTrigger:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_colorSwatch{border:1px solid var(--dsw-alias-border-l2);border-radius:50%;flex:none;width:24px;height:24px}.F1KBNa_colorValue{text-overflow:ellipsis;white-space:nowrap;font-variant-numeric:tabular-nums;flex:1;min-width:0;overflow:hidden}.F1KBNa_colorPickerChevron{flex:none}.F1KBNa_colorBackdrop{z-index:40;position:fixed;inset:0}.F1KBNa_colorPickerPopover{z-index:41;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:10px;padding:10px;position:absolute;top:calc(100% + 6px);right:0}.F1KBNa_colorPickerPanel{flex-direction:column;gap:8px;display:flex}.F1KBNa_colorPickerInputRow{align-items:center;gap:8px;display:flex}.F1KBNa_colorPickerPreview{border:1px solid var(--dsw-alias-border-l2);border-radius:6px;flex:none;width:22px;height:22px}.F1KBNa_colorPickerInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-module-platform);min-width:0;height:30px;font:inherit;color:var(--dsw-alias-label-primary);border-radius:8px;flex:1;padding:0 8px;font-size:12px;line-height:28px}.F1KBNa_colorPickerInput:focus{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:-1px}.F1KBNa_colorSv{border:1px solid var(--dsw-alias-border-l1);cursor:crosshair;touch-action:none;border-radius:8px;height:140px;position:relative}.F1KBNa_colorSvCursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:14px;height:14px;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.F1KBNa_colorHue{border:1px solid var(--dsw-alias-border-l1);cursor:pointer;touch-action:none;border-radius:7px;height:14px;position:relative}.F1KBNa_colorHueCursor{pointer-events:none;border:2px solid #fff;border-radius:50%;width:16px;height:16px;position:absolute;top:50%;transform:translate(-50%,-50%);box-shadow:0 0 0 1px #00000080}.F1KBNa_diffPreview{z-index:2;border:1px solid var(--dsw-alias-border-l1);font:var(--dsw-font-markdown-code-block);background:var(--dsw-alias-markdown-code-block);border-radius:8px;margin:16px 0 8px;padding:8px;position:sticky;top:0;overflow:hidden}.F1KBNa_diffPreviewTitle{color:var(--dsw-alias-label-tertiary);margin-bottom:6px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_diffPreviewScroll{height:132px;overflow-y:auto}.F1KBNa_mdPreviewWrap{isolation:isolate;flex:1;min-width:0;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_mdPreviewBody{overscroll-behavior:none;min-width:0;min-height:0;color:var(--dsw-alias-label-primary);flex:1;padding:12px 16px;position:relative;overflow:auto}.F1KBNa_mdPreviewContent{width:100%;min-width:0;margin:0 auto}.F1KBNa_mdPreviewSingle{display:block}.F1KBNa_mdPreviewDouble{display:flex}.F1KBNa_mdPreviewBody .mdBlock{border-radius:4px;margin-bottom:12px;padding:2px 6px}.F1KBNa_mdPreviewBody .mdAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 10%, transparent)}.F1KBNa_mdPreviewBody .mdDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 12%, transparent)}.F1KBNa_mdPreviewBody .mdWordDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 34%, transparent);border-radius:2px;padding:0 1px}.F1KBNa_mdPreviewBody .mdWordAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 34%, transparent);border-radius:2px;padding:0 1px}.F1KBNa_mdPreviewBody .mdDouble{flex-direction:column;width:100%;min-width:0;display:flex}.F1KBNa_mdPreviewBody .mdDoubleRow{align-items:flex-start;width:100%;min-width:0;display:flex}.F1KBNa_mdPreviewBody .mdDoubleCol{flex:1;min-width:0}.F1KBNa_mdPreviewBody .mdDoubleRule{background:var(--dsw-alias-border-l2);flex:none;align-self:stretch;width:1px;margin:0 12px}.F1KBNa_mdPreviewFallback{font-family:var(--dsw-font-markdown-code-block);color:var(--dsw-alias-label-tertiary);padding:12px 16px;font-size:12px;line-height:18px}.F1KBNa_mdPreviewBody{word-break:break-word;font-size:13px;line-height:20px}.F1KBNa_mdPreviewBody>:first-child{margin-top:0}.F1KBNa_mdPreviewBody>:last-child{margin-bottom:0}.F1KBNa_mdPreviewBody h1,.F1KBNa_mdPreviewBody h2,.F1KBNa_mdPreviewBody h3,.F1KBNa_mdPreviewBody h4,.F1KBNa_mdPreviewBody h5,.F1KBNa_mdPreviewBody h6{margin:16px 0 8px;font-weight:600;line-height:1.3}.F1KBNa_mdPreviewBody h1{font-size:22px}.F1KBNa_mdPreviewBody h2{font-size:19px}.F1KBNa_mdPreviewBody h3{font-size:16px}.F1KBNa_mdPreviewBody h4{font-size:15px}.F1KBNa_mdPreviewBody h5{font-size:14px}.F1KBNa_mdPreviewBody h6{font-size:13px}.F1KBNa_mdPreviewBody p{margin:8px 0}.F1KBNa_mdPreviewBody ul,.F1KBNa_mdPreviewBody ol{margin:8px 0;padding-left:22px}.F1KBNa_mdPreviewBody li{margin:2px 0}.F1KBNa_mdPreviewBody a{color:var(--dsw-alias-state-business-primary);text-decoration:none}.F1KBNa_mdPreviewBody a:hover{text-decoration:underline}.F1KBNa_mdPreviewBody code{font-family:var(--dsw-font-markdown-code-block);background:#9e9e9e40;border-radius:4px;padding:1px 5px;font-size:12.5px}.F1KBNa_mdPreviewBody pre{overscroll-behavior-x:none;border:1px solid var(--dsw-alias-border-l1);font-family:var(--dsw-font-markdown-code-block);background:#9e9e9e40;border-radius:8px;margin:8px 0;padding:10px 12px;font-size:12.5px;line-height:18px;overflow:auto}.F1KBNa_mdPreviewBody pre code{background:0 0;padding:0}.F1KBNa_mdPreviewBody blockquote{border-left:3px solid var(--dsw-alias-border-l2);color:var(--dsw-alias-label-secondary);margin:8px 0;padding:0 12px}.F1KBNa_mdPreviewBody hr{background:var(--dsw-alias-border-l1);border:none;height:1px;margin:16px 0}.F1KBNa_mdPreviewBody table{border-collapse:collapse;margin:8px 0}.F1KBNa_mdPreviewBody th,.F1KBNa_mdPreviewBody td{border:1px solid var(--dsw-alias-border-l1);padding:4px 10px}.F1KBNa_mdPreviewBody img{max-width:100%}.F1KBNa_mdPreviewBody .mdImageFallback{border:1px dashed var(--dsw-alias-border-l2);background:color-mix(in srgb, var(--dsw-alias-markdown-code-block) 45%, transparent);width:100%;min-height:120px;color:var(--dsw-alias-label-secondary);font-family:var(--dsw-font-markdown-code-block);text-align:center;white-space:pre-wrap;word-break:break-all;border-radius:4px;justify-content:center;align-items:center;margin:0 auto;padding:8px 12px;font-size:12px;line-height:16px;display:flex}.F1KBNa_toggle{border:1px solid var(--dsw-alias-border-l2);cursor:pointer;background:0 0;border-radius:18px;flex:none;width:60px;height:36px;padding:0;position:relative}.F1KBNa_toggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_toggle:focus-visible{outline:2px solid var(--dsw-alias-state-business-primary);outline-offset:2px}.F1KBNa_toggleOn{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-state-business-primary)}.F1KBNa_toggleOn:hover{background:var(--dsw-alias-state-business-primary)}.F1KBNa_toggleThumb{background:var(--dsw-alias-label-primary);border-radius:50%;width:28px;height:28px;transition:left .12s;position:absolute;top:3px;left:3px}.F1KBNa_toggleOn .F1KBNa_toggleThumb{background:#fff;left:27px}.F1KBNa_stepper{align-items:center;gap:6px;display:inline-flex}.F1KBNa_stepperButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-module-platform);width:32px;height:32px;color:var(--dsw-alias-label-primary);cursor:pointer;border-radius:8px;padding:0;position:relative}.F1KBNa_stepperButton:before,.F1KBNa_stepperButton:after{content:\"\";background:currentColor;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.F1KBNa_stepperButton:before{width:10px;height:1px}.F1KBNa_stepperButton:after{width:1px;height:10px;display:none}.F1KBNa_stepperButtonUp:after{display:block}.F1KBNa_stepperButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_stepperButton:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_stepperValue{text-align:center;min-width:2ch;color:var(--dsw-alias-label-primary);font-variant-numeric:tabular-nums;font-size:14px;line-height:22px}.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_fileListKnob{z-index:39;box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:28px;height:28px;color:var(--dsw-alias-label-primary);cursor:pointer;box-shadow:var(--dsw-elevation-prominent);border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute}.F1KBNa_fileListKnob[data-open]{box-shadow:none;opacity:0}.F1KBNa_fileListKnob:not([data-open]){animation:.32s ease-in-out .5s both F1KBNa_fileListKnobIn}@keyframes F1KBNa_fileListKnobIn{0%{opacity:0}to{opacity:1}}.F1KBNa_fileListKnob:hover,.F1KBNa_fileListKnob:focus-visible{background-color:var(--dsw-alias-bg-base);background-image:linear-gradient(var(--dsw-alias-interactive-bg-hover), var(--dsw-alias-interactive-bg-hover))}.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:none;transform-origin:0 0;border-radius:12px;flex-direction:column;padding:6px 0 10px 8px;display:flex;position:absolute;overflow:hidden}.F1KBNa_fileListFloatClosing{pointer-events:none;animation:.14s ease-in forwards F1KBNa_fileListShrink}@keyframes F1KBNa_fileListShrink{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.F1KBNa_fileList{box-sizing:border-box;border-right:1px solid var(--dsw-alias-border-l2);flex-direction:column;flex:none;width:260px;min-height:0;padding:4px 8px 12px;display:flex}.F1KBNa_listScroll{flex:1;min-height:0;overflow-y:scroll}.F1KBNa_bulkActions{flex:none;gap:6px;padding:8px 8px 0 0;display:flex}.F1KBNa_bulkActions .F1KBNa_action{text-align:center;flex:auto}.F1KBNa_addPath{justify-content:center;align-items:center;gap:4px;display:inline-flex}.F1KBNa_resizeHandle{cursor:col-resize;touch-action:none;background:0 0;flex:none;width:5px;margin:0 -2px}.F1KBNa_resizeHandle:hover{background:var(--dsw-alias-border-l2)}.F1KBNa_floatResizeHandle{z-index:41;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none;background:0 0;border-radius:4px;position:absolute}.F1KBNa_floatResizeHandle:hover{background-color:var(--dsw-alias-bg-base);background-image:linear-gradient(var(--dsw-alias-border-l2), 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:55;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{flex:none;justify-content:flex-end;align-items:center;gap:8px;display:flex}.F1KBNa_pickerCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);width:420px;max-width:100%;height:70%;max-height:100%;box-shadow:var(--dsw-shadow-lv3);border-radius:12px;flex-direction:column;gap:8px;padding:14px 16px 16px;display:flex;position:relative;overflow:hidden}.F1KBNa_pickerTitle{color:var(--dsw-alias-label-primary);flex:none;font-size:13px;font-weight:500;line-height:20px}.F1KBNa_pickerClose{width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;padding:0;display:inline-flex;position:absolute;top:10px;right:10px}.F1KBNa_pickerClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_pickerForm{flex:none;gap:8px;display:flex}.F1KBNa_pickerInput{border:1px solid var(--dsw-alias-border-l1);min-width:0;color:var(--dsw-alias-label-primary);background:0 0;border-radius:8px;flex:auto;padding:3px 8px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_pickerInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.F1KBNa_tree{border:1px solid var(--dsw-alias-border-l1);border-radius:8px;flex:auto;min-height:0;padding:4px 2px 4px 4px;overflow:auto scroll}.F1KBNa_treeRow{border-radius:6px;align-items:center;gap:2px;padding-right:4px;display:flex}.F1KBNa_treeRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_treeRow[data-selected]{background:color-mix(in srgb, var(--dsw-alias-state-business-primary) 18%, transparent)}.F1KBNa_treeCaret{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_treeCaret:hover{color:var(--dsw-alias-label-primary)}.F1KBNa_treeName{min-width:0;color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;background:0 0;border:0;border-radius:6px;flex:auto;align-items:center;gap:6px;padding:2px 4px;font-family:inherit;font-size:12px;line-height:18px;display:flex}.F1KBNa_treeName:disabled{color:var(--dsw-alias-label-tertiary);cursor:default}.F1KBNa_treeNote{color:var(--dsw-alias-label-tertiary);margin:2px 0;font-size:12px;line-height:18px}.F1KBNa_pickerIcon{width:16px;height:16px;color:var(--dsw-alias-label-tertiary);flex:none;justify-content:center;align-items:center;display:inline-flex}.F1KBNa_pickerName{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.F1KBNa_pickerNote{color:var(--dsw-alias-label-tertiary);flex:none;margin:0;font-size:12px;line-height:18px}.F1KBNa_pickerCheck{color:var(--dsw-alias-label-secondary);cursor:pointer;align-items:center;gap:6px;margin-right:auto;font-size:12px;line-height:18px;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_groupHead{align-items:center;gap:4px;margin:8px 0 4px;padding-right:8px;display:flex}.F1KBNa_action.F1KBNa_addButton{box-sizing:border-box;border-radius:6px;flex:none;justify-content:center;align-items:center;width:20px;height:20px;min-height:0;padding:0;display:inline-flex}.F1KBNa_groupHead>.F1KBNa_group{margin:0}.F1KBNa_listHead{flex:none;align-items:center;gap:4px;margin:8px 1px 2px;padding-right:8px;display:flex}.F1KBNa_action.F1KBNa_addButton.F1KBNa_listFold{width:26px;height:26px}.F1KBNa_listTitle{color:var(--dsw-alias-label-tertiary);margin:0;font-size:12px;font-weight:500;line-height:16px}.F1KBNa_listTabs{background:var(--dsw-alias-interactive-bg-hover);border-radius:8px;flex:auto;gap:2px;min-width:0;padding:2px;display:flex}.F1KBNa_listTab{color:var(--dsw-alias-label-secondary);font:inherit;cursor:pointer;background:0 0;border:none;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:3px 8px;font-size:12px;line-height:16px;display:inline-flex}.F1KBNa_tabCount{color:var(--dsw-alias-label-tertiary);font-variant-numeric:tabular-nums}.F1KBNa_listTab[aria-selected=true]{background:var(--dsw-alias-bg-base);color:var(--dsw-alias-label-primary)}.F1KBNa_commentGroup{margin:0 0 6px}.F1KBNa_commentGroup:last-child{margin-bottom:0}.F1KBNa_commentGroupName{color:var(--dsw-alias-label-tertiary);margin:0;padding:4px 8px 2px;font-size:11px;font-weight:500;line-height:16px}.F1KBNa_commentRow{box-sizing:border-box;width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:none;border-radius:10px;padding:6px 8px;display:block}.F1KBNa_commentRow:hover{background:var(--dsw-alias-interactive-bg-hover-solid)}.F1KBNa_commentHead{align-items:baseline;gap:6px;min-width:0;display:flex}.F1KBNa_commentLabel{white-space:nowrap;text-align:right;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-markdown-code-block);font-variant-numeric:tabular-nums;flex:none;font-size:11px;font-weight:700;line-height:16px}.F1KBNa_commentLost{color:var(--dsw-alias-label-tertiary);flex:none;font-size:11px;line-height:16px}.F1KBNa_commentTitle{text-overflow:ellipsis;white-space:nowrap;text-align:left;min-width:0;color:var(--dsw-alias-label-primary);flex:1;font-size:12px;line-height:18px;overflow:hidden}.F1KBNa_commentTitleEmpty{color:var(--dsw-alias-label-tertiary)}.F1KBNa_listEmpty{color:var(--dsw-alias-label-tertiary);margin:8px 12px;font-size:12px;line-height:18px}.F1KBNa_emptyActions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.F1KBNa_rows{margin:0;padding:0;list-style:none}.F1KBNa_row{border:1px solid #0000;border-radius:10px;margin:2px 0}.F1KBNa_rowMenuAnchor{display:none}.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:center;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;margin-left:4px;font-size:12px;line-height:18px;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(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 60%, var(--dsw-alias-label-primary))}.F1KBNa_delCount{color:color-mix(in srgb, var(--dsh-diff-del-color,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_panelDocked .F1KBNa_diffHeader{background:var(--dsw-alias-bg-base)}.F1KBNa_diffPath{appearance:none;min-width:0;font:inherit;text-overflow:ellipsis;color:var(--dsw-alias-label-primary);background:0 0;border:0;flex:1;margin-left:4px;padding:0;font-size:12px;line-height:18px;position:relative;top:1px}.F1KBNa_diffPath:focus{outline:none}.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_gotoHost{display:inline-flex}.F1KBNa_gotoLayer{z-index:30;place-items:center;display:grid;position:absolute;inset:0}.F1KBNa_gotoLayerRight{left:50%;right:var(--dsh-scrollbar-width,8px);bottom:calc(var(--dsh-scrollbar-width,8px) + 1px)}.F1KBNa_gotoBackdrop{z-index:29;position:fixed;inset:0}.F1KBNa_gotoBox{z-index:1;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:relative}.F1KBNa_gotoInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);width:9em;color:var(--dsw-alias-label-primary);border-radius:6px;outline:none;flex:none;padding:3px 8px;font-family:inherit;font-size:12px;line-height:18px}.F1KBNa_gotoInput:focus{border-color:var(--dsw-alias-state-business-primary)}.F1KBNa_gotoAction{white-space:nowrap;flex:none}.F1KBNa_divider{background:var(--dsw-alias-border-l1);align-self:stretch;width:1px;margin:2px 0}.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_actionChord{color:var(--dsw-alias-label-tertiary);margin-left:6px;font-size:11px}.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{isolation:isolate;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffBody{overscroll-behavior:none;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_blockActionsDivider{background:var(--dsw-alias-border-l2);flex:none;align-self:stretch;width:1px;margin:2px 0}.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_searchToggle{border:1px solid var(--dsw-alias-border-l1);min-height:25px;color:var(--dsw-alias-label-primary);cursor:pointer;background:0 0;border-radius:8px;justify-content:center;align-items:center;padding:4px 6px;display:inline-flex}.F1KBNa_searchToggle:hover{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_searchToggleOn{border-color:var(--dsw-alias-state-business-primary);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-state-business-primary)}.F1KBNa_searchMatch{color:inherit;background-color:#facc1542;border-radius:2px}.F1KBNa_searchMatchCurrent{color:inherit;background-color:#facc1599;border-radius:2px}.F1KBNa_blockFlash{z-index:3;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_diffFlashFade;position:absolute;left:0;right:0}.F1KBNa_blockFlashShake{animation:.7s ease-out forwards F1KBNa_diffFlashShake}.F1KBNa_discussionRow{background:var(--dsw-alias-bg-base);display:table-row}.F1KBNa_discussionCell{display:table-cell}.F1KBNa_discussionPin{z-index:2;width:0;height:0;position:sticky;left:0}.F1KBNa_discussion{z-index:2;box-sizing:border-box;border-left:3px solid var(--dsw-alias-state-business-primary);box-shadow:inset 0 1px 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent), inset 0 -1px 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent), inset -1px 0 0 0 color-mix(in srgb, var(--dsw-alias-label-secondary) 55%, transparent);cursor:default;background:0 0;flex-direction:column;display:flex;position:absolute;top:0;left:0;overflow:hidden}.F1KBNa_discussionHead{font:var(--dsw-font-markdown-code-block)}.F1KBNa_discussionBody,.F1KBNa_threadFontProbe{font:var(--dsw-font-markdown-base);font-size:calc(var(--dsh-content-font-size,14px) - 2px)}.F1KBNa_threadFontProbe{visibility:hidden;pointer-events:none;width:0;height:0;position:absolute;overflow:hidden}.F1KBNa_discussionBody{flex-direction:column;flex:auto;min-height:0;padding:0 12px;display:flex;overflow:hidden}.F1KBNa_discussion[data-lost]{border-left-color:var(--dsw-alias-label-secondary);background:repeating-linear-gradient(135deg, var(--dsw-alias-interactive-bg-hover) 0 4px, transparent 4px 8px);background-origin:border-box}.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend,.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend:hover:not(:disabled),.F1KBNa_discussion[data-lost] .F1KBNa_discussionSend:disabled{background:var(--dsw-alias-label-secondary);border-color:var(--dsw-alias-label-secondary);color:var(--dsw-alias-label-primary-foreground)}.F1KBNa_discussion[data-lost] .F1KBNa_discussionUser{background:color-mix(in srgb, var(--dsw-alias-label-secondary) 30%, transparent)}.F1KBNa_discussionAnswer{color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;margin:0;padding:0;font-family:inherit;line-height:22px}.F1KBNa_discussionUser{box-sizing:border-box;background:var(--dsw-specific-bubble,var(--dsw-alias-bg-layer-2,var(--dsw-alias-interactive-bg-hover)));width:fit-content;max-width:82%;color:var(--dsw-alias-label-primary);white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;border-radius:8px 0 8px 8px;margin:6.6px 0 6.6px auto;padding:4.4px 11px;font-family:inherit;line-height:22px}.F1KBNa_discussionCode{box-sizing:border-box;font:var(--dsw-font-markdown-code);font-family:var(--ds-font-family-code);background:color-mix(in srgb, var(--dsw-alias-markdown-inline-code,var(--dsw-alias-interactive-bg-hover-solid)) 90%, var(--dsw-alias-label-secondary));border:.5px solid var(--dsw-alias-border-l1);border-radius:6px;align-items:center;padding:0 5px;font-size:.875em;line-height:16px;display:inline-flex}.F1KBNa_discussionBody strong{font-weight:700}.F1KBNa_discussionNote{color:var(--dsw-alias-label-secondary);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:0;font-family:inherit;line-height:22px}.F1KBNa_discussionNote[data-diff-discussion-hidden]{color:var(--dsw-alias-label-tertiary)}.F1KBNa_discussionDots{margin-left:1px}.F1KBNa_discussionDots>span{animation:1.2s ease-in-out infinite F1KBNa_discussionDot}.F1KBNa_discussionDots>span:nth-child(2){animation-delay:.15s}.F1KBNa_discussionDots>span:nth-child(3){animation-delay:.3s}@keyframes F1KBNa_discussionDot{0%,60%,to{opacity:.25}30%{opacity:1}}.F1KBNa_quoteLines{table-layout:fixed;border-spacing:0;width:calc(100% + 27px);min-width:0;color:var(--dsw-alias-label-primary);font:var(--dsw-font-markdown-code-block);line-height:var(--dsh-diff-line-height,22px);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover) 55%, transparent);margin:0 -12px 0 -15px;display:table}.F1KBNa_quoteAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 12%, transparent)}.F1KBNa_quoteDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 13%, transparent)}.F1KBNa_quoteLine{font-size:calc(1em * var(--dsh-diff-font-scale,1));height:var(--dsh-diff-line-height,22px);display:table-row}.F1KBNa_quoteCode{display:table-cell}.F1KBNa_quoteText{white-space:pre-wrap;overflow-wrap:anywhere;cursor:text;display:block}.F1KBNa_quoteNoWrap .F1KBNa_quoteText{white-space:pre;overflow-wrap:normal;overflow:hidden}.F1KBNa_quoteNoWrap .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-diff-quote-width,0px) + 100%);display:inline-block}.F1KBNa_quoteSplit{align-self:stretch;align-items:flex-start;margin:0 -12px;display:flex}.F1KBNa_quoteSplitSide{flex:1 1 0;min-width:0}.F1KBNa_quoteSplitSide+.F1KBNa_quoteSplitSide{border-left:1px solid var(--dsw-alias-border-l2)}.F1KBNa_quoteSplitTable{table-layout:fixed;border-spacing:0;width:100%;display:table}.F1KBNa_quoteNoWrap .F1KBNa_quoteSplit [data-diff-quote-side=left] .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-quote-width-left,0px) + 100%);display:inline-block}.F1KBNa_quoteNoWrap .F1KBNa_quoteSplit [data-diff-quote-side=right] .F1KBNa_quoteText:after{content:\"\";width:calc(var(--dsh-quote-width-right,0px) + 100%);display:inline-block}.F1KBNa_discussionHead{box-sizing:border-box;flex:none;align-items:center;gap:8px;height:22px;padding:0 12px;font-size:12px;line-height:16px;display:flex}.F1KBNa_discussionCompose{box-sizing:border-box;flex:none;align-items:flex-end;gap:8px;height:44px;margin:0 -6px;padding:0 0 6.6px;display:flex}.F1KBNa_discussionSlack{flex:1 1 0;min-height:0;max-height:22px}.F1KBNa_discussionInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-base);min-width:0;height:26px;color:var(--dsw-alias-label-primary);cursor:text;border-radius:6px;flex:auto;padding:3px 8px;font-family:inherit;line-height:18px}.F1KBNa_discussionToggle{width:18px;height:18px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_discussionToggle:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_discussionRangeWrap{font:var(--dsw-font-markdown-code-block);flex:none}.F1KBNa_discussionRange{color:var(--dsw-alias-label-tertiary);font-family:inherit}.F1KBNa_discussionInput:focus{border-color:var(--dsw-alias-state-business-primary);outline:none}.F1KBNa_discussionInput::placeholder{font-family:inherit;font-size:inherit;color:var(--dsw-alias-label-tertiary)}.F1KBNa_discussionSend{box-sizing:border-box;white-space:nowrap;flex:none;justify-content:center;align-items:center;gap:6px;height:26px;padding-left:9px;padding-right:9px;display:inline-flex}.F1KBNa_rowDiscussed{--diff-row-wash:color-mix(in srgb, var(--dsw-alias-label-secondary) 14%, transparent);background-image:linear-gradient(var(--diff-row-wash), var(--diff-row-wash))}@keyframes F1KBNa_diffFlashFade{0%{opacity:1}to{opacity:0}}@keyframes F1KBNa_diffFlashShake{0%{opacity:1;transform:translateY(0)}10%{transform:translateY(1px)}20%{transform:translateY(-1px)}30%{transform:translateY(1px)}40%{transform:translateY(-1px)}50%{transform:translateY(1px)}60%{transform:translateY(-1px)}70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0)}}.F1KBNa_overviewRuler{pointer-events:none;opacity:.5;width:4px;position:absolute;top:0;bottom:0;right:0}.F1KBNa_overviewRulerSplit{width:var(--dsh-scrollbar-width,8px);bottom:calc(var(--dsh-scrollbar-width,8px) + 1px)}.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_markerSplitDel{width:50%;left:0;right:auto}.F1KBNa_markerSplitAdd{width:50%;left:auto;right:0}.F1KBNa_lines{border-spacing:0;width:max-content;min-width:100%;font-size:calc(1em * var(--dsh-diff-font-scale,1));display:table}.F1KBNa_line{height:var(--dsh-diff-line-height,22px);line-height:var(--dsh-diff-line-height,22px);-webkit-user-select:none;user-select:none;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_line>.F1KBNa_gutter{z-index:1;background-color:var(--dsw-alias-markdown-code-block);background-image:linear-gradient(var(--diff-row-tint,transparent), var(--diff-row-tint,transparent)), linear-gradient(var(--diff-row-wash,transparent), var(--diff-row-wash,transparent));position:sticky;left:0}.F1KBNa_line>.F1KBNa_gutter+.F1KBNa_gutter{left:44px}.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{--diff-row-tint:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent);background-color:var(--diff-row-tint)}.F1KBNa_add{--diff-row-tint:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent);background-color:var(--diff-row-tint)}.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_presentationSelect{cursor:pointer;height:28px;color:var(--dsw-alias-label-tertiary);background:0 0;border:none;border-radius:28px;justify-content:center;align-items:center;gap:2px;padding:0 6px;display:inline-flex}.F1KBNa_presentationSelect:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_chip{justify-content:flex-end;align-items:center;gap:5px;min-width:0;padding-right:14px;display:inline-flex}.F1KBNa_chipLabel{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.F1KBNa_coverHost{align-items:center;display:inline-flex;position:relative}.F1KBNa_coverCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-base);box-shadow:var(--dsw-shadow-lv2);border-radius:12px;align-items:center;gap:4px;padding:6px;display:flex}.F1KBNa_coverPopover{z-index:50;position:absolute;top:calc(100% + 6px);right:0}.F1KBNa_coverNotice{z-index:80;pointer-events:none;animation:1.25s ease-out forwards F1KBNa_coverNoticeFade;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.F1KBNa_coverNoticeCard{gap:4px;padding:6px 8px}@keyframes F1KBNa_coverNoticeFade{0%,78%{opacity:1}to{opacity:0}}.F1KBNa_coverNoticeGlyph{width:44px;height:44px;color:var(--dsw-alias-label-tertiary);border-radius:10px;justify-content:center;align-items:center;display:inline-flex}.F1KBNa_coverNoticeGlyph[data-on]{color:var(--dsw-alias-label-primary)}.F1KBNa_coverNoticeGlyph[data-changed]{background:var(--dsw-alias-interactive-bg-hover)}.F1KBNa_coverNoticeText{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.F1KBNa_coverButton{width:32px;height:32px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;padding:0;display:inline-flex}.F1KBNa_coverButton:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_coverButton[data-on]{color:var(--dsw-alias-label-primary)}.F1KBNa_presentationHost{align-items:center;display:inline-flex}.F1KBNa_chipPresentation{min-width:36px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:20px;flex:none;justify-content:center;align-items:center;gap:2px;padding:0 6px;display:inline-flex}.F1KBNa_chipPresentation:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.F1KBNa_mirrored{transform:scaleX(-1)}.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:var(--dsh-diff-line-height,22px)}.F1KBNa_subline{height:var(--dsh-diff-line-height,22px);line-height:var(--dsh-diff-line-height,22px);white-space:pre;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{isolation:isolate;flex-direction:column;flex:1;min-height:0;display:flex;position:relative;overflow:hidden}.F1KBNa_diffBodySplit{flex:1;min-height:0;overflow-x:hidden}.F1KBNa_splitCols{width:100%;min-width:0;min-height:100%;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_splitDiscussions{z-index:3;pointer-events:none;width:100%;height:0;position:absolute;top:0;left:0}.F1KBNa_splitDiscussion{box-sizing:border-box;pointer-events:auto;background:var(--dsw-alias-bg-base);position:absolute;left:0}.F1KBNa_splitSealed,.F1KBNa_splitSealed *{-webkit-user-select:none!important;user-select:none!important}.F1KBNa_splitSealedLeft [data-diff-split-side=left],.F1KBNa_splitSealedLeft [data-diff-split-side=left] *,.F1KBNa_splitSealedRight [data-diff-split-side=right],.F1KBNa_splitSealedRight [data-diff-split-side=right] *{-webkit-user-select:text!important;user-select:text!important}.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{overscroll-behavior-x:none;min-width:0;height:var(--dsh-scrollbar-width,8px);flex:1 1 0;overflow:auto hidden}.F1KBNa_splitHScroll::-webkit-scrollbar{height:var(--dsh-scrollbar-width,8px)}.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(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent)}.F1KBNa_splitLadd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent)}.F1KBNa_splitRdel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 20%, transparent)}.F1KBNa_splitRadd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 18%, transparent)}.F1KBNa_intraDel{background-color:color-mix(in srgb, var(--dsh-diff-del-color,var(--dsw-alias-state-error-primary)) 34%, transparent);text-decoration:line-through}.F1KBNa_intraAdd{background-color:color-mix(in srgb, var(--dsh-diff-add-color,var(--dsw-alias-state-success-primary)) 32%, transparent)}";
25
25
  const tagId = "dsh-diff-approval/PendingPanel.module.css";
26
26
  if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
27
27
  const tag = document.createElement("style");
@@ -31,260 +31,271 @@ window.__ModuleLoader__.load({
31
31
  document.head.appendChild(tag);
32
32
  }
33
33
  var PendingPanel_module_css_default = {
34
- "addCount": "F1KBNa_addCount",
35
- "emptyState": "F1KBNa_emptyState",
36
- "diff": "F1KBNa_diff",
37
- "hint": "F1KBNa_hint",
38
- "listScroll": "F1KBNa_listScroll",
39
- "divergedHint": "F1KBNa_divergedHint",
34
+ "splitRdel": "F1KBNa_splitRdel",
35
+ "pickerTitle": "F1KBNa_pickerTitle",
36
+ "searchBar": "F1KBNa_searchBar",
37
+ "readError": "F1KBNa_readError",
38
+ "quoteNoWrap": "F1KBNa_quoteNoWrap",
40
39
  "colorSv": "F1KBNa_colorSv",
41
- "stepperButton": "F1KBNa_stepperButton",
42
- "treeCaret": "F1KBNa_treeCaret",
43
- "blockActionsDivider": "F1KBNa_blockActionsDivider",
44
- "discussionRangeWrap": "F1KBNa_discussionRangeWrap",
45
- "pickerNote": "F1KBNa_pickerNote",
46
- "quoteAdd": "F1KBNa_quoteAdd",
47
- "colorPickerInput": "F1KBNa_colorPickerInput",
48
- "gotoInput": "F1KBNa_gotoInput",
49
- "chipLabel": "F1KBNa_chipLabel",
50
- "splitHScrollRow": "F1KBNa_splitHScrollRow",
51
- "iconAction": "F1KBNa_iconAction",
40
+ "listTabs": "F1KBNa_listTabs",
41
+ "blockFlash": "F1KBNa_blockFlash",
42
+ "discussionToggle": "F1KBNa_discussionToggle",
43
+ "gotoHost": "F1KBNa_gotoHost",
52
44
  "footerButtons": "F1KBNa_footerButtons",
53
- "kindHint": "F1KBNa_kindHint",
54
- "del": "F1KBNa_del",
45
+ "splitHScroll": "F1KBNa_splitHScroll",
46
+ "colorPickerChevron": "F1KBNa_colorPickerChevron",
47
+ "row": "F1KBNa_row",
48
+ "blockPosition": "F1KBNa_blockPosition",
49
+ "actionChord": "F1KBNa_actionChord",
50
+ "badge": "F1KBNa_badge",
51
+ "hint": "F1KBNa_hint",
52
+ "coverNoticeText": "F1KBNa_coverNoticeText",
53
+ "split": "F1KBNa_split",
54
+ "treeNote": "F1KBNa_treeNote",
55
55
  "missingHint": "F1KBNa_missingHint",
56
+ "fileListFloatClosing": "F1KBNa_fileListFloatClosing",
57
+ "listTab": "F1KBNa_listTab",
58
+ "stepperButton": "F1KBNa_stepperButton",
59
+ "resizeHandle": "F1KBNa_resizeHandle",
60
+ "quoteSplitTable": "F1KBNa_quoteSplitTable",
61
+ "pickerCheck": "F1KBNa_pickerCheck",
56
62
  "rowDiscussed": "F1KBNa_rowDiscussed",
57
- "tree": "F1KBNa_tree",
58
- "states": "F1KBNa_states",
59
- "diffPreviewScroll": "F1KBNa_diffPreviewScroll",
60
- "settingsGroupDesc": "F1KBNa_settingsGroupDesc",
63
+ "panelFailure": "F1KBNa_panelFailure",
61
64
  "confirmBackdrop": "F1KBNa_confirmBackdrop",
62
- "rowMeta": "F1KBNa_rowMeta",
63
- "blockActions": "F1KBNa_blockActions",
64
- "markerDel": "F1KBNa_markerDel",
65
- "subline": "F1KBNa_subline",
66
- "confirmCard": "F1KBNa_confirmCard",
67
- "searchMatch": "F1KBNa_searchMatch",
68
- "badge": "F1KBNa_badge",
69
- "mdPreviewBody": "F1KBNa_mdPreviewBody",
70
- "blockPosition": "F1KBNa_blockPosition",
71
- "splitSealedLeft": "F1KBNa_splitSealedLeft",
72
- "rowMenuAnchor": "F1KBNa_rowMenuAnchor",
73
- "rail": "F1KBNa_rail",
74
- "colorPickerPopover": "F1KBNa_colorPickerPopover",
75
- "settingsGroupText": "F1KBNa_settingsGroupText",
76
- "badgeLabel": "F1KBNa_badgeLabel",
77
- "lines": "F1KBNa_lines",
78
- "fileListFloatClosing": "F1KBNa_fileListFloatClosing",
79
- "group": "F1KBNa_group",
80
- "groupHead": "F1KBNa_groupHead",
81
- "quoteSplit": "F1KBNa_quoteSplit",
82
- "splitCol": "F1KBNa_splitCol",
83
- "expand": "F1KBNa_expand",
84
- "chip": "F1KBNa_chip",
85
- "discussionRange": "F1KBNa_discussionRange",
86
- "mdPreviewDouble": "F1KBNa_mdPreviewDouble",
65
+ "commentLabel": "F1KBNa_commentLabel",
66
+ "overviewRuler": "F1KBNa_overviewRuler",
67
+ "colorHueCursor": "F1KBNa_colorHueCursor",
68
+ "del": "F1KBNa_del",
69
+ "discussionInput": "F1KBNa_discussionInput",
70
+ "splitCols": "F1KBNa_splitCols",
71
+ "stepper": "F1KBNa_stepper",
72
+ "mdPreviewSingle": "F1KBNa_mdPreviewSingle",
73
+ "pickerIcon": "F1KBNa_pickerIcon",
74
+ "quoteText": "F1KBNa_quoteText",
75
+ "headerActions": "F1KBNa_headerActions",
76
+ "pickerCard": "F1KBNa_pickerCard",
77
+ "markerSplitAdd": "F1KBNa_markerSplitAdd",
78
+ "settingsGroupBody": "F1KBNa_settingsGroupBody",
79
+ "kindHint": "F1KBNa_kindHint",
80
+ "commentHead": "F1KBNa_commentHead",
81
+ "commentGroupName": "F1KBNa_commentGroupName",
82
+ "gotoAction": "F1KBNa_gotoAction",
83
+ "commentTitle": "F1KBNa_commentTitle",
84
+ "panel": "F1KBNa_panel",
85
+ "divider": "F1KBNa_divider",
86
+ "discussionRangeWrap": "F1KBNa_discussionRangeWrap",
87
+ "gotoBackdrop": "F1KBNa_gotoBackdrop",
88
+ "discussionDots": "F1KBNa_discussionDots",
87
89
  "coverCard": "F1KBNa_coverCard",
88
- "fileListShrink": "F1KBNa_fileListShrink",
89
- "confirmText": "F1KBNa_confirmText",
90
- "discussionCode": "F1KBNa_discussionCode",
91
- "stepperButtonUp": "F1KBNa_stepperButtonUp",
92
- "listTab": "F1KBNa_listTab",
93
- "colorSvCursor": "F1KBNa_colorSvCursor",
90
+ "badgeLabel": "F1KBNa_badgeLabel",
91
+ "coverNoticeCard": "F1KBNa_coverNoticeCard",
92
+ "colorPicker": "F1KBNa_colorPicker",
93
+ "detail": "F1KBNa_detail",
94
+ "intraAdd": "F1KBNa_intraAdd",
94
95
  "diffHeader": "F1KBNa_diffHeader",
95
- "detailEmpty": "F1KBNa_detailEmpty",
96
- "blockFlash": "F1KBNa_blockFlash",
97
- "settingsRow": "F1KBNa_settingsRow",
98
- "kindTag": "F1KBNa_kindTag",
99
- "splitSealedRight": "F1KBNa_splitSealedRight",
96
+ "quoteCode": "F1KBNa_quoteCode",
97
+ "action": "F1KBNa_action",
100
98
  "context": "F1KBNa_context",
101
- "pickerForm": "F1KBNa_pickerForm",
102
- "importNote": "F1KBNa_importNote",
103
- "searchBar": "F1KBNa_searchBar",
99
+ "commentLost": "F1KBNa_commentLost",
100
+ "iconAction": "F1KBNa_iconAction",
101
+ "splitLdel": "F1KBNa_splitLdel",
102
+ "fileList": "F1KBNa_fileList",
103
+ "mirrored": "F1KBNa_mirrored",
104
+ "searchCount": "F1KBNa_searchCount",
105
+ "confirmCard": "F1KBNa_confirmCard",
106
+ "addButton": "F1KBNa_addButton",
104
107
  "langLabel": "F1KBNa_langLabel",
105
- "toggleThumb": "F1KBNa_toggleThumb",
106
- "bulkActions": "F1KBNa_bulkActions",
108
+ "kindTag": "F1KBNa_kindTag",
107
109
  "noticeButton": "F1KBNa_noticeButton",
110
+ "bulkActions": "F1KBNa_bulkActions",
111
+ "noteCentered": "F1KBNa_noteCentered",
108
112
  "discussionDot": "F1KBNa_discussionDot",
109
- "listHead": "F1KBNa_listHead",
110
- "gutter": "F1KBNa_gutter",
111
- "rows": "F1KBNa_rows",
112
- "settingsRowTitle": "F1KBNa_settingsRowTitle",
113
- "action": "F1KBNa_action",
114
- "panelFailureText": "F1KBNa_panelFailureText",
115
- "layer": "F1KBNa_layer",
116
- "mirrored": "F1KBNa_mirrored",
117
- "toggleOn": "F1KBNa_toggleOn",
118
- "actionPrimary": "F1KBNa_actionPrimary",
119
- "note": "F1KBNa_note",
120
- "rowHead": "F1KBNa_rowHead",
121
- "threadFontProbe": "F1KBNa_threadFontProbe",
122
- "settingsPage": "F1KBNa_settingsPage",
123
- "colorSwatch": "F1KBNa_colorSwatch",
124
- "pickerTitle": "F1KBNa_pickerTitle",
125
- "discussionHead": "F1KBNa_discussionHead",
126
- "quoteCode": "F1KBNa_quoteCode",
127
- "settingsRowText": "F1KBNa_settingsRowText",
128
- "discussionUser": "F1KBNa_discussionUser",
129
- "readError": "F1KBNa_readError",
130
- "panelFailureRetry": "F1KBNa_panelFailureRetry",
131
- "coverNoticeGlyph": "F1KBNa_coverNoticeGlyph",
132
- "fileListFloat": "F1KBNa_fileListFloat",
133
- "coverNotice": "F1KBNa_coverNotice",
134
- "discussionAnswer": "F1KBNa_discussionAnswer",
135
- "coverNoticeFade": "F1KBNa_coverNoticeFade",
136
- "coverBackdrop": "F1KBNa_coverBackdrop",
137
- "listEmpty": "F1KBNa_listEmpty",
138
- "vSpacer": "F1KBNa_vSpacer",
139
- "split": "F1KBNa_split",
140
- "divider": "F1KBNa_divider",
141
- "pickerIcon": "F1KBNa_pickerIcon",
142
- "headerActions": "F1KBNa_headerActions",
143
- "settingsReset": "F1KBNa_settingsReset",
144
- "coverPopover": "F1KBNa_coverPopover",
145
- "addButton": "F1KBNa_addButton",
146
- "diffPath": "F1KBNa_diffPath",
147
- "commentLost": "F1KBNa_commentLost",
148
- "stepper": "F1KBNa_stepper",
149
- "searchInput": "F1KBNa_searchInput",
150
- "statusBar": "F1KBNa_statusBar",
151
- "splitLdel": "F1KBNa_splitLdel",
152
- "colorPickerInputRow": "F1KBNa_colorPickerInputRow",
153
- "listFold": "F1KBNa_listFold",
154
- "quoteSplitSide": "F1KBNa_quoteSplitSide",
155
- "markerAdd": "F1KBNa_markerAdd",
156
- "overviewRuler": "F1KBNa_overviewRuler",
157
- "badgeCount": "F1KBNa_badgeCount",
158
- "settingsGroupBody": "F1KBNa_settingsGroupBody",
159
- "panelDocked": "F1KBNa_panelDocked",
113
+ "add": "F1KBNa_add",
114
+ "mdPreviewBody": "F1KBNa_mdPreviewBody",
160
115
  "colorPickerPanel": "F1KBNa_colorPickerPanel",
161
- "pickerCheck": "F1KBNa_pickerCheck",
162
- "searchCount": "F1KBNa_searchCount",
163
- "splitHScrollFill": "F1KBNa_splitHScrollFill",
164
- "settingsGroupHeader": "F1KBNa_settingsGroupHeader",
165
- "expandExpanded": "F1KBNa_expandExpanded",
116
+ "listEmpty": "F1KBNa_listEmpty",
117
+ "addCount": "F1KBNa_addCount",
118
+ "diffFlashShake": "F1KBNa_diffFlashShake",
119
+ "noticeText": "F1KBNa_noticeText",
120
+ "headerEntryCount": "F1KBNa_headerEntryCount",
121
+ "headerEntry": "F1KBNa_headerEntry",
166
122
  "searchToggle": "F1KBNa_searchToggle",
167
- "presentationHost": "F1KBNa_presentationHost",
168
- "line": "F1KBNa_line",
169
- "close": "F1KBNa_close",
170
- "discussionInput": "F1KBNa_discussionInput",
171
- "settingsRowDesc": "F1KBNa_settingsRowDesc",
123
+ "colorHue": "F1KBNa_colorHue",
124
+ "divergedHint": "F1KBNa_divergedHint",
125
+ "panelFailureText": "F1KBNa_panelFailureText",
126
+ "commentRow": "F1KBNa_commentRow",
127
+ "colorSvCursor": "F1KBNa_colorSvCursor",
128
+ "markerSplitDel": "F1KBNa_markerSplitDel",
172
129
  "treeName": "F1KBNa_treeName",
173
- "quoteNoWrap": "F1KBNa_quoteNoWrap",
174
- "splitDiscussions": "F1KBNa_splitDiscussions",
175
- "fileListKnobIn": "F1KBNa_fileListKnobIn",
130
+ "diffBodySplit": "F1KBNa_diffBodySplit",
131
+ "expand": "F1KBNa_expand",
176
132
  "splitDiscussion": "F1KBNa_splitDiscussion",
177
- "listTitle": "F1KBNa_listTitle",
178
- "commentTitle": "F1KBNa_commentTitle",
179
- "detail": "F1KBNa_detail",
180
- "colorPicker": "F1KBNa_colorPicker",
181
- "diffPreviewTitle": "F1KBNa_diffPreviewTitle",
182
- "colorHueCursor": "F1KBNa_colorHueCursor",
183
- "discussionCompose": "F1KBNa_discussionCompose",
184
- "coverButton": "F1KBNa_coverButton",
185
- "discussionDots": "F1KBNa_discussionDots",
133
+ "langSelect": "F1KBNa_langSelect",
134
+ "overviewRulerSplit": "F1KBNa_overviewRulerSplit",
135
+ "pickerNote": "F1KBNa_pickerNote",
136
+ "listHead": "F1KBNa_listHead",
186
137
  "discussionSlack": "F1KBNa_discussionSlack",
187
- "mdPreviewSingle": "F1KBNa_mdPreviewSingle",
188
- "colorPickerTrigger": "F1KBNa_colorPickerTrigger",
189
- "searchMatchCurrent": "F1KBNa_searchMatchCurrent",
190
- "confirmActions": "F1KBNa_confirmActions",
191
- "presentationSelect": "F1KBNa_presentationSelect",
192
- "panel": "F1KBNa_panel",
193
- "noticeText": "F1KBNa_noticeText",
194
- "diffFlashFade": "F1KBNa_diffFlashFade",
195
- "splitHScroll": "F1KBNa_splitHScroll",
196
- "resizeHandle": "F1KBNa_resizeHandle",
197
- "stepperValue": "F1KBNa_stepperValue",
198
- "colorBackdrop": "F1KBNa_colorBackdrop",
199
- "quoteText": "F1KBNa_quoteText",
200
- "coverNoticeCard": "F1KBNa_coverNoticeCard",
201
- "coverNoticeText": "F1KBNa_coverNoticeText",
202
- "notice": "F1KBNa_notice",
203
- "settingsGroup": "F1KBNa_settingsGroup",
204
- "pickerCard": "F1KBNa_pickerCard",
205
- "splitRoot": "F1KBNa_splitRoot",
206
- "listTabs": "F1KBNa_listTabs",
207
- "splitCols": "F1KBNa_splitCols",
138
+ "pickerClose": "F1KBNa_pickerClose",
139
+ "searchMatch": "F1KBNa_searchMatch",
140
+ "rowMeta": "F1KBNa_rowMeta",
141
+ "mdPreviewContent": "F1KBNa_mdPreviewContent",
142
+ "discussionCompose": "F1KBNa_discussionCompose",
143
+ "rowFailed": "F1KBNa_rowFailed",
144
+ "discussionHead": "F1KBNa_discussionHead",
145
+ "diffBodyWrap": "F1KBNa_diffBodyWrap",
146
+ "confirmText": "F1KBNa_confirmText",
208
147
  "delCount": "F1KBNa_delCount",
148
+ "searchInput": "F1KBNa_searchInput",
149
+ "importNote": "F1KBNa_importNote",
150
+ "splitHScrollRow": "F1KBNa_splitHScrollRow",
151
+ "settingsGroupText": "F1KBNa_settingsGroupText",
152
+ "pickerForm": "F1KBNa_pickerForm",
153
+ "diffPreviewScroll": "F1KBNa_diffPreviewScroll",
154
+ "discussionCode": "F1KBNa_discussionCode",
155
+ "coverPopover": "F1KBNa_coverPopover",
156
+ "group": "F1KBNa_group",
157
+ "splitLadd": "F1KBNa_splitLadd",
158
+ "threadFontProbe": "F1KBNa_threadFontProbe",
159
+ "discussion": "F1KBNa_discussion",
160
+ "gotoInput": "F1KBNa_gotoInput",
209
161
  "splitSealed": "F1KBNa_splitSealed",
210
- "actionQuietDisabled": "F1KBNa_actionQuietDisabled",
162
+ "settingsSelector": "F1KBNa_settingsSelector",
163
+ "discussionUser": "F1KBNa_discussionUser",
164
+ "treeRow": "F1KBNa_treeRow",
165
+ "addPath": "F1KBNa_addPath",
166
+ "close": "F1KBNa_close",
167
+ "overviewMarker": "F1KBNa_overviewMarker",
168
+ "colorBackdrop": "F1KBNa_colorBackdrop",
169
+ "states": "F1KBNa_states",
170
+ "gotoLayer": "F1KBNa_gotoLayer",
211
171
  "quoteDel": "F1KBNa_quoteDel",
212
- "discussionBody": "F1KBNa_discussionBody",
213
- "diffStats": "F1KBNa_diffStats",
214
- "intraDel": "F1KBNa_intraDel",
215
- "colorPickerChevron": "F1KBNa_colorPickerChevron",
216
- "dockHost": "F1KBNa_dockHost",
217
- "gotoBox": "F1KBNa_gotoBox",
218
- "splitDivider": "F1KBNa_splitDivider",
219
- "discussionToggle": "F1KBNa_discussionToggle",
220
- "diffBodySplit": "F1KBNa_diffBodySplit",
221
- "discussionRow": "F1KBNa_discussionRow",
222
- "commentLabel": "F1KBNa_commentLabel",
223
- "settingsGroupChevron": "F1KBNa_settingsGroupChevron",
224
- "splitLadd": "F1KBNa_splitLadd",
225
- "diffBodyWrap": "F1KBNa_diffBodyWrap",
172
+ "coverBackdrop": "F1KBNa_coverBackdrop",
226
173
  "colorValue": "F1KBNa_colorValue",
227
- "overviewMarker": "F1KBNa_overviewMarker",
228
- "rowFailed": "F1KBNa_rowFailed",
229
- "searchToggleOn": "F1KBNa_searchToggleOn",
230
- "actionChord": "F1KBNa_actionChord",
231
- "mdPreviewWrap": "F1KBNa_mdPreviewWrap",
232
- "mdPreviewFallback": "F1KBNa_mdPreviewFallback",
174
+ "tree": "F1KBNa_tree",
175
+ "colorPickerInput": "F1KBNa_colorPickerInput",
176
+ "stepperValue": "F1KBNa_stepperValue",
177
+ "coverHost": "F1KBNa_coverHost",
178
+ "splitRoot": "F1KBNa_splitRoot",
179
+ "discussionBody": "F1KBNa_discussionBody",
180
+ "settingsRow": "F1KBNa_settingsRow",
181
+ "splitHScrollFill": "F1KBNa_splitHScrollFill",
182
+ "importButton": "F1KBNa_importButton",
183
+ "discussionAnswer": "F1KBNa_discussionAnswer",
184
+ "detailEmpty": "F1KBNa_detailEmpty",
185
+ "diff": "F1KBNa_diff",
186
+ "vSpacer": "F1KBNa_vSpacer",
187
+ "presentationSelect": "F1KBNa_presentationSelect",
188
+ "gotoLayerRight": "F1KBNa_gotoLayerRight",
189
+ "settingsGroupDesc": "F1KBNa_settingsGroupDesc",
190
+ "stepperButtonUp": "F1KBNa_stepperButtonUp",
191
+ "actionError": "F1KBNa_actionError",
192
+ "colorPickerPopover": "F1KBNa_colorPickerPopover",
193
+ "chipLabel": "F1KBNa_chipLabel",
194
+ "coverButton": "F1KBNa_coverButton",
233
195
  "wrapActive": "F1KBNa_wrapActive",
234
- "mdPreviewContent": "F1KBNa_mdPreviewContent",
235
- "pickerName": "F1KBNa_pickerName",
236
- "rowPath": "F1KBNa_rowPath",
237
- "fileList": "F1KBNa_fileList",
238
- "settingsSelector": "F1KBNa_settingsSelector",
239
- "commentRow": "F1KBNa_commentRow",
240
- "commentHead": "F1KBNa_commentHead",
241
- "treeRow": "F1KBNa_treeRow",
196
+ "markerAdd": "F1KBNa_markerAdd",
197
+ "splitDivider": "F1KBNa_splitDivider",
198
+ "splitSealedLeft": "F1KBNa_splitSealedLeft",
199
+ "markerDel": "F1KBNa_markerDel",
200
+ "diffStats": "F1KBNa_diffStats",
201
+ "coverNoticeFade": "F1KBNa_coverNoticeFade",
242
202
  "diffActions": "F1KBNa_diffActions",
243
- "diffBody": "F1KBNa_diffBody",
244
- "actionError": "F1KBNa_actionError",
245
- "importButton": "F1KBNa_importButton",
246
- "pickerInput": "F1KBNa_pickerInput",
247
- "splitRadd": "F1KBNa_splitRadd",
203
+ "presentationHost": "F1KBNa_presentationHost",
204
+ "listScroll": "F1KBNa_listScroll",
205
+ "settingsRowDesc": "F1KBNa_settingsRowDesc",
206
+ "fileListFloat": "F1KBNa_fileListFloat",
207
+ "missing": "F1KBNa_missing",
208
+ "discussionRange": "F1KBNa_discussionRange",
209
+ "quoteAdd": "F1KBNa_quoteAdd",
248
210
  "code": "F1KBNa_code",
211
+ "toggleThumb": "F1KBNa_toggleThumb",
212
+ "quoteLines": "F1KBNa_quoteLines",
213
+ "groupHead": "F1KBNa_groupHead",
214
+ "wrap": "F1KBNa_wrap",
249
215
  "floatResizeHandle": "F1KBNa_floatResizeHandle",
250
- "blockFlashShake": "F1KBNa_blockFlashShake",
251
- "discussionSend": "F1KBNa_discussionSend",
252
- "noteCentered": "F1KBNa_noteCentered",
253
- "header": "F1KBNa_header",
254
- "add": "F1KBNa_add",
255
- "chipPresentation": "F1KBNa_chipPresentation",
256
- "toggle": "F1KBNa_toggle",
257
- "statusAction": "F1KBNa_statusAction",
258
- "intraAdd": "F1KBNa_intraAdd",
216
+ "diffPreviewTitle": "F1KBNa_diffPreviewTitle",
259
217
  "title": "F1KBNa_title",
260
- "row": "F1KBNa_row",
261
- "headerEntryCount": "F1KBNa_headerEntryCount",
262
- "settingsGroupTitle": "F1KBNa_settingsGroupTitle",
263
- "flexSpacer": "F1KBNa_flexSpacer",
218
+ "treeCaret": "F1KBNa_treeCaret",
219
+ "gotoBox": "F1KBNa_gotoBox",
220
+ "blockActions": "F1KBNa_blockActions",
221
+ "discussionRow": "F1KBNa_discussionRow",
222
+ "gutter": "F1KBNa_gutter",
223
+ "splitCol": "F1KBNa_splitCol",
224
+ "pickerInput": "F1KBNa_pickerInput",
225
+ "confirmActions": "F1KBNa_confirmActions",
264
226
  "discussionPin": "F1KBNa_discussionPin",
227
+ "diffFlashFade": "F1KBNa_diffFlashFade",
228
+ "fileListShrink": "F1KBNa_fileListShrink",
229
+ "intraDel": "F1KBNa_intraDel",
230
+ "settingsPage": "F1KBNa_settingsPage",
231
+ "line": "F1KBNa_line",
232
+ "settingsGroupChevron": "F1KBNa_settingsGroupChevron",
233
+ "settingsGroup": "F1KBNa_settingsGroup",
234
+ "diffPreview": "F1KBNa_diffPreview",
235
+ "panelDocked": "F1KBNa_panelDocked",
236
+ "layer": "F1KBNa_layer",
237
+ "header": "F1KBNa_header",
238
+ "colorSwatch": "F1KBNa_colorSwatch",
239
+ "flexSpacer": "F1KBNa_flexSpacer",
265
240
  "discussionNote": "F1KBNa_discussionNote",
241
+ "quoteSplit": "F1KBNa_quoteSplit",
242
+ "rowMenuAnchor": "F1KBNa_rowMenuAnchor",
243
+ "rail": "F1KBNa_rail",
244
+ "chip": "F1KBNa_chip",
245
+ "commentTitleEmpty": "F1KBNa_commentTitleEmpty",
246
+ "splitRadd": "F1KBNa_splitRadd",
247
+ "listFold": "F1KBNa_listFold",
248
+ "diffPath": "F1KBNa_diffPath",
249
+ "notice": "F1KBNa_notice",
250
+ "settingsGroupTitle": "F1KBNa_settingsGroupTitle",
251
+ "subline": "F1KBNa_subline",
252
+ "splitDiscussions": "F1KBNa_splitDiscussions",
266
253
  "discussionCell": "F1KBNa_discussionCell",
267
- "quoteLine": "F1KBNa_quoteLine",
268
- "splitRdel": "F1KBNa_splitRdel",
269
- "langSelect": "F1KBNa_langSelect",
270
- "coverHost": "F1KBNa_coverHost",
271
- "headerEntry": "F1KBNa_headerEntry",
272
- "discussion": "F1KBNa_discussion",
273
- "quoteLines": "F1KBNa_quoteLines",
274
- "treeNote": "F1KBNa_treeNote",
275
- "colorHue": "F1KBNa_colorHue",
276
- "addPath": "F1KBNa_addPath",
277
- "wrap": "F1KBNa_wrap",
254
+ "discussionSend": "F1KBNa_discussionSend",
255
+ "settingsRowText": "F1KBNa_settingsRowText",
278
256
  "colorPickerPreview": "F1KBNa_colorPickerPreview",
279
- "pickerClose": "F1KBNa_pickerClose",
280
- "quoteSplitTable": "F1KBNa_quoteSplitTable",
281
- "diffFlashShake": "F1KBNa_diffFlashShake",
282
- "emptyActions": "F1KBNa_emptyActions",
283
- "missing": "F1KBNa_missing",
284
- "diffPreview": "F1KBNa_diffPreview",
257
+ "toggle": "F1KBNa_toggle",
258
+ "badgeCount": "F1KBNa_badgeCount",
259
+ "pickerName": "F1KBNa_pickerName",
260
+ "expandExpanded": "F1KBNa_expandExpanded",
261
+ "quoteLine": "F1KBNa_quoteLine",
262
+ "coverNotice": "F1KBNa_coverNotice",
263
+ "rowPath": "F1KBNa_rowPath",
264
+ "fileListKnobIn": "F1KBNa_fileListKnobIn",
265
+ "listTitle": "F1KBNa_listTitle",
266
+ "mdPreviewFallback": "F1KBNa_mdPreviewFallback",
267
+ "searchMatchCurrent": "F1KBNa_searchMatchCurrent",
268
+ "emptyState": "F1KBNa_emptyState",
269
+ "quoteSplitSide": "F1KBNa_quoteSplitSide",
270
+ "dockHost": "F1KBNa_dockHost",
285
271
  "tabCount": "F1KBNa_tabCount",
286
- "panelFailure": "F1KBNa_panelFailure",
287
- "fileListKnob": "F1KBNa_fileListKnob"
272
+ "actionQuietDisabled": "F1KBNa_actionQuietDisabled",
273
+ "emptyActions": "F1KBNa_emptyActions",
274
+ "toggleOn": "F1KBNa_toggleOn",
275
+ "rowHead": "F1KBNa_rowHead",
276
+ "mdPreviewDouble": "F1KBNa_mdPreviewDouble",
277
+ "splitSealedRight": "F1KBNa_splitSealedRight",
278
+ "blockActionsDivider": "F1KBNa_blockActionsDivider",
279
+ "settingsGroupHeader": "F1KBNa_settingsGroupHeader",
280
+ "blockFlashShake": "F1KBNa_blockFlashShake",
281
+ "note": "F1KBNa_note",
282
+ "fileListKnob": "F1KBNa_fileListKnob",
283
+ "chipPresentation": "F1KBNa_chipPresentation",
284
+ "diffBody": "F1KBNa_diffBody",
285
+ "settingsRowTitle": "F1KBNa_settingsRowTitle",
286
+ "searchToggleOn": "F1KBNa_searchToggleOn",
287
+ "rows": "F1KBNa_rows",
288
+ "statusBar": "F1KBNa_statusBar",
289
+ "colorPickerInputRow": "F1KBNa_colorPickerInputRow",
290
+ "panelFailureRetry": "F1KBNa_panelFailureRetry",
291
+ "settingsReset": "F1KBNa_settingsReset",
292
+ "statusAction": "F1KBNa_statusAction",
293
+ "colorPickerTrigger": "F1KBNa_colorPickerTrigger",
294
+ "actionPrimary": "F1KBNa_actionPrimary",
295
+ "commentGroup": "F1KBNa_commentGroup",
296
+ "lines": "F1KBNa_lines",
297
+ "mdPreviewWrap": "F1KBNa_mdPreviewWrap",
298
+ "coverNoticeGlyph": "F1KBNa_coverNoticeGlyph"
288
299
  };
289
300
  //#endregion
290
301
  //#region lib/types/client/PathPicker.js
@@ -19522,6 +19533,29 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
19522
19533
  });
19523
19534
  }
19524
19535
  /**
19536
+ * Drop every thread whose file the list no longer holds.
19537
+ *
19538
+ * A thread is a block of rows in one file's diff, so a file the reader has kept or reverted out of the
19539
+ * list leaves nothing for its comments to hang on: they go with it, and the same path coming back later
19540
+ * in this visit starts clean. A new object is published only when something actually goes, so the panes
19541
+ * that adopt this record (see `COMMENTS_CHANGED_EVENT`) do not re-adopt an equal object on every poll.
19542
+ *
19543
+ * @param sessionId - the session the panel is reviewing; nothing is dropped without one.
19544
+ * @param listed - the pending entry ids the list is holding.
19545
+ */
19546
+ function forgetDiscussionsNotIn(sessionId, listed) {
19547
+ if (sessionId === void 0) return;
19548
+ const before = threads.get(sessionId);
19549
+ if (before === void 0) return;
19550
+ const held = new Set(listed);
19551
+ const kept = {};
19552
+ let dropped = false;
19553
+ for (const [fileId, list] of Object.entries(before)) if (held.has(fileId)) kept[fileId] = list;
19554
+ else dropped = true;
19555
+ if (!dropped) return;
19556
+ rememberDiscussions(sessionId, kept);
19557
+ }
19558
+ /**
19525
19559
  * The files this page has been told to stop asking about, by session.
19526
19560
  *
19527
19561
  * Keeping or reverting a file asks whether the row should leave the list, and a reader working
@@ -20214,6 +20248,17 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
20214
20248
  */
20215
20249
  const THREAD_ROW_PX = 22;
20216
20250
  /**
20251
+ * How close to a row's own height a measured block may sit and still count as that row, in px.
20252
+ *
20253
+ * A block whose content is a whole number of rows lands on either side of the pixel grid from one pass
20254
+ * to the next — the browser snaps the paint, so the same block measures 572.0004 one pass and 571.9996
20255
+ * the next. Rounding up without a band reads that as 27 rows and then 26, and every flip is a state
20256
+ * write from a layout effect: React counts those as nested updates and throws at fifty (minified #185,
20257
+ * which took the whole panel down). One pixel is far below any real change — the measurement is a row
20258
+ * grid — so a figure this close to the row below it IS that row.
20259
+ */
20260
+ const DISCUSSION_ROW_SNAP_PX = 1;
20261
+ /**
20217
20262
  * The share of the thread's prose size an inline-code chip is drawn at (mirrors
20218
20263
  * `.discussionCode`'s `font-size: 0.875em`, which is the chat's own inline code against its own
20219
20264
  * message text). The chip is measured in its own font, not in the prose one — a code face at
@@ -20389,7 +20434,8 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
20389
20434
  * A thread that has not been sent yet has no turn at all: what the reader has typed so far is its
20390
20435
  * draft, and that is what the item shows, so a comment being written is not listed as a blank line.
20391
20436
  * A thread with neither has nothing to quote — an empty comment box the reader placed and left — and
20392
- * the caller passes in the word for that (see the list).
20437
+ * the caller names it with the box's own placeholder, so the item says what that box is asking for
20438
+ * rather than claiming a title (see the list).
20393
20439
  *
20394
20440
  * @param discussion - the thread to name.
20395
20441
  * @returns the title, or an empty string when there is nothing to say yet.
@@ -21076,6 +21122,22 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21076
21122
  }
21077
21123
  return block.oldStart <= oldMin && block.oldEnd >= oldMax && block.newStart <= newMin && block.newEnd >= newMax;
21078
21124
  }
21125
+ /**
21126
+ * Which change block to focus once the operated one has left the diff.
21127
+ *
21128
+ * The operated block(s) are gone, so the change that followed them slid into the slot they held: focusing
21129
+ * that same index is what recenters and flashes the NEXT change. An operated range that reached the END of
21130
+ * the diff has no such change — every block still pending is above the reader — so the walk wraps to the
21131
+ * first one, the same wrap the prev/next stepping does. Clamping to the last index instead left the focus
21132
+ * pointing past the shorter diff, and then nothing was focused, flashed or scrolled at all.
21133
+ *
21134
+ * @param operated - the index the operated range started at.
21135
+ * @param count - how many blocks the diff holds NOW, after the action.
21136
+ * @returns the block index to focus.
21137
+ */
21138
+ function blockAfterAction(operated, count) {
21139
+ return operated >= count ? 0 : operated;
21140
+ }
21079
21141
  /** Row indices whose text matches `query` under the options; empty for ''. Counted
21080
21142
  * through the same matcher the highlights use, so the tally can never disagree
21081
21143
  * with what is drawn. */
@@ -21170,7 +21232,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21170
21232
  });
21171
21233
  }
21172
21234
  /** The two-column (side-by-side) whole-file diff view. */
21173
- const SplitDiff = (0, react.forwardRef)(function SplitDiff({ file, model, runs, langWrap, tabWidthSpaces, busy, t, selection, leadRows, onBlockKeep, onBlockRevert, onWrapToast, onVisibleLines, discussions, renderDiscussion, selectionComment }, ref) {
21235
+ const SplitDiff = (0, react.forwardRef)(function SplitDiff({ file, model, runs, langWrap, tabWidthSpaces, busy, t, selection, leadRows, onBlockKeep, onBlockRevert, onWrapToast, onVisibleLines, discussions, renderDiscussion, selectionComment, rulerRuns, gotoDialog }, ref) {
21174
21236
  const ROW_HEIGHT_PX = diffLineHeight();
21175
21237
  const NAV_ANCHOR_TOLERANCE_PX = ROW_HEIGHT_PX / 4;
21176
21238
  const { pairs, pairOfRow } = (0, react.useMemo)(() => computeSideBySideDiff(model.diff.rows, true), [model]);
@@ -21348,6 +21410,41 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21348
21410
  ]);
21349
21411
  const totalHeight = pairOffsets === null ? pairCount * ROW_HEIGHT_PX : pairOffsets[pairCount] ?? 0;
21350
21412
  const off = (k) => pairOffsets === null ? k * ROW_HEIGHT_PX : pairOffsets[Math.max(0, Math.min(k, pairCount))] ?? 0;
21413
+ /**
21414
+ * The overview ruler's markers, in the height table's own units: a run's rows are mapped to the PAIRS
21415
+ * they sit in, because pairs are what this view's offsets measure. A change that renders on both sides
21416
+ * — a del pair with the add beside it — lands in the same band and contributes both markers, exactly
21417
+ * like the preview's double column: the ruler says "this stretch changed", and which side changed is
21418
+ * what the two columns themselves show.
21419
+ */
21420
+ const rulerMarkersNow = (0, react.useMemo)(() => {
21421
+ if (totalHeight <= 0 || pairCount === 0) return [];
21422
+ const at = (k) => pairOffsets === null ? k * ROW_HEIGHT_PX : pairOffsets[Math.max(0, Math.min(k, pairCount))] ?? 0;
21423
+ return rulerRuns.flatMap((run) => {
21424
+ let first = -1;
21425
+ let last = -1;
21426
+ for (let row = run.start; row <= run.end; row++) {
21427
+ const pair = pairOfRow.get(row);
21428
+ if (pair === void 0) continue;
21429
+ if (first === -1) first = pair;
21430
+ last = pair;
21431
+ }
21432
+ if (first === -1) return [];
21433
+ const top = pairOffsets === null ? first / pairCount : at(first) / totalHeight;
21434
+ const bottom = pairOffsets === null ? (last + 1) / pairCount : at(last + 1) / totalHeight;
21435
+ return [{
21436
+ top: top * 100,
21437
+ height: Math.max(0, bottom - top) * 100,
21438
+ kind: run.kind
21439
+ }];
21440
+ });
21441
+ }, [
21442
+ rulerRuns,
21443
+ pairOfRow,
21444
+ pairCount,
21445
+ pairOffsets,
21446
+ totalHeight
21447
+ ]);
21351
21448
  const pairHeightAt = (k) => pairHeights === null ? ROW_HEIGHT_PX : pairHeights[k] ?? ROW_HEIGHT_PX;
21352
21449
  const widestSide = (0, react.useMemo)(() => {
21353
21450
  let left = 0;
@@ -21381,13 +21478,49 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21381
21478
  tabWidthSpaces,
21382
21479
  bodyWidth
21383
21480
  ]);
21481
+ const ctrlHeldRef = (0, react.useRef)(false);
21482
+ (0, react.useEffect)(() => {
21483
+ const track = (event) => {
21484
+ ctrlHeldRef.current = event.ctrlKey || event.metaKey;
21485
+ };
21486
+ const release = () => {
21487
+ ctrlHeldRef.current = false;
21488
+ };
21489
+ window.addEventListener("keydown", track);
21490
+ window.addEventListener("keyup", track);
21491
+ window.addEventListener("blur", release);
21492
+ return () => {
21493
+ window.removeEventListener("keydown", track);
21494
+ window.removeEventListener("keyup", track);
21495
+ window.removeEventListener("blur", release);
21496
+ };
21497
+ }, []);
21498
+ /** A strip offset this view wrote itself, so the follow-up scroll event is not read as a new drag. */
21499
+ const mirroredRef = (0, react.useRef)(void 0);
21384
21500
  const onHScroll = (0, react.useCallback)((side) => {
21385
21501
  const strip = side === "left" ? leftHScrollRef.current : rightHScrollRef.current;
21386
- const col = side === "left" ? leftColRef.current : rightColRef.current;
21387
- if (strip === null || col === null) return;
21388
- col.scrollLeft = strip.scrollLeft;
21389
- const quotes = splitRootRef.current?.querySelectorAll(`[data-diff-quote-text][data-diff-quote-side="${side}"]`);
21390
- for (const text of quotes ?? []) text.scrollLeft = strip.scrollLeft;
21502
+ if (strip === null) return;
21503
+ const mirrored = mirroredRef.current;
21504
+ const follows = mirrored !== void 0 && mirrored.side === side && mirrored.value === strip.scrollLeft;
21505
+ if (follows) mirroredRef.current = void 0;
21506
+ const move = (which, offset) => {
21507
+ const col = which === "left" ? leftColRef.current : rightColRef.current;
21508
+ if (col !== null) col.scrollLeft = offset;
21509
+ const quotes = splitRootRef.current?.querySelectorAll(`[data-diff-quote-text][data-diff-quote-side="${which}"]`);
21510
+ for (const text of quotes ?? []) text.scrollLeft = offset;
21511
+ };
21512
+ move(side, strip.scrollLeft);
21513
+ if (follows || !ctrlHeldRef.current) return;
21514
+ const otherSide = side === "left" ? "right" : "left";
21515
+ const otherStrip = otherSide === "left" ? leftHScrollRef.current : rightHScrollRef.current;
21516
+ move(otherSide, strip.scrollLeft);
21517
+ if (otherStrip !== null && otherStrip.scrollLeft !== strip.scrollLeft) {
21518
+ mirroredRef.current = {
21519
+ side: otherSide,
21520
+ value: strip.scrollLeft
21521
+ };
21522
+ otherStrip.scrollLeft = strip.scrollLeft;
21523
+ }
21391
21524
  }, []);
21392
21525
  const searchMatches = (0, react.useMemo)(() => searchPairs(pairs, searchQuery, search.options), [
21393
21526
  pairs,
@@ -21481,15 +21614,17 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21481
21614
  if (body.scrollTop !== clamped) body.scrollTop = clamped;
21482
21615
  setScrollTop(clamped);
21483
21616
  };
21617
+ const blockCountRef = (0, react.useRef)(0);
21618
+ blockCountRef.current = model.blocks.length;
21484
21619
  const handleBlockAction = async (action) => {
21485
21620
  const operated = hoveredBlock ?? hoveredBlockRef.current;
21486
21621
  if (operated === void 0) return;
21487
21622
  const range = blockRanges[operated];
21488
21623
  if (range === void 0) return;
21489
21624
  await (action === "keep" ? onBlockKeep(file.sessionId, file.id, range) : onBlockRevert(file.sessionId, file.id, range));
21490
- const count = model.blocks.length;
21625
+ const count = blockCountRef.current;
21491
21626
  if (count === 0) return;
21492
- const next = Math.max(0, Math.min(operated, count - 1));
21627
+ const next = blockAfterAction(operated, count);
21493
21628
  setFocus(next);
21494
21629
  setHoveredBlock(void 0);
21495
21630
  bumpFlash(false);
@@ -21946,6 +22081,21 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
21946
22081
  })
21947
22082
  })]
21948
22083
  }),
22084
+ rulerMarkersNow.length > 0 && (0, react_jsx_runtime.jsx)("div", {
22085
+ className: `${PendingPanel_module_css_default.overviewRuler} ${PendingPanel_module_css_default.overviewRulerSplit}`,
22086
+ "data-diff-approval-ruler": true,
22087
+ "aria-hidden": "true",
22088
+ children: rulerMarkersNow.map((marker, index) => (0, react_jsx_runtime.jsx)("div", {
22089
+ className: `${PendingPanel_module_css_default.overviewMarker} ${marker.kind === "del" ? `${PendingPanel_module_css_default.markerDel} ${PendingPanel_module_css_default.markerSplitDel}` : `${PendingPanel_module_css_default.markerAdd} ${PendingPanel_module_css_default.markerSplitAdd}`}`,
22090
+ "data-diff-ruler-marker": marker.kind,
22091
+ "data-diff-ruler-side": marker.kind === "del" ? "left" : "right",
22092
+ style: {
22093
+ top: `${marker.top}%`,
22094
+ height: `${marker.height}%`
22095
+ }
22096
+ }, index))
22097
+ }),
22098
+ gotoDialog,
21949
22099
  selectionComment !== void 0 && selection !== void 0 && (0, react_jsx_runtime.jsx)("div", {
21950
22100
  className: PendingPanel_module_css_default.blockActions,
21951
22101
  "data-diff-selection-actions": true,
@@ -24061,9 +24211,10 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
24061
24211
  const body = card.children[1];
24062
24212
  const last = body?.lastElementChild;
24063
24213
  if (id === void 0 || body === void 0 || last === null || last === void 0) continue;
24064
- const drawn = last.getBoundingClientRect().bottom + (Number.parseFloat(getComputedStyle(last).marginBottom) || 0) - body.getBoundingClientRect().top;
24214
+ const slack = body.querySelector("[data-diff-discussion-slack]");
24215
+ const drawn = last.getBoundingClientRect().bottom + (Number.parseFloat(getComputedStyle(last).marginBottom) || 0) - body.getBoundingClientRect().top - (slack?.getBoundingClientRect().height ?? 0);
24065
24216
  if (drawn <= 0) continue;
24066
- const want = Math.max(1, Math.ceil(drawn / THREAD_ROW_PX));
24217
+ const want = Math.max(1, Math.ceil((drawn - DISCUSSION_ROW_SNAP_PX) / THREAD_ROW_PX));
24067
24218
  if (next[id] !== want) {
24068
24219
  next[id] = want;
24069
24220
  changed = true;
@@ -24218,6 +24369,96 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
24218
24369
  window.removeEventListener("keydown", onKeyDown, true);
24219
24370
  };
24220
24371
  }, []);
24372
+ /**
24373
+ * The popup's one answer. Enter and the 确定 button both run this, so the key and the press are literally
24374
+ * the same action: the number is read, the popup closes, and a number the current side does not have is
24375
+ * answered with a note instead of a jump (see `gotoLine`).
24376
+ */
24377
+ const submitGoto = () => {
24378
+ const line = Number.parseInt(gotoDraft.trim(), 10);
24379
+ setGotoOpen(false);
24380
+ if (Number.isFinite(line) && line > 0) gotoLine(line);
24381
+ };
24382
+ /**
24383
+ * The go-to popup, centred on the code view: the layer fills that view's own box (the single column's
24384
+ * wrapper, or the side-by-side view's root, which is why it is handed to `SplitDiff` there), and the
24385
+ * parts wear the search bar's recipe (see `.gotoBox` / `.gotoInput`). Side by side there are two code
24386
+ * boxes rather than one, and the one being read is the right pane: the layer is cut back to that half
24387
+ * (`splitView`, see `.gotoLayerRight`), which is what `data-diff-goto-pane` records for the tests. A
24388
+ * press anywhere dismisses it — the layer catches the presses inside the code view, the full-window
24389
+ * catcher the rest — while the bar itself stops them. Escape, Cancel and focus leaving the popup leave
24390
+ * everything as it was.
24391
+ */
24392
+ const gotoDialog = !gotoOpen || previewActive ? null : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", {
24393
+ className: PendingPanel_module_css_default.gotoBackdrop,
24394
+ "data-diff-goto-backdrop": true,
24395
+ "aria-hidden": "true",
24396
+ onClick: () => {
24397
+ setGotoOpen(false);
24398
+ }
24399
+ }), (0, react_jsx_runtime.jsx)("div", {
24400
+ className: `${PendingPanel_module_css_default.gotoLayer}${splitView ? ` ${PendingPanel_module_css_default.gotoLayerRight}` : ""}`,
24401
+ "data-diff-goto-layer": true,
24402
+ "data-diff-goto-pane": splitView ? "right" : "code",
24403
+ onClick: () => {
24404
+ setGotoOpen(false);
24405
+ },
24406
+ children: (0, react_jsx_runtime.jsxs)("div", {
24407
+ role: "dialog",
24408
+ "aria-label": t("action.goto"),
24409
+ "data-diff-goto-dialog": true,
24410
+ className: PendingPanel_module_css_default.gotoBox,
24411
+ onClick: (event) => {
24412
+ event.stopPropagation();
24413
+ },
24414
+ onBlur: (event) => {
24415
+ if (event.relatedTarget instanceof Node && event.currentTarget.contains(event.relatedTarget)) return;
24416
+ setGotoOpen(false);
24417
+ },
24418
+ children: [
24419
+ (0, react_jsx_runtime.jsx)("input", {
24420
+ className: PendingPanel_module_css_default.gotoInput,
24421
+ "data-diff-goto-input": true,
24422
+ value: gotoDraft,
24423
+ autoFocus: true,
24424
+ inputMode: "numeric",
24425
+ spellCheck: false,
24426
+ autoComplete: "off",
24427
+ "aria-label": t("action.goto"),
24428
+ placeholder: t("action.goto"),
24429
+ onChange: (event) => {
24430
+ setGotoDraft(event.target.value);
24431
+ },
24432
+ onKeyDown: (event) => {
24433
+ if (event.key === "Escape") {
24434
+ event.preventDefault();
24435
+ setGotoOpen(false);
24436
+ return;
24437
+ }
24438
+ if (event.key !== "Enter") return;
24439
+ event.preventDefault();
24440
+ submitGoto();
24441
+ }
24442
+ }),
24443
+ (0, react_jsx_runtime.jsx)("button", {
24444
+ type: "button",
24445
+ className: `${PendingPanel_module_css_default.action} ${PendingPanel_module_css_default.actionPrimary} ${PendingPanel_module_css_default.gotoAction}`,
24446
+ "data-diff-goto-go": true,
24447
+ onClick: submitGoto,
24448
+ children: t("action.gotoGo")
24449
+ }),
24450
+ (0, react_jsx_runtime.jsx)("button", {
24451
+ type: "button",
24452
+ className: `${PendingPanel_module_css_default.action} ${PendingPanel_module_css_default.gotoAction}`,
24453
+ "data-diff-goto-cancel": true,
24454
+ onClick: () => {
24455
+ setGotoOpen(false);
24456
+ },
24457
+ children: t("action.gotoCancel")
24458
+ })
24459
+ ]
24460
+ })
24461
+ })] });
24221
24462
  const stepBlock = (direction) => {
24222
24463
  const count = model.blocks.length;
24223
24464
  if (count === 0) return;
@@ -24227,11 +24468,13 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
24227
24468
  setScrollTick((tick) => tick + 1);
24228
24469
  bumpFlash(false);
24229
24470
  };
24471
+ const blockCountRef = (0, react.useRef)(0);
24472
+ blockCountRef.current = model.blocks.length;
24230
24473
  const runBlockAction = async (action, range, operated) => {
24231
24474
  await (action === "keep" ? onBlockKeep(file.sessionId, file.id, range) : onBlockRevert(file.sessionId, file.id, range));
24232
- const count = model.blocks.length;
24475
+ const count = blockCountRef.current;
24233
24476
  if (count === 0) return;
24234
- const next = Math.max(0, Math.min(operated, count - 1));
24477
+ const next = blockAfterAction(operated, count);
24235
24478
  setFocus(next);
24236
24479
  setHoveredBlock(void 0);
24237
24480
  setScrollTick((tick) => tick + 1);
@@ -24881,108 +25124,23 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
24881
25124
  children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.IconSearchOutline16, { size: 14 })
24882
25125
  })
24883
25126
  }),
24884
- previewActive ? null : (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
24885
- label: withChord(t("action.goto"), "goto"),
24886
- side: "bottom",
24887
- delayMs: 500,
24888
- children: (0, react_jsx_runtime.jsx)("button", {
24889
- type: "button",
24890
- className: `${PendingPanel_module_css_default.action} ${PendingPanel_module_css_default.iconAction}`,
24891
- "data-diff-goto": true,
24892
- "aria-label": t("action.goto"),
24893
- onClick: () => {
24894
- setGotoDraft("");
24895
- setGotoOpen(true);
24896
- },
24897
- children: (0, react_jsx_runtime.jsx)(GotoLineIcon, {})
24898
- })
24899
- }),
24900
- gotoOpen && (0, react_jsx_runtime.jsx)("div", {
24901
- role: "dialog",
24902
- "aria-label": t("action.goto"),
24903
- "data-diff-goto-dialog": true,
24904
- style: {
24905
- position: "fixed",
24906
- inset: 0,
24907
- zIndex: 40,
24908
- display: "grid",
24909
- placeItems: "center",
24910
- background: "rgba(0, 0, 0, 0.18)"
24911
- },
24912
- onClick: () => {
24913
- setGotoOpen(false);
24914
- },
24915
- children: (0, react_jsx_runtime.jsxs)("div", {
24916
- className: PendingPanel_module_css_default.gotoBox,
24917
- style: {
24918
- display: "flex",
24919
- gap: 8,
24920
- alignItems: "center",
24921
- padding: 12,
24922
- borderRadius: 12,
24923
- background: "var(--dsw-alias-bg-base)",
24924
- boxShadow: "var(--dsw-shadow-lv2)"
24925
- },
24926
- onClick: (event) => {
24927
- event.stopPropagation();
24928
- },
24929
- children: [
24930
- (0, react_jsx_runtime.jsx)("input", {
24931
- className: PendingPanel_module_css_default.gotoInput,
24932
- "data-diff-goto-input": true,
24933
- value: gotoDraft,
24934
- autoFocus: true,
24935
- inputMode: "numeric",
24936
- spellCheck: false,
24937
- autoComplete: "off",
24938
- "aria-label": t("action.goto"),
24939
- placeholder: t("action.goto"),
24940
- style: {
24941
- width: "8em",
24942
- padding: "4px 8px",
24943
- borderRadius: 8,
24944
- border: "1px solid var(--dsw-alias-border-l2)",
24945
- background: "transparent",
24946
- color: "inherit",
24947
- font: "inherit"
24948
- },
24949
- onChange: (event) => {
24950
- setGotoDraft(event.target.value);
24951
- },
24952
- onKeyDown: (event) => {
24953
- if (event.key === "Escape") {
24954
- event.preventDefault();
24955
- setGotoOpen(false);
24956
- return;
24957
- }
24958
- if (event.key !== "Enter") return;
24959
- event.preventDefault();
24960
- const line = Number.parseInt(gotoDraft.trim(), 10);
24961
- setGotoOpen(false);
24962
- if (Number.isFinite(line) && line > 0) gotoLine(line);
24963
- }
24964
- }),
24965
- (0, react_jsx_runtime.jsx)("button", {
24966
- type: "button",
24967
- className: PendingPanel_module_css_default.action,
24968
- "data-diff-goto-go": true,
24969
- onClick: () => {
24970
- const line = Number.parseInt(gotoDraft.trim(), 10);
24971
- setGotoOpen(false);
24972
- if (Number.isFinite(line) && line > 0) gotoLine(line);
24973
- },
24974
- children: t("action.gotoGo")
24975
- }),
24976
- (0, react_jsx_runtime.jsx)("button", {
24977
- type: "button",
24978
- className: PendingPanel_module_css_default.action,
24979
- "data-diff-goto-cancel": true,
24980
- onClick: () => {
24981
- setGotoOpen(false);
24982
- },
24983
- children: t("action.gotoCancel")
24984
- })
24985
- ]
25127
+ previewActive ? null : (0, react_jsx_runtime.jsx)("span", {
25128
+ className: PendingPanel_module_css_default.gotoHost,
25129
+ children: (0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
25130
+ label: withChord(t("action.goto"), "goto"),
25131
+ side: "bottom",
25132
+ delayMs: 500,
25133
+ children: (0, react_jsx_runtime.jsx)("button", {
25134
+ type: "button",
25135
+ className: `${PendingPanel_module_css_default.action} ${PendingPanel_module_css_default.iconAction}`,
25136
+ "data-diff-goto": true,
25137
+ "aria-label": t("action.goto"),
25138
+ onClick: () => {
25139
+ setGotoDraft("");
25140
+ setGotoOpen(true);
25141
+ },
25142
+ children: (0, react_jsx_runtime.jsx)(GotoLineIcon, {})
25143
+ })
24986
25144
  })
24987
25145
  }),
24988
25146
  (0, react_jsx_runtime.jsx)("span", { className: PendingPanel_module_css_default.divider }),
@@ -25238,6 +25396,8 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
25238
25396
  onVisibleLines: onSplitVisibleLines,
25239
25397
  discussions: laidDiscussions,
25240
25398
  renderDiscussion,
25399
+ rulerRuns: rulerMarkers,
25400
+ gotoDialog,
25241
25401
  selectionComment: splitView && selectionCommentOffered ? (0, react_jsx_runtime.jsxs)("button", {
25242
25402
  type: "button",
25243
25403
  className: PendingPanel_module_css_default.action,
@@ -25441,6 +25601,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
25441
25601
  }
25442
25602
  }, flashKey),
25443
25603
  searchBar,
25604
+ gotoDialog,
25444
25605
  rulerMarkers.length > 0 && (0, react_jsx_runtime.jsx)("div", {
25445
25606
  className: PendingPanel_module_css_default.overviewRuler,
25446
25607
  "data-diff-approval-ruler": true,
@@ -25688,6 +25849,29 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
25688
25849
  n: (prev?.n ?? 0) + 1
25689
25850
  }));
25690
25851
  };
25852
+ /**
25853
+ * The host says it cannot write the pending state to disk. Said ONCE per distinct message: that file
25854
+ * is what makes the list survive a restart, so a reader who is never told simply finds the list gone
25855
+ * later with nothing to explain it (issue #6) — but the field rides every poll, and a filesystem that
25856
+ * keeps failing must not toast on each one. The host retracts the field once a write works, and that
25857
+ * retraction is what arms the marker again: the same disk failing twice, with a working spell between,
25858
+ * is news the second time too.
25859
+ */
25860
+ const persistToastRef = (0, react.useRef)(void 0);
25861
+ (0, react.useEffect)(() => {
25862
+ const message = snapshot.persistError;
25863
+ if (message === void 0) {
25864
+ persistToastRef.current = void 0;
25865
+ return;
25866
+ }
25867
+ if (message === persistToastRef.current) return;
25868
+ persistToastRef.current = message;
25869
+ showCopyToast(t("panel.persistFailed"));
25870
+ }, [
25871
+ snapshot.persistError,
25872
+ showCopyToast,
25873
+ t
25874
+ ]);
25691
25875
  const handleOpenFileRef = (0, react.useRef)();
25692
25876
  handleOpenFileRef.current = (path) => {
25693
25877
  const entry = snapshot.files.find((file) => diffPathsMatch(path, file.path, snapshot.workspacePath));
@@ -26410,33 +26594,70 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
26410
26594
  };
26411
26595
  const selectedFile = files.find((file) => file.id === selected);
26412
26596
  /**
26413
- * Every comment the files in the list carry, in list order and then in the order their rows run:
26414
- * what the comments tab shows. A comment IS a block of rows in one file, so its label is the same
26415
- * `path:lines` reference the thread's own header wears, its title is the first sentence of what
26416
- * the reader asked (the first turn is the annotation; later ones are follow-ups), and an outdated
26417
- * one says so — the same state the block itself is wearing (see `[data-lost]`).
26597
+ * A file that leaves the list takes its comments with it: the reader who kept or reverted that file
26598
+ * out of the list is done with it, and a thread is a block of rows in a diff the list no longer
26599
+ * holds — so the rows it was written about are gone with the entry (see `forgetDiscussionsNotIn`).
26600
+ *
26601
+ * Only a list that has actually been READ may say a file is gone. An unread panel, a connection
26602
+ * reset (`read` goes back to false, with the files) and a sessionless page all publish an empty
26603
+ * list, and none of those means the reader finished with the files it names.
26604
+ */
26605
+ const listedIds = (0, react.useMemo)(() => files.map((file) => file.id), [files]);
26606
+ (0, react.useEffect)(() => {
26607
+ if (current === void 0 || !snapshot.read) return;
26608
+ forgetDiscussionsNotIn(current, listedIds);
26609
+ }, [
26610
+ current,
26611
+ snapshot.read,
26612
+ listedIds
26613
+ ]);
26614
+ /**
26615
+ * Every comment the session's files carry, grouped by the file it hangs in: what the comments tab
26616
+ * shows. The session is the scope — every file of it that is still in the list, whether or not the
26617
+ * reader has opened it, and however many files that is — and the file is what the comments are
26618
+ * grouped by, under the file's own name.
26619
+ *
26620
+ * A comment IS a block of rows in one file, so its label is the lines it names — the `path:lines`
26621
+ * reference the thread's own header wears, with the path left off (the group above IS that file) and
26622
+ * nothing in front of the numbers, which are the whole label at that point. Its title is the first
26623
+ * sentence of what the reader asked (the first turn is the annotation; later ones are follow-ups), and
26624
+ * an outdated one says so — the same state the block itself is wearing (see `[data-lost]`). Within a
26625
+ * group the comments keep the order their rows run, and the groups keep the list's own order (the file
26626
+ * name).
26418
26627
  *
26419
26628
  * The threads are held by the file detail, which is one mount at a time, so they are read back
26420
- * out of the memory the two share, and re-read whenever they change (`commentsTick`).
26629
+ * out of the memory the two share, and re-read whenever they change (`commentsTick`). A file with
26630
+ * no threads is left out rather than shown with nothing under it.
26421
26631
  */
26422
- const commentEntries = (0, react.useMemo)(() => {
26632
+ const commentGroups = (0, react.useMemo)(() => {
26423
26633
  const threads = rememberedDiscussions(current);
26424
- return files.flatMap((file) => (threads[file.id] ?? []).map((discussion) => ({
26425
- id: discussion.id,
26634
+ return files.map((file) => ({
26426
26635
  fileId: file.id,
26427
- row: discussion.anchor.start,
26428
- end: discussion.anchor.end,
26429
- label: referenceLabelOf(file.path, snapshot.workspacePath, discussion.anchor.startLine, discussion.anchor.endLine),
26430
- title: commentTitle(discussion) || t("panel.commentEmptyTitle"),
26431
- lost: discussion.lost === true
26432
- })));
26636
+ name: basenameOf(file.path),
26637
+ path: file.path,
26638
+ entries: (threads[file.id] ?? []).map((discussion) => {
26639
+ const written = commentTitle(discussion);
26640
+ const empty = written === "";
26641
+ return {
26642
+ id: discussion.id,
26643
+ fileId: file.id,
26644
+ row: discussion.anchor.start,
26645
+ end: discussion.anchor.end,
26646
+ label: `[${lineRangeLabel(discussion.anchor.startLine, discussion.anchor.endLine)}]`,
26647
+ title: empty ? t("discussion.placeholder") : written,
26648
+ empty,
26649
+ lost: discussion.lost === true
26650
+ };
26651
+ })
26652
+ })).filter((group) => group.entries.length > 0);
26433
26653
  }, [
26434
26654
  files,
26435
26655
  current,
26436
- snapshot.workspacePath,
26437
26656
  commentsTick,
26438
26657
  t
26439
26658
  ]);
26659
+ /** The same comments, flat: what the tab counts and what says whether there are any. */
26660
+ const commentEntries = (0, react.useMemo)(() => commentGroups.flatMap((group) => group.entries), [commentGroups]);
26440
26661
  /** Open the file a comment hangs in and land on the comment: the rows it names, or — for an outdated
26441
26662
  * thread, whose code is gone — its own box, which is the only place that says anything. */
26442
26663
  const jumpToComment = (fileId, row, card = false) => {
@@ -26540,52 +26761,72 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
26540
26761
  className: PendingPanel_module_css_default.listEmpty,
26541
26762
  "data-diff-comments-empty": true,
26542
26763
  children: t("panel.commentsEmpty")
26543
- }) : (0, react_jsx_runtime.jsx)("ul", {
26544
- className: PendingPanel_module_css_default.rows,
26764
+ }) : (0, react_jsx_runtime.jsx)("div", {
26545
26765
  "data-diff-comment-list": true,
26546
- children: commentEntries.map((entry) => (0, react_jsx_runtime.jsx)("li", {
26547
- className: PendingPanel_module_css_default.row,
26548
- children: (0, react_jsx_runtime.jsxs)("div", {
26549
- role: "button",
26550
- tabIndex: 0,
26551
- className: PendingPanel_module_css_default.commentRow,
26552
- "data-diff-comment-link": entry.id,
26553
- "data-mobile-nav-copy": "1",
26554
- onClick: () => {
26555
- jumpToComment(entry.fileId, entry.lost ? entry.end : entry.row, entry.lost);
26556
- },
26557
- onContextMenu: (event) => {
26558
- event.preventDefault();
26559
- setCommentMenu({
26560
- id: entry.id,
26561
- fileId: entry.fileId,
26562
- x: event.clientX,
26563
- y: event.clientY
26564
- });
26565
- },
26566
- onKeyDown: (event) => {
26567
- if (event.key !== "Enter" && event.key !== " ") return;
26568
- event.preventDefault();
26569
- jumpToComment(entry.fileId, entry.lost ? entry.end : entry.row, entry.lost);
26570
- },
26571
- children: [(0, react_jsx_runtime.jsxs)("span", {
26572
- className: PendingPanel_module_css_default.commentHead,
26573
- children: [(0, react_jsx_runtime.jsx)("span", {
26574
- className: PendingPanel_module_css_default.commentLabel,
26575
- "data-diff-comment-label": true,
26576
- children: entry.label
26577
- }), entry.lost && (0, react_jsx_runtime.jsx)("span", {
26578
- className: PendingPanel_module_css_default.commentLost,
26579
- "data-diff-comment-lost": true,
26580
- children: t("panel.commentOutdated")
26581
- })]
26582
- }), (0, react_jsx_runtime.jsx)("span", {
26583
- className: PendingPanel_module_css_default.commentTitle,
26584
- "data-diff-comment-title": true,
26585
- children: entry.title
26586
- })]
26587
- })
26588
- }, entry.id))
26766
+ children: commentGroups.map((group) => (0, react_jsx_runtime.jsxs)("div", {
26767
+ className: PendingPanel_module_css_default.commentGroup,
26768
+ "data-diff-comment-group": group.fileId,
26769
+ children: [(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
26770
+ label: group.path,
26771
+ delayMs: 500,
26772
+ maxWidth: 560,
26773
+ children: (0, react_jsx_runtime.jsx)("h4", {
26774
+ className: PendingPanel_module_css_default.commentGroupName,
26775
+ "data-diff-comment-group-name": true,
26776
+ children: group.name
26777
+ })
26778
+ }), (0, react_jsx_runtime.jsx)("ul", {
26779
+ className: PendingPanel_module_css_default.rows,
26780
+ children: group.entries.map((entry) => (0, react_jsx_runtime.jsx)("li", {
26781
+ className: PendingPanel_module_css_default.row,
26782
+ children: (0, react_jsx_runtime.jsx)("div", {
26783
+ role: "button",
26784
+ tabIndex: 0,
26785
+ className: PendingPanel_module_css_default.commentRow,
26786
+ "data-diff-comment-link": entry.id,
26787
+ "data-mobile-nav-copy": "1",
26788
+ onClick: () => {
26789
+ jumpToComment(entry.fileId, entry.lost ? entry.end : entry.row, entry.lost);
26790
+ },
26791
+ onContextMenu: (event) => {
26792
+ event.preventDefault();
26793
+ setCommentMenu({
26794
+ id: entry.id,
26795
+ fileId: entry.fileId,
26796
+ x: event.clientX,
26797
+ y: event.clientY
26798
+ });
26799
+ },
26800
+ onKeyDown: (event) => {
26801
+ if (event.key !== "Enter" && event.key !== " ") return;
26802
+ event.preventDefault();
26803
+ jumpToComment(entry.fileId, entry.lost ? entry.end : entry.row, entry.lost);
26804
+ },
26805
+ children: (0, react_jsx_runtime.jsxs)("span", {
26806
+ className: PendingPanel_module_css_default.commentHead,
26807
+ children: [
26808
+ (0, react_jsx_runtime.jsx)("span", {
26809
+ className: entry.empty ? `${PendingPanel_module_css_default.commentTitle} ${PendingPanel_module_css_default.commentTitleEmpty}` : PendingPanel_module_css_default.commentTitle,
26810
+ "data-diff-comment-title": true,
26811
+ "data-diff-comment-empty": entry.empty ? "" : void 0,
26812
+ children: entry.title
26813
+ }),
26814
+ entry.lost && (0, react_jsx_runtime.jsx)("span", {
26815
+ className: PendingPanel_module_css_default.commentLost,
26816
+ "data-diff-comment-lost": true,
26817
+ children: t("panel.commentOutdated")
26818
+ }),
26819
+ (0, react_jsx_runtime.jsx)("span", {
26820
+ className: PendingPanel_module_css_default.commentLabel,
26821
+ "data-diff-comment-label": true,
26822
+ children: entry.label
26823
+ })
26824
+ ]
26825
+ })
26826
+ })
26827
+ }, entry.id))
26828
+ })]
26829
+ }, group.fileId))
26589
26830
  })
26590
26831
  }) : (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [(0, react_jsx_runtime.jsx)("div", {
26591
26832
  className: PendingPanel_module_css_default.listScroll,
@@ -26775,7 +27016,9 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
26775
27016
  if (event.target instanceof Element && event.target.closest("[data-diff-path-input]") !== null) return;
26776
27017
  if (document.querySelector("[data-diff-approval-cover-popover]") !== null) return;
26777
27018
  const target = event.target;
26778
- if (target instanceof Node && panelRef.current?.contains(target) === true && document.querySelector("[data-diff-searchbar]") !== null) return;
27019
+ const inPanel = target instanceof Node && panelRef.current?.contains(target) === true;
27020
+ if (inPanel && document.querySelector("[data-diff-searchbar]") !== null) return;
27021
+ if (inPanel && document.querySelector("[data-diff-goto-dialog]") !== null) return;
26779
27022
  event.preventDefault();
26780
27023
  closePanel();
26781
27024
  };
@@ -28460,15 +28703,19 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
28460
28703
  const redoCleared = value.redoCleared;
28461
28704
  const skill = value.commentSkill;
28462
28705
  const commentSkill = typeof skill === "string" && skill.length > 0 ? skill : void 0;
28706
+ const persisted = value.persistError;
28707
+ const persistError = typeof persisted === "string" && persisted.length > 0 ? persisted : void 0;
28463
28708
  return redoCleared === true ? {
28464
28709
  files,
28465
28710
  workspacePath,
28466
28711
  redoCleared: true,
28467
- commentSkill
28712
+ commentSkill,
28713
+ persistError
28468
28714
  } : {
28469
28715
  files,
28470
28716
  workspacePath,
28471
- commentSkill
28717
+ commentSkill,
28718
+ persistError
28472
28719
  };
28473
28720
  }
28474
28721
  /** Narrow one action endpoint's value; a malformed wire value is an action failure. */
@@ -28724,13 +28971,14 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
28724
28971
  return;
28725
28972
  }
28726
28973
  try {
28727
- const { files, workspacePath, redoCleared: cleared, commentSkill } = await port.list(sessionId);
28974
+ const { files, workspacePath, redoCleared: cleared, commentSkill, persistError } = await port.list(sessionId);
28728
28975
  if (cleared) redoCleared = true;
28729
28976
  publish({
28730
28977
  read: true,
28731
28978
  files,
28732
28979
  workspacePath,
28733
28980
  commentSkill,
28981
+ persistError,
28734
28982
  busy: EMPTY_BUSY,
28735
28983
  failed: failedOf(snapshot)
28736
28984
  });
@@ -28740,6 +28988,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
28740
28988
  files: snapshot.files,
28741
28989
  workspacePath: snapshot.workspacePath,
28742
28990
  commentSkill: snapshot.commentSkill,
28991
+ persistError: snapshot.persistError,
28743
28992
  error: error instanceof Error ? error.message : String(error),
28744
28993
  busy: snapshot.busy,
28745
28994
  failed: failedOf(snapshot)
@@ -29089,6 +29338,32 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29089
29338
  }
29090
29339
  return texts;
29091
29340
  }
29341
+ /** Whether two node lists say the same thing (the transcript is rebuilt on every read). */
29342
+ function sameNodes(left, right) {
29343
+ return left.length === right.length && left.every((node, index) => {
29344
+ const other = right[index];
29345
+ return node.kind === other.kind && node.text === other.text && node.interrupted === other.interrupted;
29346
+ });
29347
+ }
29348
+ /** Whether two waiting-prompt lists say the same thing. */
29349
+ function sameQueued(left, right) {
29350
+ return left === right || left !== void 0 && right !== void 0 && left.length === right.length && left.every((text, index) => text === right[index]);
29351
+ }
29352
+ /** Whether a freshly read view says anything the consumer has not already been told. */
29353
+ function sameView(left, right) {
29354
+ return left !== void 0 && left.running === right.running && left.partial === right.partial && left.error === right.error && sameQueued(left.queued, right.queued) && sameNodes(left.nodes, right.nodes);
29355
+ }
29356
+ /**
29357
+ * How often a watched session's turn state is re-read, in ms.
29358
+ *
29359
+ * The transcript arrives by subscription, but `running` and the queue are read from the session
29360
+ * snapshot, which the chat target does not publish: a turn that ends without another transcript change
29361
+ * (the answer already written, nothing more to say) left the consumer holding `running: true` — which is
29362
+ * how a comment sat at "答复中" long after its session was done. The panel cannot ask for a re-read, so
29363
+ * the bridge does. What a tick costs is a snapshot read and the node walk behind it; what it must NOT
29364
+ * cost is a delivery, and `sameView` is what stops one (see `watch`).
29365
+ */
29366
+ const TURN_STATE_REFRESH_MS = 1e3;
29092
29367
  /**
29093
29368
  * Build the bridge over the client context. Every verb takes the session it
29094
29369
  * addresses, so one bridge serves whichever session the panel is showing.
@@ -29109,6 +29384,20 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29109
29384
  return;
29110
29385
  }
29111
29386
  };
29387
+ /**
29388
+ * Subscribe to the session LIST store — the one observable the host documents as carrying a session's
29389
+ * `running` state (`SessionSummary.running`, fed by the controller's running-state change).
29390
+ * @param listener - called on every list-store change.
29391
+ * @returns the unsubscribe, or undefined on a build without the store.
29392
+ */
29393
+ const watchList = (listener) => {
29394
+ try {
29395
+ const stop = ctx.get("sessions")?.list?.subscribe?.(listener);
29396
+ return typeof stop === "function" ? stop : void 0;
29397
+ } catch {
29398
+ return;
29399
+ }
29400
+ };
29112
29401
  const ask = (sessionId, text) => {
29113
29402
  const target = scoped(sessionId);
29114
29403
  if (target === void 0) return false;
@@ -29179,21 +29468,34 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29179
29468
  };
29180
29469
  };
29181
29470
  const watch = (sessionId, listener) => {
29182
- if (scoped(sessionId) === void 0) {
29471
+ const target = scoped(sessionId);
29472
+ if (target === void 0) {
29183
29473
  listener(currentView(sessionId));
29184
29474
  return () => {};
29185
29475
  }
29186
29476
  const unsubscribes = [];
29477
+ let delivered;
29187
29478
  const notify = () => {
29188
- listener(currentView(sessionId));
29479
+ const view = currentView(sessionId);
29480
+ if (sameView(delivered, view)) return;
29481
+ delivered = view;
29482
+ listener(view);
29189
29483
  };
29484
+ try {
29485
+ const stopSession = target.binding?.session?.subscribe?.(notify);
29486
+ if (typeof stopSession === "function") unsubscribes.push(stopSession);
29487
+ } catch {}
29488
+ const stopList = watchList(notify);
29489
+ if (stopList !== void 0) unsubscribes.push(stopList);
29190
29490
  try {
29191
29491
  const stop = ctx.get("uiConversation")?.binding?.(sessionId)?.target?.("chat")?.subscribe?.(notify);
29192
29492
  if (typeof stop === "function") unsubscribes.push(stop);
29193
29493
  } catch {}
29194
29494
  notify();
29495
+ const refresh = unsubscribes.length > 0 ? void 0 : window.setInterval(notify, TURN_STATE_REFRESH_MS);
29195
29496
  return () => {
29196
29497
  for (const stop of unsubscribes) stop();
29498
+ if (refresh !== void 0) window.clearInterval(refresh);
29197
29499
  };
29198
29500
  };
29199
29501
  return {
@@ -29284,7 +29586,6 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29284
29586
  "panel.tab.comments": "评论",
29285
29587
  "panel.commentsEmpty": "当前打开的文件里还没有评论",
29286
29588
  "panel.commentOutdated": "已过期",
29287
- "panel.commentEmptyTitle": "(未填写)",
29288
29589
  "panel.aria": "待处理改动",
29289
29590
  "panel.stats": "+{added} -{removed}",
29290
29591
  "panel.blockPosition": "第 {current}/{total} 块",
@@ -29333,6 +29634,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29333
29634
  "action.gotoGo": "确定",
29334
29635
  "action.gotoCancel": "取消",
29335
29636
  "panel.gotoMissing": "第 {line} 行不在当前文件中",
29637
+ "panel.persistFailed": "待处理改动无法写入磁盘,重启宿主后可能丢失。",
29336
29638
  "settings.keybindings": "快捷键",
29337
29639
  "settings.keybindingsDesc": "展开后可配置各项操作的按键组合。",
29338
29640
  "settings.comment": "评论",
@@ -29505,7 +29807,6 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29505
29807
  "panel.tab.comments": "Comments",
29506
29808
  "panel.commentsEmpty": "No comments in the open files yet",
29507
29809
  "panel.commentOutdated": "Outdated",
29508
- "panel.commentEmptyTitle": "(not written yet)",
29509
29810
  "panel.aria": "Pending changes",
29510
29811
  "panel.stats": "+{added} -{removed}",
29511
29812
  "panel.blockPosition": "{current}/{total}",
@@ -29554,6 +29855,7 @@ XID_Start XIDS`.split(/\s/).map((p) => [w(p), p]));
29554
29855
  "action.gotoGo": "Go",
29555
29856
  "action.gotoCancel": "Cancel",
29556
29857
  "panel.gotoMissing": "Line {line} is not in the current file",
29858
+ "panel.persistFailed": "Pending changes could not be written to disk, so they may be lost when the host restarts.",
29557
29859
  "settings.keybindings": "Shortcuts",
29558
29860
  "settings.keybindingsDesc": "Expand to configure the key combo for each action.",
29559
29861
  "settings.comment": "Comments",