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 +711 -409
- package/lib/index.js +2 -1
- package/lib/types/client/PendingPanel.d.ts +10 -0
- package/lib/types/client/locales.d.ts +2 -2
- package/lib/types/client/panel-memory.d.ts +12 -0
- package/lib/types/client/slots.d.ts +6 -0
- package/lib/types/types.d.ts +6 -0
- package/package.json +1 -1
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
|
-
"
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
-
"
|
|
38
|
-
"
|
|
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
|
-
"
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
"
|
|
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
|
-
"
|
|
54
|
-
"
|
|
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
|
-
"
|
|
58
|
-
"states": "F1KBNa_states",
|
|
59
|
-
"diffPreviewScroll": "F1KBNa_diffPreviewScroll",
|
|
60
|
-
"settingsGroupDesc": "F1KBNa_settingsGroupDesc",
|
|
63
|
+
"panelFailure": "F1KBNa_panelFailure",
|
|
61
64
|
"confirmBackdrop": "F1KBNa_confirmBackdrop",
|
|
62
|
-
"
|
|
63
|
-
"
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
67
|
-
"
|
|
68
|
-
"
|
|
69
|
-
"
|
|
70
|
-
"
|
|
71
|
-
"
|
|
72
|
-
"
|
|
73
|
-
"
|
|
74
|
-
"
|
|
75
|
-
"
|
|
76
|
-
"
|
|
77
|
-
"
|
|
78
|
-
"
|
|
79
|
-
"
|
|
80
|
-
"
|
|
81
|
-
"
|
|
82
|
-
"
|
|
83
|
-
"
|
|
84
|
-
"
|
|
85
|
-
"
|
|
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
|
-
"
|
|
89
|
-
"
|
|
90
|
-
"
|
|
91
|
-
"
|
|
92
|
-
"
|
|
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
|
-
"
|
|
96
|
-
"
|
|
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
|
-
"
|
|
102
|
-
"
|
|
103
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
110
|
-
"
|
|
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
|
-
"
|
|
162
|
-
"
|
|
163
|
-
"
|
|
164
|
-
"
|
|
165
|
-
"
|
|
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
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
171
|
-
"
|
|
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
|
-
"
|
|
174
|
-
"
|
|
175
|
-
"fileListKnobIn": "F1KBNa_fileListKnobIn",
|
|
130
|
+
"diffBodySplit": "F1KBNa_diffBodySplit",
|
|
131
|
+
"expand": "F1KBNa_expand",
|
|
176
132
|
"splitDiscussion": "F1KBNa_splitDiscussion",
|
|
177
|
-
"
|
|
178
|
-
"
|
|
179
|
-
"
|
|
180
|
-
"
|
|
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
|
-
"
|
|
188
|
-
"
|
|
189
|
-
"
|
|
190
|
-
"
|
|
191
|
-
"
|
|
192
|
-
"
|
|
193
|
-
"
|
|
194
|
-
"
|
|
195
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
231
|
-
"
|
|
232
|
-
"
|
|
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
|
-
"
|
|
235
|
-
"
|
|
236
|
-
"
|
|
237
|
-
"
|
|
238
|
-
"
|
|
239
|
-
"
|
|
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
|
-
"
|
|
244
|
-
"
|
|
245
|
-
"
|
|
246
|
-
"
|
|
247
|
-
"
|
|
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
|
-
"
|
|
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
|
-
"
|
|
261
|
-
"
|
|
262
|
-
"
|
|
263
|
-
"
|
|
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
|
-
"
|
|
268
|
-
"
|
|
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
|
-
"
|
|
280
|
-
"
|
|
281
|
-
"
|
|
282
|
-
"
|
|
283
|
-
"
|
|
284
|
-
"
|
|
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
|
-
"
|
|
287
|
-
"
|
|
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
|
|
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
|
-
|
|
21387
|
-
|
|
21388
|
-
|
|
21389
|
-
|
|
21390
|
-
|
|
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 =
|
|
21625
|
+
const count = blockCountRef.current;
|
|
21491
21626
|
if (count === 0) return;
|
|
21492
|
-
const next =
|
|
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
|
|
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 =
|
|
24475
|
+
const count = blockCountRef.current;
|
|
24233
24476
|
if (count === 0) return;
|
|
24234
|
-
const next =
|
|
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)(
|
|
24885
|
-
|
|
24886
|
-
|
|
24887
|
-
|
|
24888
|
-
|
|
24889
|
-
|
|
24890
|
-
|
|
24891
|
-
|
|
24892
|
-
|
|
24893
|
-
|
|
24894
|
-
|
|
24895
|
-
|
|
24896
|
-
|
|
24897
|
-
|
|
24898
|
-
|
|
24899
|
-
|
|
24900
|
-
|
|
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
|
-
*
|
|
26414
|
-
*
|
|
26415
|
-
*
|
|
26416
|
-
*
|
|
26417
|
-
*
|
|
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
|
|
26632
|
+
const commentGroups = (0, react.useMemo)(() => {
|
|
26423
26633
|
const threads = rememberedDiscussions(current);
|
|
26424
|
-
return files.
|
|
26425
|
-
id: discussion.id,
|
|
26634
|
+
return files.map((file) => ({
|
|
26426
26635
|
fileId: file.id,
|
|
26427
|
-
|
|
26428
|
-
|
|
26429
|
-
|
|
26430
|
-
|
|
26431
|
-
|
|
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)("
|
|
26544
|
-
className: PendingPanel_module_css_default.rows,
|
|
26764
|
+
}) : (0, react_jsx_runtime.jsx)("div", {
|
|
26545
26765
|
"data-diff-comment-list": true,
|
|
26546
|
-
children:
|
|
26547
|
-
className: PendingPanel_module_css_default.
|
|
26548
|
-
|
|
26549
|
-
|
|
26550
|
-
|
|
26551
|
-
|
|
26552
|
-
|
|
26553
|
-
|
|
26554
|
-
|
|
26555
|
-
|
|
26556
|
-
|
|
26557
|
-
|
|
26558
|
-
|
|
26559
|
-
|
|
26560
|
-
|
|
26561
|
-
|
|
26562
|
-
|
|
26563
|
-
|
|
26564
|
-
|
|
26565
|
-
|
|
26566
|
-
|
|
26567
|
-
|
|
26568
|
-
|
|
26569
|
-
|
|
26570
|
-
|
|
26571
|
-
|
|
26572
|
-
|
|
26573
|
-
|
|
26574
|
-
|
|
26575
|
-
|
|
26576
|
-
|
|
26577
|
-
|
|
26578
|
-
|
|
26579
|
-
|
|
26580
|
-
|
|
26581
|
-
|
|
26582
|
-
|
|
26583
|
-
|
|
26584
|
-
|
|
26585
|
-
|
|
26586
|
-
|
|
26587
|
-
|
|
26588
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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",
|