@mcp-b/react-components 0.11.0 → 0.13.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.
Files changed (253) hide show
  1. package/dist/{AgentChat-B9LD_WF1.d.ts → AgentChat-Br6tKEl8.d.ts} +38 -10
  2. package/dist/{BrowserLiveView-ZktFZiMD.d.ts → BrowserLiveView-BV5qgFgI.d.ts} +11 -10
  3. package/dist/{BrowserReplay-6G-mnwcn.d.ts → BrowserReplay-xWvRjRAC.d.ts} +2 -1
  4. package/dist/{Button-Ct5I6aTu.d.ts → Button-FX_hpqxm.d.ts} +8 -11
  5. package/dist/{CodeBlock-XNQOupQ3.js → CodeBlock-BUFXG8HW.js} +22 -12
  6. package/dist/{CodeBlock-CxQXv3C4.d.ts → CodeBlock-DUh9WOGo.d.ts} +13 -7
  7. package/dist/{Combobox-D9anamNr.d.ts → Combobox-B9Fcd6q-.d.ts} +4 -14
  8. package/dist/{FileTree-wMyZhhHO.js → FileTree-mpEIcfzA.js} +1 -1
  9. package/dist/{Menu-B5vDqZe_.d.ts → Menu-Bgu-ufb5.d.ts} +29 -65
  10. package/dist/{ModelSelector-DXtpcRmT.js → ModelSelector-DVgVBdvw.js} +23 -20
  11. package/dist/{PromptInput-D6-G24p7.d.ts → PromptInput-p5KmOmt1.d.ts} +313 -89
  12. package/dist/Select-Dl_vF_Bt.d.ts +213 -0
  13. package/dist/{Tabs-D9EAq09D.d.ts → Tabs-3Zc4tb9D.d.ts} +9 -6
  14. package/dist/ThinkChat-7DQ2CogF.js +222 -0
  15. package/dist/{ThinkChatActivity-B2UD95My.d.ts → ThinkChatActivity-Cuk28Js_.d.ts} +4 -4
  16. package/dist/ThinkChatContext-C3Eb1Xpi.d.ts +16 -0
  17. package/dist/{ThinkChatToolParts-DnUiZgCC.d.ts → ThinkChatToolParts-Cv4o7j6F.d.ts} +13 -5
  18. package/dist/{attachment-preview-ChtC3HiU.js → attachment-preview-DIs50Q0h.js} +3 -3
  19. package/dist/components/Accordion.d.ts +17 -6
  20. package/dist/components/Accordion.js +23 -36
  21. package/dist/components/Activity.d.ts +5 -5
  22. package/dist/components/Activity.js +9 -9
  23. package/dist/components/AgentChat.d.ts +1 -1
  24. package/dist/components/AgentChat.js +354 -132
  25. package/dist/components/AgentConnection.js +6 -22
  26. package/dist/components/AlertDialog.d.ts +40 -32
  27. package/dist/components/AlertDialog.js +46 -39
  28. package/dist/components/Artifact.d.ts +1 -1
  29. package/dist/components/Artifact.js +5 -5
  30. package/dist/components/Autocomplete.js +10 -2
  31. package/dist/components/Avatar.d.ts +2 -2
  32. package/dist/components/Avatar.js +3 -3
  33. package/dist/components/Badge.d.ts +11 -14
  34. package/dist/components/Badge.js +11 -33
  35. package/dist/components/BrowserLiveView.d.ts +1 -1
  36. package/dist/components/BrowserLiveView.js +39 -45
  37. package/dist/components/BrowserReplay.d.ts +1 -1
  38. package/dist/components/BrowserReplay.js +4 -4
  39. package/dist/components/BrowserRunPanel.js +91 -55
  40. package/dist/components/Button.d.ts +2 -2
  41. package/dist/components/Button.js +7 -30
  42. package/dist/components/ChainOfThought.d.ts +5 -5
  43. package/dist/components/ChainOfThought.js +8 -5
  44. package/dist/components/ChatGptSignInScreen.js +3 -3
  45. package/dist/components/Checkbox.d.ts +10 -2
  46. package/dist/components/Checkbox.js +13 -6
  47. package/dist/components/CheckboxGroup.d.ts +6 -6
  48. package/dist/components/CheckboxGroup.js +6 -6
  49. package/dist/components/CodeBlock.d.ts +1 -1
  50. package/dist/components/CodeBlock.js +1 -1
  51. package/dist/components/CodexModelSelector.d.ts +58 -0
  52. package/dist/components/CodexModelSelector.js +170 -0
  53. package/dist/components/Collapsible.d.ts +2 -4
  54. package/dist/components/Collapsible.js +9 -7
  55. package/dist/components/Combobox.d.ts +2 -2
  56. package/dist/components/Combobox.js +20 -22
  57. package/dist/components/Commit.d.ts +6 -6
  58. package/dist/components/Commit.js +14 -26
  59. package/dist/components/Context.js +5 -1
  60. package/dist/components/ContextMenu.d.ts +20 -72
  61. package/dist/components/ContextMenu.js +46 -56
  62. package/dist/components/Conversation.d.ts +3 -7
  63. package/dist/components/Conversation.js +3 -4
  64. package/dist/components/Dialog.d.ts +38 -30
  65. package/dist/components/Dialog.js +46 -34
  66. package/dist/components/EnvironmentVariables.d.ts +2 -7
  67. package/dist/components/EnvironmentVariables.js +13 -36
  68. package/dist/components/Field.d.ts +3 -3
  69. package/dist/components/Field.js +7 -8
  70. package/dist/components/Fieldset.d.ts +2 -2
  71. package/dist/components/Fieldset.js +2 -2
  72. package/dist/components/FileTree.js +1 -1
  73. package/dist/components/Label.d.ts +1 -1
  74. package/dist/components/Label.js +1 -1
  75. package/dist/components/Marker.js +1 -15
  76. package/dist/components/McpServerPicker.d.ts +31 -6
  77. package/dist/components/McpServerPicker.js +136 -72
  78. package/dist/components/Menu.d.ts +2 -2
  79. package/dist/components/Menu.js +41 -51
  80. package/dist/components/Menubar.d.ts +16 -52
  81. package/dist/components/Menubar.js +44 -56
  82. package/dist/components/Message.d.ts +4 -3
  83. package/dist/components/Message.js +16 -9
  84. package/dist/components/MessageScroller.d.ts +1 -1
  85. package/dist/components/MessageScroller.js +1 -1
  86. package/dist/components/Meter.js +5 -0
  87. package/dist/components/ModelSelector.d.ts +12 -9
  88. package/dist/components/ModelSelector.js +1 -1
  89. package/dist/components/NavigationMenu.d.ts +3 -14
  90. package/dist/components/NavigationMenu.js +22 -38
  91. package/dist/components/NumberField.js +6 -0
  92. package/dist/components/Popover.d.ts +21 -44
  93. package/dist/components/Popover.js +33 -23
  94. package/dist/components/PreviewCard.d.ts +20 -18
  95. package/dist/components/PreviewCard.js +30 -20
  96. package/dist/components/PricingPage.js +30 -29
  97. package/dist/components/Progress.d.ts +7 -3
  98. package/dist/components/Progress.js +9 -4
  99. package/dist/components/PromptInput.d.ts +2 -2
  100. package/dist/components/PromptInput.js +184 -148
  101. package/dist/components/Queue.d.ts +8 -19
  102. package/dist/components/Queue.js +6 -6
  103. package/dist/components/RadioGroup.d.ts +10 -9
  104. package/dist/components/RadioGroup.js +8 -9
  105. package/dist/components/Reasoning.d.ts +4 -4
  106. package/dist/components/Reasoning.js +12 -21
  107. package/dist/components/ScrollArea.d.ts +2 -9
  108. package/dist/components/ScrollArea.js +5 -23
  109. package/dist/components/Select.d.ts +2 -2
  110. package/dist/components/Select.js +100 -134
  111. package/dist/components/Slider.d.ts +10 -7
  112. package/dist/components/Slider.js +12 -11
  113. package/dist/components/Sources.d.ts +4 -4
  114. package/dist/components/Sources.js +8 -5
  115. package/dist/components/Stepper.js +2 -8
  116. package/dist/components/Switch.d.ts +6 -3
  117. package/dist/components/Switch.js +7 -4
  118. package/dist/components/Tabs.d.ts +2 -2
  119. package/dist/components/Tabs.js +9 -4
  120. package/dist/components/Task.d.ts +4 -4
  121. package/dist/components/Task.js +10 -6
  122. package/dist/components/Terminal.d.ts +2 -2
  123. package/dist/components/Terminal.js +5 -5
  124. package/dist/components/TestResults.d.ts +4 -4
  125. package/dist/components/TestResults.js +5 -5
  126. package/dist/components/ThinkChat.d.ts +37 -30
  127. package/dist/components/ThinkChat.js +1 -152
  128. package/dist/components/ThinkChatActivity.d.ts +2 -2
  129. package/dist/components/ThinkChatActivity.js +4 -11
  130. package/dist/components/ThinkChatContext.d.ts +2 -2
  131. package/dist/components/ThinkChatContext.js +9 -2
  132. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  133. package/dist/components/ThinkChatToolPanels.js +27 -15
  134. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  135. package/dist/components/ThinkExecutionWorkbench.d.ts +10 -7
  136. package/dist/components/ThinkExecutionWorkbench.js +382 -359
  137. package/dist/components/ThinkFullApp.d.ts +16 -13
  138. package/dist/components/ThinkFullApp.js +35 -25
  139. package/dist/components/ThinkThreadPicker.d.ts +1 -31
  140. package/dist/components/ThinkThreadPicker.js +32 -171
  141. package/dist/components/ThinkThreadShell.d.ts +35 -0
  142. package/dist/components/ThinkThreadShell.js +146 -0
  143. package/dist/components/Toast.js +7 -0
  144. package/dist/components/ToggleGroup.d.ts +6 -2
  145. package/dist/components/ToggleGroup.js +6 -2
  146. package/dist/components/Toolbar.js +6 -0
  147. package/dist/components/Tooltip.d.ts +36 -27
  148. package/dist/components/Tooltip.js +45 -29
  149. package/dist/components/WebPreview.d.ts +1 -1
  150. package/dist/components/WebPreview.js +3 -3
  151. package/dist/components/WorkspaceExplorer.d.ts +6 -8
  152. package/dist/components/WorkspaceExplorer.js +9 -7
  153. package/dist/components/icons.d.ts +2 -2
  154. package/dist/components/icons.js +2 -2
  155. package/dist/{copy-button-C6JSKtFE.js → copy-button-DUMLYdsk.js} +7 -6
  156. package/dist/{copy-button-BKXqGiNm.d.ts → copy-button-DtPMgN7e.d.ts} +3 -2
  157. package/dist/icons-Ba9THQKz.js +64 -0
  158. package/dist/icons-CUCz_Sft.d.ts +210 -0
  159. package/dist/merge-refs-DF_7w2x_.js +18 -0
  160. package/dist/styles/accessibility.css +14 -0
  161. package/dist/styles/accordion.css +21 -61
  162. package/dist/styles/activity.css +23 -58
  163. package/dist/styles/agent-chat.css +49 -5
  164. package/dist/styles/agent-connection.css +8 -10
  165. package/dist/styles/alert-dialog.css +20 -26
  166. package/dist/styles/artifact.css +6 -6
  167. package/dist/styles/attachment-preview.css +1 -1
  168. package/dist/styles/autocomplete.css +5 -170
  169. package/dist/styles/avatar.css +8 -8
  170. package/dist/styles/badge.css +8 -10
  171. package/dist/styles/base-ui-motion.css +176 -0
  172. package/dist/styles/base.css +19 -25
  173. package/dist/styles/browser-live-view.css +7 -7
  174. package/dist/styles/browser-replay.css +5 -5
  175. package/dist/styles/browser-run-panel.css +59 -112
  176. package/dist/styles/button.css +48 -43
  177. package/dist/styles/card.css +3 -5
  178. package/dist/styles/chain-of-thought.css +14 -70
  179. package/dist/styles/chatgpt-sign-in-screen.css +3 -3
  180. package/dist/styles/checkbox-group.css +1 -1
  181. package/dist/styles/checkbox.css +3 -7
  182. package/dist/styles/code-block.css +10 -10
  183. package/dist/styles/codex-model-selector.css +186 -0
  184. package/dist/styles/collapsible.css +11 -27
  185. package/dist/styles/combobox.css +3 -149
  186. package/dist/styles/commit.css +19 -35
  187. package/dist/styles/context-menu.css +1 -77
  188. package/dist/styles/context.css +12 -12
  189. package/dist/styles/conversation.css +7 -7
  190. package/dist/styles/dialog.css +34 -55
  191. package/dist/styles/environment-variables.css +10 -10
  192. package/dist/styles/field.css +16 -58
  193. package/dist/styles/fieldset.css +2 -2
  194. package/dist/styles/file-tree.css +7 -9
  195. package/dist/styles/index.css +12 -2
  196. package/dist/styles/input.css +1 -51
  197. package/dist/styles/label.css +2 -2
  198. package/dist/styles/marker.css +2 -4
  199. package/dist/styles/mcp-server-picker.css +66 -19
  200. package/dist/styles/menu.css +6 -153
  201. package/dist/styles/menubar.css +6 -105
  202. package/dist/styles/message-scroller.css +1 -1
  203. package/dist/styles/message.css +87 -9
  204. package/dist/styles/meter.css +4 -20
  205. package/dist/styles/model-selector.css +32 -20
  206. package/dist/styles/navigation-menu.css +14 -54
  207. package/dist/styles/number-field.css +8 -23
  208. package/dist/styles/popover.css +13 -68
  209. package/dist/styles/preview-card.css +5 -46
  210. package/dist/styles/pricing-page.css +43 -43
  211. package/dist/styles/progress.css +7 -16
  212. package/dist/styles/prompt-input.css +100 -44
  213. package/dist/styles/queue.css +12 -28
  214. package/dist/styles/radio.css +4 -8
  215. package/dist/styles/reasoning.css +3 -62
  216. package/dist/styles/recipes.css +475 -0
  217. package/dist/styles/select.css +7 -103
  218. package/dist/styles/shell.css +3 -3
  219. package/dist/styles/slider.css +5 -7
  220. package/dist/styles/sources.css +9 -66
  221. package/dist/styles/stepper.css +16 -14
  222. package/dist/styles/streamdown.css +11 -57
  223. package/dist/styles/switch.css +4 -7
  224. package/dist/styles/tabs.css +7 -8
  225. package/dist/styles/task.css +13 -42
  226. package/dist/styles/terminal.css +7 -7
  227. package/dist/styles/test-results.css +21 -37
  228. package/dist/styles/think-execution-workbench.css +337 -0
  229. package/dist/styles/think-full-app.css +27 -410
  230. package/dist/styles/think-resize-handle.css +33 -0
  231. package/dist/styles/think-thread-picker.css +18 -247
  232. package/dist/styles/think-thread-shell.css +219 -0
  233. package/dist/styles/toast.css +14 -25
  234. package/dist/styles/toggle-group.css +16 -14
  235. package/dist/styles/toggle.css +14 -15
  236. package/dist/styles/toolbar.css +13 -25
  237. package/dist/styles/tooltip.css +6 -16
  238. package/dist/styles/web-preview.css +15 -15
  239. package/dist/styles/workspace-explorer.css +21 -14
  240. package/dist/summarize-tool-input-BUJsENSn.js +12 -0
  241. package/dist/utils/codex-model-catalog.d.ts +142 -0
  242. package/dist/utils/codex-model-catalog.js +112 -0
  243. package/dist/utils/structured-code.d.ts +1 -1
  244. package/package.json +8 -2
  245. package/dist/Select-CRsKCJ9x.d.ts +0 -200
  246. package/dist/ThinkChatContext-BLAAb8J5.d.ts +0 -28
  247. package/dist/components/McpServerConnections.d.ts +0 -41
  248. package/dist/components/McpServerConnections.js +0 -188
  249. package/dist/components/useStickToBottom.d.ts +0 -33
  250. package/dist/components/useStickToBottom.js +0 -107
  251. package/dist/icons-CbjtbIJK.d.ts +0 -51
  252. package/dist/icons-D2Q5n5C1.js +0 -291
  253. package/dist/styles/mcp-server-connections.css +0 -145
