@mcp-b/react-components 0.17.0 → 0.18.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 (292) hide show
  1. package/dist/{AgentActivity-BNUNrP9O.d.ts → AgentActivity-D2SHSGFX.d.ts} +1 -1
  2. package/dist/{AgentChat-CRuMi1Pb.d.ts → AgentChat-ClxViuUM.d.ts} +1 -20
  3. package/dist/{Button-FX_hpqxm.d.ts → Button-DLGzHsjc.d.ts} +13 -7
  4. package/dist/{CodeBlock-Co1noLbC.js → CodeBlock-Bfp5PAg3.js} +9 -6
  5. package/dist/{CodeBlock-Dnpr88ZQ.d.ts → CodeBlock-gV4kZeCI.d.ts} +2 -9
  6. package/dist/{FileTree-B7bBsUyU.js → FileTree-3zYtrddG.js} +42 -16
  7. package/dist/{Message-C4eYRogZ.js → Message-BXtmfc9Q.js} +13 -20
  8. package/dist/{ModelSelector-BNrZlY_Y.js → ModelSelector-Cqw_qrUG.js} +15 -22
  9. package/dist/{PromptInput-OLfXPuHM.d.ts → PromptInput-Bdh9pqlo.d.ts} +4 -6
  10. package/dist/{Select-CwSqP07Y.d.ts → Select-B_13gg_J.d.ts} +2 -2
  11. package/dist/{Tabs-9zddXDQo.d.ts → Tabs-ColWK-XA.d.ts} +10 -2
  12. package/dist/{ThinkChat-DInElus-.js → ThinkChat-15EhfvYJ.js} +84 -61
  13. package/dist/{ThinkChatActivity-BgesTfZ4.d.ts → ThinkChatActivity-Bzot45kX.d.ts} +4 -7
  14. package/dist/{ThinkChatActivitySummary-BPmu9a-c.d.ts → ThinkChatActivitySummary-D1xOrNrq.d.ts} +1 -1
  15. package/dist/{Toggle-DaXpe1Lc.d.ts → Toggle-JKZ43D5S.d.ts} +1 -1
  16. package/dist/{ToggleGroup-yseEWkOC.d.ts → ToggleGroup-DNd6cDJZ.d.ts} +2 -2
  17. package/dist/Workspace-Jez8ffUj.d.ts +274 -0
  18. package/dist/{WorkspaceExplorer-sZewzT2O.d.ts → WorkspaceExplorer-B9dQWNVK.d.ts} +2 -2
  19. package/dist/{WorkspaceFile-C8UzuSH4.d.ts → WorkspaceFile-CzyHnESE.d.ts} +1 -1
  20. package/dist/{WorkspaceFileView-DNdGAEiX.js → WorkspaceFileView-C68Ub8S8.js} +120 -127
  21. package/dist/{WorkspaceLink-B1ykV1dS.js → WorkspaceLink-BYYeTQLf.js} +6 -27
  22. package/dist/{WorkspaceLink-DK1DWMHe.d.ts → WorkspaceLink-O-EBKUJ8.d.ts} +6 -9
  23. package/dist/{class-names-Bk-QLWWI.js → class-names-BiMDVpUo.js} +4 -1
  24. package/dist/components/Accordion.js +7 -2
  25. package/dist/components/Activity.js +2 -2
  26. package/dist/components/AgentActivity.d.ts +1 -1
  27. package/dist/components/AgentActivity.js +4 -5
  28. package/dist/components/AgentActivityPreview.d.ts +9 -9
  29. package/dist/components/AgentActivityPreview.js +8 -12
  30. package/dist/components/AgentAttention.d.ts +1 -1
  31. package/dist/components/AgentAttention.js +1 -1
  32. package/dist/components/AgentChat.d.ts +1 -1
  33. package/dist/components/AgentChat.js +94 -62
  34. package/dist/components/AgentChatMessageEditor.js +2 -2
  35. package/dist/components/AgentChatTurnError.js +2 -2
  36. package/dist/components/AgentConnection.js +3 -3
  37. package/dist/components/AgentMessageParts.js +1 -1
  38. package/dist/components/AgentToolDetail.d.ts +6 -4
  39. package/dist/components/AgentToolDetail.js +12 -10
  40. package/dist/components/AlertDialog.js +1 -1
  41. package/dist/components/AppTopBar.d.ts +24 -7
  42. package/dist/components/AppTopBar.js +32 -8
  43. package/dist/components/Approval.js +4 -4
  44. package/dist/components/Artifact.d.ts +1 -1
  45. package/dist/components/Artifact.js +6 -4
  46. package/dist/components/Autocomplete.js +1 -1
  47. package/dist/components/Avatar.d.ts +1 -1
  48. package/dist/components/Avatar.js +2 -2
  49. package/dist/components/Badge.js +3 -0
  50. package/dist/components/BrowserLiveView.js +27 -12
  51. package/dist/components/BrowserReplay.js +4 -3
  52. package/dist/components/BrowserRunPanel.js +5 -5
  53. package/dist/components/Button.d.ts +1 -1
  54. package/dist/components/Button.js +14 -11
  55. package/dist/components/Card.d.ts +7 -8
  56. package/dist/components/Card.js +19 -10
  57. package/dist/components/ChainOfThought.d.ts +1 -1
  58. package/dist/components/ChainOfThought.js +2 -2
  59. package/dist/components/ChatGptSignInScreen.js +8 -8
  60. package/dist/components/Checkbox.js +2 -2
  61. package/dist/components/CheckboxGroup.js +1 -1
  62. package/dist/components/Checkpoint.js +2 -2
  63. package/dist/components/CodeBlock.d.ts +1 -1
  64. package/dist/components/CodeBlock.js +1 -1
  65. package/dist/components/CodexModelSelector.js +2 -2
  66. package/dist/components/Collapsible.js +2 -2
  67. package/dist/components/Combobox.js +1 -1
  68. package/dist/components/Commit.d.ts +1 -1
  69. package/dist/components/Commit.js +3 -3
  70. package/dist/components/Context.js +1 -1
  71. package/dist/components/ContextMenu.js +2 -2
  72. package/dist/components/Conversation.d.ts +1 -1
  73. package/dist/components/Conversation.js +5 -4
  74. package/dist/components/DescriptionListParts.js +1 -1
  75. package/dist/components/Dialog.js +1 -1
  76. package/dist/components/EnvironmentVariables.d.ts +1 -1
  77. package/dist/components/EnvironmentVariables.js +3 -3
  78. package/dist/components/Field.js +5 -2
  79. package/dist/components/Fieldset.js +1 -1
  80. package/dist/components/FileTree.d.ts +6 -0
  81. package/dist/components/FileTree.js +1 -1
  82. package/dist/components/Form.js +1 -1
  83. package/dist/components/GithubMotionMark.js +1 -1
  84. package/dist/components/IconButton.d.ts +2 -3
  85. package/dist/components/IconButton.js +2 -1
  86. package/dist/components/InlineCitation.js +1 -1
  87. package/dist/components/Input.js +1 -1
  88. package/dist/components/Marker.js +1 -1
  89. package/dist/components/McpConnectionRequest.js +2 -2
  90. package/dist/components/McpServerPicker.js +2 -2
  91. package/dist/components/MediaPreviewCard.d.ts +103 -0
  92. package/dist/components/MediaPreviewCard.js +193 -0
  93. package/dist/components/Menu.js +1 -1
  94. package/dist/components/Menubar.js +2 -2
  95. package/dist/components/Message.d.ts +4 -1
  96. package/dist/components/Message.js +1 -1
  97. package/dist/components/MessageScroller.d.ts +1 -1
  98. package/dist/components/MessageScroller.js +5 -4
  99. package/dist/components/Meter.js +1 -1
  100. package/dist/components/ModelSelector.d.ts +4 -3
  101. package/dist/components/ModelSelector.js +1 -1
  102. package/dist/components/NavigationMenu.js +1 -1
  103. package/dist/components/NumberField.js +1 -1
  104. package/dist/components/Plan.js +2 -2
  105. package/dist/components/Popover.js +1 -1
  106. package/dist/components/PreviewCard.js +1 -1
  107. package/dist/components/PricingBillingToggle.js +1 -1
  108. package/dist/components/PricingFAQ.js +1 -1
  109. package/dist/components/PricingPage.js +2 -1
  110. package/dist/components/PricingPlanCard.js +4 -3
  111. package/dist/components/PricingUsageCalculator.js +2 -2
  112. package/dist/components/Progress.js +1 -1
  113. package/dist/components/PromptInput.d.ts +1 -1
  114. package/dist/components/PromptInput.js +33 -20
  115. package/dist/components/Queue.d.ts +1 -1
  116. package/dist/components/Queue.js +2 -3
  117. package/dist/components/RadioGroup.js +1 -1
  118. package/dist/components/Reasoning.js +3 -6
  119. package/dist/components/ResizableSidePanel.js +1 -1
  120. package/dist/components/ResponsiveSidebarShell.js +16 -10
  121. package/dist/components/ScrollArea.js +2 -1
  122. package/dist/components/SearchField.d.ts +43 -0
  123. package/dist/components/SearchField.js +52 -0
  124. package/dist/components/Select.d.ts +1 -1
  125. package/dist/components/Select.js +5 -6
  126. package/dist/components/Separator.js +1 -1
  127. package/dist/components/Slider.js +1 -1
  128. package/dist/components/Sources.js +2 -2
  129. package/dist/components/Stepper.js +16 -9
  130. package/dist/components/SubagentRunDetails.js +1 -1
  131. package/dist/components/SubagentRunIndicator.js +2 -2
  132. package/dist/components/SubagentRunList.d.ts +3 -5
  133. package/dist/components/SubagentRunList.js +3 -4
  134. package/dist/components/SubagentRunSelector.d.ts +8 -12
  135. package/dist/components/SubagentRunSelector.js +17 -20
  136. package/dist/components/Switch.d.ts +2 -2
  137. package/dist/components/Switch.js +4 -5
  138. package/dist/components/Tabs.d.ts +2 -2
  139. package/dist/components/Tabs.js +12 -3
  140. package/dist/components/Task.js +2 -2
  141. package/dist/components/Terminal.d.ts +2 -2
  142. package/dist/components/Terminal.js +5 -4
  143. package/dist/components/TestResults.js +10 -6
  144. package/dist/components/Textarea.js +1 -1
  145. package/dist/components/ThemeModeControl.js +1 -1
  146. package/dist/components/ThinkChat.d.ts +33 -20
  147. package/dist/components/ThinkChat.js +4 -4
  148. package/dist/components/ThinkChatActivity.d.ts +2 -2
  149. package/dist/components/ThinkChatActivity.js +8 -10
  150. package/dist/components/ThinkChatActivitySummary.d.ts +1 -1
  151. package/dist/components/ThinkChatActivitySummary.js +7 -3
  152. package/dist/components/ThinkChatToolPanels.js +26 -16
  153. package/dist/components/ThinkExecutionDetail.js +2 -2
  154. package/dist/components/ThinkExecutionStatus.js +2 -2
  155. package/dist/components/ThinkExecutionWorkbench.d.ts +30 -8
  156. package/dist/components/ThinkExecutionWorkbench.js +70 -134
  157. package/dist/components/ThinkFullApp.d.ts +36 -35
  158. package/dist/components/ThinkFullApp.js +156 -109
  159. package/dist/components/ThinkFullAppViewSwitch.d.ts +1 -1
  160. package/dist/components/ThinkFullAppViewSwitch.js +1 -1
  161. package/dist/components/ThinkRecoveryNotice.js +18 -12
  162. package/dist/components/ThinkRoutineBrowser.d.ts +17 -9
  163. package/dist/components/ThinkRoutineBrowser.js +33 -40
  164. package/dist/components/ThinkRoutineDetail.d.ts +5 -2
  165. package/dist/components/ThinkRoutineDetail.js +4 -4
  166. package/dist/components/ThinkRoutineForm.d.ts +3 -2
  167. package/dist/components/ThinkRoutineForm.js +11 -10
  168. package/dist/components/ThinkRoutineLibrary.d.ts +24 -31
  169. package/dist/components/ThinkRoutineLibrary.js +57 -80
  170. package/dist/components/ThinkRoutineRuns.d.ts +3 -2
  171. package/dist/components/ThinkRoutineRuns.js +31 -24
  172. package/dist/components/ThinkThreadPicker.d.ts +17 -11
  173. package/dist/components/ThinkThreadPicker.js +163 -39
  174. package/dist/components/Toast.js +1 -1
  175. package/dist/components/Toggle.d.ts +1 -1
  176. package/dist/components/Toggle.js +9 -7
  177. package/dist/components/ToggleGroup.d.ts +1 -1
  178. package/dist/components/ToggleGroup.js +15 -13
  179. package/dist/components/ToolInvocation.js +1 -1
  180. package/dist/components/Toolbar.js +1 -1
  181. package/dist/components/Tooltip.d.ts +8 -1
  182. package/dist/components/Tooltip.js +11 -2
  183. package/dist/components/TransitionSurface.d.ts +27 -0
  184. package/dist/components/TransitionSurface.js +20 -0
  185. package/dist/components/WebPreview.d.ts +5 -5
  186. package/dist/components/WebPreview.js +68 -54
  187. package/dist/components/Workspace.d.ts +2 -2
  188. package/dist/components/Workspace.js +358 -328
  189. package/dist/components/WorkspaceBrowser.d.ts +4 -7
  190. package/dist/components/WorkspaceBrowser.js +15 -25
  191. package/dist/components/WorkspaceExplorer.d.ts +5 -5
  192. package/dist/components/WorkspaceExplorer.js +19 -32
  193. package/dist/components/WorkspaceFile.d.ts +1 -1
  194. package/dist/components/WorkspaceFileView.d.ts +14 -2
  195. package/dist/components/WorkspaceFileView.js +1 -1
  196. package/dist/components/WorkspaceHeader.d.ts +0 -8
  197. package/dist/components/WorkspaceHeader.js +3 -15
  198. package/dist/components/WorkspaceLink.d.ts +1 -1
  199. package/dist/components/WorkspaceLink.js +1 -1
  200. package/dist/components/icons.d.ts +2 -2
  201. package/dist/components/icons.js +2 -2
  202. package/dist/{copy-button-CQx3LQAC.d.ts → copy-button-D7aAYA-2.d.ts} +1 -1
  203. package/dist/{copy-button-cYsJBauI.js → copy-button-DeK6KXEV.js} +3 -2
  204. package/dist/{icons--FqCZEc3.js → icons-CQJ-aMnI.js} +6 -3
  205. package/dist/{icons-DpUqY8Mp.d.ts → icons-CYXmvKlJ.d.ts} +17 -2
  206. package/dist/navigation-link-Cob7KBlM.js +19 -0
  207. package/dist/styles/accordion.css +4 -19
  208. package/dist/styles/activity.css +48 -56
  209. package/dist/styles/agent-activity-preview.css +2 -0
  210. package/dist/styles/agent-chat.css +14 -22
  211. package/dist/styles/alert-dialog.css +16 -18
  212. package/dist/styles/app-top-bar.css +17 -9
  213. package/dist/styles/approval.css +11 -6
  214. package/dist/styles/artifact.css +6 -6
  215. package/dist/styles/autocomplete.css +2 -1
  216. package/dist/styles/avatar.css +35 -30
  217. package/dist/styles/badge.css +10 -10
  218. package/dist/styles/base-ui-motion.css +94 -39
  219. package/dist/styles/browser-control-overlay.css +0 -1
  220. package/dist/styles/browser-live-view.css +39 -22
  221. package/dist/styles/browser-replay.css +1 -1
  222. package/dist/styles/browser-run-panel.css +8 -4
  223. package/dist/styles/button.css +36 -33
  224. package/dist/styles/card.css +5 -6
  225. package/dist/styles/chain-of-thought.css +22 -16
  226. package/dist/styles/checkbox.css +18 -5
  227. package/dist/styles/codex-model-selector.css +3 -7
  228. package/dist/styles/collapsible.css +10 -10
  229. package/dist/styles/combobox.css +3 -2
  230. package/dist/styles/commit.css +19 -18
  231. package/dist/styles/composition-motion.css +83 -0
  232. package/dist/styles/context-menu.css +3 -3
  233. package/dist/styles/context.css +11 -10
  234. package/dist/styles/conversation.css +18 -23
  235. package/dist/styles/dialog.css +15 -15
  236. package/dist/styles/field.css +32 -12
  237. package/dist/styles/file-tree.css +69 -9
  238. package/dist/styles/form.css +1 -1
  239. package/dist/styles/index.css +5 -0
  240. package/dist/styles/input.css +2 -2
  241. package/dist/styles/marker.css +14 -13
  242. package/dist/styles/mcp-server-picker.css +20 -17
  243. package/dist/styles/media-preview-card.css +160 -0
  244. package/dist/styles/menu.css +11 -11
  245. package/dist/styles/menubar.css +12 -11
  246. package/dist/styles/message.css +27 -21
  247. package/dist/styles/meter.css +2 -2
  248. package/dist/styles/model-selector.css +16 -14
  249. package/dist/styles/motion-reduction.css +29 -0
  250. package/dist/styles/navigation-menu.css +14 -30
  251. package/dist/styles/number-field.css +22 -4
  252. package/dist/styles/plan.css +5 -0
  253. package/dist/styles/popover.css +15 -16
  254. package/dist/styles/preview-card.css +2 -32
  255. package/dist/styles/progress.css +8 -3
  256. package/dist/styles/prompt-input.css +75 -75
  257. package/dist/styles/queue.css +48 -32
  258. package/dist/styles/radio.css +19 -12
  259. package/dist/styles/reasoning.css +2 -1
  260. package/dist/styles/recipes.css +109 -37
  261. package/dist/styles/resizable-side-panel.css +4 -10
  262. package/dist/styles/responsive-sidebar-shell.css +16 -15
  263. package/dist/styles/scroll-area.css +32 -15
  264. package/dist/styles/search-field.css +21 -0
  265. package/dist/styles/select.css +19 -12
  266. package/dist/styles/slider.css +25 -29
  267. package/dist/styles/sources.css +3 -3
  268. package/dist/styles/stepper.css +36 -26
  269. package/dist/styles/subagent-run.css +1 -1
  270. package/dist/styles/switch.css +32 -29
  271. package/dist/styles/tabs.css +79 -23
  272. package/dist/styles/task.css +13 -9
  273. package/dist/styles/test-results.css +29 -23
  274. package/dist/styles/theme-mode-control.css +8 -0
  275. package/dist/styles/think-execution-workbench.css +18 -15
  276. package/dist/styles/think-full-app.css +45 -68
  277. package/dist/styles/think-routine-library.css +43 -24
  278. package/dist/styles/think-thread-picker.css +193 -51
  279. package/dist/styles/toast.css +48 -27
  280. package/dist/styles/toggle-group.css +2 -36
  281. package/dist/styles/toggle.css +29 -5
  282. package/dist/styles/toolbar.css +25 -27
  283. package/dist/styles/tooltip.css +2 -32
  284. package/dist/styles/transition-surface.css +55 -0
  285. package/dist/styles/workspace-explorer.css +99 -44
  286. package/dist/summarize-tool-input-CqTcGRYy.js +15 -0
  287. package/dist/utils/mcp-server-catalog.d.ts +132 -0
  288. package/dist/utils/mcp-server-catalog.js +90 -0
  289. package/dist/utils/structured-code.d.ts +1 -1
  290. package/package.json +13 -7
  291. package/dist/Workspace-C9RFoxcu.d.ts +0 -62
  292. package/dist/summarize-tool-input-BUJsENSn.js +0 -12
