dsh-coding-sidebar 1.0.7 → 1.0.9
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/README.md +2 -2
- package/lib/client-editor.js +485 -228
- package/lib/client-registry.js +1238 -7583
- package/lib/client-terminal.js +345 -189
- package/lib/client.js +1213 -7558
- package/lib/index.js +518 -69
- package/lib/types/agent-pty.d.ts +62 -4
- package/lib/types/bundle-route.d.ts +1 -1
- package/lib/types/client/DiffView.d.ts +33 -1
- package/lib/types/client/EditorHost.d.ts +4 -1
- package/lib/types/client/FileTree.d.ts +6 -2
- package/lib/types/client/TerminalWaitBanner.d.ts +6 -0
- package/lib/types/client/TreePanel.d.ts +4 -1
- package/lib/types/client/api.d.ts +26 -0
- package/lib/types/client/chunk-loader.d.ts +1 -1
- package/lib/types/client/chunks/locale.d.ts +3 -0
- package/lib/types/client/conversation-draft.d.ts +85 -4
- package/lib/types/client/locales.d.ts +13 -20
- package/lib/types/client/selection-popup.d.ts +58 -0
- package/lib/types/client/service.d.ts +1 -1
- package/lib/types/client/state.d.ts +15 -0
- package/lib/types/client/terminal-font.d.ts +25 -2
- package/lib/types/context-types.d.ts +3 -1
- package/lib/types/fs-operations.d.ts +42 -0
- package/lib/types/git.d.ts +15 -0
- package/lib/types/index.d.ts +9 -0
- package/lib/types/prefs-shared.d.ts +7 -5
- package/lib/types/pty-manager.d.ts +53 -0
- package/lib/types/wire.d.ts +6 -2
- package/package.json +1 -1
- package/src/agent-pty.ts +221 -33
- package/src/bundle-route.ts +1 -1
- package/src/client/DiffTab.tsx +10 -1
- package/src/client/DiffView.tsx +174 -19
- package/src/client/EditorHost.tsx +9 -2
- package/src/client/FileTree.tsx +151 -8
- package/src/client/Sidebar.tsx +95 -25
- package/src/client/TerminalView.tsx +41 -0
- package/src/client/TerminalWaitBanner.tsx +32 -0
- package/src/client/TextEditor.tsx +27 -45
- package/src/client/TreePanel.tsx +22 -2
- package/src/client/api.ts +20 -0
- package/src/client/chunk-loader.ts +1 -1
- package/src/client/chunks/locale.tsx +60 -0
- package/src/client/conversation-draft.ts +233 -7
- package/src/client/index.tsx +19 -8
- package/src/client/locales-ar.ts +17 -4
- package/src/client/locales-de.ts +17 -4
- package/src/client/locales-fr.ts +17 -4
- package/src/client/locales-hi.ts +17 -4
- package/src/client/locales-id.ts +17 -4
- package/src/client/locales-it.ts +17 -4
- package/src/client/locales-ja.ts +17 -4
- package/src/client/locales-ko.ts +17 -4
- package/src/client/locales-nl.ts +17 -4
- package/src/client/locales-pl.ts +17 -4
- package/src/client/locales-pt.ts +17 -4
- package/src/client/locales-ru.ts +17 -4
- package/src/client/locales-sv.ts +17 -4
- package/src/client/locales-th.ts +17 -4
- package/src/client/locales-tr.ts +17 -4
- package/src/client/locales-vi.ts +17 -4
- package/src/client/locales-zh-HK.ts +17 -4
- package/src/client/locales-zh-MO.ts +17 -4
- package/src/client/locales-zh-TW.ts +17 -4
- package/src/client/locales.ts +41 -51
- package/src/client/selection-popup.ts +155 -0
- package/src/client/service.ts +1 -1
- package/src/client/sidebar.module.css +68 -0
- package/src/client/state.ts +56 -10
- package/src/client/terminal-font.ts +34 -3
- package/src/context-types.ts +3 -2
- package/src/fs-operations.ts +126 -4
- package/src/git.ts +56 -3
- package/src/index.ts +82 -7
- package/src/open-external.ts +3 -4
- package/src/prefs-shared.ts +7 -5
- package/src/pty-manager.ts +176 -5
- package/src/sidechat-routes.ts +13 -1
- package/src/tools.ts +24 -6
- package/src/wire.ts +3 -0
package/lib/client-editor.js
CHANGED
|
@@ -18017,6 +18017,15 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
18017
18017
|
path,
|
|
18018
18018
|
content
|
|
18019
18019
|
})),
|
|
18020
|
+
/** Rename one tree row within its directory (single-segment name; a
|
|
18021
|
+
* destination-existence clash is a 409; symlink rows rename the link). */
|
|
18022
|
+
fsRename: (scope, path, name) => call$1("fs.rename", scopePayload(scope, {
|
|
18023
|
+
path,
|
|
18024
|
+
name
|
|
18025
|
+
})),
|
|
18026
|
+
/** Delete one tree row permanently (recursive for directories; a symlink
|
|
18027
|
+
* row unlinks the link only). */
|
|
18028
|
+
fsRemove: (scope, path) => call$1("fs.remove", scopePayload(scope, { path })),
|
|
18020
18029
|
/** Upload one file's raw bytes into `dir` (keeps the folder tree via
|
|
18021
18030
|
* `relativePath`); the host streams it under the session workspace. */
|
|
18022
18031
|
uploadFile: (scope, dir, relativePath, body, signal) => fetchUpload(scope, dir, relativePath, body, signal),
|
|
@@ -18038,6 +18047,13 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
18038
18047
|
}), signal),
|
|
18039
18048
|
/** Full patch text of one commit (diff display for the history rows). */
|
|
18040
18049
|
gitCommitDiff: (scope, hash, worktree, signal) => call$1("git.commit-diff", gitPayload(scope, worktree, { hash }), signal),
|
|
18050
|
+
/** Both sides' full file contents for a diff-fold expansion; a missing
|
|
18051
|
+
* side is null (untracked / deleted) and the view degrades the fold. */
|
|
18052
|
+
gitFoldContents: (scope, opts, worktree, signal) => call$1("git.fold-contents", gitPayload(scope, worktree, {
|
|
18053
|
+
path: opts.path,
|
|
18054
|
+
...opts.staged !== void 0 ? { staged: opts.staged } : {},
|
|
18055
|
+
...opts.hash !== void 0 ? { hash: opts.hash } : {}
|
|
18056
|
+
}), signal),
|
|
18041
18057
|
/** Discard the worktree changes of one file (the index is untouched). */
|
|
18042
18058
|
gitDiscard: (scope, path, worktree) => call$1("git.discard", gitPayload(scope, worktree, { path })),
|
|
18043
18059
|
/** Revert one commit onto the current branch. */
|
|
@@ -18050,6 +18066,9 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
18050
18066
|
ptyClose: (scope, tab) => call$1("pty.close", scopePayload(scope, { tab })),
|
|
18051
18067
|
/** Release an agent terminal by uuid (tab closed while WS was down). */
|
|
18052
18068
|
agentPtyClose: (uuid) => call$1("agent-pty.close", { uuid }),
|
|
18069
|
+
/** Skip every active terminal_wait_for on one agent terminal (the wait
|
|
18070
|
+
* banner's skip button). Idempotent: {skipped:0} when none is active. */
|
|
18071
|
+
agentSkipWait: (uuid) => call$1("agent-pty.skip-wait", { uuid }),
|
|
18053
18072
|
/** Terminal dependency status (issue #140): after a WS close 1011 with
|
|
18054
18073
|
* reason `pty-deps-missing` the view fetches the full repair details here
|
|
18055
18074
|
* (the close reason itself is capped at 123 bytes). */
|
|
@@ -43208,19 +43227,126 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43208
43227
|
//#endregion
|
|
43209
43228
|
//#region src/client/conversation-draft.ts
|
|
43210
43229
|
/**
|
|
43211
|
-
*
|
|
43212
|
-
*
|
|
43213
|
-
*
|
|
43230
|
+
* Splice `text` into `draft` at `caret` (replacing any live selection) with
|
|
43231
|
+
* whitespace-aware joins and report the caret position right after the
|
|
43232
|
+
* inserted text. `caret === null` (position unknown) appends at the end,
|
|
43233
|
+
* exactly like the original behavior.
|
|
43234
|
+
*/
|
|
43235
|
+
function spliceInsert(draft, text, caret) {
|
|
43236
|
+
if (caret === null || draft === "") {
|
|
43237
|
+
const next = draft.trim() === "" ? text : `${draft} ${text}`;
|
|
43238
|
+
return {
|
|
43239
|
+
draft: next,
|
|
43240
|
+
caretAfter: next.length
|
|
43241
|
+
};
|
|
43242
|
+
}
|
|
43243
|
+
const prefix = draft.slice(0, caret.start);
|
|
43244
|
+
const suffix = draft.slice(caret.end);
|
|
43245
|
+
if (prefix === "" && suffix === "") return {
|
|
43246
|
+
draft: text,
|
|
43247
|
+
caretAfter: text.length
|
|
43248
|
+
};
|
|
43249
|
+
const left = prefix === "" || /\s$/.test(prefix) ? "" : " ";
|
|
43250
|
+
return {
|
|
43251
|
+
draft: `${prefix}${left}${text}${suffix === "" || /^\s/.test(suffix) ? "" : " "}${suffix}`,
|
|
43252
|
+
caretAfter: prefix.length + left.length + text.length
|
|
43253
|
+
};
|
|
43254
|
+
}
|
|
43255
|
+
/**
|
|
43256
|
+
* Locate the composer `<textarea>` in the conversation column: prefer the
|
|
43257
|
+
* `data-phase`-tagged textarea (the composer's marker), falling back to any
|
|
43258
|
+
* textarea in the column, then to a bare data-phase textarea (older host
|
|
43259
|
+
* layouts without the column attribute). Null in jsdom-less hosts.
|
|
43260
|
+
*/
|
|
43261
|
+
function findComposerTextarea() {
|
|
43262
|
+
if (typeof document === "undefined") return null;
|
|
43263
|
+
const column = document.querySelector("#root [data-slot=\"conversation\"]");
|
|
43264
|
+
const find = (scope) => scope.querySelector("textarea[data-phase]") ?? scope.querySelector("textarea");
|
|
43265
|
+
return column !== null ? find(column) : document.querySelector("textarea[data-phase]");
|
|
43266
|
+
}
|
|
43267
|
+
/**
|
|
43268
|
+
* Resolve the composer's live caret from its DOM `<textarea>`. The draft
|
|
43269
|
+
* store has no caret API, so the sidebar reads the composed input's selection
|
|
43270
|
+
* directly; the value-sync check (`el.value === draft`) discards stale or
|
|
43271
|
+
* wrong-composer reads — a caret must never be applied against a draft it
|
|
43272
|
+
* was not measured on.
|
|
43273
|
+
*
|
|
43274
|
+
* Returns null when the composer is missing, disabled/read-only, out of
|
|
43275
|
+
* sync with the store draft, or has no measurable selection (odd hosts
|
|
43276
|
+
* report null selectionStart/End).
|
|
43277
|
+
*/
|
|
43278
|
+
function probeComposerCaret(draft) {
|
|
43279
|
+
const el = findComposerTextarea();
|
|
43280
|
+
if (el === null || el.disabled || el.readOnly) return null;
|
|
43281
|
+
if (el.value !== draft) return null;
|
|
43282
|
+
let start = el.selectionStart;
|
|
43283
|
+
let end = el.selectionEnd;
|
|
43284
|
+
if (typeof start !== "number" || typeof end !== "number") return null;
|
|
43285
|
+
if (!Number.isFinite(start) || !Number.isFinite(end)) return null;
|
|
43286
|
+
start = Math.max(0, Math.min(start, draft.length));
|
|
43287
|
+
end = Math.max(start, Math.min(end, draft.length));
|
|
43288
|
+
return {
|
|
43289
|
+
start,
|
|
43290
|
+
end
|
|
43291
|
+
};
|
|
43292
|
+
}
|
|
43293
|
+
/**
|
|
43294
|
+
* Restore the composer caret to `caretIndex` after a programmatic
|
|
43295
|
+
* `setDraft` commit. A controlled textarea update resets the caret (React
|
|
43296
|
+
* commits the value asynchronously and the browser moves the caret to the
|
|
43297
|
+
* start/end), so the placement is scheduled and retried across at most two
|
|
43298
|
+
* animation frames (setTimeout fallback), and only applied when the textarea
|
|
43299
|
+
* still matches `expectedDraft` — a newer edit or a different composer wins
|
|
43300
|
+
* the race untouched. The caret is clamped into the value bounds, mirroring
|
|
43301
|
+
* how browsers clamp type-in positions.
|
|
43302
|
+
*/
|
|
43303
|
+
function placeComposerCaretAfterInsert(expectedDraft, caretIndex) {
|
|
43304
|
+
let remaining = 2;
|
|
43305
|
+
let scheduled = false;
|
|
43306
|
+
const schedule = (fn) => {
|
|
43307
|
+
if (scheduled) return;
|
|
43308
|
+
scheduled = true;
|
|
43309
|
+
if (typeof requestAnimationFrame === "function") requestAnimationFrame(fn);
|
|
43310
|
+
else setTimeout(fn, 0);
|
|
43311
|
+
};
|
|
43312
|
+
const place = () => {
|
|
43313
|
+
scheduled = false;
|
|
43314
|
+
if (remaining <= 0) return;
|
|
43315
|
+
remaining -= 1;
|
|
43316
|
+
const el = findComposerTextarea();
|
|
43317
|
+
if (el === null || el.disabled || el.readOnly) return;
|
|
43318
|
+
if (el.value !== expectedDraft) {
|
|
43319
|
+
schedule(place);
|
|
43320
|
+
return;
|
|
43321
|
+
}
|
|
43322
|
+
const clamped = Math.max(0, Math.min(caretIndex, el.value.length));
|
|
43323
|
+
el.setSelectionRange(clamped, clamped);
|
|
43324
|
+
};
|
|
43325
|
+
schedule(place);
|
|
43326
|
+
}
|
|
43327
|
+
/**
|
|
43328
|
+
* Insert `text` into the session's composer draft at the composer's live
|
|
43329
|
+
* caret (see {@link probeComposerCaret}), falling back to appending at the
|
|
43330
|
+
* end when the caret cannot be resolved. Returns false — and logs — when the
|
|
43331
|
+
* conversation service or the session scope is unavailable.
|
|
43214
43332
|
*/
|
|
43215
43333
|
function appendToDraft(ctx, sessionId, text) {
|
|
43216
43334
|
try {
|
|
43217
43335
|
const actx = ctx.sessions.scope(sessionId);
|
|
43218
|
-
if (actx === void 0)
|
|
43336
|
+
if (actx === void 0) {
|
|
43337
|
+
console.warn("[dsh-coding-sidebar] draft insert skipped: no session scope", sessionId);
|
|
43338
|
+
return false;
|
|
43339
|
+
}
|
|
43219
43340
|
const conversation = ctx.get("conversation");
|
|
43220
|
-
if (conversation === void 0)
|
|
43341
|
+
if (conversation === void 0) {
|
|
43342
|
+
console.warn("[dsh-coding-sidebar] draft insert skipped: conversation service unavailable");
|
|
43343
|
+
return false;
|
|
43344
|
+
}
|
|
43221
43345
|
const input = conversation.input.for(actx);
|
|
43222
43346
|
const draft = input.state.getSnapshot().draft;
|
|
43223
|
-
|
|
43347
|
+
const { draft: next, caretAfter } = spliceInsert(draft, text, probeComposerCaret(draft));
|
|
43348
|
+
input.setDraft(next);
|
|
43349
|
+
placeComposerCaretAfterInsert(next, caretAfter);
|
|
43224
43350
|
return true;
|
|
43225
43351
|
} catch (error) {
|
|
43226
43352
|
console.warn("[dsh-coding-sidebar] draft insert failed:", error);
|
|
@@ -43228,6 +43354,117 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43228
43354
|
}
|
|
43229
43355
|
}
|
|
43230
43356
|
//#endregion
|
|
43357
|
+
//#region src/client/selection-popup.ts
|
|
43358
|
+
/**
|
|
43359
|
+
* The floating "add selection to conversation" popup shared by the text
|
|
43360
|
+
* viewer: a viewport-anchored button portaled to `document.body`, kept alive
|
|
43361
|
+
* across the selection gesture and committed on click.
|
|
43362
|
+
*
|
|
43363
|
+
* Dismissal contract (upstream issue #425): the popup must never outlive its
|
|
43364
|
+
* editor surface. The sidebar keeps every tab MOUNTED — switching tabs only
|
|
43365
|
+
* flips the pane cell to `display:none` and collapsing the panel translates
|
|
43366
|
+
* it off-screen — while the portaled `position:fixed` button stays pinned to
|
|
43367
|
+
* its viewport anchor, ignoring both. The caller already hides on surface
|
|
43368
|
+
* scrolls, selection collapse and content swaps; this hook adds the global
|
|
43369
|
+
* dismissal that covers everything else:
|
|
43370
|
+
*
|
|
43371
|
+
* - any `mousedown` outside the button (tab bar, composer, another pane,
|
|
43372
|
+
* the collapse toggle, …) closes it;
|
|
43373
|
+
* - `Escape` closes it;
|
|
43374
|
+
* - the document going hidden (`visibilitychange`) or the window losing
|
|
43375
|
+
* focus closes it;
|
|
43376
|
+
* - an `IntersectionObserver` on the editor surface closes it as soon as the
|
|
43377
|
+
* surface leaves the viewport — the tab-switch (`display:none`) and
|
|
43378
|
+
* panel-collapse (translated off-screen) paths have no DOM events of their
|
|
43379
|
+
* own, so the geometry signal is the only reliable one.
|
|
43380
|
+
*
|
|
43381
|
+
* The button's own `mousedown` is never treated as an outside click: the
|
|
43382
|
+
* caller preventDefaults it to keep the selection/caret alive until the
|
|
43383
|
+
* click commits (the hook's capture-phase listener runs first and must not
|
|
43384
|
+
* hide for it).
|
|
43385
|
+
*/
|
|
43386
|
+
function useSelectionPopup(options) {
|
|
43387
|
+
const onCommitRef = (0, react.useRef)(options.onCommit);
|
|
43388
|
+
const getSurfaceRef = (0, react.useRef)(options.getSurface);
|
|
43389
|
+
onCommitRef.current = options.onCommit;
|
|
43390
|
+
getSurfaceRef.current = options.getSurface;
|
|
43391
|
+
const [popup, setPopup] = (0, react.useState)(null);
|
|
43392
|
+
/** Live mirror for click/event-time reads (no re-render race). */
|
|
43393
|
+
const popupRef = (0, react.useRef)(null);
|
|
43394
|
+
/** The portaled button itself (for the outside-click guard). */
|
|
43395
|
+
const buttonRef = (0, react.useRef)(null);
|
|
43396
|
+
/** The surface visibility observer (created lazily on open). */
|
|
43397
|
+
const observerRef = (0, react.useRef)(null);
|
|
43398
|
+
const show = (insert, left, top) => {
|
|
43399
|
+
const next = {
|
|
43400
|
+
insert,
|
|
43401
|
+
left: Math.min(Math.max(left, 80), window.innerWidth - 80),
|
|
43402
|
+
top
|
|
43403
|
+
};
|
|
43404
|
+
popupRef.current = next;
|
|
43405
|
+
setPopup(next);
|
|
43406
|
+
};
|
|
43407
|
+
const hide = () => {
|
|
43408
|
+
popupRef.current = null;
|
|
43409
|
+
setPopup(null);
|
|
43410
|
+
};
|
|
43411
|
+
const commit = () => {
|
|
43412
|
+
const current = popupRef.current;
|
|
43413
|
+
if (current === null) return;
|
|
43414
|
+
onCommitRef.current(current.insert);
|
|
43415
|
+
hide();
|
|
43416
|
+
};
|
|
43417
|
+
(0, react.useEffect)(() => {
|
|
43418
|
+
const onMouseDown = (event) => {
|
|
43419
|
+
if (popupRef.current === null) return;
|
|
43420
|
+
const button = buttonRef.current;
|
|
43421
|
+
if (button !== null && (button === event.target || button.contains(event.target))) return;
|
|
43422
|
+
hide();
|
|
43423
|
+
};
|
|
43424
|
+
const onKeyDown = (event) => {
|
|
43425
|
+
if (event.key === "Escape" && popupRef.current !== null) hide();
|
|
43426
|
+
};
|
|
43427
|
+
const onVisibilityChange = () => {
|
|
43428
|
+
if (document.hidden && popupRef.current !== null) hide();
|
|
43429
|
+
};
|
|
43430
|
+
const onWindowBlur = () => {
|
|
43431
|
+
if (popupRef.current !== null) hide();
|
|
43432
|
+
};
|
|
43433
|
+
document.addEventListener("mousedown", onMouseDown, true);
|
|
43434
|
+
document.addEventListener("keydown", onKeyDown, true);
|
|
43435
|
+
document.addEventListener("visibilitychange", onVisibilityChange);
|
|
43436
|
+
window.addEventListener("blur", onWindowBlur);
|
|
43437
|
+
return () => {
|
|
43438
|
+
document.removeEventListener("mousedown", onMouseDown, true);
|
|
43439
|
+
document.removeEventListener("keydown", onKeyDown, true);
|
|
43440
|
+
document.removeEventListener("visibilitychange", onVisibilityChange);
|
|
43441
|
+
window.removeEventListener("blur", onWindowBlur);
|
|
43442
|
+
observerRef.current?.disconnect();
|
|
43443
|
+
observerRef.current = null;
|
|
43444
|
+
};
|
|
43445
|
+
}, []);
|
|
43446
|
+
(0, react.useEffect)(() => {
|
|
43447
|
+
if (popup === null) return;
|
|
43448
|
+
observerRef.current?.disconnect();
|
|
43449
|
+
observerRef.current = null;
|
|
43450
|
+
if (typeof IntersectionObserver === "undefined") return;
|
|
43451
|
+
const surface = getSurfaceRef.current();
|
|
43452
|
+
if (surface === null) return;
|
|
43453
|
+
const observer = new IntersectionObserver((entries) => {
|
|
43454
|
+
for (const entry of entries) if (!entry.isIntersecting) hide();
|
|
43455
|
+
}, { threshold: 0 });
|
|
43456
|
+
observerRef.current = observer;
|
|
43457
|
+
observer.observe(surface);
|
|
43458
|
+
}, [popup !== null]);
|
|
43459
|
+
return {
|
|
43460
|
+
popup,
|
|
43461
|
+
buttonRef,
|
|
43462
|
+
show,
|
|
43463
|
+
hide,
|
|
43464
|
+
commit
|
|
43465
|
+
};
|
|
43466
|
+
}
|
|
43467
|
+
//#endregion
|
|
43231
43468
|
//#region src/client/paths.ts
|
|
43232
43469
|
/**
|
|
43233
43470
|
* The path relative to the session's working directory.
|
|
@@ -43368,6 +43605,7 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43368
43605
|
terminalDepsFailed: "终端依赖 node-pty 加载失败",
|
|
43369
43606
|
terminalDepsHint: "在 DSH 所在环境的终端或 cmd 中执行以下命令修复,然后点重试(node-pty 与 DSH 核心保持同一版本):",
|
|
43370
43607
|
terminalDepsProfile: "(检测到 profile:{profile})",
|
|
43608
|
+
terminalShellNotFound: "未找到配置的 Shell:{name},请到 设置 → 侧边卡片 → 终端 检查 Shell 路径",
|
|
43371
43609
|
refresh: "刷新",
|
|
43372
43610
|
refreshUnsavedConfirm: "文件已在磁盘更新,刷新将丢弃未保存编辑。继续吗?",
|
|
43373
43611
|
save: "保存",
|
|
@@ -43432,6 +43670,18 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43432
43670
|
producedOpen: "在侧边栏中打开",
|
|
43433
43671
|
showInFolder: "在文件夹中显示",
|
|
43434
43672
|
disconnected: "终端连接断开,重连中…",
|
|
43673
|
+
terminalWaitBanner: "Agent 正在等待 {needle}",
|
|
43674
|
+
terminalSkipWait: "跳过等待",
|
|
43675
|
+
gitFoldExpand: "展开 {count} 行上下文",
|
|
43676
|
+
gitFoldLoading: "展开中…",
|
|
43677
|
+
gitFoldFailed: "展开失败",
|
|
43678
|
+
rename: "重命名",
|
|
43679
|
+
renameInvalid: "名称不能为空,且不能包含路径分隔符。",
|
|
43680
|
+
delete: "删除",
|
|
43681
|
+
deleteTitle: "删除「{name}」?",
|
|
43682
|
+
deleteDescFile: "将永久删除该文件,此操作不可撤销。",
|
|
43683
|
+
deleteDescDir: "将永久删除该目录及其全部内容,此操作不可撤销。",
|
|
43684
|
+
dismiss: "关闭",
|
|
43435
43685
|
exited: "终端进程已退出",
|
|
43436
43686
|
noSession: "选择一个会话以使用侧边栏",
|
|
43437
43687
|
pluginNotLoaded: "插件未加载,标签页暂不可用:",
|
|
@@ -43491,10 +43741,10 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43491
43741
|
settingsConflict: "设置已被其他窗口修改,请重试",
|
|
43492
43742
|
binaryNoPreview: "此文件类型不支持预览",
|
|
43493
43743
|
downloadToView: "下载查看",
|
|
43494
|
-
settingsSubagentTitle: "
|
|
43495
|
-
settingsSubagentDesc: "
|
|
43496
|
-
settingsJobsTitle: "
|
|
43497
|
-
settingsJobsDesc: "
|
|
43744
|
+
settingsSubagentTitle: "检测到子代理时自动激活任务管理页",
|
|
43745
|
+
settingsSubagentDesc: "当前会话产生新的子代理时,自动激活任务管理页;宽屏同时展开侧边栏,窄屏不强制展开全屏抽屉;关闭后需手动打开",
|
|
43746
|
+
settingsJobsTitle: "有新后台任务时自动激活后台任务页",
|
|
43747
|
+
settingsJobsDesc: "当前会话出现新的后台任务时,自动激活后台任务页(每个新任务都会触发);宽屏同时展开侧边栏,窄屏不强制展开全屏抽屉;关闭后需手动打开",
|
|
43498
43748
|
settingsToolsTitle: "为模型注入终端工具",
|
|
43499
43749
|
settingsToolsDesc: "开启后,模型可通过 terminal_create 等 8 个工具创建并操作侧边栏终端(默认关闭)",
|
|
43500
43750
|
settingsFontFamilyTitle: "终端字体",
|
|
@@ -43703,6 +43953,7 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43703
43953
|
terminalDepsFailed: "Terminal dependency node-pty failed to load",
|
|
43704
43954
|
terminalDepsHint: "Run the command below in a terminal or cmd on the DSH machine to repair it, then retry (node-pty stays in sync with the DSH core version):",
|
|
43705
43955
|
terminalDepsProfile: " (detected profile: {profile})",
|
|
43956
|
+
terminalShellNotFound: "Configured shell not found: {name} — check the shell path under Settings → Side card → Terminal",
|
|
43706
43957
|
refresh: "Refresh",
|
|
43707
43958
|
refreshUnsavedConfirm: "The file changed on disk. Refreshing will discard unsaved edits. Continue?",
|
|
43708
43959
|
save: "Save",
|
|
@@ -43767,6 +44018,18 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43767
44018
|
producedOpen: "Open in sidebar",
|
|
43768
44019
|
showInFolder: "Show in folder",
|
|
43769
44020
|
disconnected: "Terminal disconnected, reconnecting…",
|
|
44021
|
+
terminalWaitBanner: "Agent is waiting for {needle}",
|
|
44022
|
+
terminalSkipWait: "Skip wait",
|
|
44023
|
+
gitFoldExpand: "Expand {count} context lines",
|
|
44024
|
+
gitFoldLoading: "Expanding…",
|
|
44025
|
+
gitFoldFailed: "Failed to expand",
|
|
44026
|
+
rename: "Rename",
|
|
44027
|
+
renameInvalid: "The name cannot be empty or contain path separators.",
|
|
44028
|
+
delete: "Delete",
|
|
44029
|
+
deleteTitle: "Delete \"{name}\"?",
|
|
44030
|
+
deleteDescFile: "This permanently deletes the file. This cannot be undone.",
|
|
44031
|
+
deleteDescDir: "This permanently deletes the directory and everything inside it. This cannot be undone.",
|
|
44032
|
+
dismiss: "Dismiss",
|
|
43770
44033
|
exited: "Terminal process exited",
|
|
43771
44034
|
noSession: "Select a conversation to use the sidebar",
|
|
43772
44035
|
pluginNotLoaded: "Plugin not loaded; tab unavailable:",
|
|
@@ -43826,10 +44089,10 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43826
44089
|
settingsConflict: "The setting changed in another window — please retry",
|
|
43827
44090
|
binaryNoPreview: "This file type cannot be previewed",
|
|
43828
44091
|
downloadToView: "Download to view",
|
|
43829
|
-
settingsSubagentTitle: "Auto-
|
|
43830
|
-
settingsSubagentDesc: "
|
|
43831
|
-
settingsJobsTitle: "Auto-
|
|
43832
|
-
settingsJobsDesc: "
|
|
44092
|
+
settingsSubagentTitle: "Auto-activate the Tasks page when a subagent appears",
|
|
44093
|
+
settingsSubagentDesc: "Activate the Tasks page when the current conversation spawns a new subagent; on wide screens the side card expands with it, narrow screens never force the full-screen drawer; turn off to open it manually",
|
|
44094
|
+
settingsJobsTitle: "Auto-activate the Jobs page on a new background job",
|
|
44095
|
+
settingsJobsDesc: "Activate the Jobs page whenever a new background job appears for the current conversation (every new job triggers); on wide screens the side card expands with it, narrow screens never force the full-screen drawer; turn off to open it manually",
|
|
43833
44096
|
settingsToolsTitle: "Inject terminal tools for the model",
|
|
43834
44097
|
settingsToolsDesc: "When enabled, the model can create and drive sidebar terminals through the 8 terminal_* tools (off by default)",
|
|
43835
44098
|
settingsFontFamilyTitle: "Terminal font family",
|
|
@@ -43981,7 +44244,7 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43981
44244
|
}
|
|
43982
44245
|
//#endregion
|
|
43983
44246
|
//#region \0dsh-css:/Users/libing/kk_Projects/dsh-coding-sidebar/src/client/sidebar.module.css.mjs
|
|
43984
|
-
const css = "[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:hidden}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.S5HVoW_toggleCluster{top:calc(3px + env(safe-area-inset-top));z-index:45;pointer-events:auto;flex-direction:row;gap:4px;display:flex;position:absolute;right:10px}.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:72px}.S5HVoW_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.S5HVoW_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_toggleButton:disabled,.S5HVoW_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.S5HVoW_panel{box-sizing:border-box;z-index:40;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.S5HVoW_panelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translate(102%)}.S5HVoW_panel[data-dragging]{transition:none}.S5HVoW_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.S5HVoW_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_panelBody{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_panel{contain:layout style}body[data-dsh-sidebar-dragging] .S5HVoW_panel{will-change:transform}.S5HVoW_floatWindow{z-index:42;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv3);contain:layout style;border-radius:8px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.S5HVoW_floatWindowDragging{will-change:left, top, width, height}.S5HVoW_floatHeader{height:34px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.S5HVoW_floatWindowDragging .S5HVoW_floatHeader{cursor:grabbing}.S5HVoW_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_floatClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.S5HVoW_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.S5HVoW_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.S5HVoW_floatDropHint{z-index:46;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 12%, transparent);border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute}.S5HVoW_floatDropHintLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:999px;padding:4px 12px}.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tabBar,.S5HVoW_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .S5HVoW_toggleCluster{top:calc(var(--dsh-title-bar-strip,40px) + 3px)}body[data-dsh-title-bar-compat] .S5HVoW_panel{padding-top:var(--dsh-title-bar-strip,40px)}.S5HVoW_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_iconButton:disabled{opacity:.4;cursor:default}.S5HVoW_workbench,.S5HVoW_split{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_splitRow{flex-direction:row}.S5HVoW_splitCol{flex-direction:column}.S5HVoW_splitChild{display:flex;position:relative;overflow:hidden}.S5HVoW_divider{z-index:3;touch-action:none;flex:none;position:relative}.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.S5HVoW_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.S5HVoW_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.S5HVoW_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.S5HVoW_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.S5HVoW_divider:hover:after,.S5HVoW_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.S5HVoW_dropLeft{width:25%;top:0;bottom:0;left:0}.S5HVoW_dropRight{width:25%;top:0;bottom:0;right:0}.S5HVoW_dropUp{height:25%;top:0;left:0;right:0}.S5HVoW_dropDown{height:25%;bottom:0;left:0;right:0}.S5HVoW_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.S5HVoW_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.S5HVoW_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_paneTabHidden{display:none}.S5HVoW_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-content:start;gap:8px;min-height:0;padding:12px;display:grid;overflow:hidden}.S5HVoW_paneCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;display:flex}.S5HVoW_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.S5HVoW_paneCard:disabled{opacity:.45;cursor:default}.S5HVoW_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.S5HVoW_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.S5HVoW_tabList::-webkit-scrollbar{display:none}.S5HVoW_tab{min-width:64px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.S5HVoW_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.S5HVoW_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.S5HVoW_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.S5HVoW_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.S5HVoW_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:34px;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.S5HVoW_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_explorerRowRevealed{background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 18%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_explorerDir{font:var(--dsw-font-s-strong-14)}.S5HVoW_explorerHidden{opacity:.45}.S5HVoW_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerBroken .S5HVoW_explorerName{color:var(--dsw-alias-state-error-primary)}.S5HVoW_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.S5HVoW_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.S5HVoW_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_explorerRow:hover .S5HVoW_explorerRef,.S5HVoW_explorerRow:focus-within .S5HVoW_explorerRef{display:inline-flex}.S5HVoW_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes S5HVoW_dsh-row-in{0%{opacity:0}}.S5HVoW_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_uploadDropZone{z-index:1001;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);box-shadow:0 0 0 200vmax var(--dsw-alias-bg-mask-drop);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);border-radius:10px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.S5HVoW_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.S5HVoW_uploadDropZonePill{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:100%;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:flex}.S5HVoW_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadDropChatHint{z-index:1002;pointer-events:none;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.S5HVoW_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);flex-direction:column;align-items:center;gap:12px;display:flex}.S5HVoW_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.S5HVoW_uploadOverlayCard{border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);min-width:280px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:24px;flex-direction:column;gap:12px;padding:20px 24px;display:flex}.S5HVoW_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.S5HVoW_uploadOverlayTitle>svg{flex:none}.S5HVoW_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.S5HVoW_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.S5HVoW_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.S5HVoW_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-end;padding:0 14px}.S5HVoW_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.S5HVoW_editor{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.S5HVoW_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_editorBody{flex:1;min-height:0;display:flex}.S5HVoW_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.S5HVoW_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.S5HVoW_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.S5HVoW_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_editorTreePanelFull{flex:1}.S5HVoW_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.S5HVoW_editorSearchResult{width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;display:block;overflow:hidden}.S5HVoW_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorStatusError{color:var(--dsw-alias-state-error-primary)}.S5HVoW_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.S5HVoW_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.S5HVoW_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.S5HVoW_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.S5HVoW_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.S5HVoW_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.S5HVoW_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.S5HVoW_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.S5HVoW_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.S5HVoW_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.S5HVoW_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.S5HVoW_sandboxStatusOff .S5HVoW_sandboxDot{background:var(--dsw-alias-state-error-primary)}.S5HVoW_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.S5HVoW_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_browser{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.S5HVoW_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.S5HVoW_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.S5HVoW_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.S5HVoW_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.S5HVoW_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.S5HVoW_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.S5HVoW_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.S5HVoW_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.S5HVoW_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.S5HVoW_editorCm .cm-editor{height:100%}.S5HVoW_editorCm .cm-scroller{padding:12px 16px}.S5HVoW_editorCm .cm-editor.cm-focused{outline:none}.S5HVoW_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.S5HVoW_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.S5HVoW_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.S5HVoW_terminal .xterm{height:100%}.S5HVoW_terminalBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:3px 10px;display:flex}.S5HVoW_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.S5HVoW_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.S5HVoW_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.S5HVoW_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_terminalDepsBanner{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-direction:column;flex:none;gap:6px;padding:10px;display:flex}.S5HVoW_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.S5HVoW_terminalDepsHint{opacity:.9}.S5HVoW_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.S5HVoW_terminalRepairCommand{white-space:pre-wrap;word-break:break-all;user-select:text;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:4px;flex:1;max-height:160px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow:auto}.S5HVoW_terminalDepsNote{opacity:.85}.S5HVoW_terminalDepsActions{align-items:center;gap:8px;display:flex}.S5HVoW_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.S5HVoW_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.S5HVoW_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.S5HVoW_gitBranchSelect{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);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 6px}.S5HVoW_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.S5HVoW_gitSectionHeader{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);text-transform:uppercase;justify-content:space-between;align-items:center;padding:6px 12px 4px;display:flex}.S5HVoW_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.S5HVoW_gitLink:hover:not(:disabled){text-decoration:underline}.S5HVoW_gitLink:disabled{opacity:.4;cursor:default}.S5HVoW_gitRow{min-height:34px;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;align-items:center;gap:6px;margin:0 6px;padding:0 8px;display:flex}.S5HVoW_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_gitRowMain{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:3px 0;display:flex}.S5HVoW_gitBadge{width:20px;height:16px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.S5HVoW_gitName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.S5HVoW_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.S5HVoW_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.S5HVoW_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitDiffFile{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:8px 2px 2px;display:flex}.S5HVoW_gitDiffFile:disabled{cursor:default}.S5HVoW_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.S5HVoW_gitDiffFileChevronExpanded{transform:rotate(90deg)}.S5HVoW_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_gitDiffFileOld{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.S5HVoW_gitDiffFileTag{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:0 6px}.S5HVoW_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.S5HVoW_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.S5HVoW_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_gitDiffLine{font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;overflow-wrap:anywhere;align-items:stretch;min-width:0;line-height:20px;display:flex}.S5HVoW_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.S5HVoW_gitDiffCode{flex:1;min-width:0;overflow:visible}.S5HVoW_gitDiffCtx{color:var(--dsw-alias-label-primary)}.S5HVoW_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.S5HVoW_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.S5HVoW_gitDiffMeta{padding-left:2px}.S5HVoW_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_gitDiffExpand{width:100%;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-brand-primary);cursor:pointer;text-align:center;background:0 0;border:none;margin:4px 0;display:block}.S5HVoW_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.S5HVoW_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.S5HVoW_gitCommitInput{flex:1;min-width:0}.S5HVoW_gitCommitButton{background:var(--dsw-alias-button-primary-fill);height:26px;color:var(--dsw-alias-label-primary-inverted);font:var(--dsw-font-xxs-strong-12);cursor:pointer;border:none;border-radius:6px;flex:none;padding:0 12px}.S5HVoW_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.S5HVoW_gitCommitButton:disabled{opacity:.45;cursor:default}.S5HVoW_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.S5HVoW_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.S5HVoW_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.S5HVoW_gitLogRef{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-brand-primary);white-space:nowrap;border-radius:999px;flex:none;padding:0 5px}.S5HVoW_gitLogSubject{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_gitLogMore{border:1px solid var(--dsw-alias-border-l2);width:calc(100% - 24px);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;margin:4px 12px 8px;padding:6px 0;display:block}.S5HVoW_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_gitLogMore:disabled{opacity:.5;cursor:default}.S5HVoW_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.S5HVoW_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_producedChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:200px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex;overflow:hidden}.S5HVoW_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_toggleButton:focus-visible,.S5HVoW_iconButton:focus-visible,.S5HVoW_tab:focus-visible,.S5HVoW_tabClose:focus-visible,.S5HVoW_tabBarPlus:focus-visible,.S5HVoW_paneCard:focus-visible,.S5HVoW_explorerRow:focus-visible,.S5HVoW_explorerRef:focus-visible,.S5HVoW_gitRowMain:focus-visible,.S5HVoW_gitLink:focus-visible,.S5HVoW_gitCommitButton:focus-visible,.S5HVoW_gitLogRow:focus-visible,.S5HVoW_gitLogMore:focus-visible,.S5HVoW_gitDiffFile:focus-visible,.S5HVoW_gitDiffExpand:focus-visible,.S5HVoW_terminalRetry:focus-visible,.S5HVoW_editorDownloadLink:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.S5HVoW_panel,.S5HVoW_panelHidden,.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tab,.S5HVoW_tabBarPlus,.S5HVoW_paneCard,.S5HVoW_explorerRow,.S5HVoW_gitRow,.S5HVoW_divider,.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:40px}.S5HVoW_tab{min-width:48px;max-width:128px}}.S5HVoW_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.S5HVoW_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.S5HVoW_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_openWithPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.S5HVoW_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_openWithPinActive{color:var(--dsw-alias-state-business-primary)}@keyframes S5HVoW_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.S5HVoW_browserLive{flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:absolute;inset:0;overflow:hidden}.S5HVoW_browserLiveStatus{opacity:.75;align-items:center;gap:8px;font-size:12px;display:flex}.S5HVoW_browserLiveCanvas{object-fit:contain;border:1px solid var(--dsw-alias-border-l,#80808040);cursor:crosshair;background:#fff;border-radius:8px;flex:1;width:100%;min-height:0}.S5HVoW_browserLiveTarget{max-width:260px;font-size:12px}";
|
|
44247
|
+
const css = "[data-dsh-panel-host]{z-index:25;pointer-events:none;position:fixed;inset:0;overflow:hidden}[data-dsh-panel-host][data-dsh-panel-host-degraded]{position:absolute;top:0;left:0}.S5HVoW_toggleCluster{top:calc(3px + env(safe-area-inset-top));z-index:45;pointer-events:auto;flex-direction:row;gap:4px;display:flex;position:absolute;right:10px}.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:72px}.S5HVoW_toggleButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), color var(--ds-transition-duration-slow) var(--ds-ease-in-out);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex}.S5HVoW_toggleButton:hover:not(:disabled):not([aria-disabled=true]){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_toggleButton:disabled,.S5HVoW_toggleButton[aria-disabled=true]{opacity:.4;cursor:default}.S5HVoW_panel{box-sizing:border-box;z-index:40;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);padding-bottom:env(safe-area-inset-bottom);transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out);flex-direction:column;display:flex;position:absolute;top:0;bottom:0;right:0}.S5HVoW_panelHidden{pointer-events:none;visibility:hidden;transition:transform var(--ds-transition-duration-slow) var(--ds-ease-in-out), width var(--ds-transition-duration-slow) var(--ds-ease-in-out), visibility 0s linear var(--ds-transition-duration-slow);transform:translate(102%)}.S5HVoW_panel[data-dragging]{transition:none}.S5HVoW_panelResize{cursor:col-resize;z-index:2;touch-action:none;width:8px;position:absolute;top:0;bottom:0;left:-4px}.S5HVoW_panelResizeActive{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_panelBody{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_panel{contain:layout style}body[data-dsh-sidebar-dragging] .S5HVoW_panel{will-change:transform}.S5HVoW_floatWindow{z-index:42;pointer-events:auto;background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);box-shadow:var(--dsw-shadow-lv3);contain:layout style;border-radius:8px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.S5HVoW_floatWindowDragging{will-change:left, top, width, height}.S5HVoW_floatHeader{height:34px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1);cursor:grab;user-select:none;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.S5HVoW_floatWindowDragging .S5HVoW_floatHeader{cursor:grabbing}.S5HVoW_floatTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_floatClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_floatClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_floatContent{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden}.S5HVoW_floatResize{z-index:2;cursor:nwse-resize;touch-action:none;width:14px;height:14px;position:absolute;bottom:0;right:0}.S5HVoW_floatResize:hover{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane[data-dsh-float-dock-over]{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px}.S5HVoW_floatDropHint{z-index:46;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 12%, transparent);border-radius:8px;justify-content:center;align-items:center;display:flex;position:absolute}.S5HVoW_floatDropHintLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-1);border:1px solid var(--dsw-alias-border-l2);border-radius:999px;padding:4px 12px}.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tabBar,.S5HVoW_floatHeader{-webkit-app-region:no-drag}body[data-dsh-title-bar-compat] .S5HVoW_toggleCluster{top:calc(var(--dsh-title-bar-strip,40px) + 3px)}body[data-dsh-title-bar-compat] .S5HVoW_panel{padding-top:var(--dsh-title-bar-strip,40px)}.S5HVoW_iconButton{width:28px;height:28px;color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border:none;border-radius:50%;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_iconButton:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_iconButton:disabled{opacity:.4;cursor:default}.S5HVoW_workbench,.S5HVoW_split{flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_splitRow{flex-direction:row}.S5HVoW_splitCol{flex-direction:column}.S5HVoW_splitChild{display:flex;position:relative;overflow:hidden}.S5HVoW_divider{z-index:3;touch-action:none;flex:none;position:relative}.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{content:\"\";background:var(--dsw-alias-border-l2);transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out);position:absolute}.S5HVoW_dividerRow{cursor:col-resize;width:7px;margin:0 -2px}.S5HVoW_dividerRow:after{width:1px;top:0;bottom:0;left:50%;transform:translate(-50%)}.S5HVoW_dividerCol{cursor:row-resize;height:7px;margin:-2px 0}.S5HVoW_dividerCol:after{height:1px;top:50%;left:0;right:0;transform:translateY(-50%)}.S5HVoW_divider:hover:after,.S5HVoW_dividerActive:after{background:var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_pane{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_paneDrop{outline:1px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_dropOverlay{z-index:6;pointer-events:none;background:var(--dsw-alias-interactive-bg-hover-accent);opacity:.5;position:absolute}.S5HVoW_dropLeft{width:25%;top:0;bottom:0;left:0}.S5HVoW_dropRight{width:25%;top:0;bottom:0;right:0}.S5HVoW_dropUp{height:25%;top:0;left:0;right:0}.S5HVoW_dropDown{height:25%;bottom:0;left:0;right:0}.S5HVoW_dropCenter{outline:2px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-2px;background:0 0;inset:25%}.S5HVoW_paneContent{flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}.S5HVoW_paneTab{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_paneTabHidden{display:none}.S5HVoW_paneEmptyCards{flex:1;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));align-content:start;gap:8px;min-height:0;padding:12px;display:grid;overflow:hidden}.S5HVoW_paneCard{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;text-align:center;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;display:flex}.S5HVoW_paneCard:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary);border-color:var(--dsw-alias-border-l2)}.S5HVoW_paneCard:disabled{opacity:.45;cursor:default}.S5HVoW_tabBar{border-bottom:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);flex:none;align-items:stretch;height:34px;display:flex}.S5HVoW_tabBarDrop{outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_tabList{scrollbar-width:none;flex:1;min-width:0;display:flex;overflow-x:auto}.S5HVoW_tabList::-webkit-scrollbar{display:none}.S5HVoW_tab{min-width:64px;max-width:160px;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);border-right:1px solid var(--dsw-alias-border-l1);cursor:pointer;user-select:none;background:0 0;flex:none;align-items:center;gap:4px;padding:0 4px 0 10px;display:flex}.S5HVoW_tab:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_tabActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_tabTitle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_tabBadge{min-width:16px;height:15px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-brand-primary);border-radius:8px;flex:none;justify-content:center;align-items:center;padding:0 4px;display:inline-flex}.S5HVoW_tabClose{width:18px;height:18px;color:var(--dsw-alias-label-tertiary);cursor:pointer;background:0 0;border:none;border-radius:4px;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.S5HVoW_tabClose:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_tabBarPlus{background:var(--dsw-alias-bg-layer-1);width:22px;height:22px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border:none;border-radius:5px;flex:none;justify-content:center;align-self:center;align-items:center;margin:0 6px;padding:0;display:inline-flex;position:sticky;right:0}.S5HVoW_tabBarPlus:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_pinnedTab{color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_pinnedTab:hover{color:var(--dsw-alias-label-secondary)}.S5HVoW_explorer{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_explorerHeader{flex:none;justify-content:space-between;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_explorerRoot{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_explorerBody{flex:1;min-height:0;padding:4px 8px 8px;overflow:hidden auto}.S5HVoW_explorerRow{box-sizing:border-box;width:100%;max-width:100%;height:34px;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);text-align:left;cursor:pointer;white-space:nowrap;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);background:0 0;border:none;border-radius:8px;align-items:center;gap:6px;padding:0 8px;display:flex}.S5HVoW_explorerRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_explorerRowRevealed{background:color-mix(in srgb, var(--dsw-alias-interactive-bg-hover-accent) 18%, transparent);box-shadow:inset 2px 0 0 var(--dsw-alias-interactive-bg-hover-accent)}.S5HVoW_explorerDir{font:var(--dsw-font-s-strong-14)}.S5HVoW_explorerHidden{opacity:.45}.S5HVoW_explorerSymlink{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerBroken .S5HVoW_explorerName{color:var(--dsw-alias-state-error-primary)}.S5HVoW_explorerName{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.S5HVoW_explorerRef{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:20px;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;align-items:center;padding:0 8px;display:none}.S5HVoW_explorerRef:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_explorerRow:hover .S5HVoW_explorerRef,.S5HVoW_explorerRow:focus-within .S5HVoW_explorerRef{display:inline-flex}.S5HVoW_explorerCopied{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_explorerError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);cursor:default}@keyframes S5HVoW_dsh-row-in{0%{opacity:0}}.S5HVoW_explorerEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_explorerRowDropTarget{background:var(--dsw-alias-interactive-bg-hover);outline:1px dashed var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}.S5HVoW_uploadDropZone{z-index:1001;pointer-events:none;border:2px dashed var(--dsw-alias-interactive-bg-hover-accent);box-shadow:0 0 0 200vmax var(--dsw-alias-bg-mask-drop);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);border-radius:10px;justify-content:center;align-items:flex-start;padding:12px;display:flex;position:fixed}.S5HVoW_uploadDropHero{flex-direction:column;align-items:center;gap:10px;max-width:100%;padding-top:8px;display:flex}.S5HVoW_uploadDropZonePill{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:100%;box-shadow:var(--dsw-shadow-lv2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);border-radius:999px;align-items:center;gap:6px;padding:6px 12px;display:flex}.S5HVoW_uploadDropZoneText{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadDropChatHint{z-index:1002;pointer-events:none;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;top:0;bottom:0;left:0}.S5HVoW_uploadDropChatCard{text-align:center;max-width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-s-strong-14);flex-direction:column;align-items:center;gap:12px;display:flex}.S5HVoW_uploadOverlay{z-index:30;background:var(--dsw-alias-bg-mask-1);backdrop-filter:var(--dsw-mask-blur);animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.S5HVoW_uploadOverlayCard{border:1px solid var(--dsw-alias-border-inverted);background:var(--dsw-alias-bg-layer-2);min-width:280px;max-width:min(420px,100% - 48px);box-shadow:var(--dsw-shadow-lv3);border-radius:24px;flex-direction:column;gap:12px;padding:20px 24px;display:flex}.S5HVoW_uploadOverlayTitle{font:var(--dsw-font-s-strong-14);color:var(--dsw-alias-label-primary);align-items:center;gap:8px;display:flex}.S5HVoW_uploadOverlayTitle>svg{flex:none}.S5HVoW_uploadOverlayTitle>span{white-space:nowrap;text-overflow:ellipsis;min-width:0;overflow:hidden}.S5HVoW_uploadOverlayProgress{background:var(--dsw-alias-border-l2);border-radius:3px;height:6px;overflow:hidden}.S5HVoW_uploadOverlayProgressFill{background:var(--dsw-alias-interactive-bg-hover-accent);height:100%;transition:width .15s var(--ds-ease-in-out);border-radius:3px}.S5HVoW_uploadOverlayStatus{min-height:1em;font:var(--dsw-font-xxs-12);font-variant-numeric:tabular-nums;color:var(--dsw-alias-label-tertiary);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.S5HVoW_uploadOverlayCancel{border:1px solid var(--dsw-alias-border-l2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;background:0 0;border-radius:8px;align-self:flex-end;padding:0 14px}.S5HVoW_uploadOverlayCancel:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_uploadOverlayCancel:disabled{opacity:.4;cursor:default}.S5HVoW_editor{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_editorHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_editorTitle{min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-secondary);text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.S5HVoW_editorPathInput{box-sizing:border-box;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_editorPathInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorTreeToggleActive{color:var(--dsw-alias-label-primary);background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_editorBody{flex:1;min-height:0;display:flex}.S5HVoW_editorMain{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.S5HVoW_editorTreeDock{border-left:1px solid var(--dsw-alias-border-l1);flex:none;min-height:0;display:flex;position:relative}.S5HVoW_editorTreeResize{cursor:col-resize;touch-action:none;z-index:3;width:6px;position:absolute;top:0;bottom:0;left:0}.S5HVoW_editorTreeResize:hover{background:var(--dsw-alias-border-l2)}.S5HVoW_editorTreePanel{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;position:relative}.S5HVoW_editorTreePanelFull{flex:1}.S5HVoW_editorTreeSearch{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:6px;padding:6px 8px;display:flex}.S5HVoW_editorSearchInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:26px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_editorSearchInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_editorSearchHint{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:8px 12px}.S5HVoW_editorSearchResult{width:100%;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);text-align:left;cursor:pointer;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:4px 8px;display:block;overflow:hidden}.S5HVoW_editorSearchResult:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorStatus{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorStatusError{color:var(--dsw-alias-state-error-primary)}.S5HVoW_dirtyDot{background:var(--dsw-alias-state-warn-primary);border-radius:50%;flex:none;width:7px;height:7px}.S5HVoW_editorPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;flex:1;justify-content:center;align-items:center;padding:16px;display:flex}.S5HVoW_orphanedType{opacity:.7;overflow-wrap:anywhere;margin-top:8px;font-size:12px;display:block}.S5HVoW_editorBinary{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;padding:24px 16px;display:flex}.S5HVoW_editorBinaryNotice{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_editorDownloadLink{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-strong-12);cursor:pointer;transition:background var(--ds-transition-duration-slow) var(--ds-ease-in-out), border-color var(--ds-transition-duration-slow) var(--ds-ease-in-out);border-radius:6px;align-items:center;gap:6px;padding:6px 14px;text-decoration:none;display:inline-flex}.S5HVoW_editorDownloadLink:hover{background:var(--dsw-alias-interactive-bg-hover);border-color:var(--dsw-alias-border-l2)}.S5HVoW_editorError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);padding:12px 16px}.S5HVoW_editorBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 8px}.S5HVoW_sandboxStatus{font:var(--dsw-font-xxxs-11);flex:none;align-items:center;gap:8px;padding:4px 10px;display:flex}.S5HVoW_sandboxStatusOn{color:var(--dsw-alias-label-secondary);background:var(--dsw-alias-bg-layer-1);border-bottom:1px solid var(--dsw-alias-border-l1)}.S5HVoW_sandboxStatusOff{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 10%, transparent);border-bottom:1px solid color-mix(in srgb, var(--dsw-alias-state-error-primary) 45%, transparent)}.S5HVoW_sandboxDot{background:var(--dsw-alias-state-success-primary);border-radius:50%;flex:none;width:6px;height:6px}.S5HVoW_sandboxStatusOff .S5HVoW_sandboxDot{background:var(--dsw-alias-state-error-primary)}.S5HVoW_sandboxStatusText{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.S5HVoW_sandboxAction{border:1px solid var(--dsw-alias-border-l2);font:inherit;color:inherit;cursor:pointer;background:0 0;border-radius:6px;flex:none;padding:2px 8px}.S5HVoW_sandboxAction:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_browser{flex-direction:column;flex:1;min-height:0;display:flex}.S5HVoW_browserBar{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:4px;padding:6px 8px;display:flex}.S5HVoW_browserInput{border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-1);min-width:0;height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 10px}.S5HVoW_browserInput:focus{border-color:var(--dsw-alias-border-l2);outline:none}.S5HVoW_browserMessage{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;padding:4px 12px}.S5HVoW_browserFrame{background:var(--dsw-alias-bg-base);border:none;flex:1;width:100%;min-height:0}.S5HVoW_browserStart{text-align:center;min-height:0;font:var(--dsw-font-xs-13);color:var(--dsw-alias-label-tertiary);flex:1;justify-content:center;align-items:center;padding:20px;display:flex}.S5HVoW_browserBlocked{text-align:center;min-height:0;color:var(--dsw-alias-state-warn-primary);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding:24px;display:flex}.S5HVoW_browserBlockedTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary)}.S5HVoW_browserBlockedDesc{max-width:280px;font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-secondary)}.S5HVoW_browserBlockedActions{gap:8px;margin-top:6px;display:flex}.S5HVoW_browserBlockedButton{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-1);color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-11);cursor:pointer;border-radius:6px;padding:4px 12px}.S5HVoW_browserBlockedButton:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_editorCm{background:0 0;flex:1;min-height:0;overflow:hidden}.S5HVoW_editorCm .cm-editor{height:100%}.S5HVoW_editorCm .cm-scroller{padding:12px 16px}.S5HVoW_editorCm .cm-editor.cm-focused{outline:none}.S5HVoW_selectionPopup{z-index:60;border:1px solid var(--dsw-alias-border-l1);background:var(--dsw-alias-bg-layer-2);height:28px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxxs-strong-11);white-space:nowrap;cursor:pointer;border-radius:6px;align-items:center;padding:0 10px;display:inline-flex;position:fixed;transform:translate(-50%,calc(-100% - 8px))}.S5HVoW_selectionPopup:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_terminalWrap{background:var(--dsw-alias-bg-base);flex-direction:column;flex:1;min-height:0;display:flex;position:relative}.S5HVoW_terminal{flex:1;min-height:0;padding:6px 4px 6px 8px}.S5HVoW_terminal .xterm{height:100%}.S5HVoW_terminalBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-wrap:wrap;flex:none;align-items:center;gap:8px;padding:3px 10px;display:flex}.S5HVoW_terminalBannerUrl{word-break:break-all;opacity:.85;flex-basis:100%;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.S5HVoW_boundaryError{z-index:50;background:var(--dsw-alias-bg-layer-1);border-left:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;align-items:flex-start;gap:8px;padding:16px;display:flex;position:fixed;top:0;bottom:0;right:0;overflow:auto}.S5HVoW_terminalRetry{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxxs-strong-11);cursor:pointer;border-radius:999px;flex:none;padding:1px 8px}.S5HVoW_terminalRetry:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_gitFoldRow{box-sizing:border-box;background:var(--dsw-alias-bg-layer-1);width:100%;color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);text-align:center;cursor:pointer;border:none;outline:none;padding:2px 12px;display:block}.S5HVoW_gitFoldRow:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary)}.S5HVoW_gitFoldRow:disabled{cursor:default}.S5HVoW_gitFoldRowFailed{color:var(--dsw-alias-state-error-primary);opacity:.7}.S5HVoW_explorerRenameInput{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);min-width:0;height:20px;color:var(--dsw-alias-label-primary);font:var(--dsw-font-xxs-12);border-radius:4px;outline:none;flex:1;padding:0 4px}.S5HVoW_terminalWaitBanner{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex:none;align-items:center;gap:8px;padding:3px 10px;display:flex}.S5HVoW_terminalWaitNeedle{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;overflow:hidden}.S5HVoW_terminalDepsBanner{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-warn-label);background:var(--dsw-alias-state-warn-tertiary);flex-direction:column;flex:none;gap:6px;padding:10px;display:flex}.S5HVoW_terminalDepsTitle{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-state-warn-primary)}.S5HVoW_terminalDepsHint{opacity:.9}.S5HVoW_terminalDepsCommandRow{align-items:flex-start;gap:8px;display:flex}.S5HVoW_terminalRepairCommand{white-space:pre-wrap;word-break:break-all;user-select:text;min-width:0;color:var(--dsw-alias-label-primary);background:var(--dsw-alias-bg-layer-2);border:1px solid var(--dsw-alias-border-l2);border-radius:4px;flex:1;max-height:160px;margin:0;padding:6px 8px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.5;overflow:auto}.S5HVoW_terminalDepsNote{opacity:.85}.S5HVoW_terminalDepsActions{align-items:center;gap:8px;display:flex}.S5HVoW_tabBoundaryError{min-height:0;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);flex-direction:column;flex:1;align-items:flex-start;gap:8px;padding:12px 16px;display:flex;overflow:auto}.S5HVoW_git{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitHeader{flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitWorktreeRow{flex:none;align-items:center;gap:8px;padding:6px 8px 0 12px;display:flex}.S5HVoW_gitWorktreeLabel{color:var(--dsw-alias-label-tertiary);font:var(--dsw-font-xxxs-11);flex:none}.S5HVoW_gitBranchSelect{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);font:var(--dsw-font-xxs-12);border-radius:6px;flex:1;padding:0 6px}.S5HVoW_gitSection{border-top:1px solid var(--dsw-alias-border-l1)}.S5HVoW_gitSectionHeader{font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-tertiary);text-transform:uppercase;justify-content:space-between;align-items:center;padding:6px 12px 4px;display:flex}.S5HVoW_gitLink{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-brand-primary);cursor:pointer;background:0 0;border:none;padding:0}.S5HVoW_gitLink:hover:not(:disabled){text-decoration:underline}.S5HVoW_gitLink:disabled{opacity:.4;cursor:default}.S5HVoW_gitRow{min-height:34px;animation:S5HVoW_dsh-row-in .15s var(--ds-ease-in-out);border-radius:8px;align-items:center;gap:6px;margin:0 6px;padding:0 8px;display:flex}.S5HVoW_gitRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitRowSelected{background:var(--dsw-alias-interactive-bg-active)}.S5HVoW_gitRowMain{cursor:pointer;text-align:left;background:0 0;border:none;flex:1;align-items:center;gap:8px;min-width:0;padding:3px 0;display:flex}.S5HVoW_gitBadge{width:20px;height:16px;font:var(--dsw-font-xxxs-strong-11);background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-secondary);border-radius:4px;flex:none;justify-content:center;align-items:center;display:inline-flex}.S5HVoW_gitName{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitEmpty{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);padding:4px 12px 8px}.S5HVoW_gitPlaceholder{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary);text-align:center;padding:16px}.S5HVoW_gitError{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-state-error-primary);white-space:pre-wrap;padding:8px 12px}.S5HVoW_gitDiff{border-top:1px solid var(--dsw-alias-border-l1);padding:8px}.S5HVoW_gitDiffTab{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex;overflow:hidden auto}.S5HVoW_gitDiffTabHeader{border-bottom:1px solid var(--dsw-alias-border-l1);flex:none;align-items:center;gap:8px;height:36px;padding:0 8px 0 12px;display:flex}.S5HVoW_gitDiffTabTitle{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitDiffFile{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:6px;padding:8px 2px 2px;display:flex}.S5HVoW_gitDiffFile:disabled{cursor:default}.S5HVoW_gitDiffFile:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitDiffFileChevron{color:var(--dsw-alias-label-tertiary);flex:none;transform:rotate(0)}.S5HVoW_gitDiffFileChevronExpanded{transform:rotate(90deg)}.S5HVoW_gitDiffFilePath{font:var(--dsw-font-xxs-strong-12);color:var(--dsw-alias-label-primary);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_gitDiffFileOld{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);text-overflow:ellipsis;white-space:nowrap;flex:none;max-width:40%;overflow:hidden}.S5HVoW_gitDiffFileTag{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-label-secondary);border-radius:999px;flex:none;padding:0 6px}.S5HVoW_gitDiffHunk{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);gap:8px;padding:3px 2px;display:flex}.S5HVoW_gitDiffHunkHeader{color:var(--dsw-alias-label-secondary);flex:none}.S5HVoW_gitDiffHunkSection{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_gitDiffLine{font:var(--dsw-font-markdown-code-block-small);white-space:pre-wrap;overflow-wrap:anywhere;align-items:stretch;min-width:0;line-height:20px;display:flex}.S5HVoW_gitDiffNum{text-align:right;width:36px;color:var(--dsw-alias-label-tertiary);user-select:none;flex:none;padding-right:8px}.S5HVoW_gitDiffCode{flex:1;min-width:0;overflow:visible}.S5HVoW_gitDiffCtx{color:var(--dsw-alias-label-primary)}.S5HVoW_gitDiffDel{color:var(--dsw-alias-state-error-primary);background:color-mix(in srgb, var(--dsw-alias-state-error-primary) 12%, transparent)}.S5HVoW_gitDiffAdd{color:var(--dsw-alias-state-success-primary);background:color-mix(in srgb, var(--dsw-alias-state-success-primary) 12%, transparent)}.S5HVoW_gitDiffMeta{padding-left:2px}.S5HVoW_gitDiffMetaText{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary);font-style:italic}.S5HVoW_gitDiffExpand{width:100%;font:var(--dsw-font-xxs-12);color:var(--dsw-alias-brand-primary);cursor:pointer;text-align:center;background:0 0;border:none;margin:4px 0;display:block}.S5HVoW_gitDiffExpand:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitConfirmDesc{font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);white-space:pre-wrap;margin:0}.S5HVoW_gitCommit{border-top:1px solid var(--dsw-alias-border-l1);align-items:center;gap:6px;padding:8px 12px;display:flex}.S5HVoW_gitCommitInput{flex:1;min-width:0}.S5HVoW_gitCommitButton{background:var(--dsw-alias-button-primary-fill);height:26px;color:var(--dsw-alias-label-primary-inverted);font:var(--dsw-font-xxs-strong-12);cursor:pointer;border:none;border-radius:6px;flex:none;padding:0 12px}.S5HVoW_gitCommitButton:hover:not(:disabled){background:var(--dsw-alias-button-primary-hover)}.S5HVoW_gitCommitButton:disabled{opacity:.45;cursor:default}.S5HVoW_gitLogRow{cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:5px 12px;display:flex}.S5HVoW_gitLogRow:hover{background:var(--dsw-alias-interactive-bg-hover)}.S5HVoW_gitLogLine1{align-items:baseline;gap:8px;min-width:0;display:flex}.S5HVoW_gitLogHash{font:var(--dsw-font-markdown-code-block-small);color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_gitLogLine2{flex-wrap:wrap;align-items:center;gap:6px;min-width:0;display:flex}.S5HVoW_gitLogRef{border:1px solid var(--dsw-alias-border-l2);font:var(--dsw-font-xxxs-strong-11);color:var(--dsw-alias-brand-primary);white-space:nowrap;border-radius:999px;flex:none;padding:0 5px}.S5HVoW_gitLogSubject{text-overflow:ellipsis;white-space:nowrap;min-width:0;font:var(--dsw-font-s-14);color:var(--dsw-alias-label-primary);flex:1;overflow:hidden}.S5HVoW_gitLogMeta{font:var(--dsw-font-xxxs-11);color:var(--dsw-alias-label-tertiary)}.S5HVoW_gitLogMore{border:1px solid var(--dsw-alias-border-l2);width:calc(100% - 24px);font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-secondary);cursor:pointer;background:0 0;border-radius:6px;margin:4px 12px 8px;padding:6px 0;display:block}.S5HVoW_gitLogMore:hover:not(:disabled){background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_gitLogMore:disabled{opacity:.5;cursor:default}.S5HVoW_producedRow{flex-wrap:wrap;align-items:center;gap:8px;padding:4px 0;display:flex}.S5HVoW_producedLabel{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_producedChip{border:1px solid var(--dsw-alias-border-l2);background:var(--dsw-alias-bg-layer-2);max-width:200px;color:var(--dsw-alias-label-secondary);font:var(--dsw-font-xxs-12);cursor:pointer;border-radius:999px;align-items:center;gap:4px;padding:2px 8px;display:inline-flex;overflow:hidden}.S5HVoW_producedChip:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_producedChip span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.S5HVoW_producedMore{font:var(--dsw-font-xxs-12);color:var(--dsw-alias-label-tertiary)}.S5HVoW_toggleButton:focus-visible,.S5HVoW_iconButton:focus-visible,.S5HVoW_tab:focus-visible,.S5HVoW_tabClose:focus-visible,.S5HVoW_tabBarPlus:focus-visible,.S5HVoW_paneCard:focus-visible,.S5HVoW_explorerRow:focus-visible,.S5HVoW_explorerRef:focus-visible,.S5HVoW_gitRowMain:focus-visible,.S5HVoW_gitLink:focus-visible,.S5HVoW_gitCommitButton:focus-visible,.S5HVoW_gitLogRow:focus-visible,.S5HVoW_gitLogMore:focus-visible,.S5HVoW_gitDiffFile:focus-visible,.S5HVoW_gitDiffExpand:focus-visible,.S5HVoW_terminalRetry:focus-visible,.S5HVoW_editorDownloadLink:focus-visible{outline:2px solid var(--dsw-alias-interactive-bg-hover-accent);outline-offset:-1px}@media (prefers-reduced-motion:reduce){.S5HVoW_panel,.S5HVoW_panelHidden,.S5HVoW_toggleCluster,.S5HVoW_toggleButton,.S5HVoW_tab,.S5HVoW_tabBarPlus,.S5HVoW_paneCard,.S5HVoW_explorerRow,.S5HVoW_gitRow,.S5HVoW_divider,.S5HVoW_dividerRow:after,.S5HVoW_dividerCol:after{transition:none;animation:none}}@media (width<=767px){.S5HVoW_panel:not(.S5HVoW_panelHidden) .S5HVoW_tabBar{padding-right:40px}.S5HVoW_tab{min-width:48px;max-width:128px}}.S5HVoW_openWithLabel{align-items:center;gap:8px;width:100%;min-width:0;display:flex}.S5HVoW_openWithName{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;overflow:hidden}.S5HVoW_openWithChevron{color:var(--dsw-alias-label-tertiary);flex:none}.S5HVoW_openWithPin{width:20px;height:20px;color:var(--dsw-alias-label-tertiary);cursor:pointer;border-radius:6px;flex:none;justify-content:center;align-items:center;display:inline-flex}.S5HVoW_openWithPin:hover{background:var(--dsw-alias-interactive-bg-hover);color:var(--dsw-alias-label-primary)}.S5HVoW_openWithPinActive{color:var(--dsw-alias-state-business-primary)}@keyframes S5HVoW_dsh-toc-flash{0%,60%{background:var(--dsw-alias-interactive-bg-hover)}to{background:0 0}}.S5HVoW_browserLive{flex-direction:column;gap:6px;padding:8px 10px;display:flex;position:absolute;inset:0;overflow:hidden}.S5HVoW_browserLiveStatus{opacity:.75;align-items:center;gap:8px;font-size:12px;display:flex}.S5HVoW_browserLiveCanvas{object-fit:contain;border:1px solid var(--dsw-alias-border-l,#80808040);cursor:crosshair;background:#fff;border-radius:8px;flex:1;width:100%;min-height:0}.S5HVoW_browserLiveTarget{max-width:260px;font-size:12px}";
|
|
43985
44248
|
const tagId = "dsh-coding-sidebar/sidebar.module.css";
|
|
43986
44249
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=" + JSON.stringify(tagId) + "]") === null) {
|
|
43987
44250
|
const tag = document.createElement("style");
|
|
@@ -43991,207 +44254,212 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
43991
44254
|
document.head.appendChild(tag);
|
|
43992
44255
|
}
|
|
43993
44256
|
var sidebar_module_css_default = {
|
|
43994
|
-
"
|
|
43995
|
-
"
|
|
43996
|
-
"
|
|
43997
|
-
"
|
|
43998
|
-
"
|
|
43999
|
-
"
|
|
44000
|
-
"
|
|
44257
|
+
"gitCommit": "S5HVoW_gitCommit",
|
|
44258
|
+
"gitLogSubject": "S5HVoW_gitLogSubject",
|
|
44259
|
+
"divider": "S5HVoW_divider",
|
|
44260
|
+
"dividerRow": "S5HVoW_dividerRow",
|
|
44261
|
+
"dropUp": "S5HVoW_dropUp",
|
|
44262
|
+
"producedLabel": "S5HVoW_producedLabel",
|
|
44263
|
+
"gitDiffFileChevron": "S5HVoW_gitDiffFileChevron",
|
|
44264
|
+
"dropRight": "S5HVoW_dropRight",
|
|
44001
44265
|
"producedRow": "S5HVoW_producedRow",
|
|
44002
|
-
"
|
|
44003
|
-
"
|
|
44004
|
-
"
|
|
44005
|
-
"
|
|
44006
|
-
"
|
|
44007
|
-
"
|
|
44008
|
-
"
|
|
44009
|
-
"
|
|
44010
|
-
"
|
|
44011
|
-
"
|
|
44012
|
-
"dirtyDot": "S5HVoW_dirtyDot",
|
|
44013
|
-
"gitDiffFileChevronExpanded": "S5HVoW_gitDiffFileChevronExpanded",
|
|
44014
|
-
"gitDiffFileOld": "S5HVoW_gitDiffFileOld",
|
|
44015
|
-
"gitSectionHeader": "S5HVoW_gitSectionHeader",
|
|
44016
|
-
"gitConfirmDesc": "S5HVoW_gitConfirmDesc",
|
|
44017
|
-
"panelResizeActive": "S5HVoW_panelResizeActive",
|
|
44018
|
-
"gitLogLine1": "S5HVoW_gitLogLine1",
|
|
44019
|
-
"tabBar": "S5HVoW_tabBar",
|
|
44020
|
-
"splitCol": "S5HVoW_splitCol",
|
|
44021
|
-
"editorSearchHint": "S5HVoW_editorSearchHint",
|
|
44022
|
-
"tabBoundaryError": "S5HVoW_tabBoundaryError",
|
|
44023
|
-
"dropOverlay": "S5HVoW_dropOverlay",
|
|
44024
|
-
"tabBarDrop": "S5HVoW_tabBarDrop",
|
|
44025
|
-
"explorer": "S5HVoW_explorer",
|
|
44026
|
-
"panelHidden": "S5HVoW_panelHidden",
|
|
44027
|
-
"uploadDropHero": "S5HVoW_uploadDropHero",
|
|
44028
|
-
"browserBlockedTitle": "S5HVoW_browserBlockedTitle",
|
|
44029
|
-
"browserBlockedButton": "S5HVoW_browserBlockedButton",
|
|
44030
|
-
"uploadOverlayProgress": "S5HVoW_uploadOverlayProgress",
|
|
44031
|
-
"terminalRetry": "S5HVoW_terminalRetry",
|
|
44032
|
-
"terminalDepsBanner": "S5HVoW_terminalDepsBanner",
|
|
44266
|
+
"openWithChevron": "S5HVoW_openWithChevron",
|
|
44267
|
+
"gitCommitInput": "S5HVoW_gitCommitInput",
|
|
44268
|
+
"floatWindow": "S5HVoW_floatWindow",
|
|
44269
|
+
"floatDropHintLabel": "S5HVoW_floatDropHintLabel",
|
|
44270
|
+
"splitChild": "S5HVoW_splitChild",
|
|
44271
|
+
"tab": "S5HVoW_tab",
|
|
44272
|
+
"explorerHidden": "S5HVoW_explorerHidden",
|
|
44273
|
+
"floatResize": "S5HVoW_floatResize",
|
|
44274
|
+
"explorerRowDropTarget": "S5HVoW_explorerRowDropTarget",
|
|
44275
|
+
"uploadDropZonePill": "S5HVoW_uploadDropZonePill",
|
|
44033
44276
|
"gitName": "S5HVoW_gitName",
|
|
44034
|
-
"
|
|
44277
|
+
"gitDiffExpand": "S5HVoW_gitDiffExpand",
|
|
44278
|
+
"gitLogRef": "S5HVoW_gitLogRef",
|
|
44279
|
+
"selectionPopup": "S5HVoW_selectionPopup",
|
|
44280
|
+
"gitLogMore": "S5HVoW_gitLogMore",
|
|
44035
44281
|
"uploadDropZone": "S5HVoW_uploadDropZone",
|
|
44036
|
-
"
|
|
44037
|
-
"
|
|
44282
|
+
"explorerRowRevealed": "S5HVoW_explorerRowRevealed",
|
|
44283
|
+
"browserBlocked": "S5HVoW_browserBlocked",
|
|
44284
|
+
"editorMain": "S5HVoW_editorMain",
|
|
44285
|
+
"editorCm": "S5HVoW_editorCm",
|
|
44038
44286
|
"boundaryError": "S5HVoW_boundaryError",
|
|
44039
|
-
"
|
|
44040
|
-
"
|
|
44041
|
-
"
|
|
44042
|
-
"
|
|
44043
|
-
"
|
|
44044
|
-
"
|
|
44287
|
+
"browserBlockedDesc": "S5HVoW_browserBlockedDesc",
|
|
44288
|
+
"gitWorktreeRow": "S5HVoW_gitWorktreeRow",
|
|
44289
|
+
"gitEmpty": "S5HVoW_gitEmpty",
|
|
44290
|
+
"dividerActive": "S5HVoW_dividerActive",
|
|
44291
|
+
"sandboxDot": "S5HVoW_sandboxDot",
|
|
44292
|
+
"paneDrop": "S5HVoW_paneDrop",
|
|
44293
|
+
"uploadOverlayProgressFill": "S5HVoW_uploadOverlayProgressFill",
|
|
44294
|
+
"gitDiffHunkSection": "S5HVoW_gitDiffHunkSection",
|
|
44295
|
+
"tabList": "S5HVoW_tabList",
|
|
44296
|
+
"editorBinaryNotice": "S5HVoW_editorBinaryNotice",
|
|
44297
|
+
"gitBadge": "S5HVoW_gitBadge",
|
|
44045
44298
|
"openWithName": "S5HVoW_openWithName",
|
|
44046
|
-
"
|
|
44047
|
-
"
|
|
44048
|
-
"
|
|
44049
|
-
"
|
|
44050
|
-
"browserStart": "S5HVoW_browserStart",
|
|
44051
|
-
"toggleCluster": "S5HVoW_toggleCluster",
|
|
44052
|
-
"tabClose": "S5HVoW_tabClose",
|
|
44053
|
-
"gitWorktreeLabel": "S5HVoW_gitWorktreeLabel",
|
|
44054
|
-
"gitBranchSelect": "S5HVoW_gitBranchSelect",
|
|
44055
|
-
"pane": "S5HVoW_pane",
|
|
44056
|
-
"openWithPin": "S5HVoW_openWithPin",
|
|
44299
|
+
"explorerBody": "S5HVoW_explorerBody",
|
|
44300
|
+
"tabBadge": "S5HVoW_tabBadge",
|
|
44301
|
+
"editorTreeResize": "S5HVoW_editorTreeResize",
|
|
44302
|
+
"editorError": "S5HVoW_editorError",
|
|
44057
44303
|
"browser": "S5HVoW_browser",
|
|
44058
|
-
"
|
|
44059
|
-
"
|
|
44060
|
-
"
|
|
44061
|
-
"
|
|
44062
|
-
"
|
|
44063
|
-
"uploadOverlayCancel": "S5HVoW_uploadOverlayCancel",
|
|
44064
|
-
"gitDiffLine": "S5HVoW_gitDiffLine",
|
|
44065
|
-
"terminalRepairCommand": "S5HVoW_terminalRepairCommand",
|
|
44066
|
-
"openWithPinActive": "S5HVoW_openWithPinActive",
|
|
44067
|
-
"browserBlocked": "S5HVoW_browserBlocked",
|
|
44304
|
+
"tabBoundaryError": "S5HVoW_tabBoundaryError",
|
|
44305
|
+
"dsh-row-in": "S5HVoW_dsh-row-in",
|
|
44306
|
+
"editorTreeDock": "S5HVoW_editorTreeDock",
|
|
44307
|
+
"editorTreeSearch": "S5HVoW_editorTreeSearch",
|
|
44308
|
+
"toggleButton": "S5HVoW_toggleButton",
|
|
44068
44309
|
"dsh-toc-flash": "S5HVoW_dsh-toc-flash",
|
|
44069
|
-
"
|
|
44070
|
-
"
|
|
44310
|
+
"tabClose": "S5HVoW_tabClose",
|
|
44311
|
+
"uploadOverlayProgress": "S5HVoW_uploadOverlayProgress",
|
|
44312
|
+
"panel": "S5HVoW_panel",
|
|
44313
|
+
"editorSearchInput": "S5HVoW_editorSearchInput",
|
|
44314
|
+
"tabBar": "S5HVoW_tabBar",
|
|
44071
44315
|
"editorSearchResult": "S5HVoW_editorSearchResult",
|
|
44072
|
-
"
|
|
44073
|
-
"
|
|
44074
|
-
"
|
|
44075
|
-
"
|
|
44076
|
-
"
|
|
44077
|
-
"
|
|
44316
|
+
"producedChip": "S5HVoW_producedChip",
|
|
44317
|
+
"uploadDropChatHint": "S5HVoW_uploadDropChatHint",
|
|
44318
|
+
"uploadDropZoneText": "S5HVoW_uploadDropZoneText",
|
|
44319
|
+
"panelHidden": "S5HVoW_panelHidden",
|
|
44320
|
+
"uploadDropChatCard": "S5HVoW_uploadDropChatCard",
|
|
44321
|
+
"editorDownloadLink": "S5HVoW_editorDownloadLink",
|
|
44322
|
+
"browserBlockedActions": "S5HVoW_browserBlockedActions",
|
|
44323
|
+
"gitDiffTabTitle": "S5HVoW_gitDiffTabTitle",
|
|
44324
|
+
"browserLive": "S5HVoW_browserLive",
|
|
44325
|
+
"gitDiffNum": "S5HVoW_gitDiffNum",
|
|
44326
|
+
"dropCenter": "S5HVoW_dropCenter",
|
|
44078
44327
|
"dropDown": "S5HVoW_dropDown",
|
|
44079
|
-
"explorerRoot": "S5HVoW_explorerRoot",
|
|
44080
|
-
"browserBar": "S5HVoW_browserBar",
|
|
44081
|
-
"gitDiffCtx": "S5HVoW_gitDiffCtx",
|
|
44082
|
-
"gitCommit": "S5HVoW_gitCommit",
|
|
44083
|
-
"terminalDepsTitle": "S5HVoW_terminalDepsTitle",
|
|
44084
44328
|
"terminalDepsCommandRow": "S5HVoW_terminalDepsCommandRow",
|
|
44085
|
-
"
|
|
44086
|
-
"
|
|
44087
|
-
"
|
|
44088
|
-
"
|
|
44089
|
-
"
|
|
44090
|
-
"
|
|
44091
|
-
"
|
|
44092
|
-
"
|
|
44093
|
-
"
|
|
44094
|
-
"paneDrop": "S5HVoW_paneDrop",
|
|
44095
|
-
"dropCenter": "S5HVoW_dropCenter",
|
|
44096
|
-
"tabBadge": "S5HVoW_tabBadge",
|
|
44329
|
+
"paneTabHidden": "S5HVoW_paneTabHidden",
|
|
44330
|
+
"gitDiffHunkHeader": "S5HVoW_gitDiffHunkHeader",
|
|
44331
|
+
"editorTreePanelFull": "S5HVoW_editorTreePanelFull",
|
|
44332
|
+
"gitCommitButton": "S5HVoW_gitCommitButton",
|
|
44333
|
+
"gitLogMeta": "S5HVoW_gitLogMeta",
|
|
44334
|
+
"browserLiveStatus": "S5HVoW_browserLiveStatus",
|
|
44335
|
+
"editorTitle": "S5HVoW_editorTitle",
|
|
44336
|
+
"floatTitle": "S5HVoW_floatTitle",
|
|
44337
|
+
"gitLink": "S5HVoW_gitLink",
|
|
44097
44338
|
"gitDiffTabHeader": "S5HVoW_gitDiffTabHeader",
|
|
44098
|
-
"
|
|
44099
|
-
"
|
|
44100
|
-
"
|
|
44339
|
+
"producedMore": "S5HVoW_producedMore",
|
|
44340
|
+
"sandboxStatusOff": "S5HVoW_sandboxStatusOff",
|
|
44341
|
+
"explorer": "S5HVoW_explorer",
|
|
44342
|
+
"gitDiffCtx": "S5HVoW_gitDiffCtx",
|
|
44343
|
+
"explorerRoot": "S5HVoW_explorerRoot",
|
|
44344
|
+
"orphanedType": "S5HVoW_orphanedType",
|
|
44345
|
+
"iconButton": "S5HVoW_iconButton",
|
|
44346
|
+
"explorerRow": "S5HVoW_explorerRow",
|
|
44347
|
+
"explorerSymlink": "S5HVoW_explorerSymlink",
|
|
44348
|
+
"gitDiffMeta": "S5HVoW_gitDiffMeta",
|
|
44349
|
+
"gitDiffFileChevronExpanded": "S5HVoW_gitDiffFileChevronExpanded",
|
|
44350
|
+
"terminalDepsBanner": "S5HVoW_terminalDepsBanner",
|
|
44351
|
+
"openWithLabel": "S5HVoW_openWithLabel",
|
|
44352
|
+
"sandboxStatus": "S5HVoW_sandboxStatus",
|
|
44353
|
+
"explorerHeader": "S5HVoW_explorerHeader",
|
|
44354
|
+
"splitRow": "S5HVoW_splitRow",
|
|
44355
|
+
"terminalRetry": "S5HVoW_terminalRetry",
|
|
44356
|
+
"gitSection": "S5HVoW_gitSection",
|
|
44357
|
+
"browserBlockedButton": "S5HVoW_browserBlockedButton",
|
|
44101
44358
|
"gitLogHash": "S5HVoW_gitLogHash",
|
|
44102
|
-
"
|
|
44103
|
-
"
|
|
44104
|
-
"
|
|
44105
|
-
"
|
|
44106
|
-
"
|
|
44107
|
-
"
|
|
44108
|
-
"
|
|
44359
|
+
"terminalRepairCommand": "S5HVoW_terminalRepairCommand",
|
|
44360
|
+
"uploadOverlayTitle": "S5HVoW_uploadOverlayTitle",
|
|
44361
|
+
"sandboxAction": "S5HVoW_sandboxAction",
|
|
44362
|
+
"gitLogLine2": "S5HVoW_gitLogLine2",
|
|
44363
|
+
"editorHeader": "S5HVoW_editorHeader",
|
|
44364
|
+
"gitWorktreeLabel": "S5HVoW_gitWorktreeLabel",
|
|
44365
|
+
"gitDiffFile": "S5HVoW_gitDiffFile",
|
|
44366
|
+
"gitDiffHunk": "S5HVoW_gitDiffHunk",
|
|
44367
|
+
"terminalDepsTitle": "S5HVoW_terminalDepsTitle",
|
|
44368
|
+
"gitDiffDel": "S5HVoW_gitDiffDel",
|
|
44369
|
+
"openWithPinActive": "S5HVoW_openWithPinActive",
|
|
44370
|
+
"dividerCol": "S5HVoW_dividerCol",
|
|
44371
|
+
"terminal": "S5HVoW_terminal",
|
|
44372
|
+
"panelResize": "S5HVoW_panelResize",
|
|
44109
44373
|
"gitDiffCode": "S5HVoW_gitDiffCode",
|
|
44110
|
-
"
|
|
44111
|
-
"
|
|
44374
|
+
"explorerDir": "S5HVoW_explorerDir",
|
|
44375
|
+
"editorSearchHint": "S5HVoW_editorSearchHint",
|
|
44376
|
+
"terminalWaitNeedle": "S5HVoW_terminalWaitNeedle",
|
|
44377
|
+
"terminalDepsNote": "S5HVoW_terminalDepsNote",
|
|
44378
|
+
"git": "S5HVoW_git",
|
|
44112
44379
|
"floatClose": "S5HVoW_floatClose",
|
|
44113
|
-
"
|
|
44114
|
-
"gitLogRow": "S5HVoW_gitLogRow",
|
|
44380
|
+
"tabBarPlus": "S5HVoW_tabBarPlus",
|
|
44115
44381
|
"editorBinary": "S5HVoW_editorBinary",
|
|
44116
|
-
"gitHeader": "S5HVoW_gitHeader",
|
|
44117
44382
|
"editorTreePanel": "S5HVoW_editorTreePanel",
|
|
44118
|
-
"
|
|
44119
|
-
"
|
|
44383
|
+
"browserStart": "S5HVoW_browserStart",
|
|
44384
|
+
"explorerName": "S5HVoW_explorerName",
|
|
44385
|
+
"terminalBanner": "S5HVoW_terminalBanner",
|
|
44386
|
+
"gitConfirmDesc": "S5HVoW_gitConfirmDesc",
|
|
44387
|
+
"splitCol": "S5HVoW_splitCol",
|
|
44388
|
+
"editorBanner": "S5HVoW_editorBanner",
|
|
44389
|
+
"editorPathInput": "S5HVoW_editorPathInput",
|
|
44390
|
+
"editorStatusError": "S5HVoW_editorStatusError",
|
|
44391
|
+
"sandboxStatusOn": "S5HVoW_sandboxStatusOn",
|
|
44392
|
+
"terminalWrap": "S5HVoW_terminalWrap",
|
|
44120
44393
|
"terminalDepsHint": "S5HVoW_terminalDepsHint",
|
|
44121
|
-
"
|
|
44122
|
-
"
|
|
44123
|
-
"
|
|
44124
|
-
"
|
|
44125
|
-
"
|
|
44394
|
+
"paneEmptyCards": "S5HVoW_paneEmptyCards",
|
|
44395
|
+
"editorPlaceholder": "S5HVoW_editorPlaceholder",
|
|
44396
|
+
"uploadOverlay": "S5HVoW_uploadOverlay",
|
|
44397
|
+
"gitSectionHeader": "S5HVoW_gitSectionHeader",
|
|
44398
|
+
"gitRowMain": "S5HVoW_gitRowMain",
|
|
44399
|
+
"gitDiffFilePath": "S5HVoW_gitDiffFilePath",
|
|
44400
|
+
"browserLiveCanvas": "S5HVoW_browserLiveCanvas",
|
|
44401
|
+
"uploadDropHero": "S5HVoW_uploadDropHero",
|
|
44402
|
+
"floatWindowDragging": "S5HVoW_floatWindowDragging",
|
|
44403
|
+
"paneCard": "S5HVoW_paneCard",
|
|
44404
|
+
"gitHeader": "S5HVoW_gitHeader",
|
|
44405
|
+
"openWithPin": "S5HVoW_openWithPin",
|
|
44406
|
+
"editorStatus": "S5HVoW_editorStatus",
|
|
44407
|
+
"explorerError": "S5HVoW_explorerError",
|
|
44408
|
+
"terminalBannerUrl": "S5HVoW_terminalBannerUrl",
|
|
44126
44409
|
"gitDiffFileTag": "S5HVoW_gitDiffFileTag",
|
|
44127
|
-
"
|
|
44410
|
+
"gitBranchSelect": "S5HVoW_gitBranchSelect",
|
|
44411
|
+
"tabActive": "S5HVoW_tabActive",
|
|
44412
|
+
"gitLogRow": "S5HVoW_gitLogRow",
|
|
44413
|
+
"uploadOverlayStatus": "S5HVoW_uploadOverlayStatus",
|
|
44414
|
+
"tabTitle": "S5HVoW_tabTitle",
|
|
44128
44415
|
"pinnedTab": "S5HVoW_pinnedTab",
|
|
44129
|
-
"
|
|
44130
|
-
"
|
|
44131
|
-
"
|
|
44132
|
-
"
|
|
44133
|
-
"
|
|
44134
|
-
"
|
|
44135
|
-
"
|
|
44416
|
+
"browserBlockedTitle": "S5HVoW_browserBlockedTitle",
|
|
44417
|
+
"gitError": "S5HVoW_gitError",
|
|
44418
|
+
"tabBarDrop": "S5HVoW_tabBarDrop",
|
|
44419
|
+
"gitPlaceholder": "S5HVoW_gitPlaceholder",
|
|
44420
|
+
"gitFoldRow": "S5HVoW_gitFoldRow",
|
|
44421
|
+
"paneTab": "S5HVoW_paneTab",
|
|
44422
|
+
"gitDiffMetaText": "S5HVoW_gitDiffMetaText",
|
|
44136
44423
|
"floatHeader": "S5HVoW_floatHeader",
|
|
44137
|
-
"
|
|
44138
|
-
"editorDownloadLink": "S5HVoW_editorDownloadLink",
|
|
44139
|
-
"terminalDepsNote": "S5HVoW_terminalDepsNote",
|
|
44140
|
-
"git": "S5HVoW_git",
|
|
44141
|
-
"terminal": "S5HVoW_terminal",
|
|
44142
|
-
"panel": "S5HVoW_panel",
|
|
44143
|
-
"sandboxStatus": "S5HVoW_sandboxStatus",
|
|
44144
|
-
"iconButton": "S5HVoW_iconButton",
|
|
44145
|
-
"gitDiffNum": "S5HVoW_gitDiffNum",
|
|
44146
|
-
"gitCommitButton": "S5HVoW_gitCommitButton",
|
|
44147
|
-
"gitLogMeta": "S5HVoW_gitLogMeta",
|
|
44148
|
-
"dropUp": "S5HVoW_dropUp",
|
|
44149
|
-
"uploadOverlayStatus": "S5HVoW_uploadOverlayStatus",
|
|
44150
|
-
"gitLogRef": "S5HVoW_gitLogRef",
|
|
44151
|
-
"explorerName": "S5HVoW_explorerName",
|
|
44152
|
-
"gitDiffMeta": "S5HVoW_gitDiffMeta",
|
|
44153
|
-
"browserLiveTarget": "S5HVoW_browserLiveTarget",
|
|
44424
|
+
"browserInput": "S5HVoW_browserInput",
|
|
44154
44425
|
"floatDropHint": "S5HVoW_floatDropHint",
|
|
44155
|
-
"
|
|
44156
|
-
"
|
|
44157
|
-
"
|
|
44158
|
-
"
|
|
44159
|
-
"
|
|
44160
|
-
"sandboxStatusOff": "S5HVoW_sandboxStatusOff",
|
|
44161
|
-
"browserBlockedDesc": "S5HVoW_browserBlockedDesc",
|
|
44162
|
-
"terminalBanner": "S5HVoW_terminalBanner",
|
|
44163
|
-
"explorerHeader": "S5HVoW_explorerHeader",
|
|
44164
|
-
"splitRow": "S5HVoW_splitRow",
|
|
44165
|
-
"explorerBody": "S5HVoW_explorerBody",
|
|
44166
|
-
"explorerError": "S5HVoW_explorerError",
|
|
44426
|
+
"explorerBroken": "S5HVoW_explorerBroken",
|
|
44427
|
+
"floatContent": "S5HVoW_floatContent",
|
|
44428
|
+
"browserLiveTarget": "S5HVoW_browserLiveTarget",
|
|
44429
|
+
"pane": "S5HVoW_pane",
|
|
44430
|
+
"panelResizeActive": "S5HVoW_panelResizeActive",
|
|
44167
44431
|
"sandboxStatusText": "S5HVoW_sandboxStatusText",
|
|
44168
|
-
"
|
|
44169
|
-
"
|
|
44170
|
-
"
|
|
44171
|
-
"
|
|
44172
|
-
"
|
|
44173
|
-
"
|
|
44174
|
-
"
|
|
44432
|
+
"toggleCluster": "S5HVoW_toggleCluster",
|
|
44433
|
+
"gitFoldRowFailed": "S5HVoW_gitFoldRowFailed",
|
|
44434
|
+
"terminalWaitBanner": "S5HVoW_terminalWaitBanner",
|
|
44435
|
+
"dropLeft": "S5HVoW_dropLeft",
|
|
44436
|
+
"explorerCopied": "S5HVoW_explorerCopied",
|
|
44437
|
+
"explorerEmpty": "S5HVoW_explorerEmpty",
|
|
44438
|
+
"uploadOverlayCancel": "S5HVoW_uploadOverlayCancel",
|
|
44439
|
+
"explorerRenameInput": "S5HVoW_explorerRenameInput",
|
|
44440
|
+
"editor": "S5HVoW_editor",
|
|
44441
|
+
"workbench": "S5HVoW_workbench",
|
|
44442
|
+
"split": "S5HVoW_split",
|
|
44443
|
+
"panelBody": "S5HVoW_panelBody",
|
|
44444
|
+
"paneContent": "S5HVoW_paneContent",
|
|
44445
|
+
"uploadOverlayCard": "S5HVoW_uploadOverlayCard",
|
|
44175
44446
|
"browserMessage": "S5HVoW_browserMessage",
|
|
44176
|
-
"
|
|
44177
|
-
"
|
|
44447
|
+
"terminalDepsActions": "S5HVoW_terminalDepsActions",
|
|
44448
|
+
"dropOverlay": "S5HVoW_dropOverlay",
|
|
44178
44449
|
"explorerRef": "S5HVoW_explorerRef",
|
|
44179
|
-
"
|
|
44180
|
-
"
|
|
44181
|
-
"
|
|
44182
|
-
"
|
|
44183
|
-
"
|
|
44184
|
-
"
|
|
44185
|
-
"
|
|
44186
|
-
"
|
|
44187
|
-
"
|
|
44188
|
-
"
|
|
44189
|
-
"
|
|
44190
|
-
"
|
|
44191
|
-
"
|
|
44192
|
-
"gitRowMain": "S5HVoW_gitRowMain",
|
|
44193
|
-
"floatWindow": "S5HVoW_floatWindow",
|
|
44194
|
-
"dividerRow": "S5HVoW_dividerRow"
|
|
44450
|
+
"editorTreeToggleActive": "S5HVoW_editorTreeToggleActive",
|
|
44451
|
+
"gitDiff": "S5HVoW_gitDiff",
|
|
44452
|
+
"gitDiffTab": "S5HVoW_gitDiffTab",
|
|
44453
|
+
"gitDiffFileOld": "S5HVoW_gitDiffFileOld",
|
|
44454
|
+
"editorBody": "S5HVoW_editorBody",
|
|
44455
|
+
"gitRowSelected": "S5HVoW_gitRowSelected",
|
|
44456
|
+
"gitDiffLine": "S5HVoW_gitDiffLine",
|
|
44457
|
+
"gitRow": "S5HVoW_gitRow",
|
|
44458
|
+
"gitLogLine1": "S5HVoW_gitLogLine1",
|
|
44459
|
+
"browserBar": "S5HVoW_browserBar",
|
|
44460
|
+
"browserFrame": "S5HVoW_browserFrame",
|
|
44461
|
+
"dirtyDot": "S5HVoW_dirtyDot",
|
|
44462
|
+
"gitDiffAdd": "S5HVoW_gitDiffAdd"
|
|
44195
44463
|
};
|
|
44196
44464
|
//#endregion
|
|
44197
44465
|
//#region src/client/TextEditor.tsx
|
|
@@ -44222,38 +44490,26 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
44222
44490
|
const themeCompRef = (0, react.useRef)(null);
|
|
44223
44491
|
/** The app's resolved color scheme; the editor re-themes in place on flips. */
|
|
44224
44492
|
const [dark, setDark] = (0, react.useState)(() => isDarkScheme());
|
|
44225
|
-
/**
|
|
44226
|
-
|
|
44227
|
-
|
|
44228
|
-
|
|
44229
|
-
|
|
44230
|
-
|
|
44231
|
-
|
|
44232
|
-
|
|
44233
|
-
|
|
44234
|
-
|
|
44235
|
-
|
|
44236
|
-
|
|
44237
|
-
|
|
44238
|
-
top
|
|
44239
|
-
};
|
|
44240
|
-
popupRef.current = next;
|
|
44241
|
-
setPopup(next);
|
|
44242
|
-
};
|
|
44243
|
-
/** The popup button's click: insert the stored payload into the draft. */
|
|
44244
|
-
const commitPopup = () => {
|
|
44245
|
-
const current = popupRef.current;
|
|
44246
|
-
if (current === null) return;
|
|
44247
|
-
appendToDraft(ctx, scope.sessionId, current.insert);
|
|
44248
|
-
hidePopup();
|
|
44249
|
-
};
|
|
44493
|
+
/**
|
|
44494
|
+
* The floating "add to conversation" popup (viewport-anchored; null =
|
|
44495
|
+
* hidden). The hook owns show/hide/commit plus the global dismissal
|
|
44496
|
+
* listeners (outside mousedown, Escape, hidden tab/window, and the editor
|
|
44497
|
+
* surface leaving the viewport — the tab-switch/panel-collapse paths have
|
|
44498
|
+
* no DOM events of their own) — see selection-popup.ts.
|
|
44499
|
+
*/
|
|
44500
|
+
const selectionPopup = useSelectionPopup({
|
|
44501
|
+
onCommit: (insert) => {
|
|
44502
|
+
appendToDraft(ctx, scope.sessionId, insert);
|
|
44503
|
+
},
|
|
44504
|
+
getSurface: () => hostRef.current
|
|
44505
|
+
});
|
|
44250
44506
|
(0, react.useEffect)(() => subscribeColorScheme(() => {
|
|
44251
44507
|
setDark(isDarkScheme());
|
|
44252
44508
|
}), []);
|
|
44253
44509
|
(0, react.useEffect)(() => {
|
|
44254
44510
|
setDirty(false);
|
|
44255
44511
|
setSaveState("idle");
|
|
44256
|
-
|
|
44512
|
+
selectionPopup.hide();
|
|
44257
44513
|
}, [content]);
|
|
44258
44514
|
(0, react.useEffect)(() => {
|
|
44259
44515
|
if (content === void 0) return;
|
|
@@ -44291,31 +44547,31 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
44291
44547
|
]),
|
|
44292
44548
|
EditorView.updateListener.of((update) => {
|
|
44293
44549
|
if (update.geometryChanged || update.viewportChanged) {
|
|
44294
|
-
|
|
44550
|
+
selectionPopup.hide();
|
|
44295
44551
|
return;
|
|
44296
44552
|
}
|
|
44297
44553
|
if (!update.view.hasFocus) {
|
|
44298
|
-
|
|
44554
|
+
selectionPopup.hide();
|
|
44299
44555
|
return;
|
|
44300
44556
|
}
|
|
44301
44557
|
if (!(update.selectionSet || update.docChanged || update.focusChanged)) return;
|
|
44302
44558
|
const sel = update.state.selection.main;
|
|
44303
44559
|
if (sel.empty) {
|
|
44304
|
-
|
|
44560
|
+
selectionPopup.hide();
|
|
44305
44561
|
return;
|
|
44306
44562
|
}
|
|
44307
44563
|
const text = update.state.sliceDoc(sel.from, sel.to);
|
|
44308
44564
|
if (text.trim() === "") {
|
|
44309
|
-
|
|
44565
|
+
selectionPopup.hide();
|
|
44310
44566
|
return;
|
|
44311
44567
|
}
|
|
44312
44568
|
const rect = update.view.coordsAtPos(sel.head);
|
|
44313
44569
|
if (rect === null) {
|
|
44314
|
-
|
|
44570
|
+
selectionPopup.hide();
|
|
44315
44571
|
return;
|
|
44316
44572
|
}
|
|
44317
44573
|
const doc = update.state.doc;
|
|
44318
|
-
|
|
44574
|
+
selectionPopup.show(buildSelectionInsert(path, scope.cwd, {
|
|
44319
44575
|
start: doc.lineAt(sel.from).number,
|
|
44320
44576
|
end: doc.lineAt(sel.to).number
|
|
44321
44577
|
}, text), rect.left - window.scrollX + (rect.right - rect.left) / 2, rect.top - window.scrollY);
|
|
@@ -44403,17 +44659,18 @@ globalThis.__dshChunks__["editor"] = (require) => {
|
|
|
44403
44659
|
className: sidebar_module_css_default.editorCm,
|
|
44404
44660
|
ref: hostRef
|
|
44405
44661
|
})] }),
|
|
44406
|
-
popup !== null && (0, react_dom.createPortal)(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
44662
|
+
selectionPopup.popup !== null && (0, react_dom.createPortal)(/* @__PURE__ */ (0, react_jsx_runtime.jsx)("button", {
|
|
44407
44663
|
type: "button",
|
|
44664
|
+
ref: selectionPopup.buttonRef,
|
|
44408
44665
|
className: sidebar_module_css_default.selectionPopup,
|
|
44409
44666
|
style: {
|
|
44410
|
-
left: popup.left,
|
|
44411
|
-
top: popup.top
|
|
44667
|
+
left: selectionPopup.popup.left,
|
|
44668
|
+
top: selectionPopup.popup.top
|
|
44412
44669
|
},
|
|
44413
44670
|
onMouseDown: (event) => {
|
|
44414
44671
|
event.preventDefault();
|
|
44415
44672
|
},
|
|
44416
|
-
onClick:
|
|
44673
|
+
onClick: selectionPopup.commit,
|
|
44417
44674
|
children: t("addToConversation")
|
|
44418
44675
|
}), document.body)
|
|
44419
44676
|
] });
|