@mcp-b/react-components 0.56.0 → 0.56.1
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/{CodeBlock-Dw1z6jc8.js → CodeBlock-Bl-q7wMc.js} +1 -1
- package/dist/{FileTree-okaLnS5j.js → FileTree-DruTQ-oa.js} +1 -1
- package/dist/{ManagerOffice-D4L_xO4i.js → ManagerOffice-CMJ7laGe.js} +5 -5
- package/dist/{SetupChecklist-DWyifWWg.js → SetupChecklist-BiWQkKEq.js} +2 -2
- package/dist/{WorkspaceFileView-DQDWUpAH.js → WorkspaceFileView-DXgTljKV.js} +2 -2
- package/dist/components/agents-sdk/AgentActivity.js +1 -1
- package/dist/components/agents-sdk/AgentChat.js +16 -20
- package/dist/components/agents-sdk/AgentEvent.js +2 -2
- package/dist/components/agents-sdk/BrowserLiveScreen.js +1 -1
- package/dist/components/agents-sdk/BrowserLiveView.js +1 -1
- package/dist/components/agents-sdk/BrowserReplay.js +1 -1
- package/dist/components/agents-sdk/BrowserRunPanel.js +1 -1
- package/dist/components/agents-sdk/EmployeeApp.js +2 -2
- package/dist/components/agents-sdk/EmployeeChat.js +5 -5
- package/dist/components/agents-sdk/EmployeeChrome.js +12 -12
- package/dist/components/agents-sdk/EmployeeSchedules.js +3 -3
- package/dist/components/agents-sdk/EmployeeStartScreen.js +4 -4
- package/dist/components/agents-sdk/ManagerAccountActions.js +3 -3
- package/dist/components/agents-sdk/ManagerOffice.js +1 -1
- package/dist/components/agents-sdk/ManagerOfficeScreens.js +2 -2
- package/dist/components/agents-sdk/McpConnectionRequest.js +2 -2
- package/dist/components/agents-sdk/McpConnectorForm.js +1 -1
- package/dist/components/agents-sdk/McpPluginCatalog.js +3 -3
- package/dist/components/agents-sdk/McpServerPicker.js +2 -2
- package/dist/components/agents-sdk/ModelEndpointDialog.js +1 -1
- package/dist/components/agents-sdk/ModelSelector.js +4 -4
- package/dist/components/agents-sdk/PromptInputApproval.js +1 -1
- package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
- package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
- package/dist/components/agents-sdk/SubagentRunPanel.js +1 -1
- package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
- package/dist/components/agents-sdk/ThinkChatActivity.js +3 -3
- package/dist/components/agents-sdk/ThinkChatToolPanels.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -2
- package/dist/components/agents-sdk/ThinkExecutionStatus.js +1 -1
- package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +3 -3
- package/dist/components/agents-sdk/ThinkFullApp.d.ts +1 -1
- package/dist/components/agents-sdk/ThinkFullApp.js +1 -4
- package/dist/components/agents-sdk/ThinkRecoveryNotice.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineActions.js +2 -2
- package/dist/components/agents-sdk/ThinkRoutineBrowser.js +2 -2
- package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
- package/dist/components/agents-sdk/ThinkRoutineForm.js +4 -4
- package/dist/components/agents-sdk/ThinkRoutineRuns.js +1 -1
- package/dist/components/agents-sdk/ThinkThreadPicker.js +12 -9
- package/dist/components/agents-sdk/WorkbenchBack.js +1 -1
- package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
- package/dist/components/agents-sdk/WorkspaceCorrespondence.js +6 -6
- package/dist/components/agents-sdk/WorkspaceExecution.js +7 -7
- package/dist/components/agents-sdk/WorkspaceExplorer.js +3 -3
- package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
- package/dist/components/agents-sdk/WorkspaceHeader.js +1 -1
- package/dist/components/agents-sdk/WorkspaceMountManager.js +1 -1
- package/dist/components/agents-sdk/WorkspaceProject.js +4 -4
- package/dist/components/agents-sdk/WorkspaceUserScript.js +4 -4
- package/dist/components/ai-sdk/Activity.js +1 -1
- package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
- package/dist/components/ai-sdk/Approval.js +2 -2
- package/dist/components/ai-sdk/Artifact.js +1 -1
- package/dist/components/ai-sdk/ChainOfThought.js +1 -1
- package/dist/components/ai-sdk/Checkpoint.js +1 -1
- package/dist/components/ai-sdk/CodeBlock.js +1 -1
- package/dist/components/ai-sdk/ComposerLink.js +1 -1
- package/dist/components/ai-sdk/ConnectedAppCards.js +3 -3
- package/dist/components/ai-sdk/Context.js +1 -1
- package/dist/components/ai-sdk/Conversation.js +1 -1
- package/dist/components/ai-sdk/Goal.js +1 -1
- package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
- package/dist/components/ai-sdk/Message.js +2 -2
- package/dist/components/ai-sdk/MessageScroller.js +1 -1
- package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
- package/dist/components/ai-sdk/Plan.js +1 -1
- package/dist/components/ai-sdk/PromptInput.js +6 -6
- package/dist/components/ai-sdk/Queue.js +1 -1
- package/dist/components/ai-sdk/Reasoning.js +1 -1
- package/dist/components/ai-sdk/Sources.js +1 -1
- package/dist/components/ai-sdk/Task.js +1 -1
- package/dist/components/extension/ChatGptSignInScreen.js +1 -1
- package/dist/components/extension/CodexModelSelector.js +2 -2
- package/dist/components/extension/ConversationTabPicker.js +2 -2
- package/dist/components/foundations/Checkbox.js +1 -1
- package/dist/components/foundations/Collapsible.js +1 -1
- package/dist/components/foundations/ContextMenu.js +1 -1
- package/dist/components/foundations/Menubar.js +1 -1
- package/dist/components/foundations/SearchField.js +1 -1
- package/dist/components/foundations/Select.js +1 -1
- package/dist/components/foundations/Stepper.js +1 -1
- package/dist/components/foundations/Toast.js +1 -1
- package/dist/components/foundations/ToggleGroup.d.ts +1 -1
- package/dist/components/foundations/ToggleGroup.js +1 -1
- package/dist/components/foundations/icons.js +1 -1
- package/dist/components/general-purpose/AccountSignInDialog.js +1 -1
- package/dist/components/general-purpose/Commit.js +2 -2
- package/dist/components/general-purpose/EnvironmentVariables.js +2 -2
- package/dist/components/general-purpose/FileTree.js +1 -1
- package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
- package/dist/components/general-purpose/PricingPlanCard.js +2 -2
- package/dist/components/general-purpose/PricingUsageCalculator.js +2 -2
- package/dist/components/general-purpose/ResponsiveSidebarShell.js +1 -1
- package/dist/components/general-purpose/SettingsFormDialog.js +2 -2
- package/dist/components/general-purpose/SetupChecklist.js +1 -1
- package/dist/components/general-purpose/Terminal.js +2 -2
- package/dist/components/general-purpose/TestResults.js +1 -1
- package/dist/components/general-purpose/ThemeModeControl.js +2 -2
- package/dist/components/general-purpose/WebPreview.js +2 -2
- package/dist/components/nanites/AgentConnection.js +2 -2
- package/dist/components/nanites/AgentToolDetail.js +5 -5
- package/dist/{copy-button-Dk2vRe9j.js → copy-button-CSDuDfdP.js} +1 -1
- package/dist/styles/agent-chat.css +30 -35
- package/dist/styles/app-icon.css +1 -2
- package/dist/styles/base.css +19 -10
- package/dist/styles/brand-loading.css +14 -0
- package/dist/styles/brand.test.ts +21 -0
- package/dist/styles/browser-replay.css +2 -2
- package/dist/styles/button.css +0 -2
- package/dist/styles/checkbox.css +1 -1
- package/dist/styles/composition-motion.css +13 -3
- package/dist/styles/github-motion-mark.css +2 -2
- package/dist/styles/responsive-sidebar-shell.css +11 -1
- package/dist/styles/search-field.css +1 -1
- package/dist/styles/tabs.css +1 -1
- package/dist/styles/think-routine.css +0 -2
- package/dist/styles/think-thread-picker.css +18 -5
- package/dist/styles/toggle-group.css +2 -2
- package/dist/{workspace-assets-wW_lQLYK.js → workspace-assets-Bg7XhPsk.js} +2 -2
- package/package.json +6 -6
- package/dist/{icons-CeGfXO21.js → icons-cuEtsgj9.js} +1 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Field } from "../foundations/Field.js";
|
|
2
1
|
import { Dialog } from "../foundations/Dialog.js";
|
|
2
|
+
import { Field } from "../foundations/Field.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/general-purpose/AccountSignInDialog.tsx
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
+
import { S as FileIcon, p as ChevronRightIcon } from "../../icons-cuEtsgj9.js";
|
|
2
3
|
import { Collapsible } from "../foundations/Collapsible.js";
|
|
3
|
-
import {
|
|
4
|
-
import { t as CopyButton } from "../../copy-button-Dk2vRe9j.js";
|
|
4
|
+
import { t as CopyButton } from "../../copy-button-CSDuDfdP.js";
|
|
5
5
|
import { Avatar } from "../foundations/Avatar.js";
|
|
6
6
|
import "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { b as EyeIcon, x as EyeOffIcon } from "../../icons-
|
|
3
|
-
import { t as CopyButton } from "../../copy-button-
|
|
2
|
+
import { b as EyeIcon, x as EyeOffIcon } from "../../icons-cuEtsgj9.js";
|
|
3
|
+
import { t as CopyButton } from "../../copy-button-CSDuDfdP.js";
|
|
4
4
|
import { Switch } from "../foundations/Switch.js";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../../FileTree-
|
|
1
|
+
import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../../FileTree-DruTQ-oa.js";
|
|
2
2
|
export { FileTree, FileTreeActions, FileTreeFile, FileTreeFolder, FileTreeIcon, FileTreeName };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { Switch } from "../foundations/Switch.js";
|
|
3
2
|
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
3
|
+
import { Switch } from "../foundations/Switch.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/general-purpose/PricingBillingToggle.tsx
|
|
6
6
|
/** Controlled billing-period selector composed from the shared Switch or ToggleGroup. */
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { N as MinusIcon, T as InfoIcon, d as CheckIcon } from "../../icons-
|
|
2
|
+
import { N as MinusIcon, T as InfoIcon, d as CheckIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
4
|
import { IconButton } from "../foundations/IconButton.js";
|
|
5
|
-
import { Card } from "../foundations/Card.js";
|
|
6
5
|
import { Separator } from "../foundations/Separator.js";
|
|
6
|
+
import { Card } from "../foundations/Card.js";
|
|
7
7
|
import { getPlanPrice, getPlanYearlySavings } from "./Pricing.js";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/components/general-purpose/PricingPlanCard.tsx
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import {
|
|
2
|
+
import { Slider } from "../foundations/Slider.js";
|
|
3
3
|
import { Separator } from "../foundations/Separator.js";
|
|
4
|
+
import { Card } from "../foundations/Card.js";
|
|
4
5
|
import { Progress } from "../foundations/Progress.js";
|
|
5
|
-
import { Slider } from "../foundations/Slider.js";
|
|
6
6
|
import { formatPricingUsage, getUsagePrice } from "./Pricing.js";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { W as SidebarIcon, et as WarningIcon, f as ChevronDownIcon, r as ArrowLeftIcon } from "../../icons-
|
|
2
|
+
import { W as SidebarIcon, et as WarningIcon, f as ChevronDownIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
4
|
import { t as capitalize } from "../../format-COCyV98Z.js";
|
|
5
5
|
import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { Button } from "../foundations/Button.js";
|
|
2
|
-
import { Field } from "../foundations/Field.js";
|
|
3
|
-
import { Form } from "../foundations/Form.js";
|
|
4
2
|
import { Dialog } from "../foundations/Dialog.js";
|
|
5
3
|
import { a as formatErrorMessage } from "../../format-COCyV98Z.js";
|
|
4
|
+
import { Field } from "../foundations/Field.js";
|
|
5
|
+
import { Form } from "../foundations/Form.js";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
8
|
//#region src/components/general-purpose/SettingsFormDialog.tsx
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as SetupChecklistGroup, t as SetupChecklistAction } from "../../SetupChecklist-
|
|
1
|
+
import { n as SetupChecklistGroup, t as SetupChecklistAction } from "../../SetupChecklist-BiWQkKEq.js";
|
|
2
2
|
export { SetupChecklistAction, SetupChecklistGroup };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { Z as TerminalIcon, nt as XIcon } from "../../icons-
|
|
2
|
+
import { Z as TerminalIcon, nt as XIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { IconButton } from "../foundations/IconButton.js";
|
|
4
|
-
import { t as CopyButton } from "../../copy-button-
|
|
4
|
+
import { t as CopyButton } from "../../copy-button-CSDuDfdP.js";
|
|
5
5
|
import { ScrollArea } from "../foundations/ScrollArea.js";
|
|
6
6
|
import * as React from "react";
|
|
7
7
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as mergeBaseClassName, t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
+
import { K as SpinnerIcon, d as CheckIcon, nt as XIcon, p as ChevronRightIcon } from "../../icons-cuEtsgj9.js";
|
|
2
3
|
import { Collapsible } from "../foundations/Collapsible.js";
|
|
3
|
-
import { K as SpinnerIcon, d as CheckIcon, nt as XIcon, p as ChevronRightIcon } from "../../icons-CeGfXO21.js";
|
|
4
4
|
import { Progress } from "../foundations/Progress.js";
|
|
5
5
|
import * as React from "react";
|
|
6
6
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { F as MoonIcon, P as MonitorIcon, Y as SunIcon } from "../../icons-
|
|
2
|
-
import { Radio, RadioGroup } from "../foundations/RadioGroup.js";
|
|
1
|
+
import { F as MoonIcon, P as MonitorIcon, Y as SunIcon } from "../../icons-cuEtsgj9.js";
|
|
3
2
|
import { useTheme } from "../foundations/ThemeProvider.js";
|
|
3
|
+
import { Radio, RadioGroup } from "../foundations/RadioGroup.js";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/general-purpose/ThemeModeControl.tsx
|
|
6
6
|
const modes = [
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
+
import { H as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
|
|
2
3
|
import { Collapsible } from "../foundations/Collapsible.js";
|
|
3
|
-
import { H as RefreshIcon, f as ChevronDownIcon, i as ArrowRightIcon, r as ArrowLeftIcon } from "../../icons-CeGfXO21.js";
|
|
4
4
|
import { IconButton } from "../foundations/IconButton.js";
|
|
5
|
-
import { Input } from "../foundations/Input.js";
|
|
6
5
|
import { ScrollArea } from "../foundations/ScrollArea.js";
|
|
6
|
+
import { Input } from "../foundations/Input.js";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { Fragment, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
import { useRender } from "@base-ui/react/use-render";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { D as LinkIcon } from "../../icons-
|
|
2
|
+
import { D as LinkIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { Button } from "../foundations/Button.js";
|
|
4
|
-
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../../CodeBlock-Dw1z6jc8.js";
|
|
5
4
|
import { Popover } from "../foundations/Popover.js";
|
|
5
|
+
import { a as CodeBlockCopyButton, i as CodeBlockContent, n as CodeBlockActions, p as CodeBlockTitle, r as CodeBlockContainer, s as CodeBlockHeader, t as CodeBlock } from "../../CodeBlock-Bl-q7wMc.js";
|
|
6
6
|
import { ToggleGroup } from "../foundations/ToggleGroup.js";
|
|
7
7
|
import * as React from "react";
|
|
8
8
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { t as cx } from "../../class-names-BiMDVpUo.js";
|
|
2
|
-
import { r as ArrowLeftIcon } from "../../icons-
|
|
2
|
+
import { r as ArrowLeftIcon } from "../../icons-cuEtsgj9.js";
|
|
3
3
|
import { MessageActions } from "../ai-sdk/Message.js";
|
|
4
|
-
import { TransitionSurface } from "../foundations/TransitionSurface.js";
|
|
5
|
-
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
6
|
-
import { NaniteMark } from "./NaniteScene.js";
|
|
7
4
|
import { SubagentRunIndicator, getSubagentRunName } from "../agents-sdk/SubagentRunIndicator.js";
|
|
8
|
-
import {
|
|
5
|
+
import { NaniteMark } from "./NaniteScene.js";
|
|
9
6
|
import { AgentChat } from "../agents-sdk/AgentChat.js";
|
|
7
|
+
import { TransitionSurface } from "../foundations/TransitionSurface.js";
|
|
8
|
+
import { AppTopBar } from "../general-purpose/AppTopBar.js";
|
|
10
9
|
import { ThinkChat } from "../agents-sdk/ThinkChat.js";
|
|
10
|
+
import { SubagentRunMetadata } from "../agents-sdk/SubagentRunDetails.js";
|
|
11
11
|
import * as React from "react";
|
|
12
12
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
13
13
|
import { useAgentChat } from "@cloudflare/think/react";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { d as CheckIcon, h as CopyIcon } from "./icons-
|
|
1
|
+
import { d as CheckIcon, h as CopyIcon } from "./icons-cuEtsgj9.js";
|
|
2
2
|
import { IconButton } from "./components/foundations/IconButton.js";
|
|
3
3
|
import * as React from "react";
|
|
4
4
|
import { jsx } from "react/jsx-runtime";
|
|
@@ -21,6 +21,16 @@
|
|
|
21
21
|
min-block-size: 0;
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
+
/* One gutter contract for the transcript and floating composer, including
|
|
25
|
+
safe areas. The prompt's internal text padding is independent. */
|
|
26
|
+
.agent-chat__transcript-content,
|
|
27
|
+
.agent-chat__dock {
|
|
28
|
+
--agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-4));
|
|
29
|
+
|
|
30
|
+
padding-inline: max(var(--agent-chat-used-column-inset), env(safe-area-inset-left, 0px))
|
|
31
|
+
max(var(--agent-chat-used-column-inset), env(safe-area-inset-right, 0px));
|
|
32
|
+
}
|
|
33
|
+
|
|
24
34
|
/* Room for the last message to scroll clear of the floating composer.
|
|
25
35
|
--agent-chat-dock-size is set from a ResizeObserver in AgentChat. */
|
|
26
36
|
.agent-chat__transcript-content {
|
|
@@ -31,21 +41,14 @@
|
|
|
31
41
|
--message-scroller-virtual-block-start: var(--sigvelo-spacing-8);
|
|
32
42
|
|
|
33
43
|
min-inline-size: 0;
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
cannot overflow the scroller or eat the composer clearance. */
|
|
38
|
-
--agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-4));
|
|
39
|
-
inline-size: min(
|
|
40
|
-
calc(100% - 2 * var(--agent-chat-used-column-inset)),
|
|
41
|
-
var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
|
|
42
|
-
);
|
|
44
|
+
/* Auto width subtracts the gutters from the content box; cap the reading
|
|
45
|
+
width at the same measure as the composer. */
|
|
46
|
+
max-inline-size: var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block));
|
|
43
47
|
margin-inline: auto;
|
|
44
48
|
/* Clearance = composer + its scrim band, so a transcript resting at the
|
|
45
49
|
bottom never sits inside the fade. */
|
|
46
50
|
padding-block: var(--message-scroller-virtual-block-start)
|
|
47
51
|
calc(var(--agent-chat-dock-size, 5rem) + var(--agent-chat-dock-scrim-fade, 2.5rem));
|
|
48
|
-
padding-inline: var(--agent-chat-used-column-inset);
|
|
49
52
|
}
|
|
50
53
|
|
|
51
54
|
.agent-chat:not(:has(.agent-chat__dock-content > :not(.agent-chat__notice:empty)))
|
|
@@ -69,11 +72,15 @@
|
|
|
69
72
|
lower edge, so the state sits slightly high rather than under it. The
|
|
70
73
|
shared brand loading state brings its own type and colour. */
|
|
71
74
|
.agent-chat__transcript-loading {
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
scrollbar-gutter: stable;
|
|
72
77
|
padding-block-end: var(--agent-chat-dock-size, 5rem);
|
|
73
78
|
}
|
|
74
79
|
|
|
75
80
|
.agent-chat:not(:has(.agent-chat__dock-content > :not(.agent-chat__notice:empty)))
|
|
76
81
|
.agent-chat__transcript-loading {
|
|
82
|
+
overflow: hidden;
|
|
83
|
+
scrollbar-gutter: stable;
|
|
77
84
|
padding-block-end: 0;
|
|
78
85
|
}
|
|
79
86
|
|
|
@@ -145,6 +152,8 @@
|
|
|
145
152
|
}
|
|
146
153
|
|
|
147
154
|
.agent-chat-start-screen__composer > .agent-chat__dock > .agent-chat__dock-content {
|
|
155
|
+
/* The start screen already reserves its own scrollbar gutter. */
|
|
156
|
+
scrollbar-gutter: auto;
|
|
148
157
|
--agent-chat-dock-ink-room: 0px;
|
|
149
158
|
|
|
150
159
|
overflow: visible;
|
|
@@ -301,14 +310,7 @@
|
|
|
301
310
|
position: absolute;
|
|
302
311
|
inset-inline: 0;
|
|
303
312
|
inset-block-end: 0;
|
|
304
|
-
padding-block: 0 max(var(--sigvelo-spacing-
|
|
305
|
-
/* Same column as the transcript (Codex px-toolbar). The pill's own
|
|
306
|
-
padding lives on .prompt-input. */
|
|
307
|
-
padding-inline: max(
|
|
308
|
-
var(--agent-chat-column-inset, var(--sigvelo-spacing-4)),
|
|
309
|
-
env(safe-area-inset-left, 0px)
|
|
310
|
-
)
|
|
311
|
-
max(var(--agent-chat-column-inset, var(--sigvelo-spacing-4)), env(safe-area-inset-right, 0px));
|
|
313
|
+
padding-block: 0 max(var(--sigvelo-spacing-2), env(safe-area-inset-bottom, 0px));
|
|
312
314
|
}
|
|
313
315
|
|
|
314
316
|
/* Solid behind the composer itself, dissolving upward so passing transcript
|
|
@@ -446,6 +448,12 @@
|
|
|
446
448
|
only where there is genuinely no room for it. */
|
|
447
449
|
/* Local wrap. Not --sigvelo-layout-break-compact. */
|
|
448
450
|
@container agent-chat (inline-size <= 36rem) {
|
|
451
|
+
.agent-chat__transcript-content,
|
|
452
|
+
.agent-chat__dock {
|
|
453
|
+
/* Codex Chrome extension: [--padding-toolbar:calc(var(--spacing)*2)] = 8px. */
|
|
454
|
+
--agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-2));
|
|
455
|
+
}
|
|
456
|
+
|
|
449
457
|
.agent-chat__transcript-content {
|
|
450
458
|
/* A notch pushes the first row down only as far as it must: the desktop
|
|
451
459
|
inset already clears shallow insets, so only deeper ones add height. */
|
|
@@ -453,23 +461,6 @@
|
|
|
453
461
|
var(--sigvelo-spacing-8),
|
|
454
462
|
calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px))
|
|
455
463
|
);
|
|
456
|
-
|
|
457
|
-
--agent-chat-used-column-inset: var(--agent-chat-column-inset, var(--sigvelo-spacing-2));
|
|
458
|
-
inline-size: min(
|
|
459
|
-
calc(100% - 2 * var(--agent-chat-used-column-inset)),
|
|
460
|
-
var(--agent-chat-content-max-inline-size, var(--sigvelo-measure-wide-block))
|
|
461
|
-
);
|
|
462
|
-
/* Codex Chrome extension: [--padding-toolbar:calc(var(--spacing)*2)] = 8px. */
|
|
463
|
-
padding-inline: var(--agent-chat-used-column-inset);
|
|
464
|
-
}
|
|
465
|
-
|
|
466
|
-
.agent-chat__dock {
|
|
467
|
-
padding-block-end: max(var(--sigvelo-layout-stack), env(safe-area-inset-bottom, 0px));
|
|
468
|
-
padding-inline: max(
|
|
469
|
-
var(--agent-chat-column-inset, var(--sigvelo-spacing-2)),
|
|
470
|
-
env(safe-area-inset-left, 0px)
|
|
471
|
-
)
|
|
472
|
-
max(var(--agent-chat-column-inset, var(--sigvelo-spacing-2)), env(safe-area-inset-right, 0px));
|
|
473
464
|
}
|
|
474
465
|
|
|
475
466
|
.agent-chat-start-screen__content {
|
|
@@ -516,6 +507,10 @@
|
|
|
516
507
|
.agent-chat__dock-content {
|
|
517
508
|
--agent-chat-dock-ink-room: var(--sigvelo-spacing-5);
|
|
518
509
|
|
|
510
|
+
/* Match the transcript viewport on platforms with classic scrollbars,
|
|
511
|
+
even while this dock is short enough not to scroll. */
|
|
512
|
+
scrollbar-gutter: stable;
|
|
513
|
+
|
|
519
514
|
min-block-size: 0;
|
|
520
515
|
overflow: auto;
|
|
521
516
|
margin: calc(-1 * var(--agent-chat-dock-ink-room));
|
package/dist/styles/app-icon.css
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
silhouette, so a transparent favicon casts its shape, not an invisible box. */
|
|
4
4
|
.avatar.app-icon {
|
|
5
5
|
--sigvelo-recipe-app-icon-size: var(--sigvelo-spacing-8);
|
|
6
|
-
--sigvelo-recipe-app-icon-radius:
|
|
6
|
+
--sigvelo-recipe-app-icon-radius: var(--sigvelo-radius-md);
|
|
7
7
|
|
|
8
8
|
position: relative;
|
|
9
9
|
display: inline-flex;
|
|
@@ -28,7 +28,6 @@
|
|
|
28
28
|
|
|
29
29
|
.app-icon[data-app-icon-size="sm"] {
|
|
30
30
|
--sigvelo-recipe-app-icon-size: var(--sigvelo-spacing-6);
|
|
31
|
-
--sigvelo-recipe-app-icon-radius: 37.5%;
|
|
32
31
|
}
|
|
33
32
|
|
|
34
33
|
.app-icon[data-app-icon-size="lg"] {
|
package/dist/styles/base.css
CHANGED
|
@@ -27,33 +27,32 @@
|
|
|
27
27
|
* `round` in the block below. audit:css-recipes fails if that list falls out of
|
|
28
28
|
* sync with the stylesheets.
|
|
29
29
|
*/
|
|
30
|
-
:where(*)
|
|
30
|
+
:where(*),
|
|
31
|
+
:where(*)::before,
|
|
32
|
+
:where(*)::after {
|
|
31
33
|
corner-shape: var(--sigvelo-corner-shape);
|
|
32
34
|
}
|
|
33
35
|
|
|
36
|
+
/* Pseudo-elements follow :where(), since they are invalid inside its selector list. */
|
|
34
37
|
/* sigvelo-pill-shapes:start */
|
|
35
38
|
:where(
|
|
36
39
|
.approval__key,
|
|
37
40
|
.avatar[data-shape="circle"],
|
|
38
41
|
.avatar-group__count,
|
|
39
42
|
.browser-run-panel__tab-glyph,
|
|
43
|
+
.browser-replay .replayer-mouse.touch-device,
|
|
40
44
|
.chain-of-thought__search-result,
|
|
41
45
|
.chain-of-thought__step-indicator,
|
|
42
46
|
.codex-model-selector__trigger,
|
|
43
|
-
.codex-model-selector__trigger::before,
|
|
44
47
|
.empty-state__icon,
|
|
45
48
|
.inline-citation__trigger,
|
|
46
49
|
.media-preview-card__play,
|
|
47
50
|
.manager-office__unread-dot,
|
|
48
|
-
.manager-office__employee-nav::-webkit-scrollbar-thumb,
|
|
49
|
-
:where([data-layout="chat"]) .manager-office__employee-link[aria-current="page"]::after,
|
|
50
|
-
.menu__radio-indicator::before,
|
|
51
51
|
.message-scroller__button,
|
|
52
52
|
.plan-summary__trigger,
|
|
53
53
|
.plan__step-indicator,
|
|
54
54
|
.prompt-input__button[data-responsive-label],
|
|
55
55
|
.prompt-input__context-trigger,
|
|
56
|
-
.prompt-input__dictation[data-listening] .prompt-input__dictation-icon::before,
|
|
57
56
|
.prompt-input__permissions-trigger,
|
|
58
57
|
.prompt-input__recording-button,
|
|
59
58
|
.prompt-input__stop,
|
|
@@ -62,24 +61,34 @@
|
|
|
62
61
|
.radio,
|
|
63
62
|
.radio__indicator,
|
|
64
63
|
.scroll-area__thumb,
|
|
64
|
+
.sigvelo-floating-prompt > *,
|
|
65
65
|
.slider__indicator,
|
|
66
66
|
.slider__thumb,
|
|
67
67
|
.slider__track,
|
|
68
68
|
.stepper__indicator,
|
|
69
69
|
.stepper__separator,
|
|
70
70
|
.stepper__trigger,
|
|
71
|
-
.subagent-run__milestone::before,
|
|
72
71
|
.switch,
|
|
73
72
|
.switch__thumb,
|
|
74
|
-
.task__item::before,
|
|
75
73
|
.test-results__test-status,
|
|
76
|
-
.think-full-app__resizer::before,
|
|
77
74
|
.think-routine__routine-status,
|
|
75
|
+
.think-thread-status-dot,
|
|
78
76
|
[data-slot="meter-indicator"],
|
|
79
77
|
[data-slot="meter-track"],
|
|
80
78
|
[data-slot="progress-indicator"],
|
|
81
79
|
[data-slot="progress-track"]
|
|
82
|
-
)
|
|
80
|
+
),
|
|
81
|
+
:where(.browser-replay .replayer-mouse)::after,
|
|
82
|
+
:where(.codex-model-selector__trigger)::before,
|
|
83
|
+
:where(.github-motion-mark)::before,
|
|
84
|
+
:where(.github-motion-mark)::after,
|
|
85
|
+
:where(.manager-office__employee-nav)::-webkit-scrollbar-thumb,
|
|
86
|
+
:where(:where([data-layout="chat"]) .manager-office__employee-link[aria-current="page"])::after,
|
|
87
|
+
:where(.menu__radio-indicator)::before,
|
|
88
|
+
:where(.prompt-input__dictation[data-listening] .prompt-input__dictation-icon)::before,
|
|
89
|
+
:where(.subagent-run__milestone)::before,
|
|
90
|
+
:where(.task__item)::before,
|
|
91
|
+
:where(.think-full-app__resizer)::before {
|
|
83
92
|
--sigvelo-corner-shape: round;
|
|
84
93
|
}
|
|
85
94
|
/* sigvelo-pill-shapes:end */
|
|
@@ -47,6 +47,20 @@
|
|
|
47
47
|
text-align: center;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
+
/* A brief pending mount should not flash a full-strength logo. Keep the
|
|
51
|
+
region and its announcement present; only the artwork and copy fade in. */
|
|
52
|
+
.brand-loading__mark,
|
|
53
|
+
.brand-loading__label {
|
|
54
|
+
transition: opacity var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
@starting-style {
|
|
58
|
+
.brand-loading__mark,
|
|
59
|
+
.brand-loading__label {
|
|
60
|
+
opacity: 0;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
50
64
|
@media (prefers-reduced-motion: reduce), (forced-colors: active) {
|
|
51
65
|
.brand-loading__mark::after {
|
|
52
66
|
display: none;
|
|
@@ -156,3 +156,24 @@ test("OS-following mode uses the same Sigvelo palette", () => {
|
|
|
156
156
|
matchMedia("(prefers-color-scheme: dark)").matches ? "rgb(23, 23, 22)" : "rgb(247, 247, 244)",
|
|
157
157
|
);
|
|
158
158
|
});
|
|
159
|
+
|
|
160
|
+
test("shared Squircle corners preserve true circular pseudo-elements and button variant shape", () => {
|
|
161
|
+
root.removeAttribute("data-preset");
|
|
162
|
+
root.removeAttribute("data-style");
|
|
163
|
+
const primary = document.createElement("button");
|
|
164
|
+
primary.className = "button button--normal button--primary";
|
|
165
|
+
const destructive = document.createElement("button");
|
|
166
|
+
destructive.className = "button button--normal button--destructive";
|
|
167
|
+
const mark = document.createElement("span");
|
|
168
|
+
mark.className = "github-motion-mark";
|
|
169
|
+
document.body.append(primary, destructive, mark);
|
|
170
|
+
expect(getComputedStyle(destructive).borderRadius).toBe(getComputedStyle(primary).borderRadius);
|
|
171
|
+
if (CSS.supports("corner-shape", "superellipse(1.5)")) {
|
|
172
|
+
expect(getComputedStyle(primary).getPropertyValue("corner-shape")).toBe("superellipse(1.5)");
|
|
173
|
+
expect(getComputedStyle(primary, "::after").getPropertyValue("corner-shape")).toBe(
|
|
174
|
+
"superellipse(1.5)",
|
|
175
|
+
);
|
|
176
|
+
expect(getComputedStyle(mark, "::before").getPropertyValue("corner-shape")).toBe("round");
|
|
177
|
+
expect(getComputedStyle(mark, "::after").getPropertyValue("corner-shape")).toBe("round");
|
|
178
|
+
}
|
|
179
|
+
});
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
width: 20px;
|
|
97
97
|
height: 20px;
|
|
98
98
|
background: var(--sigvelo-color-focus);
|
|
99
|
-
border-radius:
|
|
99
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
100
100
|
transform: translate(-50%, -50%);
|
|
101
101
|
opacity: 0.3;
|
|
102
102
|
}
|
|
@@ -114,7 +114,7 @@
|
|
|
114
114
|
border-color: transparent;
|
|
115
115
|
border-style: solid;
|
|
116
116
|
border-width: 4px;
|
|
117
|
-
border-radius:
|
|
117
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
118
118
|
transition:
|
|
119
119
|
left 0s linear,
|
|
120
120
|
top 0s linear,
|
package/dist/styles/button.css
CHANGED
package/dist/styles/checkbox.css
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
flex-shrink: 0;
|
|
10
10
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width)
|
|
11
11
|
var(--sigvelo-color-neutral-border-muted);
|
|
12
|
-
border-radius: calc(var(--sigvelo-radius-md) -
|
|
12
|
+
border-radius: calc(var(--sigvelo-radius-md) - var(--sigvelo-spacing-1));
|
|
13
13
|
background-color: var(--sigvelo-color-canvas);
|
|
14
14
|
outline: none;
|
|
15
15
|
cursor: pointer;
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
52
|
|
|
53
|
-
/*
|
|
53
|
+
/* Snapshot ownership stays with the caller: Router for routes, React for local Suspense demos. */
|
|
54
54
|
::view-transition {
|
|
55
55
|
pointer-events: none;
|
|
56
56
|
}
|
|
@@ -60,12 +60,22 @@
|
|
|
60
60
|
animation-timing-function: var(--sigvelo-motion-ease-change);
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
+
/* A single Router-owned crossfade. Streaming and refetches never start this type. */
|
|
64
|
+
:root:active-view-transition-type(sigvelo-navigation)::view-transition-group(root) {
|
|
65
|
+
animation-duration: var(--sigvelo-motion-duration-disclosure);
|
|
66
|
+
animation-timing-function: var(--sigvelo-motion-ease-change);
|
|
67
|
+
}
|
|
68
|
+
|
|
63
69
|
@media (prefers-reduced-motion: reduce) {
|
|
64
|
-
::view-transition-group(
|
|
70
|
+
::view-transition-group(*),
|
|
71
|
+
::view-transition-old(*),
|
|
72
|
+
::view-transition-new(*) {
|
|
65
73
|
animation: none !important;
|
|
66
74
|
}
|
|
67
75
|
}
|
|
68
76
|
|
|
69
|
-
:root[data-motion="reduce"]::view-transition-group(
|
|
77
|
+
:root[data-motion="reduce"]::view-transition-group(*),
|
|
78
|
+
:root[data-motion="reduce"]::view-transition-old(*),
|
|
79
|
+
:root[data-motion="reduce"]::view-transition-new(*) {
|
|
70
80
|
animation: none !important;
|
|
71
81
|
}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
.github-motion-mark::before {
|
|
27
27
|
inset: -0.22em;
|
|
28
28
|
border: var(--sigvelo-border-style) var(--sigvelo-border-width) currentColor;
|
|
29
|
-
border-radius:
|
|
29
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
30
30
|
opacity: 0.24;
|
|
31
31
|
transform-origin: 50% 50%;
|
|
32
32
|
animation: github-motion-mark-ring 2.6s ease-out infinite;
|
|
@@ -35,7 +35,7 @@
|
|
|
35
35
|
.github-motion-mark::after {
|
|
36
36
|
inline-size: 0.24em;
|
|
37
37
|
block-size: 0.24em;
|
|
38
|
-
border-radius:
|
|
38
|
+
border-radius: var(--sigvelo-radius-circle);
|
|
39
39
|
background: currentColor;
|
|
40
40
|
opacity: 0.55;
|
|
41
41
|
transform: translate(0.48em, -0.46em);
|
|
@@ -272,6 +272,16 @@
|
|
|
272
272
|
display: contents;
|
|
273
273
|
}
|
|
274
274
|
|
|
275
|
+
/* Rich title triggers need the space left by the actual controls, rather
|
|
276
|
+
than the plain title's 45vw cap, to keep activity counts and a readable name. */
|
|
277
|
+
.app-top-bar[data-compact-leading="trigger"] {
|
|
278
|
+
grid-template-columns: auto var(--sigvelo-layout-track-fill) auto;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
.app-top-bar[data-compact-leading="trigger"] .app-top-bar__title {
|
|
282
|
+
max-inline-size: 100%;
|
|
283
|
+
}
|
|
284
|
+
|
|
275
285
|
.responsive-sidebar-shell__title-trigger {
|
|
276
286
|
inline-size: auto;
|
|
277
287
|
max-inline-size: 100%;
|
|
@@ -290,7 +300,7 @@
|
|
|
290
300
|
box-shadow: var(--sigvelo-recipe-focus-shadow-inset);
|
|
291
301
|
}
|
|
292
302
|
|
|
293
|
-
.responsive-sidebar-shell__title-trigger span {
|
|
303
|
+
.responsive-sidebar-shell__title-trigger > span {
|
|
294
304
|
min-inline-size: 0;
|
|
295
305
|
overflow: hidden;
|
|
296
306
|
text-overflow: ellipsis;
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
--sigvelo-recipe-control-font-size: var(--sigvelo-density-compact-control-font-size);
|
|
5
5
|
--sigvelo-recipe-control-line-height: var(--sigvelo-density-compact-control-line-height);
|
|
6
6
|
--sigvelo-recipe-control-icon-size: var(--sigvelo-density-compact-control-icon-size);
|
|
7
|
-
--sigvelo-recipe-control-radius: var(--sigvelo-radius-
|
|
7
|
+
--sigvelo-recipe-control-radius: var(--sigvelo-radius-xl);
|
|
8
8
|
--sigvelo-recipe-focus-shadow: var(--sigvelo-recipe-focus-shadow-inset);
|
|
9
9
|
--sigvelo-focus-offset: -2px;
|
|
10
10
|
}
|
package/dist/styles/tabs.css
CHANGED
|
@@ -43,6 +43,7 @@
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
.think-thread-status-indicators {
|
|
46
|
+
flex: 0 0 auto;
|
|
46
47
|
min-inline-size: 0;
|
|
47
48
|
display: inline-flex;
|
|
48
49
|
align-items: center;
|
|
@@ -66,6 +67,18 @@
|
|
|
66
67
|
block-size: var(--sigvelo-density-compact-control-icon-size);
|
|
67
68
|
}
|
|
68
69
|
|
|
70
|
+
.think-thread-status-dot {
|
|
71
|
+
flex: none;
|
|
72
|
+
inline-size: var(--sigvelo-spacing-1-5);
|
|
73
|
+
block-size: var(--sigvelo-spacing-1-5);
|
|
74
|
+
border-radius: var(--sigvelo-radius-full);
|
|
75
|
+
background: currentColor;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
.think-thread-status-indicators__item .think-thread-status-dot {
|
|
79
|
+
margin-inline: var(--sigvelo-spacing-1);
|
|
80
|
+
}
|
|
81
|
+
|
|
69
82
|
.think-thread-status-indicators__item[data-status="running"] {
|
|
70
83
|
color: var(--sigvelo-color-primary-text);
|
|
71
84
|
}
|
|
@@ -260,11 +273,6 @@
|
|
|
260
273
|
color: var(--sigvelo-color-primary-text);
|
|
261
274
|
}
|
|
262
275
|
|
|
263
|
-
/* The six statuses this rule used to list were `isThreadBusy` written out a
|
|
264
|
-
second time, and those are exactly the ones that render SpinnerIcon, which
|
|
265
|
-
spins itself. A DotIcon never needed the rule and would have started turning
|
|
266
|
-
the moment the two lists disagreed. */
|
|
267
|
-
|
|
268
276
|
.think-thread-picker__thread[data-thread-status="error"] .think-thread-picker__thread-status {
|
|
269
277
|
color: var(--sigvelo-color-danger-text);
|
|
270
278
|
}
|
|
@@ -343,6 +351,11 @@
|
|
|
343
351
|
}
|
|
344
352
|
|
|
345
353
|
@media (forced-colors: active) {
|
|
354
|
+
.think-thread-status-dot {
|
|
355
|
+
forced-color-adjust: none;
|
|
356
|
+
background: CanvasText;
|
|
357
|
+
}
|
|
358
|
+
|
|
346
359
|
.think-thread-picker {
|
|
347
360
|
border-inline-end: var(--sigvelo-border-style) var(--sigvelo-border-width) canvastext;
|
|
348
361
|
background: canvas;
|