@mcp-b/react-components 0.12.0 → 0.14.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 (229) hide show
  1. package/dist/{AgentChat-CRmsKg9B.d.ts → AgentChat-Cgb1xuT7.d.ts} +36 -5
  2. package/dist/{Button-Ct5I6aTu.d.ts → Button-FX_hpqxm.d.ts} +8 -11
  3. package/dist/{CodeBlock-XNQOupQ3.js → CodeBlock-BUFXG8HW.js} +22 -12
  4. package/dist/{CodeBlock-CxQXv3C4.d.ts → CodeBlock-DUh9WOGo.d.ts} +13 -7
  5. package/dist/{Combobox-D9anamNr.d.ts → Combobox-B9Fcd6q-.d.ts} +4 -14
  6. package/dist/{FileTree-wMyZhhHO.js → FileTree-mpEIcfzA.js} +1 -1
  7. package/dist/{Menu-BLhnNnRK.d.ts → Menu-Bgu-ufb5.d.ts} +26 -65
  8. package/dist/{ModelSelector-BB-xB-Es.js → ModelSelector-DVgVBdvw.js} +7 -7
  9. package/dist/{PromptInput-IyM6ZETj.d.ts → PromptInput-ClNqBiIw.d.ts} +313 -46
  10. package/dist/Select-Dl_vF_Bt.d.ts +213 -0
  11. package/dist/{Tabs-D9EAq09D.d.ts → Tabs-3Zc4tb9D.d.ts} +9 -6
  12. package/dist/{ThinkChat-B3wYahor.js → ThinkChat-7DQ2CogF.js} +34 -2
  13. package/dist/{ThinkChatActivity-F4KFPcJA.d.ts → ThinkChatActivity-m9orbdeI.d.ts} +1 -1
  14. package/dist/{attachment-preview-ChtC3HiU.js → attachment-preview-DIs50Q0h.js} +3 -3
  15. package/dist/components/Accordion.d.ts +17 -6
  16. package/dist/components/Accordion.js +23 -36
  17. package/dist/components/Activity.d.ts +5 -5
  18. package/dist/components/Activity.js +9 -9
  19. package/dist/components/AgentChat.d.ts +1 -1
  20. package/dist/components/AgentChat.js +309 -116
  21. package/dist/components/AgentConnection.js +2 -2
  22. package/dist/components/AlertDialog.d.ts +40 -32
  23. package/dist/components/AlertDialog.js +46 -39
  24. package/dist/components/Artifact.d.ts +1 -1
  25. package/dist/components/Artifact.js +5 -5
  26. package/dist/components/Autocomplete.js +10 -2
  27. package/dist/components/Avatar.d.ts +2 -2
  28. package/dist/components/Avatar.js +3 -3
  29. package/dist/components/Badge.d.ts +11 -14
  30. package/dist/components/Badge.js +10 -18
  31. package/dist/components/BrowserLiveView.js +26 -36
  32. package/dist/components/BrowserReplay.js +4 -4
  33. package/dist/components/BrowserRunPanel.js +1 -1
  34. package/dist/components/Button.d.ts +2 -2
  35. package/dist/components/Button.js +7 -30
  36. package/dist/components/ChainOfThought.d.ts +5 -5
  37. package/dist/components/ChainOfThought.js +8 -5
  38. package/dist/components/ChatGptSignInScreen.js +3 -3
  39. package/dist/components/Checkbox.d.ts +10 -2
  40. package/dist/components/Checkbox.js +13 -6
  41. package/dist/components/CheckboxGroup.d.ts +6 -6
  42. package/dist/components/CheckboxGroup.js +6 -6
  43. package/dist/components/CodeBlock.d.ts +1 -1
  44. package/dist/components/CodeBlock.js +1 -1
  45. package/dist/components/CodexModelSelector.d.ts +23 -28
  46. package/dist/components/CodexModelSelector.js +116 -94
  47. package/dist/components/Collapsible.d.ts +2 -4
  48. package/dist/components/Collapsible.js +9 -7
  49. package/dist/components/Combobox.d.ts +2 -2
  50. package/dist/components/Combobox.js +20 -22
  51. package/dist/components/Commit.d.ts +5 -5
  52. package/dist/components/Commit.js +6 -6
  53. package/dist/components/Context.js +5 -1
  54. package/dist/components/ContextMenu.d.ts +20 -72
  55. package/dist/components/ContextMenu.js +46 -56
  56. package/dist/components/Conversation.d.ts +1 -1
  57. package/dist/components/Conversation.js +1 -1
  58. package/dist/components/Dialog.d.ts +38 -30
  59. package/dist/components/Dialog.js +46 -34
  60. package/dist/components/EnvironmentVariables.d.ts +1 -1
  61. package/dist/components/EnvironmentVariables.js +5 -5
  62. package/dist/components/Field.d.ts +3 -3
  63. package/dist/components/Field.js +7 -8
  64. package/dist/components/Fieldset.d.ts +2 -2
  65. package/dist/components/Fieldset.js +2 -2
  66. package/dist/components/FileTree.js +1 -1
  67. package/dist/components/Label.d.ts +1 -1
  68. package/dist/components/Label.js +1 -1
  69. package/dist/components/McpServerPicker.js +21 -19
  70. package/dist/components/Menu.d.ts +2 -2
  71. package/dist/components/Menu.js +39 -49
  72. package/dist/components/Menubar.d.ts +16 -52
  73. package/dist/components/Menubar.js +44 -56
  74. package/dist/components/Message.d.ts +1 -1
  75. package/dist/components/Message.js +6 -6
  76. package/dist/components/MessageScroller.d.ts +1 -1
  77. package/dist/components/MessageScroller.js +1 -1
  78. package/dist/components/Meter.js +5 -0
  79. package/dist/components/ModelSelector.d.ts +1 -1
  80. package/dist/components/ModelSelector.js +1 -1
  81. package/dist/components/NavigationMenu.d.ts +3 -14
  82. package/dist/components/NavigationMenu.js +22 -38
  83. package/dist/components/NumberField.js +6 -0
  84. package/dist/components/Popover.d.ts +21 -44
  85. package/dist/components/Popover.js +33 -23
  86. package/dist/components/PreviewCard.d.ts +20 -18
  87. package/dist/components/PreviewCard.js +30 -20
  88. package/dist/components/PricingPage.js +30 -29
  89. package/dist/components/Progress.d.ts +7 -3
  90. package/dist/components/Progress.js +9 -4
  91. package/dist/components/PromptInput.d.ts +2 -2
  92. package/dist/components/PromptInput.js +306 -54
  93. package/dist/components/Queue.d.ts +7 -7
  94. package/dist/components/Queue.js +6 -6
  95. package/dist/components/RadioGroup.d.ts +10 -9
  96. package/dist/components/RadioGroup.js +8 -9
  97. package/dist/components/Reasoning.d.ts +4 -4
  98. package/dist/components/Reasoning.js +10 -6
  99. package/dist/components/ScrollArea.d.ts +2 -9
  100. package/dist/components/ScrollArea.js +5 -23
  101. package/dist/components/Select.d.ts +2 -2
  102. package/dist/components/Select.js +100 -134
  103. package/dist/components/Slider.d.ts +10 -7
  104. package/dist/components/Slider.js +12 -11
  105. package/dist/components/Sources.d.ts +4 -4
  106. package/dist/components/Sources.js +8 -5
  107. package/dist/components/Stepper.js +1 -1
  108. package/dist/components/Switch.d.ts +6 -3
  109. package/dist/components/Switch.js +7 -4
  110. package/dist/components/Tabs.d.ts +2 -2
  111. package/dist/components/Tabs.js +9 -4
  112. package/dist/components/Task.d.ts +4 -4
  113. package/dist/components/Task.js +10 -6
  114. package/dist/components/Terminal.d.ts +2 -2
  115. package/dist/components/Terminal.js +5 -5
  116. package/dist/components/TestResults.d.ts +4 -4
  117. package/dist/components/TestResults.js +5 -5
  118. package/dist/components/ThinkChat.d.ts +14 -2
  119. package/dist/components/ThinkChat.js +1 -1
  120. package/dist/components/ThinkChatActivity.d.ts +1 -1
  121. package/dist/components/ThinkChatActivity.js +1 -1
  122. package/dist/components/ThinkChatToolPanels.js +8 -8
  123. package/dist/components/ThinkExecutionWorkbench.js +28 -28
  124. package/dist/components/ThinkFullApp.js +8 -8
  125. package/dist/components/ThinkThreadPicker.js +1 -1
  126. package/dist/components/ThinkThreadShell.js +5 -5
  127. package/dist/components/Toast.js +7 -0
  128. package/dist/components/ToggleGroup.d.ts +6 -2
  129. package/dist/components/ToggleGroup.js +6 -2
  130. package/dist/components/Toolbar.js +6 -0
  131. package/dist/components/Tooltip.d.ts +36 -27
  132. package/dist/components/Tooltip.js +45 -29
  133. package/dist/components/WebPreview.d.ts +1 -1
  134. package/dist/components/WebPreview.js +3 -3
  135. package/dist/components/WorkspaceExplorer.d.ts +6 -8
  136. package/dist/components/WorkspaceExplorer.js +6 -6
  137. package/dist/components/icons.d.ts +2 -2
  138. package/dist/components/icons.js +2 -2
  139. package/dist/{copy-button-C6JSKtFE.js → copy-button-DUMLYdsk.js} +7 -6
  140. package/dist/{copy-button-BKXqGiNm.d.ts → copy-button-DtPMgN7e.d.ts} +3 -2
  141. package/dist/icons-Ba9THQKz.js +64 -0
  142. package/dist/icons-CUCz_Sft.d.ts +210 -0
  143. package/dist/styles/accessibility.css +14 -0
  144. package/dist/styles/accordion.css +21 -61
  145. package/dist/styles/activity.css +23 -58
  146. package/dist/styles/agent-chat.css +45 -4
  147. package/dist/styles/agent-connection.css +8 -10
  148. package/dist/styles/alert-dialog.css +20 -26
  149. package/dist/styles/artifact.css +6 -6
  150. package/dist/styles/attachment-preview.css +1 -1
  151. package/dist/styles/autocomplete.css +5 -170
  152. package/dist/styles/avatar.css +8 -8
  153. package/dist/styles/badge.css +8 -10
  154. package/dist/styles/base-ui-motion.css +176 -0
  155. package/dist/styles/base.css +19 -25
  156. package/dist/styles/browser-live-view.css +7 -7
  157. package/dist/styles/browser-replay.css +5 -5
  158. package/dist/styles/browser-run-panel.css +5 -5
  159. package/dist/styles/button.css +48 -43
  160. package/dist/styles/card.css +3 -5
  161. package/dist/styles/chain-of-thought.css +14 -70
  162. package/dist/styles/chatgpt-sign-in-screen.css +3 -3
  163. package/dist/styles/checkbox-group.css +1 -1
  164. package/dist/styles/checkbox.css +3 -7
  165. package/dist/styles/code-block.css +10 -10
  166. package/dist/styles/codex-model-selector.css +33 -44
  167. package/dist/styles/collapsible.css +11 -27
  168. package/dist/styles/combobox.css +3 -149
  169. package/dist/styles/commit.css +19 -35
  170. package/dist/styles/context-menu.css +1 -77
  171. package/dist/styles/context.css +12 -12
  172. package/dist/styles/conversation.css +7 -7
  173. package/dist/styles/dialog.css +34 -55
  174. package/dist/styles/environment-variables.css +10 -10
  175. package/dist/styles/field.css +16 -58
  176. package/dist/styles/fieldset.css +2 -2
  177. package/dist/styles/file-tree.css +7 -9
  178. package/dist/styles/index.css +8 -1
  179. package/dist/styles/input.css +1 -51
  180. package/dist/styles/label.css +2 -2
  181. package/dist/styles/marker.css +2 -4
  182. package/dist/styles/mcp-server-picker.css +5 -5
  183. package/dist/styles/menu.css +6 -153
  184. package/dist/styles/menubar.css +6 -105
  185. package/dist/styles/message-scroller.css +1 -1
  186. package/dist/styles/message.css +86 -8
  187. package/dist/styles/meter.css +4 -20
  188. package/dist/styles/model-selector.css +13 -13
  189. package/dist/styles/navigation-menu.css +14 -54
  190. package/dist/styles/number-field.css +8 -23
  191. package/dist/styles/popover.css +13 -68
  192. package/dist/styles/preview-card.css +5 -46
  193. package/dist/styles/pricing-page.css +43 -43
  194. package/dist/styles/progress.css +7 -16
  195. package/dist/styles/prompt-input.css +185 -44
  196. package/dist/styles/queue.css +12 -28
  197. package/dist/styles/radio.css +4 -8
  198. package/dist/styles/reasoning.css +3 -62
  199. package/dist/styles/recipes.css +475 -0
  200. package/dist/styles/select.css +7 -103
  201. package/dist/styles/shell.css +3 -3
  202. package/dist/styles/slider.css +5 -7
  203. package/dist/styles/sources.css +9 -66
  204. package/dist/styles/stepper.css +16 -14
  205. package/dist/styles/streamdown.css +9 -9
  206. package/dist/styles/switch.css +4 -7
  207. package/dist/styles/tabs.css +7 -8
  208. package/dist/styles/task.css +13 -42
  209. package/dist/styles/terminal.css +7 -7
  210. package/dist/styles/test-results.css +21 -37
  211. package/dist/styles/think-execution-workbench.css +23 -23
  212. package/dist/styles/think-full-app.css +12 -20
  213. package/dist/styles/think-resize-handle.css +2 -2
  214. package/dist/styles/think-thread-picker.css +19 -10
  215. package/dist/styles/think-thread-shell.css +7 -7
  216. package/dist/styles/toast.css +14 -25
  217. package/dist/styles/toggle-group.css +16 -14
  218. package/dist/styles/toggle.css +14 -15
  219. package/dist/styles/toolbar.css +13 -25
  220. package/dist/styles/tooltip.css +6 -16
  221. package/dist/styles/web-preview.css +15 -15
  222. package/dist/styles/workspace-explorer.css +14 -13
  223. package/dist/utils/codex-model-catalog.d.ts +142 -0
  224. package/dist/utils/codex-model-catalog.js +112 -0
  225. package/dist/utils/structured-code.d.ts +1 -1
  226. package/package.json +8 -2
  227. package/dist/Select-CRsKCJ9x.d.ts +0 -200
  228. package/dist/icons-CbjtbIJK.d.ts +0 -51
  229. package/dist/icons-D2Q5n5C1.js +0 -291
