@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
@@ -2,71 +2,17 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  width: 100%;
5
- font-family: var(--sigvelo-font-sans);
6
- color: var(--sigvelo-color-text);
7
- }
8
-
9
- .chain-of-thought__header {
10
- display: flex;
11
- align-items: center;
12
- gap: 0.5rem;
13
- padding-block: 0.5rem;
14
- padding-inline: 0.75rem;
15
- background-color: transparent;
16
- border: none;
17
- border-radius: var(--sigvelo-radius-sm);
18
- color: var(--sigvelo-color-text-muted);
19
5
  font-family: inherit;
20
- font-size: 0.8125rem;
21
- font-weight: var(--sigvelo-font-weight-semibold);
22
- cursor: pointer;
23
- transition:
24
- background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
25
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
26
- }
27
-
28
- .chain-of-thought__header:hover:not([data-disabled]) {
29
- background-color: var(--sigvelo-color-neutral-bg-subtle);
30
6
  color: var(--sigvelo-color-text);
31
7
  }
32
8
 
33
- .chain-of-thought__header:focus-visible {
34
- outline: none;
35
- box-shadow:
36
- 0 0 0 2px var(--sigvelo-color-canvas),
37
- 0 0 0 4px var(--sigvelo-color-focus);
38
- }
39
-
40
- .chain-of-thought__header-icon {
41
- display: inline-flex;
42
- transition: transform 200ms ease;
43
- }
44
-
45
- .chain-of-thought__header[data-panel-open] .chain-of-thought__header-icon {
46
- transform: rotate(90deg);
47
- }
48
-
49
- .chain-of-thought__content {
50
- height: var(--collapsible-panel-height);
51
- overflow: hidden;
52
- transition:
53
- height 200ms ease,
54
- opacity 200ms ease;
55
- }
56
-
57
- .chain-of-thought__content[data-starting-style],
58
- .chain-of-thought__content[data-ending-style] {
59
- height: 0;
60
- opacity: 0;
61
- }
62
-
63
9
  .chain-of-thought__steps {
64
10
  display: flex;
65
11
  flex-direction: column;
66
- gap: 0.625rem;
12
+ gap: var(--sigvelo-spacing-2-5);
67
13
  margin: 0;
68
- padding-block: 0.75rem;
69
- padding-inline: 0.75rem;
14
+ padding-block: var(--sigvelo-spacing-3);
15
+ padding-inline: var(--sigvelo-spacing-3);
70
16
  margin-inline-start: 1rem;
71
17
  border-inline-start: var(--sigvelo-border-style) 2px var(--sigvelo-color-neutral-border-subtle);
72
18
  list-style: none;
@@ -75,7 +21,7 @@
75
21
  .chain-of-thought__step {
76
22
  display: flex;
77
23
  align-items: flex-start;
78
- gap: 0.625rem;
24
+ gap: var(--sigvelo-spacing-2-5);
79
25
  position: relative;
80
26
  }
81
27
 
@@ -111,13 +57,13 @@
111
57
  .chain-of-thought__step-body {
112
58
  display: flex;
113
59
  flex-direction: column;
114
- gap: 0.375rem;
60
+ gap: var(--sigvelo-spacing-1-5);
115
61
  min-width: 0;
116
62
  flex: 1;
117
63
  }
118
64
 
119
65
  .chain-of-thought__step-label {
120
- font-size: 0.8125rem;
66
+ font-size: var(--sigvelo-text-compact);
121
67
  font-weight: var(--sigvelo-font-weight-semibold);
122
68
  color: var(--sigvelo-color-text);
123
69
  }
@@ -127,7 +73,7 @@
127
73
  }
128
74
 
129
75
  .chain-of-thought__step-description {
130
- font-size: 0.75rem;
76
+ font-size: var(--sigvelo-text-xs);
131
77
  color: var(--sigvelo-color-text-muted);
132
78
  line-height: 1.5;
133
79
  }
@@ -135,14 +81,14 @@
135
81
  .chain-of-thought__step-children {
136
82
  display: flex;
137
83
  flex-direction: column;
138
- gap: 0.375rem;
139
- margin-block-start: 0.125rem;
84
+ gap: var(--sigvelo-spacing-1-5);
85
+ margin-block-start: var(--sigvelo-spacing-0-5);
140
86
  }
