@mcp-b/react-components 0.14.2 → 0.16.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 (234) hide show
  1. package/dist/AgentActivity-BNUNrP9O.d.ts +36 -0
  2. package/dist/{AgentChat-DQkqt82e.d.ts → AgentChat-CrlpbvQJ.d.ts} +58 -6
  3. package/dist/{CodeBlock-DUh9WOGo.d.ts → CodeBlock-BRajW4QU.d.ts} +1 -1
  4. package/dist/{CodeBlock-BUFXG8HW.js → CodeBlock-BmB4Xaqq.js} +15 -4
  5. package/dist/{FileTree-mpEIcfzA.js → FileTree-CkVbIMWV.js} +82 -89
  6. package/dist/Message-BkMdE3bS.js +375 -0
  7. package/dist/{ModelSelector-CPCpFAUt.js → ModelSelector-SlJNgwKY.js} +2 -2
  8. package/dist/{PromptInput-ClNqBiIw.d.ts → PromptInput-BWTuXMOD.d.ts} +123 -5
  9. package/dist/ResponsiveSidebarShell-Dd9DCcBT.d.ts +67 -0
  10. package/dist/{Select-Dl_vF_Bt.d.ts → Select-BeEsefzh.d.ts} +12 -2
  11. package/dist/{ThinkChat-BPcehdbP.js → ThinkChat-CzC-zNGA.js} +24 -36
  12. package/dist/{ThinkChatActivity-BmwuIigx.d.ts → ThinkChatActivity-BFQnb2ct.d.ts} +3 -10
  13. package/dist/ThinkChatActivitySummary-BPmu9a-c.d.ts +39 -0
  14. package/dist/{ThinkChatToolParts-CDEjqS6A.d.ts → ThinkChatToolParts-CSzVwMXf.d.ts} +13 -3
  15. package/dist/ThinkExecutionRun-ChhWhOoU.d.ts +30 -0
  16. package/dist/Toggle-CAAlNl-M.d.ts +69 -0
  17. package/dist/ToggleGroup-8hPv-b69.d.ts +73 -0
  18. package/dist/Workspace-D39LxGvP.d.ts +62 -0
  19. package/dist/WorkspaceFile-DOZkPwzu.d.ts +106 -0
  20. package/dist/WorkspaceFileView-rSN_yT0L.js +744 -0
  21. package/dist/WorkspaceLink-DIPbXrUM.js +337 -0
  22. package/dist/WorkspaceLink-DK1DWMHe.d.ts +89 -0
  23. package/dist/components/Activity.d.ts +27 -1
  24. package/dist/components/Activity.js +33 -15
  25. package/dist/components/AgentActivity.d.ts +2 -0
  26. package/dist/components/AgentActivity.js +45 -0
  27. package/dist/components/AgentActivityPreview.d.ts +46 -0
  28. package/dist/components/AgentActivityPreview.js +94 -0
  29. package/dist/components/AgentAttention.d.ts +73 -0
  30. package/dist/components/AgentAttention.js +85 -0
  31. package/dist/components/AgentChat.d.ts +2 -2
  32. package/dist/components/AgentChat.js +224 -200
  33. package/dist/components/AgentChatMessageEditor.d.ts +29 -0
  34. package/dist/components/AgentChatMessageEditor.js +92 -0
  35. package/dist/components/AgentChatTurnError.d.ts +17 -0
  36. package/dist/components/AgentChatTurnError.js +40 -0
  37. package/dist/components/AgentConnection.d.ts +12 -17
  38. package/dist/components/AgentConnection.js +99 -91
  39. package/dist/components/AppFrame.d.ts +24 -0
  40. package/dist/components/AppFrame.js +25 -0
  41. package/dist/components/AppTopBar.d.ts +71 -0
  42. package/dist/components/AppTopBar.js +82 -0
  43. package/dist/components/Artifact.js +1 -1
  44. package/dist/components/BrowserLiveView.js +1 -1
  45. package/dist/components/BrowserReplay.js +1 -1
  46. package/dist/components/BrowserRunPanel.js +1 -1
  47. package/dist/components/Card.d.ts +3 -0
  48. package/dist/components/Card.js +2 -1
  49. package/dist/components/ChainOfThought.d.ts +1 -1
  50. package/dist/components/ChainOfThought.js +1 -1
  51. package/dist/components/ChatGptSignInScreen.js +2 -2
  52. package/dist/components/Checkbox.js +5 -13
  53. package/dist/components/CheckboxGroup.d.ts +58 -2
  54. package/dist/components/CheckboxGroup.js +59 -1
  55. package/dist/components/CodeBlock.d.ts +1 -1
  56. package/dist/components/CodeBlock.js +1 -1
  57. package/dist/components/CodexModelSelector.js +1 -1
  58. package/dist/components/Commit.js +2 -2
  59. package/dist/components/ContextMenu.js +1 -1
  60. package/dist/components/Conversation.js +1 -1
  61. package/dist/components/DescriptionList.d.ts +12 -0
  62. package/dist/components/DescriptionList.js +11 -0
  63. package/dist/components/DescriptionListParts.d.ts +37 -0
  64. package/dist/components/DescriptionListParts.js +35 -0
  65. package/dist/components/EnvironmentVariables.js +2 -2
  66. package/dist/components/Fieldset.d.ts +13 -1
  67. package/dist/components/Fieldset.js +11 -2
  68. package/dist/components/FileTree.js +1 -1
  69. package/dist/components/IconButton.d.ts +33 -0
  70. package/dist/components/IconButton.js +27 -0
  71. package/dist/components/McpConnectionRequest.d.ts +44 -0
  72. package/dist/components/McpConnectionRequest.js +122 -0
  73. package/dist/components/McpServerPicker.d.ts +48 -23
  74. package/dist/components/McpServerPicker.js +238 -189
  75. package/dist/components/Menubar.js +1 -1
  76. package/dist/components/Message.d.ts +1 -0
  77. package/dist/components/Message.js +1 -285
  78. package/dist/components/MessageScroller.js +1 -1
  79. package/dist/components/ModelSelector.js +1 -1
  80. package/dist/components/Pricing.d.ts +37 -0
  81. package/dist/components/Pricing.js +17 -0
  82. package/dist/components/PricingBillingToggle.d.ts +23 -0
  83. package/dist/components/PricingBillingToggle.js +86 -0
  84. package/dist/components/PricingConfirmationDialog.d.ts +25 -0
  85. package/dist/components/PricingConfirmationDialog.js +57 -0
  86. package/dist/components/PricingFAQ.d.ts +18 -0
  87. package/dist/components/PricingFAQ.js +27 -0
  88. package/dist/components/PricingPage.d.ts +2 -38
  89. package/dist/components/PricingPage.js +39 -359
  90. package/dist/components/PricingPlanCard.d.ts +22 -0
  91. package/dist/components/PricingPlanCard.js +109 -0
  92. package/dist/components/PricingUsageCalculator.d.ts +22 -0
  93. package/dist/components/PricingUsageCalculator.js +96 -0
  94. package/dist/components/PromptInput.d.ts +2 -2
  95. package/dist/components/PromptInput.js +210 -15
  96. package/dist/components/Queue.js +1 -1
  97. package/dist/components/Reasoning.d.ts +2 -1
  98. package/dist/components/Reasoning.js +14 -29
  99. package/dist/components/ResizableSidePanel.d.ts +57 -0
  100. package/dist/components/ResizableSidePanel.js +151 -0
  101. package/dist/components/ResponsiveSidebarShell.d.ts +2 -0
  102. package/dist/components/ResponsiveSidebarShell.js +129 -0
  103. package/dist/components/Select.d.ts +2 -2
  104. package/dist/components/Select.js +11 -2
  105. package/dist/components/Slider.d.ts +13 -1
  106. package/dist/components/Slider.js +11 -0
  107. package/dist/components/Sources.js +1 -1
  108. package/dist/components/Stepper.d.ts +4 -0
  109. package/dist/components/Stepper.js +5 -3
  110. package/dist/components/SubagentRun.d.ts +18 -19
  111. package/dist/components/SubagentRun.js +25 -18
  112. package/dist/components/SubagentRunIndicator.d.ts +22 -0
  113. package/dist/components/SubagentRunIndicator.js +33 -0
  114. package/dist/components/SubagentRunList.d.ts +25 -0
  115. package/dist/components/SubagentRunList.js +26 -0
  116. package/dist/components/SubagentRunSelector.d.ts +47 -0
  117. package/dist/components/SubagentRunSelector.js +55 -0
  118. package/dist/components/Task.js +1 -1
  119. package/dist/components/Terminal.js +2 -2
  120. package/dist/components/TestResults.js +1 -1
  121. package/dist/components/Textarea.d.ts +21 -0
  122. package/dist/components/Textarea.js +19 -0
  123. package/dist/components/ThemeModeControl.d.ts +24 -0
  124. package/dist/components/ThemeModeControl.js +52 -0
  125. package/dist/components/ThemeProvider.d.ts +38 -0
  126. package/dist/components/ThemeProvider.js +80 -0
  127. package/dist/components/ThinkChat.d.ts +29 -6
  128. package/dist/components/ThinkChat.js +7 -4
  129. package/dist/components/ThinkChatActivity.d.ts +3 -2
  130. package/dist/components/ThinkChatActivity.js +12 -318
  131. package/dist/components/ThinkChatActivitySummary.d.ts +2 -0
  132. package/dist/components/ThinkChatActivitySummary.js +421 -0
  133. package/dist/components/ThinkChatToolPanels.d.ts +7 -5
  134. package/dist/components/ThinkChatToolPanels.js +70 -8
  135. package/dist/components/ThinkChatToolParts.d.ts +2 -2
  136. package/dist/components/ThinkChatToolParts.js +36 -10
  137. package/dist/components/ThinkExecutionDetail.d.ts +20 -0
  138. package/dist/components/ThinkExecutionDetail.js +80 -0
  139. package/dist/components/ThinkExecutionRun.d.ts +2 -0
  140. package/dist/components/ThinkExecutionRun.js +72 -0
  141. package/dist/components/ThinkExecutionStatus.d.ts +22 -0
  142. package/dist/components/ThinkExecutionStatus.js +36 -0
  143. package/dist/components/ThinkExecutionWorkbench.d.ts +7 -0
  144. package/dist/components/ThinkExecutionWorkbench.js +69 -225
  145. package/dist/components/ThinkFullApp.d.ts +58 -14
  146. package/dist/components/ThinkFullApp.js +129 -160
  147. package/dist/components/ThinkFullAppViewSwitch.d.ts +31 -0
  148. package/dist/components/ThinkFullAppViewSwitch.js +34 -0
  149. package/dist/components/ThinkRoutine.d.ts +36 -0
  150. package/dist/components/ThinkRoutine.js +15 -0
  151. package/dist/components/ThinkRoutineBrowser.d.ts +25 -0
  152. package/dist/components/ThinkRoutineBrowser.js +156 -0
  153. package/dist/components/ThinkRoutineDetail.d.ts +24 -0
  154. package/dist/components/ThinkRoutineDetail.js +102 -0
  155. package/dist/components/ThinkRoutineForm.d.ts +32 -0
  156. package/dist/components/ThinkRoutineForm.js +151 -0
  157. package/dist/components/ThinkRoutineLibrary.d.ts +74 -0
  158. package/dist/components/ThinkRoutineLibrary.js +178 -0
  159. package/dist/components/ThinkRoutineRuns.d.ts +24 -0
  160. package/dist/components/ThinkRoutineRuns.js +68 -0
  161. package/dist/components/ThinkThreadPicker.d.ts +18 -1
  162. package/dist/components/ThinkThreadPicker.js +51 -5
  163. package/dist/components/ThinkThreadShell.d.ts +12 -9
  164. package/dist/components/ThinkThreadShell.js +17 -137
  165. package/dist/components/Toggle.d.ts +1 -68
  166. package/dist/components/ToggleGroup.d.ts +1 -72
  167. package/dist/components/Tooltip.d.ts +3 -1
  168. package/dist/components/Tooltip.js +4 -2
  169. package/dist/components/WebPreview.js +1 -1
  170. package/dist/components/Workspace.d.ts +2 -0
  171. package/dist/components/Workspace.js +424 -0
  172. package/dist/components/WorkspaceBrowser.d.ts +32 -0
  173. package/dist/components/WorkspaceBrowser.js +103 -0
  174. package/dist/components/WorkspaceExplorer.d.ts +12 -79
  175. package/dist/components/WorkspaceExplorer.js +116 -330
  176. package/dist/components/WorkspaceFile.d.ts +2 -0
  177. package/dist/components/WorkspaceFile.js +195 -0
  178. package/dist/components/WorkspaceFileView.d.ts +26 -0
  179. package/dist/components/WorkspaceFileView.js +2 -0
  180. package/dist/components/WorkspaceHeader.d.ts +35 -0
  181. package/dist/components/WorkspaceHeader.js +51 -0
  182. package/dist/components/WorkspaceLink.d.ts +2 -0
  183. package/dist/components/WorkspaceLink.js +2 -0
  184. package/dist/components/icons.d.ts +2 -2
  185. package/dist/components/icons.js +2 -2
  186. package/dist/{copy-button-DUMLYdsk.js → copy-button-Dejn5heL.js} +1 -1
  187. package/dist/icons-CpfUer49.js +85 -0
  188. package/dist/{icons-CUCz_Sft.d.ts → icons-GQd1xF4e.d.ts} +51 -1
  189. package/dist/styles/activity-header.css +75 -0
  190. package/dist/styles/activity.css +49 -63
  191. package/dist/styles/agent-activity-preview-overlay.css +80 -0
  192. package/dist/styles/agent-activity-preview.css +235 -0
  193. package/dist/styles/agent-attention.css +122 -0
  194. package/dist/styles/agent-chat.css +133 -4
  195. package/dist/styles/app-frame.css +15 -0
  196. package/dist/styles/app-top-bar.css +100 -0
  197. package/dist/styles/avatar.css +0 -1
  198. package/dist/styles/browser-control-overlay.css +184 -0
  199. package/dist/styles/card.css +21 -0
  200. package/dist/styles/checkbox-group.css +69 -0
  201. package/dist/styles/description-list.css +50 -0
  202. package/dist/styles/fieldset.css +11 -0
  203. package/dist/styles/index.css +14 -2
  204. package/dist/styles/mcp-connection-request.css +60 -0
  205. package/dist/styles/mcp-server-picker.css +95 -68
  206. package/dist/styles/message.css +4 -43
  207. package/dist/styles/pricing-page.css +21 -27
  208. package/dist/styles/prompt-input.css +225 -32
  209. package/dist/styles/reasoning.css +1 -55
  210. package/dist/styles/recipes.css +23 -15
  211. package/dist/styles/resizable-side-panel.css +66 -0
  212. package/dist/styles/responsive-sidebar-shell.css +169 -0
  213. package/dist/styles/select.css +10 -0
  214. package/dist/styles/stepper.css +13 -0
  215. package/dist/styles/streamdown.css +0 -4
  216. package/dist/styles/subagent-run.css +55 -38
  217. package/dist/styles/textarea.css +20 -0
  218. package/dist/styles/theme-mode-control.css +72 -0
  219. package/dist/styles/think-execution-status.css +49 -0
  220. package/dist/styles/think-execution-workbench.css +8 -72
  221. package/dist/styles/think-full-app.css +104 -131
  222. package/dist/styles/think-routine-library.css +491 -0
  223. package/dist/styles/think-thread-picker.css +47 -3
  224. package/dist/styles/toggle-group.css +7 -0
  225. package/dist/styles/workspace-explorer.css +511 -64
  226. package/dist/utils/mcp-server-catalog.d.ts +82 -78
  227. package/dist/utils/mcp-server-catalog.js +64 -41
  228. package/dist/utils/structured-code.d.ts +1 -1
  229. package/dist/utils/theme.d.ts +22 -0
  230. package/dist/utils/theme.js +55 -0
  231. package/package.json +34 -28
  232. package/dist/icons-Ba9THQKz.js +0 -64
  233. package/dist/styles/think-resize-handle.css +0 -33
  234. package/dist/styles/think-thread-shell.css +0 -219