@@ -1,10 +1,13 @@
1
1
  .avatar {
2
+ --sigvelo-recipe-avatar-size: var(--sigvelo-control-height-sm);
3
+ --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-2-5);
4
+
2
5
  position: relative;
3
6
  display: inline-flex;
4
7
  align-items: center;
5
8
  justify-content: center;
6
- width: 2rem;
7
- height: 2rem;
9
+ inline-size: var(--sigvelo-recipe-avatar-size);
10
+ block-size: var(--sigvelo-recipe-avatar-size);
8
11
  flex-shrink: 0;
9
12
  overflow: hidden;
10
13
  font-family: inherit;
@@ -14,28 +17,39 @@
14
17
  }
15
18
 
16
19
  .avatar[data-size="sm"] {
17
- width: 1.5rem;
18
- height: 1.5rem;
20
+ --sigvelo-recipe-avatar-size: var(--sigvelo-spacing-6);
21
+ --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-2);
19
22
  }
20
23
 
21
24
  .avatar[data-size="lg"] {
22
- width: 2.5rem;
23
- height: 2.5rem;
25
+ --sigvelo-recipe-avatar-size: var(--sigvelo-control-height-lg);
26
+ --sigvelo-recipe-avatar-badge-size: var(--sigvelo-spacing-3);
24
27
  }