141
87
 
142
88
  .chain-of-thought__search-results {
143
89
  display: flex;
144
90
  flex-wrap: wrap;
145
- gap: 0.375rem;
91
+ gap: var(--sigvelo-spacing-1-5);
146
92
  margin: 0;
147
93
  padding: 0;
148
94
  list-style: none;
@@ -161,7 +107,7 @@
161
107
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
162
108
  var(--sigvelo-color-neutral-border-subtle);
163
109
  border-radius: var(--sigvelo-radius-full);
164
- font-size: 0.75rem;
110
+ font-size: var(--sigvelo-text-xs);
165
111
  color: var(--sigvelo-color-text);
166
112
  text-decoration: none;
167
113
  max-width: 18rem;
@@ -180,9 +126,7 @@
180
126
 
181
127
  .chain-of-thought__search-result:focus-visible {
182
128
  outline: none;
183
- box-shadow:
184
- 0 0 0 2px var(--sigvelo-color-canvas),
185
- 0 0 0 4px var(--sigvelo-color-focus);
129
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
186
130
  }
187
131
 
188
132
  .chain-of-thought__image {
@@ -207,7 +151,7 @@
207
151
  align-items: center;
208
152
  justify-content: center;
209
153
  overflow: hidden;
210
- padding: 0.75rem;
154
+ padding: var(--sigvelo-spacing-3);
211
155
  background-color: var(--sigvelo-color-neutral-bg-subtle);
212
156
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
213
157
  var(--sigvelo-color-neutral-border-subtle);
@@ -215,7 +159,7 @@
215
159
  }
216
160
 
217
161
  .chain-of-thought__image-caption {
218
- font-size: 0.6875rem;
162
+ font-size: var(--sigvelo-text-2xs);
219
163
  color: var(--sigvelo-color-text-muted);
220
164
  }
221
165
 
@@ -23,7 +23,7 @@
23
23
  );
24
24
  background-size: 2rem 2rem;
25
25
  color: var(--sigvelo-color-text);
26
- font-family: var(--sigvelo-font-sans);
26
+ font-family: inherit;
27
27
  }
28
28
 
29
29
  .chatgpt-sign-in::before {
@@ -63,7 +63,7 @@
63
63
 
64
64
  .chatgpt-sign-in__brand {
65
65
  display: grid;
66
- gap: 0.375rem;
66
+ gap: var(--sigvelo-spacing-1-5);
67
67
  justify-items: center;
68
68
  }
69
69
 
@@ -79,7 +79,7 @@
79
79
  .chatgpt-sign-in__brand p {
80
80
  display: inline-flex;
81
81
  align-items: center;
82
- gap: 0.375rem;
82
+ gap: var(--sigvelo-spacing-1-5);
83
83
  margin: 0;
84
84
  color: var(--sigvelo-color-text-muted);
85
85
  font-size: var(--sigvelo-text-sm);
@@ -5,6 +5,6 @@
5
5
  }
6
6
 
7
7
  .checkbox-group[data-disabled] {
8
- opacity: 0.5;
8
+ opacity: var(--sigvelo-recipe-disabled-opacity);
9
9
  pointer-events: none;
10
10
  }
@@ -23,9 +23,7 @@
23
23
 
24
24
  .checkbox:focus-visible {
25
25
  outline: none;
26
- box-shadow:
27
- 0 0 0 2px var(--sigvelo-color-canvas),
28
- 0 0 0 4px var(--sigvelo-color-focus);
26
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
29
27
  }
30
28
 
31
29
  .checkbox[data-checked] {
@@ -38,13 +36,11 @@
38
36
  }
39
37
 
40
38
  .checkbox:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]):focus-visible {
41
- box-shadow:
42
- 0 0 0 2px var(--sigvelo-color-canvas),
43
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-danger-bg), transparent 80%);
39
+ box-shadow: var(--sigvelo-recipe-invalid-focus-shadow);
44
40
  }
45
41
 
46
42
  .checkbox[data-disabled] {
47
- opacity: 0.5;
43
+ opacity: var(--sigvelo-recipe-disabled-opacity);
48
44
  cursor: not-allowed;
49
45
  }
50
46
 
@@ -3,7 +3,7 @@
3
3
  flex-direction: column;
4
4
  width: 100%;
5
5
  min-inline-size: 0;
