@mcp-b/react-components 0.12.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 (229) hide show
  1. package/dist/{AgentChat-CRmsKg9B.d.ts → AgentChat-Br6tKEl8.d.ts} +29 -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-p5KmOmt1.d.ts} +302 -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-Cuk28Js_.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 +304 -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 +139 -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 +9 -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 +95 -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
@@ -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
+ }
@@ -14,8 +14,9 @@
14
14
  }
15
15
 
16
16
  body {
17
+ position: relative;
17
18
  font-family: var(--sigvelo-font-sans);
18
- font-size: 1rem;
19
+ font-size: var(--sigvelo-text-base);
19
20
  line-height: 1.5;
20
21
  color: var(--sigvelo-color-text);
21
22
  background-color: var(--sigvelo-color-canvas);
@@ -23,6 +24,23 @@ body {
23
24
  -moz-osx-font-smoothing: grayscale;
24
25
  }
25
26
 
27
+ .sigvelo-icon--spinner {
28
+ animation: sigvelo-icon-spin var(--sigvelo-duration-slow) linear infinite;
29
+ transform-origin: center;
30
+ }
31
+
32
+ @keyframes sigvelo-icon-spin {
33
+ to {
34
+ rotate: 1turn;
35
+ }
36
+ }
37
+
38
+ @media (prefers-reduced-motion: reduce) {
39
+ .sigvelo-icon--spinner {
40
+ animation: none;
41
+ }
42
+ }
43
+
26
44
  code,
27
45
  kbd,
28
46
  samp,
@@ -48,17 +66,6 @@ a {
48
66
  font-variant-numeric: tabular-nums;
49
67
  }
50
68
 
51
- @media (prefers-reduced-motion: reduce) {
52
- *,
53
- *::before,
54
- *::after {
55
- animation-duration: 0.01ms !important;
56
- animation-iteration-count: 1 !important;
57
- transition-duration: 0.01ms !important;
58
- scroll-behavior: auto !important;
59
- }
60
- }
61
-
62
69
  @media (prefers-contrast: more) {
63
70
  :root {
64
71
  --sigvelo-color-neutral-border-muted: var(--sigvelo-color-neutral-600);
@@ -66,16 +73,3 @@ a {
66
73
  --sigvelo-color-neutral-bg-subtle: var(--sigvelo-color-neutral-200);
67
74
  }
68
75
  }
69
-
70
- @media (forced-colors: active) {
71
- :focus-visible {
72
- outline: 2px solid Highlight;
73
- outline-offset: 2px;
74
- }
75
-
76
- [data-disabled],
77
- :disabled {
78
- border-color: GrayText;
79
- color: GrayText;
80
- }
81
- }
@@ -7,7 +7,7 @@
7
7
  display: flex;
8
8
  width: 100%;
9
9
  aspect-ratio: 16 / 10;
10
- font-family: var(--sigvelo-font-sans);
10
+ font-family: inherit;
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
12
12
  var(--sigvelo-color-neutral-border-subtle);
13
13
  border-radius: var(--sigvelo-radius-lg);
@@ -33,8 +33,8 @@
33
33
  }
34
34
 
35
35
  .browser-live-view__badge-dot {
36
- width: 0.375rem;
37
- height: 0.375rem;
36
+ width: var(--sigvelo-spacing-1-5);
37
+ height: var(--sigvelo-spacing-1-5);
38
38
  border-radius: 50%;
39
39
  background-color: currentColor;
40
40
  animation: browser-live-view-pulse 1.4s ease-in-out infinite;
@@ -51,13 +51,13 @@
51
51
  }
52
52
 
53
53
  .browser-live-view__ended-title {
54
- font-size: 0.8125rem;
54
+ font-size: var(--sigvelo-text-compact);
55
55
  font-weight: var(--sigvelo-font-weight-semibold);
56
56
  color: var(--sigvelo-color-text-muted);
57
57
  }
58
58
 
59
59
  .browser-live-view__ended-detail {
60
- font-size: 0.75rem;
60
+ font-size: var(--sigvelo-text-xs);
61
61
  color: var(--sigvelo-color-text-muted);
62
62
  max-width: 80%;
63
63
  overflow: hidden;
@@ -84,7 +84,7 @@
84
84
  gap: 0.5rem;
85
85
  background-color: var(--sigvelo-color-neutral-bg-subtle);
86
86
  color: var(--sigvelo-color-text-muted);
87
- font-size: 0.8125rem;
87
+ font-size: var(--sigvelo-text-compact);
88
88
  }
89
89
 
90
90
  .browser-live-view__state-spinner {
@@ -115,7 +115,7 @@
115
115
  .browser-live-view__dialog {
116
116
  display: flex;
117
117
  flex-direction: column;
118
- gap: 0.75rem;
118
+ gap: var(--sigvelo-spacing-3);
119
119
  }
120
120
 
121
121
  .browser-live-view__dialog-body {
@@ -5,7 +5,7 @@
5
5
  display: flex;
6
6
  flex-direction: column;
7
7
  width: 100%;
8
- font-family: var(--sigvelo-font-sans);
8
+ font-family: inherit;
9
9
  color: var(--sigvelo-color-text);
10
10
  background-color: var(--sigvelo-color-surface);
11
11
  border: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -41,16 +41,16 @@
41
41
  place-content: center;
42
42
  padding: 1rem;
43
43
  color: var(--sigvelo-color-text-muted);
44
- font-size: 0.8125rem;
44
+ font-size: var(--sigvelo-text-compact);
45
45
  text-align: center;
46
46
  }
47
47
 
48
48
  .browser-replay__controls {
49
49
  display: flex;
50
50
  align-items: center;
51
- gap: 0.625rem;
51
+ gap: var(--sigvelo-spacing-2-5);
52
52
  padding-block: 0.5rem;
53
- padding-inline: 0.75rem;
53
+ padding-inline: var(--sigvelo-spacing-3);
54
54
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
55
55
  var(--sigvelo-color-neutral-border-subtle);
56
56
  background-color: var(--sigvelo-color-surface);
@@ -70,7 +70,7 @@
70
70
  .browser-replay__time {
71
71
  color: var(--sigvelo-color-text-muted);
72
72
  font-family: var(--sigvelo-font-mono);
73
- font-size: 0.6875rem;
73
+ font-size: var(--sigvelo-text-2xs);
74
74
  font-variant-numeric: tabular-nums;
75
75
  white-space: nowrap;
76
76
  }
@@ -8,7 +8,7 @@
8
8
  min-block-size: 3rem;
9
9
  gap: 0;
10
10
  padding-block: 0;
11
- padding-inline: 0.375rem;
11
+ padding-inline: var(--sigvelo-spacing-1-5);
12
12
  border-block-end: 0;
13
13
  background: var(--sigvelo-color-canvas);
14
14
  }
@@ -32,7 +32,7 @@
32
32
  max-inline-size: 13rem;
33
33
  flex: 0 0 auto;
34
34
  gap: 0.5rem;
35
- padding-inline: 0.75rem;
35
+ padding-inline: var(--sigvelo-spacing-3);
36
36
  border-radius: var(--sigvelo-radius-md) var(--sigvelo-radius-md) 0 0;
37
37
  text-align: start;
38
38
  white-space: nowrap;
@@ -52,7 +52,7 @@
52
52
  border-radius: 50%;
53
53
  background: var(--sigvelo-color-primary-bg-subtle);
54
54
  color: var(--sigvelo-color-primary-text);
55
- font-size: 0.625rem;
55
+ font-size: var(--sigvelo-text-3xs);
56
56
  font-weight: var(--sigvelo-font-weight-bold);
57
57
  line-height: 1;
58
58
  }
@@ -60,7 +60,7 @@
60
60
  .browser-run-panel__tab-title {
61
61
  overflow: hidden;
62
62
  max-inline-size: 100%;
63
- font-size: 0.75rem;
63
+ font-size: var(--sigvelo-text-xs);
64
64
  line-height: 1.2;
65
65
  text-overflow: ellipsis;
66
66
  white-space: nowrap;
@@ -74,7 +74,7 @@
74
74
  .browser-run-panel .browser-run-panel__body {
75
75
  min-block-size: 0;
76
76
  display: flex;
77
- padding: 0.625rem;
77
+ padding: var(--sigvelo-spacing-2-5);
78
78
  }
79
79
 
80
80
  .browser-run-panel__live-view {
@@ -1,16 +1,25 @@
1
1
  .button {
2
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-md);
3
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-3);
4
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-md);
5
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-md);
6
+
2
7
  display: inline-flex;
