@mcp-b/react-components 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) hide show
  1. package/dist/{AgentChat-B9LD_WF1.d.ts → AgentChat-Br6tKEl8.d.ts} +38 -10
  2. package/dist/{BrowserLiveView-ZktFZiMD.d.ts → BrowserLiveView-BV5qgFgI.d.ts} +11 -10
  3. package/dist/{BrowserReplay-6G-mnwcn.d.ts → BrowserReplay-xWvRjRAC.d.ts} +2 -1
  4. package/dist/{Button-Ct5I6aTu.d.ts → Button-FX_hpqxm.d.ts} +8 -11
  5. package/dist/{CodeBlock-XNQOupQ3.js → CodeBlock-BUFXG8HW.js} +22 -12
  6. package/dist/{CodeBlock-CxQXv3C4.d.ts → CodeBlock-DUh9WOGo.d.ts} +13 -7
  7. package/dist/{Combobox-D9anamNr.d.ts → Combobox-B9Fcd6q-.d.ts} +4 -14
  8. package/dist/{FileTree-wMyZhhHO.js → FileTree-mpEIcfzA.js} +1 -1
  9. package/dist/{Menu-B5vDqZe_.d.ts → Menu-Bgu-ufb5.d.ts} +29 -65
  10. package/dist/{ModelSelector-DXtpcRmT.js → ModelSelector-DVgVBdvw.js} +23 -20
  11. package/dist/{PromptInput-D6-G24p7.d.ts → PromptInput-p5KmOmt1.d.ts} +313 -89
  12. package/dist/Select-Dl_vF_Bt.d.ts +213 -0
  13. package/dist/{Tabs-D9EAq09D.d.ts → Tabs-3Zc4tb9D.d.ts} +9 -6
  14. package/dist/ThinkChat-7DQ2CogF.js +222 -0
  15. package/dist/{ThinkChatActivity-B2UD95My.d.ts → ThinkChatActivity-Cuk28Js_.d.ts} +4 -4
  16. package/dist/ThinkChatContext-C3Eb1Xpi.d.ts +16 -0
  17. package/dist/{ThinkChatToolParts-DnUiZgCC.d.ts → ThinkChatToolParts-Cv4o7j6F.d.ts} +13 -5
  18. package/dist/{attachment-preview-ChtC3HiU.js → attachment-preview-DIs50Q0h.js} +3 -3
  19. package/dist/components/Accordion.d.ts +17 -6
  20. package/dist/components/Accordion.js +23 -36
  21. package/dist/components/Activity.d.ts +5 -5
  22. package/dist/components/Activity.js +9 -9
  23. package/dist/components/AgentChat.d.ts +1 -1
  24. package/dist/components/AgentChat.js +354 -132
  25. package/dist/components/AgentConnection.js +6 -22
  26. package/dist/components/AlertDialog.d.ts +40 -32
  27. package/dist/components/AlertDialog.js +46 -39
  28. package/dist/components/Artifact.d.ts +1 -1
  29. package/dist/components/Artifact.js +5 -5
  30. package/dist/components/Autocomplete.js +10 -2
  31. package/dist/components/Avatar.d.ts +2 -2
  32. package/dist/components/Avatar.js +3 -3
  33. package/dist/components/Badge.d.ts +11 -14
  34. package/dist/components/Badge.js +11 -33
  35. package/dist/components/BrowserLiveView.d.ts +1 -1
  36. package/dist/components/BrowserLiveView.js +39 -45
  37. package/dist/components/BrowserReplay.d.ts +1 -1
  38. package/dist/components/BrowserReplay.js +4 -4
  39. package/dist/components/BrowserRunPanel.js +91 -55
  40. package/dist/components/Button.d.ts +2 -2
  41. package/dist/components/Button.js +7 -30
  42. package/dist/components/ChainOfThought.d.ts +5 -5
  43. package/dist/components/ChainOfThought.js +8 -5
  44. package/dist/components/ChatGptSignInScreen.js +3 -3
  45. package/dist/components/Checkbox.d.ts +10 -2
  46. package/dist/components/Checkbox.js +13 -6
  47. package/dist/components/CheckboxGroup.d.ts +6 -6
  48. package/dist/components/CheckboxGroup.js +6 -6
  49. package/dist/components/CodeBlock.d.ts +1 -1
  50. package/dist/components/CodeBlock.js +1 -1
  51. package/dist/components/CodexModelSelector.d.ts +58 -0
  52. package/dist/components/CodexModelSelector.js +170 -0
  53. package/dist/components/Collapsible.d.ts +2 -4
  54. package/dist/components/Collapsible.js +9 -7
  55. package/dist/components/Combobox.d.ts +2 -2
  56. package/dist/components/Combobox.js +20 -22
  57. package/dist/components/Commit.d.ts +6 -6
  58. package/dist/components/Commit.js +14 -26
  59. package/dist/components/Context.js +5 -1
  60. package/dist/components/ContextMenu.d.ts +20 -72
  61. package/dist/components/ContextMenu.js +46 -56
  62. package/dist/components/Conversation.d.ts +3 -7
  63. package/dist/components/Conversation.js +3 -4
  64. package/dist/components/Dialog.d.ts +38 -30
  65. package/dist/components/Dialog.js +46 -34
  66. package/dist/components/EnvironmentVariables.d.ts +2 -7
  67. package/dist/components/EnvironmentVariables.js +13 -36
  68. package/dist/components/Field.d.ts +3 -3
  69. package/dist/components/Field.js +7 -8
  70. package/dist/components/Fieldset.d.ts +2 -2
  71. package/dist/components/Fieldset.js +2 -2
  72. package/dist/components/FileTree.js +1 -1
  73. package/dist/components/Label.d.ts +1 -1
  74. package/dist/components/Label.js +1 -1
  75. package/dist/components/Marker.js +1 -15
  76. package/dist/components/McpServerPicker.d.ts +31 -6
  77. package/dist/components/McpServerPicker.js +136 -72
  78. package/dist/components/Menu.d.ts +2 -2
  79. package/dist/components/Menu.js +41 -51
  80. package/dist/components/Menubar.d.ts +16 -52
  81. package/dist/components/Menubar.js +44 -56
  82. package/dist/components/Message.d.ts +4 -3
  83. package/dist/components/Message.js +16 -9
  84. package/dist/components/MessageScroller.d.ts +1 -1
  85. package/dist/components/MessageScroller.js +1 -1
  86. package/dist/components/Meter.js +5 -0
  87. package/dist/components/ModelSelector.d.ts +12 -9
  88. package/dist/components/ModelSelector.js +1 -1
  89. package/dist/components/NavigationMenu.d.ts +3 -14
  90. package/dist/components/NavigationMenu.js +22 -38
  91. package/dist/components/NumberField.js +6 -0
  92. package/dist/components/Popover.d.ts +21 -44
  93. package/dist/components/Popover.js +33 -23
  94. package/dist/components/PreviewCard.d.ts +20 -18
  95. package/dist/components/PreviewCard.js +30 -20
  96. package/dist/components/PricingPage.js +30 -29
  97. package/dist/components/Progress.d.ts +7 -3
  98. package/dist/components/Progress.js +9 -4
  99. package/dist/components/PromptInput.d.ts +2 -2
  100. package/dist/components/PromptInput.js +184 -148
  101. package/dist/components/Queue.d.ts +8 -19
  102. package/dist/components/Queue.js +6 -6
  103. package/dist/components/RadioGroup.d.ts +10 -9
  104. package/dist/components/RadioGroup.js +8 -9
  105. package/dist/components/Reasoning.d.ts +4 -4
  106. package/dist/components/Reasoning.js +12 -21
  107. package/dist/components/ScrollArea.d.ts +2 -9
  108. package/dist/components/ScrollArea.js +5 -23
  109. package/dist/components/Select.d.ts +2 -2
  110. package/dist/components/Select.js +100 -134
  111. package/dist/components/Slider.d.ts +10 -7
  112. package/dist/components/Slider.js +12 -11
  113. package/dist/components/Sources.d.ts +4 -4
  114. package/dist/components/Sources.js +8 -5
  115. package/dist/components/Stepper.js +2 -8
  116. package/dist/components/Switch.d.ts +6 -3
  117. package/dist/components/Switch.js +7 -4
  118. package/dist/components/Tabs.d.ts +2 -2
  119. package/dist/components/Tabs.js +9 -4
  120. package/dist/components/Task.d.ts +4 -4
  121. package/dist/components/Task.js +10 -6
  122. package/dist/components/Terminal.d.ts +2 -2
  123. package/dist/components/Terminal.js +5 -5
  124. package/dist/components/TestResults.d.ts +4 -4
  125. package/dist/components/TestResults.js +5 -5
  126. package/dist/components/ThinkChat.d.ts +37 -30
  127. package/dist/components/ThinkChat.js +1 -152
  128. package/dist/components/ThinkChatActivity.d.ts +2 -2
  129. package/dist/components/ThinkChatActivity.js +4 -11
  130. package/dist/components/ThinkChatContext.d.ts +2 -2
  131. package/dist/components/ThinkChatContext.js +9 -2
  132. package/dist/components/ThinkChatToolPanels.d.ts +1 -1
  133. package/dist/components/ThinkChatToolPanels.js +27 -15
  134. package/dist/components/ThinkChatToolParts.d.ts +1 -1
  135. package/dist/components/ThinkExecutionWorkbench.d.ts +10 -7
  136. package/dist/components/ThinkExecutionWorkbench.js +382 -359
  137. package/dist/components/ThinkFullApp.d.ts +16 -13
  138. package/dist/components/ThinkFullApp.js +35 -25
  139. package/dist/components/ThinkThreadPicker.d.ts +1 -31
  140. package/dist/components/ThinkThreadPicker.js +32 -171
  141. package/dist/components/ThinkThreadShell.d.ts +35 -0
  142. package/dist/components/ThinkThreadShell.js +146 -0
  143. package/dist/components/Toast.js +7 -0
  144. package/dist/components/ToggleGroup.d.ts +6 -2
  145. package/dist/components/ToggleGroup.js +6 -2
  146. package/dist/components/Toolbar.js +6 -0
  147. package/dist/components/Tooltip.d.ts +36 -27
  148. package/dist/components/Tooltip.js +45 -29
  149. package/dist/components/WebPreview.d.ts +1 -1
  150. package/dist/components/WebPreview.js +3 -3
  151. package/dist/components/WorkspaceExplorer.d.ts +6 -8
  152. package/dist/components/WorkspaceExplorer.js +9 -7
  153. package/dist/components/icons.d.ts +2 -2
  154. package/dist/components/icons.js +2 -2
  155. package/dist/{copy-button-C6JSKtFE.js → copy-button-DUMLYdsk.js} +7 -6
  156. package/dist/{copy-button-BKXqGiNm.d.ts → copy-button-DtPMgN7e.d.ts} +3 -2
  157. package/dist/icons-Ba9THQKz.js +64 -0
  158. package/dist/icons-CUCz_Sft.d.ts +210 -0
  159. package/dist/merge-refs-DF_7w2x_.js +18 -0
  160. package/dist/styles/accessibility.css +14 -0
  161. package/dist/styles/accordion.css +21 -61
  162. package/dist/styles/activity.css +23 -58
  163. package/dist/styles/agent-chat.css +49 -5
  164. package/dist/styles/agent-connection.css +8 -10
  165. package/dist/styles/alert-dialog.css +20 -26
  166. package/dist/styles/artifact.css +6 -6
  167. package/dist/styles/attachment-preview.css +1 -1
  168. package/dist/styles/autocomplete.css +5 -170
  169. package/dist/styles/avatar.css +8 -8
  170. package/dist/styles/badge.css +8 -10
  171. package/dist/styles/base-ui-motion.css +176 -0
  172. package/dist/styles/base.css +19 -25
  173. package/dist/styles/browser-live-view.css +7 -7
  174. package/dist/styles/browser-replay.css +5 -5
  175. package/dist/styles/browser-run-panel.css +59 -112
  176. package/dist/styles/button.css +48 -43
  177. package/dist/styles/card.css +3 -5
  178. package/dist/styles/chain-of-thought.css +14 -70
  179. package/dist/styles/chatgpt-sign-in-screen.css +3 -3
  180. package/dist/styles/checkbox-group.css +1 -1
  181. package/dist/styles/checkbox.css +3 -7
  182. package/dist/styles/code-block.css +10 -10
  183. package/dist/styles/codex-model-selector.css +186 -0
  184. package/dist/styles/collapsible.css +11 -27
  185. package/dist/styles/combobox.css +3 -149
  186. package/dist/styles/commit.css +19 -35
  187. package/dist/styles/context-menu.css +1 -77
  188. package/dist/styles/context.css +12 -12
  189. package/dist/styles/conversation.css +7 -7
  190. package/dist/styles/dialog.css +34 -55
  191. package/dist/styles/environment-variables.css +10 -10
  192. package/dist/styles/field.css +16 -58
  193. package/dist/styles/fieldset.css +2 -2
  194. package/dist/styles/file-tree.css +7 -9
  195. package/dist/styles/index.css +12 -2
  196. package/dist/styles/input.css +1 -51
  197. package/dist/styles/label.css +2 -2
  198. package/dist/styles/marker.css +2 -4
  199. package/dist/styles/mcp-server-picker.css +66 -19
  200. package/dist/styles/menu.css +6 -153
  201. package/dist/styles/menubar.css +6 -105
  202. package/dist/styles/message-scroller.css +1 -1
  203. package/dist/styles/message.css +87 -9
  204. package/dist/styles/meter.css +4 -20
  205. package/dist/styles/model-selector.css +32 -20
  206. package/dist/styles/navigation-menu.css +14 -54
  207. package/dist/styles/number-field.css +8 -23
  208. package/dist/styles/popover.css +13 -68
  209. package/dist/styles/preview-card.css +5 -46
  210. package/dist/styles/pricing-page.css +43 -43
  211. package/dist/styles/progress.css +7 -16
  212. package/dist/styles/prompt-input.css +100 -44
  213. package/dist/styles/queue.css +12 -28
  214. package/dist/styles/radio.css +4 -8
  215. package/dist/styles/reasoning.css +3 -62
  216. package/dist/styles/recipes.css +475 -0
  217. package/dist/styles/select.css +7 -103
  218. package/dist/styles/shell.css +3 -3
  219. package/dist/styles/slider.css +5 -7
  220. package/dist/styles/sources.css +9 -66
  221. package/dist/styles/stepper.css +16 -14
  222. package/dist/styles/streamdown.css +11 -57
  223. package/dist/styles/switch.css +4 -7
  224. package/dist/styles/tabs.css +7 -8
  225. package/dist/styles/task.css +13 -42
  226. package/dist/styles/terminal.css +7 -7
  227. package/dist/styles/test-results.css +21 -37
  228. package/dist/styles/think-execution-workbench.css +337 -0
  229. package/dist/styles/think-full-app.css +27 -410
  230. package/dist/styles/think-resize-handle.css +33 -0
  231. package/dist/styles/think-thread-picker.css +18 -247
  232. package/dist/styles/think-thread-shell.css +219 -0
  233. package/dist/styles/toast.css +14 -25
  234. package/dist/styles/toggle-group.css +16 -14
  235. package/dist/styles/toggle.css +14 -15
  236. package/dist/styles/toolbar.css +13 -25
  237. package/dist/styles/tooltip.css +6 -16
  238. package/dist/styles/web-preview.css +15 -15
  239. package/dist/styles/workspace-explorer.css +21 -14
  240. package/dist/summarize-tool-input-BUJsENSn.js +12 -0
  241. package/dist/utils/codex-model-catalog.d.ts +142 -0
  242. package/dist/utils/codex-model-catalog.js +112 -0
  243. package/dist/utils/structured-code.d.ts +1 -1
  244. package/package.json +8 -2
  245. package/dist/Select-CRsKCJ9x.d.ts +0 -200
  246. package/dist/ThinkChatContext-BLAAb8J5.d.ts +0 -28
  247. package/dist/components/McpServerConnections.d.ts +0 -41
  248. package/dist/components/McpServerConnections.js +0 -188
  249. package/dist/components/useStickToBottom.d.ts +0 -33
  250. package/dist/components/useStickToBottom.js +0 -107
  251. package/dist/icons-CbjtbIJK.d.ts +0 -51
  252. package/dist/icons-D2Q5n5C1.js +0 -291
  253. package/dist/styles/mcp-server-connections.css +0 -145