@@ -1,6 +1,6 @@
1
1
  .context {
2
2
  display: inline-block;
3
- font-family: var(--sigvelo-font-sans);
3
+ font-family: inherit;
4
4
  }
5
5
 
6
6
  /* Bare ring icon — undo the popover__trigger pill chrome. */
@@ -21,7 +21,7 @@
21
21
  .context__content {
22
22
  width: 20rem;
23
23
  padding: 0;
24
- font-family: var(--sigvelo-font-sans);
24
+ font-family: inherit;
25
25
  color: var(--sigvelo-color-text);
26
26
  }
27
27
 
@@ -29,7 +29,7 @@
29
29
  display: flex;
30
30
  align-items: center;
31
31
  gap: 0.875rem;
32
- padding-block: 0.75rem;
32
+ padding-block: var(--sigvelo-spacing-3);
33
33
  padding-inline: 0.875rem;
34
34
  }
35
35
 
@@ -49,7 +49,7 @@
49
49
  display: flex;
50
50
  align-items: center;
51
51
  justify-content: center;
52
- font-size: 0.625rem;
52
+ font-size: var(--sigvelo-text-3xs);
53
53
  font-weight: var(--sigvelo-font-weight-bold);
54
54
  color: var(--sigvelo-color-text);
55
55
  font-variant-numeric: tabular-nums;