@@ -14,8 +14,9 @@
14
14
  }
15
15
 
16
16
  body {
17
+ position: relative;
17
18
  font-family: var(--sigvelo-font-sans);
18
- font-size: 1rem;
19
+ font-size: var(--sigvelo-text-base);
19
20
  line-height: 1.5;
20
21
  color: var(--sigvelo-color-text);
21
22
  background-color: var(--sigvelo-color-canvas);
@@ -23,6 +24,23 @@ body {
23
24
  -moz-osx-font-smoothing: grayscale;
24
25
  }
25
26
 
27
+ .sigvelo-icon--spinner {
28
+ animation: sigvelo-icon-spin var(--sigvelo-duration-slow) linear infinite;
29
+ transform-origin: center;
30
+ }
31
+
32
+ @keyframes sigvelo-icon-spin {
33
+ to {
34
+ rotate: 1turn;
35
+ }
36
+ }
37
+
38
+ @media (prefers-reduced-motion: reduce) {
39
+ .sigvelo-icon--spinner {
40
+ animation: none;
41
+ }
42
+ }
43
+
26
44
  code,
27
45
  kbd,
28
46
  samp,
@@ -48,17 +66,6 @@ a {
48
66
  font-variant-numeric: tabular-nums;
49
67
  }
50
68
 
51
- @media (prefers-reduced-motion: reduce) {
52
- *,
53
- *::before,
54
- *::after {
55
- animation-duration: 0.01ms !important;
56
- animation-iteration-count: 1 !important;
57
- transition-duration: 0.01ms !important;
58
- scroll-behavior: auto !important;
59
- }
60
- }
61
-
62
69
  @media (prefers-contrast: more) {
63
70
  :root {
64
71
  --sigvelo-color-neutral-border-muted: var(--sigvelo-color-neutral-600);
@@ -66,16 +73,3 @@ a {
66
73
  --sigvelo-color-neutral-bg-subtle: var(--sigvelo-color-neutral-200);
67
74
  }
68
75
  }
69
-
70
- @media (forced-colors: active) {
71
- :focus-visible {
72
- outline: 2px solid Highlight;
73
- outline-offset: 2px;
74
- }
75
-
76
- [data-disabled],
77
- :disabled {
78
- border-color: GrayText;
79
- color: GrayText;
80
- }
81
- }
@@ -7,7 +7,7 @@
7
7
  display: flex;
8
8
  width: 100%;
9
9
  aspect-ratio: 16 / 10;
10
- font-family: var(--sigvelo-font-sans);
10
+ font-family: inherit;
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
12
12
  var(--sigvelo-color-neutral-border-subtle);
13
13
  border-radius: var(--sigvelo-radius-lg);
@@ -33,8 +33,8 @@
33
33
  }
34
34
 
35
35
  .browser-live-view__badge-dot {
36
- width: 0.375rem;
37
- height: 0.375rem;
36
+ width: var(--sigvelo-spacing-1-5);
37
+ height: var(--sigvelo-spacing-1-5);
38
38
  border-radius: 50%;
39
39
  background-color: currentColor;
40
40
  animation: browser-live-view-pulse 1.4s ease-in-out infinite;
@@ -51,13 +51,13 @@
51
51
  }
52
52
 
53
53
  .browser-live-view__ended-title {
54
- font-size: 0.8125rem;
54
+ font-size: var(--sigvelo-text-compact);
55
55
  font-weight: var(--sigvelo-font-weight-semibold);
56
56
  color: var(--sigvelo-color-text-muted);
57
57
  }
58
58
 
59
59
  .browser-live-view__ended-detail {
60
- font-size: 0.75rem;
60
+ font-size: var(--sigvelo-text-xs);
61
61
  color: var(--sigvelo-color-text-muted);
62
62
  max-width: 80%;
63
63
  overflow: hidden;
@@ -84,7 +84,7 @@
84
84
  gap: 0.5rem;
85
85
  background-color: var(--sigvelo-color-neutral-bg-subtle);
86
86
  color: var(--sigvelo-color-text-muted);
87
- font-size: 0.8125rem;
87
+ font-size: var(--sigvelo-text-compact);
88
88
  }
89
89
 
90
90
  .browser-live-view__state-spinner {
@@ -115,7 +115,7 @@
115
115
  .browser-live-view__dialog {
116
116
  display: flex;
117
117
  flex-direction: column;
118
- gap: 0.75rem;
118
+ gap: var(--sigvelo-spacing-3);
119
119
  }
120
120
 
121
121
  .browser-live-view__dialog-body {
@@ -5,7 +5,7 @@
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  width: 100%;
8
- font-family: var(--sigvelo-font-sans);
8
+ font-family: inherit;
9
9
  color: var(--sigvelo-color-text);
10
10
  background-color: var(--sigvelo-color-surface);
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -41,16 +41,16 @@
41
41
  place-content: center;
42
42
  padding: 1rem;
43
43
  color: var(--sigvelo-color-text-muted);
44
- font-size: 0.8125rem;
44
+ font-size: var(--sigvelo-text-compact);
45
45
  text-align: center;
46
46
  }
47
47
 
48
48
  .browser-replay__controls {
49
49
  display: flex;
50
50
  align-items: center;
51
- gap: 0.625rem;
51
+ gap: var(--sigvelo-spacing-2-5);
52
52
  padding-block: 0.5rem;
53
- padding-inline: 0.75rem;
53
+ padding-inline: var(--sigvelo-spacing-3);
54
54
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
55
55
  var(--sigvelo-color-neutral-border-subtle);
56
56
  background-color: var(--sigvelo-color-surface);
@@ -70,7 +70,7 @@
70
70
  .browser-replay__time {
71
71
  color: var(--sigvelo-color-text-muted);
72
72
  font-family: var(--sigvelo-font-mono);
73
- font-size: 0.6875rem;
73
+ font-size: var(--sigvelo-text-2xs);
74
74
  font-variant-numeric: tabular-nums;
75
75
  white-space: nowrap;
76
76
  }
@@ -1,132 +1,83 @@
1
1
  .browser-run-panel {
2
2
  min-inline-size: 0;
3
3
  min-block-size: 0;
4
- display: flex;
5
- flex-direction: column;
6
- background: var(--sigvelo-color-canvas);
7
- color: var(--sigvelo-color-text);
8
- font-family: var(--sigvelo-font-sans);
4
+ height: 100%;
9
5
  }
10
6
 
11
- .browser-run-panel__header {
7
+ .browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
12
8
  min-block-size: 3rem;
13
- display: flex;
14
- align-items: center;
15
- justify-content: space-between;
16
- gap: 0.75rem;
17
- padding: 0.5rem 0.625rem;
18
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
19
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 62%, transparent);
20
- background: var(--sigvelo-color-surface);
21
- }
22
-
23
- .browser-run-panel__identity {
24
- min-inline-size: 0;
25
- display: flex;
26
- align-items: center;
27
- gap: 0.625rem;
28
- }
29
-
30
- .browser-run-panel__icon {
31
- flex: none;
32
- color: var(--sigvelo-color-text-muted);
9
+ gap: 0;
10
+ padding-block: 0;
11
+ padding-inline: var(--sigvelo-spacing-1-5);
12
+ border-block-end: 0;
13
+ background: var(--sigvelo-color-canvas);
33
14
  }
34
15
 
35
- .browser-run-panel__title-block {
36
- min-inline-size: 0;
16
+ .browser-run-panel__tabs {
37
17
  display: flex;
38
- flex-direction: column;
39
- gap: 0.125rem;
40
- }
41
-
42
- .browser-run-panel__title {
43
- font-size: 0.8125rem;
44
- font-weight: var(--sigvelo-font-weight-semibold);
45
- line-height: 1.2;
46
- }
47
-
48
- .browser-run-panel__url,
49
- .browser-run-panel__target-url {
18
+ flex: 1;
50
19
  min-inline-size: 0;
51
- overflow: hidden;
52
- color: var(--sigvelo-color-text-muted);
53
- font-size: 0.75rem;
54
- line-height: 1.2;
55
- text-overflow: ellipsis;
56
- white-space: nowrap;
57
- }
58
-
59
- .browser-run-panel__actions {
60
- flex: none;
61
- display: flex;
62
- align-items: center;
63
- gap: 0.25rem;
64
- }
65
-
66
- .browser-run-panel__actions svg {
67
- width: 1rem;
68
- height: 1rem;
20
+ flex-wrap: nowrap;
21
+ overflow-x: auto;
22
+ scrollbar-width: none;
69
23
  }
70
24
 
71
- .browser-run-panel__targets {
72
- display: flex;
73
- gap: 0.375rem;
74
- padding: 0.5rem 0.625rem;
75
- overflow-x: auto;
76
- border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
77
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 50%, transparent);
78
- background: color-mix(in oklab, var(--sigvelo-color-canvas), var(--sigvelo-color-surface) 58%);
25
+ .browser-run-panel__tabs::-webkit-scrollbar {
26
+ display: none;
79
27
  }
80
28
 
81
- .browser-run-panel__target {
82
- min-inline-size: 8rem;
29
+ .browser-run-panel__tab.button {
30
+ min-inline-size: min(11rem, 45vw);
31
+ min-block-size: 2.75rem;
83
32
  max-inline-size: 13rem;
84
- display: flex;
85
33
  flex: 0 0 auto;
86
- flex-direction: column;
87
- gap: 0.125rem;
88
- padding: 0.375rem 0.5rem;
89
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
90
- color-mix(in srgb, var(--sigvelo-color-neutral-border-subtle) 68%, transparent);
91
- border-radius: var(--sigvelo-radius-md);
92
- background: var(--sigvelo-color-surface);
93
- color: inherit;
94
- font: inherit;
34
+ gap: 0.5rem;
35
+ padding-inline: var(--sigvelo-spacing-3);
36
+ border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
95
37
  text-align: start;
96
- cursor: pointer;
97
- }
98
-
99
- .browser-run-panel__target:hover {
100
- border-color: var(--sigvelo-color-neutral-border);
38
+ white-space: nowrap;
101
39
  }
102
40
 
103
- .browser-run-panel__target:focus-visible {
104
- outline: 2px solid var(--sigvelo-color-focus);
105
- outline-offset: 2px;
41
+ .browser-run-panel__tab[aria-selected="true"] {
42
+ background: var(--sigvelo-color-surface);
43
+ color: var(--sigvelo-color-text);
106
44
  }
107
45
 
108
- .browser-run-panel__target[aria-pressed="true"] {
109
- border-color: color-mix(in srgb, var(--sigvelo-color-primary-border) 82%, transparent);
46
+ .browser-run-panel__tab-glyph {
47
+ display: grid;
48
+ flex: none;
49
+ inline-size: 1.125rem;
50
+ block-size: 1.125rem;
51
+ place-items: center;
52
+ border-radius: 50%;
110
53
  background: var(--sigvelo-color-primary-bg-subtle);
54
+ color: var(--sigvelo-color-primary-text);
55
+ font-size: var(--sigvelo-text-3xs);
56
+ font-weight: var(--sigvelo-font-weight-bold);
57
+ line-height: 1;
111
58
  }
112
59
 
113
- .browser-run-panel__target-title {
60
+ .browser-run-panel__tab-title {
114
61
  overflow: hidden;
115
- font-size: 0.75rem;
116
- font-weight: var(--sigvelo-font-weight-semibold);
62
+ max-inline-size: 100%;
63
+ font-size: var(--sigvelo-text-xs);
117
64
  line-height: 1.2;
118
65
  text-overflow: ellipsis;
119
66
  white-space: nowrap;
120
67
  }
121
68
 
122
- .browser-run-panel__body {
69
+ .browser-run-panel__address-bar {
70
+ min-block-size: 3rem;
71
+ background: var(--sigvelo-color-surface);
72
+ }
73
+
74
+ .browser-run-panel .browser-run-panel__body {
123
75
  min-block-size: 0;
124
76
  display: flex;
125
- flex: 1;
126
- padding: 0.625rem;
77
+ padding: var(--sigvelo-spacing-2-5);
127
78
  }
128
79
 
129
- .browser-run-panel__body > .browser-live-view {
80
+ .browser-run-panel__live-view {
130
81
  flex: 1;
131
82
  min-block-size: 16rem;
132
83
  aspect-ratio: auto;
@@ -134,27 +85,17 @@
134
85
  }
135
86
 
136
87
  .browser-run-panel__state {
137
- min-block-size: 14rem;
138
- display: flex;
139
88
  flex: 1;
140
- flex-direction: column;
141
- align-items: center;
142
- justify-content: center;
143
- gap: 0.5rem;
144
- padding: 1rem;
145
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
146
- var(--sigvelo-color-neutral-border-subtle);
147
- border-radius: var(--sigvelo-radius-md);
148
- background: var(--sigvelo-color-neutral-bg-subtle);
149
- color: var(--sigvelo-color-text-muted);
150
- font-size: 0.8125rem;
151
- text-align: center;
89
+ min-block-size: 14rem;
152
90
  }
153
91
 
154
92
  .browser-run-panel__state[data-tone="danger"] {
155
93
  min-block-size: auto;
156
94
  flex: none;
157
- margin: 0.625rem 0.625rem 0;
95
+ margin: 0;
96
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
97
+ var(--sigvelo-color-danger-border-subtle);
98
+ border-radius: 0;
158
99
  border-color: var(--sigvelo-color-danger-border-subtle);
159
100
  background: var(--sigvelo-color-danger-bg-subtle);
160
101
  color: var(--sigvelo-color-danger-text);
@@ -171,8 +112,14 @@
171
112
  }
172
113
 
173
114
  @media (prefers-reduced-motion: reduce) {
174
- .browser-run-panel__spinner,
175
- .browser-run-panel__actions .button svg {
115
+ .browser-run-panel__spinner {
176
116
  animation: none;
177
117
  }
178
118
  }
119
+
120
+ @media (forced-colors: active) {
121
+ .browser-run-panel__tab[aria-selected="true"] {
122
+ outline: 2px solid Highlight;
123
+ outline-offset: -2px;
124
+ }
125
+ }
@@ -1,16 +1,25 @@
1
1
  .button {
2
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-md);
3
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-3);
4
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-md);
5
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-md);
6
+
2
7
  display: inline-flex;
3
8
  align-items: center;
4
9
  justify-content: center;
5
- gap: 0.5rem;
10
+ gap: var(--sigvelo-recipe-control-gap);
11
+ min-block-size: var(--sigvelo-recipe-button-height);
12
+ padding-block: 0;
13
+ padding-inline: var(--sigvelo-recipe-button-padding-inline);
6
14
  white-space: nowrap;
7
15
  border: none;
8
16
  cursor: pointer;
9
- font-family: var(--sigvelo-font-sans);
17
+ font-family: inherit;
18
+ font-size: var(--sigvelo-recipe-button-font-size);
10
19
  font-weight: var(--sigvelo-font-weight-semibold);
11
20
  line-height: 1.25;
12
21
  text-decoration: none;
13
- border-radius: var(--sigvelo-radius-md);
22
+ border-radius: var(--sigvelo-recipe-button-radius);
14
23
  transition:
15
24
  background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
16
25
  color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
@@ -26,14 +35,12 @@
26
35
 
27
36
  .button:focus-visible {
28
37
  outline: none;
29
- box-shadow:
30
- 0 0 0 2px var(--sigvelo-color-canvas),
31
- 0 0 0 4px var(--sigvelo-color-focus);
38
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
32
39
  }
33
40
 
34
41
  .button[data-disabled] {
35
42
  pointer-events: none;
36
- opacity: 0.5;
43
+ opacity: var(--sigvelo-recipe-disabled-opacity);
37
44
  }
38
45
 
39
46
  /* Normal appearance */
@@ -123,66 +130,64 @@
123
130
  /* Sizes */
124
131
 
125
132
  .button--xs {
126
- min-height: var(--sigvelo-control-height-xs);
127
- padding-block: 0;
128
- padding-inline: 0.65rem;
129
- font-size: var(--sigvelo-control-text-xs);
130
- border-radius: var(--sigvelo-radius-sm);
133
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xs);
134
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-2);
135
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-xs);
136
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
131
137
  }
132
138
 
133
139
  .button--sm {
134
- min-height: var(--sigvelo-control-height-sm);
135
- padding-block: 0;
136
- padding-inline: 0.85rem;
137
- font-size: var(--sigvelo-control-text-sm);
138
- border-radius: var(--sigvelo-radius-sm);
140
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-sm);
141
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-2-5);
142
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-sm);
143
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
139
144
  }
140
145
 
141
146
  .button--md {
142
- min-height: var(--sigvelo-control-height-md);
143
- padding-block: 0;
144
- padding-inline: 1.25rem;
145
- font-size: var(--sigvelo-control-text-md);
147
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-md);
148
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-3);
149
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-md);
146
150
  }