@@ -55,31 +55,58 @@
55
55
  /* Floating over the transcript: solid behind the controls, fading out
56
56
  through the top padding so content slides under instead of hitting a bar. */
57
57
  .agent-chat__composer {
58
+ isolation: isolate;
58
59
  position: absolute;
59
60
  inset-inline: 0;
60
61
  inset-block-end: 0;
61
- padding: var(--sigvelo-spacing-2-5);
62
- padding-block-start: 1.5rem;
62
+ padding: var(--sigvelo-spacing-2);
63
+ padding-block-start: var(--sigvelo-spacing-4);
63
64
  background: linear-gradient(
64
65
  to top,
65
- var(--sigvelo-color-surface) calc(100% - 1.5rem),
66
+ var(--sigvelo-color-surface) calc(100% - var(--sigvelo-spacing-4)),
66
67
  transparent
67
68
  );
68
69
  }
69
70
 
70
71
  .agent-chat__composer > .prompt-input {
72
+ z-index: 1;
71
73
  inline-size: min(100%, var(--agent-chat-content-max-inline-size));
72
74
  margin-inline: auto;
73
75
  }
74
76
 
75
77
  .agent-chat__add-menu {
76
- inline-size: min(32rem, calc(100dvw - 1rem));
78
+ --sigvelo-recipe-surface-radius: var(--sigvelo-radius-xl);
79
+ --sigvelo-recipe-surface-shadow: var(--sigvelo-shadow-xl);
80
+ --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-1);
81
+ --sigvelo-recipe-row-min-height: var(--sigvelo-control-height-sm);
82
+ --sigvelo-recipe-row-padding-block: var(--sigvelo-spacing-1);
83
+ --sigvelo-recipe-row-padding-inline: var(--sigvelo-spacing-2);
84
+ --sigvelo-recipe-row-gap: var(--sigvelo-spacing-2-5);
85
+ --sigvelo-recipe-row-font-size: var(--sigvelo-text-sm);
86
+ --sigvelo-recipe-row-radius: var(--sigvelo-radius-md);
87
+
88
+ inline-size: min(46rem, calc(100dvw - 1rem));
77
89
  max-block-size: min(28rem, calc(100dvh - 2rem));