@@ -58,26 +58,26 @@
58
58
  .context__header-text {
59
59
  display: flex;
60
60
  flex-direction: column;
61
- gap: 0.125rem;
61
+ gap: var(--sigvelo-spacing-0-5);
62
62
  min-width: 0;
63
63
  flex: 1;
64
64
  }
65
65
 
66
66
  .context__header-title {
67
- font-size: 0.8125rem;
67
+ font-size: var(--sigvelo-text-compact);
68
68
  font-weight: var(--sigvelo-font-weight-bold);
69
69
  color: var(--sigvelo-color-text);
70
70
  }
71
71
 
72
72
  .context__header-meta {
73
- font-size: 0.75rem;
73
+ font-size: var(--sigvelo-text-xs);
74
74
  color: var(--sigvelo-color-text-muted);
75
75
  font-variant-numeric: tabular-nums;
76
76
  }
77
77
 
78
78
  .context__header-model {
79
79
  font-family: var(--sigvelo-font-mono);
80
- font-size: 0.6875rem;
80
+ font-size: var(--sigvelo-text-2xs);
81
81
  color: var(--sigvelo-color-text-muted);
82
82
  }
83
83
 
@@ -92,14 +92,14 @@
92
92
  margin: 0;
93
93
  padding: 0.5rem 0.875rem;
