@mcp-b/react-components 0.21.0 → 0.23.0
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-Dvkn8lce.d.ts → AgentChat-Bm1qYbOo.d.ts} +2 -2
- package/dist/{AgentChatStartScreen-CvXJBr4y.d.ts → AgentChatStartScreen-DDZ25aax.d.ts} +4 -1
- package/dist/{Button-yRInko9u.d.ts → Button-SBIz6Lqi.d.ts} +2 -1
- package/dist/{CodeBlock-ygtuzqJd.js → CodeBlock-Cp67Njo3.js} +1 -1
- package/dist/{CodeBlock-Bbls1CnA.d.ts → CodeBlock-yMpGqScn.d.ts} +1 -1
- package/dist/Dialog-BD8NBKaE.d.ts +122 -0
- package/dist/{FileTree-CdgfccsM.js → FileTree-DW60q1w7.js} +1 -1
- package/dist/IconButton-CFKhu6OR.d.ts +35 -0
- package/dist/{Message-DzuteocT.js → Message-_-bEYLAO.js} +9 -16
- package/dist/{ModelSelector-CEd8M9eK.js → ModelSelector-Brvj9Cab.js} +1 -1
- package/dist/{PromptInput-Cq-8RoXD.d.ts → PromptInput-BjoPWaaG.d.ts} +15 -2
- package/dist/{ThinkChatActivity-FY1VWXgh.d.ts → ThinkChatActivity-2BobmuvR.d.ts} +1 -1
- package/dist/{Workspace-CWtust-2.d.ts → Workspace-CIycQ4xE.d.ts} +1 -1
- package/dist/{WorkspaceExplorer-DGigwsgH.d.ts → WorkspaceExplorer-BCipn7Vd.d.ts} +1 -1
- package/dist/{WorkspaceFile-D8Un_xge.d.ts → WorkspaceFile-DMtRMwVv.d.ts} +1 -1
- package/dist/{WorkspaceFileView-Bxx4wEzJ.js → WorkspaceFileView-rUEN2iox.js} +4 -4
- package/dist/assets/think-browser-host.png +0 -0
- package/dist/components/ActionGuide.d.ts +85 -0
- package/dist/components/ActionGuide.js +94 -0
- package/dist/components/Activity.js +1 -1
- package/dist/components/AgentActivity.js +3 -11
- package/dist/components/AgentActivityPreview.js +15 -14
- package/dist/components/AgentAttention.d.ts +1 -1
- package/dist/components/AgentChat.d.ts +1 -1
- package/dist/components/AgentChat.js +33 -13
- package/dist/components/AgentChatStartScreen.d.ts +1 -1
- package/dist/components/AgentChatStartScreen.js +21 -15
- package/dist/components/AgentConnection.d.ts +1 -1
- package/dist/components/AgentConnection.js +2 -2
- package/dist/components/AgentMessageParts.js +1 -1
- package/dist/components/AgentToolDetail.js +1 -1
- package/dist/components/AlertDialog.d.ts +2 -1
- package/dist/components/AlertDialog.js +8 -2
- package/dist/components/AppIcon.d.ts +58 -0
- package/dist/components/AppIcon.js +51 -0
- package/dist/components/AppTopBar.js +9 -10
- package/dist/components/Approval.js +1 -1
- package/dist/components/Artifact.d.ts +3 -7
- package/dist/components/Artifact.js +12 -18
- package/dist/components/Avatar.d.ts +7 -2
- package/dist/components/Avatar.js +4 -2
- package/dist/components/BrowserLiveView.js +1 -1
- package/dist/components/BrowserReplay.js +4 -5
- package/dist/components/BrowserRunPanel.js +1 -1
- package/dist/components/Button.d.ts +1 -1
- package/dist/components/ChainOfThought.d.ts +1 -1
- package/dist/components/ChainOfThought.js +1 -1
- package/dist/components/ChatGptSignInScreen.js +2 -2
- package/dist/components/Checkbox.js +1 -1
- package/dist/components/Checkpoint.js +1 -1
- package/dist/components/CodeBlock.d.ts +1 -1
- package/dist/components/CodeBlock.js +1 -1
- package/dist/components/CodexModelSelector.js +1 -1
- package/dist/components/Commit.d.ts +1 -1
- package/dist/components/Commit.js +3 -3
- package/dist/components/ContextMenu.js +1 -1
- package/dist/components/Conversation.d.ts +2 -2
- package/dist/components/Conversation.js +4 -5
- package/dist/components/Dialog.d.ts +1 -117
- package/dist/components/Dialog.js +9 -1
- package/dist/components/EnvironmentVariables.d.ts +1 -1
- package/dist/components/EnvironmentVariables.js +2 -2
- package/dist/components/FileTree.js +1 -1
- package/dist/components/IconButton.d.ts +1 -31
- package/dist/components/IconButton.js +2 -1
- package/dist/components/McpConnectionRequest.d.ts +1 -1
- package/dist/components/McpConnectionRequest.js +1 -1
- package/dist/components/McpPluginCatalog.d.ts +86 -0
- package/dist/components/McpPluginCatalog.js +364 -0
- package/dist/components/McpServerPicker.d.ts +2 -2
- package/dist/components/McpServerPicker.js +7 -13
- package/dist/components/MediaPreviewCard.js +1 -1
- package/dist/components/Menubar.js +1 -1
- package/dist/components/Message.d.ts +4 -8
- package/dist/components/Message.js +1 -1
- package/dist/components/MessageScroller.d.ts +1 -1
- package/dist/components/MessageScroller.js +1 -1
- package/dist/components/ModelSelector.d.ts +2 -2
- package/dist/components/ModelSelector.js +1 -1
- package/dist/components/Plan.js +1 -1
- package/dist/components/PricingPlanCard.d.ts +1 -1
- package/dist/components/PricingPlanCard.js +10 -12
- package/dist/components/PromptInput.d.ts +2 -2
- package/dist/components/PromptInput.js +27 -10
- package/dist/components/Queue.d.ts +1 -1
- package/dist/components/Queue.js +2 -2
- package/dist/components/Reasoning.js +4 -9
- package/dist/components/ResponsiveSidebarShell.js +2 -1
- package/dist/components/ScrollArea.js +1 -0
- package/dist/components/SearchField.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/SubagentRunIndicator.js +1 -1
- package/dist/components/SubagentRunSelector.js +1 -1
- package/dist/components/Task.js +1 -1
- package/dist/components/Terminal.d.ts +3 -3
- package/dist/components/Terminal.js +7 -8
- package/dist/components/TestResults.js +1 -1
- package/dist/components/ThemeModeControl.js +1 -1
- package/dist/components/ThinkChat.d.ts +5 -5
- package/dist/components/ThinkChatActivity.d.ts +1 -1
- package/dist/components/ThinkChatActivity.js +1 -1
- package/dist/components/ThinkChatToolPanels.js +1 -1
- package/dist/components/ThinkExecutionDetail.js +1 -1
- package/dist/components/ThinkExecutionStatus.js +1 -1
- package/dist/components/ThinkExecutionWorkbench.js +14 -21
- package/dist/components/ThinkFullApp.d.ts +8 -4
- package/dist/components/ThinkFullApp.js +17 -2
- package/dist/components/ThinkRoutineBrowser.js +2 -2
- package/dist/components/ThinkRoutineForm.js +3 -3
- package/dist/components/ThinkRoutineLibrary.js +2 -2
- package/dist/components/ThinkRoutineRuns.js +1 -1
- package/dist/components/ThinkThreadPicker.js +2 -3
- package/dist/components/Toast.d.ts +12 -2
- package/dist/components/Toast.js +14 -4
- package/dist/components/Tooltip.d.ts +6 -4
- package/dist/components/Tooltip.js +11 -4
- package/dist/components/WebPreview.d.ts +13 -6
- package/dist/components/WebPreview.js +55 -50
- package/dist/components/Workspace.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.d.ts +1 -1
- package/dist/components/WorkspaceBrowser.js +1 -1
- package/dist/components/WorkspaceExplorer.d.ts +3 -3
- package/dist/components/WorkspaceExplorer.js +1 -1
- package/dist/components/WorkspaceFile.d.ts +1 -1
- package/dist/components/WorkspaceFileView.d.ts +1 -1
- package/dist/components/WorkspaceFileView.js +1 -1
- package/dist/components/WorkspaceHeader.js +1 -1
- package/dist/components/icons.d.ts +2 -2
- package/dist/components/icons.js +2 -2
- package/dist/{copy-button-BrvQ7z4W.d.ts → copy-button-EBv_B9F6.d.ts} +2 -2
- package/dist/{copy-button-vo1paUSi.js → copy-button-TWq8nZhc.js} +8 -8
- package/dist/{icons-DyOM0EJs.js → icons-ua6f_GH3.js} +3 -2
- package/dist/{icons-DkRtZmvT.d.ts → icons-wP1yFUXF.d.ts} +6 -1
- package/dist/mcp-server-catalog-DycejaJ5.d.ts +1077 -0
- package/dist/styles/action-guide.css +128 -0
- package/dist/styles/agent-activity-preview-overlay.css +13 -1
- package/dist/styles/agent-activity-preview.css +3 -34
- package/dist/styles/agent-chat.css +110 -75
- package/dist/styles/alert-dialog.css +0 -18
- package/dist/styles/app-icon.css +122 -0
- package/dist/styles/app-top-bar.css +0 -1
- package/dist/styles/avatar.css +13 -0
- package/dist/styles/base.css +0 -1
- package/dist/styles/button.css +14 -0
- package/dist/styles/description-list.css +2 -2
- package/dist/styles/dialog.css +6 -6
- package/dist/styles/index.css +3 -0
- package/dist/styles/mcp-plugin-catalog.css +296 -0
- package/dist/styles/mcp-server-picker.css +0 -26
- package/dist/styles/message-scroller.css +5 -1
- package/dist/styles/message.css +7 -0
- package/dist/styles/prompt-input.css +26 -14
- package/dist/styles/recipes.css +27 -5
- package/dist/styles/responsive-sidebar-shell.css +14 -8
- package/dist/styles/search-field.css +9 -0
- package/dist/styles/think-full-app.css +22 -2
- package/dist/styles/think-thread-picker.css +1 -11
- package/dist/styles/toast.css +0 -21
- package/dist/styles/tokens.css +6 -0
- package/dist/styles/web-preview.css +5 -0
- package/dist/utils/favicon.d.ts +10 -0
- package/dist/utils/favicon.js +18 -0
- package/dist/utils/mcp-server-catalog.d.ts +2 -1078
- package/dist/utils/mcp-server-catalog.js +3 -11
- package/dist/utils/structured-code.d.ts +1 -1
- package/package.json +2 -2
package/dist/styles/recipes.css
CHANGED
|
@@ -150,6 +150,14 @@
|
|
|
150
150
|
border-radius: var(--sigvelo-radius-md);
|
|
151
151
|
}
|
|
152
152
|
|
|
153
|
+
:where([data-recipe~="application-plane"]) {
|
|
154
|
+
margin-inline: var(--sigvelo-spacing-2);
|
|
155
|
+
margin-block-end: var(--sigvelo-spacing-2);
|
|
156
|
+
border-radius: var(--sigvelo-radius-lg);
|
|
157
|
+
background: var(--sigvelo-color-surface);
|
|
158
|
+
box-shadow: var(--sigvelo-elevation-floating);
|
|
159
|
+
}
|
|
160
|
+
|
|
153
161
|
:where([data-recipe~="disclosure-stack"]) {
|
|
154
162
|
display: flex;
|
|
155
163
|
flex-direction: column;
|
|
@@ -158,12 +166,19 @@
|
|
|
158
166
|
color: var(--sigvelo-color-text);
|
|
159
167
|
}
|
|
160
168
|
|
|
161
|
-
/* Reveal scrollability by fading the top/bottom edges.
|
|
162
|
-
|
|
163
|
-
from
|
|
169
|
+
/* Reveal vertical scrollability by fading the top/bottom edges. Base UI
|
|
170
|
+
ScrollArea supplies live overflow distances; other scrollers can override
|
|
171
|
+
--sigvelo-scroll-fade-start/end from their own state. */
|
|
164
172
|
:where([data-recipe~="scroll-fade-y"]) {
|
|
165
|
-
--sigvelo-scroll-fade-
|
|
166
|
-
--sigvelo-scroll-fade-
|
|
173
|
+
--sigvelo-scroll-fade-size: min(12%, 2.5rem);
|
|
174
|
+
--sigvelo-scroll-fade-start: min(
|
|
175
|
+
var(--sigvelo-scroll-fade-size),
|
|
176
|
+
var(--scroll-area-overflow-y-start, 0px)
|
|
177
|
+
);
|
|
178
|
+
--sigvelo-scroll-fade-end: min(
|
|
179
|
+
var(--sigvelo-scroll-fade-size),
|
|
180
|
+
var(--scroll-area-overflow-y-end, 0px)
|
|
181
|
+
);
|
|
167
182
|
-webkit-mask-image: linear-gradient(
|
|
168
183
|
to bottom,
|
|
169
184
|
transparent 0,
|
|
@@ -814,6 +829,13 @@
|
|
|
814
829
|
--sigvelo-recipe-surface-border: CanvasText;
|
|
815
830
|
}
|
|
816
831
|
|
|
832
|
+
:where([data-recipe~="application-plane"]) {
|
|
833
|
+
border: var(--sigvelo-border-style) var(--sigvelo-border-width) CanvasText;
|
|
834
|
+
background: Canvas;
|
|
835
|
+
color: CanvasText;
|
|
836
|
+
box-shadow: none;
|
|
837
|
+
}
|
|
838
|
+
|
|
817
839
|
:where(
|
|
818
840
|
[data-slot="input"],
|
|
819
841
|
[data-slot="select-trigger"],
|
|
@@ -5,12 +5,15 @@
|
|
|
5
5
|
min-block-size: 0;
|
|
6
6
|
display: grid;
|
|
7
7
|
grid-template-rows: auto minmax(0, 1fr);
|
|
8
|
+
background: var(--sigvelo-color-surface-under);
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.responsive-sidebar-shell > .app-top-bar {
|
|
12
|
+
background: var(--sigvelo-color-surface-under);
|
|
8
13
|
}
|
|
9
14
|
|
|
10
15
|
.responsive-sidebar-shell__frame {
|
|
11
|
-
--responsive-sidebar-mobile-w: min(80cqi, 22rem);
|
|
12
16
|
--responsive-sidebar-closed-translate: -100%;
|
|
13
|
-
--responsive-sidebar-main-translate: var(--responsive-sidebar-mobile-w);
|
|
14
17
|
|
|
15
18
|
position: relative;
|
|
16
19
|
isolation: isolate;
|
|
@@ -21,7 +24,7 @@
|
|
|
21
24
|
grid-template-columns: var(--resizable-side-panel-size, 16rem) minmax(0, 1fr);
|
|
22
25
|
grid-template-rows: minmax(0, 1fr);
|
|
23
26
|
overflow: hidden;
|
|
24
|
-
background: var(--sigvelo-color-
|
|
27
|
+
background: var(--sigvelo-color-surface-under);
|
|
25
28
|
color: var(--sigvelo-color-text);
|
|
26
29
|
font-family: inherit;
|
|
27
30
|
transition: grid-template-columns var(--sigvelo-motion-duration-layout)
|
|
@@ -30,7 +33,6 @@
|
|
|
30
33
|
|
|
31
34
|
.responsive-sidebar-shell__frame:dir(rtl) {
|
|
32
35
|
--responsive-sidebar-closed-translate: 100%;
|
|
33
|
-
--responsive-sidebar-main-translate: calc(var(--responsive-sidebar-mobile-w) * -1);
|
|
34
36
|
}
|
|
35
37
|
|
|
36
38
|
.responsive-sidebar-shell__sidebar,
|
|
@@ -56,6 +58,14 @@
|
|
|
56
58
|
display: none;
|
|
57
59
|
}
|
|
58
60
|
|
|
61
|
+
@media (forced-colors: active) {
|
|
62
|
+
.responsive-sidebar-shell,
|
|
63
|
+
.responsive-sidebar-shell__frame {
|
|
64
|
+
background: canvas;
|
|
65
|
+
color: canvastext;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
59
69
|
.responsive-sidebar-shell__resizer {
|
|
60
70
|
z-index: var(--sigvelo-z-panel);
|
|
61
71
|
}
|
|
@@ -132,10 +142,6 @@
|
|
|
132
142
|
transition-timing-function: var(--sigvelo-motion-ease-exit);
|
|
133
143
|
}
|
|
134
144
|
|
|
135
|
-
.responsive-sidebar-shell__main {
|
|
136
|
-
transition: none;
|
|
137
|
-
}
|
|
138
|
-
|
|
139
145
|
.responsive-sidebar-shell[data-sidebar-open="true"]
|
|
140
146
|
> .responsive-sidebar-shell__frame
|
|
141
147
|
> .responsive-sidebar-shell__main {
|
|
@@ -1,3 +1,12 @@
|
|
|
1
|
+
.search-field {
|
|
2
|
+
--sigvelo-recipe-control-height: var(--sigvelo-control-height-md);
|
|
3
|
+
--sigvelo-recipe-control-padding-inline: var(--sigvelo-control-padding-inline-md);
|
|
4
|
+
--sigvelo-recipe-control-font-size: var(--sigvelo-control-text-md);
|
|
5
|
+
--sigvelo-recipe-control-line-height: var(--sigvelo-control-line-height-md);
|
|
6
|
+
--sigvelo-recipe-control-icon-size: var(--sigvelo-control-icon-size-md);
|
|
7
|
+
--sigvelo-recipe-control-radius: var(--sigvelo-radius-full);
|
|
8
|
+
}
|
|
9
|
+
|
|
1
10
|
.search-field__control {
|
|
2
11
|
position: relative;
|
|
3
12
|
}
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
min-inline-size: 0;
|
|
16
16
|
display: grid;
|
|
17
17
|
grid-template-rows: minmax(0, 1fr);
|
|
18
|
-
background: var(--sigvelo-color-
|
|
18
|
+
background: var(--sigvelo-color-surface-under);
|
|
19
19
|
color: var(--sigvelo-color-text);
|
|
20
20
|
font-family: inherit;
|
|
21
21
|
}
|
|
@@ -32,10 +32,28 @@
|
|
|
32
32
|
display: grid;
|
|
33
33
|
grid-template-columns: minmax(0, 1fr) var(--resizable-side-panel-size, 21.25rem);
|
|
34
34
|
grid-template-rows: minmax(0, 1fr);
|
|
35
|
+
overflow: hidden;
|
|
35
36
|
transition: grid-template-columns var(--sigvelo-motion-duration-layout)
|
|
36
37
|
var(--sigvelo-motion-ease-change);
|
|
37
38
|
}
|
|
38
39
|
|
|
40
|
+
.think-full-app[data-has-workbench-topbar="false"] > .think-full-app__view-scope {
|
|
41
|
+
margin-block-start: var(--sigvelo-spacing-2);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/* ResponsiveSidebarShell owns the outer material when a thread sidebar is
|
|
45
|
+
present. Flatten the nested app so the hierarchy still has exactly one
|
|
46
|
+
raised primary plane. */
|
|
47
|
+
.think-full-app[data-has-thread-sidebar="true"] {
|
|
48
|
+
background: var(--sigvelo-color-surface);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.think-full-app[data-has-thread-sidebar="true"] > .think-full-app__view-scope {
|
|
52
|
+
margin: 0;
|
|
53
|
+
border-radius: 0;
|
|
54
|
+
box-shadow: none;
|
|
55
|
+
}
|
|
56
|
+
|
|
39
57
|
.think-full-app[data-has-workbench-topbar="true"] > .think-full-app__view-scope {
|
|
40
58
|
grid-row: 2;
|
|
41
59
|
}
|
|
@@ -62,6 +80,7 @@
|
|
|
62
80
|
grid-column: 1 / -1;
|
|
63
81
|
grid-row: 1;
|
|
64
82
|
z-index: var(--sigvelo-z-chrome);
|
|
83
|
+
background: var(--sigvelo-color-surface-under);
|
|
65
84
|
}
|
|
66
85
|
|
|
67
86
|
.think-full-app__chat-surface {
|
|
@@ -245,7 +264,7 @@ body.is-resizing-side-panel .think-full-app__view-scope {
|
|
|
245
264
|
|
|
246
265
|
.think-full-app .think-full-app__chat .agent-chat__transcript-content {
|
|
247
266
|
gap: var(--sigvelo-spacing-2-5);
|
|
248
|
-
padding-block-start: calc(var(--sigvelo-spacing-
|
|
267
|
+
padding-block-start: calc(var(--sigvelo-spacing-5) + env(safe-area-inset-top, 0px));
|
|
249
268
|
padding-inline: var(--sigvelo-spacing-3);
|
|
250
269
|
}
|
|
251
270
|
|
|
@@ -300,6 +319,7 @@ body.is-resizing-side-panel .think-full-app__view-scope {
|
|
|
300
319
|
}
|
|
301
320
|
|
|
302
321
|
@media (forced-colors: active) {
|
|
322
|
+
.think-full-app,
|
|
303
323
|
.think-full-app__chat-surface,
|
|
304
324
|
.think-full-app__aside,
|
|
305
325
|
.think-full-app__workbench,
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
grid-template-rows: auto auto minmax(0, 1fr) auto;
|
|
7
7
|
overflow: hidden;
|
|
8
8
|
border-inline-end: 0;
|
|
9
|
-
background: var(--sigvelo-color-surface);
|
|
9
|
+
background: var(--sigvelo-color-surface-under);
|
|
10
10
|
color: var(--sigvelo-color-text);
|
|
11
11
|
}
|
|
12
12
|
|
|
@@ -91,16 +91,6 @@
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
.think-thread-picker__viewport {
|
|
94
|
-
--think-thread-picker-fade-size: min(12%, 2.5rem);
|
|
95
|
-
--sigvelo-scroll-fade-start: min(
|
|
96
|
-
var(--think-thread-picker-fade-size),
|
|
97
|
-
var(--scroll-area-overflow-y-start, 0px)
|
|
98
|
-
);
|
|
99
|
-
--sigvelo-scroll-fade-end: min(
|
|
100
|
-
var(--think-thread-picker-fade-size),
|
|
101
|
-
var(--scroll-area-overflow-y-end, 0px)
|
|
102
|
-
);
|
|
103
|
-
|
|
104
94
|
padding: var(--sigvelo-spacing-1-5) var(--sigvelo-spacing-2) var(--sigvelo-spacing-3);
|
|
105
95
|
overscroll-behavior: contain;
|
|
106
96
|
scrollbar-gutter: stable;
|
package/dist/styles/toast.css
CHANGED
|
@@ -77,37 +77,16 @@
|
|
|
77
77
|
position: absolute;
|
|
78
78
|
inset-block-start: var(--sigvelo-spacing-2);
|
|
79
79
|
inset-inline-end: var(--sigvelo-spacing-2);
|
|
80
|
-
display: flex;
|
|
81
|
-
align-items: center;
|
|
82
|
-
justify-content: center;
|
|
83
|
-
inline-size: var(--sigvelo-control-height-xs);
|
|
84
|
-
block-size: var(--sigvelo-control-height-xs);
|
|
85
|
-
padding: 0;
|
|
86
|
-
font-size: var(--sigvelo-text-base);
|
|
87
80
|
color: var(--sigvelo-color-text-muted);
|
|
88
|
-
background-color: transparent;
|
|
89
|
-
border: none;
|
|
90
|
-
border-radius: var(--sigvelo-radius-sm);
|
|
91
|
-
cursor: pointer;
|
|
92
81
|
opacity: 0;
|
|
93
|
-
transition:
|
|
94
|
-
opacity var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
|
|
95
|
-
background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
|
|
96
82
|
}
|
|
97
83
|
|
|
98
84
|
.toast:is(:hover, :focus-within) .toast__close {
|
|
99
85
|
opacity: 1;
|
|
100
86
|
}
|
|
101
87
|
|
|
102
|
-
.toast__close:hover {
|
|
103
|
-
background-color: var(--sigvelo-color-neutral-bg-subtle);
|
|
104
|
-
color: var(--sigvelo-color-neutral-text-on-subtle);
|
|
105
|
-
}
|
|
106
|
-
|
|
107
88
|
.toast__close:focus-visible {
|
|
108
89
|
opacity: 1;
|
|
109
|
-
outline: none;
|
|
110
|
-
box-shadow: var(--sigvelo-recipe-focus-shadow);
|
|
111
90
|
}
|
|
112
91
|
|
|
113
92
|
@media (hover: none) {
|
package/dist/styles/tokens.css
CHANGED
|
@@ -1 +1,7 @@
|
|
|
1
1
|
@import "@mcp-b/design-tokens";
|
|
2
|
+
|
|
3
|
+
/* Opt-in accent and design-language presets, inert until data-preset or
|
|
4
|
+
data-style is set on the root. Imported after the main tokens so their
|
|
5
|
+
equal-specificity overrides win by order. */
|
|
6
|
+
@import "@mcp-b/design-tokens/color-presets";
|
|
7
|
+
@import "@mcp-b/design-tokens/style-presets";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/utils/favicon.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* Infer an origin's conventional `/favicon.ico` URL from an HTTP(S) page or endpoint URL.
|
|
4
|
+
*
|
|
5
|
+
* This does not fetch or inspect the page. Browser hosts that can read a document's
|
|
6
|
+
* `<link rel="icon">` should prefer that resolved URL because it may point elsewhere.
|
|
7
|
+
*/
|
|
8
|
+
declare function inferFaviconUrl(url: string): string | undefined;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { inferFaviconUrl };
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/utils/favicon.ts
|
|
2
|
+
/**
|
|
3
|
+
* Infer an origin's conventional `/favicon.ico` URL from an HTTP(S) page or endpoint URL.
|
|
4
|
+
*
|
|
5
|
+
* This does not fetch or inspect the page. Browser hosts that can read a document's
|
|
6
|
+
* `<link rel="icon">` should prefer that resolved URL because it may point elsewhere.
|
|
7
|
+
*/
|
|
8
|
+
function inferFaviconUrl(url) {
|
|
9
|
+
try {
|
|
10
|
+
const parsed = new URL(url);
|
|
11
|
+
if (parsed.protocol !== "http:" && parsed.protocol !== "https:") return void 0;
|
|
12
|
+
return new URL("/favicon.ico", parsed.origin).href;
|
|
13
|
+
} catch {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//#endregion
|
|
18
|
+
export { inferFaviconUrl };
|