6
- font-family: var(--sigvelo-font-sans);
6
+ font-family: inherit;
7
7
  /* Fill-based containment: no perimeter border */
8
8
  background-color: var(--sigvelo-color-neutral-bg-subtle);
9
9
  border-radius: var(--sigvelo-radius-lg);
@@ -15,7 +15,7 @@
15
15
  align-items: center;
16
16
  gap: 0.5rem;
17
17
  padding-block: 0.5rem;
18
- padding-inline: 0.75rem;
18
+ padding-inline: var(--sigvelo-spacing-3);
19
19
  background-color: transparent;
20
20
  }
21
21
 
@@ -23,14 +23,14 @@
23
23
  display: inline-flex;
24
24
  align-items: center;
25
25
  gap: 0.5rem;
26
- font-size: 0.75rem;
26
+ font-size: var(--sigvelo-text-xs);
27
27
  font-weight: var(--sigvelo-font-weight-semibold);
28
28
  color: var(--sigvelo-color-text);
29
29
  }
30
30
 
31
31
  .code-block__filename {
32
32
  font-family: var(--sigvelo-font-mono);
33
- font-size: 0.75rem;
33
+ font-size: var(--sigvelo-text-xs);
34
34
  color: var(--sigvelo-color-text-muted);
35
35
  }
36
36
 
@@ -55,10 +55,10 @@
55
55
 