94
94
  list-style: none;
95
- gap: 0.375rem;
95
+ gap: var(--sigvelo-spacing-1-5);
96
96
  }
97
97
 
98
98
  .context__row {
99
99
  display: grid;
100
100
  grid-template-columns: 1fr auto;
101
- gap: 0.75rem;
102
- font-size: 0.75rem;
101
+ gap: var(--sigvelo-spacing-3);
102
+ font-size: var(--sigvelo-text-xs);
103
103
  align-items: baseline;
104
104
  }
105
105
 
@@ -123,7 +123,7 @@
123
123
  align-items: center;
124
124
  padding-block: 0.5rem;
125
125
  padding-inline: 0.875rem;
126
- font-size: 0.75rem;
126
+ font-size: var(--sigvelo-text-xs);
127
127
  font-weight: var(--sigvelo-font-weight-semibold);
128
128
  }
129
129
 
@@ -2,7 +2,7 @@
2
2
  position: relative;
3
3
  width: 100%;
4
4
  height: 100%;
5
- font-family: var(--sigvelo-font-sans);
5
+ font-family: inherit;
6
6
  color: var(--sigvelo-color-text);
7
7
  }
8
8
 
@@ -63,22 +63,22 @@
63
63
  }
64
64
 
65
65
  .conversation__empty-title {
66
- font-size: 1rem;
66
+ font-size: var(--sigvelo-text-base);
67
67
  font-weight: var(--sigvelo-font-weight-semibold);
68
68
  color: var(--sigvelo-color-text);
69
69
  }
70
70
 
71
71
  .conversation__empty-description {
72
72
  max-width: 32ch;
73
- font-size: 0.875rem;
73
+ font-size: var(--sigvelo-text-sm);
74
74
  line-height: 1.5;
75
75
  color: var(--sigvelo-color-text-muted);
76
76
  }
77
77
 
78
78
  .conversation__scroll-button {
79
79
  position: absolute;
80
- inset-inline-end: 0.75rem;
81
- inset-block-end: 0.75rem;
80
+ inset-inline-end: var(--sigvelo-spacing-3);
81
+ inset-block-end: var(--sigvelo-spacing-3);
82
82
  z-index: 1;
83
83
  box-shadow: var(--sigvelo-shadow-sm);
84
84
  background-color: var(--sigvelo-color-surface);
@@ -86,8 +86,8 @@
86
86
 
87
87
  .conversation__download-button {
88
88
  position: absolute;
89
- inset-inline-end: 0.75rem;
90
- inset-block-start: 0.75rem;
89
+ inset-inline-end: var(--sigvelo-spacing-3);
90
+ inset-block-start: var(--sigvelo-spacing-3);
91
91
  z-index: 1;
92
92
  box-shadow: var(--sigvelo-shadow-xs);
93
93
  background-color: var(--sigvelo-color-surface);
@@ -1,8 +1,7 @@
1
1
  .dialog__backdrop {
2
- position: fixed;
3
- inset: 0;
4
- background-color: rgb(0 0 0 / 0.5);
2
+ background-color: var(--sigvelo-color-backdrop);
5
3
  z-index: 50;
4
+ transition: opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard);
6
5
  }
7
6
 
8
7
  .dialog__backdrop[data-starting-style],
@@ -11,24 +10,21 @@
11
10
  }
12
11
 
