@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
@@ -0,0 +1,160 @@
1
+ .media-preview-card {
2
+ position: relative;
3
+ overflow: clip;
4
+ padding: 0;
5
+ isolation: isolate;
6
+ }
7
+
8
+ .media-preview-card > :is(a, button) {
9
+ display: grid;
10
+ min-block-size: 100%;
11
+ overflow: clip;
12
+ border-radius: inherit;
13
+ color: inherit;
14
+ text-decoration: none;
15
+ }
16
+
17
+ .media-preview-card:is(:hover, :focus-within) {
18
+ box-shadow: var(--sigvelo-shadow-md);
19
+ }
20
+
21
+ .media-preview-card:has(> :is(a, button):focus-visible) {
22
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
23
+ }
24
+
25
+ .media-preview-card__media,
26
+ .media-preview-card__placeholder {
27
+ --media-preview-card-aspect-ratio: 16 / 9;
28
+
29
+ position: relative;
30
+ aspect-ratio: var(--media-preview-card-aspect-ratio);
31
+ overflow: clip;
32
+ border-block-end: var(--sigvelo-border-width) var(--sigvelo-border-style)
33
+ var(--sigvelo-color-neutral-border-muted);
34
+ background: var(--sigvelo-color-neutral-bg-muted);
35
+ }
36
+
37
+ .media-preview-card__placeholder {
38
+ display: grid;
39
+ place-items: center;
40
+ color: var(--sigvelo-color-text-muted);
41
+ }
42
+
43
+ .media-preview-card__placeholder > svg {
44
+ inline-size: var(--sigvelo-text-2xl);
45
+ block-size: var(--sigvelo-text-2xl);
46
+ }
47
+
48
+ .media-preview-card__actions {
49
+ position: absolute;
50
+ z-index: 1;
51
+ inset-block-start: var(--sigvelo-spacing-2);
52
+ inset-inline-end: var(--sigvelo-spacing-2);
53
+ display: flex;
54
+ align-items: center;
55
+ gap: var(--sigvelo-spacing-1);
56
+ }
57
+
58
+ .media-preview-card__video {
59
+ display: block;
60
+ inline-size: 100%;
61
+ block-size: 100%;
62
+ object-fit: cover;
63
+ }
64
+
65
+ .media-preview-card__play {
66
+ position: absolute;
67
+ inset: 50% auto auto 50%;
68
+ display: grid;
69
+ place-items: center;
70
+ inline-size: var(--sigvelo-control-height-lg);
71
+ aspect-ratio: 1;
72
+ border: var(--sigvelo-border-width) var(--sigvelo-border-style)
73
+ var(--sigvelo-color-neutral-border);
74
+ border-radius: var(--sigvelo-radius-full);
75
+ color: var(--sigvelo-color-text);
76
+ background: color-mix(in oklab, var(--sigvelo-color-surface), transparent 12%);
77
+ box-shadow: var(--sigvelo-shadow-sm);
78
+ translate: -50% -50%;
79
+ scale: 1;
80
+ transition:
81
+ opacity var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
82
+ scale var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
83
+ pointer-events: none;
84
+ }
85
+
86
+ .media-preview-card__play svg {
87
+ inline-size: var(--sigvelo-text-base);
88
+ block-size: var(--sigvelo-text-base);
89
+ translate: var(--sigvelo-motion-distance-xs) 0;
90
+ }
91
+
92
+ .media-preview-card[data-playing="true"] .media-preview-card__play {
93
+ opacity: 0;
94
+ scale: var(--sigvelo-motion-presence-scale);
95
+ }
96
+
97
+ .media-preview-card .card__content {
98
+ gap: var(--sigvelo-spacing-2);
99
+ padding: var(--sigvelo-spacing-3) var(--sigvelo-spacing-4) var(--sigvelo-spacing-4);
100
+ }
101
+
102
+ .media-preview-card__meta {
103
+ display: flex;
104
+ flex-wrap: wrap;
105
+ align-items: center;
106
+ min-inline-size: 0;
107
+ gap: var(--sigvelo-spacing-1) var(--sigvelo-spacing-3);
108
+ color: var(--sigvelo-color-text-muted);
109
+ font-size: var(--sigvelo-text-xs);
110
+ line-height: var(--sigvelo-leading-snug);
111
+ }
112
+
113
+ .media-preview-card__fact {
114
+ display: inline-flex;
115
+ align-items: center;
116
+ min-inline-size: 0;
117
+ gap: var(--sigvelo-spacing-1);
118
+ }
119
+
120
+ .media-preview-card__fact > svg {
121
+ flex: 0 0 auto;
122
+ inline-size: var(--sigvelo-text-sm);
123
+ block-size: var(--sigvelo-text-sm);
124
+ }
125
+
126
+ @media (any-pointer: coarse) {
127
+ .media-preview-card__actions :is(a, button, [role="button"]) {
128
+ min-inline-size: var(--sigvelo-control-height-xl);
129
+ min-block-size: var(--sigvelo-control-height-xl);
130
+ }
131
+ }
132
+
133
+ @media (prefers-reduced-motion: reduce) {
134
+ .media-preview-card,
135
+ .media-preview-card__video,
136
+ .media-preview-card__play {
137
+ transition-duration: var(--sigvelo-duration-reduced);
138
+ }
139
+
140
+ .media-preview-card__play {
141
+ scale: 1;
142
+ }
143
+ }
144
+
145
+ :root[data-motion="reduce"] .media-preview-card__play {
146
+ scale: 1;
147
+ }
148
+
149
+ @media (forced-colors: active) {
150
+ .media-preview-card:has(> :is(a, button):focus-visible) {
151
+ outline: var(--sigvelo-focus-width) solid Highlight;
152
+ outline-offset: var(--sigvelo-focus-offset);
153
+ box-shadow: none;
154
+ }
155
+
156
+ .media-preview-card__play {
157
+ border-color: buttonborder;
158
+ background: canvas;
159
+ }
160
+ }
@@ -3,13 +3,13 @@
3
3
  }