3
8
  align-items: center;
4
9
  justify-content: center;
5
- gap: 0.5rem;
10
+ gap: var(--sigvelo-recipe-control-gap);
11
+ min-block-size: var(--sigvelo-recipe-button-height);
12
+ padding-block: 0;
13
+ padding-inline: var(--sigvelo-recipe-button-padding-inline);
6
14
  white-space: nowrap;
7
15
  border: none;
8
16
  cursor: pointer;
9
- font-family: var(--sigvelo-font-sans);
17
+ font-family: inherit;
18
+ font-size: var(--sigvelo-recipe-button-font-size);
10
19
  font-weight: var(--sigvelo-font-weight-semibold);
11
20
  line-height: 1.25;
12
21
  text-decoration: none;
13
- border-radius: var(--sigvelo-radius-md);
22
+ border-radius: var(--sigvelo-recipe-button-radius);
14
23
  transition:
15
24
  background-color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
16
25
  color var(--sigvelo-duration-fast) var(--sigvelo-ease-standard),
@@ -26,14 +35,12 @@
26
35
 
27
36
  .button:focus-visible {
28
37
  outline: none;
29
- box-shadow:
30
- 0 0 0 2px var(--sigvelo-color-canvas),
31
- 0 0 0 4px var(--sigvelo-color-focus);
38
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
32
39
  }
33
40
 
34
41
  .button[data-disabled] {
35
42
  pointer-events: none;
36
- opacity: 0.5;
43
+ opacity: var(--sigvelo-recipe-disabled-opacity);
37
44
  }