13
12
  .dialog__popup {
13
+ --sigvelo-recipe-surface-padding: var(--sigvelo-spacing-6);
14
+
14
15
  position: fixed;
15
- top: 50%;
16
- left: 50%;
16
+ inset-block-start: 50%;
17
+ inset-inline-start: 50%;
17
18
  transform: translate(-50%, -50%);
18
19
  z-index: 50;
19
- width: calc(100% - 2rem);
20
- max-width: 32rem;
21
- max-height: calc(100vh - 4rem);
20
+ inline-size: calc(100% - 2rem);
21
+ max-inline-size: 32rem;
22
+ max-block-size: calc(100dvb - 4rem);
22
23
  overflow-y: auto;
23
24
  overscroll-behavior: contain;
24
- background-color: var(--sigvelo-color-canvas);
25
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
26
- var(--sigvelo-color-neutral-border-muted);
27
- border-radius: var(--sigvelo-radius-md);
28
- padding: 1.5rem;
29
- box-shadow:
30
- 0 10px 15px -3px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%),
31
- 0 4px 6px -4px color-mix(in oklab, var(--sigvelo-color-text), transparent 90%);
25
+ transition:
26
+ opacity var(--sigvelo-duration-medium) var(--sigvelo-ease-standard),
27
+ transform var(--sigvelo-duration-medium) var(--sigvelo-ease-emphasized);
32
28
  }
33
29
 
34
30
  .dialog__popup[data-starting-style],
@@ -38,24 +34,30 @@
38
34
  }
39
35
 
40
36
  .dialog__popup--sm {
41
- max-width: 24rem;
37
+ max-inline-size: 24rem;
42
38
  }
43
39
 
44
40
  .dialog__popup--lg {
45
- max-width: 48rem;
41
+ max-inline-size: 48rem;
46
42
  }
47
43
 
48
44
  .dialog__popup--fullscreen {
49
- width: 100%;
50
- height: 100%;
51
- max-width: 100%;
52
- max-height: 100%;
45
+ inline-size: 100%;
46
+ block-size: 100%;
47
+ max-inline-size: 100%;
48
+ max-block-size: 100%;
53
49
  border-radius: 0;
54
50
  }
55
51
 
52
+ @media (prefers-reduced-motion: reduce) {
53
+ .dialog__popup[data-starting-style],
54
+ .dialog__popup[data-ending-style] {
55
+ transform: translate(-50%, -50%);
56
+ }
57
+ }
58
+
56
59
  .dialog__title {
57
- font-family: var(--sigvelo-font-sans);
58
- font-size: 1.125rem;
60
+ font-size: var(--sigvelo-text-lg);
59
61
  font-weight: var(--sigvelo-font-weight-bold);
60
62
  line-height: 1.25;
61
63
  color: var(--sigvelo-color-text);
@@ -63,8 +65,7 @@
63
65
  }
64
66
 
65
67
  .dialog__description {
66
- font-family: var(--sigvelo-font-sans);
67
- font-size: 0.875rem;
68
+ font-size: var(--sigvelo-text-sm);
68
69
  line-height: 1.5;
69
70
  color: var(--sigvelo-color-text-muted);
70
71
  margin-block-end: 1rem;
@@ -80,7 +81,7 @@
80
81
  display: flex;
81
82
  flex-wrap: wrap;
82
83
  justify-content: flex-end;
83
- gap: 0.75rem;
84
+ gap: var(--sigvelo-spacing-3);
84
85
  margin-block-start: 1.5rem;
85
86
  }
86
87
 
@@ -88,10 +89,11 @@
88
89
  display: inline-flex;
89
90
  align-items: center;
90
91
  justify-content: center;
91
- padding-block: 0.5rem;
92
- padding-inline: 1rem;
93
- font-family: var(--sigvelo-font-sans);
94
- font-size: 0.875rem;
92
+ min-block-size: var(--sigvelo-recipe-control-height);
93
+ padding-block: 0;
94
+ padding-inline: var(--sigvelo-recipe-control-padding-inline);
95
+ font-family: inherit;
96
+ font-size: var(--sigvelo-recipe-control-font-size);
95
97
  font-weight: var(--sigvelo-font-weight-semibold);
96
98
  color: var(--sigvelo-color-text);
97
99
  background-color: var(--sigvelo-color-neutral-bg-subtle);
@@ -107,28 +109,5 @@
107
109
 
108
110
  .dialog__close:focus-visible {
109
111
  outline: none;
110
- box-shadow:
111
- 0 0 0 2px var(--sigvelo-color-canvas),
112
- 0 0 0 4px var(--sigvelo-color-focus);
113
- }
114
-
115
- .dialog__close--icon {
116
- position: absolute;
117
- inset-block-start: 1rem;
118
- inset-inline-end: 1rem;
119
- inline-size: 2rem;
120
- block-size: 2rem;
121
- padding: 0;
122
- }
123
-
124
- .dialog__close-label {
125
- position: absolute;
126
- inline-size: 1px;
127
- block-size: 1px;
128
- padding: 0;
129
- margin: -1px;
130
- overflow: hidden;
131
- clip-path: inset(50%);
132
- white-space: nowrap;
133
- border: 0;
112
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
134
113
  }
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  flex-direction: column;
4
4
  width: 100%;
