@michengai/dsh-codex-ui 0.2.73 → 0.2.74
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/dist/client.js +21 -5
- package/package.json +1 -1
package/dist/client.js
CHANGED
|
@@ -1160,6 +1160,17 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1160
1160
|
if (!after) return hoveredId;
|
|
1161
1161
|
return index >= ids.length - 1 ? void 0 : ids[index + 1];
|
|
1162
1162
|
}
|
|
1163
|
+
/**
|
|
1164
|
+
* 置顶标题区与首项目的上半区都表示“插到第一项之前”,因此必须共用同一条指示线。
|
|
1165
|
+
* 非空列表把指示线贴到首项目顶部;空列表才使用独立的起始占位线。
|
|
1166
|
+
*/
|
|
1167
|
+
function pinnedHeaderDropIndicator(ids) {
|
|
1168
|
+
const workspaceId = ids[0];
|
|
1169
|
+
return workspaceId === void 0 ? { kind: "empty" } : {
|
|
1170
|
+
kind: "workspace",
|
|
1171
|
+
workspaceId
|
|
1172
|
+
};
|
|
1173
|
+
}
|
|
1163
1174
|
/** 按指定 id 顺序取出对应项;未出现在 ids 中的项丢弃。 */
|
|
1164
1175
|
function orderByIds(items, ids, idOf) {
|
|
1165
1176
|
const byId = new Map(items.map((item) => [idOf(item), item]));
|
|
@@ -1394,6 +1405,7 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1394
1405
|
const pinnedGroups = orderByIds(groups.items, pinnedWorkspaceIds, (workspace) => String(workspace.workspaceId));
|
|
1395
1406
|
const regularGroups = groups.items.filter((workspace) => !projectPinned(workspace.workspaceId));
|
|
1396
1407
|
const pinDragActive = workspaceDragId !== void 0;
|
|
1408
|
+
const pinnedHeaderDrop = pinSlot === "header" ? pinnedHeaderDropIndicator(pinnedGroups.map((workspace) => String(workspace.workspaceId))) : void 0;
|
|
1397
1409
|
const assignedIds = workspaces.items.flatMap((workspace) => workspace.sessionIds.map((id) => String(id)));
|
|
1398
1410
|
const recentIds = ungroupedSessionIds(sessions.ids ?? Object.keys(sessions.byId), sessions.byId, assignedIds, workspaces.archivedSessionIds).sort((left, right) => (sessions.byId[right]?.updatedAt ?? 0) - (sessions.byId[left]?.updatedAt ?? 0));
|
|
1399
1411
|
const run = async (key, action) => {
|
|
@@ -1514,6 +1526,7 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1514
1526
|
y: menu.y
|
|
1515
1527
|
} : void 0;
|
|
1516
1528
|
const isCurrentWorkspace = sessions.current !== void 0 && workspace.visibleIds.includes(sessions.current);
|
|
1529
|
+
const isPinnedHeaderDrop = zone === "pinned" && pinnedHeaderDrop?.kind === "workspace" && pinnedHeaderDrop.workspaceId === String(workspace.workspaceId);
|
|
1517
1530
|
return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1518
1531
|
className: `dcu-wb-project${isCurrentWorkspace ? " dcu-wb-project-current" : ""}`,
|
|
1519
1532
|
onDragOver: (event) => {
|
|
@@ -1557,7 +1570,7 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1557
1570
|
},
|
|
1558
1571
|
children: [
|
|
1559
1572
|
/* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", {
|
|
1560
|
-
className: `dcu-wb-project-head${menuOpen ? " dcu-wb-menu-open" : ""}${workspaceDropId === workspace.workspaceId ? workspaceDropAfter ? " dcu-wb-drop dcu-wb-drop-after" : " dcu-wb-drop" : ""}${workspaceDragId === String(workspace.workspaceId) ? " dcu-wb-dragging" : ""}`,
|
|
1573
|
+
className: `dcu-wb-project-head${menuOpen ? " dcu-wb-menu-open" : ""}${isPinnedHeaderDrop || workspaceDropId === workspace.workspaceId ? workspaceDropAfter && !isPinnedHeaderDrop ? " dcu-wb-drop dcu-wb-drop-after" : " dcu-wb-drop" : ""}${workspaceDragId === String(workspace.workspaceId) ? " dcu-wb-dragging" : ""}`,
|
|
1561
1574
|
role: "treeitem",
|
|
1562
1575
|
"aria-expanded": isExpanded,
|
|
1563
1576
|
tabIndex: 0,
|
|
@@ -1929,7 +1942,11 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1929
1942
|
if (!pinDragActive) return;
|
|
1930
1943
|
event.preventDefault();
|
|
1931
1944
|
event.dataTransfer.dropEffect = "move";
|
|
1932
|
-
if (event.target === event.currentTarget || event.target instanceof Element && event.target.closest(".dcu-wb-section-head") !== null)
|
|
1945
|
+
if (event.target === event.currentTarget || event.target instanceof Element && event.target.closest(".dcu-wb-section-head") !== null) {
|
|
1946
|
+
setPinSlot("header");
|
|
1947
|
+
setWorkspaceDropId(void 0);
|
|
1948
|
+
setWorkspaceDropAfter(false);
|
|
1949
|
+
}
|
|
1933
1950
|
},
|
|
1934
1951
|
onDrop: (event) => {
|
|
1935
1952
|
event.preventDefault();
|
|
@@ -1976,10 +1993,9 @@ header [data-dcu-title-folder] svg,header [data-dcu-title-more] svg{display:bloc
|
|
|
1976
1993
|
className: "dcu-wb-section-body",
|
|
1977
1994
|
"data-open": sectionOpen("pinned"),
|
|
1978
1995
|
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)("div", { children: [
|
|
1979
|
-
|
|
1980
|
-
className: `dcu-wb-pin-start${
|
|
1996
|
+
pinDragActive && pinnedGroups.length === 0 && /* @__PURE__ */ (0, react_jsx_runtime.jsx)("div", {
|
|
1997
|
+
className: `dcu-wb-pin-start${pinnedHeaderDrop?.kind === "empty" ? " dcu-wb-drop" : ""}`,
|
|
1981
1998
|
onDragOver: (event) => {
|
|
1982
|
-
if (!pinDragActive) return;
|
|
1983
1999
|
event.preventDefault();
|
|
1984
2000
|
event.stopPropagation();
|
|
1985
2001
|
event.dataTransfer.dropEffect = "move";
|