25
28
 
26
29
  .avatar__image {
27
- width: 100%;
28
- height: 100%;
30
+ inline-size: 100%;
31
+ block-size: 100%;
29
32
  aspect-ratio: 1;
30
33
  object-fit: cover;
34
+ opacity: 1;
35
+ scale: 1;
36
+ transition:
37
+ opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter),
38
+ scale var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter);
39
+ }
40
+
41
+ .avatar__image[data-starting-style],
42
+ .avatar__image[data-ending-style] {
43
+ opacity: 0;
44
+ scale: var(--sigvelo-motion-presence-scale);
31
45
  }
32
46
 
33
47
  .avatar__fallback {
34
48
  display: flex;
35
49
  align-items: center;
36
50
  justify-content: center;
37
- width: 100%;
38
- height: 100%;
51
+ inline-size: 100%;
52
+ block-size: 100%;
39
53
  font-size: var(--sigvelo-text-sm);
40
54
  font-weight: var(--sigvelo-font-weight-semibold);
41
55
  color: var(--sigvelo-color-text-muted);
@@ -72,9 +86,11 @@
72
86
  }
73
87
 
74
88
  .avatar-group__count {
89
+ --sigvelo-recipe-avatar-count-size: var(--sigvelo-control-height-sm);
90
+
75
91
  position: relative;
76
- width: 2rem;
77
- height: 2rem;
92
+ inline-size: var(--sigvelo-recipe-avatar-count-size);
93
+ block-size: var(--sigvelo-recipe-avatar-count-size);
78
94
  flex-shrink: 0;
79
95
  margin-inline-start: -0.5rem;
80
96
  padding-inline: var(--sigvelo-spacing-1-5);
@@ -85,36 +101,25 @@
85
101
  }
