@volter-ai-dev/supercode-ui 0.1.25 → 0.1.27
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/components.mjs +27 -7
- package/core.mjs +1 -1
- package/embed.mjs +27 -7
- package/index.d.ts +2 -0
- package/messenger.mjs +27 -7
- package/package.json +1 -1
- package/sessions.mjs +26 -6
- package/styles.css +6 -4
package/components.mjs
CHANGED
|
@@ -667,7 +667,7 @@ function normalizeUiState(value) {
|
|
|
667
667
|
savedDraft: string(raw.savedDraft),
|
|
668
668
|
attention: Array.isArray(raw.attention) ? raw.attention.flatMap((candidate) => {
|
|
669
669
|
const item = record(candidate);
|
|
670
|
-
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {} }] : [];
|
|
670
|
+
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {}, ...Number.isSafeInteger(item.unreadCount) && item.unreadCount > 0 ? { unreadCount: item.unreadCount } : {} }] : [];
|
|
671
671
|
}) : [],
|
|
672
672
|
sessions: readSessions(raw.sessions),
|
|
673
673
|
attached: readAttached(raw.attached),
|
|
@@ -1992,19 +1992,39 @@ import { useEffect as useEffect7, useId as useId2, useMemo as useMemo2, useRef a
|
|
|
1992
1992
|
import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect3, useRef as useRef5, useState as useState4 } from "preact/hooks";
|
|
1993
1993
|
import { jsx as jsx7, jsxs as jsxs6 } from "preact/jsx-runtime";
|
|
1994
1994
|
var sessionListMemory = /* @__PURE__ */ new Map();
|
|
1995
|
+
function sessionPathParts(value) {
|
|
1996
|
+
const complete = String(value ?? "").replaceAll("\\", "/");
|
|
1997
|
+
const boundary = complete.lastIndexOf("/");
|
|
1998
|
+
if (boundary <= 0) return { complete, leading: complete, trailing: "" };
|
|
1999
|
+
return {
|
|
2000
|
+
complete,
|
|
2001
|
+
leading: complete.slice(0, boundary),
|
|
2002
|
+
trailing: complete.slice(boundary)
|
|
2003
|
+
};
|
|
2004
|
+
}
|
|
1995
2005
|
function SessionRow({ row, state, onOpen }) {
|
|
1996
2006
|
const activity = sessionActivity(state, row);
|
|
1997
|
-
const
|
|
2007
|
+
const attention = state.attention.find((item) => item.key === row.key);
|
|
1998
2008
|
const title = sessionDisplayName(row);
|
|
1999
|
-
const
|
|
2000
|
-
|
|
2009
|
+
const path = sessionPathParts(row.cwd);
|
|
2010
|
+
const preview = row.preview || attention?.preview || "";
|
|
2011
|
+
const unreadCount = attention?.unreadCount ?? 0;
|
|
2012
|
+
const unreadLabel = unreadCount > 99 ? "99+" : String(unreadCount);
|
|
2013
|
+
return /* @__PURE__ */ jsxs6("button", { class: "scui-session", "data-active": row.active, "data-activity": activity, "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${row.age ? ` \xB7 ${row.age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
|
|
2001
2014
|
/* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
|
|
2002
2015
|
/* @__PURE__ */ jsxs6("span", { class: "scui-session-copy", children: [
|
|
2003
|
-
/* @__PURE__ */ jsxs6("span", { children: [
|
|
2016
|
+
/* @__PURE__ */ jsxs6("span", { class: "scui-session-title", children: [
|
|
2004
2017
|
/* @__PURE__ */ jsx7("strong", { children: title }),
|
|
2005
|
-
/* @__PURE__ */ jsx7("
|
|
2018
|
+
row.age ? /* @__PURE__ */ jsx7("time", { children: row.age }) : null
|
|
2006
2019
|
] }),
|
|
2007
|
-
|
|
2020
|
+
path.complete ? /* @__PURE__ */ jsxs6("small", { class: "scui-session-path", title: row.cwd, children: [
|
|
2021
|
+
/* @__PURE__ */ jsx7("span", { class: "scui-session-path-leading", children: path.leading }),
|
|
2022
|
+
path.trailing ? /* @__PURE__ */ jsx7("span", { class: "scui-session-path-trailing", children: path.trailing }) : null
|
|
2023
|
+
] }) : null,
|
|
2024
|
+
preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { class: "scui-session-preview", children: [
|
|
2025
|
+
preview ? /* @__PURE__ */ jsx7("small", { children: preview }) : null,
|
|
2026
|
+
unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
|
|
2027
|
+
] }) : null,
|
|
2008
2028
|
state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
|
|
2009
2029
|
] })
|
|
2010
2030
|
] });
|
package/core.mjs
CHANGED
|
@@ -704,7 +704,7 @@ export function normalizeUiState(value) {
|
|
|
704
704
|
attention: Array.isArray(raw.attention) ? raw.attention.flatMap((candidate) => {
|
|
705
705
|
const item = record(candidate);
|
|
706
706
|
return item && typeof item.key === 'string' && ['unseen', 'finished', 'failed'].includes(item.kind)
|
|
707
|
-
? [{ key: item.key, kind: item.kind, ...(typeof item.preview === 'string' ? { preview: item.preview } : {}), ...(Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {}) }]
|
|
707
|
+
? [{ key: item.key, kind: item.kind, ...(typeof item.preview === 'string' ? { preview: item.preview } : {}), ...(Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {}), ...(Number.isSafeInteger(item.unreadCount) && item.unreadCount > 0 ? { unreadCount: item.unreadCount } : {}) }]
|
|
708
708
|
: [];
|
|
709
709
|
}) : [],
|
|
710
710
|
sessions: readSessions(raw.sessions),
|
package/embed.mjs
CHANGED
|
@@ -670,7 +670,7 @@ function normalizeUiState(value) {
|
|
|
670
670
|
savedDraft: string(raw.savedDraft),
|
|
671
671
|
attention: Array.isArray(raw.attention) ? raw.attention.flatMap((candidate) => {
|
|
672
672
|
const item = record(candidate);
|
|
673
|
-
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {} }] : [];
|
|
673
|
+
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {}, ...Number.isSafeInteger(item.unreadCount) && item.unreadCount > 0 ? { unreadCount: item.unreadCount } : {} }] : [];
|
|
674
674
|
}) : [],
|
|
675
675
|
sessions: readSessions(raw.sessions),
|
|
676
676
|
attached: readAttached(raw.attached),
|
|
@@ -1971,19 +1971,39 @@ function HarnessLogo({ id, activity, size = 28, onMissingLogo }) {
|
|
|
1971
1971
|
import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect3, useRef as useRef5, useState as useState4 } from "preact/hooks";
|
|
1972
1972
|
import { jsx as jsx7, jsxs as jsxs6 } from "preact/jsx-runtime";
|
|
1973
1973
|
var sessionListMemory = /* @__PURE__ */ new Map();
|
|
1974
|
+
function sessionPathParts(value) {
|
|
1975
|
+
const complete = String(value ?? "").replaceAll("\\", "/");
|
|
1976
|
+
const boundary = complete.lastIndexOf("/");
|
|
1977
|
+
if (boundary <= 0) return { complete, leading: complete, trailing: "" };
|
|
1978
|
+
return {
|
|
1979
|
+
complete,
|
|
1980
|
+
leading: complete.slice(0, boundary),
|
|
1981
|
+
trailing: complete.slice(boundary)
|
|
1982
|
+
};
|
|
1983
|
+
}
|
|
1974
1984
|
function SessionRow({ row, state, onOpen }) {
|
|
1975
1985
|
const activity = sessionActivity(state, row);
|
|
1976
|
-
const
|
|
1986
|
+
const attention = state.attention.find((item) => item.key === row.key);
|
|
1977
1987
|
const title = sessionDisplayName(row);
|
|
1978
|
-
const
|
|
1979
|
-
|
|
1988
|
+
const path = sessionPathParts(row.cwd);
|
|
1989
|
+
const preview = row.preview || attention?.preview || "";
|
|
1990
|
+
const unreadCount = attention?.unreadCount ?? 0;
|
|
1991
|
+
const unreadLabel = unreadCount > 99 ? "99+" : String(unreadCount);
|
|
1992
|
+
return /* @__PURE__ */ jsxs6("button", { class: "scui-session", "data-active": row.active, "data-activity": activity, "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${row.age ? ` \xB7 ${row.age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
|
|
1980
1993
|
/* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
|
|
1981
1994
|
/* @__PURE__ */ jsxs6("span", { class: "scui-session-copy", children: [
|
|
1982
|
-
/* @__PURE__ */ jsxs6("span", { children: [
|
|
1995
|
+
/* @__PURE__ */ jsxs6("span", { class: "scui-session-title", children: [
|
|
1983
1996
|
/* @__PURE__ */ jsx7("strong", { children: title }),
|
|
1984
|
-
/* @__PURE__ */ jsx7("
|
|
1997
|
+
row.age ? /* @__PURE__ */ jsx7("time", { children: row.age }) : null
|
|
1985
1998
|
] }),
|
|
1986
|
-
|
|
1999
|
+
path.complete ? /* @__PURE__ */ jsxs6("small", { class: "scui-session-path", title: row.cwd, children: [
|
|
2000
|
+
/* @__PURE__ */ jsx7("span", { class: "scui-session-path-leading", children: path.leading }),
|
|
2001
|
+
path.trailing ? /* @__PURE__ */ jsx7("span", { class: "scui-session-path-trailing", children: path.trailing }) : null
|
|
2002
|
+
] }) : null,
|
|
2003
|
+
preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { class: "scui-session-preview", children: [
|
|
2004
|
+
preview ? /* @__PURE__ */ jsx7("small", { children: preview }) : null,
|
|
2005
|
+
unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
|
|
2006
|
+
] }) : null,
|
|
1987
2007
|
state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
|
|
1988
2008
|
] })
|
|
1989
2009
|
] });
|
package/index.d.ts
CHANGED
|
@@ -164,6 +164,8 @@ export interface SessionAttention {
|
|
|
164
164
|
preview?: string;
|
|
165
165
|
/** The canonical message count when this conversation was last seen. */
|
|
166
166
|
afterMessages?: number;
|
|
167
|
+
/** Human-visible replies observed since this conversation was last read. */
|
|
168
|
+
unreadCount?: number;
|
|
167
169
|
}
|
|
168
170
|
|
|
169
171
|
export interface SupercodeUiState {
|
package/messenger.mjs
CHANGED
|
@@ -667,7 +667,7 @@ function normalizeUiState(value) {
|
|
|
667
667
|
savedDraft: string(raw.savedDraft),
|
|
668
668
|
attention: Array.isArray(raw.attention) ? raw.attention.flatMap((candidate) => {
|
|
669
669
|
const item = record(candidate);
|
|
670
|
-
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {} }] : [];
|
|
670
|
+
return item && typeof item.key === "string" && ["unseen", "finished", "failed"].includes(item.kind) ? [{ key: item.key, kind: item.kind, ...typeof item.preview === "string" ? { preview: item.preview } : {}, ...Number.isSafeInteger(item.afterMessages) && item.afterMessages >= 0 ? { afterMessages: item.afterMessages } : {}, ...Number.isSafeInteger(item.unreadCount) && item.unreadCount > 0 ? { unreadCount: item.unreadCount } : {} }] : [];
|
|
671
671
|
}) : [],
|
|
672
672
|
sessions: readSessions(raw.sessions),
|
|
673
673
|
attached: readAttached(raw.attached),
|
|
@@ -1968,19 +1968,39 @@ function HarnessLogo({ id, activity, size = 28, onMissingLogo }) {
|
|
|
1968
1968
|
import { useEffect as useEffect6, useLayoutEffect as useLayoutEffect3, useRef as useRef5, useState as useState4 } from "preact/hooks";
|
|
1969
1969
|
import { jsx as jsx7, jsxs as jsxs6 } from "preact/jsx-runtime";
|
|
1970
1970
|
var sessionListMemory = /* @__PURE__ */ new Map();
|
|
1971
|
+
function sessionPathParts(value) {
|
|
1972
|
+
const complete = String(value ?? "").replaceAll("\\", "/");
|
|
1973
|
+
const boundary = complete.lastIndexOf("/");
|
|
1974
|
+
if (boundary <= 0) return { complete, leading: complete, trailing: "" };
|
|
1975
|
+
return {
|
|
1976
|
+
complete,
|
|
1977
|
+
leading: complete.slice(0, boundary),
|
|
1978
|
+
trailing: complete.slice(boundary)
|
|
1979
|
+
};
|
|
1980
|
+
}
|
|
1971
1981
|
function SessionRow({ row, state, onOpen }) {
|
|
1972
1982
|
const activity = sessionActivity(state, row);
|
|
1973
|
-
const
|
|
1983
|
+
const attention = state.attention.find((item) => item.key === row.key);
|
|
1974
1984
|
const title = sessionDisplayName(row);
|
|
1975
|
-
const
|
|
1976
|
-
|
|
1985
|
+
const path = sessionPathParts(row.cwd);
|
|
1986
|
+
const preview = row.preview || attention?.preview || "";
|
|
1987
|
+
const unreadCount = attention?.unreadCount ?? 0;
|
|
1988
|
+
const unreadLabel = unreadCount > 99 ? "99+" : String(unreadCount);
|
|
1989
|
+
return /* @__PURE__ */ jsxs6("button", { class: "scui-session", "data-active": row.active, "data-activity": activity, "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${row.age ? ` \xB7 ${row.age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
|
|
1977
1990
|
/* @__PURE__ */ jsx7(HarnessLogo, { id: row.harness, activity, size: 34 }),
|
|
1978
1991
|
/* @__PURE__ */ jsxs6("span", { class: "scui-session-copy", children: [
|
|
1979
|
-
/* @__PURE__ */ jsxs6("span", { children: [
|
|
1992
|
+
/* @__PURE__ */ jsxs6("span", { class: "scui-session-title", children: [
|
|
1980
1993
|
/* @__PURE__ */ jsx7("strong", { children: title }),
|
|
1981
|
-
/* @__PURE__ */ jsx7("
|
|
1994
|
+
row.age ? /* @__PURE__ */ jsx7("time", { children: row.age }) : null
|
|
1982
1995
|
] }),
|
|
1983
|
-
|
|
1996
|
+
path.complete ? /* @__PURE__ */ jsxs6("small", { class: "scui-session-path", title: row.cwd, children: [
|
|
1997
|
+
/* @__PURE__ */ jsx7("span", { class: "scui-session-path-leading", children: path.leading }),
|
|
1998
|
+
path.trailing ? /* @__PURE__ */ jsx7("span", { class: "scui-session-path-trailing", children: path.trailing }) : null
|
|
1999
|
+
] }) : null,
|
|
2000
|
+
preview || unreadCount ? /* @__PURE__ */ jsxs6("span", { class: "scui-session-preview", children: [
|
|
2001
|
+
preview ? /* @__PURE__ */ jsx7("small", { children: preview }) : null,
|
|
2002
|
+
unreadCount ? /* @__PURE__ */ jsx7("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
|
|
2003
|
+
] }) : null,
|
|
1984
2004
|
state.attachError?.key === row.key ? /* @__PURE__ */ jsx7("em", { children: state.attachError.message }) : null
|
|
1985
2005
|
] })
|
|
1986
2006
|
] });
|
package/package.json
CHANGED
package/sessions.mjs
CHANGED
|
@@ -279,19 +279,39 @@ function HarnessLogo({ id, activity, size = 28, onMissingLogo }) {
|
|
|
279
279
|
// src/sessions.jsx
|
|
280
280
|
import { jsx as jsx6, jsxs as jsxs5 } from "preact/jsx-runtime";
|
|
281
281
|
var sessionListMemory = /* @__PURE__ */ new Map();
|
|
282
|
+
function sessionPathParts(value) {
|
|
283
|
+
const complete = String(value ?? "").replaceAll("\\", "/");
|
|
284
|
+
const boundary = complete.lastIndexOf("/");
|
|
285
|
+
if (boundary <= 0) return { complete, leading: complete, trailing: "" };
|
|
286
|
+
return {
|
|
287
|
+
complete,
|
|
288
|
+
leading: complete.slice(0, boundary),
|
|
289
|
+
trailing: complete.slice(boundary)
|
|
290
|
+
};
|
|
291
|
+
}
|
|
282
292
|
function SessionRow({ row, state, onOpen }) {
|
|
283
293
|
const activity = sessionActivity(state, row);
|
|
284
|
-
const
|
|
294
|
+
const attention = state.attention.find((item) => item.key === row.key);
|
|
285
295
|
const title = sessionDisplayName(row);
|
|
286
|
-
const
|
|
287
|
-
|
|
296
|
+
const path = sessionPathParts(row.cwd);
|
|
297
|
+
const preview = row.preview || attention?.preview || "";
|
|
298
|
+
const unreadCount = attention?.unreadCount ?? 0;
|
|
299
|
+
const unreadLabel = unreadCount > 99 ? "99+" : String(unreadCount);
|
|
300
|
+
return /* @__PURE__ */ jsxs5("button", { class: "scui-session", "data-active": row.active, "data-activity": activity, "data-session-key": row.key, type: "button", "aria-label": `${title} \xB7 ${harnessDisplayName(row.harness)}${path.complete ? ` \xB7 ${path.complete}` : ""}${preview ? ` \xB7 ${preview}` : ""}${unreadCount ? ` \xB7 ${unreadCount} unread` : ""}${row.age ? ` \xB7 ${row.age}` : ""}`, "aria-current": row.active ? "true" : void 0, onClick: () => onOpen(row), children: [
|
|
288
301
|
/* @__PURE__ */ jsx6(HarnessLogo, { id: row.harness, activity, size: 34 }),
|
|
289
302
|
/* @__PURE__ */ jsxs5("span", { class: "scui-session-copy", children: [
|
|
290
|
-
/* @__PURE__ */ jsxs5("span", { children: [
|
|
303
|
+
/* @__PURE__ */ jsxs5("span", { class: "scui-session-title", children: [
|
|
291
304
|
/* @__PURE__ */ jsx6("strong", { children: title }),
|
|
292
|
-
/* @__PURE__ */ jsx6("
|
|
305
|
+
row.age ? /* @__PURE__ */ jsx6("time", { children: row.age }) : null
|
|
293
306
|
] }),
|
|
294
|
-
|
|
307
|
+
path.complete ? /* @__PURE__ */ jsxs5("small", { class: "scui-session-path", title: row.cwd, children: [
|
|
308
|
+
/* @__PURE__ */ jsx6("span", { class: "scui-session-path-leading", children: path.leading }),
|
|
309
|
+
path.trailing ? /* @__PURE__ */ jsx6("span", { class: "scui-session-path-trailing", children: path.trailing }) : null
|
|
310
|
+
] }) : null,
|
|
311
|
+
preview || unreadCount ? /* @__PURE__ */ jsxs5("span", { class: "scui-session-preview", children: [
|
|
312
|
+
preview ? /* @__PURE__ */ jsx6("small", { children: preview }) : null,
|
|
313
|
+
unreadCount ? /* @__PURE__ */ jsx6("b", { "aria-label": `${unreadCount} unread messages`, children: unreadLabel }) : null
|
|
314
|
+
] }) : null,
|
|
295
315
|
state.attachError?.key === row.key ? /* @__PURE__ */ jsx6("em", { children: state.attachError.message }) : null
|
|
296
316
|
] })
|
|
297
317
|
] });
|
package/styles.css
CHANGED
|
@@ -92,13 +92,15 @@
|
|
|
92
92
|
.scui-search { display:flex; flex:none; align-items:center; gap:7px; margin:8px; padding:6px 8px; border:1px solid var(--scui-border); border-radius:8px; background:var(--scui-bg-raised); color:var(--scui-muted) }
|
|
93
93
|
.scui-search input { flex:1; min-width:0; border:0; outline:0; background:transparent; color:var(--scui-fg) }
|
|
94
94
|
.scui-session-rows { flex:1; min-height:0; overflow:auto; padding:0 6px 8px }
|
|
95
|
-
.scui-session { display:flex; align-items:
|
|
95
|
+
.scui-session { display:flex; align-items:flex-start; gap:9px; width:100%; padding:8px; border:0; border-radius:7px; background:transparent; text-align:left; cursor:pointer }
|
|
96
96
|
.scui-session:hover,.scui-session[data-active="true"] { background:var(--scui-fill) }
|
|
97
|
-
.scui-session-copy { display:grid; flex:1; min-width:0; gap:
|
|
97
|
+
.scui-session-copy { display:grid; flex:1; min-width:0; gap:1px }
|
|
98
98
|
.scui-session-copy > span { display:flex; align-items:baseline; gap:7px; min-width:0 }
|
|
99
99
|
.scui-session-copy strong,.scui-session-copy span > small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
|
|
100
|
-
.scui-session-copy strong { flex:1; font-size:12.5px }.scui-session-
|
|
101
|
-
.scui-session-
|
|
100
|
+
.scui-session-copy strong { flex:1; font-size:12.5px }.scui-session-title time { flex:none; color:var(--scui-muted); font-size:10px }
|
|
101
|
+
.scui-session-path { display:flex; min-width:0; overflow:hidden; color:var(--scui-muted); font-size:9.5px; white-space:nowrap }
|
|
102
|
+
.scui-session-path-leading { flex:0 1 auto; overflow:hidden; text-overflow:ellipsis }.scui-session-path-trailing { flex:none; max-width:58%; overflow:hidden; direction:rtl; text-align:left; text-overflow:ellipsis; unicode-bidi:plaintext }
|
|
103
|
+
.scui-session-preview small { flex:1; min-width:0; color:var(--scui-muted); font-size:10.5px }.scui-session-preview b { display:grid; flex:none; min-width:16px; height:16px; padding:0 4px; place-items:center; border-radius:8px; background:var(--scui-accent); color:var(--scui-bg); font-size:9px; line-height:16px }
|
|
102
104
|
.scui-session-copy em { overflow:hidden; color:var(--scui-danger); font-size:10px; font-style:normal; text-overflow:ellipsis; white-space:nowrap }
|
|
103
105
|
.scui-load { display:block; margin:7px auto; padding:5px 10px; border:1px solid var(--scui-border); border-radius:8px; background:var(--scui-bg-raised); color:var(--scui-muted); cursor:pointer }.scui-load:disabled { opacity:.65; cursor:default }
|
|
104
106
|
|