5
- font-family: var(--sigvelo-font-sans);
5
+ font-family: inherit;
6
6
  color: var(--sigvelo-color-text);
7
7
  background-color: var(--sigvelo-color-surface);
8
8
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -15,8 +15,8 @@
15
15
  display: flex;
16
16
  align-items: center;
17
17
  justify-content: space-between;
18
- gap: 0.75rem;
19
- padding-block: 0.625rem;
18
+ gap: var(--sigvelo-spacing-3);
19
+ padding-block: var(--sigvelo-spacing-2-5);
20
20
  padding-inline: 0.875rem;
21
21
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
22
22
  var(--sigvelo-color-neutral-border-subtle);
@@ -25,7 +25,7 @@
25
25
  .environment-variables__title {
26
26
  margin: 0;
27
27
  font-family: inherit;
28
- font-size: 0.875rem;
28
+ font-size: var(--sigvelo-text-sm);
29
29
  font-weight: var(--sigvelo-font-weight-bold);
30
30
  color: var(--sigvelo-color-text);
31
31
  }
@@ -35,7 +35,7 @@
35
35
  align-items: center;
36
36
  gap: 0.5rem;
37
37
  cursor: pointer;
38
- font-size: 0.75rem;
38
+ font-size: var(--sigvelo-text-xs);
39
39
  color: var(--sigvelo-color-text-muted);
40
40
  }
41
41
 
@@ -54,9 +54,9 @@
54
54
  }
55
55
 
56
56
  .environment-variables__group-label {
57
- padding-block: 0.375rem;
57
+ padding-block: var(--sigvelo-spacing-1-5);
58
58
  padding-inline: 0.875rem;
59
- font-size: 0.6875rem;
59
+ font-size: var(--sigvelo-text-2xs);
60
60
  font-weight: var(--sigvelo-font-weight-bold);
61
61
  text-transform: uppercase;
62
62
  letter-spacing: 0.05em;
@@ -69,7 +69,7 @@
69
69
  .environment-variables__row {
70
70
  display: flex;
71
71
  align-items: center;
72
- gap: 0.625rem;
72
+ gap: var(--sigvelo-spacing-2-5);
73
73
  padding-block: 0.5rem;
74
74
  padding-inline: 0.875rem;
75
75
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -82,7 +82,7 @@
82
82
 
83
83
  .environment-variables__name {
84
84
  font-family: var(--sigvelo-font-mono);
85
- font-size: 0.75rem;
85
+ font-size: var(--sigvelo-text-xs);
86
86
  font-weight: var(--sigvelo-font-weight-semibold);
87
87
  color: var(--sigvelo-color-text);
88
88
  flex-shrink: 0;
@@ -95,7 +95,7 @@
95
95
  padding-block: 0.3125rem;
96
96
  padding-inline: 0.5rem;
97
97
  font-family: var(--sigvelo-font-mono);
98
- font-size: 0.75rem;
98
+ font-size: var(--sigvelo-text-xs);
99
99
  color: var(--sigvelo-color-text-muted);
100
100
  background-color: var(--sigvelo-color-neutral-bg-subtle);
101
101
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -2,7 +2,7 @@
2
2
  display: flex;
3
3
  width: 100%;
4
4
  flex-direction: column;
5
- gap: 0.75rem;
5
+ gap: var(--sigvelo-spacing-3);
6
6
  }
7
7
 
8
8
  .field:is([data-invalid="true"], [data-invalid=""]) .field__label,
@@ -54,8 +54,8 @@
54
54
  display: flex;
55
55
  width: fit-content;
56
56
  gap: 0.5rem;
57
- font-family: var(--sigvelo-font-sans);
58
- font-size: 0.875rem;
57
+ font-family: inherit;
58
+ font-size: var(--sigvelo-text-sm);
59
59
  font-weight: var(--sigvelo-font-weight-semibold);
60
60
  line-height: 1;
61
61
  color: var(--sigvelo-color-text);
@@ -81,68 +81,26 @@
81
81
  .field[data-disabled] .field__label,
82
82
  .field[data-disabled] .field-title,
83
83
  .field__label[data-disabled] {
84
- opacity: 0.5;
84
+ opacity: var(--sigvelo-recipe-disabled-opacity);
85
85
  cursor: not-allowed;
86
86
  }
87
87
 
88
88
  .field__control {
89
89
  display: flex;
90
90
  width: 100%;
91
- height: 2.5rem;
92
- padding-block: 0.5rem;
93
- padding-inline: 0.75rem;
94
- font-family: var(--sigvelo-font-sans);
95
- font-size: 0.875rem;
96
- line-height: 1.25;
97
- color: var(--sigvelo-color-text);
98
- background-color: var(--sigvelo-color-canvas);
99
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
100
- var(--sigvelo-color-neutral-border-muted);
101
- border-radius: var(--sigvelo-radius-md);
102
- transition:
103
- border-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
104
- box-shadow var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
105
- }
106
-
107
- .field__control::placeholder {
108
- color: var(--sigvelo-color-text-muted);
109
- }
110
-
111
- .field__control:focus-visible {
112
- outline: none;
113
- border-color: var(--sigvelo-color-focus);
114
- box-shadow:
115
- 0 0 0 2px var(--sigvelo-color-canvas),
116
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-focus), transparent 80%);
117
- }
118
-
119
- .field__control:disabled {
120
- opacity: 0.5;
121
- cursor: not-allowed;
122
- }
123
-
124
- .field__control:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]) {
125
- border-color: var(--sigvelo-color-danger-bg);
126
- }
127
-
128
- .field__control:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]):focus-visible {
129
- border-color: var(--sigvelo-color-danger-bg);
130
- box-shadow:
131
- 0 0 0 2px var(--sigvelo-color-canvas),
132
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-danger-bg), transparent 80%);
133
91
  }
