@mcp-b/react-components 0.6.5 → 0.7.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/AgentChat-403mckDG.d.ts +101 -0
- package/dist/BrowserLiveView-ZktFZiMD.d.ts +47 -0
- package/dist/BrowserReplay-6G-mnwcn.d.ts +40 -0
- package/dist/{CodeBlock-BK0sOAbV.js → CodeBlock-D9koxDA7.js} +1 -1
- package/dist/{FileTree-BWQZ0FSi.js → FileTree-BdK93Uuu.js} +1 -1
- package/dist/ModelSelector-MQvK-pNb.js +306 -0
- package/dist/PromptInput-D6-G24p7.d.ts +528 -0
- package/dist/ThinkChatActivity-CeHzk6-K.d.ts +73 -0
- package/dist/ThinkChatContext-CC94HL4u.d.ts +28 -0
- package/dist/ThinkChatToolParts-DnUiZgCC.d.ts +83 -0
- package/dist/components/Activity.js +1 -1
- package/dist/components/AgentChat.d.ts +1 -103
- package/dist/components/AgentChat.js +77 -58
- package/dist/components/AgentConnection.d.ts +43 -2
- package/dist/components/AgentConnection.js +154 -3
- package/dist/components/Artifact.js +1 -1
- package/dist/components/BrowserLiveView.d.ts +1 -46
- package/dist/components/BrowserLiveView.js +1 -1
- package/dist/components/BrowserReplay.d.ts +1 -39
- package/dist/components/BrowserReplay.js +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -1
- package/dist/components/ChainOfThought.js +1 -1
- package/dist/components/ChatGptSignInScreen.d.ts +38 -0
- package/dist/components/ChatGptSignInScreen.js +201 -0
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/Commit.js +1 -1
- package/dist/components/Context.d.ts +6 -10
- package/dist/components/Context.js +4 -2
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.d.ts +28 -28
- package/dist/components/Conversation.js +36 -55
- package/dist/components/Dialog.js +1 -1
- package/dist/components/EnvironmentVariables.js +1 -1
- package/dist/components/FileTree.js +1 -1
- package/dist/components/Marker.d.ts +57 -0
- package/dist/components/Marker.js +89 -0
- package/dist/components/McpServerPicker.js +1 -1
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.js +1 -1
- package/dist/components/MessageScroller.d.ts +52 -0
- package/dist/components/MessageScroller.js +62 -0
- package/dist/components/ModelSelector.js +1 -305
- package/dist/components/NavigationMenu.js +1 -1
- package/dist/components/PromptInput.d.ts +2 -534
- package/dist/components/PromptInput.js +18 -12
- package/dist/components/Queue.js +1 -1
- package/dist/components/Reasoning.js +1 -1
- package/dist/components/Select.js +1 -1
- package/dist/components/Sources.js +1 -1
- package/dist/components/Stepper.js +1 -1
- package/dist/components/Task.js +1 -1
- package/dist/components/Terminal.js +2 -2
- package/dist/components/TestResults.js +1 -1
- package/dist/components/ThinkChat.d.ts +23 -80
- package/dist/components/ThinkChat.js +60 -857
- package/dist/components/ThinkChatActivity.d.ts +3 -0
- package/dist/components/ThinkChatActivity.js +429 -0
- package/dist/components/ThinkChatContext.d.ts +2 -0
- package/dist/components/ThinkChatContext.js +10 -0
- package/dist/components/ThinkChatToolPanels.d.ts +39 -0
- package/dist/components/ThinkChatToolPanels.js +355 -0
- package/dist/components/ThinkChatToolParts.d.ts +2 -0
- package/dist/components/ThinkChatToolParts.js +66 -0
- package/dist/components/ThinkFullApp.d.ts +23 -0
- package/dist/components/ThinkFullApp.js +175 -0
- package/dist/components/WebPreview.js +1 -1
- package/dist/components/WorkspaceExplorer.d.ts +1 -1
- package/dist/components/WorkspaceExplorer.js +3 -3
- package/dist/components/icons.d.ts +2 -2
- package/dist/components/icons.js +2 -2
- package/dist/components/useStickToBottom.d.ts +5 -2
- package/dist/components/useStickToBottom.js +5 -2
- package/dist/{copy-button-CB2MWcau.js → copy-button-TVhDAroI.js} +1 -1
- package/dist/{icons-BCNawx-T.js → icons-BAlTbWWP.js} +27 -1
- package/dist/{icons-BYpJY6L2.d.ts → icons-BRI54ATJ.d.ts} +2 -1
- package/dist/styles/agent-chat.css +15 -3
- package/dist/styles/agent-connection.css +33 -4
- package/dist/styles/chatgpt-sign-in-screen.css +224 -0
- package/dist/styles/code-block.css +6 -4
- package/dist/styles/conversation.css +10 -0
- package/dist/styles/index.css +4 -0
- package/dist/styles/marker.css +95 -0
- package/dist/styles/message-scroller.css +113 -0
- package/dist/styles/message.css +2 -1
- package/dist/styles/prompt-input.css +1 -0
- package/dist/styles/scrollbars.css +10 -2
- package/dist/styles/streamdown.css +2 -0
- package/dist/styles/think-full-app.css +318 -0
- package/dist/utils/mcp-server-catalog.d.ts +23 -1
- package/dist/utils/mcp-server-catalog.js +27 -1
- package/package.json +3 -2
package/dist/components/icons.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { A as
|
|
2
|
-
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
|
1
|
+
import { A as SearchIcon, C as MonitorIcon, D as PlayIcon, E as PencilIcon, F as WrenchIcon, I as XIcon, M as SquareIcon, N as TerminalIcon, O as PlusIcon, P as WarningIcon, S as MinusIcon, T as PauseIcon, _ as FolderOpenIcon, a as CheckIcon, b as LinkIcon, c as ChevronRightIcon, d as DownloadIcon, f as EllipsisIcon, g as FolderIcon, h as FileIcon, i as ArrowUpIcon, j as SpinnerIcon, k as RefreshIcon, l as CopyIcon, m as EyeOffIcon, n as ArrowLeftIcon, o as ChevronDownIcon, p as EyeIcon, r as ArrowRightIcon, s as ChevronLeftIcon, t as ArrowDownIcon, u as DotIcon, v as ImageIcon, w as PaperclipIcon, x as MaximizeIcon, y as InfoIcon } from "../icons-BAlTbWWP.js";
|
|
2
|
+
export { ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CopyIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, MinusIcon, MonitorIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, RefreshIcon, SearchIcon, SpinnerIcon, SquareIcon, TerminalIcon, WarningIcon, WrenchIcon, XIcon };
|
|
@@ -22,8 +22,11 @@ interface UseStickToBottomResult {
|
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Pin a scrollable viewport to the bottom as its content grows, unless the
|
|
25
|
-
* user has scrolled up.
|
|
26
|
-
*
|
|
25
|
+
* user has scrolled up.
|
|
26
|
+
*
|
|
27
|
+
* @deprecated Use MessageScroller for chat transcripts. Keep this only for
|
|
28
|
+
* standalone streaming panes that do not need transcript row anchoring,
|
|
29
|
+
* history prepending, visibility tracking, or jump-to-message behavior.
|
|
27
30
|
*/
|
|
28
31
|
declare function useStickToBottom(options?: UseStickToBottomOptions): UseStickToBottomResult;
|
|
29
32
|
//#endregion
|
|
@@ -3,8 +3,11 @@ import * as React from "react";
|
|
|
3
3
|
const DEFAULT_STICK_SLACK_PX = 160;
|
|
4
4
|
/**
|
|
5
5
|
* Pin a scrollable viewport to the bottom as its content grows, unless the
|
|
6
|
-
* user has scrolled up.
|
|
7
|
-
*
|
|
6
|
+
* user has scrolled up.
|
|
7
|
+
*
|
|
8
|
+
* @deprecated Use MessageScroller for chat transcripts. Keep this only for
|
|
9
|
+
* standalone streaming panes that do not need transcript row anchoring,
|
|
10
|
+
* history prepending, visibility tracking, or jump-to-message behavior.
|
|
8
11
|
*/
|
|
9
12
|
function useStickToBottom(options = {}) {
|
|
10
13
|
const slackPx = options.slackPx ?? DEFAULT_STICK_SLACK_PX;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { a as CheckIcon, l as CopyIcon } from "./icons-
|
|
1
|
+
import { a as CheckIcon, l as CopyIcon } from "./icons-BAlTbWWP.js";
|
|
2
2
|
import { Button } from "./components/Button.js";
|
|
3
3
|
import { Tooltip, TooltipPopup, TooltipPortal, TooltipPositioner, TooltipTrigger } from "./components/Tooltip.js";
|
|
4
4
|
import * as React from "react";
|
|
@@ -152,6 +152,32 @@ const DotIcon = (props) => /* @__PURE__ */ jsx(Icon, {
|
|
|
152
152
|
stroke: "none"
|
|
153
153
|
})
|
|
154
154
|
});
|
|
155
|
+
const EllipsisIcon = (props) => /* @__PURE__ */ jsxs(Icon, {
|
|
156
|
+
...props,
|
|
157
|
+
children: [
|
|
158
|
+
/* @__PURE__ */ jsx("circle", {
|
|
159
|
+
cx: "3.5",
|
|
160
|
+
cy: "8",
|
|
161
|
+
r: "0.75",
|
|
162
|
+
fill: "currentColor",
|
|
163
|
+
stroke: "none"
|
|
164
|
+
}),
|
|
165
|
+
/* @__PURE__ */ jsx("circle", {
|
|
166
|
+
cx: "8",
|
|
167
|
+
cy: "8",
|
|
168
|
+
r: "0.75",
|
|
169
|
+
fill: "currentColor",
|
|
170
|
+
stroke: "none"
|
|
171
|
+
}),
|
|
172
|
+
/* @__PURE__ */ jsx("circle", {
|
|
173
|
+
cx: "12.5",
|
|
174
|
+
cy: "8",
|
|
175
|
+
r: "0.75",
|
|
176
|
+
fill: "currentColor",
|
|
177
|
+
stroke: "none"
|
|
178
|
+
})
|
|
179
|
+
]
|
|
180
|
+
});
|
|
155
181
|
const SpinnerIcon = (props) => /* @__PURE__ */ jsx(Icon, {
|
|
156
182
|
...props,
|
|
157
183
|
children: /* @__PURE__ */ jsx("path", { d: "M8 1.5A6.5 6.5 0 1 1 1.5 8" })
|
|
@@ -252,4 +278,4 @@ const MaximizeIcon = (props) => /* @__PURE__ */ jsxs(Icon, {
|
|
|
252
278
|
]
|
|
253
279
|
});
|
|
254
280
|
//#endregion
|
|
255
|
-
export {
|
|
281
|
+
export { SearchIcon as A, MonitorIcon as C, PlayIcon as D, PencilIcon as E, WrenchIcon as F, XIcon as I, SquareIcon as M, TerminalIcon as N, PlusIcon as O, WarningIcon as P, MinusIcon as S, PauseIcon as T, FolderOpenIcon as _, CheckIcon as a, LinkIcon as b, ChevronRightIcon as c, DownloadIcon as d, EllipsisIcon as f, FolderIcon as g, FileIcon as h, ArrowUpIcon as i, SpinnerIcon as j, RefreshIcon as k, CopyIcon as l, EyeOffIcon as m, ArrowLeftIcon as n, ChevronDownIcon as o, EyeIcon as p, ArrowRightIcon as r, ChevronLeftIcon as s, ArrowDownIcon as t, DotIcon as u, ImageIcon as v, PaperclipIcon as w, MaximizeIcon as x, InfoIcon as y };
|
|
@@ -35,6 +35,7 @@ declare const ArrowUpIcon: (props: IconProps) => React.JSX.Element;
|
|
|
35
35
|
declare const DownloadIcon: (props: IconProps) => React.JSX.Element;
|
|
36
36
|
declare const RefreshIcon: (props: IconProps) => React.JSX.Element;
|
|
37
37
|
declare const DotIcon: (props: IconProps) => React.JSX.Element;
|
|
38
|
+
declare const EllipsisIcon: (props: IconProps) => React.JSX.Element;
|
|
38
39
|
declare const SpinnerIcon: (props: IconProps) => React.JSX.Element;
|
|
39
40
|
declare const SearchIcon: (props: IconProps) => React.JSX.Element;
|
|
40
41
|
declare const TerminalIcon: (props: IconProps) => React.JSX.Element;
|
|
@@ -46,4 +47,4 @@ declare const ImageIcon: (props: IconProps) => React.JSX.Element;
|
|
|
46
47
|
declare const MonitorIcon: (props: IconProps) => React.JSX.Element;
|
|
47
48
|
declare const MaximizeIcon: (props: IconProps) => React.JSX.Element;
|
|
48
49
|
//#endregion
|
|
49
|
-
export {
|
|
50
|
+
export { RefreshIcon as A, MinusIcon as C, PencilIcon as D, PauseIcon as E, WarningIcon as F, WrenchIcon as I, XIcon as L, SpinnerIcon as M, SquareIcon as N, PlayIcon as O, TerminalIcon as P, MaximizeIcon as S, PaperclipIcon as T, FolderOpenIcon as _, CheckIcon as a, InfoIcon as b, ChevronRightIcon as c, DownloadIcon as d, EllipsisIcon as f, FolderIcon as g, FileIcon as h, ArrowUpIcon as i, SearchIcon as j, PlusIcon as k, CopyIcon as l, EyeOffIcon as m, ArrowLeftIcon as n, ChevronDownIcon as o, EyeIcon as p, ArrowRightIcon as r, ChevronLeftIcon as s, ArrowDownIcon as t, DotIcon as u, IconProps as v, MonitorIcon as w, LinkIcon as x, ImageIcon as y };
|
|
@@ -15,11 +15,23 @@
|
|
|
15
15
|
|
|
16
16
|
/* Room for the last message to scroll clear of the floating composer.
|
|
17
17
|
--agent-chat-composer-size is set from a ResizeObserver in AgentChat. */
|
|
18
|
-
.agent-
|
|
19
|
-
|
|
18
|
+
.agent-chat__transcript-content {
|
|
19
|
+
gap: 0.875rem;
|
|
20
|
+
padding-block: 1rem calc(var(--agent-chat-composer-size, 5rem) + 0.5rem);
|
|
21
|
+
padding-inline: 1rem;
|
|
20
22
|
}
|
|
21
23
|
|
|
22
|
-
.agent-
|
|
24
|
+
.agent-chat__empty-row {
|
|
25
|
+
display: flex;
|
|
26
|
+
flex: 1;
|
|
27
|
+
min-block-size: 0;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.agent-chat__empty-row > .conversation__empty {
|
|
31
|
+
flex: 1;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.agent-chat__scroll-button {
|
|
23
35
|
inset-block-end: calc(var(--agent-chat-composer-size, 5rem) + 0.5rem);
|
|
24
36
|
}
|
|
25
37
|
|
|
@@ -131,10 +131,6 @@
|
|
|
131
131
|
inset 0 0 0 1px var(--sigvelo-color-primary-border-subtle);
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
.agent-connect .code-block {
|
|
135
|
-
min-inline-size: 0;
|
|
136
|
-
}
|
|
137
|
-
|
|
138
134
|
.agent-connect .code-block__container {
|
|
139
135
|
max-block-size: 13.5rem;
|
|
140
136
|
}
|
|
@@ -296,6 +292,39 @@
|
|
|
296
292
|
outline-offset: 2px;
|
|
297
293
|
}
|
|
298
294
|
|
|
295
|
+
.agent-connect__mcp-form {
|
|
296
|
+
display: grid;
|
|
297
|
+
gap: 0.75rem;
|
|
298
|
+
min-inline-size: 0;
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
.agent-connect__mcp-form--row {
|
|
302
|
+
grid-template-columns: repeat(auto-fit, minmax(min(100%, 10rem), 1fr));
|
|
303
|
+
align-items: end;
|
|
304
|
+
padding: 0.75rem;
|
|
305
|
+
background: var(--sigvelo-color-surface);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
.agent-connect__mcp-form-actions {
|
|
309
|
+
display: flex;
|
|
310
|
+
flex-wrap: wrap;
|
|
311
|
+
gap: 0.5rem;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.agent-connect__mcp-form--row .agent-connect__mcp-form-actions {
|
|
315
|
+
align-self: end;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
.agent-connect__mcp-form-status {
|
|
319
|
+
align-self: end;
|
|
320
|
+
min-inline-size: 0;
|
|
321
|
+
color: var(--sigvelo-color-text-muted);
|
|
322
|
+
font-size: var(--sigvelo-text-xs);
|
|
323
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
324
|
+
line-height: 1.25;
|
|
325
|
+
overflow-wrap: anywhere;
|
|
326
|
+
}
|
|
327
|
+
|
|
299
328
|
.agent-connect-trigger {
|
|
300
329
|
inline-size: 100%;
|
|
301
330
|
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
.chatgpt-sign-in {
|
|
2
|
+
--chatgpt-sign-in-pointer-x: 50%;
|
|
3
|
+
--chatgpt-sign-in-pointer-y: 58%;
|
|
4
|
+
|
|
5
|
+
position: relative;
|
|
6
|
+
isolation: isolate;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
block-size: 100%;
|
|
9
|
+
min-inline-size: 17.5rem;
|
|
10
|
+
display: grid;
|
|
11
|
+
place-items: center;
|
|
12
|
+
padding: clamp(1.25rem, 5vw, 3rem);
|
|
13
|
+
background-color: var(--sigvelo-color-canvas);
|
|
14
|
+
background-image:
|
|
15
|
+
linear-gradient(
|
|
16
|
+
color-mix(in oklab, var(--sigvelo-color-neutral-border-subtle), transparent 42%) 1px,
|
|
17
|
+
transparent 1px
|
|
18
|
+
),
|
|
19
|
+
linear-gradient(
|
|
20
|
+
90deg,
|
|
21
|
+
color-mix(in oklab, var(--sigvelo-color-neutral-border-subtle), transparent 42%) 1px,
|
|
22
|
+
transparent 1px
|
|
23
|
+
);
|
|
24
|
+
background-size: 2rem 2rem;
|
|
25
|
+
color: var(--sigvelo-color-text);
|
|
26
|
+
font-family: var(--sigvelo-font-sans);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.chatgpt-sign-in::before {
|
|
30
|
+
content: "";
|
|
31
|
+
position: absolute;
|
|
32
|
+
z-index: 0;
|
|
33
|
+
inset: 0;
|
|
34
|
+
background:
|
|
35
|
+
radial-gradient(
|
|
36
|
+
circle at var(--chatgpt-sign-in-pointer-x) var(--chatgpt-sign-in-pointer-y),
|
|
37
|
+
color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%),
|
|
38
|
+
transparent 12rem
|
|
39
|
+
),
|
|
40
|
+
radial-gradient(
|
|
41
|
+
circle at var(--chatgpt-sign-in-pointer-x) var(--chatgpt-sign-in-pointer-y),
|
|
42
|
+
color-mix(in oklab, var(--sigvelo-color-primary-bg-muted), transparent 86%),
|
|
43
|
+
transparent 18rem
|
|
44
|
+
);
|
|
45
|
+
opacity: 0;
|
|
46
|
+
pointer-events: none;
|
|
47
|
+
transition: opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.chatgpt-sign-in[data-pointer-active="true"]::before {
|
|
51
|
+
opacity: 1;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.chatgpt-sign-in__panel {
|
|
55
|
+
position: relative;
|
|
56
|
+
z-index: 1;
|
|
57
|
+
isolation: isolate;
|
|
58
|
+
display: grid;
|
|
59
|
+
gap: 1.25rem;
|
|
60
|
+
justify-items: center;
|
|
61
|
+
text-align: center;
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.chatgpt-sign-in__brand {
|
|
65
|
+
display: grid;
|
|
66
|
+
gap: 0.375rem;
|
|
67
|
+
justify-items: center;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.chatgpt-sign-in__brand h1 {
|
|
71
|
+
margin: 0;
|
|
72
|
+
color: var(--sigvelo-color-text);
|
|
73
|
+
font-size: var(--sigvelo-text-2xl);
|
|
74
|
+
font-weight: var(--sigvelo-font-weight-bold);
|
|
75
|
+
letter-spacing: 0;
|
|
76
|
+
line-height: 1.1;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.chatgpt-sign-in__brand p {
|
|
80
|
+
display: inline-flex;
|
|
81
|
+
align-items: center;
|
|
82
|
+
gap: 0.375rem;
|
|
83
|
+
margin: 0;
|
|
84
|
+
color: var(--sigvelo-color-text-muted);
|
|
85
|
+
font-size: var(--sigvelo-text-sm);
|
|
86
|
+
font-weight: var(--sigvelo-font-weight-semibold);
|
|
87
|
+
line-height: 1.25;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.chatgpt-sign-in__brand-mark,
|
|
91
|
+
.chatgpt-sign-in__logo {
|
|
92
|
+
display: inline-flex;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.chatgpt-sign-in__brand-mark :where(img, svg) {
|
|
96
|
+
inline-size: 1.35rem;
|
|
97
|
+
block-size: 1.35rem;
|
|
98
|
+
filter: drop-shadow(
|
|
99
|
+
0 0.25rem 0.5rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%)
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
.chatgpt-sign-in__button {
|
|
104
|
+
--chatgpt-sign-in-button-x: 50%;
|
|
105
|
+
--chatgpt-sign-in-button-y: 50%;
|
|
106
|
+
|
|
107
|
+
position: relative;
|
|
108
|
+
isolation: isolate;
|
|
109
|
+
overflow: hidden;
|
|
110
|
+
min-inline-size: min(100%, 16.75rem);
|
|
111
|
+
box-shadow:
|
|
112
|
+
inset 0 0 0 1px color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 84%),
|
|
113
|
+
0 0.75rem 1.5rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 78%);
|
|
114
|
+
translate: 0;
|
|
115
|
+
scale: 1;
|
|
116
|
+
transition:
|
|
117
|
+
background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
118
|
+
box-shadow var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
119
|
+
filter var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
120
|
+
scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
121
|
+
translate var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
.chatgpt-sign-in__button::before {
|
|
125
|
+
content: "";
|
|
126
|
+
position: absolute;
|
|
127
|
+
z-index: 0;
|
|
128
|
+
inset: 0;
|
|
129
|
+
background: radial-gradient(
|
|
130
|
+
circle at var(--chatgpt-sign-in-button-x) var(--chatgpt-sign-in-button-y),
|
|
131
|
+
color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 70%),
|
|
132
|
+
transparent 42%
|
|
133
|
+
);
|
|
134
|
+
opacity: 0;
|
|
135
|
+
pointer-events: none;
|
|
136
|
+
transition: opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.chatgpt-sign-in__button::after {
|
|
140
|
+
content: "";
|
|
141
|
+
position: absolute;
|
|
142
|
+
z-index: 0;
|
|
143
|
+
inset: 1px;
|
|
144
|
+
border-radius: inherit;
|
|
145
|
+
background: radial-gradient(
|
|
146
|
+
circle at var(--chatgpt-sign-in-button-x) var(--chatgpt-sign-in-button-y),
|
|
147
|
+
color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 88%),
|
|
148
|
+
transparent 55%
|
|
149
|
+
);
|
|
150
|
+
opacity: 0.45;
|
|
151
|
+
pointer-events: none;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
.chatgpt-sign-in__button:hover:not([data-disabled]) {
|
|
155
|
+
box-shadow:
|
|
156
|
+
inset 0 0 0 1px color-mix(in oklab, var(--sigvelo-color-primary-text-on-bg), transparent 76%),
|
|
157
|
+
0 0.9rem 1.9rem color-mix(in oklab, var(--sigvelo-color-primary-bg), transparent 72%);
|
|
158
|
+
translate: 0 -0.0625rem;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.chatgpt-sign-in__button:hover:not([data-disabled])::before {
|
|
162
|
+
opacity: 1;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.chatgpt-sign-in__button:active:not([data-disabled]) {
|
|
166
|
+
translate: 0 0.0625rem;
|
|
167
|
+
scale: 0.99;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.chatgpt-sign-in__button-icon,
|
|
171
|
+
.chatgpt-sign-in__button-label {
|
|
172
|
+
position: relative;
|
|
173
|
+
z-index: 1;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.chatgpt-sign-in__button-icon {
|
|
177
|
+
display: inline-flex;
|
|
178
|
+
rotate: 0deg;
|
|
179
|
+
scale: 1;
|
|
180
|
+
transition:
|
|
181
|
+
rotate var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
182
|
+
scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
.chatgpt-sign-in__button:hover:not([data-disabled]) .chatgpt-sign-in__button-icon {
|
|
186
|
+
rotate: -4deg;
|
|
187
|
+
scale: 1.06;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
.chatgpt-sign-in__logo {
|
|
191
|
+
color: inherit;
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
@media (prefers-reduced-motion: reduce) {
|
|
195
|
+
.chatgpt-sign-in::before,
|
|
196
|
+
.chatgpt-sign-in__button,
|
|
197
|
+
.chatgpt-sign-in__button::before,
|
|
198
|
+
.chatgpt-sign-in__button-icon {
|
|
199
|
+
transition: none;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
@media (hover: none), (pointer: coarse) {
|
|
204
|
+
.chatgpt-sign-in::before,
|
|
205
|
+
.chatgpt-sign-in__button::before,
|
|
206
|
+
.chatgpt-sign-in__button::after {
|
|
207
|
+
display: none;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@media (forced-colors: active) {
|
|
212
|
+
.chatgpt-sign-in::before,
|
|
213
|
+
.chatgpt-sign-in__button::before,
|
|
214
|
+
.chatgpt-sign-in__button::after {
|
|
215
|
+
display: none;
|
|
216
|
+
}
|
|
217
|
+
|
|
218
|
+
.chatgpt-sign-in__button {
|
|
219
|
+
background-image: none;
|
|
220
|
+
box-shadow: none;
|
|
221
|
+
outline: 1px solid ButtonText;
|
|
222
|
+
outline-offset: 2px;
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
display: flex;
|
|
3
3
|
flex-direction: column;
|
|
4
4
|
width: 100%;
|
|
5
|
+
min-inline-size: 0;
|
|
5
6
|
font-family: var(--sigvelo-font-sans);
|
|
6
7
|
/* Fill-based containment: no perimeter border */
|
|
7
8
|
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
@@ -47,8 +48,9 @@
|
|
|
47
48
|
|
|
48
49
|
.code-block__container {
|
|
49
50
|
position: relative;
|
|
50
|
-
|
|
51
|
-
|
|
51
|
+
min-inline-size: 0;
|
|
52
|
+
overflow-x: auto;
|
|
53
|
+
overflow-y: auto;
|
|
52
54
|
}
|
|
53
55
|
|
|
54
56
|
.code-block__content {
|
|
@@ -59,7 +61,7 @@
|
|
|
59
61
|
font-size: 0.8125rem;
|
|
60
62
|
line-height: 1.55;
|
|
61
63
|
color: var(--sigvelo-color-text);
|
|
62
|
-
overflow
|
|
64
|
+
overflow: visible;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
.code-block__content--highlighted {
|
|
@@ -74,7 +76,7 @@
|
|
|
74
76
|
font-family: var(--sigvelo-font-mono);
|
|
75
77
|
font-size: 0.8125rem;
|
|
76
78
|
line-height: 1.55;
|
|
77
|
-
overflow
|
|
79
|
+
overflow: visible;
|
|
78
80
|
}
|
|
79
81
|
|
|
80
82
|
.code-block__content--numbered:is(pre) > code,
|
|
@@ -27,6 +27,16 @@
|
|
|
27
27
|
min-height: 100%;
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
+
.conversation__empty-row {
|
|
31
|
+
display: flex;
|
|
32
|
+
flex: 1;
|
|
33
|
+
min-block-size: 0;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.conversation__empty-row > .conversation__empty {
|
|
37
|
+
flex: 1;
|
|
38
|
+
}
|
|
39
|
+
|
|
30
40
|
.conversation__empty {
|
|
31
41
|
display: flex;
|
|
32
42
|
flex: 1;
|
package/dist/styles/index.css
CHANGED
|
@@ -30,8 +30,10 @@
|
|
|
30
30
|
@import "./github-motion-mark.css" layer(components);
|
|
31
31
|
@import "./input.css" layer(components);
|
|
32
32
|
@import "./label.css" layer(components);
|
|
33
|
+
@import "./marker.css" layer(components);
|
|
33
34
|
@import "./menu.css" layer(components);
|
|
34
35
|
@import "./menubar.css" layer(components);
|
|
36
|
+
@import "./message-scroller.css" layer(components);
|
|
35
37
|
@import "./meter.css" layer(components);
|
|
36
38
|
@import "./navigation-menu.css" layer(components);
|
|
37
39
|
@import "./nanite-scene.css" layer(components);
|
|
@@ -70,6 +72,7 @@
|
|
|
70
72
|
@import "./file-tree.css" layer(components);
|
|
71
73
|
@import "./message.css" layer(components);
|
|
72
74
|
@import "./model-selector.css" layer(components);
|
|
75
|
+
@import "./chatgpt-sign-in-screen.css" layer(components);
|
|
73
76
|
@import "./prompt-input.css" layer(components);
|
|
74
77
|
@import "./queue.css" layer(components);
|
|
75
78
|
@import "./reasoning.css" layer(components);
|
|
@@ -77,6 +80,7 @@
|
|
|
77
80
|
@import "./task.css" layer(components);
|
|
78
81
|
@import "./terminal.css" layer(components);
|
|
79
82
|
@import "./test-results.css" layer(components);
|
|
83
|
+
@import "./think-full-app.css" layer(components);
|
|
80
84
|
@import "./web-preview.css" layer(components);
|
|
81
85
|
@import "./workspace-explorer.css" layer(components);
|
|
82
86
|
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
.marker {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
align-items: center;
|
|
5
|
+
gap: 0.5rem;
|
|
6
|
+
width: 100%;
|
|
7
|
+
min-height: 1rem;
|
|
8
|
+
font-family: var(--sigvelo-font-sans);
|
|
9
|
+
font-size: var(--sigvelo-text-sm);
|
|
10
|
+
line-height: 1.5;
|
|
11
|
+
color: var(--sigvelo-color-text-muted);
|
|
12
|
+
text-align: start;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.marker:where(a, button) {
|
|
16
|
+
padding: 0;
|
|
17
|
+
font: inherit;
|
|
18
|
+
color: var(--sigvelo-color-text-muted);
|
|
19
|
+
text-decoration: none;
|
|
20
|
+
background: transparent;
|
|
21
|
+
border: 0;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
.marker:where(button) {
|
|
25
|
+
cursor: pointer;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.marker:where(a, button):hover {
|
|
29
|
+
color: var(--sigvelo-color-text);
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.marker:where(a, button):focus-visible {
|
|
33
|
+
outline: none;
|
|
34
|
+
border-radius: var(--sigvelo-radius-sm);
|
|
35
|
+
box-shadow:
|
|
36
|
+
0 0 0 2px var(--sigvelo-color-canvas),
|
|
37
|
+
0 0 0 4px var(--sigvelo-color-focus);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.marker--separator::before,
|
|
41
|
+
.marker--separator::after {
|
|
42
|
+
content: "";
|
|
43
|
+
flex: 1 1 0;
|
|
44
|
+
min-width: 0;
|
|
45
|
+
height: var(--sigvelo-border-width);
|
|
46
|
+
background-color: var(--sigvelo-color-neutral-border-subtle);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.marker--separator::before {
|
|
50
|
+
margin-inline-end: 0.25rem;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.marker--separator::after {
|
|
54
|
+
margin-inline-start: 0.25rem;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.marker--border {
|
|
58
|
+
padding-block-end: 0.5rem;
|
|
59
|
+
border-block-end: var(--sigvelo-border-width) var(--sigvelo-border-style)
|
|
60
|
+
var(--sigvelo-color-neutral-border-subtle);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.marker__icon {
|
|
64
|
+
display: inline-flex;
|
|
65
|
+
flex-shrink: 0;
|
|
66
|
+
width: 1rem;
|
|
67
|
+
height: 1rem;
|
|
68
|
+
align-items: center;
|
|
69
|
+
justify-content: center;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.marker__icon svg {
|
|
73
|
+
width: 1rem;
|
|
74
|
+
height: 1rem;
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
.marker__content {
|
|
78
|
+
min-width: 0;
|
|
79
|
+
overflow-wrap: anywhere;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
.marker--separator .marker__content {
|
|
83
|
+
flex: 0 1 auto;
|
|
84
|
+
text-align: center;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.marker a {
|
|
88
|
+
color: inherit;
|
|
89
|
+
text-decoration: underline;
|
|
90
|
+
text-underline-offset: 0.1875rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.marker a:hover {
|
|
94
|
+
color: var(--sigvelo-color-text);
|
|
95
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
.message-scroller {
|
|
2
|
+
position: relative;
|
|
3
|
+
display: flex;
|
|
4
|
+
flex-direction: column;
|
|
5
|
+
width: 100%;
|
|
6
|
+
height: 100%;
|
|
7
|
+
min-height: 0;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
font-family: var(--sigvelo-font-sans);
|
|
10
|
+
color: var(--sigvelo-color-text);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.message-scroller__viewport {
|
|
14
|
+
--message-scroller-fade-size: min(12%, 2.5rem);
|
|
15
|
+
--message-scroller-fade-t: 0px;
|
|
16
|
+
--message-scroller-fade-b: 0px;
|
|
17
|
+
width: 100%;
|
|
18
|
+
height: 100%;
|
|
19
|
+
min-width: 0;
|
|
20
|
+
min-height: 0;
|
|
21
|
+
overflow-y: auto;
|
|
22
|
+
overflow-x: hidden;
|
|
23
|
+
overscroll-behavior: contain;
|
|
24
|
+
scrollbar-gutter: stable;
|
|
25
|
+
contain: content;
|
|
26
|
+
-webkit-mask-image: linear-gradient(
|
|
27
|
+
to bottom,
|
|
28
|
+
transparent 0,
|
|
29
|
+
#000 var(--message-scroller-fade-t),
|
|
30
|
+
#000 calc(100% - var(--message-scroller-fade-b)),
|
|
31
|
+
transparent 100%
|
|
32
|
+
);
|
|
33
|
+
mask-image: linear-gradient(
|
|
34
|
+
to bottom,
|
|
35
|
+
transparent 0,
|
|
36
|
+
#000 var(--message-scroller-fade-t),
|
|
37
|
+
#000 calc(100% - var(--message-scroller-fade-b)),
|
|
38
|
+
transparent 100%
|
|
39
|
+
);
|
|
40
|
+
-webkit-mask-repeat: no-repeat;
|
|
41
|
+
mask-repeat: no-repeat;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
.message-scroller__viewport[data-scrollable~="end"] {
|
|
45
|
+
--message-scroller-fade-b: var(--message-scroller-fade-b-size, var(--message-scroller-fade-size));
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.message-scroller__content {
|
|
49
|
+
display: flex;
|
|
50
|
+
flex-direction: column;
|
|
51
|
+
gap: 1rem;
|
|
52
|
+
min-height: 100%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.message-scroller__item {
|
|
56
|
+
min-width: 0;
|
|
57
|
+
flex-shrink: 0;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.message-scroller__button {
|
|
61
|
+
position: absolute;
|
|
62
|
+
inset-inline-start: 50%;
|
|
63
|
+
inset-block-end: 1rem;
|
|
64
|
+
z-index: 1;
|
|
65
|
+
translate: -50% 0;
|
|
66
|
+
border-radius: 999rem;
|
|
67
|
+
box-shadow: var(--sigvelo-shadow-sm);
|
|
68
|
+
transition:
|
|
69
|
+
opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
70
|
+
scale var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
|
|
71
|
+
translate var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
.message-scroller__button[data-direction="start"] {
|
|
75
|
+
inset-block-start: 1rem;
|
|
76
|
+
inset-block-end: auto;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.message-scroller__button[data-active="false"] {
|
|
80
|
+
pointer-events: none;
|
|
81
|
+
opacity: 0;
|
|
82
|
+
scale: 0.95;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
.message-scroller__button[data-direction="end"][data-active="false"] {
|
|
86
|
+
translate: -50% 0.5rem;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.message-scroller__button[data-direction="start"][data-active="false"] {
|
|
90
|
+
translate: -50% -0.5rem;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.message-scroller__button[data-direction="start"] svg {
|
|
94
|
+
rotate: 180deg;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
.message-scroller__button-label {
|
|
98
|
+
position: absolute;
|
|
99
|
+
width: 1px;
|
|
100
|
+
height: 1px;
|
|
101
|
+
padding: 0;
|
|
102
|
+
margin: -1px;
|
|
103
|
+
overflow: hidden;
|
|
104
|
+
clip-path: inset(50%);
|
|
105
|
+
white-space: nowrap;
|
|
106
|
+
border: 0;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
@media (forced-colors: active) {
|
|
110
|
+
.message-scroller__button {
|
|
111
|
+
border: 1px solid CanvasText;
|
|
112
|
+
}
|
|
113
|
+
}
|