@@ -1,6 +1,6 @@
1
1
  .agent-connect {
2
2
  display: grid;
3
- gap: 0.75rem;
3
+ gap: var(--sigvelo-spacing-3);
4
4
  min-inline-size: 0;
5
5
  color: var(--sigvelo-color-text);
6
6
  }
@@ -34,7 +34,7 @@
34
34
  .agent-connect__title-group :where(h2, h3) {
35
35
  margin: 0;
36
36
  color: var(--sigvelo-color-text);
37
- font-size: 0.95rem;
37
+ font-size: var(--sigvelo-text-base);
38
38
  font-weight: var(--sigvelo-font-weight-bold);
39
39
  line-height: 1.2;
40
40
  letter-spacing: 0;
@@ -44,7 +44,7 @@
44
44
  max-inline-size: 62ch;
45
45
  margin: 0;
46
46
  color: var(--sigvelo-color-text-muted);
47
- font-size: 0.78rem;
47
+ font-size: var(--sigvelo-text-compact);
48
48
  line-height: 1.35;
49
49
  text-wrap: pretty;
50
50
  }
@@ -87,7 +87,7 @@
87
87
  color: var(--sigvelo-color-text-muted);
88
88
  cursor: pointer;
89
89
  font: inherit;
90
- font-size: 0.72rem;
90
+ font-size: var(--sigvelo-text-xs);
91
91
  font-weight: var(--sigvelo-font-weight-semibold);