38
45
 
39
46
  /* Normal appearance */
@@ -123,66 +130,64 @@
123
130
  /* Sizes */
124
131
 
125
132
  .button--xs {
126
- min-height: var(--sigvelo-control-height-xs);
127
- padding-block: 0;
128
- padding-inline: 0.65rem;
129
- font-size: var(--sigvelo-control-text-xs);
130
- border-radius: var(--sigvelo-radius-sm);
133
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xs);
134
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-2);
135
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-xs);
136
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
131
137
  }
132
138
 
133
139
  .button--sm {
134
- min-height: var(--sigvelo-control-height-sm);
135
- padding-block: 0;
136
- padding-inline: 0.85rem;
137
- font-size: var(--sigvelo-control-text-sm);
138
- border-radius: var(--sigvelo-radius-sm);
140
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-sm);
141
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-2-5);
142
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-sm);
143
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
139
144
  }
140
145
 
141
146
  .button--md {
142
- min-height: var(--sigvelo-control-height-md);
143
- padding-block: 0;
144
- padding-inline: 1.25rem;
145
- font-size: var(--sigvelo-control-text-md);
147
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-md);
148
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-3);
149
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-md);
146
150
  }
147
151
 
148
152
  .button--lg {
149
- min-height: var(--sigvelo-control-height-lg);
150
- padding-block: 0;
151
- padding-inline: 1.5rem;
152
- font-size: var(--sigvelo-control-text-lg);
153
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-lg);
154
+ --sigvelo-recipe-button-padding-inline: var(--sigvelo-spacing-4);
155
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-lg);
153
156
  }
154
157
 
155
158
  .button--xl {
156
- min-height: var(--sigvelo-control-height-xl);
157
- padding-block: 0;
158
- padding-inline: 1.75rem;
159
- font-size: var(--sigvelo-control-text-xl);
159
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xl);
160
+ --sigvelo-recipe-button-padding-inline: 1.25rem;
161
+ --sigvelo-recipe-button-font-size: var(--sigvelo-control-text-xl);
160
162
  }
161
163
 
162
164
  .button--icon {
163
- min-height: var(--sigvelo-control-height-md);
164
- width: var(--sigvelo-control-height-md);
165
- padding: 0;
165
+ --sigvelo-recipe-button-padding-inline: 0;
166
+
167
+ inline-size: var(--sigvelo-recipe-button-height);
166
168
  }
167
169
 
168
170
  .button--icon-xs {
169
- min-height: var(--sigvelo-control-height-xs);
170
- width: var(--sigvelo-control-height-xs);
171
- padding: 0;
172
- border-radius: var(--sigvelo-radius-sm);
171
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-xs);
172
+ --sigvelo-recipe-button-padding-inline: 0;
173
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
174
+
175
+ inline-size: var(--sigvelo-recipe-button-height);
173
176
  }
174
177
 
175
178
  .button--icon-sm {
176
- min-height: var(--sigvelo-control-height-sm);
177
- width: var(--sigvelo-control-height-sm);
178
- padding: 0;
179
- border-radius: var(--sigvelo-radius-sm);
179
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-sm);
180
+ --sigvelo-recipe-button-padding-inline: 0;
181
+ --sigvelo-recipe-button-radius: var(--sigvelo-radius-sm);
182
+
183
+ inline-size: var(--sigvelo-recipe-button-height);
180
184
  }
181
185
 
182
186
  .button--icon-lg {
183
- min-height: var(--sigvelo-control-height-lg);
184
- width: var(--sigvelo-control-height-lg);
185
- padding: 0;
187
+ --sigvelo-recipe-button-height: var(--sigvelo-control-height-lg);
188
+ --sigvelo-recipe-button-padding-inline: 0;
189
+
190
+ inline-size: var(--sigvelo-recipe-button-height);
186
191
  }
187
192
 
188
193
  @media (forced-colors: active) {
@@ -3,7 +3,7 @@
3
3
  color: var(--sigvelo-color-text);
4
4
  /* Shadow-led elevation: no perimeter border */
5
5
  border-radius: var(--sigvelo-radius-lg);
6
- padding: 1.5rem;
6
+ padding: var(--sigvelo-spacing-6);
7
7
  container-type: inline-size;
8
8
  box-shadow: var(--sigvelo-shadow-sm);
9
9
  transition:
@@ -14,7 +14,7 @@
14
14
  .card__header,
15
15
  .card__footer {
16
16
  align-items: center;
17
- gap: 0.75rem;
17
+ gap: var(--sigvelo-recipe-row-padding-inline);
18
18
  }
19
19
 
20
20
  .card__header {
@@ -68,7 +68,5 @@
68
68
 
69
69
  .card--hover:focus-visible {
70
70
  outline: none;
71
- box-shadow:
72
- 0 0 0 2px var(--sigvelo-color-canvas),
73
- 0 0 0 4px var(--sigvelo-color-focus);
71
+ box-shadow: var(--sigvelo-recipe-focus-shadow);
74
72
  }