78
90
  overflow-y: auto;
79
91
  overscroll-behavior: contain;
80
92
  scrollbar-gutter: stable;
81
93
  }
82
94
 
95
+ .agent-chat__add-menu-group-label {
96
+ padding-block: var(--sigvelo-spacing-2);
97
+ padding-inline: var(--sigvelo-spacing-2);
98
+ color: var(--sigvelo-color-text-muted);
99
+ font-size: var(--sigvelo-text-sm);
100
+ font-weight: var(--sigvelo-font-weight-normal);
101
+ line-height: var(--sigvelo-leading-tight);
102
+ }
103
+
104
+ @media (any-pointer: coarse) {
105
+ .agent-chat__add-menu {
106
+ --sigvelo-recipe-row-min-height: var(--sigvelo-control-height-xl);
107
+ }
108
+ }
109
+
83
110
  /* Transient status pill between transcript and composer (recovery, errors). */
84
111
  .agent-chat__notice {
85
112
  display: flex;
@@ -94,6 +121,108 @@
94
121
  margin-block-end: 0;
95
122
  }
96
123
 
124
+ .agent-chat__queued {
125
+ --agent-chat-queued-underlap: var(--sigvelo-spacing-3);
126
+
127
+ position: relative;
128
+ z-index: 0;
129
+ inline-size: calc(
130
+ min(100%, var(--agent-chat-content-max-inline-size)) - var(--sigvelo-spacing-8) -
131
+ var(--sigvelo-spacing-2)
132
+ );
133
+ margin-inline: auto;
134
+ margin-block-end: calc(-1 * var(--agent-chat-queued-underlap));
135
+ overflow: hidden;
136
+ border: var(--sigvelo-border-width) var(--sigvelo-border-style)
137
+ var(--sigvelo-color-neutral-border-subtle);
138
+ border-radius: var(--sigvelo-radius-xl);
139
+ background-color: var(--sigvelo-color-neutral-bg-subtle);
140
+ }
141
+
142
+ .agent-chat__queued-list {
143
+ display: grid;
144
+ gap: var(--sigvelo-border-width);
145
+ margin: 0;
146
+ padding-block-start: calc(var(--sigvelo-spacing-0-5) + var(--sigvelo-border-width));
147
+ padding-block-end: calc(var(--sigvelo-spacing-0-5) + var(--agent-chat-queued-underlap));
148
+ padding-inline: 0;
149
+ list-style: none;
150
+ }
151
+
152
+ .agent-chat__queued-message {
153
+ display: flex;
154
+ align-items: center;
155
+ min-inline-size: 0;
156
+ min-block-size: var(--sigvelo-spacing-6);
157
+ gap: var(--sigvelo-spacing-1-5);
158
+ padding-block: 0;
159
+ padding-inline: var(--sigvelo-spacing-2-5);
160
+ color: var(--sigvelo-color-text);
161
+ font-size: var(--sigvelo-text-compact);
162
+ line-height: var(--sigvelo-leading-snug);
163
+ }
164
+
165
+ .agent-chat__queued-indicator {
166
+ display: inline-flex;
167
+ flex: none;
168
+ color: var(--sigvelo-color-text-muted);
169
+ }
170
+
171
+ .agent-chat__queued-indicator svg,
172
+ .agent-chat__queued-action svg {
173
+ inline-size: var(--sigvelo-text-sm);
174
+ block-size: var(--sigvelo-text-sm);
175
+ }
176
+
177
+ .agent-chat__queued-text {
178
+ min-inline-size: 0;
179
+ flex: 1;
180
+ overflow: hidden;
181
+ text-overflow: ellipsis;
182
+ white-space: nowrap;
183
+ }
184
+
185
+ .agent-chat__queued-action {
186
+ display: inline-flex;
187
+ align-items: center;
188
+ justify-content: center;
189
+ gap: var(--sigvelo-spacing-1-5);
190
+ min-block-size: var(--sigvelo-spacing-6);
191
+ padding-inline: var(--sigvelo-spacing-2);
192
+ border: 0;
193
+ border-radius: var(--sigvelo-radius-md);
194
+ background: transparent;
195
+ color: color-mix(in oklab, var(--sigvelo-color-text-muted), var(--sigvelo-color-text) 12%);
196
+ font: inherit;
197
+ cursor: pointer;
198
+ }
199
+
200
+ .agent-chat__queued-action:hover {
201
+ color: var(--sigvelo-color-text);
202
+ background-color: color-mix(in oklab, transparent, var(--sigvelo-color-text) 5%);
203
+ }
204
+
205
+ .agent-chat__queued-action:focus-visible {
206
+ outline: none;
207
+ box-shadow: var(--sigvelo-recipe-focus-shadow-subtle);
208
+ }
209
+
210
+ .agent-chat__queued-remove {
211
+ min-inline-size: var(--sigvelo-spacing-6);
212
+ padding-inline: 0;
213
+ }
214
+
215
+ @media (any-pointer: coarse) {
216
+ .agent-chat__queued-message,
217
+ .agent-chat__queued-action {
218
+ min-block-size: var(--sigvelo-control-height-xl);
219
+ }
220
+
221
+ .agent-chat__queued-remove {
222
+ min-inline-size: var(--sigvelo-control-height-xl);
223
+ }
224
+ }
225
+
97
226
  .agent-chat__notice[data-tone="danger"],