86
102
 
87
103
  .avatar-group:has(.avatar[data-size="sm"]) .avatar-group__count {
88
- width: 1.5rem;
89
- height: 1.5rem;
104
+ --sigvelo-recipe-avatar-count-size: var(--sigvelo-spacing-6);
105
+
90
106
  font-size: var(--sigvelo-text-xs);
91
107
  }
92
108
 
93
109
  .avatar-group:has(.avatar[data-size="lg"]) .avatar-group__count {
94
- width: 2.5rem;
95
- height: 2.5rem;
110
+ --sigvelo-recipe-avatar-count-size: var(--sigvelo-control-height-lg);
96
111
  }
97
112
 
98
113
  .avatar__badge {
99
114
  position: absolute;
100
- right: 0;
101
- bottom: 0;
115
+ inset-inline-end: 0;
116
+ inset-block-end: 0;
102
117
  z-index: 10;
103
- width: var(--sigvelo-spacing-2-5);
104
- height: var(--sigvelo-spacing-2-5);
118
+ inline-size: var(--sigvelo-recipe-avatar-badge-size);
119
+ block-size: var(--sigvelo-recipe-avatar-badge-size);
105
120
  color: var(--sigvelo-color-primary-text-on-bg);
106
121
  background-color: var(--sigvelo-color-primary-bg);
107
122
  border: 2px solid var(--sigvelo-color-canvas);
108
123
  border-radius: var(--sigvelo-radius-full);
109
124
  user-select: none;
110
125
  }