92
92
  line-height: 1.15;
93
93
  overflow-wrap: anywhere;
@@ -106,7 +106,7 @@
106
106
  @media (pointer: coarse) {
107
107
  .agent-connect__target {
108
108
  min-block-size: 2.5rem;
109
- padding-inline: 0.75rem;
109
+ padding-inline: var(--sigvelo-spacing-3);
110
110
  }
111
111
  }
112
112
 
@@ -117,9 +117,7 @@
117
117
 
118
118
  .agent-connect__target:focus-visible {
119
119
  outline: none;
120
- box-shadow:
121
- 0 0 0 2px var(--sigvelo-color-canvas),
122
- 0 0 0 4px var(--sigvelo-color-focus);
120
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
123
121
  }
124
122
 
125
123
  .agent-connect__target[data-selected="true"] {
@@ -137,13 +135,13 @@
137
135
 
138
136
  .agent-connect .code-block__content,
139
137
  .agent-connect .code-block__content--highlighted pre.shiki {
140
- font-size: 0.74rem;
138
+ font-size: var(--sigvelo-text-xs);
141
139
  line-height: 1.5;
142
140
  }
143
141
 
144
142
  .agent-connect__mcp-form {
145
143
  display: grid;
146
- gap: 0.75rem;
144
+ gap: var(--sigvelo-spacing-3);
147
145
  min-inline-size: 0;
148
146
  }
149
147
 
@@ -13,14 +13,10 @@
13
13
 
14
14
  .alert-dialog__trigger:focus-visible {
15
15
  outline: none;
16
- box-shadow:
17
- 0 0 0 2px var(--sigvelo-color-canvas),
18
- 0 0 0 4px var(--sigvelo-color-focus);
16
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
19
17
  }
20
18
 
21
19
  .alert-dialog__backdrop {
22
- position: fixed;
23
- inset: 0;
24
20
  background-color: var(--sigvelo-color-backdrop);
25
21
  opacity: 1;
26
22
  z-index: 50;
@@ -33,6 +29,8 @@
33
29
  }
34
30
 
35
31
  .alert-dialog__popup {
32
+ --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-6);
33
+
36
34
  position: fixed;
37
35
  inset-block-start: 50%;
38
36
  inset-inline-start: 50%;
@@ -42,14 +40,6 @@
42
40
  max-inline-size: 28rem;
43
41
  max-block-size: calc(100dvb - 2rem);
44
42
  overflow: auto;
45
- background-color: var(--sigvelo-color-canvas);
46
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
47
- var(--sigvelo-color-neutral-border-muted);
48
- border-radius: var(--sigvelo-radius-md);
49
- padding: 1.5rem;
50
- box-shadow:
51
- 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
52
- 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
53
43
  transition:
54
44
  opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
55
45
  transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
@@ -61,6 +51,13 @@
61
51
  transform: translate(-50%, -50%) scale(0.95);
62
52
  }