4
4
 
5
5
  .menu__popup {
6
- min-width: 10rem;
7
- overflow-y: auto;
6
+ min-inline-size: var(--sigvelo-recipe-popup-min-inline-size);
7
+ overflow-block: auto;
8
8
  }
9
9
 
10
10
  .menu__item--inset,
11
11
  .menu__group-label--inset {
12
- padding-inline-start: 2rem;
12
+ padding-inline-start: var(--sigvelo-control-height-sm);
13
13
  }
14
14
 
15
15
  .menu__item[data-variant="destructive"] {
@@ -40,22 +40,22 @@
40
40
  display: flex;
41
41
  align-items: center;
42
42
  justify-content: center;
43
- width: 1rem;
44
- height: 1rem;
43
+ inline-size: var(--sigvelo-recipe-control-icon-size);
44
+ block-size: var(--sigvelo-recipe-control-icon-size);
45
45
  }
46
46
 
47
47
  .menu__radio-indicator::before {
48
48
  content: "";
49
- width: 0.5rem;
50
- height: 0.5rem;
49
+ inline-size: var(--sigvelo-spacing-2);
50
+ block-size: var(--sigvelo-spacing-2);
51
51
  background-color: currentColor;
52
52
  border-radius: 50%;
53
53
  }
54
54
 