111
-
112
- .avatar[data-size="sm"] .avatar__badge {
113
- width: 0.5rem;
114
- height: 0.5rem;
115
- }
116
-
117
- .avatar[data-size="lg"] .avatar__badge {
118
- width: var(--sigvelo-spacing-3);
119
- height: var(--sigvelo-spacing-3);
120
- }
@@ -3,11 +3,11 @@
3
3
  flex-shrink: 0;
4
4
  align-items: center;
5
5
  justify-content: center;
6
- gap: 0.25rem;
7
- width: fit-content;
6
+ gap: var(--sigvelo-spacing-1);
7
+ inline-size: fit-content;
8
8
  overflow: hidden;
9
9
  padding-block: var(--sigvelo-spacing-0-5);
10
- padding-inline: 0.5rem;
10
+ padding-inline: var(--sigvelo-spacing-2);
11
11
  font-family: inherit;
12
12
  font-size: var(--sigvelo-text-xs);
13
13
  font-weight: var(--sigvelo-font-weight-bold);
@@ -18,10 +18,10 @@
18
18
  border-radius: var(--sigvelo-radius-full);
19
19
  white-space: nowrap;
20
20
  transition:
21
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
22
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
23
- border-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
24
- box-shadow var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
21
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
22
+ color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
23
+ border-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
24
+ box-shadow var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
25
25
  }
26
26
 
27
27
  .badge:where(a, button) {
@@ -39,13 +39,13 @@
39
39
 
40
40
  .badge > svg {
41
41
  flex-shrink: 0;
42
- width: var(--sigvelo-spacing-3);
43
- height: var(--sigvelo-spacing-3);
42
+ inline-size: var(--sigvelo-spacing-3);
43
+ block-size: var(--sigvelo-spacing-3);
44
44
  pointer-events: none;
45
45
  }
46
46
 
47
47
  .badge--sm {
48
- padding-block: 0.0625rem;
48
+ padding-block: calc(var(--sigvelo-spacing-0-5) / 2);
49
49
  padding-inline: var(--sigvelo-spacing-1-5);
50
50
  font-size: var(--sigvelo-text-3xs);
51
51
  }
@@ -10,6 +10,12 @@
10
10
  position: fixed;
11
11
  inset: 0;
12
12
  min-block-size: 100dvb;
13
+ opacity: 1;
14
+ transition: opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-change);
15
+ }
16
+
17
+ .base-ui-backdrop:is([data-starting-style], [data-ending-style]) {
18
+ opacity: 0;
13
19
  }