63
53
 
54
+ @media (prefers-reduced-motion: reduce) {
55
+ .alert-dialog__popup[data-starting-style],
56
+ .alert-dialog__popup[data-ending-style] {
57
+ transform: translate(-50%, -50%);
58
+ }
59
+ }
60
+
64
61
  .alert-dialog__popup--sm {
65
62
  max-inline-size: 20rem;
66
63
  }
@@ -70,8 +67,7 @@
70
67
  }
71
68
 
72
69
  .alert-dialog__title {
73
- font-family: var(--sigvelo-font-sans);
74
- font-size: 1.125rem;
70
+ font-size: var(--sigvelo-text-lg);
75
71
  font-weight: var(--sigvelo-font-weight-bold);
76
72
  line-height: 1.25;
77
73
  color: var(--sigvelo-color-text);
@@ -80,8 +76,7 @@
80
76
  }
81
77
 
82
78
  .alert-dialog__description {
83
- font-family: var(--sigvelo-font-sans);
84
- font-size: 0.875rem;
79
+ font-size: var(--sigvelo-text-sm);
85
80
  line-height: 1.5;
86
81
  color: var(--sigvelo-color-text-muted);
87
82
  margin: 0 0 1.5rem;
@@ -98,7 +93,7 @@
98
93
  display: flex;
99
94
  flex-wrap: wrap;
100
95
  justify-content: flex-end;
101
- gap: 0.75rem;
96
+ gap: var(--sigvelo-spacing-3);
102
97
  }
