@cerbur/clutch-dsh-worktree 0.1.14 → 0.1.15
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 +3 -3
- package/README.zh.md +3 -3
- package/lib/client/context/WorktreeContext.d.ts.map +1 -1
- package/lib/client/context/WorktreeContext.js +3 -2
- package/lib/client/context/WorktreeContext.js.map +1 -1
- package/lib/client/context/worktree-context-store.d.ts +3 -2
- package/lib/client/context/worktree-context-store.d.ts.map +1 -1
- package/lib/client/context/worktree-context-store.js +2 -1
- package/lib/client/context/worktree-context-store.js.map +1 -1
- package/lib/client/dashboard/OpenInAppButton.d.ts.map +1 -1
- package/lib/client/dashboard/OpenInAppButton.js +2 -1
- package/lib/client/dashboard/OpenInAppButton.js.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.d.ts.map +1 -1
- package/lib/client/dashboard/WorktreeDashboard.js +4 -2
- package/lib/client/dashboard/WorktreeDashboard.js.map +1 -1
- package/lib/client/dashboard/git/GitChangedFiles.js +1 -1
- package/lib/client/dashboard/git/GitChangedFiles.js.map +1 -1
- package/lib/client/dashboard/git/GitDiffView.js +1 -1
- package/lib/client/dashboard/git/GitDiffView.js.map +1 -1
- package/lib/client/dsh-icon-compat.d.ts +11 -0
- package/lib/client/dsh-icon-compat.d.ts.map +1 -0
- package/lib/client/dsh-icon-compat.js +12 -0
- package/lib/client/dsh-icon-compat.js.map +1 -0
- package/lib/client/dsh-icons.d.ts +20 -0
- package/lib/client/dsh-icons.d.ts.map +1 -0
- package/lib/client/dsh-icons.js +23 -0
- package/lib/client/dsh-icons.js.map +1 -0
- package/lib/client/entry.d.ts.map +1 -1
- package/lib/client/entry.js +6 -15
- package/lib/client/entry.js.map +1 -1
- package/lib/client/session/session-navigation.d.ts +8 -0
- package/lib/client/session/session-navigation.d.ts.map +1 -0
- package/lib/client/session/session-navigation.js +15 -0
- package/lib/client/session/session-navigation.js.map +1 -0
- package/lib/client/session/session-rename.d.ts +7 -0
- package/lib/client/session/session-rename.d.ts.map +1 -0
- package/lib/client/session/session-rename.js +18 -0
- package/lib/client/session/session-rename.js.map +1 -0
- package/lib/client/session/session-selection.d.ts +12 -0
- package/lib/client/session/session-selection.d.ts.map +1 -0
- package/lib/client/session/session-selection.js +8 -0
- package/lib/client/session/session-selection.js.map +1 -0
- package/lib/client/session/session-view.d.ts +3 -0
- package/lib/client/session/session-view.d.ts.map +1 -1
- package/lib/client/session/session-view.js +2 -1
- package/lib/client/session/session-view.js.map +1 -1
- package/lib/client/surface/components/ActiveWorktree.js +1 -1
- package/lib/client/surface/components/ActiveWorktree.js.map +1 -1
- package/lib/client/surface/components/ArchivedWorktree.js +1 -1
- package/lib/client/surface/components/ArchivedWorktree.js.map +1 -1
- package/lib/client/surface/components/ArchivedWorktrees.js +1 -1
- package/lib/client/surface/components/ArchivedWorktrees.js.map +1 -1
- package/lib/client/surface/components/SurfaceHeader.js +2 -1
- package/lib/client/surface/components/SurfaceHeader.js.map +1 -1
- package/lib/client/surface/components/WorkspaceTree.js +1 -1
- package/lib/client/surface/components/WorkspaceTree.js.map +1 -1
- package/lib/client/surface/components/rows.d.ts.map +1 -1
- package/lib/client/surface/components/rows.js +2 -1
- package/lib/client/surface/components/rows.js.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.d.ts.map +1 -1
- package/lib/client/surface/state/useSurfaceSources.js +2 -1
- package/lib/client/surface/state/useSurfaceSources.js.map +1 -1
- package/lib/client/view/WorktreeModeAction.js +1 -1
- package/lib/client/view/WorktreeModeAction.js.map +1 -1
- package/lib/client/view/view-mode.d.ts +4 -1
- package/lib/client/view/view-mode.d.ts.map +1 -1
- package/lib/client/view/view-mode.js +2 -1
- package/lib/client/view/view-mode.js.map +1 -1
- package/lib/client.js +130 -70
- package/lib/client.js.map +1 -1
- package/lib/host/worktree-instructions.d.ts.map +1 -1
- package/lib/host/worktree-instructions.js +10 -2
- package/lib/host/worktree-instructions.js.map +1 -1
- package/lib/typert.host.js +242 -176
- package/lib/typert.remote-client.js +242 -176
- package/package.json +45 -44
package/lib/client.js
CHANGED
|
@@ -614,7 +614,7 @@ window.__ModuleLoader__.load({
|
|
|
614
614
|
}
|
|
615
615
|
var produce = new Immer2().produce;
|
|
616
616
|
//#endregion
|
|
617
|
-
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.1.
|
|
617
|
+
//#region ../../node_modules/.pnpm/@deepseek-ai+dsh-client-store@0.1.7-rc.2_@deepseek-ai+cordis@4.0.4/node_modules/@deepseek-ai/dsh-client-store/lib/index.js
|
|
618
618
|
/**
|
|
619
619
|
* React-free snapshot store engine (zustand vanilla + immer + subscribeWithSelector +
|
|
620
620
|
* rafFlush middleware + opt-in persist + dev freeze) plus the declarative
|
|
@@ -1595,7 +1595,39 @@ window.__ModuleLoader__.load({
|
|
|
1595
1595
|
};
|
|
1596
1596
|
}
|
|
1597
1597
|
//#endregion
|
|
1598
|
-
//#region
|
|
1598
|
+
//#region lib/client/dsh-icon-compat.js
|
|
1599
|
+
/** Resolve a legacy size-named export or the equivalent DSH 1.7 weighted export. */
|
|
1600
|
+
function createDshIconAlias(exports, legacyName, currentName) {
|
|
1601
|
+
return function DshIconAlias(props) {
|
|
1602
|
+
const candidate = exports[legacyName] ?? exports[currentName];
|
|
1603
|
+
if (typeof candidate !== "function") throw new Error(`Missing DSH icon export: ${legacyName} or ${currentName}`);
|
|
1604
|
+
return (0, react.createElement)(candidate, props);
|
|
1605
|
+
};
|
|
1606
|
+
}
|
|
1607
|
+
//#endregion
|
|
1608
|
+
//#region lib/client/dsh-icons.js
|
|
1609
|
+
const exports$1 = _deepseek_ai_dsh_client_ui_primitives;
|
|
1610
|
+
const IconArchiveOutline20 = createDshIconAlias(exports$1, "IconArchiveOutline20", "IconArchiveOutlineRegular");
|
|
1611
|
+
const IconBranchOutline16 = createDshIconAlias(exports$1, "IconBranchOutline16", "IconBranchOutlineRegular");
|
|
1612
|
+
const IconChevronDownOutline14 = createDshIconAlias(exports$1, "IconChevronDownOutline14", "IconChevronDownOutlineRegular");
|
|
1613
|
+
const IconChevronRightOutline14 = createDshIconAlias(exports$1, "IconChevronRightOutline14", "IconChevronRightOutlineRegular");
|
|
1614
|
+
const IconCheckOutline16 = createDshIconAlias(exports$1, "IconCheckOutline16", "IconCheckOutlineRegular");
|
|
1615
|
+
const IconCloseFill14 = createDshIconAlias(exports$1, "IconCloseFill14", "IconCloseFillRegular");
|
|
1616
|
+
const IconCloseOutline16 = createDshIconAlias(exports$1, "IconCloseOutline16", "IconCloseOutlineRegular");
|
|
1617
|
+
const IconCopyOutline16 = createDshIconAlias(exports$1, "IconCopyOutline16", "IconCopyOutlineRegular");
|
|
1618
|
+
const IconEditOutline16 = createDshIconAlias(exports$1, "IconEditOutline16", "IconEditOutlineRegular");
|
|
1619
|
+
const IconEllipsisOutline16 = createDshIconAlias(exports$1, "IconEllipsisOutline16", "IconEllipsisOutlineRegular");
|
|
1620
|
+
const IconFolderClose16 = createDshIconAlias(exports$1, "IconFolderClose16", "IconFolderCloseRegular");
|
|
1621
|
+
const IconFolderOpen16 = createDshIconAlias(exports$1, "IconFolderOpen16", "IconFolderOpenRegular");
|
|
1622
|
+
const IconPanelLeftOutline16 = createDshIconAlias(exports$1, "IconPanelLeftOutline16", "IconPanelLeftOutlineRegular");
|
|
1623
|
+
const IconPlusOutline16 = createDshIconAlias(exports$1, "IconPlusOutline16", "IconPlusOutlineRegular");
|
|
1624
|
+
const IconProjectAddOutline16 = createDshIconAlias(exports$1, "IconProjectAddOutline16", "IconProjectAddOutlineRegular");
|
|
1625
|
+
const IconRefreshOutline16 = createDshIconAlias(exports$1, "IconRefreshOutline16", "IconRefreshOutlineRegular");
|
|
1626
|
+
const IconRightUpOutline16 = createDshIconAlias(exports$1, "IconRightUpOutline16", "IconRightUpOutlineRegular");
|
|
1627
|
+
const IconSearchOutline16 = createDshIconAlias(exports$1, "IconSearchOutline16", "IconSearchOutlineRegular");
|
|
1628
|
+
const IconTrashOutline16 = createDshIconAlias(exports$1, "IconTrashOutline16", "IconTrashOutlineRegular");
|
|
1629
|
+
//#endregion
|
|
1630
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/context/worktree-context.css.mjs
|
|
1599
1631
|
const css$5 = ".-cerbur-clutch-dsh-worktree-headerContext {\n display: inline-flex;\n min-width: 0;\n height: 22px;\n align-items: center;\n gap: 4px;\n max-width: 180px;\n overflow: hidden;\n border-radius: 6px;\n padding: 0 2px 0 0;\n background: var(--dsw-alias-fill-tsp-secondary);\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-contextIcon {\n flex: none;\n opacity: 0.7;\n}\n\n.-cerbur-clutch-dsh-worktree-contextLabel {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-contextHoverTitle {\n max-width: 360px;\n color: var(--dsw-static-neutral-bluish-00);\n font-size: 14px;\n line-height: 20px;\n overflow-wrap: anywhere;\n white-space: normal;\n}\n\n.-cerbur-clutch-dsh-worktree-heroContextHost {\n position: absolute;\n z-index: 0;\n display: block;\n width: max-content;\n max-width: 260px;\n min-height: 22px;\n}\n\n.-cerbur-clutch-dsh-worktree-heroContext {\n display: inline-flex;\n box-sizing: border-box;\n max-width: 260px;\n min-height: 22px;\n align-items: center;\n overflow: hidden;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 999px;\n padding: 0 8px;\n background: var(--dsw-alias-bg-layer-1);\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n line-height: 20px;\n pointer-events: auto;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n";
|
|
1600
1632
|
const styleId$5 = "@cerbur/clutch-dsh-worktree/worktree-context.css";
|
|
1601
1633
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree-context.css\"]") === null) {
|
|
@@ -1623,10 +1655,9 @@ window.__ModuleLoader__.load({
|
|
|
1623
1655
|
className: worktree_context_css_default.headerContext,
|
|
1624
1656
|
title: value.label,
|
|
1625
1657
|
"aria-label": ariaLabel,
|
|
1626
|
-
children: [(0, react_jsx_runtime.jsx)(
|
|
1658
|
+
children: [(0, react_jsx_runtime.jsx)(IconBranchOutline16, {
|
|
1627
1659
|
size: 14,
|
|
1628
|
-
className: worktree_context_css_default.contextIcon
|
|
1629
|
-
"aria-hidden": "true"
|
|
1660
|
+
className: worktree_context_css_default.contextIcon
|
|
1630
1661
|
}), (0, react_jsx_runtime.jsx)("span", {
|
|
1631
1662
|
className: worktree_context_css_default.contextLabel,
|
|
1632
1663
|
children: value.label
|
|
@@ -1660,7 +1691,7 @@ window.__ModuleLoader__.load({
|
|
|
1660
1691
|
globalSetViewMode?.(mode);
|
|
1661
1692
|
}
|
|
1662
1693
|
//#endregion
|
|
1663
|
-
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/
|
|
1694
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/worktree.css.mjs
|
|
1664
1695
|
const css$4 = ".-cerbur-clutch-dsh-worktree-action {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n gap: 8px;\n width: calc(100% + 4px);\n height: 42px;\n margin: 4px -2px;\n box-sizing: border-box;\n border: 0;\n border-radius: 12px;\n padding: 0 10px 0 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n line-height: 22px;\n text-align: left;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-action:hover,\n.-cerbur-clutch-dsh-worktree-action[data-active='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-action[data-collapsed='true'] {\n width: 36px;\n height: 36px;\n margin: 8px 0 10px;\n justify-content: center;\n gap: 0;\n padding: 0;\n border-radius: 50%;\n}\n\n.-cerbur-clutch-dsh-worktree-actionLabel {\n display: inline-flex;\n min-width: 0;\n align-items: center;\n height: 22px;\n overflow: hidden;\n font-weight: 400;\n line-height: 22px;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-surface {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: column;\n box-sizing: border-box;\n min-width: 56px;\n overflow: hidden;\n border-right: 1px solid var(--dsw-alias-border-l1);\n background: var(--dsw-specific-sidebar-fill);\n color: var(--dsw-alias-label-primary);\n pointer-events: auto;\n transition: width var(--ds-transition-duration-slow) var(--ds-ease-in-out);\n}\n\n@media (prefers-reduced-motion: reduce) {\n .-cerbur-clutch-dsh-worktree-surface {\n transition: none;\n }\n}\n\n.-cerbur-clutch-dsh-worktree-wideContent {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1;\n flex-direction: column;\n}\n\n.-cerbur-clutch-dsh-worktree-surface[data-collapsed='true'] .-cerbur-clutch-dsh-worktree-wideContent {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTabs {\n display: flex;\n gap: 8px;\n margin-bottom: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab {\n border: 0;\n border-bottom: 2px solid transparent;\n padding: 4px 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeModalTab[aria-selected='true'] {\n border-bottom-color: var(--dsw-alias-label-primary);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportCandidates {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportSelect {\n width: 100%;\n min-width: 0;\n padding: 7px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 13px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeImportError {\n display: grid;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n border: 0;\n border-radius: 8px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-header {\n display: flex;\n align-items: center;\n gap: 6px;\n flex: none;\n min-height: 44px;\n padding: 6px 10px;\n box-sizing: border-box;\n border-bottom: 1px solid var(--dsw-alias-border-l1);\n}\n\n.-cerbur-clutch-dsh-worktree-title {\n min-width: 0;\n flex: 1;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 600;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-titleHidden {\n flex: 0 0 0px;\n max-width: 0;\n opacity: 0;\n transform: translateX(-4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 16px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-closeButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-modeButton[data-active='true'] {\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspacePicker {\n display: block;\n width: calc(100% - 20px);\n margin: 6px 10px 8px;\n padding: 6px 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceLabel {\n display: block;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-content {\n min-height: 0;\n flex: 1;\n overflow: auto;\n padding: 0 10px 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-content:focus-visible {\n outline: 2px solid var(--dsw-alias-border-l3);\n outline-offset: -2px;\n}\n\n.-cerbur-clutch-dsh-worktree-error {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-state-error-primary);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-notice {\n margin: 12px 0 0;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 7px;\n background: var(--dsw-alias-button-elevated-fill);\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n border: 0;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton,\n.-cerbur-clutch-dsh-worktree-actionButton {\n width: 100%;\n padding: 6px 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-recoveryActions {\n display: grid;\n gap: 6px;\n margin-top: 6px;\n}\n\n.-cerbur-clutch-dsh-worktree-retryButton:disabled,\n.-cerbur-clutch-dsh-worktree-actionButton:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n}\n\n.-cerbur-clutch-dsh-worktree-actions {\n display: grid;\n gap: 6px;\n margin-top: 10px;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l1);\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect {\n min-width: 0;\n padding: 5px 6px;\n border: 1px solid var(--dsw-alias-border-l2);\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-section {\n margin: 12px 0 0;\n}\n\n.-cerbur-clutch-dsh-worktree-sectionTitle {\n margin: 0 2px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n font-weight: 600;\n letter-spacing: 0.02em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-empty,\n.-cerbur-clutch-dsh-worktree-message {\n margin: 0;\n padding: 8px 4px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 12px;\n line-height: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitReadiness {\n display: grid;\n gap: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-commandBlock {\n margin: 6px 0 0;\n padding: 8px;\n overflow-x: auto;\n border-radius: 6px;\n background: var(--dsw-alias-button-elevated-fill);\n color: var(--dsw-alias-label-secondary);\n font:\n 11px/16px ui-monospace,\n SFMono-Regular,\n Menlo,\n monospace;\n white-space: pre-wrap;\n}\n\n.-cerbur-clutch-dsh-worktree-message[data-error='true'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktree,\n.-cerbur-clutch-dsh-worktree-session {\n display: flex;\n align-items: center;\n width: 100%;\n min-width: 0;\n box-sizing: border-box;\n border: 0;\n border-radius: 7px;\n padding: 6px 8px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n font: inherit;\n font-size: 12px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree {\n cursor: default;\n}\n\n.-cerbur-clutch-dsh-worktree-session {\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-worktree:hover,\n.-cerbur-clutch-dsh-worktree-session:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-sessionLabel {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-status {\n flex: none;\n margin-left: auto;\n padding-left: 8px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlot {\n flex: none;\n max-width: 28px;\n min-width: 0;\n display: flex;\n align-items: center;\n margin-left: auto;\n box-sizing: border-box;\n transition:\n flex 180ms var(--ds-ease-in-out),\n max-width 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchSlotExpanded {\n flex: 1;\n max-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActions {\n flex: none;\n display: flex;\n align-items: center;\n gap: 4px;\n margin-left: 0;\n opacity: 1;\n visibility: visible;\n transition:\n opacity 120ms var(--ds-ease-in-out),\n transform 180ms var(--ds-ease-in-out),\n visibility 0s linear;\n}\n\n.-cerbur-clutch-dsh-worktree-headerActionsHidden {\n flex: 0 0 0px;\n max-width: 0;\n margin-left: 0;\n opacity: 0;\n transform: translateX(4px);\n visibility: hidden;\n pointer-events: none;\n transition-delay: 0s, 0s, 180ms;\n}\n\n.-cerbur-clutch-dsh-worktree-search {\n position: relative;\n display: flex;\n align-items: center;\n width: 100%;\n height: 28px;\n box-sizing: border-box;\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n transition:\n background 180ms var(--ds-ease-in-out),\n box-shadow 180ms var(--ds-ease-in-out),\n color 180ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded {\n background: var(--dsw-alias-interactive-bg-subtle);\n box-shadow: inset 0 0 0 1px var(--dsw-alias-border-l2);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded:focus-within {\n box-shadow: inset 0 0 0 1px #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchButton:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput {\n flex: 1;\n width: 0;\n min-width: 0;\n box-sizing: border-box;\n border: none;\n outline: none;\n background: transparent;\n opacity: 0;\n pointer-events: none;\n font: inherit;\n font-size: 13px;\n line-height: 18px;\n color: var(--dsw-alias-label-primary);\n transition: opacity 120ms var(--ds-ease-in-out);\n}\n\n.-cerbur-clutch-dsh-worktree-searchExpanded .-cerbur-clutch-dsh-worktree-searchInput {\n margin-left: -2px;\n opacity: 1;\n pointer-events: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-searchInput::placeholder {\n color: var(--dsw-alias-label-tertiary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n border: none;\n border-radius: 50%;\n padding: 0;\n background: transparent;\n cursor: pointer;\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-clearButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-actionSelect:focus,\n.-cerbur-clutch-dsh-worktree-worktreeImportSelect:focus {\n border-color: #3b82f6;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n border: 0;\n border-radius: 7px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 20px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-iconButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceList {\n min-width: 0;\n min-height: 0;\n display: grid;\n gap: 4px;\n overflow-x: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceGroup {\n min-width: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow,\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n position: relative;\n display: flex;\n align-items: center;\n min-width: 0;\n min-height: 36px;\n box-sizing: border-box;\n border-radius: 8px;\n padding: 3px 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow .-cerbur-clutch-dsh-worktree-workspaceDisclosure {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceDisclosure,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceDisclosure {\n display: inline-flex;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-workspaceIcon {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeDisclosure,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeDisclosure {\n display: inline-flex;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeIcon,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeIcon {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton {\n flex: none;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 28px;\n border: 0;\n border-radius: 6px;\n padding: 0;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 17px;\n line-height: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton > svg {\n display: block;\n}\n\n.-cerbur-clutch-dsh-worktree-disclosureButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon,\n.-cerbur-clutch-dsh-worktree-worktreeIcon {\n flex: none;\n width: 24px;\n color: var(--dsw-alias-label-secondary);\n font-size: 20px;\n line-height: 1;\n text-align: center;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='done'] {\n color: var(--dsw-alias-state-success-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='warning'] {\n color: var(--dsw-alias-state-warn-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeIcon[data-worktree-state='error'] {\n color: var(--dsw-alias-state-error-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeStateLabel {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n overflow: hidden;\n border: 0;\n padding: 0;\n clip: rect(0 0 0 0);\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceIcon {\n color: var(--dsw-alias-brand-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceTitle,\n.-cerbur-clutch-dsh-worktree-worktreeLabel {\n min-width: 0;\n overflow: hidden;\n flex: 1;\n padding: 0 6px;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-main-group='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel {\n font-weight: 600;\n}\n\n/* A collapsed running row keeps one shared scroll container for its label. */\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel,\n/* Once the action rail is revealed, allow long branch labels to scroll inline. */\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeLabel {\n overflow-x: auto;\n overflow-y: hidden;\n text-overflow: clip;\n scrollbar-width: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel::-webkit-scrollbar,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-worktreeLabel::-webkit-scrollbar,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-worktreeLabel::-webkit-scrollbar,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-worktreeLabel::-webkit-scrollbar {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeHoverTitle {\n color: var(--dsw-static-neutral-bluish-00);\n font-size: 14px;\n line-height: 20px;\n overflow-wrap: anywhere;\n}\n\n/* Native Session hover card: full title, relative time, and current status. */\n.-cerbur-clutch-dsh-worktree-sessionHoverContent {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTitle {\n color: #FFFFFF;\n font-size: 14px;\n line-height: 20px;\n overflow-wrap: break-word;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverTime {\n color: #CFD3D6;\n font-size: 12px;\n line-height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionHoverStatus {\n display: flex;\n align-items: center;\n gap: 8px;\n color: #ADB2B8;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeActionSlot,\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n position: relative;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n height: 28px;\n margin-left: auto;\n}\n\n/* Workspace rows retain the native fixed action column. */\n.-cerbur-clutch-dsh-worktree-workspaceActions {\n flex: 0 0 64px;\n width: 64px;\n}\n\n/* Group actions do not reserve space until their row needs to show them. */\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot {\n min-width: 0;\n flex: 0 0 0;\n width: 0;\n gap: 4px;\n}\n\n/* Keep the 28px activity indicator plus a 4px label gap while collapsed. */\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot {\n flex: 0 0 32px;\n width: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot {\n flex: 0 0 auto;\n width: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-menuAction {\n position: absolute;\n top: 0;\n right: 32px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceActions > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: absolute;\n top: 0;\n right: 0;\n}\n\n/* Worktree actions flow naturally so the rail matches the controls that exist. */\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n position: static;\n opacity: 0;\n pointer-events: none;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-groupActivity {\n position: absolute;\n top: 0;\n right: 0;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n visibility: hidden;\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true'] .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-groupActivity {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true'][data-menu-open='true']\n .-cerbur-clutch-dsh-worktree-treeActionSlot\n > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-group-activity='true']:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-menuAction {\n display: inline-flex;\n flex: 0 0 28px;\n width: 28px;\n height: 28px;\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow:hover .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-workspaceRow:focus-within .-cerbur-clutch-dsh-worktree-menuAction {\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-dashboardAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-menuAction,\n.-cerbur-clutch-dsh-worktree-worktreeRow:hover .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child,\n.-cerbur-clutch-dsh-worktree-worktreeRow:focus-within .-cerbur-clutch-dsh-worktree-treeActionSlot > .-cerbur-clutch-dsh-worktree-iconButton:last-child {\n opacity: 1;\n pointer-events: auto;\n visibility: visible;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-workspaceRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeChildren {\n margin-left: 16px;\n padding: 2px 0 5px 12px;\n border-left: 1px solid var(--dsw-alias-border-l1);\n}\n\n.-cerbur-clutch-dsh-worktree-groupLabel {\n padding: 6px 8px 3px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 10px;\n font-weight: 600;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader {\n display: flex;\n align-items: center;\n min-height: 34px;\n padding-right: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-groupHeader .-cerbur-clutch-dsh-worktree-groupLabel {\n flex: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeGroup {\n margin-top: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-worktreeRow {\n min-height: 34px;\n}\n\n/* Compact the Worktree leading slots to make room for its third action. */\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-worktreeIcon,\n.-cerbur-clutch-dsh-worktree-worktreeRow .-cerbur-clutch-dsh-worktree-disclosureButton {\n width: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow {\n position: relative;\n display: flex;\n align-items: center;\n width: calc(100% - 20px);\n margin-left: 20px;\n min-width: 0;\n min-height: 31px;\n box-sizing: border-box;\n border-radius: 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-session-current='true'] .-cerbur-clutch-dsh-worktree-treeSessionContent {\n font-weight: 600;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before,\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n position: absolute;\n right: 4px;\n left: 4px;\n height: 2px;\n border-radius: 2px;\n background: var(--dsw-alias-brand-primary);\n content: '';\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropBefore::before {\n top: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow.-cerbur-clutch-dsh-worktree-dropAfter::after {\n bottom: -1px;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent {\n display: flex;\n align-items: center;\n flex: 1;\n width: 0;\n min-width: 0;\n min-height: 31px;\n box-sizing: border-box;\n border: 0;\n border-radius: 7px;\n padding: 4px 4px;\n background: transparent;\n color: var(--dsw-alias-label-primary);\n cursor: pointer;\n font: inherit;\n font-size: 14px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionContent:hover {\n background: transparent;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTrailing {\n position: relative;\n display: inline-flex;\n flex: 0 0 52px;\n align-items: center;\n justify-content: flex-end;\n width: 52px;\n height: 28px;\n margin-left: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-rowActions {\n position: absolute;\n inset: 0;\n display: inline-flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionMeta {\n color: var(--dsw-alias-label-tertiary);\n pointer-events: none;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionStatus {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionTime {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n margin-right: 4px;\n font-size: 12px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton {\n display: block;\n width: calc(100% - 24px);\n margin: 2px 0 4px 24px;\n padding: 4px 8px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-secondary);\n cursor: pointer;\n font: inherit;\n font-size: 12px;\n font-weight: 400;\n line-height: 20px;\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-sessionOverflowButton:hover {\n background: var(--dsw-alias-interactive-bg-hover);\n color: var(--dsw-alias-label-primary);\n}\n\n.-cerbur-clutch-dsh-worktree-rowActions {\n display: none;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-sessionMeta,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-sessionMeta {\n visibility: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-treeSessionRow:hover .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-treeSessionRow[data-menu-open='true'] .-cerbur-clutch-dsh-worktree-rowActions,\n.-cerbur-clutch-dsh-worktree-sessionTrailing:focus-within .-cerbur-clutch-dsh-worktree-rowActions {\n display: inline-flex;\n}\n\n.-cerbur-clutch-dsh-worktree-renameInput {\n width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-renameError {\n margin: 8px 0 0;\n color: var(--dsw-alias-state-error-primary);\n font-size: 13px;\n line-height: 20px;\n}\n\n.-cerbur-clutch-dsh-worktree-emptyNested {\n margin: 0;\n padding: 4px 8px 5px 28px;\n color: var(--dsw-alias-label-tertiary);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-archivedGroup {\n margin-top: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-modalField {\n display: grid;\n gap: 5px;\n color: var(--dsw-alias-label-secondary);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-worktreeHoverDetails {\n max-width: 360px;\n white-space: normal;\n overflow-wrap: anywhere;\n line-height: 1.5;\n}\n\n.-cerbur-clutch-dsh-worktree-notificationDetails > summary {\n cursor: pointer;\n padding: 8px;\n font-size: 12px;\n}\n";
|
|
1665
1696
|
const styleId$4 = "@cerbur/clutch-dsh-worktree/worktree.css";
|
|
1666
1697
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree.css\"]") === null) {
|
|
@@ -1783,7 +1814,7 @@ window.__ModuleLoader__.load({
|
|
|
1783
1814
|
onClick: () => {
|
|
1784
1815
|
actions.setViewMode(active ? "workspace-session" : "worktree");
|
|
1785
1816
|
},
|
|
1786
|
-
children: [(0, react_jsx_runtime.jsx)(
|
|
1817
|
+
children: [(0, react_jsx_runtime.jsx)(IconBranchOutline16, { size: wide ? 16 : 18 }), wide && (0, react_jsx_runtime.jsx)("span", {
|
|
1787
1818
|
className: worktree_css_default.actionLabel,
|
|
1788
1819
|
children: t("mode.label")
|
|
1789
1820
|
})]
|
|
@@ -1835,7 +1866,7 @@ window.__ModuleLoader__.load({
|
|
|
1835
1866
|
});
|
|
1836
1867
|
}
|
|
1837
1868
|
//#endregion
|
|
1838
|
-
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/
|
|
1869
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/dashboard/dashboard-header-action.css.mjs
|
|
1839
1870
|
const css$3 = "/* Match the native 28px circular Session-header utility controls. */\n.-cerbur-clutch-dsh-worktree-headerDashboardButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 6px;\n color: var(--dsw-alias-label-secondary);\n background: transparent;\n border: none;\n border-radius: 28px;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-headerDashboardButton svg {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-headerDashboardButton:hover,\n.-cerbur-clutch-dsh-worktree-headerDashboardButton:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n";
|
|
1840
1871
|
const styleId$3 = "@cerbur/clutch-dsh-worktree/dashboard-header-action.css";
|
|
1841
1872
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/dashboard-header-action.css\"]") === null) {
|
|
@@ -2447,6 +2478,13 @@ window.__ModuleLoader__.load({
|
|
|
2447
2478
|
return sessionIds.filter((sessionId) => !archivedSessionIds.includes(sessionId));
|
|
2448
2479
|
}
|
|
2449
2480
|
//#endregion
|
|
2481
|
+
//#region lib/client/session/session-selection.js
|
|
2482
|
+
/** Prefer the legacy selected-id field; DSH 1.7 represents selection by mainView retention. */
|
|
2483
|
+
function currentSessionIdFromList(sessions) {
|
|
2484
|
+
if (sessions.current !== void 0) return sessions.current;
|
|
2485
|
+
return Object.keys(sessions.byId).find((sessionId) => (sessions.byId[sessionId]?.retainedBy?.mainView ?? 0) > 0);
|
|
2486
|
+
}
|
|
2487
|
+
//#endregion
|
|
2450
2488
|
//#region lib/client/session/session-view.js
|
|
2451
2489
|
function isPendingInteractionStatus(value) {
|
|
2452
2490
|
return value === "approval" || value === "plan-review" || value === "question";
|
|
@@ -2621,7 +2659,7 @@ window.__ModuleLoader__.load({
|
|
|
2621
2659
|
}
|
|
2622
2660
|
/** Native tree visibility: ordinary rows plus the currently selected blank row. */
|
|
2623
2661
|
function isVisibleSession(sessionId, sessions) {
|
|
2624
|
-
return !isBlankSession(sessionId, sessions) || sessions
|
|
2662
|
+
return !isBlankSession(sessionId, sessions) || currentSessionIdFromList(sessions) === sessionId;
|
|
2625
2663
|
}
|
|
2626
2664
|
/** Filter a group without mutating its source order. */
|
|
2627
2665
|
function filterVisibleSessionIds(sessionIds, sessions) {
|
|
@@ -3607,7 +3645,7 @@ window.__ModuleLoader__.load({
|
|
|
3607
3645
|
//#endregion
|
|
3608
3646
|
//#region lib/client/view/navigation.js
|
|
3609
3647
|
/** Open an existing Session through DSH without touching the peer view mode. */
|
|
3610
|
-
function openWorktreeSession(opener, sessionId) {
|
|
3648
|
+
function openWorktreeSession$1(opener, sessionId) {
|
|
3611
3649
|
opener.open(sessionId);
|
|
3612
3650
|
}
|
|
3613
3651
|
//#endregion
|
|
@@ -3879,12 +3917,12 @@ window.__ModuleLoader__.load({
|
|
|
3879
3917
|
const workspaceMenuItems = [{
|
|
3880
3918
|
id: "rename",
|
|
3881
3919
|
label: t("workspace.rename"),
|
|
3882
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
3920
|
+
icon: (0, react_jsx_runtime.jsx)(IconEditOutline16, {}),
|
|
3883
3921
|
disabled: actionPending
|
|
3884
3922
|
}, {
|
|
3885
3923
|
id: "delete",
|
|
3886
3924
|
label: t("workspace.delete"),
|
|
3887
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
3925
|
+
icon: (0, react_jsx_runtime.jsx)(IconTrashOutline16, {}),
|
|
3888
3926
|
danger: true,
|
|
3889
3927
|
disabled: actionPending
|
|
3890
3928
|
}];
|
|
@@ -3927,12 +3965,12 @@ window.__ModuleLoader__.load({
|
|
|
3927
3965
|
event.stopPropagation();
|
|
3928
3966
|
onToggle();
|
|
3929
3967
|
},
|
|
3930
|
-
children: expanded ? (0, react_jsx_runtime.jsx)(
|
|
3968
|
+
children: expanded ? (0, react_jsx_runtime.jsx)(IconChevronDownOutline14, { size: 18 }) : (0, react_jsx_runtime.jsx)(IconChevronRightOutline14, { size: 18 })
|
|
3931
3969
|
}),
|
|
3932
3970
|
(0, react_jsx_runtime.jsx)("span", {
|
|
3933
3971
|
className: worktree_css_default.workspaceIcon,
|
|
3934
3972
|
"aria-hidden": "true",
|
|
3935
|
-
children: expanded ? (0, react_jsx_runtime.jsx)(
|
|
3973
|
+
children: expanded ? (0, react_jsx_runtime.jsx)(IconFolderOpen16, {}) : (0, react_jsx_runtime.jsx)(IconFolderClose16, {})
|
|
3936
3974
|
}),
|
|
3937
3975
|
(0, react_jsx_runtime.jsx)("span", {
|
|
3938
3976
|
className: worktree_css_default.workspaceTitle,
|
|
@@ -3973,7 +4011,7 @@ window.__ModuleLoader__.load({
|
|
|
3973
4011
|
event.stopPropagation();
|
|
3974
4012
|
onMenuOpenChange(!menuOpen);
|
|
3975
4013
|
},
|
|
3976
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
4014
|
+
children: (0, react_jsx_runtime.jsx)(IconEllipsisOutline16, {})
|
|
3977
4015
|
})
|
|
3978
4016
|
})
|
|
3979
4017
|
}),
|
|
@@ -3986,7 +4024,7 @@ window.__ModuleLoader__.load({
|
|
|
3986
4024
|
event.stopPropagation();
|
|
3987
4025
|
onCreateWorktree();
|
|
3988
4026
|
},
|
|
3989
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
4027
|
+
children: (0, react_jsx_runtime.jsx)(IconPlusOutline16, {})
|
|
3990
4028
|
})
|
|
3991
4029
|
]
|
|
3992
4030
|
})
|
|
@@ -4095,7 +4133,7 @@ window.__ModuleLoader__.load({
|
|
|
4095
4133
|
event.stopPropagation();
|
|
4096
4134
|
onToggle();
|
|
4097
4135
|
},
|
|
4098
|
-
children: expanded ? (0, react_jsx_runtime.jsx)(
|
|
4136
|
+
children: expanded ? (0, react_jsx_runtime.jsx)(IconChevronDownOutline14, { size: 18 }) : (0, react_jsx_runtime.jsx)(IconChevronRightOutline14, { size: 18 })
|
|
4099
4137
|
}),
|
|
4100
4138
|
(0, react_jsx_runtime.jsx)("span", {
|
|
4101
4139
|
className: worktree_css_default.worktreeIcon,
|
|
@@ -4153,19 +4191,19 @@ window.__ModuleLoader__.load({
|
|
|
4153
4191
|
...menu.showCreate ? [{
|
|
4154
4192
|
id: "create",
|
|
4155
4193
|
label: t("worktree.createNew"),
|
|
4156
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4194
|
+
icon: (0, react_jsx_runtime.jsx)(IconPlusOutline16, {}),
|
|
4157
4195
|
disabled: menu.disabled || menu.onCreateWorktree === void 0
|
|
4158
4196
|
}] : [],
|
|
4159
4197
|
{
|
|
4160
4198
|
id: "copy-path",
|
|
4161
4199
|
label: t("worktree.copyPath"),
|
|
4162
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4200
|
+
icon: (0, react_jsx_runtime.jsx)(IconCopyOutline16, {}),
|
|
4163
4201
|
disabled: menu.disabled
|
|
4164
4202
|
},
|
|
4165
4203
|
...menu.showRemove ? [{
|
|
4166
4204
|
id: "remove",
|
|
4167
4205
|
label: t("worktree.archive"),
|
|
4168
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4206
|
+
icon: (0, react_jsx_runtime.jsx)(IconArchiveOutline20, { size: 16 }),
|
|
4169
4207
|
danger: true,
|
|
4170
4208
|
disabled: menu.disabled || menu.onRemove === void 0
|
|
4171
4209
|
}] : [],
|
|
@@ -4182,20 +4220,20 @@ window.__ModuleLoader__.load({
|
|
|
4182
4220
|
...menu.showUnarchive ? [{
|
|
4183
4221
|
id: "unarchive",
|
|
4184
4222
|
label: menu.unarchiveDisabledReason ? `${t("worktree.unarchive")} (${menu.unarchiveDisabledReason})` : t("worktree.unarchive"),
|
|
4185
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4223
|
+
icon: (0, react_jsx_runtime.jsx)(IconRefreshOutline16, {}),
|
|
4186
4224
|
disabled: menu.disabled || menu.unarchiveDisabled || menu.onUnarchive === void 0
|
|
4187
4225
|
}] : [],
|
|
4188
4226
|
...menu.showCleanDisk ? [{
|
|
4189
4227
|
id: "clean-disk",
|
|
4190
4228
|
label: menu.cleanDiskDisabledReason ? `${t("worktree.cleanDisk")} (${menu.cleanDiskDisabledReason})` : t("worktree.cleanDisk"),
|
|
4191
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4229
|
+
icon: (0, react_jsx_runtime.jsx)(IconTrashOutline16, {}),
|
|
4192
4230
|
danger: true,
|
|
4193
4231
|
disabled: menu.disabled || menu.cleanDiskDisabled || menu.onCleanDisk === void 0
|
|
4194
4232
|
}] : [],
|
|
4195
4233
|
...menu.showForget ? [{
|
|
4196
4234
|
id: "forget",
|
|
4197
4235
|
label: menu.forgetDisabledReason ? `${t("worktree.forget")} (${menu.forgetDisabledReason})` : t("worktree.forget"),
|
|
4198
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4236
|
+
icon: (0, react_jsx_runtime.jsx)(IconTrashOutline16, {}),
|
|
4199
4237
|
danger: true,
|
|
4200
4238
|
disabled: menu.disabled || menu.forgetDisabled || menu.onForget === void 0
|
|
4201
4239
|
}] : []
|
|
@@ -4223,7 +4261,7 @@ window.__ModuleLoader__.load({
|
|
|
4223
4261
|
event.stopPropagation();
|
|
4224
4262
|
menu.onOpenChange(!menu.open);
|
|
4225
4263
|
},
|
|
4226
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
4264
|
+
children: (0, react_jsx_runtime.jsx)(IconEllipsisOutline16, {})
|
|
4227
4265
|
})
|
|
4228
4266
|
})
|
|
4229
4267
|
}),
|
|
@@ -4237,7 +4275,7 @@ window.__ModuleLoader__.load({
|
|
|
4237
4275
|
event.stopPropagation();
|
|
4238
4276
|
onCreateSession();
|
|
4239
4277
|
},
|
|
4240
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
4278
|
+
children: (0, react_jsx_runtime.jsx)(IconPlusOutline16, {})
|
|
4241
4279
|
})
|
|
4242
4280
|
]
|
|
4243
4281
|
})
|
|
@@ -4280,25 +4318,25 @@ window.__ModuleLoader__.load({
|
|
|
4280
4318
|
{
|
|
4281
4319
|
id: "rename",
|
|
4282
4320
|
label: t("session.rename"),
|
|
4283
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4321
|
+
icon: (0, react_jsx_runtime.jsx)(IconEditOutline16, {}),
|
|
4284
4322
|
disabled: onRename === void 0 || actionPending
|
|
4285
4323
|
},
|
|
4286
4324
|
{
|
|
4287
4325
|
id: "fork",
|
|
4288
4326
|
label: t("session.fork"),
|
|
4289
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4327
|
+
icon: (0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
4290
4328
|
disabled: onFork === void 0 || actionPending
|
|
4291
4329
|
},
|
|
4292
4330
|
{
|
|
4293
4331
|
id: "archive",
|
|
4294
4332
|
label: t("session.archive"),
|
|
4295
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4333
|
+
icon: (0, react_jsx_runtime.jsx)(IconArchiveOutline20, { size: 16 }),
|
|
4296
4334
|
disabled: onArchive === void 0 || actionPending
|
|
4297
4335
|
},
|
|
4298
4336
|
{
|
|
4299
4337
|
id: "copy-session-id",
|
|
4300
4338
|
label: t("session.copyId"),
|
|
4301
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4339
|
+
icon: (0, react_jsx_runtime.jsx)(IconCopyOutline16, {})
|
|
4302
4340
|
}
|
|
4303
4341
|
];
|
|
4304
4342
|
const statusLabel = presentation === void 0 ? void 0 : sessionStatusLabel$1(t, presentation.status);
|
|
@@ -4383,7 +4421,7 @@ window.__ModuleLoader__.load({
|
|
|
4383
4421
|
event.stopPropagation();
|
|
4384
4422
|
setMenuOpen((current) => !current);
|
|
4385
4423
|
},
|
|
4386
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
4424
|
+
children: (0, react_jsx_runtime.jsx)(IconEllipsisOutline16, {})
|
|
4387
4425
|
})
|
|
4388
4426
|
})
|
|
4389
4427
|
})]
|
|
@@ -4487,7 +4525,7 @@ window.__ModuleLoader__.load({
|
|
|
4487
4525
|
worktreeId: record.worktreeId,
|
|
4488
4526
|
expanded: worktreeExpanded,
|
|
4489
4527
|
groupActivityStatus: aggregateSessionStatus(worktreeSessionIds, sessionPresentations),
|
|
4490
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4528
|
+
icon: (0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
4491
4529
|
workspaceTitle: workspace.title,
|
|
4492
4530
|
state,
|
|
4493
4531
|
stateLabel,
|
|
@@ -4651,7 +4689,7 @@ window.__ModuleLoader__.load({
|
|
|
4651
4689
|
worktreeId: record.worktreeId,
|
|
4652
4690
|
expanded: worktreeExpanded,
|
|
4653
4691
|
groupActivityStatus: aggregateSessionStatus(worktreeSessionIds, sessionPresentations),
|
|
4654
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4692
|
+
icon: (0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
4655
4693
|
workspaceTitle: workspace.title,
|
|
4656
4694
|
state,
|
|
4657
4695
|
stateLabel,
|
|
@@ -4797,7 +4835,7 @@ window.__ModuleLoader__.load({
|
|
|
4797
4835
|
label: `${t("worktree.archivedGroup")} (${archivedWorktrees.length})`,
|
|
4798
4836
|
expanded: isArchivedExpanded,
|
|
4799
4837
|
groupActivityStatus: aggregateSessionStatus(filterArchivedSessionIds(archivedWorktrees.flatMap((record) => bindingIdsFor(bindings, record.worktreeId).filter((sessionId) => sessions.ids.includes(sessionId))), archivedSessionIds), sessionPresentations),
|
|
4800
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4838
|
+
icon: (0, react_jsx_runtime.jsx)(IconArchiveOutline20, { size: 16 }),
|
|
4801
4839
|
workspaceTitle: workspace.title,
|
|
4802
4840
|
onToggle: () => {
|
|
4803
4841
|
toggleArchivedWorkspace(workspace.workspaceId);
|
|
@@ -4933,7 +4971,7 @@ window.__ModuleLoader__.load({
|
|
|
4933
4971
|
label: mainLabel,
|
|
4934
4972
|
expanded: mainExpanded,
|
|
4935
4973
|
groupActivityStatus: aggregateSessionStatus(mainSessionIds, sessionPresentations),
|
|
4936
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
4974
|
+
icon: (0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
4937
4975
|
workspaceTitle: workspace.title,
|
|
4938
4976
|
onToggle: () => {
|
|
4939
4977
|
toggleMain(workspace.workspaceId);
|
|
@@ -5000,7 +5038,7 @@ window.__ModuleLoader__.load({
|
|
|
5000
5038
|
},
|
|
5001
5039
|
onCommitDrag: commitSessionDrag,
|
|
5002
5040
|
onOpen: (sessionId) => {
|
|
5003
|
-
openWorktreeSession({ open: openSession }, sessionId);
|
|
5041
|
+
openWorktreeSession$1({ open: openSession }, sessionId);
|
|
5004
5042
|
},
|
|
5005
5043
|
onRename: renameSession === void 0 ? void 0 : openSessionRename,
|
|
5006
5044
|
onFork: forkSession,
|
|
@@ -5346,7 +5384,7 @@ window.__ModuleLoader__.load({
|
|
|
5346
5384
|
setSearchExpanded(true);
|
|
5347
5385
|
searchInput.current?.focus();
|
|
5348
5386
|
},
|
|
5349
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
5387
|
+
children: (0, react_jsx_runtime.jsx)(IconSearchOutline16, { size: searchExpanded ? 12 : 14 })
|
|
5350
5388
|
})
|
|
5351
5389
|
}),
|
|
5352
5390
|
(0, react_jsx_runtime.jsx)("input", {
|
|
@@ -5376,7 +5414,7 @@ window.__ModuleLoader__.load({
|
|
|
5376
5414
|
setSearchQuery("");
|
|
5377
5415
|
setSearchExpanded(false);
|
|
5378
5416
|
},
|
|
5379
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
5417
|
+
children: (0, react_jsx_runtime.jsx)(IconCloseFill14, {})
|
|
5380
5418
|
})
|
|
5381
5419
|
]
|
|
5382
5420
|
})
|
|
@@ -5412,7 +5450,7 @@ window.__ModuleLoader__.load({
|
|
|
5412
5450
|
onClick: () => {
|
|
5413
5451
|
if (createWorkspace !== void 0) runMutation(createWorkspace);
|
|
5414
5452
|
},
|
|
5415
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
5453
|
+
children: (0, react_jsx_runtime.jsx)(IconProjectAddOutline16, {})
|
|
5416
5454
|
})
|
|
5417
5455
|
}),
|
|
5418
5456
|
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Tooltip, {
|
|
@@ -5426,7 +5464,7 @@ window.__ModuleLoader__.load({
|
|
|
5426
5464
|
onClick: () => {
|
|
5427
5465
|
actions.setViewMode("workspace-session");
|
|
5428
5466
|
},
|
|
5429
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
5467
|
+
children: (0, react_jsx_runtime.jsx)(IconCloseOutline16, {})
|
|
5430
5468
|
})
|
|
5431
5469
|
})
|
|
5432
5470
|
]
|
|
@@ -6528,7 +6566,7 @@ window.__ModuleLoader__.load({
|
|
|
6528
6566
|
};
|
|
6529
6567
|
const openWorkspaceSession = (workspaceId, sessionId) => {
|
|
6530
6568
|
ensureSessionWorkspace?.(workspaceId, sessionId);
|
|
6531
|
-
openWorktreeSession({ open: openSession }, sessionId);
|
|
6569
|
+
openWorktreeSession$1({ open: openSession }, sessionId);
|
|
6532
6570
|
};
|
|
6533
6571
|
return {
|
|
6534
6572
|
pendingSessionBinding,
|
|
@@ -7268,7 +7306,7 @@ window.__ModuleLoader__.load({
|
|
|
7268
7306
|
const workspaces = useWorkspaces((state) => state);
|
|
7269
7307
|
const forkRecoveryStore = forkRecovery ?? EMPTY_FORK_RECOVERY_STORE;
|
|
7270
7308
|
const forkRecoverySnapshot = (0, react.useSyncExternalStore)(forkRecoveryStore.subscribe, forkRecoveryStore.getSnapshot, forkRecoveryStore.getSnapshot);
|
|
7271
|
-
const currentSessionId = sessions
|
|
7309
|
+
const currentSessionId = currentSessionIdFromList(sessions);
|
|
7272
7310
|
const workspaceIds = useStableWorkspaceIds(workspaces.items);
|
|
7273
7311
|
const workspaceIdsRef = (0, react.useRef)(workspaceIds);
|
|
7274
7312
|
workspaceIdsRef.current = workspaceIds;
|
|
@@ -7595,7 +7633,7 @@ window.__ModuleLoader__.load({
|
|
|
7595
7633
|
};
|
|
7596
7634
|
const defaultOpenInAppController = new OpenInAppController();
|
|
7597
7635
|
//#endregion
|
|
7598
|
-
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/
|
|
7636
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/dashboard/open-in-app.css.mjs
|
|
7599
7637
|
const css$2 = ".-cerbur-clutch-dsh-worktree-control {\n display: inline-flex;\n align-self: flex-end;\n}\n\n.-cerbur-clutch-dsh-worktree-split {\n display: inline-flex;\n align-items: stretch;\n box-sizing: border-box;\n height: 28px;\n border: 0.5px solid var(--dsw-alias-border-l4);\n border-radius: 14px;\n overflow: hidden;\n font-family: var(--dsw-font-family);\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-main,\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n border: 0;\n background: none;\n color: var(--dsw-alias-label-primary);\n font-size: 11px;\n font-weight: 400;\n line-height: 16px;\n cursor: pointer;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-main {\n padding: 5px 6px 5px 7px;\n}\n\n.-cerbur-clutch-dsh-worktree-main:hover:not(:disabled),\n.-cerbur-clutch-dsh-worktree-main:focus-visible,\n.-cerbur-clutch-dsh-worktree-chevron:hover,\n.-cerbur-clutch-dsh-worktree-chevron:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover);\n}\n\n.-cerbur-clutch-dsh-worktree-main:disabled {\n color: var(--dsw-alias-label-dimmed);\n cursor: wait;\n}\n\n.-cerbur-clutch-dsh-worktree-main[data-state='error'] {\n color: var(--dsw-alias-state-error-primary, #e03e3e);\n box-shadow: inset 0 0 0 1px var(--dsw-alias-state-error-primary, #e03e3e);\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron {\n padding: 5px 6px 5px 4px;\n border-left: 0.5px solid var(--dsw-alias-border-l4);\n color: var(--dsw-alias-label-secondary);\n}\n\n.-cerbur-clutch-dsh-worktree-icon {\n flex: none;\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-icon {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-split .-cerbur-clutch-dsh-worktree-chevron svg {\n width: 12px;\n height: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-fallback {\n text-decoration: none;\n align-self: flex-end;\n}\n\nimg.-cerbur-clutch-dsh-worktree-icon {\n display: block;\n object-fit: contain;\n user-select: none;\n}\n";
|
|
7600
7638
|
const styleId$2 = "@cerbur/clutch-dsh-worktree/open-in-app.css";
|
|
7601
7639
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/open-in-app.css\"]") === null) {
|
|
@@ -7790,7 +7828,7 @@ window.__ModuleLoader__.load({
|
|
|
7790
7828
|
onClick: () => {
|
|
7791
7829
|
setOpen((prev) => !prev);
|
|
7792
7830
|
},
|
|
7793
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
7831
|
+
children: (0, react_jsx_runtime.jsx)(IconChevronDownOutline14, { size: 12 })
|
|
7794
7832
|
})]
|
|
7795
7833
|
})
|
|
7796
7834
|
})
|
|
@@ -7950,7 +7988,7 @@ window.__ModuleLoader__.load({
|
|
|
7950
7988
|
};
|
|
7951
7989
|
}
|
|
7952
7990
|
//#endregion
|
|
7953
|
-
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/
|
|
7991
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/dashboard/dashboard.css.mjs
|
|
7954
7992
|
const css$1 = ".-cerbur-clutch-dsh-worktree-dashboardSurface {\n position: absolute;\n box-sizing: border-box;\n z-index: 2;\n overflow: auto;\n overscroll-behavior: contain;\n pointer-events: auto;\n container-type: inline-size;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-primary, #19212f);\n font-family: inherit;\n font-size: 14px;\n line-height: 1.5;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardSurface *,\n.-cerbur-clutch-dsh-worktree-dashboardSurface *::before,\n.-cerbur-clutch-dsh-worktree-dashboardSurface *::after {\n box-sizing: border-box;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface button {\n font: inherit;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface svg {\n width: 18px;\n height: 18px;\n flex: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface code {\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface button:focus-visible,\n.-cerbur-clutch-dsh-worktree-dashboardSurface a:focus-visible,\n.-cerbur-clutch-dsh-worktree-dashboardPanel:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: 3px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface h1:focus {\n outline: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPage {\n max-width: 1240px;\n margin: 0 auto;\n padding: 24px 30px 28px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions {\n list-style: none;\n padding: 0;\n margin: 12px 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions button {\n display: flex;\n align-items: center;\n gap: 10px;\n width: 100%;\n padding: 12px 8px;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionLabel {\n flex: 1;\n min-width: 0;\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionMeta {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: flex-end;\n min-width: 28px;\n color: var(--dsw-alias-label-tertiary, #858e9d);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionStatus {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessionTime {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n line-height: 20px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSessions button:hover,\n.-cerbur-clutch-dsh-worktree-dashboardSessions button[aria-current] {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSurface a {\n text-decoration: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button:not(:disabled) {\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 20px;\n margin-bottom: 28px;\n color: var(--dsw-alias-label-secondary, #677080);\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline > span {\n overflow-wrap: anywhere;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTopline > span > span {\n margin: 0 8px;\n opacity: 0.5;\n}\n.-cerbur-clutch-dsh-worktree-dashboardToplineActions {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n flex: none;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 28px;\n height: 28px;\n padding: 6px;\n border: 0;\n border-radius: 28px;\n background: transparent;\n color: var(--dsw-alias-label-secondary, #677080);\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardSidebarButton svg {\n width: 15px;\n height: 15px;\n transform: scaleX(-1);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeader {\n display: grid;\n grid-template-columns: minmax(0, 1fr) 225px;\n gap: 32px;\n margin-bottom: 15px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIdentity {\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: wrap;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow > svg {\n width: 24px;\n height: 24px;\n color: #3e73ca;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow h1 {\n font-size: 25px;\n letter-spacing: -0.6px;\n line-height: 1.3;\n font-weight: 650;\n margin: 0;\n overflow-wrap: anywhere;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow[role='button'] {\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTitleRow[role='button']:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: 3px;\n border-radius: 4px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth,\n.-cerbur-clutch-dsh-worktree-dashboardSoon {\n display: inline-flex;\n align-items: center;\n gap: 5px;\n white-space: nowrap;\n border-radius: 6px;\n padding: 3px 7px;\n font-size: 11px;\n font-weight: 500;\n color: var(--dsw-alias-label-secondary, #687182);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='ready'] {\n background: color-mix(in srgb, #1eab78 13%, transparent);\n color: #21976f;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='repair'],\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='recovery-needed'],\n.-cerbur-clutch-dsh-worktree-dashboardHealth[data-health='branch-drift'] {\n background: color-mix(in srgb, #e7a839 14%, transparent);\n color: #b27a1e;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPath {\n display: flex;\n align-items: flex-start;\n gap: 9px;\n margin-top: 12px;\n color: var(--dsw-alias-label-secondary, #697283);\n}\n.-cerbur-clutch-dsh-worktree-dashboardPath code {\n padding-top: 4px;\n overflow-wrap: anywhere;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFieldLabel {\n font-size: 10px;\n border: 1px solid var(--dsw-alias-border-l3, #e5e7ed);\n border-radius: 4px;\n padding: 2px 5px;\n margin-top: 2px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 29px;\n height: 29px;\n border: 0;\n border-radius: 5px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n.-cerbur-clutch-dsh-worktree-dashboardCopyStatus {\n font-size: 12px;\n margin: 4px 0 0;\n min-height: 18px;\n color: #21976f;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCopyStatus[role='alert'] {\n color: #bd5d43;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside {\n display: flex;\n flex-direction: column;\n align-items: stretch;\n gap: 8px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside > button,\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside > a {\n align-self: flex-end;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 7px;\n padding: 6px 11px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: inherit;\n white-space: nowrap;\n cursor: pointer;\n font-size: 12px !important;\n line-height: 1.5;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton:disabled {\n color: var(--dsw-alias-label-secondary, #737e8e);\n cursor: not-allowed;\n}\n.-cerbur-clutch-dsh-worktree-dashboardButton:not(:disabled):hover {\n background: var(--dsw-alias-interactive-bg-hover, #f4f6f9);\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs {\n display: flex;\n gap: 22px;\n overflow-x: auto;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e1e5ed);\n margin-bottom: 24px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs button {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: none;\n gap: 8px;\n padding: 12px 2px;\n border: 0;\n border-bottom: 2px solid transparent;\n background: transparent;\n color: var(--dsw-alias-label-secondary, #6c7480);\n cursor: pointer;\n font-size: 13px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs button[aria-selected='true'] {\n color: #4276c8;\n border-bottom-color: #4276c8;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabs svg {\n width: 16px;\n height: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardPanel {\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardGrid {\n display: grid;\n grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr);\n gap: 20px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardColumn {\n display: flex;\n flex-direction: column;\n gap: 20px;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard,\n.-cerbur-clutch-dsh-worktree-dashboardStart {\n padding: 20px;\n border: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-radius: 11px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard h2,\n.-cerbur-clutch-dsh-worktree-dashboardStart h2 {\n display: flex;\n align-items: center;\n gap: 9px;\n font-size: 16px;\n font-weight: 620;\n line-height: 1.4;\n margin: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCard p,\n.-cerbur-clutch-dsh-worktree-dashboardStart > p {\n font-size: 12px;\n color: var(--dsw-alias-label-secondary, #7b8290);\n margin: 8px 0 15px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardCardHeading {\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-wrap: wrap;\n gap: 10px;\n margin-bottom: 7px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStart {\n background: linear-gradient(\n 115deg,\n color-mix(in srgb, #6b9eff 9%, transparent),\n color-mix(in srgb, #6b9eff 3%, transparent)\n );\n}\n.-cerbur-clutch-dsh-worktree-dashboardStart h2 > svg {\n color: #477bc6;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions {\n display: grid;\n grid-template-columns: repeat(2, minmax(0, 1fr));\n gap: 13px;\n margin-top: 23px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button {\n display: flex;\n align-items: flex-start;\n gap: 12px;\n padding: 18px 14px;\n text-align: left;\n border: 1px solid color-mix(in srgb, #7299e7 28%, transparent);\n border-radius: 8px;\n background: color-mix(in srgb, #6b9eff 5%, transparent);\n color: #4673bc;\n cursor: not-allowed;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions button:nth-child(2) {\n color: #38846e;\n border-color: color-mix(in srgb, #4fba9a 25%, transparent);\n background: color-mix(in srgb, #4fba9a 5%, transparent);\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions svg {\n width: 23px;\n height: 23px;\n margin-top: 3px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions strong {\n display: block;\n font-size: 14px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions small {\n display: block;\n margin-top: 6px;\n line-height: 1.6;\n font-size: 12px;\n color: var(--dsw-alias-label-secondary, #69788a);\n}\n.-cerbur-clutch-dsh-worktree-dashboardStartActions em {\n display: block;\n font-size: 10px;\n font-style: normal;\n margin-top: 10px;\n opacity: 0.75;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder {\n padding: 26px 20px;\n min-height: 177px;\n border: 1px dashed var(--dsw-alias-border-l3, #dfe4ed);\n border-radius: 7px;\n background: var(--dsw-alias-interactive-bg-hover, #f7f8fa);\n text-align: center;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder > svg {\n display: block;\n margin: 0 auto 10px;\n width: 25px;\n height: 25px;\n color: #929cac;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder strong {\n font-size: 13px;\n font-weight: 500;\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionPlaceholder p {\n max-width: 310px;\n margin: 7px auto 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardEmpty {\n display: flex;\n align-items: center;\n justify-content: center;\n min-height: 78px;\n padding: 10px 8px;\n text-align: center;\n}\n.-cerbur-clutch-dsh-worktree-dashboardEmpty p {\n max-width: 300px;\n margin: 0;\n line-height: 1.7;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts {\n margin: 8px 0 14px;\n font-size: 12px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts > div {\n display: grid;\n grid-template-columns: minmax(90px, 0.85fr) minmax(0, 1fr) 29px;\n gap: 12px;\n align-items: center;\n padding: 11px 0;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #eef0f5);\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts > div:last-child {\n border: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts dt {\n grid-column: 1;\n min-width: 0;\n color: var(--dsw-alias-label-secondary, #788191);\n /* Prefer normal break points (including trailing `/` and `-`) first. */\n overflow-wrap: break-word;\n word-break: normal;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFacts dd {\n grid-column: 2;\n min-width: 0;\n margin: 0;\n text-align: right;\n /* Only split an unbreakable value after natural opportunities are exhausted. */\n overflow-wrap: break-word;\n word-break: normal;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFactAction {\n display: flex;\n grid-column: 3;\n align-items: center;\n justify-content: flex-end;\n min-width: 29px;\n min-height: 29px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHeaderAside .-cerbur-clutch-dsh-worktree-dashboardFacts > div {\n padding: 4px 0;\n border: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardHistorical {\n color: var(--dsw-alias-label-secondary, #788191);\n}\n.-cerbur-clutch-dsh-worktree-dashboardIconButton:disabled {\n color: var(--dsw-alias-label-secondary, #788191);\n cursor: not-allowed;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineModal {\n box-sizing: border-box;\n width: min(440px, calc(100vw - 48px));\n max-height: calc(100vh - 48px);\n max-height: calc(100dvh - 48px);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineModalContent {\n box-sizing: border-box;\n min-height: 0;\n overflow-y: auto;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselinePicker {\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n gap: 8px;\n width: 100%;\n min-width: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineSearch {\n box-sizing: border-box;\n flex: none;\n display: flex;\n width: 100%;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOptions {\n box-sizing: border-box;\n display: flex;\n flex: none;\n flex-direction: column;\n width: 100%;\n min-width: min(220px, 100%);\n max-width: min(420px, calc(100vw - 32px));\n /* Constant frame: six rows on compact windows, seven on normal ones. Search\n swaps the rows inside this fixed box, so the modal never resizes. */\n height: clamp(258px, 48vh, 300px);\n height: clamp(258px, 48dvh, 300px);\n padding: 4px;\n overflow-y: auto;\n overscroll-behavior: contain;\n border: 0;\n border-radius: 20px;\n background: var(--dsw-specific-menu, var(--dsw-alias-bg-layer-3, #fff));\n --dsw-elevation-stroke-color: var(--dsw-alias-border-l1);\n --dsh-scrollbar-thumb: var(--dsw-alias-scrollbar-bg-l2);\n --dsh-scrollbar-thumb-hover: var(--dsw-alias-scrollbar-hover-l2);\n box-shadow: var(--dsw-elevation-prominent, 0 8px 24px rgb(25 33 47 / 12%));\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineList {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption {\n box-sizing: border-box;\n display: flex;\n align-items: center;\n gap: 8px;\n width: 100%;\n min-height: 40px;\n padding: 8px 10px;\n border: 0;\n border-radius: 10px;\n outline: none;\n background: transparent;\n color: var(--dsw-alias-label-primary, #19212f);\n text-align: left;\n cursor: pointer;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption:hover,\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption[data-highlighted='true'],\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption[aria-selected='true'] {\n background: var(--dsw-alias-interactive-bg-hover, #f0f3f8);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: -2px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption > svg {\n width: 16px;\n height: 16px;\n color: var(--dsw-alias-label-secondary, #788191);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOption[aria-selected='true'] > svg:last-child {\n color: var(--dsw-alias-label-primary, #19212f);\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineOptionLabel {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineEmpty {\n display: flex;\n flex: 1;\n align-items: center;\n justify-content: center;\n padding: 8px 10px;\n color: var(--dsw-alias-label-secondary, #788191);\n text-align: center;\n}\n/* Zero-height anchor: the save error floats over the list instead of growing\n the modal, so the frame keeps its size in every state. */\n.-cerbur-clutch-dsh-worktree-dashboardBaselineStatus {\n position: relative;\n box-sizing: border-box;\n min-height: 0;\n}\n.-cerbur-clutch-dsh-worktree-dashboardBaselineError {\n position: absolute;\n right: 4px;\n bottom: 12px;\n left: 4px;\n z-index: 1;\n box-sizing: border-box;\n padding: 6px 10px;\n border-radius: 10px;\n background: var(--dsw-alias-bg-layer-2, #fff);\n background: color-mix(\n in srgb,\n var(--dsw-alias-state-error-label, #bd5d43) 10%,\n var(--dsw-alias-bg-layer-2, #fff)\n );\n box-shadow:\n inset 0 0 0 1px color-mix(in srgb, var(--dsw-alias-state-error-label, #bd5d43) 32%, transparent),\n var(--dsw-elevation-prominent, 0 8px 24px rgb(25 33 47 / 12%));\n color: var(--dsw-alias-state-error-label, #bd5d43);\n font-size: 12px;\n line-height: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardLink {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n width: 100%;\n background: transparent;\n border: 1px solid var(--dsw-alias-border-l3, #e2e6ed);\n border-radius: 6px;\n padding: 7px 10px;\n font-size: 12px !important;\n color: inherit;\n cursor: pointer;\n margin-top: 8px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardLink:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f5f7fa);\n}\n.-cerbur-clutch-dsh-worktree-dashboardQuickActions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 16px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardQuickActions .-cerbur-clutch-dsh-worktree-dashboardButton {\n justify-content: flex-start;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n min-height: 390px;\n padding: 40px 24px;\n text-align: center;\n border: 1px dashed var(--dsw-alias-border-l3, #dde3ec);\n border-radius: 11px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder > svg {\n width: 36px;\n height: 36px;\n color: #7c9bcf;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder h2 {\n font-size: 20px;\n font-weight: 600;\n margin: 16px 0 4px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardTabPlaceholder p {\n max-width: 420px;\n font-size: 13px;\n color: var(--dsw-alias-label-secondary, #7b8596);\n margin: 8px 0 18px;\n}\n.-cerbur-clutch-dsh-worktree-dashboardFooter {\n margin: 23px 0 0;\n text-align: center;\n font-size: 11px;\n color: var(--dsw-alias-label-secondary, #8a92a0);\n}\n\n@container (max-width: 820px) {\n .-cerbur-clutch-dsh-worktree-dashboardPage {\n padding: 20px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardHeader {\n grid-template-columns: minmax(0, 1fr);\n gap: 12px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardHeaderAside {\n display: flex;\n }\n .-cerbur-clutch-dsh-worktree-dashboardGrid {\n grid-template-columns: minmax(0, 1fr);\n }\n .-cerbur-clutch-dsh-worktree-dashboardTabs {\n gap: 18px;\n }\n}\n\n@container (max-width: 440px) {\n .-cerbur-clutch-dsh-worktree-dashboardPage {\n padding: 16px 12px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardTitleRow h1 {\n font-size: 22px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardStartActions {\n grid-template-columns: minmax(0, 1fr);\n }\n .-cerbur-clutch-dsh-worktree-dashboardCard,\n .-cerbur-clutch-dsh-worktree-dashboardStart {\n padding: 16px;\n }\n .-cerbur-clutch-dsh-worktree-dashboardTopline {\n gap: 10px;\n align-items: flex-start;\n }\n}\n.-cerbur-clutch-dsh-worktree-dashboardInstructionsText {\n white-space: pre-wrap;\n overflow-wrap: anywhere;\n max-height: 240px;\n overflow: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardInstructionsInput {\n box-sizing: border-box;\n width: 100%;\n resize: vertical;\n padding: 10px;\n border: 1px solid var(--dsw-alias-border-l4);\n border-radius: 8px;\n background: var(--dsw-alias-bg-base);\n color: var(--dsw-alias-label-primary);\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-dashboardInstructionActions {\n display: flex;\n gap: 8px;\n margin-top: 8px;\n}\n";
|
|
7955
7993
|
const styleId$1 = "@cerbur/clutch-dsh-worktree/dashboard.css";
|
|
7956
7994
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/dashboard.css\"]") === null) {
|
|
@@ -8241,7 +8279,7 @@ window.__ModuleLoader__.load({
|
|
|
8241
8279
|
});
|
|
8242
8280
|
}
|
|
8243
8281
|
//#endregion
|
|
8244
|
-
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/
|
|
8282
|
+
//#region \0clutch-dsh-worktree-css:/Users/yuancheng/.dsh/clutch-dsh-worktree/worktree/wt_12c44ccd600c/packages/clutch-dsh-worktree/src/client/dashboard/git/worktree-git.css.mjs
|
|
8245
8283
|
const css = ".-cerbur-clutch-dsh-worktree-gitPanel {\n min-width: 0;\n min-height: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeader {\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 20px;\n margin-bottom: 18px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeader h2 {\n margin: 0;\n font-size: 18px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitPanelHeading {\n min-width: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineSelector {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n margin-top: 10px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineSelector select {\n min-width: 180px;\n max-width: min(360px, 60vw);\n padding: 5px 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-primary, #273142);\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineSelector select:disabled {\n cursor: wait;\n opacity: 0.7;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt {\n padding: 22px;\n border: 1px dashed var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 10px;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt strong {\n display: block;\n margin-bottom: 6px;\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselinePrompt p {\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts {\n display: flex;\n flex-wrap: wrap;\n gap: 8px 20px;\n margin: 10px 0 0;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts > div {\n display: flex;\n gap: 6px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts dt::after {\n content: ':';\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts dd {\n margin: 0;\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitBaselineFacts code {\n margin-left: 4px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDerived {\n margin-left: 7px;\n color: var(--dsw-alias-state-warn-label, #9a6e22);\n}\n\n.-cerbur-clutch-dsh-worktree-gitRefresh {\n flex: none;\n padding: 6px 11px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: inherit;\n cursor: pointer;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitRefresh:disabled {\n color: var(--dsw-alias-label-secondary, #7d8795);\n cursor: wait;\n}\n\n/*\n * One 3x3 grid carries both layouts: commit and changed-file panes sit around a\n * row divider, the diff sits beside them across a column divider. Wide layouts\n * place the stack in the left column, narrow layouts place all three panes on\n * three rows. Both shares are custom properties the dividers drag, and both are\n * clamped so each pane keeps a usable size.\n */\n.-cerbur-clutch-dsh-worktree-gitColumns {\n /* Keep the Git surface bounded by the viewport, never by its data volume. */\n --git-columns-height: clamp(360px, calc(100vh - 300px), 560px);\n --git-columns-height: clamp(360px, calc(100dvh - 300px), 560px);\n /* Leading-pane shares: the row divider and the column divider drag these. */\n --git-rows-top: 45%;\n --git-columns-left: 38%;\n display: grid;\n grid-template-columns:\n minmax(240px, min(var(--git-columns-left), calc(100% - 247px)))\n 7px\n minmax(240px, 1fr);\n grid-template-rows:\n minmax(140px, min(var(--git-rows-top), calc(100% - 147px)))\n 7px\n minmax(140px, 1fr);\n height: var(--git-columns-height);\n min-height: 0;\n border: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-radius: 10px;\n overflow: hidden;\n resize: none;\n}\n\n/* Wide: commits over changed files in the left column, diff down the right column. */\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='commits'] {\n grid-area: 1 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n grid-area: 2 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='changed-files'] {\n grid-area: 3 / 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n grid-area: 1 / 2 / -1 / 3;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='diff'] {\n grid-area: 1 / 3 / -1 / -1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--dsw-alias-bg-base, #fff);\n touch-action: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter::before {\n content: '';\n border-radius: 999px;\n background: var(--dsw-alias-border-l2, #cbd2dc);\n transition: background 0.15s ease;\n}\n\n/* Widen the grab area without moving the visible divider line. */\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter::after {\n content: '';\n position: absolute;\n}\n\n/* Both divider panes draw a full border box, so the pane above and the pane below\n (or the pane left and the pane right) are each closed by their own edge. */\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n box-sizing: border-box;\n height: 7px;\n cursor: row-resize;\n border-top: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows']::before {\n width: 30px;\n height: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows']::after {\n inset: -3px 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n box-sizing: border-box;\n width: 7px;\n cursor: col-resize;\n border-left: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n border-right: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns']::before {\n width: 2px;\n height: 30px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns']::after {\n inset: 0 -3px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:hover::before,\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:focus-visible::before,\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter[data-dashboard-git-splitting='true']::before {\n background: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnSplitter:focus-visible {\n outline: 2px solid #497cd4;\n outline-offset: -2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumn {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex-direction: column;\n overflow: hidden;\n background: var(--dsw-alias-bg-base, #fff);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader {\n display: flex;\n flex: none;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n min-height: 43px;\n padding: 12px 13px 9px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader h3 {\n margin: 0;\n color: var(--dsw-alias-label-primary, #273142);\n font-size: 12px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader span,\n.-cerbur-clutch-dsh-worktree-gitColumnHeader code {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderMeta {\n display: flex;\n min-width: 0;\n align-items: baseline;\n justify-content: flex-end;\n gap: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeader .-cerbur-clutch-dsh-worktree-gitLineStats,\n.-cerbur-clutch-dsh-worktree-gitColumnHeader .-cerbur-clutch-dsh-worktree-gitLineStats > span {\n overflow: visible;\n text-overflow: clip;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderUnknown {\n color: var(--dsw-alias-label-tertiary, #8a94a3);\n}\n\n/* Right side of the commits header: the truncation note and the multi-select switch. */\n.-cerbur-clutch-dsh-worktree-gitColumnHeaderControls {\n display: flex;\n min-width: 0;\n align-self: center;\n align-items: center;\n justify-content: flex-end;\n gap: 10px;\n}\n\n/*\n * A native checkbox owns the state, focus and keyboard behavior; the track and\n * thumb below are presentational and follow :checked through the sibling selector.\n */\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect {\n position: relative;\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 6px;\n cursor: pointer;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input {\n position: absolute;\n width: 1px;\n height: 1px;\n margin: -1px;\n padding: 0;\n overflow: hidden;\n clip-path: inset(50%);\n border: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n position: relative;\n display: block;\n flex: none;\n width: 24px;\n height: 14px;\n border-radius: 999px;\n background: var(--dsw-alias-border-l2, #cbd2dc);\n transition: background 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelectThumb {\n position: absolute;\n top: 2px;\n left: 2px;\n width: 10px;\n height: 10px;\n border-radius: 50%;\n background: var(--dsw-alias-bg-base, #fff);\n box-shadow: 0 1px 2px rgb(15 23 42 / 25%);\n transition: transform 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:checked + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n background: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:checked + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectThumb {\n transform: translateX(10px);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMultiSelect input:focus-visible + .-cerbur-clutch-dsh-worktree-gitCommitMultiSelectTrack {\n outline: 2px solid #497cd4;\n outline-offset: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton {\n display: flex;\n width: calc(100% - 10px);\n flex-direction: column;\n gap: 3px;\n margin: 5px;\n padding: 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-primary, #273142);\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton:hover,\n.-cerbur-clutch-dsh-worktree-gitSummaryButton[aria-pressed='true'] {\n border-color: var(--dsw-alias-state-business-primary, #467bc8);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton span {\n font-size: 12px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryButton small {\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle {\n display: flex;\n align-items: flex-start;\n gap: 7px;\n width: calc(100% - 20px);\n margin: 3px 10px 8px;\n color: var(--dsw-alias-label-primary, #273142);\n cursor: pointer;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle input {\n flex: none;\n margin: 2px 0 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle span {\n display: flex;\n min-width: 0;\n flex-direction: column;\n gap: 2px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle strong {\n font-weight: 560;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle small {\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle input:disabled,\n.-cerbur-clutch-dsh-worktree-gitSummaryToggle:has(input:disabled) {\n cursor: wait;\n opacity: 0.65;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSelectionToolbar {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 5px 10px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSelectionToolbar button {\n border: 0;\n background: transparent;\n color: var(--dsw-alias-state-business-primary, #467bc8);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList {\n display: block;\n flex: 1 1 auto;\n min-height: 0;\n overflow-x: hidden;\n overflow-y: auto;\n overscroll-behavior: contain;\n scrollbar-gutter: stable;\n list-style: none;\n padding: 5px;\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList {\n overflow-x: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList > li,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderChildren,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderChildren > li {\n width: max-content;\n min-width: 100%;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderChildren {\n list-style: none;\n padding: 0 0 0 12px;\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton {\n display: flex;\n align-items: center;\n gap: 6px;\n padding: 7px 8px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton:hover,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitFolderButton:focus-visible {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderIcon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderIcon > svg {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFolderName {\n min-width: max-content;\n overflow: visible;\n text-overflow: clip;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button {\n display: block;\n border: 0;\n border-radius: 6px;\n background: transparent;\n color: inherit;\n text-align: left;\n cursor: pointer;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button {\n display: grid;\n width: 100%;\n grid-template-columns: 15px minmax(0, 1fr);\n padding: 9px 8px;\n}\n\n/* Without the multi-select marks a row has a single column, so the subject and meta align with it. */\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] button {\n grid-template-columns: minmax(0, 1fr);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] .-cerbur-clutch-dsh-worktree-gitCommitSubject,\n.-cerbur-clutch-dsh-worktree-gitCommitList[data-dashboard-git-commit-multiselect='off'] .-cerbur-clutch-dsh-worktree-gitCommitMeta {\n grid-column: 1;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitSelectionMark {\n grid-row: 1 / span 2;\n color: var(--dsw-alias-state-business-primary, #467bc8);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button:hover,\n.-cerbur-clutch-dsh-worktree-gitCommitList button[aria-selected='true'],\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button:hover,\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button[aria-selected='true'] {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[aria-selected='true'] {\n box-shadow: inset 2px 0 var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[data-dashboard-git-commit-kind='working-tree'] {\n background: var(--dsw-alias-state-warn-tertiary, #f8f5ed);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitList button[data-dashboard-git-commit-kind='working-tree'][aria-selected='true'] {\n box-shadow: inset 2px 0 var(--dsw-alias-state-warn-primary, #b18435);\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitSubject {\n grid-column: 2;\n display: block;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta {\n grid-column: 2;\n display: flex;\n gap: 7px;\n margin-top: 4px;\n overflow: hidden;\n color: var(--dsw-alias-label-secondary, #7c8594);\n font-size: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta span,\n.-cerbur-clutch-dsh-worktree-gitCommitMeta time {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitMeta time {\n margin-left: auto;\n}\n\n.-cerbur-clutch-dsh-worktree-gitCommitWorkingTree {\n color: var(--dsw-alias-state-warn-label, #8a6728);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList button {\n display: flex;\n width: max-content;\n min-width: 100%;\n box-sizing: border-box;\n align-items: flex-start;\n gap: 7px;\n padding: 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileIcon {\n display: inline-flex;\n flex: none;\n align-items: center;\n justify-content: center;\n width: 16px;\n height: 16px;\n color: var(--dsw-alias-label-secondary, #6f7887);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileIconGlyph {\n width: 16px;\n height: 16px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath {\n min-width: max-content;\n flex: 0 0 auto;\n overflow: visible;\n text-overflow: clip;\n white-space: nowrap;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='added'] {\n color: var(--dsw-alias-state-success-primary, #23845f);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='deleted'] {\n color: var(--dsw-alias-state-error-secondary, #bd5d55);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='modified'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='renamed'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='copied'],\n.-cerbur-clutch-dsh-worktree-gitFilePath[data-status='type-changed'] {\n color: var(--dsw-alias-state-business-primary, #467bc8);\n}\n\n.-cerbur-clutch-dsh-worktree-gitFileContributors {\n flex: none;\n max-width: 9em;\n overflow: hidden;\n color: var(--dsw-alias-label-tertiary, #65758d);\n font-size: 9px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineStats {\n display: inline-flex;\n flex: none;\n gap: 6px;\n font-variant-numeric: tabular-nums;\n white-space: nowrap;\n}\n\n.-cerbur-clutch-dsh-worktree-gitChangedFileList .-cerbur-clutch-dsh-worktree-gitLineStats {\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineAdded {\n color: var(--dsw-alias-state-success-primary, #23845f);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitLineRemoved {\n color: var(--dsw-alias-state-error-secondary, #bd5d55);\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffContainer {\n display: flex;\n flex: 1 1 auto;\n flex-direction: column;\n min-width: 0;\n min-height: 0;\n overflow: hidden;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffToolbar {\n display: flex;\n flex: none;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n padding: 6px 12px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #edf0f4);\n background: var(--dsw-alias-bg-base, #ffffff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffPath {\n display: inline-flex;\n align-items: center;\n gap: 6px;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n font-family: ui-monospace, SFMono-Regular, Consolas, monospace;\n color: var(--dsw-alias-label-primary, #263342);\n font-weight: 560;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar {\n display: inline-flex;\n flex: none;\n align-items: center;\n gap: 5px;\n padding: 3px 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 4px;\n background: var(--dsw-alias-bg-base, #ffffff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 11px;\n line-height: 16px;\n cursor: pointer;\n transition: all 0.15s ease;\n}\n\n/* The square 16px arrow keeps its aspect ratio; pin the box so it centers on the label. */\n.-cerbur-clutch-dsh-worktree-gitDiffOpenIcon {\n flex: none;\n width: 14px;\n height: 14px;\n color: var(--dsw-alias-label-tertiary, #8a94a3);\n transition: color 0.15s ease;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar:hover {\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-primary, #263342);\n border-color: var(--dsw-alias-border-l2, #cbd2dc);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffOpenInSidebar:hover .-cerbur-clutch-dsh-worktree-gitDiffOpenIcon {\n color: var(--dsw-alias-label-primary, #263342);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiff {\n display: block;\n flex: 1 1 auto;\n min-width: 0;\n min-height: 0;\n overflow: auto;\n padding: 7px 0 12px;\n background: var(--dsw-alias-markdown-code-block, #fafbfc);\n color: var(--dsw-alias-label-primary, #263342);\n font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegment {\n margin-bottom: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegmentHeader {\n padding: 5px 12px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n background: var(--dsw-alias-interactive-bg-hover, #f1f3f6);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 10px;\n font-weight: 620;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffSegmentHeader code {\n color: var(--dsw-alias-label-primary, #273142);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffHunk {\n margin-bottom: 10px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffHunkHeader {\n padding: 3px 12px;\n background: var(--dsw-alias-markdown-code-block-banner, #edf3fb);\n color: var(--dsw-alias-state-business-primary, #4a70a1);\n box-shadow: inset 0 1px 0 var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.04)), inset 0 -1px 0 var(--dsw-alias-border-l1, rgba(0, 0, 0, 0.04));\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLine {\n display: grid;\n grid-template-columns: 44px 44px minmax(0, 1fr);\n min-width: max-content;\n padding-right: 12px;\n white-space: pre;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLineadd {\n background: color-mix(\n in srgb,\n var(--dsw-alias-state-success-primary, #23845f) 18%,\n var(--dsw-alias-markdown-code-block, #fafbfc)\n );\n box-shadow: inset 2px 0 var(--dsw-alias-state-success-primary, #23845f);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLinedelete {\n background: color-mix(\n in srgb,\n var(--dsw-alias-state-error-secondary, #bd5d55) 18%,\n var(--dsw-alias-markdown-code-block, #fafbfc)\n );\n box-shadow: inset 2px 0 var(--dsw-alias-state-error-secondary, #bd5d55);\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLineNumber {\n padding-right: 8px;\n color: var(--dsw-alias-label-tertiary, #9aa3af);\n text-align: right;\n user-select: none;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffLine code {\n min-width: 0;\n color: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitSrOnly {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffEmpty,\n.-cerbur-clutch-dsh-worktree-gitDiffMessage,\n.-cerbur-clutch-dsh-worktree-gitEmpty,\n.-cerbur-clutch-dsh-worktree-gitLoading,\n.-cerbur-clutch-dsh-worktree-gitUnavailable,\n.-cerbur-clutch-dsh-worktree-gitError {\n padding: 24px 16px;\n color: var(--dsw-alias-label-secondary, #727d8d);\n font-size: 12px;\n text-align: center;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffMessage,\n.-cerbur-clutch-dsh-worktree-gitUnavailable {\n min-height: 150px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitUnavailable strong {\n display: block;\n margin-bottom: 7px;\n color: var(--dsw-alias-label-primary, #273142);\n font-size: 14px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitUnavailable p {\n max-width: 500px;\n margin: 0 auto;\n line-height: 1.7;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 10px;\n padding: 9px 12px;\n color: var(--dsw-alias-state-error-primary, #ae5c4c);\n text-align: left;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError p {\n margin: 0;\n}\n\n.-cerbur-clutch-dsh-worktree-gitError button {\n flex: none;\n border: 1px solid currentColor;\n border-radius: 5px;\n background: transparent;\n color: inherit;\n cursor: pointer;\n font-size: 11px;\n padding: 3px 8px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffFolded {\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: center;\n gap: 8px;\n padding: 10px 12px;\n border-top: 1px dashed var(--dsw-alias-border-l3, #dfe3ea);\n background: var(--dsw-alias-bg-base, #fff);\n color: var(--dsw-alias-label-secondary, #6f7887);\n font-size: 12px;\n}\n\n.-cerbur-clutch-dsh-worktree-gitDiffShowAll {\n padding: 2px 8px;\n border: 1px solid var(--dsw-alias-border-l3, #dfe3ea);\n border-radius: 6px;\n background: transparent;\n color: var(--dsw-alias-label-primary, #273142);\n cursor: pointer;\n font: inherit;\n}\n\n.-cerbur-clutch-dsh-worktree-gitRawDiff {\n display: block;\n flex: 1 1 auto;\n min-height: 0;\n max-height: none;\n overflow: auto;\n padding: 12px;\n margin: 0;\n white-space: pre;\n background: var(--dsw-alias-markdown-code-block, #fafbfc);\n color: var(--dsw-alias-label-primary, #263342);\n font: 11px/1.65 ui-monospace, SFMono-Regular, Consolas, monospace;\n}\n\n@container (min-width: 901px) {\n .-cerbur-clutch-dsh-worktree-gitColumns {\n /* Two stacked panes need more vertical room than three side-by-side panes. */\n --git-columns-height: clamp(440px, calc(100vh - 300px), 720px);\n --git-columns-height: clamp(440px, calc(100dvh - 300px), 720px);\n }\n}\n\n@container (max-width: 900px) {\n /* Narrow layout keeps the two-row arrangement: commits and changed files side by\n side on the first row, with the summary diff across the second row. Both\n dividers move with the panes, so either axis stays adjustable. */\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='commits'] {\n grid-area: 1 / 1;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='columns'] {\n grid-area: 1 / 2;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='changed-files'] {\n grid-area: 1 / 3;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-splitter='rows'] {\n grid-area: 2 / 1 / 3 / -1;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > [data-dashboard-git-pane='diff'] {\n grid-area: 3 / 1 / -1 / -1;\n }\n}\n\n@container (max-width: 520px) {\n .-cerbur-clutch-dsh-worktree-gitPanelHeader {\n flex-direction: column;\n gap: 10px;\n }\n .-cerbur-clutch-dsh-worktree-gitRefresh {\n align-self: flex-end;\n }\n .-cerbur-clutch-dsh-worktree-gitColumns {\n display: block;\n height: auto;\n min-height: 0;\n }\n .-cerbur-clutch-dsh-worktree-gitColumnSplitter {\n display: none;\n }\n .-cerbur-clutch-dsh-worktree-gitColumn {\n height: clamp(260px, calc(100vh - 360px), 360px);\n height: clamp(260px, calc(100dvh - 360px), 360px);\n min-height: 260px;\n border-bottom: 1px solid var(--dsw-alias-border-l3, #e5e8ef);\n }\n .-cerbur-clutch-dsh-worktree-gitColumns > .-cerbur-clutch-dsh-worktree-gitColumn:last-child {\n border-bottom: 0;\n }\n}\n";
|
|
8246
8284
|
const styleId = "@cerbur/clutch-dsh-worktree/worktree-git.css";
|
|
8247
8285
|
if (typeof document !== "undefined" && document.querySelector("style[data-plugin-css=\"@cerbur/clutch-dsh-worktree/worktree-git.css\"]") === null) {
|
|
@@ -8403,7 +8441,7 @@ window.__ModuleLoader__.load({
|
|
|
8403
8441
|
children: [(0, react_jsx_runtime.jsx)("span", {
|
|
8404
8442
|
className: worktree_git_css_default.gitFolderIcon,
|
|
8405
8443
|
"aria-hidden": "true",
|
|
8406
|
-
children: collapsed ? (0, react_jsx_runtime.jsx)(
|
|
8444
|
+
children: collapsed ? (0, react_jsx_runtime.jsx)(IconFolderClose16, {}) : (0, react_jsx_runtime.jsx)(IconFolderOpen16, {})
|
|
8407
8445
|
}), (0, react_jsx_runtime.jsx)("span", {
|
|
8408
8446
|
className: worktree_git_css_default.gitFolderName,
|
|
8409
8447
|
title: node.path,
|
|
@@ -8783,7 +8821,7 @@ window.__ModuleLoader__.load({
|
|
|
8783
8821
|
onClick: () => onOpenFile(diff.path),
|
|
8784
8822
|
title: t("dashboard.git.openInSidebar"),
|
|
8785
8823
|
"data-dashboard-git-open-file": diff.path,
|
|
8786
|
-
children: [(0, react_jsx_runtime.jsx)(
|
|
8824
|
+
children: [(0, react_jsx_runtime.jsx)(IconRightUpOutline16, {
|
|
8787
8825
|
size: 14,
|
|
8788
8826
|
className: worktree_git_css_default.gitDiffOpenIcon
|
|
8789
8827
|
}), (0, react_jsx_runtime.jsx)("span", { children: t("dashboard.git.openInSidebar") })]
|
|
@@ -10510,7 +10548,7 @@ window.__ModuleLoader__.load({
|
|
|
10510
10548
|
"aria-expanded": draft !== void 0,
|
|
10511
10549
|
disabled: disabled || options.length === 0,
|
|
10512
10550
|
onClick: openEditor,
|
|
10513
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
10551
|
+
children: (0, react_jsx_runtime.jsx)(IconEditOutline16, {})
|
|
10514
10552
|
})
|
|
10515
10553
|
}) : void 0,
|
|
10516
10554
|
children: saved === void 0 ? (0, react_jsx_runtime.jsx)("span", {
|
|
@@ -10545,7 +10583,7 @@ window.__ModuleLoader__.load({
|
|
|
10545
10583
|
"data-dashboard-baseline-modal": true,
|
|
10546
10584
|
children: [
|
|
10547
10585
|
(0, react_jsx_runtime.jsx)(_deepseek_ai_dsh_client_ui_primitives.Input, {
|
|
10548
|
-
icon: (0, react_jsx_runtime.jsx)(
|
|
10586
|
+
icon: (0, react_jsx_runtime.jsx)(IconSearchOutline16, {}),
|
|
10549
10587
|
className: dashboard_css_default.dashboardBaselineSearch,
|
|
10550
10588
|
"aria-label": t("dashboard.searchBranches"),
|
|
10551
10589
|
role: "combobox",
|
|
@@ -10582,12 +10620,12 @@ window.__ModuleLoader__.load({
|
|
|
10582
10620
|
"aria-selected": branch.name === draft,
|
|
10583
10621
|
onClick: () => selectOption(index),
|
|
10584
10622
|
children: [
|
|
10585
|
-
(0, react_jsx_runtime.jsx)(
|
|
10623
|
+
(0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
10586
10624
|
(0, react_jsx_runtime.jsx)("span", {
|
|
10587
10625
|
className: dashboard_css_default.dashboardBaselineOptionLabel,
|
|
10588
10626
|
children: branch.name
|
|
10589
10627
|
}),
|
|
10590
|
-
branch.name === draft && (0, react_jsx_runtime.jsx)(
|
|
10628
|
+
branch.name === draft && (0, react_jsx_runtime.jsx)(IconCheckOutline16, {})
|
|
10591
10629
|
]
|
|
10592
10630
|
}, branch.name))
|
|
10593
10631
|
}) : (0, react_jsx_runtime.jsx)("div", {
|
|
@@ -10745,7 +10783,7 @@ window.__ModuleLoader__.load({
|
|
|
10745
10783
|
return (0, react_jsx_runtime.jsx)("li", { children: (0, react_jsx_runtime.jsxs)("button", {
|
|
10746
10784
|
type: "button",
|
|
10747
10785
|
"data-dashboard-session": sessionId,
|
|
10748
|
-
"aria-current": sessions
|
|
10786
|
+
"aria-current": currentSessionIdFromList(sessions) === sessionId ? "page" : void 0,
|
|
10749
10787
|
onClick: () => onOpenSession(sessionId),
|
|
10750
10788
|
children: [
|
|
10751
10789
|
(0, react_jsx_runtime.jsx)(DashboardIcon, { kind: "sessions" }),
|
|
@@ -10830,7 +10868,7 @@ window.__ModuleLoader__.load({
|
|
|
10830
10868
|
onOpenSidebar();
|
|
10831
10869
|
setRightSidebarOpen(true);
|
|
10832
10870
|
},
|
|
10833
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
10871
|
+
children: (0, react_jsx_runtime.jsx)(IconPanelLeftOutline16, {})
|
|
10834
10872
|
})
|
|
10835
10873
|
})]
|
|
10836
10874
|
})]
|
|
@@ -10856,7 +10894,7 @@ window.__ModuleLoader__.load({
|
|
|
10856
10894
|
}
|
|
10857
10895
|
} : void 0,
|
|
10858
10896
|
children: [
|
|
10859
|
-
(0, react_jsx_runtime.jsx)(
|
|
10897
|
+
(0, react_jsx_runtime.jsx)(IconBranchOutline16, {}),
|
|
10860
10898
|
(0, react_jsx_runtime.jsx)("h1", {
|
|
10861
10899
|
id: `${id}-title`,
|
|
10862
10900
|
ref: heading,
|
|
@@ -10894,7 +10932,7 @@ window.__ModuleLoader__.load({
|
|
|
10894
10932
|
onClick: () => {
|
|
10895
10933
|
copyPath();
|
|
10896
10934
|
},
|
|
10897
|
-
children: (0, react_jsx_runtime.jsx)(
|
|
10935
|
+
children: (0, react_jsx_runtime.jsx)(IconCopyOutline16, {})
|
|
10898
10936
|
})
|
|
10899
10937
|
]
|
|
10900
10938
|
}),
|
|
@@ -10982,7 +11020,7 @@ window.__ModuleLoader__.load({
|
|
|
10982
11020
|
(0, react_jsx_runtime.jsxs)("section", {
|
|
10983
11021
|
className: dashboard_css_default.dashboardStart,
|
|
10984
11022
|
children: [
|
|
10985
|
-
(0, react_jsx_runtime.jsxs)("h2", { children: [(0, react_jsx_runtime.jsx)(
|
|
11023
|
+
(0, react_jsx_runtime.jsxs)("h2", { children: [(0, react_jsx_runtime.jsx)(IconBranchOutline16, {}), t("dashboard.start")] }),
|
|
10986
11024
|
(0, react_jsx_runtime.jsx)("p", { children: t("dashboard.startDescription") }),
|
|
10987
11025
|
(0, react_jsx_runtime.jsxs)("div", {
|
|
10988
11026
|
className: dashboard_css_default.dashboardStartActions,
|
|
@@ -11606,7 +11644,7 @@ window.__ModuleLoader__.load({
|
|
|
11606
11644
|
function identityFrom(sessions, workspaces) {
|
|
11607
11645
|
const sessionSnapshot = sessions.getSnapshot();
|
|
11608
11646
|
const workspaceSnapshot = workspaces.getSnapshot();
|
|
11609
|
-
const sessionId = sessionSnapshot
|
|
11647
|
+
const sessionId = currentSessionIdFromList(sessionSnapshot);
|
|
11610
11648
|
if (sessionId === void 0) return { workspaceId: deriveRecentWorkspaceId({ items: workspaceSnapshot.items }, sessionSnapshot.byId) };
|
|
11611
11649
|
return {
|
|
11612
11650
|
sessionId,
|
|
@@ -11941,6 +11979,37 @@ window.__ModuleLoader__.load({
|
|
|
11941
11979
|
};
|
|
11942
11980
|
}
|
|
11943
11981
|
//#endregion
|
|
11982
|
+
//#region lib/client/session/session-rename.js
|
|
11983
|
+
/** Rename a listed Session across DSH generations with different retention semantics. */
|
|
11984
|
+
async function renameWorktreeSession(sessions, sessionId, title) {
|
|
11985
|
+
const compatibleSessions = sessions;
|
|
11986
|
+
if (typeof compatibleSessions.using === "function") {
|
|
11987
|
+
const result = await compatibleSessions.using(sessionId, { source: "workspaceOperation" }, (reference) => reference.binding.session.rename(title));
|
|
11988
|
+
if (!result.ok) throw new Error(result.error.message);
|
|
11989
|
+
return;
|
|
11990
|
+
}
|
|
11991
|
+
const session = compatibleSessions.binding(sessionId)?.session;
|
|
11992
|
+
if (session === void 0) throw new Error(`unknown session "${sessionId}"`);
|
|
11993
|
+
const result = await session.rename(title);
|
|
11994
|
+
if (!result.ok) throw new Error(result.error.message);
|
|
11995
|
+
}
|
|
11996
|
+
//#endregion
|
|
11997
|
+
//#region lib/client/session/session-navigation.js
|
|
11998
|
+
/** Use DSH-owned navigation in 1.7; keep the older Session-controller fallback. */
|
|
11999
|
+
function openWorktreeSession(uiWorkspace, sessions, sessionId) {
|
|
12000
|
+
const compatibleUiWorkspace = uiWorkspace;
|
|
12001
|
+
if (typeof compatibleUiWorkspace.openSession === "function") {
|
|
12002
|
+
compatibleUiWorkspace.openSession(sessionId);
|
|
12003
|
+
return;
|
|
12004
|
+
}
|
|
12005
|
+
const legacyOpen = sessions.open;
|
|
12006
|
+
if (typeof legacyOpen === "function") {
|
|
12007
|
+
legacyOpen(sessionId);
|
|
12008
|
+
return;
|
|
12009
|
+
}
|
|
12010
|
+
throw new Error("DSH Client does not expose a Session navigation method");
|
|
12011
|
+
}
|
|
12012
|
+
//#endregion
|
|
11944
12013
|
//#region lib/client/permission/worktree-permission.js
|
|
11945
12014
|
/**
|
|
11946
12015
|
* Coordinate async permission requests with the one in-page confirmation
|
|
@@ -12526,9 +12595,7 @@ window.__ModuleLoader__.load({
|
|
|
12526
12595
|
permission: permissionManager,
|
|
12527
12596
|
confirmFullAccess: permissionManager === void 0 ? void 0 : fullAccessConfirmation.request,
|
|
12528
12597
|
onPermissionResult: reportPermissionNotice,
|
|
12529
|
-
openSession: (sessionId) =>
|
|
12530
|
-
ctx.sessions.open(sessionId);
|
|
12531
|
-
}
|
|
12598
|
+
openSession: (sessionId) => openWorktreeSession(ctx.uiWorkspace, ctx.sessions, sessionId)
|
|
12532
12599
|
});
|
|
12533
12600
|
ctx.effect(() => () => worktreeSessionConnector.dispose(), "clutch-dsh-worktree: Worktree Session connector cleanup");
|
|
12534
12601
|
const openDashboardForSession = (sessionId) => {
|
|
@@ -12646,19 +12713,14 @@ window.__ModuleLoader__.load({
|
|
|
12646
12713
|
worktreeId,
|
|
12647
12714
|
beforeWorktreeId
|
|
12648
12715
|
}),
|
|
12649
|
-
renameSession:
|
|
12650
|
-
const session = ctx.sessions.binding(sessionId)?.session;
|
|
12651
|
-
if (session === void 0) throw new Error(`unknown session "${sessionId}"`);
|
|
12652
|
-
const result = await session.rename(title);
|
|
12653
|
-
if (!result.ok) throw new Error(result.error.message);
|
|
12654
|
-
},
|
|
12716
|
+
renameSession: (sessionId, title) => renameWorktreeSession(ctx.sessions, sessionId, title),
|
|
12655
12717
|
forkSession: (sessionId) => {
|
|
12656
12718
|
if (forkableSessions.fork === void 0) return;
|
|
12657
12719
|
ctx.sessions.fork({
|
|
12658
12720
|
sessionId,
|
|
12659
12721
|
increaseTitle: true
|
|
12660
12722
|
}).then((childId) => {
|
|
12661
|
-
ctx.sessions
|
|
12723
|
+
openWorktreeSession(ctx.uiWorkspace, ctx.sessions, childId);
|
|
12662
12724
|
}).catch(() => {});
|
|
12663
12725
|
},
|
|
12664
12726
|
archiveSession: (sessionId) => ctx.workspaces.archiveSession(sessionId),
|
|
@@ -12668,9 +12730,7 @@ window.__ModuleLoader__.load({
|
|
|
12668
12730
|
retryForkSession: forkCoordinator === void 0 ? void 0 : async (key) => {
|
|
12669
12731
|
await forkCoordinator.retry(key);
|
|
12670
12732
|
},
|
|
12671
|
-
openSession: (sessionId) =>
|
|
12672
|
-
ctx.sessions.open(sessionId);
|
|
12673
|
-
},
|
|
12733
|
+
openSession: (sessionId) => openWorktreeSession(ctx.uiWorkspace, ctx.sessions, sessionId),
|
|
12674
12734
|
onWorktreeForgotten: (input) => {
|
|
12675
12735
|
forkCoordinator?.forgetWorktree(input);
|
|
12676
12736
|
for (const sessionId of input.sessionIds) virtualWorkspaceMembership.removeSession(sessionId);
|