14
20
 
15
21
  @supports (-webkit-touch-callout: none) {
@@ -20,23 +26,54 @@
20
26
 
21
27
  .base-ui-popup {
22
28
  transform-origin: var(--transform-origin);
29
+ translate: 0;
30
+ scale: 1;
23
31
  transition:
24
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
25
- transform var(--sigvelo-duration-fast) var(--sigvelo-ease-emphasized);
32
+ opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-change),
33
+ scale var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter),
34
+ translate var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter);
26
35
  }
27
36
 
28
37
  .base-ui-popup[data-starting-style],
29
38
  .base-ui-popup[data-ending-style] {
30
39
  opacity: 0;
31
- transform: scale(0.98);
40
+ scale: var(--sigvelo-motion-presence-scale);
32
41
  }
33
42
 
34
43
  .base-ui-popup[data-ending-style] {
35
- transition-timing-function: var(--sigvelo-ease-accelerate);
44
+ transition-timing-function: var(--sigvelo-motion-ease-exit);
36
45
  }
37
46
 
38
- .base-ui-popup[data-instant] {
39
- transition-duration: 0ms;
47
+ .base-ui-popup[data-side="top"]:is([data-starting-style], [data-ending-style]) {
48
+ translate: 0 var(--sigvelo-motion-distance-sm);
49
+ }
50
+
51
+ .base-ui-popup[data-side="bottom"]:is([data-starting-style], [data-ending-style]) {
52
+ translate: 0 calc(var(--sigvelo-motion-distance-sm) * -1);
53
+ }
54
+
55
+ .base-ui-popup[data-side="left"]:is([data-starting-style], [data-ending-style]) {
56
+ translate: var(--sigvelo-motion-distance-sm) 0;
57
+ }
58
+
59
+ .base-ui-popup[data-side="right"]:is([data-starting-style], [data-ending-style]) {
60
+ translate: calc(var(--sigvelo-motion-distance-sm) * -1) 0;
61
+ }
62
+
63
+ .base-ui-popup[data-side="inline-start"]:is([data-starting-style], [data-ending-style]) {
64
+ translate: var(--sigvelo-motion-distance-sm) 0;
65
+ }
66
+
67
+ .base-ui-popup[data-side="inline-end"]:is([data-starting-style], [data-ending-style]) {
68
+ translate: calc(var(--sigvelo-motion-distance-sm) * -1) 0;
69
+ }
70
+
71
+ :dir(rtl) .base-ui-popup[data-side="inline-start"]:is([data-starting-style], [data-ending-style]) {
72
+ translate: calc(var(--sigvelo-motion-distance-sm) * -1) 0;
73
+ }
74
+
75
+ :dir(rtl) .base-ui-popup[data-side="inline-end"]:is([data-starting-style], [data-ending-style]) {
76
+ translate: var(--sigvelo-motion-distance-sm) 0;
40
77
  }
41
78
 
42
79
  @media (prefers-reduced-motion: reduce) {
@@ -46,10 +83,20 @@
46
83
 
47
84
  .base-ui-popup[data-starting-style],
48
85
  .base-ui-popup[data-ending-style] {
49
- transform: none;
86
+ scale: 1;
87
+ translate: none;
50
88
  }
51
89
  }
52
90
 
91
+ :root[data-motion="reduce"] .base-ui-popup {
92
+ transition-duration: var(--sigvelo-duration-reduced);
93
+ }
94
+
95
+ :root[data-motion="reduce"] .base-ui-popup:is([data-starting-style], [data-ending-style]) {
96
+ scale: 1;
97
+ translate: none;
98
+ }
99
+
53
100
  :root[data-motion="reduce"] .base-ui-adaptive-positioner,
54
101
  :root[data-motion="reduce"] .base-ui-adaptive-popup,
55
102
  :root[data-motion="reduce"] .base-ui-adaptive-viewport > [data-current],
@@ -68,43 +115,43 @@
68
115
  * transition state; these rules only turn those documented hooks into motion.
69
116
  */
70
117
  .base-ui-adaptive-positioner {
71
- width: var(--positioner-width);
72
- height: var(--positioner-height);
73
- max-width: var(--available-width);
118
+ inline-size: var(--positioner-width);
119
+ block-size: var(--positioner-height);
120
+ max-inline-size: var(--available-width);
74
121
  transition:
75
- left var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
76
- right var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
77
- top var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
78
- bottom var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
122
+ left var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
123
+ right var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
124
+ top var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
125
+ bottom var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter);
79
126
  }
80
127
 
81
128
  .base-ui-adaptive-popup {
82
- width: var(--popup-width, auto);
83
- height: var(--popup-height, auto);
84
- max-width: var(--available-width);
85
- max-height: var(--available-height);
129
+ inline-size: var(--popup-width, auto);
130
+ block-size: var(--popup-height, auto);
131
+ max-inline-size: var(--available-width);
132
+ max-block-size: var(--available-height);
86
133
  overflow: clip;
87
134
  transition:
88
- width var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
89
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
90
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
91
- transform var(--sigvelo-duration-fast) var(--sigvelo-ease-emphasized);
135
+ inline-size var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
136
+ block-size var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
137
+ opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-change),
138
+ scale var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter);
92
139
  }
93
140
 