103
98
 
104
99
  .alert-dialog__media {
@@ -109,10 +104,11 @@
109
104
  display: inline-flex;
110
105
  align-items: center;
111
106
  justify-content: center;
112
- min-block-size: 2.5rem;
113
- padding: 0 1rem;
114
- font-family: var(--sigvelo-font-sans);
115
- font-size: 0.875rem;
107
+ min-block-size: var(--sigvelo-recipe-control-height);
108
+ padding-block: 0;
109
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
110
+ font-family: inherit;
111
+ font-size: var(--sigvelo-recipe-control-font-size);
116
112
  font-weight: var(--sigvelo-font-weight-semibold);
117
113
  border: none;
118
114
  border-radius: var(--sigvelo-radius-md);
@@ -125,14 +121,12 @@
125
121
 
126
122
  .alert-dialog__action:focus-visible {
127
123
  outline: none;
128
- box-shadow:
129
- 0 0 0 2px var(--sigvelo-color-canvas),
130
- 0 0 0 4px var(--sigvelo-color-focus);
124
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
131
125
  }
132
126
 
133
127
  .alert-dialog__action:disabled {
134
128
  cursor: not-allowed;
135
- opacity: 0.5;
129
+ opacity: var(--sigvelo-recipe-disabled-opacity);
136
130
  }
137
131
 
138
132
  .alert-dialog__action--primary {
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  inline-size: 100%;
5
- font-family: var(--sigvelo-font-sans);
5
+ font-family: inherit;
6
6
  color: var(--sigvelo-color-text);
7
7
  /* Shadow-led elevation: no perimeter border */
8
8
  background-color: var(--sigvelo-color-surface);
@@ -15,8 +15,8 @@
15
15
  display: flex;
16
16
  align-items: flex-start;
17
17
  justify-content: space-between;
18
- gap: 0.75rem;
19
- padding-block: 0.75rem;
18
+ gap: var(--sigvelo-spacing-3);
19
+ padding-block: var(--sigvelo-spacing-3);
20
20
  padding-inline: 1rem;
21
21
  background-color: var(--sigvelo-color-surface);
22
22
  }
@@ -38,8 +38,8 @@
38
38
 
39
39
  .artifact__description {
40
40
  margin: 0;
41
- margin-block-start: 0.125rem;
42
- font-size: 0.8125rem;
41
+ margin-block-start: var(--sigvelo-spacing-0-5);
42
+ font-size: var(--sigvelo-text-compact);
43
43
  color: var(--sigvelo-color-text-muted);
44
44
  line-height: 1.4;
45
45
  overflow-wrap: anywhere;
@@ -73,7 +73,7 @@
73
73
  .artifact__content {
74
74
  padding-block: 1rem;
75
75
  padding-inline: 1rem;
76
- font-size: 0.875rem;
76
+ font-size: var(--sigvelo-text-sm);
77
77
  line-height: 1.5;
78
78
  overflow-wrap: anywhere;
79
79
  }
@@ -15,7 +15,7 @@
15
15
 
16
16
  .attachment-preview__name {
17
17
  margin-block-start: 0.5rem;
18
- font-size: 0.75rem;
18
+ font-size: var(--sigvelo-text-xs);
19
19
  color: var(--sigvelo-color-text-muted);
20
20
  text-align: center;
21
21
  }
@@ -1,182 +1,17 @@
1
1
  .autocomplete__input {
2
2
  flex: 1;
3
- min-width: 0;
4
- padding-block: 0.5rem;
5
- padding-inline: 0.75rem;
6
- font-family: var(--sigvelo-font-sans);
7
- font-size: 0.875rem;
8
- color: var(--sigvelo-color-text);
9
- background-color: transparent;
10
- border: none;
11
- border-radius: var(--sigvelo-radius-sm);
12
- outline: none;
13
- }
14
-
15
- .autocomplete__input::placeholder {
16
- color: var(--sigvelo-color-text-muted);
17
- }
18
-
19
- .autocomplete__input:focus-visible {
20
- outline: none;
21
- box-shadow:
22
- 0 0 0 2px var(--sigvelo-color-canvas),
23
- 0 0 0 4px var(--sigvelo-color-focus);
24
- }
25
-
26
- .autocomplete__trigger {
27
- display: inline-flex;
28
- align-items: center;
29
- justify-content: center;
30
- padding: 0.5rem;
31
- color: var(--sigvelo-color-text-muted);
32
- background-color: transparent;
33
- border: none;
34
- border-radius: var(--sigvelo-radius-sm);
35
- cursor: pointer;
36
- transition: color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
37
- }
38
-
39
- .autocomplete__trigger:hover {
40
- color: var(--sigvelo-color-text);
41
- }
42
-
43
- .autocomplete__trigger:focus-visible {
44
- outline: none;
45
- box-shadow:
46
- 0 0 0 2px var(--sigvelo-color-canvas),
47
- 0 0 0 4px var(--sigvelo-color-focus);
48
- }
49
-
50
- .autocomplete__clear {
51
- display: inline-flex;
52
- align-items: center;
53
- justify-content: center;
54
- padding: 0.25rem;
55
- color: var(--sigvelo-color-text-muted);
56
- background-color: transparent;
57
- border: none;
58
- border-radius: var(--sigvelo-radius-sm);
59
- cursor: pointer;
60
- transition:
61
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
62
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
63
- }
64
-
65
- .autocomplete__clear:hover {
66
- color: var(--sigvelo-color-text);
67
- background-color: var(--sigvelo-color-neutral-bg-subtle);
68
- }
69
-
70
- .autocomplete__clear:focus-visible {
71
- outline: none;
72
- box-shadow:
73
- 0 0 0 2px var(--sigvelo-color-canvas),
74
- 0 0 0 4px var(--sigvelo-color-focus);
75
- }
76
-
77
- .autocomplete__positioner {
78
- z-index: 50;
79
3
  }
80
4
 
81
5
  .autocomplete__popup {
82
- min-width: 200px;
83
- max-height: 300px;
84
- overflow: auto;
85
- background-color: var(--sigvelo-color-surface);
86
- color: var(--sigvelo-color-text);
87
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
88
- var(--sigvelo-color-neutral-border-muted);
89
- border-radius: var(--sigvelo-radius-md);
90
- box-shadow:
91
- 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
92
- 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
93
- animation: autocomplete-popup-enter var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
94
- }
6
+ --sigvelo-recipe-surface-padding: 0;
95
7
 
96
- .autocomplete__popup[data-ending-style] {
97
- animation: autocomplete-popup-exit 100ms ease;
98
- }
99
-
100
- @keyframes autocomplete-popup-enter {
101
- from {
102
- opacity: 0;
103
- transform: translateY(-4px);
104
- }
105
- to {
106
- opacity: 1;
107
- transform: translateY(0);
108
- }
109
- }
110
-
111
- @keyframes autocomplete-popup-exit {
112
- from {
113
- opacity: 1;
114
- transform: translateY(0);
115
- }
116
- to {
117
- opacity: 0;
118
- transform: translateY(-4px);
119
- }
120
- }
121
-
122
- .autocomplete__list {
123
- padding: 0.25rem;
124
- }
125
-
126
- .autocomplete__item {
127
- display: flex;
128
- align-items: center;
129
- gap: 0.5rem;
130
- padding-block: 0.5rem;
131
- padding-inline: 0.75rem;
132
- font-family: var(--sigvelo-font-sans);
133
- font-size: 0.875rem;
134
- color: var(--sigvelo-color-text);
135
- border-radius: var(--sigvelo-radius-sm);
136
- cursor: pointer;
137
- outline: none;
138
- transition:
139
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
140
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
141
- }
142
-
143
- .autocomplete__item:hover,
144
- .autocomplete__item[data-highlighted] {
145
- background-color: var(--sigvelo-color-neutral-bg-subtle);
146
- color: var(--sigvelo-color-neutral-text-on-subtle);
147
- }
148
-
149
- .autocomplete__item[data-disabled] {
150
- opacity: 0.5;
151
- pointer-events: none;
152
- }
153
-
154
- .autocomplete__empty {
155
- padding: 1rem;
156
- text-align: center;
157
- font-size: 0.875rem;
158
- color: var(--sigvelo-color-text-muted);
8
+ inline-size: var(--anchor-width);
9
+ min-inline-size: 12.5rem;
159
10
  }
160
11
 
161
12
  .autocomplete__status {
162
- padding: 0.75rem;
13
+ padding: var(--sigvelo-spacing-3);
163
14
  text-align: center;
164
- font-size: 0.75rem;
165
- color: var(--sigvelo-color-text-muted);
166
- }
167
-
168
- .autocomplete__group {
169
- padding-block: 0.25rem;
170
- }
171
-
172
- .autocomplete__group + .autocomplete__group {
173
- border-block-start: 1px solid var(--sigvelo-color-neutral-border-muted);
174
- }
175
-
176
- .autocomplete__group-label {
177
- padding-block: 0.375rem;
178
- padding-inline: 0.75rem;
179
- font-size: 0.75rem;
180
- font-weight: var(--sigvelo-font-weight-semibold);
15
+ font-size: var(--sigvelo-text-xs);
181
16
  color: var(--sigvelo-color-text-muted);
182
17
  }
@@ -7,7 +7,7 @@
7
7
  height: 2rem;
8
8
  flex-shrink: 0;
9
9
  overflow: hidden;
10
- font-family: var(--sigvelo-font-sans);
10
+ font-family: inherit;
11
11
  background-color: var(--sigvelo-color-neutral-bg-subtle);
12
12
  border-radius: var(--sigvelo-radius-full);
13
13
  user-select: none;
@@ -36,7 +36,7 @@
36
36
  justify-content: center;
37
37
  width: 100%;
38
38
  height: 100%;
39
- font-size: 0.875rem;
39
+ font-size: var(--sigvelo-text-sm);
40
40
  font-weight: var(--sigvelo-font-weight-semibold);
41
41
  color: var(--sigvelo-color-text-muted);
42
42
  text-transform: uppercase;
@@ -68,7 +68,7 @@
68
68
  display: inline-flex;
69
69
  align-items: center;
70
70
  justify-content: center;
71
- font-size: 0.75rem;
71
+ font-size: var(--sigvelo-text-xs);
72
72
  font-weight: var(--sigvelo-font-weight-semibold);
73
73
  }
74
74
 
@@ -78,7 +78,7 @@
78
78
  height: 2rem;
79
79
  flex-shrink: 0;
80
80
  margin-inline-start: -0.5rem;
81
- padding-inline: 0.375rem;
81
+ padding-inline: var(--sigvelo-spacing-1-5);
82
82
  background-color: var(--sigvelo-color-neutral-bg-subtle);
83
83
  border: 2px solid var(--sigvelo-color-canvas);
84
84
  border-radius: var(--sigvelo-radius-full);
@@ -101,8 +101,8 @@
101
101
  right: 0;
102
102
  bottom: 0;
103
103
  z-index: 10;
104
- width: 0.625rem;
105
- height: 0.625rem;
104
+ width: var(--sigvelo-spacing-2-5);
105
+ height: var(--sigvelo-spacing-2-5);
106
106
  color: var(--sigvelo-color-primary-text-on-bg);
107
107
  background-color: var(--sigvelo-color-primary-bg);
108
108
  border: 2px solid var(--sigvelo-color-canvas);
@@ -116,6 +116,6 @@
116
116
  }