147
151
 
148
152
  .button--lg {
149
- min-height: var(--sigvelo-control-height-lg);
150
- padding-block: 0;
151
- padding-inline: 1.5rem;
152
- font-size: var(--sigvelo-control-text-lg);
153
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-lg);
154
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-4);
155
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-lg);
153
156
  }
154
157
 
155
158
  .button--xl {
156
- min-height: var(--sigvelo-control-height-xl);
157
- padding-block: 0;
158
- padding-inline: 1.75rem;
159
- font-size: var(--sigvelo-control-text-xl);
159
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xl);
160
+ --sigvelo-recipe-button-padding-inline: 1.25rem;
161
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-xl);
160
162
  }
161
163
 
162
164
  .button--icon {
163
- min-height: var(--sigvelo-control-height-md);
164
- width: var(--sigvelo-control-height-md);
165
- padding: 0;
165
+ --sigvelo-recipe-button-padding-inline: 0;
166
+
167
+ inline-size: var(--sigvelo-recipe-button-height);
166
168
  }
167
169
 
168
170
  .button--icon-xs {
169
- min-height: var(--sigvelo-control-height-xs);
170
- width: var(--sigvelo-control-height-xs);
171
- padding: 0;
172
- border-radius: var(--sigvelo-radius-sm);
171
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xs);
172
+ --sigvelo-recipe-button-padding-inline: 0;
173
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
174
+
175
+ inline-size: var(--sigvelo-recipe-button-height);
173
176
  }