98
227
  .agent-chat__notice [data-tone="danger"] {
99
228
  color: var(--sigvelo-color-danger-text);
@@ -0,0 +1,15 @@
1
+ .app-frame {
2
+ block-size: 100%;
3
+ min-block-size: 0;
4
+ display: grid;
5
+ grid-template-rows: auto minmax(0, 1fr);
6
+ overflow: hidden;
7
+ color: var(--sigvelo-color-text);
8
+ background: var(--sigvelo-color-canvas);
9
+ container-type: inline-size;
10
+ }
11
+
12
+ .app-frame__body {
13
+ min-block-size: 0;
14
+ overflow: hidden;
15
+ }
@@ -0,0 +1,100 @@
1
+ .app-top-bar {
2
+ box-sizing: border-box;
3
+ inline-size: 100%;
4
+ min-inline-size: 0;
5
+ min-block-size: calc(2.75rem + env(safe-area-inset-top, 0px));
6
+ display: grid;
7
+ grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
8
+ align-items: center;
9
+ gap: var(--sigvelo-spacing-2);
10
+ padding-block: calc(var(--sigvelo-spacing-1) + env(safe-area-inset-top, 0px))
11
+ var(--sigvelo-spacing-1);
12
+ padding-inline: calc(var(--sigvelo-spacing-2) + env(safe-area-inset-left, 0px))
13
+ calc(var(--sigvelo-spacing-2) + env(safe-area-inset-right, 0px));
14
+ border: 0;
15
+ border-block-end: 0;
16
+ border-radius: 0;
17
+ background: var(--sigvelo-color-surface);
18
+ }
19
+
20
+ .app-top-bar__leading,
21
+ .app-top-bar__trailing {
22
+ min-inline-size: 0;
23
+ gap: var(--sigvelo-spacing-0-5);
24
+ }
25
+
26
+ .app-top-bar__leading {
27
+ grid-column: 1;
28
+ justify-self: start;
29
+ }
30
+
31
+ .app-top-bar__title {
32
+ grid-column: 2;
33
+ min-inline-size: 0;
34
+ max-inline-size: min(20rem, 45vw);
35
+ align-self: center;
36
+ justify-self: center;
37
+ overflow: hidden;
38
+ color: var(--sigvelo-color-text);
39
+ font-size: var(--sigvelo-text-compact);
40
+ font-weight: var(--sigvelo-font-weight-semibold);
41
+ line-height: var(--sigvelo-leading-tight);
42
+ text-overflow: ellipsis;
43
+ white-space: nowrap;
44
+ }
45
+
46
+ .app-top-bar__trailing {
47
+ grid-column: 3;
48
+ justify-self: end;
49
+ }
50
+
51
+ .app-top-bar__button {
52
+ box-sizing: border-box;
53
+ flex: 0 0 auto;
54
+ inline-size: 2rem;
55
+ min-inline-size: 2rem;
56
+ block-size: 2rem;
57
+ min-block-size: 2rem;
58
+ padding: var(--sigvelo-spacing-1);
59
+ color: var(--sigvelo-color-text-muted);
60
+ line-height: 0;
61
+ }
62
+
63
+ .app-top-bar__button svg {
64
+ display: block;
65
+ inline-size: 1rem;
66
+ block-size: 1rem;
67
+ }
68
+
69
+ .app-top-bar__button:hover:not([data-disabled]),
70
+ .app-top-bar__button:is([aria-expanded="true"], [data-popup-open], [data-pressed]) {
71
+ background-color: var(--sigvelo-color-neutral-bg-subtle);
72
+ color: var(--sigvelo-color-text);
73
+ }
74
+
75
+ @media (any-pointer: coarse) {
76
+ .app-top-bar__button {
77
+ inline-size: 2.75rem;
78
+ min-inline-size: 2.75rem;
79
+ block-size: 2.75rem;
80
+ min-block-size: 2.75rem;
81
+ }
82
+ }
83
+
84
+ @media (forced-colors: active) {
85
+ .app-top-bar {
86
+ border-block-end-color: canvastext;
87
+ background: canvas;
88
+ }
89
+
90
+ .app-top-bar__button:focus-visible {
91
+ outline: 2px solid Highlight;
92
+ outline-offset: 2px;
93
+ box-shadow: none;
94
+ }
95
+
96
+ .app-top-bar__button:is([aria-expanded="true"], [data-popup-open], [data-pressed]) {
97
+ outline: 2px solid Highlight;
98
+ outline-offset: -2px;
99
+ }
100
+ }
@@ -51,7 +51,6 @@
51
51
  .avatar-group {
52
52
  display: flex;
53
53
  align-items: center;
54
- margin-inline-start: 0.5rem;
55
54
  }
56
55
 
57
56
  .avatar-group .avatar {
@@ -0,0 +1,184 @@
1
+ /*
2
+ * Standalone stylesheet for browser-control chrome mounted in a closed shadow
3
+ * root. It intentionally uses system colors so it remains legible on arbitrary
4
+ * pages without leaking the full document-level token sheet into the host.
5
+ */
6
+
7
+ :host {
8
+ --browser-control-accent: Highlight;
9
+ --browser-control-accent-text: HighlightText;
10
+ --browser-control-warning: Mark;
11
+ --browser-control-warning-text: MarkText;
12
+ --browser-control-shadow: color-mix(in srgb, CanvasText 28%, transparent);
13
+ all: initial;
14
+ border: 0;
15
+ contain: layout style paint;
16
+ inset: 0;
17
+ margin: 0;
18
+ padding: 0;
19
+ pointer-events: none;
20
+ position: fixed;
21
+ z-index: 2147483647;
22
+ }
23
+
24
+ :host .frame {
25
+ background: color-mix(in srgb, var(--browser-control-accent) 5%, transparent);
26
+ border: 3px solid color-mix(in srgb, var(--browser-control-accent) 88%, transparent);
27
+ box-shadow: inset 0 0 18px color-mix(in srgb, var(--browser-control-accent) 28%, transparent);
28
+ box-sizing: border-box;
29
+ inset: 0;
30
+ pointer-events: none;
31
+ position: fixed;
32
+ }
33
+
34
+ :host .frame.waiting {
35
+ background: color-mix(in srgb, var(--browser-control-warning) 12%, transparent);
36
+ border-color: var(--browser-control-warning);
37
+ box-shadow: inset 0 0 18px color-mix(in srgb, var(--browser-control-warning) 32%, transparent);
38
+ }
39
+
40
+ :host .cursor {
41
+ filter: drop-shadow(0 2px 4px var(--browser-control-shadow));
42
+ height: 28px;
43
+ left: 0;
44
+ opacity: 0;
45
+ pointer-events: none;
46
+ position: fixed;
47
+ top: 0;
48
+ transform: translate3d(var(--think-cursor-x, 16px), var(--think-cursor-y, 16px), 0);
49
+ transition:
50
+ transform 140ms cubic-bezier(0.2, 0.8, 0.2, 1),
51
+ opacity 80ms linear;
52
+ width: 28px;
53
+ will-change: transform;
54
+ }
55
+
56
+ :host .cursor.visible {
57
+ opacity: 1;
58
+ }
59
+
60
+ :host .cursor path {
61
+ fill: var(--browser-control-accent);
62
+ stroke: var(--browser-control-accent-text);
63
+ }
64
+
65
+ :host button {
66
+ appearance: none;
67
+ border-radius: 999px;
68
+ box-shadow: 0 2px 10px var(--browser-control-shadow);
69
+ cursor: pointer;
70
+ font:
71
+ 600 12px/1.2 system-ui,
72
+ sans-serif;
73
+ padding: 7px 12px;
74
+ }
75
+
76
+ :host button:focus-visible {
77
+ outline: 3px solid var(--browser-control-accent);
78
+ outline-offset: 2px;
79
+ }
80
+
81
+ :host button:disabled {
82
+ cursor: wait;
83
+ opacity: 0.72;
84
+ }
85
+
86
+ :host .takeover,
87
+ :host .owner {
88
+ background: var(--browser-control-accent);
89
+ border: 1px solid var(--browser-control-accent-text);
90
+ box-shadow: 0 2px 10px var(--browser-control-shadow);
91
+ color: var(--browser-control-accent-text);
92
+ }
93
+
94
+ :host .takeover {
95
+ pointer-events: none;
96
+ position: fixed;
97
+ right: 10px;
98
+ top: 10px;
99
+ }
100
+
101
+ :host .takeover.takeover-armed {
102
+ pointer-events: auto;
103
+ }
104
+
105
+ :host .owner {
106
+ border-radius: 999px;
107
+ font:
108
+ 600 12px/1.2 system-ui,
109
+ sans-serif;
110
+ left: 10px;
111
+ max-width: min(360px, 60vw);
112
+ overflow: hidden;
113
+ padding: 7px 12px;
114
+ pointer-events: none;
115
+ position: fixed;
116
+ text-overflow: ellipsis;
117
+ top: 10px;
118
+ white-space: nowrap;
119
+ }
120
+
121
+ :host .banner {
122
+ align-items: center;
123
+ background: var(--browser-control-warning);
124
+ border: 1px solid var(--browser-control-warning-text);
125
+ border-radius: 14px;
126
+ box-shadow: 0 4px 18px var(--browser-control-shadow);
127
+ color: var(--browser-control-warning-text);
128
+ display: flex;
129
+ font:
130
+ 500 13px/1.35 system-ui,
131
+ sans-serif;
132
+ gap: 10px;
133
+ left: 50%;
134
+ max-width: min(720px, calc(100vw - 32px));
135
+ padding: 9px 10px 9px 16px;
136
+ pointer-events: auto;
137
+ position: fixed;
138
+ top: 12px;
139
+ transform: translateX(-50%);
140
+ }
141
+
142
+ :host .banner .text {
143
+ display: -webkit-box;
144
+ overflow: hidden;
145
+ -webkit-box-orient: vertical;
146
+ -webkit-line-clamp: 2;
147
+ }
148
+
149
+ :host .banner .done,
150
+ :host .banner .cannot {
151
+ border: 1px solid currentcolor;
152
+ color: inherit;
153
+ flex-shrink: 0;
154
+ }
155
+
156
+ :host .banner .done {
157
+ background: color-mix(in srgb, var(--browser-control-warning-text) 16%, transparent);
158
+ }
159
+
160
+ :host .banner .cannot {
161
+ background: transparent;
162
+ box-shadow: none;
163
+ }
164
+
165
+ @media (prefers-reduced-motion: reduce) {
166
+ :host .cursor {
167
+ transition: none;
168
+ }
169
+ }
170
+
171
+ @media print {
172
+ :host {
173
+ display: none !important;
174
+ }
175
+ }
176
+
177
+ @media (forced-colors: active) {
178
+ :host .frame,
179
+ :host .takeover,
180
+ :host .owner,
181
+ :host .banner {
182
+ forced-color-adjust: none;
183
+ }
184
+ }
@@ -11,6 +11,27 @@
11
11
  transform var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
12
12
  }
13
13
 
14
+ .card[data-size="sm"] {
15
+ padding: var(--sigvelo-spacing-3);
16
+ border-radius: var(--sigvelo-radius-md);
17
+ }
18
+
19
+ .card[data-size="sm"] .card__header {
20
+ margin-block-end: var(--sigvelo-spacing-2);
21
+ }
22
+
23
+ .card[data-size="sm"] .card__title {
24
+ font-size: var(--sigvelo-text-sm);
25
+ }
26
+
27
+ .card[data-size="sm"] .card__content {
28
+ gap: var(--sigvelo-spacing-2);
29
+ }
30
+
31
+ .card[data-size="sm"] .card__footer {
32
+ margin-block-start: var(--sigvelo-spacing-2);
33
+ }
34
+
14
35
  .card__header,
15
36
  .card__footer {
16
37
  align-items: center;
@@ -4,6 +4,75 @@
4
4
  gap: 0.5rem;
5
5
  }
6
6
 
7
+ .checkbox-group[data-layout="grid"] {
8
+ display: grid;
9
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, 14rem), 1fr));
10
+ align-items: stretch;
11
+ gap: var(--sigvelo-spacing-3);
12
+ }
13
+
14
+ .checkbox-group__item {
15
+ display: flex;
16
+ align-items: center;
17
+ gap: var(--sigvelo-spacing-2);
18
+ min-block-size: 2.75rem;
19
+ padding-inline: var(--sigvelo-spacing-3);
20
+ border-radius: var(--sigvelo-radius-md);
21
+ color: var(--sigvelo-color-text);
22
+ font-size: var(--sigvelo-text-sm);
23
+ cursor: pointer;
24
+ }
25
+
26
+ .checkbox-group__item:hover,
27
+ .checkbox-group__item:has(.checkbox[data-checked]) {
28
+ background: var(--sigvelo-color-neutral-bg-subtle);
29
+ }
30
+
31
+ .checkbox-group__item:has(.checkbox:focus-visible) {
32
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
33
+ }
34
+
35
+ .checkbox-group__icon {
36
+ display: grid;
37
+ place-items: center;
38
+ flex: 0 0 auto;
39
+ color: var(--sigvelo-color-text-muted);
40
+ }
41
+
42
+ .checkbox-group__icon svg {
43
+ inline-size: 1rem;
44
+ block-size: 1rem;
45
+ }
46
+
47
+ .checkbox-group__content {
48
+ min-inline-size: 0;
49
+ flex: 1 1 auto;
50
+ display: grid;
51
+ gap: var(--sigvelo-spacing-0-5);
52
+ }
53
+
54
+ .checkbox-group__title,
55
+ .checkbox-group__description {
56
+ overflow: hidden;
57
+ text-overflow: ellipsis;
58
+ white-space: nowrap;
59
+ }
60
+
61
+ .checkbox-group__title {
62
+ font-weight: var(--sigvelo-font-weight-semibold);
63
+ }
64
+
65
+ .checkbox-group__description {
66
+ color: var(--sigvelo-color-text-muted);
67
+ font-size: var(--sigvelo-text-xs);
68
+ }
69
+
70
+ .checkbox-group__trailing {
71
+ min-inline-size: 0;
72
+ flex: 0 0 auto;
73
+ color: var(--sigvelo-color-text-muted);
74
+ }
75
+
7
76
  .checkbox-group[data-disabled] {
8
77
  opacity: var(--sigvelo-recipe-disabled-opacity);
9
78
  pointer-events: none;
@@ -0,0 +1,50 @@
1
+ .description-list {
2
+ display: grid;
3
+ gap: var(--sigvelo-spacing-2);
4
+ margin: 0;
5
+ }
6
+
7
+ .description-list__item {
8
+ display: flex;
9
+ justify-content: space-between;
10
+ gap: var(--sigvelo-spacing-3);
11
+ }
12
+
13
+ .description-list__term {
14
+ color: var(--sigvelo-color-text-muted);
15
+ }
16
+
17
+ .description-list__details {
18
+ margin: 0;
19
+ overflow-wrap: anywhere;
20
+ font-family: var(--sigvelo-font-mono);
21
+ font-size: var(--sigvelo-text-xs);
22
+ text-align: end;
23
+ }
24
+
25
+ .description-list[data-variant="divided"] {
26
+ gap: 0;
27
+ border-block: var(--sigvelo-border-style) var(--sigvelo-border-width)
28
+ var(--sigvelo-color-neutral-border-subtle);
29
+ }
30
+
31
+ .description-list[data-variant="divided"] .description-list__item {
32
+ padding-block: var(--sigvelo-spacing-2-5);
33
+ }
34
+
35
+ .description-list[data-variant="divided"] .description-list__item:not(:last-child) {
36
+ border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
37
+ var(--sigvelo-color-neutral-border-subtle);
38
+ }
39
+
40
+ .description-list[data-variant="divided"] .description-list__term {
41
+ display: flex;
42
+ align-items: center;
43
+ gap: var(--sigvelo-spacing-2);
44
+ }
45
+
46
+ .description-list[data-variant="divided"] .description-list__term svg {
47
+ inline-size: 1rem;
48
+ block-size: 1rem;
49
+ flex: 0 0 auto;
50
+ }
@@ -9,6 +9,11 @@
9
9
  border-radius: var(--sigvelo-radius-md);
10
10
  }
11
11
 
12
+ .fieldset[data-variant="plain"] {
13
+ padding: 0;
14
+ border: 0;
15
+ }
16
+
12
17
  .fieldset__legend {
13
18
  padding: 0 0.5rem;
14
19
  margin: 0 -0.5rem;
@@ -17,3 +22,9 @@
17
22
  font-weight: var(--sigvelo-font-weight-bold);
18
23
  color: var(--sigvelo-color-text);
19
24
  }
25
+
26
+ .fieldset__description {
27
+ margin: 0;
28
+ color: var(--sigvelo-color-text-muted);
29
+ font-size: var(--sigvelo-text-sm);
30
+ }