117
117
 
118
118
  .avatar[data-size="lg"] .avatar__badge {
119
- width: 0.75rem;
120
- height: 0.75rem;
119
+ width: var(--sigvelo-spacing-3);
120
+ height: var(--sigvelo-spacing-3);
121
121
  }
@@ -6,10 +6,10 @@
6
6
  gap: 0.25rem;
7
7
  width: fit-content;
8
8
  overflow: hidden;
9
- padding-block: 0.125rem;
9
+ padding-block: var(--sigvelo-spacing-0-5);
10
10
  padding-inline: 0.5rem;
11
- font-family: var(--sigvelo-font-sans);
12
- font-size: 0.75rem;
11
+ font-family: inherit;
12
+ font-size: var(--sigvelo-text-xs);
13
13
  font-weight: var(--sigvelo-font-weight-bold);
14
14
  line-height: 1.25;
15
15
  text-transform: uppercase;
@@ -30,9 +30,7 @@
30
30
 
31
31
  .badge:focus-visible {
32
32
  outline: none;
33
- box-shadow:
34
- 0 0 0 2px var(--sigvelo-color-canvas),
35
- 0 0 0 4px var(--sigvelo-color-focus);
33
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
36
34
  }
37
35
 
38
36
  .badge:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]) {
@@ -41,15 +39,15 @@
41
39
 
42
40
  .badge > svg {
43
41
  flex-shrink: 0;
44
- width: 0.75rem;
45
- height: 0.75rem;
42
+ width: var(--sigvelo-spacing-3);
43
+ height: var(--sigvelo-spacing-3);
46
44
  pointer-events: none;
47
45
  }
48
46
 
49
47
  .badge--sm {
50
48
  padding-block: 0.0625rem;
51
- padding-inline: 0.375rem;
52
- font-size: 0.625rem;
49
+ padding-inline: var(--sigvelo-spacing-1-5);
50
+ font-size: var(--sigvelo-text-3xs);
53
51
  }
54
52
 
55
53
  /* Normal appearance */
@@ -0,0 +1,176 @@
1
+ /*
2
+ * Base UI exposes presence state on popup parts. Keep its state contract in
3
+ * CSS so all anchored surfaces enter, exit, and respect reduced motion alike.
4
+ */
5
+ .base-ui-positioner {
6
+ z-index: 50;
7
+ }
8
+
9
+ .base-ui-backdrop {
10
+ position: fixed;
11
+ inset: 0;
12
+ min-block-size: 100dvb;
13
+ }
14
+
15
+ @supports (-webkit-touch-callout: none) {
16
+ .base-ui-backdrop {
17
+ position: absolute;
18
+ }
19
+ }
20
+
21
+ .base-ui-popup {
22
+ transform-origin: var(--transform-origin);
23
+ transition:
24
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
25
+ transform var(--sigvelo-duration-fast) var(--sigvelo-ease-emphasized);
26
+ }
27
+
28
+ .base-ui-popup[data-starting-style],
29
+ .base-ui-popup[data-ending-style] {
30
+ opacity: 0;
31
+ transform: scale(0.98);
32
+ }
33
+
34
+ .base-ui-popup[data-ending-style] {
35
+ transition-timing-function: var(--sigvelo-ease-accelerate);
36
+ }
37
+
38
+ .base-ui-popup[data-instant] {
39
+ transition-duration: 0ms;
40
+ }
41
+
42
+ @media (prefers-reduced-motion: reduce) {
43
+ .base-ui-popup {
44
+ transition-duration: var(--sigvelo-duration-reduced);
45
+ }
46
+
47
+ .base-ui-popup[data-starting-style],
48
+ .base-ui-popup[data-ending-style] {
49
+ transform: none;
50
+ }
51
+ }
52
+
53
+ :root[data-motion="reduce"] .base-ui-adaptive-positioner,
54
+ :root[data-motion="reduce"] .base-ui-adaptive-popup,
55
+ :root[data-motion="reduce"] .base-ui-adaptive-viewport > [data-current],
56
+ :root[data-motion="reduce"] .base-ui-adaptive-viewport > [data-previous] {
57
+ transition-duration: var(--sigvelo-duration-reduced);
58
+ }
59
+
60
+ :root[data-motion="reduce"] .base-ui-adaptive-viewport > [data-current],
61
+ :root[data-motion="reduce"] .base-ui-adaptive-viewport > [data-previous] {
62
+ translate: none;
63
+ }
64
+
65
+ /*
66
+ * Opt-in recipe for a single Base UI popup shared by detached triggers. Apply
67
+ * all three classes to the matching parts. Base UI owns the measurements and
68
+ * transition state; these rules only turn those documented hooks into motion.
69
+ */
70
+ .base-ui-adaptive-positioner {
71
+ width: var(--positioner-width);
72
+ height: var(--positioner-height);
73
+ max-width: var(--available-width);
74
+ 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);
79
+ }
80
+
81
+ .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);
86
+ overflow: clip;
87
+ 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);
92
+ }
93
+
94
+ .base-ui-adaptive-viewport {
95
+ position: relative;
96
+ width: 100%;
97
+ height: 100%;
98
+ overflow: clip;
99
+ }
100
+
101
+ .base-ui-adaptive-viewport > [data-current],
102
+ .base-ui-adaptive-viewport > [data-previous] {
103
+ width: var(--popup-width, 100%);
104
+ opacity: 1;
105
+ transition:
106
+ translate var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized),
107
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
108
+ }
109
+
110
+ .base-ui-adaptive-viewport[data-activation-direction~="left"] > [data-current][data-starting-style],
111
+ .base-ui-adaptive-viewport[data-activation-direction~="right"]
112
+ > [data-previous][data-ending-style] {
113
+ translate: 25% 0;
114
+ opacity: 0;
115
+ }
116
+
117
+ .base-ui-adaptive-viewport[data-activation-direction~="right"]
118
+ > [data-current][data-starting-style],
119
+ .base-ui-adaptive-viewport[data-activation-direction~="left"] > [data-previous][data-ending-style] {
120
+ translate: -25% 0;
121
+ opacity: 0;
122
+ }
123
+
124
+ .base-ui-adaptive-viewport[data-activation-direction~="up"] > [data-current][data-starting-style],
125
+ .base-ui-adaptive-viewport[data-activation-direction~="down"] > [data-previous][data-ending-style] {
126
+ translate: 0 25%;
127
+ opacity: 0;
128
+ }
129
+
130
+ .base-ui-adaptive-viewport[data-activation-direction~="down"] > [data-current][data-starting-style],
131
+ .base-ui-adaptive-viewport[data-activation-direction~="up"] > [data-previous][data-ending-style] {
132
+ translate: 0 -25%;
133
+ opacity: 0;
134
+ }
135
+
136
+ .base-ui-adaptive-viewport[data-instant] > [data-current],
137
+ .base-ui-adaptive-viewport[data-instant] > [data-previous] {
138
+ transition-duration: 0ms;
139
+ }
140
+
141
+ @media (prefers-reduced-motion: reduce) {
142
+ .base-ui-adaptive-positioner,
143
+ .base-ui-adaptive-popup,
144
+ .base-ui-adaptive-viewport > [data-current],
145
+ .base-ui-adaptive-viewport > [data-previous] {
146
+ transition-duration: var(--sigvelo-duration-reduced);
147
+ }
148
+
149
+ .base-ui-adaptive-viewport > [data-current],
150
+ .base-ui-adaptive-viewport > [data-previous] {
151
+ translate: none;
152
+ }
153
+ }
154
+
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);
160
+ overflow: hidden;
161
+ transition:
162
+ height var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
163
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
164
+ }
165
+
166
+ .base-ui-collapsible-panel[data-starting-style],
167
+ .base-ui-collapsible-panel[data-ending-style] {
168
+ height: 0;
169
+ opacity: 0;
170
+ }
171
+
172
+ @media (prefers-reduced-motion: reduce) {
173
+ .base-ui-collapsible-panel {
174
+ transition: opacity var(--sigvelo-duration-reduced) var(--sigvelo-ease-standard);
175
+ }
176
+ }