@mcp-b/react-components 0.20.0 → 0.20.4
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/{AgentChat-CaQaT0LF.d.ts → AgentChat-C-ZyXbJz.d.ts} +3 -0
- package/dist/{CodeBlock-Bb-IPBc_.js → CodeBlock-ygtuzqJd.js} +1 -1
- package/dist/{FileTree-CUlXfnmc.js → FileTree-CdgfccsM.js} +5 -5
- package/dist/{Message-rZEaaD8Q.js → Message-DzuteocT.js} +4 -3
- package/dist/{ModelSelector-4GsCWcZV.js → ModelSelector-pecWyOFI.js} +4 -3
- package/dist/{ThinkChat-15EhfvYJ.js → ThinkChat-E_HrfH76.js} +15 -6
- package/dist/{ThinkChatActivity-CnIJPvV5.d.ts → ThinkChatActivity-CdbL0aoA.d.ts} +1 -1
- package/dist/{WorkspaceFileView-CEdArlOT.js → WorkspaceFileView-Bxx4wEzJ.js} +5 -11
- package/dist/components/Accordion.js +4 -4
- package/dist/components/Activity.js +2 -2
- package/dist/components/AgentActivity.js +1 -1
- package/dist/components/AgentActivityPreview.js +1 -1
- package/dist/components/AgentAttention.js +2 -2
- package/dist/components/AgentChat.d.ts +1 -1
- package/dist/components/AgentChat.js +8 -6
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/AgentMessageParts.js +1 -1
- package/dist/components/AgentToolDetail.js +2 -2
- package/dist/components/AlertDialog.js +8 -8
- package/dist/components/AppTopBar.js +1 -1
- package/dist/components/Approval.js +1 -1
- package/dist/components/Artifact.js +1 -1
- package/dist/components/Autocomplete.js +11 -11
- package/dist/components/Avatar.js +6 -6
- package/dist/components/BrowserLiveView.js +2 -2
- package/dist/components/BrowserReplay.js +4 -7
- package/dist/components/BrowserRunPanel.js +2 -2
- package/dist/components/Card.js +8 -11
- package/dist/components/ChainOfThought.js +2 -2
- package/dist/components/ChatGptSignInScreen.js +2 -2
- package/dist/components/Checkbox.js +2 -2
- package/dist/components/CheckboxGroup.js +7 -7
- package/dist/components/Checkpoint.js +1 -1
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/CodexModelSelector.js +5 -4
- package/dist/components/Collapsible.js +2 -2
- package/dist/components/Combobox.js +11 -11
- package/dist/components/Commit.js +4 -4
- package/dist/components/Context.js +3 -1
- package/dist/components/ContextMenu.js +13 -13
- package/dist/components/Conversation.js +3 -8
- package/dist/components/Dialog.js +6 -6
- package/dist/components/EnvironmentVariables.js +3 -3
- package/dist/components/Field.js +7 -7
- package/dist/components/Fieldset.js +3 -3
- package/dist/components/FileTree.js +1 -1
- package/dist/components/Form.js +1 -1
- package/dist/components/InlineCitation.js +2 -2
- package/dist/components/Input.js +1 -1
- package/dist/components/Label.js +2 -1
- package/dist/components/McpConnectionRequest.js +1 -1
- package/dist/components/McpServerPicker.js +3 -3
- package/dist/components/MediaPreviewCard.js +5 -4
- package/dist/components/Menu.js +17 -17
- package/dist/components/Menubar.js +14 -14
- package/dist/components/Message.js +1 -1
- package/dist/components/MessageScroller.js +1 -1
- package/dist/components/Meter.js +5 -5
- package/dist/components/ModelSelector.js +1 -1
- package/dist/components/NaniteScene.js +2 -1
- package/dist/components/NavigationMenu.js +11 -11
- package/dist/components/NumberField.js +6 -6
- package/dist/components/Plan.js +1 -1
- package/dist/components/Popover.js +12 -14
- package/dist/components/PreviewCard.js +6 -6
- package/dist/components/PricingPage.js +2 -1
- package/dist/components/PricingPlanCard.js +1 -1
- package/dist/components/Progress.js +4 -4
- package/dist/components/PromptInput.js +10 -12
- package/dist/components/Queue.js +1 -1
- package/dist/components/RadioGroup.js +4 -4
- package/dist/components/Reasoning.js +2 -2
- package/dist/components/ResizableSidePanel.js +3 -5
- package/dist/components/ResponsiveSidebarShell.js +4 -3
- package/dist/components/ScrollArea.js +6 -6
- package/dist/components/SearchField.js +1 -1
- package/dist/components/Select.js +15 -15
- package/dist/components/Slider.js +7 -7
- package/dist/components/Sources.js +2 -2
- package/dist/components/Stepper.js +1 -1
- package/dist/components/SubagentRunDetails.js +2 -1
- package/dist/components/SubagentRunIndicator.js +1 -1
- package/dist/components/SubagentRunSelector.js +1 -1
- package/dist/components/Switch.js +3 -3
- package/dist/components/Tabs.js +2 -2
- package/dist/components/Task.js +2 -2
- package/dist/components/Terminal.js +2 -2
- package/dist/components/TestResults.js +3 -3
- package/dist/components/ThemeModeControl.js +1 -1
- package/dist/components/ThinkChat.d.ts +12 -3
- package/dist/components/ThinkChat.js +1 -1
- package/dist/components/ThinkChatActivity.d.ts +1 -1
- package/dist/components/ThinkChatActivity.js +2 -1
- package/dist/components/ThinkChatActivitySummary.js +17 -4
- package/dist/components/ThinkChatToolPanels.js +10 -5
- package/dist/components/ThinkExecutionDetail.js +1 -1
- package/dist/components/ThinkExecutionStatus.js +1 -1
- package/dist/components/ThinkExecutionWorkbench.js +2 -2
- package/dist/components/ThinkFullApp.js +6 -76
- package/dist/components/ThinkPendingApproval.js +1 -3
- package/dist/components/ThinkRoutine.d.ts +1 -1
- package/dist/components/ThinkRoutine.js +2 -1
- package/dist/components/ThinkRoutineBrowser.js +9 -9
- package/dist/components/ThinkRoutineDetail.js +1 -1
- package/dist/components/ThinkRoutineForm.js +1 -1
- package/dist/components/ThinkRoutineLibrary.js +1 -1
- package/dist/components/ThinkThreadPicker.js +3 -3
- package/dist/components/ThinkThreadShell.js +2 -1
- package/dist/components/Toast.js +6 -6
- package/dist/components/ToggleGroup.js +2 -2
- package/dist/components/Tooltip.js +4 -4
- package/dist/components/WebPreview.js +1 -1
- package/dist/components/WorkspaceBrowser.js +1 -1
- package/dist/components/WorkspaceExplorer.js +2 -2
- package/dist/components/WorkspaceFileView.js +1 -1
- package/dist/components/WorkspaceHeader.js +1 -1
- package/dist/components/icons.js +1 -1
- package/dist/{copy-button-BtRwhRks.js → copy-button-vo1paUSi.js} +1 -1
- package/dist/format-S6uWyoSb.js +38 -0
- package/dist/{icons-DKXiSepE.js → icons-DyOM0EJs.js} +2 -1
- package/dist/{merge-refs-KlanQB7A.js → merge-refs-DF_7w2x_.js} +1 -1
- package/dist/styles/activity-header.css +0 -3
- package/dist/styles/activity.css +1 -1
- package/dist/styles/agent-attention.css +0 -7
- package/dist/styles/agent-connection.css +1 -1
- package/dist/styles/app-top-bar.css +2 -5
- package/dist/styles/browser-live-view.css +1 -10
- package/dist/styles/browser-run-panel.css +2 -11
- package/dist/styles/chain-of-thought.css +2 -14
- package/dist/styles/checkbox-group.css +0 -6
- package/dist/styles/codex-model-selector.css +0 -6
- package/dist/styles/commit.css +1 -7
- package/dist/styles/environment-variables.css +0 -3
- package/dist/styles/file-tree.css +1 -1
- package/dist/styles/inline-citation.css +1 -4
- package/dist/styles/mcp-server-picker.css +0 -3
- package/dist/styles/message.css +0 -6
- package/dist/styles/model-selector.css +1 -1
- package/dist/styles/prompt-input.css +3 -34
- package/dist/styles/queue.css +1 -1
- package/dist/styles/recipes.css +2 -2
- package/dist/styles/sources.css +1 -4
- package/dist/styles/stepper.css +1 -7
- package/dist/styles/subagent-run.css +0 -3
- package/dist/styles/task.css +1 -1
- package/dist/styles/test-results.css +2 -17
- package/dist/styles/theme-mode-control.css +1 -1
- package/dist/styles/think-execution-status.css +1 -7
- package/dist/styles/think-execution-workbench.css +0 -3
- package/dist/styles/think-full-app.css +0 -3
- package/dist/styles/think-thread-picker.css +2 -14
- package/dist/styles/toggle-group.css +1 -1
- package/dist/styles/utilities.css +6 -2
- package/dist/styles/workspace-explorer.css +1 -1
- package/dist/view-transitions-DyUP0lSg.js +77 -0
- package/package.json +2 -2
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { S as FileIcon, X as TerminalIcon, d as ChevronDownIcon } from "../icons-
|
|
2
|
+
import { S as FileIcon, X as TerminalIcon, d as ChevronDownIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { a as WorkspaceNavigationRestorationBoundary, i as WorkspaceNavigationFocusRestorer, n as WorkspaceNavigationProvider } from "../WorkspaceLink-BYYeTQLf.js";
|
|
5
|
+
import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
|
|
5
6
|
import { AppTopBar } from "./AppTopBar.js";
|
|
6
|
-
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../ThinkChat-
|
|
7
|
-
import { t as mergeRefs } from "../merge-refs-KlanQB7A.js";
|
|
7
|
+
import { c as resolveThinkApprovalProps, s as useThinkPendingExecutionApprovals, t as ThinkChat } from "../ThinkChat-E_HrfH76.js";
|
|
8
8
|
import { useWorkspace } from "./Workspace.js";
|
|
9
9
|
import { WorkspaceExplorer } from "./WorkspaceExplorer.js";
|
|
10
|
+
import { n as runViewTransition } from "../view-transitions-DyUP0lSg.js";
|
|
10
11
|
import { ResizableSidePanel } from "./ResizableSidePanel.js";
|
|
11
12
|
import { ThinkExecutionWorkbench } from "./ThinkExecutionWorkbench.js";
|
|
12
13
|
import { ThinkFullAppViewSwitch } from "./ThinkFullAppViewSwitch.js";
|
|
@@ -15,77 +16,6 @@ import { ThinkThreadShell } from "./ThinkThreadShell.js";
|
|
|
15
16
|
import * as React from "react";
|
|
16
17
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
17
18
|
import { useAgentToolEvents } from "agents/react";
|
|
18
|
-
import { flushSync } from "react-dom";
|
|
19
|
-
//#region src/components/_internal/view-transitions.ts
|
|
20
|
-
let documentScopeSequence = 0;
|
|
21
|
-
let restoreActiveDocumentScope = null;
|
|
22
|
-
function motionIsReduced() {
|
|
23
|
-
if (typeof document === "undefined") return true;
|
|
24
|
-
if (document.documentElement.dataset.motion === "reduce") return true;
|
|
25
|
-
return window.matchMedia?.("(prefers-reduced-motion: reduce)").matches ?? false;
|
|
26
|
-
}
|
|
27
|
-
function isReactTestEnvironment() {
|
|
28
|
-
return globalThis.IS_REACT_ACT_ENVIRONMENT;
|
|
29
|
-
}
|
|
30
|
-
function scopeDocumentTransition(scope) {
|
|
31
|
-
if (!(scope instanceof HTMLElement || scope instanceof SVGElement)) return null;
|
|
32
|
-
restoreActiveDocumentScope?.();
|
|
33
|
-
const rootStyle = document.documentElement.style;
|
|
34
|
-
const scopeStyle = scope.style;
|
|
35
|
-
const rootValue = rootStyle.getPropertyValue("view-transition-name");
|
|
36
|
-
const rootPriority = rootStyle.getPropertyPriority("view-transition-name");
|
|
37
|
-
const scopeValue = scopeStyle.getPropertyValue("view-transition-name");
|
|
38
|
-
const scopePriority = scopeStyle.getPropertyPriority("view-transition-name");
|
|
39
|
-
rootStyle.setProperty("view-transition-name", "none", "important");
|
|
40
|
-
scopeStyle.setProperty("view-transition-name", `sigvelo-transition-scope-${++documentScopeSequence}`, "important");
|
|
41
|
-
let active = true;
|
|
42
|
-
const restore = () => {
|
|
43
|
-
if (!active) return;
|
|
44
|
-
active = false;
|
|
45
|
-
if (rootValue) rootStyle.setProperty("view-transition-name", rootValue, rootPriority);
|
|
46
|
-
else rootStyle.removeProperty("view-transition-name");
|
|
47
|
-
if (scopeValue) scopeStyle.setProperty("view-transition-name", scopeValue, scopePriority);
|
|
48
|
-
else scopeStyle.removeProperty("view-transition-name");
|
|
49
|
-
if (restoreActiveDocumentScope === restore) restoreActiveDocumentScope = null;
|
|
50
|
-
};
|
|
51
|
-
restoreActiveDocumentScope = restore;
|
|
52
|
-
return restore;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Runs one synchronous React update inside the narrowest supported native view
|
|
56
|
-
* transition. Unsupported and reduced-motion environments commit immediately.
|
|
57
|
-
*/
|
|
58
|
-
function runViewTransition({ scope, update }) {
|
|
59
|
-
let committed = false;
|
|
60
|
-
const commitOnce = () => {
|
|
61
|
-
if (committed) return;
|
|
62
|
-
committed = true;
|
|
63
|
-
flushSync(update);
|
|
64
|
-
};
|
|
65
|
-
if (typeof document === "undefined" || motionIsReduced() || isReactTestEnvironment()) {
|
|
66
|
-
commitOnce();
|
|
67
|
-
return null;
|
|
68
|
-
}
|
|
69
|
-
const scopedHost = scope;
|
|
70
|
-
const documentHost = document;
|
|
71
|
-
const useScopedHost = typeof scopedHost?.startViewTransition === "function";
|
|
72
|
-
const host = useScopedHost ? scopedHost : typeof documentHost.startViewTransition === "function" ? documentHost : null;
|
|
73
|
-
if (!host?.startViewTransition) {
|
|
74
|
-
commitOnce();
|
|
75
|
-
return null;
|
|
76
|
-
}
|
|
77
|
-
const restoreDocumentScope = useScopedHost ? null : scopeDocumentTransition(scope);
|
|
78
|
-
try {
|
|
79
|
-
const transition = host.startViewTransition(commitOnce);
|
|
80
|
-
if (restoreDocumentScope) transition.finished.finally(restoreDocumentScope).catch(() => void 0);
|
|
81
|
-
return transition;
|
|
82
|
-
} catch {
|
|
83
|
-
restoreDocumentScope?.();
|
|
84
|
-
commitOnce();
|
|
85
|
-
return null;
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
//#endregion
|
|
89
19
|
//#region src/components/ThinkFullApp.tsx
|
|
90
20
|
const workbenchPanelDefaultWidth = 340;
|
|
91
21
|
const workbenchPanelMinWidth = 300;
|
|
@@ -113,7 +43,7 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
|
|
|
113
43
|
const appRef = React.useRef(null);
|
|
114
44
|
const viewScopeRef = React.useRef(null);
|
|
115
45
|
const workbenchPanelRef = React.useRef(null);
|
|
116
|
-
const approvals = useThinkPendingExecutionApprovals(agent.stub, sourceKey, `${chat.messages.length}:${chat.status}
|
|
46
|
+
const approvals = useThinkPendingExecutionApprovals(agent.stub, sourceKey, `${chat.messages.length}:${chat.status}`, messages?.approvalsEnabled !== false);
|
|
117
47
|
const resolvedMessages = React.useMemo(() => {
|
|
118
48
|
const approvalProps = resolveThinkApprovalProps({
|
|
119
49
|
thinkStub: messages?.thinkStub,
|
|
@@ -231,7 +161,7 @@ function ThinkFullApp({ agent, appBarActions, appBarLeading, appBarTitle, chat,
|
|
|
231
161
|
onClick: (event) => sidebarControls.toggleSidebar(event.currentTarget),
|
|
232
162
|
children: [
|
|
233
163
|
/* @__PURE__ */ jsx("span", {
|
|
234
|
-
className: "think-full-app__thread-trigger-title",
|
|
164
|
+
className: "think-full-app__thread-trigger-title sigvelo-truncate",
|
|
235
165
|
children: appBarTitle ?? "Threads"
|
|
236
166
|
}),
|
|
237
167
|
threadStatusSummary ? /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: threadStatusSummary }) : null,
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { i as titleCase } from "../format-S6uWyoSb.js";
|
|
1
2
|
import { Approval, ApprovalCount, ApprovalDecision, ApprovalHeader, ApprovalInputPreview, ApprovalPreview, ApprovalPreviewRow, ApprovalQuestion, formatApprovalValue } from "./Approval.js";
|
|
2
3
|
import "react";
|
|
3
4
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -10,9 +11,6 @@ function getPausedExecution(part) {
|
|
|
10
11
|
const output = getToolOutput(part);
|
|
11
12
|
return output?.status === "paused" && typeof output.executionId === "string" ? output : void 0;
|
|
12
13
|
}
|
|
13
|
-
function titleCase(value) {
|
|
14
|
-
return value.split("-").map((word) => `${word.charAt(0).toUpperCase()}${word.slice(1)}`).join(" ");
|
|
15
|
-
}
|
|
16
14
|
/**
|
|
17
15
|
* Durable Think approval adapter. It renders the complete upstream descriptor
|
|
18
16
|
* and resolves only through the full Think stub's idempotent execution RPCs.
|
|
@@ -31,6 +31,6 @@ interface ThinkRoutineCreateRequest {
|
|
|
31
31
|
/** Whole upstream task, including prompt functions and handler tasks. */
|
|
32
32
|
task: ThinkScheduledTask;
|
|
33
33
|
}
|
|
34
|
-
declare function getThinkRoutineNextRun(routine: ThinkRoutine): string;
|
|
34
|
+
declare function getThinkRoutineNextRun(routine: ThinkRoutine): string | null;
|
|
35
35
|
//#endregion
|
|
36
36
|
export { ThinkRoutine, ThinkRoutineCreateRequest, ThinkRoutineOwner, ThinkRoutineRunOf, getThinkRoutineNextRun };
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
//#region src/components/ThinkRoutine.ts
|
|
2
2
|
function getThinkRoutineNextRun(routine) {
|
|
3
|
+
if (!routine.schedule) return null;
|
|
3
4
|
if (!routine.enabled) return "Paused";
|
|
4
|
-
return
|
|
5
|
+
return formatThinkExecutionDate(routine.schedule.time * 1e3, "Not scheduled");
|
|
5
6
|
}
|
|
6
7
|
function formatThinkExecutionDate(value, fallback) {
|
|
7
8
|
const date = value instanceof Date ? value : new Date(value);
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { V as PlusIcon } from "../icons-
|
|
2
|
+
import { V as PlusIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { buttonVariants } from "./Button.js";
|
|
5
5
|
import { Tooltip } from "./Tooltip.js";
|
|
6
|
+
import { t as capitalize } from "../format-S6uWyoSb.js";
|
|
6
7
|
import { SearchField } from "./SearchField.js";
|
|
7
8
|
import { ToggleGroup } from "./ToggleGroup.js";
|
|
8
9
|
import { getThinkRoutineNextRun } from "./ThinkRoutine.js";
|
|
9
10
|
import * as React from "react";
|
|
10
|
-
import { jsx, jsxs } from "react/jsx-runtime";
|
|
11
|
+
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
11
12
|
//#region src/components/ThinkRoutineBrowser.tsx
|
|
12
13
|
function filterRoutines(routines, filter, query) {
|
|
13
14
|
const normalizedQuery = query.trim().toLocaleLowerCase();
|
|
@@ -51,7 +52,7 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
51
52
|
].map((value) => /* @__PURE__ */ jsx(ToggleGroup.Item, {
|
|
52
53
|
type: "button",
|
|
53
54
|
value,
|
|
54
|
-
children:
|
|
55
|
+
children: capitalize(value)
|
|
55
56
|
}, value))
|
|
56
57
|
}), createRoutineLink ? /* @__PURE__ */ jsxs(Tooltip.Root, { children: [/* @__PURE__ */ jsx(Tooltip.Trigger, {
|
|
57
58
|
render: /* @__PURE__ */ jsx(NavigationLink, {
|
|
@@ -126,12 +127,11 @@ function ThinkRoutineBrowser({ className, routines, selectedRoutineId, showOwner
|
|
|
126
127
|
children: [
|
|
127
128
|
/* @__PURE__ */ jsx("strong", { children: routine.name }),
|
|
128
129
|
/* @__PURE__ */ jsx("span", { children: routine.task.schedule }),
|
|
129
|
-
/* @__PURE__ */ jsxs("small", { children: [
|
|
130
|
-
showOwner ?
|
|
131
|
-
"
|
|
132
|
-
" ",
|
|
133
|
-
|
|
134
|
-
] })
|
|
130
|
+
showOwner || routine.schedule ? /* @__PURE__ */ jsxs("small", { children: [
|
|
131
|
+
showOwner ? routine.owner.name : null,
|
|
132
|
+
showOwner && routine.schedule ? " · " : null,
|
|
133
|
+
routine.schedule ? /* @__PURE__ */ jsxs(Fragment, { children: ["Next ", getThinkRoutineNextRun(routine)] }) : null
|
|
134
|
+
] }) : null
|
|
135
135
|
]
|
|
136
136
|
})
|
|
137
137
|
]
|
|
@@ -71,7 +71,7 @@ function ThinkRoutineDetail({ busy = false, className, routine, showOwner = true
|
|
|
71
71
|
className: "think-routine-library__facts",
|
|
72
72
|
children: [
|
|
73
73
|
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Repeats" }), /* @__PURE__ */ jsx("dd", { children: routine.task.schedule })] }),
|
|
74
|
-
/* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Next run" }), /* @__PURE__ */ jsx("dd", { children: getThinkRoutineNextRun(routine) })] }),
|
|
74
|
+
routine.schedule ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Next run" }), /* @__PURE__ */ jsx("dd", { children: getThinkRoutineNextRun(routine) })] }) : null,
|
|
75
75
|
showOwner ? /* @__PURE__ */ jsxs("div", { children: [/* @__PURE__ */ jsx("dt", { children: "Agent" }), /* @__PURE__ */ jsx("dd", { children: routine.owner.name })] }) : null
|
|
76
76
|
]
|
|
77
77
|
}),
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon } from "../icons-
|
|
2
|
+
import { K as SpinnerIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { Button, buttonVariants } from "./Button.js";
|
|
5
5
|
import { Field } from "./Field.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { B as PlayIcon, K as SpinnerIcon, Q as WarningIcon, d as ChevronDownIcon, y as EllipsisIcon } from "../icons-
|
|
2
|
+
import { B as PlayIcon, K as SpinnerIcon, Q as WarningIcon, d as ChevronDownIcon, y as EllipsisIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { Button, buttonVariants } from "./Button.js";
|
|
5
5
|
import { Menu } from "./Menu.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { K as SpinnerIcon, Q as WarningIcon, V as PlusIcon, _ as DotIcon, t as ArchiveIcon } from "../icons-
|
|
2
|
+
import { K as SpinnerIcon, Q as WarningIcon, V as PlusIcon, _ as DotIcon, t as ArchiveIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { t as NavigationLink } from "../navigation-link-Cob7KBlM.js";
|
|
4
4
|
import { Button, buttonVariants } from "./Button.js";
|
|
5
5
|
import { SearchField } from "./SearchField.js";
|
|
@@ -161,7 +161,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onDelete, clas
|
|
|
161
161
|
/* @__PURE__ */ jsxs("header", {
|
|
162
162
|
className: "think-thread-picker__header",
|
|
163
163
|
children: [/* @__PURE__ */ jsx("h2", {
|
|
164
|
-
className: "think-thread-picker__title",
|
|
164
|
+
className: "think-thread-picker__title sigvelo-truncate",
|
|
165
165
|
children: title
|
|
166
166
|
}), /* @__PURE__ */ jsx(ThinkThreadStatusIndicators, { summary: statusSummary })]
|
|
167
167
|
}),
|
|
@@ -210,7 +210,7 @@ function ThinkThreadPicker({ threads, renderThreadLink, onCreate, onDelete, clas
|
|
|
210
210
|
}),
|
|
211
211
|
"data-thread-status": thread.status,
|
|
212
212
|
children: [/* @__PURE__ */ jsx("span", {
|
|
213
|
-
className: "think-thread-picker__thread-title",
|
|
213
|
+
className: "think-thread-picker__thread-title sigvelo-truncate",
|
|
214
214
|
children: thread.title
|
|
215
215
|
}), statusLabel ? /* @__PURE__ */ jsx("span", {
|
|
216
216
|
className: "think-thread-picker__thread-status",
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
1
2
|
import { ResponsiveSidebarShell } from "./ResponsiveSidebarShell.js";
|
|
2
3
|
import "react";
|
|
3
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -10,7 +11,7 @@ function ThinkThreadShell({ sidebar, sidebarOpen, defaultSidebarOpen, onSidebarO
|
|
|
10
11
|
return /* @__PURE__ */ jsx(ResponsiveSidebarShell, {
|
|
11
12
|
...props,
|
|
12
13
|
ref,
|
|
13
|
-
className:
|
|
14
|
+
className: cx("think-thread-shell", className),
|
|
14
15
|
sidebar,
|
|
15
16
|
sidebarLabel: "threads",
|
|
16
17
|
sidebarOpen,
|
package/dist/components/Toast.js
CHANGED
|
@@ -24,7 +24,7 @@ const ToastProvider = (props) => {
|
|
|
24
24
|
* Container for displaying toasts.
|
|
25
25
|
*/
|
|
26
26
|
function ToastViewport({ className, ref, ...props }) {
|
|
27
|
-
const classes = mergeBaseClassName(
|
|
27
|
+
const classes = mergeBaseClassName("toast__viewport", className);
|
|
28
28
|
return /* @__PURE__ */ jsx(Toast$1.Viewport, {
|
|
29
29
|
ref,
|
|
30
30
|
"data-slot": "toast-viewport",
|
|
@@ -36,7 +36,7 @@ function ToastViewport({ className, ref, ...props }) {
|
|
|
36
36
|
* Individual toast wrapper.
|
|
37
37
|
*/
|
|
38
38
|
function ToastRoot({ className, ref, ...props }) {
|
|
39
|
-
const classes = mergeBaseClassName(
|
|
39
|
+
const classes = mergeBaseClassName("toast", className);
|
|
40
40
|
return /* @__PURE__ */ jsx(Toast$1.Root, {
|
|
41
41
|
ref,
|
|
42
42
|
"data-slot": "toast",
|
|
@@ -48,7 +48,7 @@ function ToastRoot({ className, ref, ...props }) {
|
|
|
48
48
|
* Container for the contents of a toast.
|
|
49
49
|
*/
|
|
50
50
|
function ToastContent({ className, ref, ...props }) {
|
|
51
|
-
const classes = mergeBaseClassName(
|
|
51
|
+
const classes = mergeBaseClassName("toast__content", className);
|
|
52
52
|
return /* @__PURE__ */ jsx(Toast$1.Content, {
|
|
53
53
|
ref,
|
|
54
54
|
"data-slot": "toast-content",
|
|
@@ -60,7 +60,7 @@ function ToastContent({ className, ref, ...props }) {
|
|
|
60
60
|
* Title that labels the toast. Renders an `<h2>` element.
|
|
61
61
|
*/
|
|
62
62
|
function ToastTitle({ className, ref, ...props }) {
|
|
63
|
-
const classes = mergeBaseClassName(
|
|
63
|
+
const classes = mergeBaseClassName("toast__title", className);
|
|
64
64
|
return /* @__PURE__ */ jsx(Toast$1.Title, {
|
|
65
65
|
ref,
|
|
66
66
|
"data-slot": "toast-title",
|
|
@@ -72,7 +72,7 @@ function ToastTitle({ className, ref, ...props }) {
|
|
|
72
72
|
* Description text for the toast. Renders a `<p>` element.
|
|
73
73
|
*/
|
|
74
74
|
function ToastDescription({ className, ref, ...props }) {
|
|
75
|
-
const classes = mergeBaseClassName(
|
|
75
|
+
const classes = mergeBaseClassName("toast__description", className);
|
|
76
76
|
return /* @__PURE__ */ jsx(Toast$1.Description, {
|
|
77
77
|
ref,
|
|
78
78
|
"data-slot": "toast-description",
|
|
@@ -102,7 +102,7 @@ function ToastAction({ render, className, ref, ...props }) {
|
|
|
102
102
|
* Close button that dismisses the toast.
|
|
103
103
|
*/
|
|
104
104
|
function ToastClose({ className, ref, ...props }) {
|
|
105
|
-
const classes = mergeBaseClassName(
|
|
105
|
+
const classes = mergeBaseClassName("toast__close", className);
|
|
106
106
|
return /* @__PURE__ */ jsx(Toast$1.Close, {
|
|
107
107
|
ref,
|
|
108
108
|
"data-slot": "toast-close",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as mergeBaseClassName } from "../class-names-BiMDVpUo.js";
|
|
1
|
+
import { n as mergeBaseClassName, t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { toggleVariants } from "./Toggle.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -44,7 +44,7 @@ function ToggleGroupRoot({ size = "md", spacing = 0, variant = "default", classN
|
|
|
44
44
|
...style,
|
|
45
45
|
gap
|
|
46
46
|
};
|
|
47
|
-
const classes = mergeBaseClassName(
|
|
47
|
+
const classes = mergeBaseClassName(cx("toggle-group", size !== "md" && `toggle-group--${size}`), className);
|
|
48
48
|
const contextValue = React.useMemo(() => ({
|
|
49
49
|
variant,
|
|
50
50
|
size,
|
|
@@ -38,7 +38,7 @@ function TooltipTrigger(props) {
|
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
function TooltipPositioner({ className, ref, ...props }) {
|
|
41
|
-
const classes = mergeBaseClassName(
|
|
41
|
+
const classes = mergeBaseClassName("tooltip__positioner base-ui-positioner", className);
|
|
42
42
|
return /* @__PURE__ */ jsx(Tooltip$1.Positioner, {
|
|
43
43
|
ref,
|
|
44
44
|
"data-slot": "tooltip-positioner",
|
|
@@ -47,7 +47,7 @@ function TooltipPositioner({ className, ref, ...props }) {
|
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
function TooltipPopup({ className, ref, role = "tooltip", ...props }) {
|
|
50
|
-
const classes = mergeBaseClassName(
|
|
50
|
+
const classes = mergeBaseClassName("tooltip__popup base-ui-popup", className);
|
|
51
51
|
return /* @__PURE__ */ jsx(Tooltip$1.Popup, {
|
|
52
52
|
ref,
|
|
53
53
|
role,
|
|
@@ -62,7 +62,7 @@ function TooltipPopup({ className, ref, role = "tooltip", ...props }) {
|
|
|
62
62
|
* positioner, popup, and this viewport when that behavior is needed.
|
|
63
63
|
*/
|
|
64
64
|
function TooltipViewport({ className, ref, ...props }) {
|
|
65
|
-
const classes = mergeBaseClassName(
|
|
65
|
+
const classes = mergeBaseClassName("tooltip__viewport", className);
|
|
66
66
|
return /* @__PURE__ */ jsx(Tooltip$1.Viewport, {
|
|
67
67
|
ref,
|
|
68
68
|
"data-slot": "tooltip-viewport",
|
|
@@ -71,7 +71,7 @@ function TooltipViewport({ className, ref, ...props }) {
|
|
|
71
71
|
});
|
|
72
72
|
}
|
|
73
73
|
function TooltipArrow({ className, ref, ...props }) {
|
|
74
|
-
const classes = mergeBaseClassName(
|
|
74
|
+
const classes = mergeBaseClassName("tooltip__arrow", className);
|
|
75
75
|
return /* @__PURE__ */ jsx(Tooltip$1.Arrow, {
|
|
76
76
|
ref,
|
|
77
77
|
"data-slot": "tooltip-arrow",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
|
-
import { U as RefreshIcon, d as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-
|
|
2
|
+
import { U as RefreshIcon, d as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../icons-DyOM0EJs.js";
|
|
3
3
|
import { Button } from "./Button.js";
|
|
4
4
|
import { Tooltip } from "./Tooltip.js";
|
|
5
5
|
import { Badge } from "./Badge.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-
|
|
1
|
+
import { i as FileTreeFolder, r as FileTreeFile, t as FileTree } from "../FileTree-CdgfccsM.js";
|
|
2
2
|
import { SearchField } from "./SearchField.js";
|
|
3
3
|
import { WorkspaceHeader } from "./WorkspaceHeader.js";
|
|
4
4
|
import * as React from "react";
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cx } from "../class-names-BiMDVpUo.js";
|
|
2
2
|
import { a as WorkspaceNavigationRestorationBoundary, n as WorkspaceNavigationProvider, o as useRequiredWorkspaceNavigationRestoration, r as resolveWorkspaceLink, t as WorkspaceFileLink } from "../WorkspaceLink-BYYeTQLf.js";
|
|
3
|
+
import { n as mergeRefs } from "../merge-refs-DF_7w2x_.js";
|
|
3
4
|
import { inferWorkspaceLanguage, inferWorkspaceMedia, isWorkspaceMarkdownPath, isWorkspaceMediaPath, isWorkspaceSkillPath, parseWorkspaceSkill } from "./WorkspaceFile.js";
|
|
4
5
|
import { WorkspaceBrowser } from "./WorkspaceBrowser.js";
|
|
5
|
-
import { t as WorkspaceFileView } from "../WorkspaceFileView-
|
|
6
|
-
import { t as mergeRefs } from "../merge-refs-KlanQB7A.js";
|
|
6
|
+
import { t as WorkspaceFileView } from "../WorkspaceFileView-Bxx4wEzJ.js";
|
|
7
7
|
import { useWorkspace, workspaceBinaryFileQueryOptions, workspaceDirectoryQueryOptions, workspaceFileAssetQueryOptions, workspaceFileStatQueryOptions, workspaceInfoQueryOptions, workspaceQueryKey, workspaceTextFileQueryOptions } from "./Workspace.js";
|
|
8
8
|
import * as React from "react";
|
|
9
9
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as WorkspaceFileView } from "../WorkspaceFileView-
|
|
1
|
+
import { t as WorkspaceFileView } from "../WorkspaceFileView-Bxx4wEzJ.js";
|
|
2
2
|
export { WorkspaceFileView };
|
package/dist/components/icons.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { $ as WrenchIcon, A as McpIcon, B as PlayIcon, C as FolderIcon, D as InfoIcon, E as ImageIcon, F as MoonIcon, G as SidebarIcon, H as QueueIcon, I as MoveToFrontIcon, J as StopIcon, K as SpinnerIcon, L as PaperclipIcon, M as MicrophoneIcon, N as MinusIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, R as PauseIcon, S as FileIcon, T as HashIcon, U as RefreshIcon, V as PlusIcon, W as SearchIcon, X as TerminalIcon, Y as SunIcon, Z as TrashIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, c as BrainIcon, d as ChevronDownIcon, et as XIcon, f as ChevronLeftIcon, g as DiscordIcon, h as CopyIcon, i as ArrowRightIcon, j as MessageSquareIcon, k as MaximizeIcon, l as CalendarIcon, m as CodeIcon, n as ArrowDownIcon, o as BookmarkIcon, p as ChevronRightIcon, q as SquareIcon, r as ArrowLeftIcon, s as BoxIcon, t as ArchiveIcon, u as CheckIcon, v as DownloadIcon, w as FolderOpenIcon, x as EyeOffIcon, y as EllipsisIcon, z as PencilIcon } from "../icons-
|
|
1
|
+
import { $ as WrenchIcon, A as McpIcon, B as PlayIcon, C as FolderIcon, D as InfoIcon, E as ImageIcon, F as MoonIcon, G as SidebarIcon, H as QueueIcon, I as MoveToFrontIcon, J as StopIcon, K as SpinnerIcon, L as PaperclipIcon, M as MicrophoneIcon, N as MinusIcon, O as LinkIcon, P as MonitorIcon, Q as WarningIcon, R as PauseIcon, S as FileIcon, T as HashIcon, U as RefreshIcon, V as PlusIcon, W as SearchIcon, X as TerminalIcon, Y as SunIcon, Z as TrashIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, c as BrainIcon, d as ChevronDownIcon, et as XIcon, f as ChevronLeftIcon, g as DiscordIcon, h as CopyIcon, i as ArrowRightIcon, j as MessageSquareIcon, k as MaximizeIcon, l as CalendarIcon, m as CodeIcon, n as ArrowDownIcon, o as BookmarkIcon, p as ChevronRightIcon, q as SquareIcon, r as ArrowLeftIcon, s as BoxIcon, t as ArchiveIcon, u as CheckIcon, v as DownloadIcon, w as FolderOpenIcon, x as EyeOffIcon, y as EllipsisIcon, z as PencilIcon } from "../icons-DyOM0EJs.js";
|
|
2
2
|
export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { h as CopyIcon, u as CheckIcon } from "./icons-
|
|
1
|
+
import { h as CopyIcon, u as CheckIcon } from "./icons-DyOM0EJs.js";
|
|
2
2
|
import { Button } from "./components/Button.js";
|
|
3
3
|
import { Tooltip } from "./components/Tooltip.js";
|
|
4
4
|
import * as React from "react";
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
//#region src/components/_internal/format.ts
|
|
2
|
+
/**
|
|
3
|
+
* Small string/number formatting helpers shared across components, so the same
|
|
4
|
+
* one-liners are not re-derived in each file.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Constrains `value` to the inclusive `[min, max]` range.
|
|
8
|
+
*/
|
|
9
|
+
function clamp(value, min, max) {
|
|
10
|
+
return Math.min(max, Math.max(min, value));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Uppercases the first character of `value`, leaving the rest untouched.
|
|
14
|
+
*/
|
|
15
|
+
function capitalize(value) {
|
|
16
|
+
return value.charAt(0).toUpperCase() + value.slice(1);
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Turns a `kebab-case` or `snake_case` identifier into a space-separated,
|
|
20
|
+
* word-capitalized label (e.g. `"service-tier"` → `"Service Tier"`).
|
|
21
|
+
*/
|
|
22
|
+
function titleCase(value) {
|
|
23
|
+
return value.split(/[-_]/).filter(Boolean).map((word) => word[0].toUpperCase() + word.slice(1)).join(" ");
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Formats a whole number of seconds as a clock string — `m:ss`, widening to
|
|
27
|
+
* `h:mm:ss` once it reaches an hour. Negative and fractional inputs are floored
|
|
28
|
+
* to whole seconds, so callers that need rounding should round before calling.
|
|
29
|
+
*/
|
|
30
|
+
function formatClock(totalSeconds) {
|
|
31
|
+
const total = Math.max(0, Math.floor(totalSeconds));
|
|
32
|
+
const hours = Math.floor(total / 3600);
|
|
33
|
+
const minutes = Math.floor(total % 3600 / 60);
|
|
34
|
+
const seconds = String(total % 60).padStart(2, "0");
|
|
35
|
+
return hours > 0 ? `${hours}:${String(minutes).padStart(2, "0")}:${seconds}` : `${minutes}:${seconds}`;
|
|
36
|
+
}
|
|
37
|
+
//#endregion
|
|
38
|
+
export { titleCase as i, clamp as n, formatClock as r, capitalize as t };
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { t as cx } from "./class-names-BiMDVpUo.js";
|
|
1
2
|
import { jsx } from "react/jsx-runtime";
|
|
2
3
|
import { Archive, ArrowDown, ArrowLeft, ArrowRight, ArrowUp, Bookmark, Box, Brain, CalendarDays, Check, ChevronDown, ChevronLeft, ChevronRight, CircleStop, CodeXml, Copy, CornerDownRight, Dot, Download, Ellipsis, Eye, EyeOff, File, Folder, FolderOpen, Hash, Image, Info, Link2, ListRestart, LoaderCircle, Maximize2, MessageSquare, Mic, Minus, Monitor, Moon, PanelLeft, Paperclip, Pause, Pencil, Play, Plus, RefreshCw, Search, Square, Sun, Terminal, Trash2, TriangleAlert, Wrench, X } from "lucide-react";
|
|
3
4
|
import { SiDiscord, SiModelcontextprotocol } from "react-icons/si";
|
|
@@ -61,7 +62,7 @@ function SpinnerIcon({ className, size = 16, strokeWidth = 1.75, ...props }) {
|
|
|
61
62
|
strokeWidth,
|
|
62
63
|
"aria-hidden": "true",
|
|
63
64
|
focusable: "false",
|
|
64
|
-
className:
|
|
65
|
+
className: cx("sigvelo-icon--spinner", className),
|
|
65
66
|
...props
|
|
66
67
|
});
|
|
67
68
|
}
|
package/dist/styles/activity.css
CHANGED
|
@@ -60,13 +60,6 @@
|
|
|
60
60
|
line-height: 1.35;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
.agent-attention__title,
|
|
64
|
-
.agent-attention__description {
|
|
65
|
-
overflow: hidden;
|
|
66
|
-
text-overflow: ellipsis;
|
|
67
|
-
white-space: nowrap;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
63
|
.agent-attention__title {
|
|
71
64
|
font-size: var(--sigvelo-text-compact);
|
|
72
65
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
@@ -38,13 +38,10 @@
|
|
|
38
38
|
max-inline-size: min(20rem, 45vw);
|
|
39
39
|
align-self: center;
|
|
40
40
|
justify-self: center;
|
|
41
|
-
overflow: hidden;
|
|
42
41
|
color: var(--sigvelo-color-text);
|
|
43
42
|
font-size: var(--sigvelo-density-compact-control-font-size);
|
|
44
43
|
font-weight: var(--sigvelo-font-weight-semibold);
|
|
45
44
|
line-height: var(--sigvelo-leading-tight);
|
|
46
|
-
text-overflow: ellipsis;
|
|
47
|
-
white-space: nowrap;
|
|
48
45
|
}
|
|
49
46
|
|
|
50
47
|
.app-top-bar__trailing {
|
|
@@ -98,13 +95,13 @@
|
|
|
98
95
|
}
|
|
99
96
|
|
|
100
97
|
.app-top-bar__button:focus-visible {
|
|
101
|
-
outline:
|
|
98
|
+
outline: var(--sigvelo-focus-ring-forced);
|
|
102
99
|
outline-offset: 2px;
|
|
103
100
|
box-shadow: none;
|
|
104
101
|
}
|
|
105
102
|
|
|
106
103
|
.app-top-bar__button:is([aria-expanded="true"], [data-popup-open], [data-pressed]) {
|
|
107
|
-
outline:
|
|
104
|
+
outline: var(--sigvelo-focus-ring-forced);
|
|
108
105
|
outline-offset: -2px;
|
|
109
106
|
}
|
|
110
107
|
}
|
|
@@ -66,9 +66,6 @@
|
|
|
66
66
|
font-size: var(--sigvelo-text-xs);
|
|
67
67
|
color: var(--sigvelo-color-text-muted);
|
|
68
68
|
max-inline-size: 80%;
|
|
69
|
-
overflow: hidden;
|
|
70
|
-
text-overflow: ellipsis;
|
|
71
|
-
white-space: nowrap;
|
|
72
69
|
}
|
|
73
70
|
|
|
74
71
|
/* An expired view showing a screenshot fallback keeps the image flush */
|
|
@@ -95,7 +92,7 @@
|
|
|
95
92
|
}
|
|
96
93
|
|
|
97
94
|
.browser-live-view__state-spinner {
|
|
98
|
-
animation:
|
|
95
|
+
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
99
96
|
}
|
|
100
97
|
|
|
101
98
|
/* Expand affordance, video-player style: quiet until the box is hovered or
|
|
@@ -157,12 +154,6 @@
|
|
|
157
154
|
}
|
|
158
155
|
}
|
|
159
156
|
|
|
160
|
-
@keyframes browser-live-view-spin {
|
|
161
|
-
to {
|
|
162
|
-
transform: rotate(360deg);
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
|
|
166
157
|
@media (prefers-reduced-motion: reduce) {
|
|
167
158
|
.browser-live-view__badge-dot,
|
|
168
159
|
.browser-live-view__state-spinner {
|
|
@@ -61,12 +61,9 @@
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
.browser-run-panel__tab-title {
|
|
64
|
-
overflow: hidden;
|
|
65
64
|
max-inline-size: 100%;
|
|
66
65
|
font-size: var(--sigvelo-text-xs);
|
|
67
66
|
line-height: var(--sigvelo-leading-tight);
|
|
68
|
-
text-overflow: ellipsis;
|
|
69
|
-
white-space: nowrap;
|
|
70
67
|
}
|
|
71
68
|
|
|
72
69
|
.browser-run-panel__address-bar {
|
|
@@ -105,13 +102,7 @@
|
|
|
105
102
|
}
|
|
106
103
|
|
|
107
104
|
.browser-run-panel__spinner {
|
|
108
|
-
animation:
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
@keyframes browser-run-panel-spin {
|
|
112
|
-
to {
|
|
113
|
-
transform: rotate(360deg);
|
|
114
|
-
}
|
|
105
|
+
animation: sigvelo-icon-spin 900ms linear infinite;
|
|
115
106
|
}
|
|
116
107
|
|
|
117
108
|
@media (prefers-reduced-motion: reduce) {
|
|
@@ -126,7 +117,7 @@
|
|
|
126
117
|
|
|
127
118
|
@media (forced-colors: active) {
|
|
128
119
|
.browser-run-panel__tab[data-active] {
|
|
129
|
-
outline:
|
|
120
|
+
outline: var(--sigvelo-focus-ring-forced);
|
|
130
121
|
outline-offset: -2px;
|
|
131
122
|
}
|
|
132
123
|
}
|