174
177
 
175
178
  .button--icon-sm {
176
- min-height: var(--sigvelo-control-height-sm);
177
- width: var(--sigvelo-control-height-sm);
178
- padding: 0;
179
- border-radius: var(--sigvelo-radius-sm);
179
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-sm);
180
+ --sigvelo-recipe-button-padding-inline: 0;
181
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
182
+
183
+ inline-size: var(--sigvelo-recipe-button-height);
180
184
  }
181
185
 
182
186
  .button--icon-lg {
183
- min-height: var(--sigvelo-control-height-lg);
184
- width: var(--sigvelo-control-height-lg);
185
- padding: 0;
187
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-lg);
188
+ --sigvelo-recipe-button-padding-inline: 0;
189
+
190
+ inline-size: var(--sigvelo-recipe-button-height);
186
191
  }
187
192
 
188
193
  @media (forced-colors: active) {
@@ -3,7 +3,7 @@
3
3
  color: var(--sigvelo-color-text);
4
4
  /* Shadow-led elevation: no perimeter border */
5
5
  border-radius: var(--sigvelo-radius-lg);
6
- padding: 1.5rem;
6
+ padding: var(--sigvelo-spacing-6);
7
7
  container-type: inline-size;
8
8
  box-shadow: var(--sigvelo-shadow-sm);
9
9
  transition:
@@ -14,7 +14,7 @@
14
14
  .card__header,
15
15
  .card__footer {
16
16
  align-items: center;
17
- gap: 0.75rem;
17
+ gap: var(--sigvelo-recipe-row-padding-inline);
18
18
  }
19
19
 
20
20
  .card__header {
@@ -68,7 +68,5 @@
68
68
 
69
69
  .card--hover:focus-visible {
70
70
  outline: none;
71
- box-shadow:
72
- 0 0 0 2px var(--sigvelo-color-canvas),
73
- 0 0 0 4px var(--sigvelo-color-focus);
71
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
74
72
  }