56
56
  .code-block__content {
57
57
  margin: 0;
58
- padding-block: 0.75rem;
58
+ padding-block: var(--sigvelo-spacing-3);
59
59
  padding-inline: 0.875rem;
60
60
  font-family: var(--sigvelo-font-mono);
61
- font-size: 0.8125rem;
61
+ font-size: var(--sigvelo-text-compact);
62
62
  line-height: 1.55;
63
63
  color: var(--sigvelo-color-text);
64
64
  overflow: visible;
@@ -70,11 +70,11 @@
70
70
 
71
71
  .code-block__content--highlighted pre.shiki {
72
72
  margin: 0;
73
- padding-block: 0.75rem;
73
+ padding-block: var(--sigvelo-spacing-3);
74
74
  padding-inline: 0.875rem;
75
75
  background-color: transparent !important;
76
76
  font-family: var(--sigvelo-font-mono);
77
- font-size: 0.8125rem;
77
+ font-size: var(--sigvelo-text-compact);
78
78
  line-height: 1.55;
79
79
  overflow: visible;
80
80
  }
@@ -101,8 +101,8 @@
101
101
  content: counter(line);
102
102
  display: inline-block;
103
103
  width: 2rem;
104
- padding-inline-end: 0.75rem;
105
- margin-inline-end: 0.75rem;
104
+ padding-inline-end: var(--sigvelo-spacing-3);
105
+ margin-inline-end: var(--sigvelo-spacing-3);
106
106
  color: var(--sigvelo-color-text-muted);
107
107
  text-align: end;
108
108
  border-inline-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -0,0 +1,186 @@
1
+ /*
2
+ * Codex response settings compose the shared Menu primitive. These rules only
3
+ * express the component's density and content hierarchy; Menu owns popup
4
+ * surfaces, borders, shadows, motion, focus management, and collision-aware
5
+ * positioning.
6
+ */
7
+ .codex-model-selector__trigger {
8
+ position: relative;
9
+ z-index: 0;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ gap: var(--sigvelo-spacing-1);
13
+ max-inline-size: calc(100vi - var(--sigvelo-spacing-8));
14
+ min-block-size: var(--sigvelo-control-height-sm);
15
+ padding: 0;
16
+ color: var(--sigvelo-color-text);
17
+ appearance: none;
18
+ background-color: transparent;
19
+ border: 0;
20
+ border-radius: var(--sigvelo-radius-md);
21
+ cursor: pointer;
22
+ font-family: inherit;
23
+ font-size: var(--sigvelo-control-text-md);
24
+ font-weight: var(--sigvelo-font-weight-normal);
25
+ line-height: 1.25;
26
+ isolation: isolate;
27
+ }
28
+
29
+ .codex-model-selector__trigger::before {
30
+ position: absolute;
31
+ z-index: -1;
32
+ inset-block: calc(var(--sigvelo-spacing-1) * -1);
33
+ inset-inline: calc(var(--sigvelo-spacing-2) * -1);
34
+ content: "";
35
+ pointer-events: none;
36
+ background-color: var(--sigvelo-color-neutral-bg-muted);
37
+ border-radius: var(--sigvelo-radius-full);
38
+ opacity: 0;
39
+ transform: scale(0.96);
40
+ transition:
41
+ opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
42
+ transform var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
43
+ }
44
+
45
+ .codex-model-selector__trigger:is(:hover, :focus-visible, [data-popup-open])::before {
46
+ opacity: 1;
47
+ transform: scale(1);
48
+ }
49
+
50
+ .codex-model-selector__trigger:focus-visible {
51
+ outline: none;
52
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
53
+ }
54
+
55
+ .codex-model-selector__trigger:disabled {
56
+ cursor: not-allowed;
57
+ opacity: var(--sigvelo-recipe-disabled-opacity);
58
+ }
59
+
60
+ .codex-model-selector__summary {
61
+ display: flex;
62
+ flex: 0 1 auto;
63
+ justify-content: center;
64
+ gap: var(--sigvelo-spacing-1);
65
+ min-inline-size: 0;
66
+ overflow: hidden;
67
+ text-align: center;
68
+ text-overflow: ellipsis;
69
+ white-space: nowrap;
70
+ }
71
+
72
+ .codex-model-selector__summary-effort,
73
+ .codex-model-selector__trigger-icon,
74
+ .codex-model-selector__submenu-value,
75
+ .codex-model-selector__submenu-icon,
76
+ .codex-model-selector__option-description,
77
+ .codex-model-selector__reset {
78
+ color: var(--sigvelo-color-text-muted);
79
+ }
80
+
81
+ .codex-model-selector__summary-effort--ultra {
82
+ color: var(--sigvelo-color-primary-text);
83
+ }
84
+
85
+ .codex-model-selector__trigger-icon,
86
+ .codex-model-selector__submenu-icon,
87
+ .codex-model-selector__reset-icon {
88
+ flex: 0 0 auto;
89
+ }
90
+
91
+ .codex-model-selector__trigger-icon {
92
+ inline-size: 0.875rem;
93
+ block-size: 0.875rem;
94
+ }
95
+
96
+ .codex-model-selector__menu {
97
+ --sigvelo-recipe-row-padding-inline: var(--sigvelo-spacing-2);
98
+ --sigvelo-recipe-row-font-size: var(--sigvelo-control-text-md);
99
+ --sigvelo-recipe-row-radius: var(--sigvelo-radius-md);
100
+
101
+ inline-size: min(18rem, calc(100vi - var(--sigvelo-spacing-8)));
102
+ padding: var(--sigvelo-spacing-1);
103
+ }
104
+
105
+ .codex-model-selector__submenu {
106
+ --sigvelo-recipe-row-padding-inline: var(--sigvelo-spacing-2);
107
+ --sigvelo-recipe-row-font-size: var(--sigvelo-control-text-md);
108
+
109
+ inline-size: min(18rem, calc(100vi - var(--sigvelo-spacing-8)));
110
+ padding: var(--sigvelo-spacing-2);
111
+ }
112
+
113
+ .codex-model-selector__submenu--model {
114
+ inline-size: min(20rem, calc(100vi - var(--sigvelo-spacing-8)));
115
+ }
116
+
117
+ .codex-model-selector__submenu--speed {
118
+ inline-size: min(18rem, calc(100vi - var(--sigvelo-spacing-8)));
119
+ }
120
+
121
+ .codex-model-selector__submenu-title {
122
+ padding: 0;
123
+ margin-block-end: var(--sigvelo-spacing-1);
124
+ color: var(--sigvelo-color-text-muted);
125
+ font-size: var(--sigvelo-control-text-sm);
126
+ font-weight: var(--sigvelo-font-weight-normal);
127
+ line-height: 1.25;
128
+ }
129
+
130
+ .codex-model-selector__submenu-trigger::after {
131
+ content: none;
132
+ }
133
+
134
+ .codex-model-selector__submenu-value {
135
+ min-inline-size: 0;
136
+ margin-inline-start: auto;
137
+ overflow: hidden;
138
+ text-overflow: ellipsis;
139
+ white-space: nowrap;
140
+ }
141
+
142
+ .codex-model-selector__option {
143
+ align-items: flex-start;
144
+ }
145
+
146
+ .codex-model-selector__option > span:first-child {
147
+ flex: 1;
148
+ min-inline-size: 0;
149
+ }
150
+
151
+ .codex-model-selector__option-label,
152
+ .codex-model-selector__option-description {
153
+ display: block;
154
+ }
155
+
156
+ .codex-model-selector__option-description {
157
+ margin-block-start: var(--sigvelo-spacing-0-5);
158
+ font-size: var(--sigvelo-control-text-sm);
159
+ line-height: 1.25;
160
+ }
161
+
162
+ .codex-model-selector__option-indicator {
163
+ order: 2;
164
+ margin-inline-start: auto;
165
+ color: var(--sigvelo-color-text);
166
+ }
167
+
168
+ .codex-model-selector__option-indicator::before {
169
+ content: none;
170
+ }
171
+
172
+ .codex-model-selector__reset {
173
+ justify-content: space-between;
174
+ }
175
+
176
+ .codex-model-selector__reset-icon {
177
+ inline-size: var(--sigvelo-spacing-4);
178
+ block-size: var(--sigvelo-spacing-4);
179
+ margin-inline-start: auto;
180
+ }
181
+
182
+ @media (forced-colors: active) {
183
+ .codex-model-selector__summary-effort--ultra {
184
+ color: LinkText;
185
+ }
186
+ }
@@ -8,12 +8,13 @@
8
8
  display: flex;
9
9
  align-items: center;
10
10
  justify-content: space-between;
11
- gap: 0.5rem;
11
+ gap: var(--sigvelo-recipe-control-gap);
12
12
  width: 100%;
13
- padding-block: 0.75rem;
14
- padding-inline: 1rem;
15
- font-family: var(--sigvelo-font-sans);
16
- font-size: 0.875rem;
13
+ min-block-size: var(--sigvelo-recipe-control-height);
14
+ padding-block: 0;
15
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
16
+ font-family: inherit;
17
+ font-size: var(--sigvelo-recipe-control-font-size);
17
18
  font-weight: var(--sigvelo-font-weight-semibold);
18
19
  text-align: start;
19
20
  color: var(--sigvelo-color-text);
@@ -33,13 +34,11 @@
33
34
 
34
35
  .collapsible__trigger:focus-visible {
35
36
  outline: none;
36
- box-shadow:
37
- 0 0 0 2px var(--sigvelo-color-canvas),
38
- 0 0 0 4px var(--sigvelo-color-focus);
37
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
39
38
  }
40
39
 
41
40
  .collapsible__trigger[data-disabled] {
42
- opacity: 0.5;
41
+ opacity: var(--sigvelo-recipe-disabled-opacity);
43
42
  cursor: not-allowed;
44
43
  }
45
44
 
@@ -50,7 +49,7 @@
50
49
  border-left: 5px solid transparent;
51
50
  border-right: 5px solid transparent;
52
51
  border-top: 5px solid currentColor;
53
- transition: transform 200ms ease;
52
+ transition: transform var(--sigvelo-duration-medium) var(--sigvelo-ease-standard);
54
53
  }
55
54
 
56
55
  .collapsible__trigger[data-panel-open]::after {
@@ -63,25 +62,10 @@
63
62
  border-block-end-color: transparent;
64
63
  }
65
64
 
66
- /* The measured height sits on the base class, not behind [data-open]: during
67
- close the open rule stops matching before the ending style lands, height
68
- computes to `auto`, and `auto → 0` can't transition — the panel snaps shut
69
- instead of folding. (Base UI's documented panel pattern.) */
70
65
  .collapsible__panel {
71
- height: var(--collapsible-panel-height);
72
- overflow: hidden;
73
- font-family: var(--sigvelo-font-sans);
74
- font-size: 0.875rem;
66
+ font-family: inherit;
67
+ font-size: var(--sigvelo-text-sm);
75
68
  color: var(--sigvelo-color-text);
76
- transition:
77
- height 200ms ease,
78
- opacity 200ms ease;
79
- }
80
-
81
- .collapsible__panel[data-starting-style],
82
- .collapsible__panel[data-ending-style] {
83
- height: 0;
84
- opacity: 0;
85
69
  }
86
70
 
87
71
  .collapsible__panel > * {