55
55
  .menu__checkbox-indicator::before {
56
56
  content: "";
57
- width: var(--sigvelo-spacing-2-5);
58
- height: var(--sigvelo-spacing-1-5);
57
+ inline-size: var(--sigvelo-spacing-2-5);
58
+ block-size: var(--sigvelo-spacing-1-5);
59
59
  border-inline-start: 2px solid currentColor;
60
60
  border-block-end: 2px solid currentColor;
61
61
  transform: rotate(-45deg) translateY(-1px);
@@ -67,8 +67,8 @@
67
67
 
68
68
  .menu__submenu-trigger::after {
69
69
  content: "";
70
- width: 0;
71
- height: 0;
70
+ inline-size: 0;
71
+ block-size: 0;
72
72
  border-top: 4px solid transparent;
73
73
  border-bottom: 4px solid transparent;
74
74
  border-inline-start: 6px solid currentColor;
@@ -1,8 +1,8 @@
1
1
  .menubar {
2
2
  display: flex;
3
3
  align-items: center;
4
- gap: 0.25rem;
5
- padding: 0.25rem;
4
+ gap: var(--sigvelo-spacing-1);
5
+ padding: var(--sigvelo-spacing-1);
6
6
  background-color: var(--sigvelo-color-canvas);
7
7
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
8
8
  var(--sigvelo-color-neutral-border-muted);
@@ -13,8 +13,9 @@
13
13
  display: inline-flex;
14
14
  align-items: center;
15
15
  justify-content: center;
16
- padding-block: var(--sigvelo-spacing-1-5);
17
- padding-inline: var(--sigvelo-spacing-3);
16
+ min-block-size: var(--sigvelo-control-height-xs);
17
+ padding-block: 0;
18
+ padding-inline: var(--sigvelo-control-padding-inline-md);
18
19
  font-family: inherit;
19
20
  font-size: var(--sigvelo-text-sm);
20
21
  font-weight: var(--sigvelo-font-weight-semibold);
@@ -24,8 +25,8 @@
24
25
  border-radius: var(--sigvelo-radius-sm);
25
26
  cursor: pointer;
26
27
  transition:
27
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
28
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
28
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
29
+ color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
29
30
  }
30
31
 
31
32
  .menubar__trigger:hover {
@@ -44,8 +45,8 @@
44
45
  }
45
46
 
46
47
  .menubar__popup {
47
- min-width: 180px;
48
- overflow-y: auto;
48
+ min-inline-size: var(--sigvelo-recipe-popup-min-inline-size);
49
+ overflow-block: auto;
49
50
  }
50
51
 
51
52
  .menubar__item,
@@ -53,12 +54,12 @@
53
54
  .menubar__radio-item,
54
55
  .menubar__submenu-trigger {
55
56
  justify-content: space-between;
56
- gap: 2rem;
57
+ gap: var(--sigvelo-control-height-sm);
57
58
  }
58
59
 
59
60
  .menubar__item--inset,
60
61
  .menubar__group-label--inset {
61
- padding-inline-start: 2rem;
62
+ padding-inline-start: var(--sigvelo-control-height-sm);
62
63
  }
63
64
 
64
65
  .menubar__item[data-variant="destructive"] {
@@ -78,5 +79,5 @@
78
79
  }
79
80
 
80
81
  .menubar__group-label {
81
- padding-inline: 0.5rem;
82
+ padding-inline: var(--sigvelo-spacing-2);
82
83
  }
@@ -1,9 +1,9 @@
1
1
  .message {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- gap: 0.25rem;
5
- width: 100%;
6
- min-width: 0;
4
+ gap: var(--sigvelo-spacing-1);
5
+ inline-size: 100%;
6
+ min-inline-size: 0;
7
7
  font-family: inherit;
8
8
  color: var(--sigvelo-color-text);
9
9
  }
@@ -20,9 +20,9 @@
20
20
 
21
21
  .message__content {
22
22
  display: inline-block;
23
- max-width: min(42rem, 85%);
24
- min-width: 0;
25
- padding-block: 0.5rem;
23
+ max-inline-size: min(42rem, 85%);
24
+ min-inline-size: 0;
25
+ padding-block: var(--sigvelo-spacing-2);
26
26
  padding-inline: var(--sigvelo-spacing-3);
27
27
  border-radius: var(--sigvelo-radius-lg);
28
28
  font-size: var(--sigvelo-text-sm);
@@ -39,8 +39,8 @@
39
39
 
40
40
  .message[data-from="assistant"] .message__content {
41
41
  display: block;
42
- width: min(42rem, 85%);
43
- max-width: 100%;
42
+ inline-size: min(42rem, 85%);
43
+ max-inline-size: 100%;
44
44
  background-color: transparent;
45
45
  padding-inline: 0;
46
46
  }
@@ -52,12 +52,12 @@
52
52
  }
53
53
 
54
54
  .message__content > * + * {
55
- margin-block-start: 0.5rem;
55
+ margin-block-start: var(--sigvelo-spacing-2);
56
56
  }
57
57
 
58
58
  .message__content :where(pre) {
59
59
  overflow-x: auto;
60
- overflow-y: clip;
60
+ overflow-y: auto;
61
61
  }
62
62
 
63
63
  .message__response {
@@ -69,7 +69,7 @@
69
69
  display: inline-flex;
70
70
  align-items: center;
71
71
  gap: var(--sigvelo-spacing-1-5);
72
- max-width: 100%;
72
+ max-inline-size: 100%;
73
73
  font-size: var(--sigvelo-text-compact);
74
74
  color: inherit;
75
75
  text-decoration: none;
@@ -92,7 +92,7 @@
92
92
  .message__attachment-zoom {
93
93
  display: block;
94
94
  min-block-size: 0;
95
- max-width: 100%;
95
+ max-inline-size: 100%;
96
96
  padding: 0;
97
97
  background: none;
98
98
  cursor: zoom-in;
@@ -100,14 +100,14 @@
100
100
 
101
101
  .message__attachment-image {
102
102
  display: block;
103
- max-width: 16rem;
104
- max-height: 16rem;
103
+ max-inline-size: 16rem;
104
+ max-block-size: 16rem;
105
105
  border-radius: var(--sigvelo-radius-md);
106
106
  }
107
107
 
108
108
  /* Quiet annotation under a part whose stored content was compacted. */
109
109
  .message__compacted {
110
- margin-block-start: 0.25rem;
110
+ margin-block-start: var(--sigvelo-spacing-1);
111
111
  font-size: var(--sigvelo-text-xs);
112
112
  font-style: italic;
113
113
  color: var(--sigvelo-color-text-muted);
@@ -133,10 +133,16 @@
133
133
  color: var(--sigvelo-color-text);
134
134
  }
135
135
 
136
+ @media (any-pointer: coarse) {
137
+ .message__action {
138
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xl);
139
+ }
140
+ }
141
+
136
142
  .message__edit-form {
137
143
  display: grid;
138
144
  gap: var(--sigvelo-spacing-3);
139
- width: min(42rem, 85%);
145
+ inline-size: min(42rem, 85%);
140
146
  padding: var(--sigvelo-spacing-3);
141
147
  color: var(--sigvelo-color-text);
142
148
  background-color: var(--sigvelo-color-surface);
@@ -155,22 +161,22 @@
155
161
  display: flex;
156
162
  flex-wrap: wrap;
157
163
  justify-content: flex-end;
158
- gap: 0.5rem;
164
+ gap: var(--sigvelo-spacing-2);
159
165
  }
160
166
 
161
167
  .message__toolbar {
162
168
  display: flex;
163
169
  align-items: center;
164
170
  justify-content: space-between;
165
- gap: 0.5rem;
166
- width: 100%;
171
+ gap: var(--sigvelo-spacing-2);
172
+ inline-size: 100%;
167
173
  }
168
174
 
169
175
  .message__branch {
170
176
  display: flex;
171
177
  flex-direction: column;
172
- gap: 0.25rem;
173
- width: 100%;
178
+ gap: var(--sigvelo-spacing-1);
179
+ inline-size: 100%;
174
180
  }
175
181
 
176
182
  .message__branch-content {
@@ -1,8 +1,8 @@
1
1
  .meter {
2
2
  display: flex;
3
3
  flex-direction: column;
4
- gap: 0.5rem;
5
- width: 100%;
4
+ gap: var(--sigvelo-spacing-2);
5
+ inline-size: 100%;
6
6
  }
7
7
 
8
8
  .meter__label {
@@ -6,7 +6,7 @@
6
6
  .model-selector__trigger {
7
7
  display: inline-flex;
8
8
  align-items: center;
9
- gap: 0.5rem;
9
+ gap: var(--sigvelo-spacing-2);
10
10
  }
11
11
 
12
12
  .model-selector__trigger-chevron {
@@ -17,8 +17,8 @@
17
17
  .model-selector__dialog {
18
18
  display: flex;
19
19
  flex-direction: column;
20
- width: min(32rem, calc(100vw - 2rem));
21
- max-height: min(32rem, calc(100vh - 4rem));
20
+ inline-size: min(32rem, calc(100dvi - var(--sigvelo-spacing-8)));
21
+ max-block-size: min(32rem, calc(100dvb - var(--sigvelo-spacing-12) - var(--sigvelo-spacing-4)));
22
22
  padding: 0;
23
23
  overflow: hidden;
24
24
  font-family: inherit;
@@ -28,7 +28,7 @@
28
28
  .model-selector__search {
29
29
  display: flex;
30
30
  align-items: center;
31
- gap: 0.5rem;
31
+ gap: var(--sigvelo-spacing-2);
32
32
  padding-block: var(--sigvelo-spacing-2);
33
33
  padding-inline: var(--sigvelo-spacing-3);
34
34
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -42,8 +42,8 @@
42
42
 
43
43
  .model-selector__input.input {
44
44
  flex: 1;
45
- min-width: 0;
46
- height: auto;
45
+ min-inline-size: 0;
46
+ block-size: auto;
47
47
  padding: 0;
48
48
  border: none;
49
49
  outline: none;
@@ -68,7 +68,7 @@
68
68
  .model-selector__list {
69
69
  flex: 1;
70
70
  overflow: auto;
71
- padding-block: 0.25rem;
71
+ padding-block: var(--sigvelo-spacing-1);
72
72
  }
73
73
 
74
74
  .model-selector__group {
@@ -91,7 +91,7 @@
91
91
  align-items: center;
92
92
  justify-content: flex-start;
93
93
  gap: var(--sigvelo-spacing-1-5);
94
- width: 100%;
94
+ inline-size: 100%;
95
95
  min-block-size: var(--sigvelo-control-height-xs);
96
96
  padding-block: var(--sigvelo-spacing-0-5);
97
97
  padding-inline: var(--sigvelo-spacing-3);
@@ -101,7 +101,8 @@
101
101
  font-size: var(--sigvelo-text-compact);
102
102
  font-weight: var(--sigvelo-font-weight-normal);
103
103
  text-align: start;
104
- transition: background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
104
+ transition: background-color var(--sigvelo-motion-duration-interaction)
105
+ var(--sigvelo-motion-ease-change);
105
106
  }
106
107
 
107
108
  .model-selector__item:hover:not(:disabled):not([data-disabled]),
@@ -144,7 +145,8 @@
144
145
  }
145
146
 
146
147
  .model-selector__separator {
147
- margin: 0.25rem 0;
148
+ margin-block: var(--sigvelo-spacing-1);
149
+ margin-inline: 0;
148
150
  background-color: var(--sigvelo-color-neutral-border-subtle);
149
151
  }
150
152
 
@@ -152,8 +154,8 @@
152
154
  display: inline-flex;
153
155
  align-items: center;
154
156
  justify-content: center;
155
- width: 1.25rem;
156
- height: 1.25rem;
157
+ inline-size: var(--sigvelo-control-icon-size-xl);
158
+ block-size: var(--sigvelo-control-icon-size-xl);
157
159
  flex-shrink: 0;
158
160
  color: var(--sigvelo-color-text);
159
161
  }
@@ -161,11 +163,11 @@
161
163
  .model-selector__logo-group {
162
164
  display: inline-flex;
163
165
  align-items: center;
164
- gap: 0.25rem;
166
+ gap: var(--sigvelo-spacing-1);
165
167
  }
166
168
 
167
169
  .model-selector__shortcut {
168
- padding-block: 0.0625rem;
170
+ padding-block: var(--sigvelo-spacing-0-5);
169
171
  padding-inline: var(--sigvelo-spacing-1-5);
170
172
  font-family: var(--sigvelo-font-mono);
171
173
  font-size: var(--sigvelo-text-2xs);
@@ -0,0 +1,29 @@
1
+ /*
2
+ * Motion is a progressive enhancement. The explicit document setting mirrors
3
+ * the OS preference so Storybook, embedded hosts, and user settings can opt out
4
+ * without changing component behavior. Opacity and color still communicate
5
+ * state; spatial, layout, and decorative motion stop immediately.
6
+ */
7
+ @media (prefers-reduced-motion: reduce) {
8
+ *,
9
+ *::before,
10
+ *::after {
11
+ scroll-behavior: auto !important;
12
+ animation-duration: 0.01ms !important;
13
+ animation-iteration-count: 1 !important;
14
+ transition-property:
15
+ opacity, color, background-color, border-color, text-decoration-color, fill, stroke !important;
16
+ transition-duration: var(--sigvelo-duration-reduced) !important;
17
+ }
18
+ }
19
+
20
+ :root[data-motion="reduce"] *,
21
+ :root[data-motion="reduce"] *::before,
22
+ :root[data-motion="reduce"] *::after {
23
+ scroll-behavior: auto !important;
24
+ animation-duration: 0.01ms !important;
25
+ animation-iteration-count: 1 !important;
26
+ transition-property:
27
+ opacity, color, background-color, border-color, text-decoration-color, fill, stroke !important;
28
+ transition-duration: var(--sigvelo-duration-reduced) !important;
29
+ }
@@ -1,12 +1,12 @@
1
1
  .navigation-menu {
2
2
  position: relative;
3
- container-type: inline-size;
4
3
  }
5
4
 
6
5
  .navigation-menu__list {
7
6
  display: flex;
7
+ flex-wrap: wrap;
8
8
  align-items: center;
9
- gap: 0.25rem;
9
+ gap: var(--sigvelo-spacing-1);
10
10
  padding: 0;
11
11
  margin: 0;
12
12
  list-style: none;
@@ -32,8 +32,8 @@
32
32
  border-radius: var(--sigvelo-radius-sm);
33
33
  cursor: pointer;
34
34
  transition:
35
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
36
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
35
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
36
+ color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
37
37
  }
38
38
 
39
39
  .navigation-menu__trigger:hover {
@@ -52,17 +52,17 @@
52
52
 
53
53
  .navigation-menu__icon {
54
54
  display: inline-flex;
55
- transition: transform var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
55
+ transition: rotate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
56
56
  }
57
57
 
58
58
  .navigation-menu__trigger[data-popup-open] .navigation-menu__icon {
59
- transform: rotate(180deg);
59
+ rotate: 180deg;
60
60
  }
61
61
 
62
62
  .navigation-menu__content {
63
63
  display: grid;
64
- gap: 0.5rem;
65
- padding: 0.5rem;
64
+ gap: var(--sigvelo-spacing-2);
65
+ padding: var(--sigvelo-spacing-2);
66
66
  }
67
67
 
68
68
  .navigation-menu__link {
@@ -75,8 +75,8 @@
75
75
  text-decoration: none;
76
76
  border-radius: var(--sigvelo-radius-sm);
77
77
  transition:
78
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
79
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
78
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
79
+ color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
80
80
  }
81
81
 
82
82
  .navigation-menu__link:hover {
@@ -96,29 +96,13 @@
96
96
 
97
97
  .navigation-menu__popup {
98
98
  --sigvelo-recipe-surface-padding: 0;
99
+ --sigvelo-recipe-popup-min-inline-size: 12.5rem;
99
100
 
100
- min-width: 200px;
101
- overflow: hidden;
101
+ min-inline-size: var(--sigvelo-recipe-popup-min-inline-size);
102
+ overflow: clip;
102
103
  }
103
104
 
104
105
  .navigation-menu__viewport {
105
106
  position: relative;
106
- overflow: hidden;
107
- }
108
-
109
- .navigation-menu__arrow {
110
- width: 10px;
111
- height: 10px;
112
- transform: rotate(45deg);
113
- background-color: var(--sigvelo-color-surface);
114
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
115
- var(--sigvelo-color-neutral-border-muted);
116
- border-right: none;
117
- border-bottom: none;
118
- }
119
-
120
- @container (max-width: 30rem) {
121
- .navigation-menu__list {
122
- flex-wrap: wrap;
123
- }
107
+ overflow: clip;
124
108
  }
@@ -11,7 +11,7 @@
11
11
 
12
12
  .number-field__input {
13
13
  flex: 1;
14
- width: 100%;
14
+ inline-size: 100%;
15
15
  text-align: center;
16
16
  border-inline: none;
17
17
  }
@@ -39,7 +39,7 @@
39
39
  inline-size: var(--sigvelo-recipe-control-height);
40
40
  block-size: var(--sigvelo-recipe-control-height);
41
41
  font-family: inherit;
42
- font-size: var(--sigvelo-text-base);
42
+ font-size: var(--sigvelo-recipe-control-icon-size);
43
43
  font-weight: var(--sigvelo-font-weight-semibold);
44
44
  color: var(--sigvelo-color-text);
45
45
  background-color: var(--sigvelo-color-canvas);
@@ -47,9 +47,11 @@
47
47
  var(--sigvelo-color-neutral-border-muted);
48
48
  cursor: pointer;
49
49
  user-select: none;
50
+ translate: 0;
50
51
  transition:
51
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
52
- border-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
52
+ background-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
53
+ border-color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change),
54
+ translate var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
53
55
  }
54
56
 
55
57
  .number-field__decrement {
@@ -68,6 +70,22 @@
68
70
  color: var(--sigvelo-color-neutral-text-on-subtle);
69
71
  }
70
72
 
73
+ .number-field__decrement:active:not(:disabled),
74
+ .number-field__increment:active:not(:disabled) {
75
+ translate: 0 var(--sigvelo-motion-distance-xs);
76
+ }
77
+
78
+ @media (prefers-reduced-motion: reduce) {
79
+ .number-field__decrement,
80
+ .number-field__increment {
81
+ translate: none;
82
+ }
83
+ }
84
+
85
+ :root[data-motion="reduce"] :is(.number-field__decrement, .number-field__increment) {
86
+ translate: none;
87
+ }
88
+
71
89
  .number-field__decrement:focus-visible,
72
90
  .number-field__increment:focus-visible {
73
91
  outline: none;