134
92
 
135
93
  .field__description {
136
- font-family: var(--sigvelo-font-sans);
137
- font-size: 0.75rem;
94
+ font-family: inherit;
95
+ font-size: var(--sigvelo-text-xs);
138
96
  line-height: 1.4;
139
97
  color: var(--sigvelo-color-text-muted);
140
98
  margin: 0;
141
99
  }
142
100
 
143
101
  .field__error {
144
- font-family: var(--sigvelo-font-sans);
145
- font-size: 0.75rem;
102
+ font-family: inherit;
103
+ font-size: var(--sigvelo-text-xs);
146
104
  line-height: 1.4;
147
105
  color: var(--sigvelo-color-danger-bg);
148
106
  margin: 0;
@@ -169,7 +127,7 @@
169
127
  }
170
128
 
171
129
  .field-set:has(> [data-slot="checkbox-group"], > [data-slot="radio-group"]) {
172
- gap: 0.75rem;
130
+ gap: var(--sigvelo-spacing-3);
173
131
  }
174
132
 
175
133
  .field-group {
@@ -183,12 +141,12 @@
183
141
  }
184
142
 
185
143
  .field-group:is([data-slot="checkbox-group"], [data-slot="radio-group"]) {
186
- gap: 0.75rem;
144
+ gap: var(--sigvelo-spacing-3);
187
145
  }
188
146
 
189
147
  .field-content {
190
148
  flex: 1;
191
- gap: 0.375rem;
149
+ gap: var(--sigvelo-spacing-1-5);
192
150
  line-height: 1.375;
193
151
  }
194
152
 
@@ -200,12 +158,12 @@
200
158
  }
201
159
 
202
160
  .field-legend {
203
- margin-block-end: 0.75rem;
204
- font-size: 1rem;
161
+ margin-block-end: var(--sigvelo-spacing-3);
162
+ font-size: var(--sigvelo-text-base);
205
163
  }
206
164
 
207
165
  .field-legend[data-variant="label"] {
208
- font-size: 0.875rem;
166
+ font-size: var(--sigvelo-text-sm);
209
167
  }
210
168
 
211
169
  .field-title {
@@ -213,7 +171,7 @@
213
171
  width: fit-content;
214
172
  align-items: center;
215
173
  gap: 0.5rem;
216
- font-size: 0.875rem;
174
+ font-size: var(--sigvelo-text-sm);
217
175
  }
218
176
 
219
177
  .field-separator {
@@ -223,7 +181,7 @@
223
181
  justify-content: center;
224
182
  min-height: 1.25rem;
225
183
  color: var(--sigvelo-color-text-muted);
226
- font-size: 0.875rem;
184
+ font-size: var(--sigvelo-text-sm);
227
185
  }
228
186
 