94
141
  .base-ui-adaptive-viewport {
95
142
  position: relative;
96
- width: 100%;
97
- height: 100%;
143
+ inline-size: 100%;
144
+ block-size: 100%;
98
145
  overflow: clip;
99
146
  }
100
147
 
101
148
  .base-ui-adaptive-viewport > [data-current],
102
149
  .base-ui-adaptive-viewport > [data-previous] {
103
- width: var(--popup-width, 100%);
150
+ inline-size: var(--popup-width, 100%);
104
151
  opacity: 1;
105
152
  transition:
106
- translate var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
107
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
153
+ translate var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-enter),
154
+ opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-change);
108
155
  }
109
156
 
110
157
  .base-ui-adaptive-viewport[data-activation-direction~="left"] > [data-current][data-starting-style],
@@ -152,25 +199,33 @@
152
199
  }
153
200
  }
154
201
 
155
- /* Base UI measures this variable so panels can transition to and from a real
156
- * height. Keep it on the panel regardless of open state; otherwise closing
157
- * panels compute from `auto` and snap shut. */
158
- .base-ui-collapsible-panel {
159
- height: var(--collapsible-panel-height);
202
+ /* Base UI measures component-specific panel heights. Component CSS maps those
203
+ * values to this shared variable so every disclosure uses one reversible
204
+ * lifecycle without duplicating timing or reduced-motion behavior. */
205
+ .base-ui-disclosure-panel {
206
+ block-size: var(--sigvelo-disclosure-panel-height);
160
207
  overflow: hidden;
161
208
  transition:
162
- height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
163
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
209
+ block-size var(--sigvelo-motion-duration-disclosure) var(--sigvelo-motion-ease-change),
210
+ opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter);
164
211
  }
165
212
 
166
- .base-ui-collapsible-panel[data-starting-style],
167
- .base-ui-collapsible-panel[data-ending-style] {
168
- height: 0;
213
+ .base-ui-disclosure-panel[data-slot="collapsible-content"] {
214
+ --sigvelo-disclosure-panel-height: var(--collapsible-panel-height);
215
+ }
216
+
217
+ .base-ui-disclosure-panel[data-starting-style],
218
+ .base-ui-disclosure-panel[data-ending-style] {
219
+ block-size: 0;
169
220
  opacity: 0;
170
221
  }
171
222
 
172
223
  @media (prefers-reduced-motion: reduce) {
173
- .base-ui-collapsible-panel {
174
- transition: opacity var(--sigvelo-duration-reduced) var(--sigvelo-ease-standard);
224
+ .base-ui-disclosure-panel {
225
+ transition: opacity var(--sigvelo-duration-reduced) var(--sigvelo-motion-ease-change);
175
226
  }
176
227
  }
228
+
229
+ :root[data-motion="reduce"] .base-ui-disclosure-panel {
230
+ transition: opacity var(--sigvelo-duration-reduced) var(--sigvelo-motion-ease-change);
231
+ }
@@ -50,7 +50,6 @@
50
50
  transform 140ms cubic-bezier(0.2, 0.8, 0.2, 1),
51
51
  opacity 80ms linear;
52
52
  width: 28px;
53
- will-change: transform;
54
53
  }
55
54
 
56
55
  :host .cursor.visible {
@@ -5,7 +5,7 @@
5
5
  .browser-live-view {
6
6
  position: relative;
7
7
  display: flex;
8
- width: 100%;
8
+ inline-size: 100%;
9
9
  aspect-ratio: 16 / 10;
10
10
  font-family: inherit;
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -16,25 +16,31 @@
16
16
  }
17
17
 
18
18
  .browser-live-view__frame {
19
- width: 100%;
20
- height: 100%;
19
+ inline-size: 100%;
20
+ block-size: 100%;
21
21
  border: none;
22
+ opacity: 0;
23
+ transition: opacity var(--sigvelo-motion-duration-presence) var(--sigvelo-motion-ease-enter);
24
+ }
25
+
26
+ .browser-live-view[data-frame-state="ready"] .browser-live-view__frame {
27
+ opacity: 1;
22
28
  }
23
29
 
24
30
  /* The chip itself is the library Badge (sm/destructive) — only the overlay
25
31
  placement lives here. */
26
32
  .browser-live-view__badge {
27
33
  position: absolute;
28
- top: 0.5rem;
29
- inset-inline-end: 0.5rem;
34
+ inset-block-start: var(--sigvelo-spacing-2);
35
+ inset-inline-end: var(--sigvelo-spacing-2);
30
36
  z-index: 1;
31
37
  box-shadow: var(--sigvelo-shadow-sm);
32
38
  pointer-events: none;
33
39
  }
34
40
 
35
41
  .browser-live-view__badge-dot {
36
- width: var(--sigvelo-spacing-1-5);
37
- height: var(--sigvelo-spacing-1-5);
42
+ inline-size: var(--sigvelo-spacing-1-5);
43
+ block-size: var(--sigvelo-spacing-1-5);
38
44
  border-radius: 50%;
39
45
  background-color: currentColor;
40
46
  animation: browser-live-view-pulse 1.4s ease-in-out infinite;
@@ -46,8 +52,8 @@
46
52
  flex-direction: column;
47
53
  align-items: center;
48
54
  justify-content: center;
49
- gap: 0.25rem;
50
- width: 100%;
55
+ gap: var(--sigvelo-spacing-1);
56
+ inline-size: 100%;
51
57
  }
52
58
 
53
59
  .browser-live-view__ended-title {
@@ -59,7 +65,7 @@
59
65
  .browser-live-view__ended-detail {
60
66
  font-size: var(--sigvelo-text-xs);
61
67
  color: var(--sigvelo-color-text-muted);
62
- max-width: 80%;
68
+ max-inline-size: 80%;
63
69
  overflow: hidden;
64
70
  text-overflow: ellipsis;
65
71
  white-space: nowrap;
@@ -67,8 +73,8 @@
67
73
 
68
74
  /* An expired view showing a screenshot fallback keeps the image flush */
69
75
  .browser-live-view[data-expired] > img {
70
- width: 100%;
71
- height: 100%;
76
+ inline-size: 100%;
77
+ block-size: 100%;
72
78
  object-fit: cover;
73
79
  }
74
80
 
@@ -81,10 +87,11 @@
81
87
  flex-direction: column;
82
88
  align-items: center;
83
89
  justify-content: center;
84
- gap: 0.5rem;
90
+ gap: var(--sigvelo-spacing-2);
85
91
  background-color: var(--sigvelo-color-neutral-bg-subtle);
86
92
  color: var(--sigvelo-color-text-muted);
87
93
  font-size: var(--sigvelo-text-compact);
94
+ z-index: 1;
88
95
  }
89
96
 
90
97
  .browser-live-view__state-spinner {
@@ -95,15 +102,15 @@
95
102
  the button is focused */
96
103
  .browser-live-view__expand {
97
104
  position: absolute;
98
- inset-block-end: 0.5rem;
99
- inset-inline-end: 0.5rem;
105
+ inset-block-end: var(--sigvelo-spacing-2);
106
+ inset-inline-end: var(--sigvelo-spacing-2);
100
107
  z-index: 1;
101
108
  background-color: var(--sigvelo-color-surface);
102
109
  box-shadow: var(--sigvelo-shadow-sm);
103
110
  opacity: 0;
104
111
  transition:
105
- opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
106
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
112
+ opacity var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
113
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
107
114
  }
108
115
 
109
116
  .browser-live-view:hover .browser-live-view__expand,
@@ -121,7 +128,7 @@
121
128
  .browser-live-view__dialog-body {
122
129
  position: relative;
123
130
  flex: 1;
124
- min-height: 0;
131
+ min-block-size: 0;
125
132
  display: flex;
126
133
  border-radius: var(--sigvelo-radius-md);
127
134
  background-color: var(--sigvelo-color-neutral-bg-subtle);
@@ -129,14 +136,14 @@
129
136
  }
130
137
 
131
138
  .browser-live-view__dialog-body > iframe {
132
- width: 100%;
133
- height: 100%;
139
+ inline-size: 100%;
140
+ block-size: 100%;
134
141
  border: none;
135
142
  }
136
143
 
137
144
  .browser-live-view__dialog-body > img {
138
- width: 100%;
139
- height: 100%;
145
+ inline-size: 100%;
146
+ block-size: 100%;
140
147
  object-fit: contain;
141
148
  }
142
149
 
@@ -162,3 +169,13 @@
162
169
  animation: none;
163
170
  }
164
171
  }
172
+
173
+ :root[data-motion="reduce"] :is(.browser-live-view__badge-dot, .browser-live-view__state-spinner) {
174
+ animation: none;
175
+ }
176
+
177
+ @media (hover: none) {
178
+ .browser-live-view__expand {
179
+ opacity: 1;
180
+ }
181
+ }
@@ -56,7 +56,7 @@
56
56
  background-color: var(--sigvelo-color-surface);
57
57
  }
58
58
 
59
- /* Play/pause is the library Button (ghost/icon-sm) and the scrubber is the
59
+ /* Play/pause is the small icon-only library Button and the scrubber is the
60
60
  library Slider — only flex sizing lives here. */
61
61
  .browser-replay__toggle {
62
62
  flex: 0 0 auto;
@@ -1,7 +1,7 @@
1
1
  .browser-run-panel {
2
2
  min-inline-size: 0;
3
3
  min-block-size: 0;
4
- height: 100%;
4
+ block-size: 100%;
5
5
  }
6
6
 
7
7
  .browser-run-panel .web-preview__nav:has(.browser-run-panel__tabs) {
@@ -21,7 +21,7 @@
21
21
  gap: 0;
22
22
  padding-inline: 0;
23
23
  border-block-end: 0;
24
- overflow-x: auto;
24
+ overflow-inline: auto;
25
25
  scrollbar-width: none;
26
26
  }
27
27
 
@@ -31,10 +31,10 @@
31
31
 
32
32
  .browser-run-panel__tab.button {
33
33
  min-inline-size: min(11rem, 45vw);
34
- min-block-size: 2.75rem;
34
+ min-block-size: var(--sigvelo-control-height-xl);
35
35
  max-inline-size: 13rem;
36
36
  flex: 0 0 auto;
37
- gap: 0.5rem;
37
+ gap: var(--sigvelo-spacing-2);
38
38
  padding-inline: var(--sigvelo-spacing-3);
39
39
  border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
40
40
  text-align: start;
@@ -120,6 +120,10 @@
120
120
  }
121
121
  }
122
122
 
123
+ :root[data-motion="reduce"] .browser-run-panel__spinner {
124
+ animation: none;
125
+ }
126
+
123
127
  @media (forced-colors: active) {
124
128
  .browser-run-panel__tab[data-active] {
125
129
  outline: 2px solid Highlight;