229
187
  .field-separator__line {
@@ -12,8 +12,8 @@
12
12
  .fieldset__legend {
13
13
  padding: 0 0.5rem;
14
14
  margin: 0 -0.5rem;
15
- font-family: var(--sigvelo-font-sans);
16
- font-size: 0.875rem;
15
+ font-family: inherit;
16
+ font-size: var(--sigvelo-text-sm);
17
17
  font-weight: var(--sigvelo-font-weight-bold);
18
18
  color: var(--sigvelo-color-text);
19
19
  }
@@ -1,12 +1,12 @@
1
1
  .file-tree {
2
2
  width: 100%;
3
- font-family: var(--sigvelo-font-sans);
3
+ font-family: inherit;
4
4
  color: var(--sigvelo-color-text);
5
5
  background-color: var(--sigvelo-color-surface);
6
6
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
7
7
  var(--sigvelo-color-neutral-border-subtle);
8
8
  border-radius: var(--sigvelo-radius-md);
9
- padding-block: 0.375rem;
9
+ padding-block: var(--sigvelo-spacing-1-5);
10
10
  overflow: auto;
11
11
  }
12
12
 
@@ -27,7 +27,7 @@
27
27
  .file-tree__node {
28
28
  display: flex;
29
29
  align-items: center;
30
- gap: 0.375rem;
30
+ gap: var(--sigvelo-spacing-1-5);
31
31
  width: 100%;
32
32
  padding-block: 0.25rem;
33
33
  padding-inline-end: 0.5rem;
@@ -35,11 +35,11 @@
35
35
  border: none;
36
36
  color: var(--sigvelo-color-text);
37
37
  font-family: inherit;
38
- font-size: 0.8125rem;
38
+ font-size: var(--sigvelo-text-compact);
39
39
  text-align: start;
40
40
  cursor: pointer;
41
41
  border-radius: var(--sigvelo-radius-sm);
42
- transition: background-color 120ms ease;
42
+ transition: background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
43
43
  }
44
44
 
45
45
  .file-tree__node:hover:not([data-disabled]) {
@@ -50,9 +50,7 @@
50
50
  .file-tree__node:focus-visible {
51
51
  outline: none;
52
52
  background-color: var(--sigvelo-color-neutral-bg-muted);
53
- box-shadow:
54
- 0 0 0 2px var(--sigvelo-color-canvas),
55
- 0 0 0 4px var(--sigvelo-color-focus);
53
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
56
54
  }
57
55
 
58
56
  .file-tree__node[data-selected] {
@@ -99,7 +97,7 @@
99
97
  .file-tree__actions {
100
98
  display: inline-flex;
101
99
  align-items: center;
102
- gap: 0.125rem;
100
+ gap: var(--sigvelo-spacing-0-5);
103
101
  flex-shrink: 0;
104
102
  opacity: 0;
105
103
  transition: opacity var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
@@ -1,10 +1,14 @@
1
- @layer reset, tokens, base, components, utilities, overrides;
1
+ @layer reset, tokens, base, recipes, components, utilities, overrides;
2
2
 
3
3
  /* Design Tokens */
4
4
  @import "./tokens.css" layer(tokens);
5
5
 
6
6
  /* Base Styles */
7
7
  @import "./base.css" layer(base);
8
+ @import "./base-ui-motion.css" layer(base);
9
+
10
+ /* Shared visual contracts */
11
+ @import "./recipes.css" layer(recipes);
8
12
 
9
13
  /* Components */
10
14
  @import "./accordion.css" layer(components);
@@ -95,3 +99,6 @@
95
99
 
96
100
  /* Page Components */
97
101
  @import "./pricing-page.css" layer(components);
102
+
103
+ /* Accessibility system overrides */
104
+ @import "./accessibility.css" layer(overrides);
@@ -1,27 +1,6 @@
1
1
  .input {
2
2
  display: flex;
3
3
  width: 100%;
4
- min-width: 0;
5
- height: var(--sigvelo-control-height-md);
6
- padding-block: 0.5rem;
7
- padding-inline: 0.75rem;
8
- font-family: var(--sigvelo-font-sans);
9
- font-size: var(--sigvelo-control-text-md);
10
- line-height: 1.25;
11
- color: var(--sigvelo-color-text);
12
- background-color: var(--sigvelo-color-canvas);
13
- border: var(--sigvelo-border-style) var(--sigvelo-border-width)
14
- var(--sigvelo-color-neutral-border-muted);
15
- border-radius: var(--sigvelo-radius-md);
16
- transition:
17
- color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
18
- border-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
19
- box-shadow var(--sigvelo-duration-fast) var(--sigvelo-ease-standard);
20
- }
21
-
22
- /* :where keeps specificity below the invalid rules so danger borders win on hover */
23
- .input:where(:hover:not(:disabled)) {
24
- border-color: var(--sigvelo-color-focus);
25
4
  }
26
5
 
27
6
  .input::selection {
@@ -29,15 +8,11 @@
29
8
  background-color: var(--sigvelo-color-selection-bg);
30
9
  }
31
10
 
32
- .input::placeholder {
33
- color: var(--sigvelo-color-text-muted);
34
- }
35
-
36
11
  .input::file-selector-button {
37
12
  display: inline-flex;
38
13
  align-items: center;
39
14
  height: 1.75rem;
40
- margin-inline-end: 0.75rem;
15
+ margin-inline-end: var(--sigvelo-spacing-3);
41
16
  padding: 0;
42
17
  font: inherit;
43
18
  font-size: var(--sigvelo-text-sm);
@@ -46,28 +21,3 @@
46
21
  background-color: transparent;
47
22
  border: 0;
48
23
  }
49
-
50
- .input:focus-visible {
51
- outline: none;
52
- border-color: var(--sigvelo-color-focus);
53
- box-shadow:
54
- 0 0 0 2px var(--sigvelo-color-canvas),
55
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-focus), transparent 80%);
56
- }
57
-
58
- .input:disabled {
59
- pointer-events: none;
60
- opacity: 0.5;
61
- cursor: not-allowed;
62
- }
63
-
64
- .input:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]) {
65
- border-color: var(--sigvelo-color-danger-bg);
66
- }
67
-
68
- .input:is([aria-invalid="true"], [data-invalid="true"], [data-invalid=""]):focus-visible {
69
- border-color: var(--sigvelo-color-danger-bg);
70
- box-shadow:
71
- 0 0 0 2px var(--sigvelo-color-canvas),
72
- 0 0 0 4px color-mix(in oklab, var(--sigvelo-color-danger-bg), transparent 80%);
73
- }
@@ -2,8 +2,8 @@
2
2
  display: flex;
3
3
  align-items: center;
4
4
  gap: 0.5rem;
5
- font-family: var(--sigvelo-font-sans);
6
- font-size: 0.875rem;
5
+ font-family: inherit;
6
+ font-size: var(--sigvelo-text-sm);
7
7
  font-weight: var(--sigvelo-font-weight-semibold);
8
8
  line-height: 1;
9
9
  color: var(--sigvelo-color-text);