@mcp-b/react-components 0.41.0 → 0.43.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 (125) hide show
  1. package/dist/{AgentChat-DVr2giwD.d.ts → AgentChat-Bibfj7u1.d.ts} +1 -1
  2. package/dist/{AgentChatStartScreen-CO49yepa.d.ts → AgentChatStartScreen-Bkv7Avni.d.ts} +6 -0
  3. package/dist/McpPluginCatalog-mbGw8FTu.d.ts +92 -0
  4. package/dist/ResponsiveSidebarShell-DOXd5T-d.d.ts +111 -0
  5. package/dist/SetupChecklist-H1JRCIIe.js +77 -0
  6. package/dist/{ThinkChatActivity-DyGHj01E.d.ts → ThinkChatActivity-CgvmTXXB.d.ts} +4 -1
  7. package/dist/Workspace-F3raHdYV.d.ts +140 -0
  8. package/dist/{WorkspaceFileView-D0yFwoDr.js → WorkspaceFileView-DWMKxX_u.js} +15 -21
  9. package/dist/components/agents-sdk/AgentActivity.js +3 -2
  10. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  11. package/dist/components/agents-sdk/AgentChat.js +1 -0
  12. package/dist/components/agents-sdk/BrowserRunPanel.js +2 -1
  13. package/dist/components/agents-sdk/ManagerOffice.d.ts +39 -27
  14. package/dist/components/agents-sdk/ManagerOffice.js +80 -44
  15. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +1 -91
  16. package/dist/components/agents-sdk/McpPluginCatalog.js +3 -1
  17. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  18. package/dist/components/agents-sdk/ThinkChat.d.ts +2 -2
  19. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  20. package/dist/components/agents-sdk/ThinkChatActivity.js +18 -4
  21. package/dist/components/agents-sdk/ThinkChatToolPanels.js +6 -2
  22. package/dist/components/agents-sdk/ThinkExecutionDetail.js +2 -0
  23. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -0
  24. package/dist/components/agents-sdk/ThinkFullApp.d.ts +56 -90
  25. package/dist/components/agents-sdk/ThinkFullApp.js +74 -122
  26. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  27. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +8 -6
  28. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +71 -93
  29. package/dist/components/agents-sdk/ThinkSidepanel.d.ts +173 -0
  30. package/dist/components/agents-sdk/ThinkSidepanel.js +656 -0
  31. package/dist/components/agents-sdk/ThinkThreadPicker.d.ts +4 -5
  32. package/dist/components/agents-sdk/ThinkThreadPicker.js +6 -5
  33. package/dist/components/agents-sdk/Workspace.d.ts +1 -139
  34. package/dist/components/agents-sdk/WorkspaceBrowser.d.ts +1 -1
  35. package/dist/components/agents-sdk/WorkspaceExplorer.d.ts +1 -1
  36. package/dist/components/agents-sdk/WorkspaceExplorer.js +4 -3
  37. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  38. package/dist/components/ai-sdk/AgentChatStartScreen.d.ts +1 -1
  39. package/dist/components/ai-sdk/AgentChatStartScreen.js +5 -2
  40. package/dist/components/ai-sdk/MessageScroller.js +2 -1
  41. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -0
  42. package/dist/components/ai-sdk/PromptInput.js +20 -14
  43. package/dist/components/extension/ChatGptSignInScreen.js +1 -0
  44. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  45. package/dist/components/foundations/Toolbar.d.ts +151 -1
  46. package/dist/components/general-purpose/AppFrame.js +1 -0
  47. package/dist/components/general-purpose/AppTopBar.d.ts +96 -1
  48. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  49. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  50. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +2 -95
  51. package/dist/components/general-purpose/ResponsiveSidebarShell.js +74 -74
  52. package/dist/components/general-purpose/SetupChecklist.js +1 -76
  53. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  54. package/dist/components/general-purpose/WebPreview.d.ts +3 -0
  55. package/dist/components/general-purpose/WebPreview.js +2 -2
  56. package/dist/components/nanites/AgentToolDetail.js +1 -0
  57. package/dist/styles/accordion.css +1 -0
  58. package/dist/styles/action-guide.css +8 -7
  59. package/dist/styles/activity-header.css +13 -39
  60. package/dist/styles/activity.css +40 -55
  61. package/dist/styles/agent-attention.css +14 -14
  62. package/dist/styles/agent-chat.css +80 -58
  63. package/dist/styles/agent-connection.css +10 -4
  64. package/dist/styles/agent-tool-detail.css +4 -4
  65. package/dist/styles/alert-dialog.css +4 -4
  66. package/dist/styles/app-frame.css +1 -3
  67. package/dist/styles/app-top-bar.css +5 -9
  68. package/dist/styles/approval.css +1 -0
  69. package/dist/styles/artifact.css +6 -6
  70. package/dist/styles/attachment-preview.css +5 -4
  71. package/dist/styles/browser-replay.css +6 -6
  72. package/dist/styles/browser-run-panel.css +1 -0
  73. package/dist/styles/button.css +15 -6
  74. package/dist/styles/card.css +5 -5
  75. package/dist/styles/chatgpt-sign-in-screen.css +1 -1
  76. package/dist/styles/code-block.css +14 -13
  77. package/dist/styles/codex-model-selector.css +2 -0
  78. package/dist/styles/collapsible.css +1 -0
  79. package/dist/styles/commit.css +6 -6
  80. package/dist/styles/context.css +9 -9
  81. package/dist/styles/conversation-tab-picker.css +1 -1
  82. package/dist/styles/conversation.css +6 -8
  83. package/dist/styles/dialog.css +4 -4
  84. package/dist/styles/empty-state.css +3 -3
  85. package/dist/styles/environment-variables.css +9 -9
  86. package/dist/styles/field.css +2 -1
  87. package/dist/styles/fieldset.css +2 -2
  88. package/dist/styles/index.css +4 -3
  89. package/dist/styles/manager-office.css +23 -29
  90. package/dist/styles/mcp-plugin-catalog.css +11 -10
  91. package/dist/styles/mcp-server-picker.css +3 -3
  92. package/dist/styles/message-scroller.css +9 -11
  93. package/dist/styles/message.css +43 -20
  94. package/dist/styles/navigation-menu.css +1 -0
  95. package/dist/styles/plan.css +13 -12
  96. package/dist/styles/pricing-page.css +26 -23
  97. package/dist/styles/prompt-input.css +18 -5
  98. package/dist/styles/queue.css +1 -0
  99. package/dist/styles/reasoning.css +1 -9
  100. package/dist/styles/recipes.css +28 -1
  101. package/dist/styles/responsive-sidebar-shell.css +55 -24
  102. package/dist/styles/separator.css +5 -5
  103. package/dist/styles/sources.css +4 -4
  104. package/dist/styles/stepper.css +1 -0
  105. package/dist/styles/streamdown.css +31 -21
  106. package/dist/styles/tabs.css +1 -0
  107. package/dist/styles/task.css +5 -17
  108. package/dist/styles/terminal.css +10 -10
  109. package/dist/styles/test-results.css +6 -6
  110. package/dist/styles/think-execution-status.css +2 -2
  111. package/dist/styles/think-execution-workbench.css +12 -15
  112. package/dist/styles/think-full-app.css +26 -64
  113. package/dist/styles/think-routine-library.css +26 -55
  114. package/dist/styles/think-sidepanel.css +74 -0
  115. package/dist/styles/think-thread-picker.css +9 -9
  116. package/dist/styles/utilities.css +33 -0
  117. package/dist/styles/web-preview.css +20 -19
  118. package/dist/styles/workspace-explorer.css +18 -21
  119. package/dist/styles/workspace-mount-manager.css +2 -2
  120. package/dist/utils/favicon.d.ts +6 -1
  121. package/dist/utils/favicon.js +18 -1
  122. package/package.json +2 -2
  123. package/dist/AppTopBar-ZdgmB_Lu.d.ts +0 -97
  124. package/dist/ToggleGroup-BrQZOQn_.d.ts +0 -80
  125. package/dist/Toolbar-CBOseBQr.d.ts +0 -152
@@ -2,20 +2,18 @@
2
2
  position: relative;
3
3
  display: flex;
4
4
  flex-direction: column;
5
- width: 100%;
6
- height: 100%;
7
- min-height: 0;
8
5
  overflow: hidden;
9
6
  font-family: inherit;
10
7
  color: var(--sigvelo-color-text);
11
8
  }
12
9
 
10
+ /* Scrollport fill. Not fill-host — that recipe is on the root. */
13
11
  .message-scroller__viewport {
14
12
  --message-scroller-fade-size: min(12%, 2.5rem);
15
- width: 100%;
16
- height: 100%;
17
- min-width: 0;
18
- min-height: 0;
13
+ inline-size: 100%;
14
+ block-size: 100%;
15
+ min-inline-size: 0;
16
+ min-block-size: 0;
19
17
  overflow-y: auto;
20
18
  overflow-x: hidden;
21
19
  overscroll-behavior: contain;
@@ -34,12 +32,12 @@
34
32
  .message-scroller__content {
35
33
  display: flex;
36
34
  flex-direction: column;
37
- gap: var(--sigvelo-spacing-4);
38
- min-height: 100%;
35
+ gap: var(--sigvelo-layout-stack);
36
+ min-block-size: 100%;
39
37
  }
40
38
 
41
39
  .message-scroller__item {
42
- min-width: 0;
40
+ min-inline-size: 0;
43
41
  flex-shrink: 0;
44
42
  /* Off-screen rows skip layout/paint entirely (Codex ships the same pair on
45
43
  turn content). `auto` keeps the last rendered size once measured; 15rem is
@@ -67,7 +65,7 @@
67
65
  position: absolute;
68
66
  inset-block-start: var(--message-scroller-virtual-block-start, 0px);
69
67
  inset-inline: 0;
70
- min-width: 0;
68
+ min-inline-size: 0;
71
69
  padding-inline: inherit;
72
70
  }
73
71
 
@@ -1,6 +1,9 @@
1
1
  .message {
2
2
  display: flex;
3
3
  flex-direction: column;
4
+ /* Codex --conversation-grouped-item-gap: 4px — activity, reasoning, and the
5
+ closing answer are one turn, not three. The 16px turn gap is the
6
+ virtualizer / conversation stack, not this row. */
4
7
  gap: var(--sigvelo-spacing-1);
5
8
  inline-size: 100%;
6
9
  min-inline-size: 0;
@@ -23,10 +26,11 @@
23
26
  max-inline-size: min(var(--sigvelo-measure-prose), 85%);
24
27
  min-inline-size: 0;
25
28
  padding-block: var(--sigvelo-spacing-2);
29
+ /* Bubble inset. Not --sigvelo-layout-gutter. */
26
30
  padding-inline: var(--sigvelo-spacing-3);
27
31
  border-radius: var(--sigvelo-radius-lg);
28
- font-size: var(--sigvelo-text-sm);
29
- line-height: var(--sigvelo-leading-normal);
32
+ font-size: var(--sigvelo-text-prose);
33
+ line-height: var(--sigvelo-text-prose-leading);
30
34
  background-color: var(--sigvelo-color-neutral-bg-subtle);
31
35
  color: var(--sigvelo-color-text);
32
36
  overflow-wrap: anywhere;
@@ -38,8 +42,8 @@
38
42
  }
39
43
 
40
44
  .message__content:has(> .message__response) {
41
- font-size: var(--sigvelo-text-sm);
42
- line-height: var(--sigvelo-text-sm-leading);
45
+ font-size: var(--sigvelo-text-prose);
46
+ line-height: var(--sigvelo-text-prose-leading);
43
47
  }
44
48
 
45
49
  .message[data-from="user"] .message__content:has(> .message__response) {
@@ -48,9 +52,12 @@
48
52
 
49
53
  .message[data-from="assistant"] .message__content {
50
54
  display: block;
51
- inline-size: min(var(--sigvelo-measure-prose), 85%);
55
+ /* The transcript column owns the measure. A second 68ch / 85% cap left the
56
+ answer sitting in the start half of an extension-width pane. */
57
+ inline-size: 100%;
52
58
  max-inline-size: 100%;
53
59
  background-color: transparent;
60
+ padding-block: 0;
54
61
  padding-inline: 0;
55
62
  }
56
63
 
@@ -58,13 +65,6 @@
58
65
  font-family: var(--sigvelo-font-response);
59
66
  }
60
67
 
61
- /* Structured parts can opt into the transcript rail without teaching Message
62
- which product feature they represent. The child still owns its own measure
63
- and responsive layout. */
64
- .message[data-from="assistant"] .message__content:has(> [data-message-layout="wide"]) {
65
- inline-size: 100%;
66
- }
67
-
68
68
  .message[data-from="system"] .message__content {
69
69
  background-color: transparent;
70
70
  color: var(--sigvelo-color-text-muted);
@@ -72,7 +72,13 @@
72
72
  }
73
73
 
74
74
  .message__content > * + * {
75
- margin-block-start: var(--sigvelo-spacing-2);
75
+ margin-block-start: var(--sigvelo-spacing-1);
76
+ }
77
+
78
+ /* Tool activity is grouped with the closing answer, not a second turn. */
79
+ .message .activity {
80
+ max-inline-size: 100%;
81
+ margin-block: 0;
76
82
  }
77
83
 
78
84
  .message__content :where(pre) {
@@ -83,7 +89,7 @@
83
89
  .message__response {
84
90
  min-inline-size: 0;
85
91
  max-inline-size: 100%;
86
- line-height: calc(var(--sigvelo-text-sm-leading) * var(--sigvelo-chat-font-scale));
92
+ line-height: calc(var(--sigvelo-text-prose-leading) * var(--sigvelo-chat-font-scale));
87
93
  }
88
94
 
89
95
  .message__attachment {
@@ -91,7 +97,7 @@
91
97
  align-items: center;
92
98
  gap: var(--sigvelo-spacing-1-5);
93
99
  max-inline-size: 100%;
94
- font-size: var(--sigvelo-text-compact);
100
+ font-size: var(--sigvelo-text-meta);
95
101
  color: inherit;
96
102
  text-decoration: none;
97
103
  }
@@ -115,6 +121,7 @@
115
121
 
116
122
  .message__attachment-image {
117
123
  display: block;
124
+ /* Thumbnail cap. Not --sigvelo-layout-sidebar. */
118
125
  max-inline-size: 16rem;
119
126
  max-block-size: 16rem;
120
127
  border-radius: var(--sigvelo-radius-md);
@@ -123,7 +130,7 @@
123
130
  /* Quiet annotation under a part whose stored content was compacted. */
124
131
  .message__compacted {
125
132
  margin-block-start: var(--sigvelo-spacing-1);
126
- font-size: var(--sigvelo-text-xs);
133
+ font-size: var(--sigvelo-text-meta);
127
134
  font-style: italic;
128
135
  color: var(--sigvelo-color-text-muted);
129
136
  }
@@ -140,9 +147,10 @@
140
147
  }
141
148
 
142
149
  .message__timestamp {
143
- font-size: var(--sigvelo-text-xs);
150
+ font-size: var(--sigvelo-text-meta);
144
151
  font-variant-numeric: tabular-nums;
145
- line-height: var(--sigvelo-leading-snug);
152
+ line-height: var(--sigvelo-text-meta-leading);
153
+ color: var(--sigvelo-color-text-muted);
146
154
  white-space: nowrap;
147
155
  }
148
156
 
@@ -162,6 +170,21 @@
162
170
  min-block-size: var(--sigvelo-control-height-xs);
163
171
  }
164
172
 
173
+ /* Hover chrome must not inflate the 16px turn gap. Always overlay the user
174
+ meta — headless Chromium (CI) does not match `(hover: hover)`, so gating
175
+ the positioning there left a ~32px in-flow row in Verify. */
176
+ .message[data-from="user"] {
177
+ position: relative;
178
+ }
179
+
180
+ .message[data-from="user"] > .message__meta {
181
+ position: absolute;
182
+ inset-block-start: 100%;
183
+ inset-inline-end: 0;
184
+ z-index: 1;
185
+ min-block-size: 0;
186
+ }
187
+
165
188
  @media (hover: hover) and (pointer: fine) {
166
189
  .message__meta {
167
190
  opacity: 0;
@@ -213,7 +236,7 @@
213
236
  display: flex;
214
237
  align-items: center;
215
238
  justify-content: space-between;
216
- gap: var(--sigvelo-spacing-2);
239
+ gap: var(--sigvelo-layout-cluster);
217
240
  inline-size: 100%;
218
241
  }
219
242
 
@@ -246,7 +269,7 @@
246
269
  }
247
270
 
248
271
  .message__branch-page {
249
- font-size: var(--sigvelo-text-xs);
272
+ font-size: var(--sigvelo-text-meta);
250
273
  font-variant-numeric: tabular-nums;
251
274
  color: var(--sigvelo-color-text-muted);
252
275
  padding-inline: var(--sigvelo-spacing-1-5);
@@ -66,6 +66,7 @@
66
66
 
67
67
  .navigation-menu__content {
68
68
  display: grid;
69
+ /* Popup density, not --sigvelo-layout-cluster. */
69
70
  gap: var(--sigvelo-spacing-2);
70
71
  padding: var(--sigvelo-spacing-2);
71
72
  }
@@ -2,8 +2,8 @@
2
2
  display: grid;
3
3
  gap: var(--sigvelo-spacing-0-5);
4
4
  min-inline-size: 0;
5
- padding-block: var(--sigvelo-spacing-2-5);
6
- padding-inline: var(--sigvelo-spacing-3);
5
+ padding-block: var(--sigvelo-layout-cluster);
6
+ padding-inline: 0;
7
7
  border-block-end: var(--sigvelo-border-width) var(--sigvelo-border-style)
8
8
  var(--sigvelo-color-neutral-border-subtle);
9
9
  }
@@ -19,31 +19,31 @@
19
19
 
20
20
  .plan__title {
21
21
  color: var(--sigvelo-color-text);
22
- font-size: var(--sigvelo-text-compact);
22
+ font-size: var(--sigvelo-text-prose);
23
23
  font-weight: var(--sigvelo-font-weight-semibold);
24
24
  line-height: var(--sigvelo-leading-tight);
25
25
  }
26
26
 
27
27
  .plan__description {
28
28
  color: var(--sigvelo-color-text-muted);
29
- font-size: var(--sigvelo-text-xs);
29
+ font-size: var(--sigvelo-text-meta);
30
30
  line-height: var(--sigvelo-leading-normal);
31
31
  }
32
32
 
33
33
  .plan__content {
34
34
  display: flex;
35
35
  flex-direction: column;
36
- gap: var(--sigvelo-spacing-3);
36
+ gap: var(--sigvelo-layout-gutter);
37
37
  margin: 0;
38
- padding-block: var(--sigvelo-spacing-3);
39
- padding-inline: var(--sigvelo-spacing-3);
38
+ padding-block: var(--sigvelo-layout-gutter);
39
+ padding-inline: 0;
40
40
  list-style: none;
41
41
  }
42
42
 
43
43
  .plan__step {
44
44
  position: relative;
45
45
  display: grid;
46
- grid-template-columns: var(--sigvelo-spacing-4) minmax(0, 1fr);
46
+ grid-template-columns: var(--sigvelo-spacing-4) var(--sigvelo-layout-track-fill);
47
47
  column-gap: var(--sigvelo-spacing-2);
48
48
  row-gap: var(--sigvelo-spacing-0-5);
49
49
  min-inline-size: 0;
@@ -104,7 +104,7 @@
104
104
 
105
105
  .plan__step-title {
106
106
  color: var(--sigvelo-color-text);
107
- font-size: var(--sigvelo-text-compact);
107
+ font-size: var(--sigvelo-text-prose);
108
108
  font-weight: var(--sigvelo-font-weight-semibold);
109
109
  line-height: var(--sigvelo-leading-tight);
110
110
  transition: color var(--sigvelo-motion-duration-interaction) var(--sigvelo-motion-ease-change);
@@ -116,7 +116,7 @@
116
116
 
117
117
  .plan__step-description {
118
118
  color: var(--sigvelo-color-text-muted);
119
- font-size: var(--sigvelo-text-xs);
119
+ font-size: var(--sigvelo-text-meta);
120
120
  line-height: var(--sigvelo-leading-normal);
121
121
  }
122
122
 
@@ -132,7 +132,7 @@
132
132
  padding-block: var(--sigvelo-spacing-1);
133
133
  padding-inline: var(--sigvelo-spacing-2-5);
134
134
  color: var(--sigvelo-color-text);
135
- font-size: var(--sigvelo-text-compact);
135
+ font-size: var(--sigvelo-text-prose);
136
136
  line-height: var(--sigvelo-leading-snug);
137
137
  background-color: var(--sigvelo-color-surface-raised);
138
138
  border: var(--sigvelo-border-width) var(--sigvelo-border-style)
@@ -158,8 +158,9 @@
158
158
  }
159
159
 
160
160
  .plan-summary__content {
161
+ /* Popover reading width. Not --sigvelo-layout-sidebar. */
161
162
  min-inline-size: 16rem;
162
- max-inline-size: min(24rem, calc(100vw - var(--sigvelo-spacing-8)));
163
+ max-inline-size: min(24rem, calc(100dvi - var(--sigvelo-spacing-8)));
163
164
  padding: 0;
164
165
  font-family: inherit;
165
166
  color: var(--sigvelo-color-text);
@@ -1,10 +1,12 @@
1
1
  .pricing-page {
2
2
  box-sizing: border-box;
3
- width: 100%;
4
- max-width: 1200px;
5
- margin: 0 auto;
6
- padding: clamp(var(--sigvelo-spacing-4), 4%, var(--sigvelo-spacing-12))
7
- clamp(var(--sigvelo-spacing-3), 3%, var(--sigvelo-spacing-6));
3
+ inline-size: 100%;
4
+ /* Marketing measure: wider than --sigvelo-layout-content so three plan
5
+ cards sit in one row. Application dossiers keep the 50rem content column. */
6
+ max-inline-size: 75rem;
7
+ margin-inline: auto;
8
+ padding-block: clamp(var(--sigvelo-layout-stack), 4%, var(--sigvelo-spacing-12));
9
+ padding-inline: clamp(var(--sigvelo-layout-gutter), 3%, var(--sigvelo-spacing-6));
8
10
  container-type: inline-size;
9
11
  }
10
12
 
@@ -12,7 +14,7 @@
12
14
 
13
15
  .pricing-page__header {
14
16
  text-align: center;
15
- margin-bottom: var(--sigvelo-spacing-12);
17
+ margin-block-end: var(--sigvelo-spacing-12);
16
18
  }
17
19
 
18
20
  .pricing-page__title {
@@ -67,7 +69,7 @@
67
69
  display: grid;
68
70
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
69
71
  gap: var(--sigvelo-spacing-6);
70
- margin-bottom: var(--sigvelo-spacing-12);
72
+ margin-block-end: var(--sigvelo-spacing-12);
71
73
  }
72
74
 
73
75
  .pricing-page__plan {
@@ -85,7 +87,7 @@
85
87
  }
86
88
 
87
89
  .pricing-page__plan-header {
88
- margin-bottom: var(--sigvelo-spacing-6);
90
+ margin-block-end: var(--sigvelo-spacing-6);
89
91
  }
90
92
 
91
93
  .pricing-page__popular-label {
@@ -112,7 +114,7 @@
112
114
  }
113
115
 
114
116
  .pricing-page__plan-price {
115
- margin-bottom: var(--sigvelo-spacing-6);
117
+ margin-block-end: var(--sigvelo-spacing-6);
116
118
  }
117
119
 
118
120
  .pricing-page__price-amount {
@@ -135,11 +137,11 @@
135
137
  font-size: var(--sigvelo-text-xs);
136
138
  font-weight: var(--sigvelo-font-weight-semibold);
137
139
  color: var(--sigvelo-color-success-bg);
138
- margin-top: var(--sigvelo-spacing-1);
140
+ margin-block-start: var(--sigvelo-spacing-1);
139
141
  }
140
142
 
141
143
  .pricing-page__plan-cta {
142
- width: 100%;
144
+ inline-size: 100%;
143
145
  }
144
146
 
145
147
  .pricing-page__features-separator {
@@ -172,8 +174,8 @@
172
174
  display: flex;
173
175
  align-items: center;
174
176
  justify-content: center;
175
- width: 1.25rem;
176
- height: 1.25rem;
177
+ inline-size: 1.25rem;
178
+ block-size: 1.25rem;
177
179
  flex-shrink: 0;
178
180
  color: var(--sigvelo-color-text-muted);
179
181
  }
@@ -189,13 +191,13 @@
189
191
  .pricing-page__feature-limit {
190
192
  font-size: var(--sigvelo-text-xs);
191
193
  color: var(--sigvelo-color-text-muted);
192
- margin-left: var(--sigvelo-spacing-1);
194
+ margin-inline-start: var(--sigvelo-spacing-1);
193
195
  }
194
196
 
195
197
  /* Calculator */
196
198
 
197
199
  .pricing-page__calculator {
198
- max-width: 600px;
200
+ max-inline-size: var(--sigvelo-layout-content);
199
201
  margin: 0 auto var(--sigvelo-spacing-12);
200
202
  padding: var(--sigvelo-spacing-8);
201
203
  }
@@ -216,7 +218,7 @@
216
218
  }
217
219
 
218
220
  .pricing-page__calculator-slider {
219
- margin-bottom: var(--sigvelo-spacing-2);
221
+ margin-block-end: var(--sigvelo-spacing-2);
220
222
  }
221
223
 
222
224
  .pricing-page__calculator-separator {
@@ -227,7 +229,7 @@
227
229
  display: flex;
228
230
  justify-content: space-between;
229
231
  align-items: center;
230
- margin-bottom: var(--sigvelo-spacing-3);
232
+ margin-block-end: var(--sigvelo-spacing-3);
231
233
  }
232
234
 
233
235
  .pricing-page__calculator-value {
@@ -241,7 +243,7 @@
241
243
  .pricing-page__calculator-range {
242
244
  display: flex;
243
245
  justify-content: space-between;
244
- margin-top: var(--sigvelo-spacing-2);
246
+ margin-block-start: var(--sigvelo-spacing-2);
245
247
  font-family: inherit;
246
248
  font-size: var(--sigvelo-text-xs);
247
249
  color: var(--sigvelo-color-text-muted);
@@ -251,7 +253,7 @@
251
253
  display: flex;
252
254
  justify-content: space-between;
253
255
  align-items: baseline;
254
- margin-bottom: var(--sigvelo-spacing-6);
256
+ margin-block-end: var(--sigvelo-spacing-6);
255
257
  }
256
258
 
257
259
  .pricing-page__calculator-result-label {
@@ -310,7 +312,7 @@
310
312
  /* FAQ */
311
313
 
312
314
  .pricing-page__faq {
313
- max-width: 700px;
315
+ max-inline-size: var(--sigvelo-layout-content);
314
316
  margin: 0 auto;
315
317
  }
316
318
 
@@ -332,7 +334,7 @@
332
334
 
333
335
  .pricing-page__confirm-summary {
334
336
  padding: var(--sigvelo-spacing-4);
335
- margin-bottom: var(--sigvelo-spacing-4);
337
+ margin-block-end: var(--sigvelo-spacing-4);
336
338
  background-color: var(--sigvelo-color-neutral-bg-subtle);
337
339
  border-radius: var(--sigvelo-radius-md);
338
340
  }
@@ -359,7 +361,8 @@
359
361
 
360
362
  /* Responsive */
361
363
 
362
- @container (max-width: 768px) {
364
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
365
+ @container (inline-size <= 48rem) {
363
366
  .pricing-page__title {
364
367
  font-size: var(--sigvelo-text-3xl);
365
368
  }
@@ -369,7 +372,7 @@
369
372
  }
370
373
 
371
374
  .pricing-page__plans {
372
- grid-template-columns: 1fr;
375
+ grid-template-columns: var(--sigvelo-layout-track-fill);
373
376
  }
374
377
 
375
378
  .pricing-page__price-amount {
@@ -14,7 +14,9 @@
14
14
  not a border: a 0.5px ring stays crisp at any zoom and does not add a pixel
15
15
  of layout. Forced colors restores a real border at the end of this file. */
16
16
  border: 0;
17
- border-radius: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
17
+ --prompt-input-radius: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
18
+
19
+ border-radius: var(--prompt-input-radius);
18
20
  box-shadow: var(--sigvelo-elevation-floating);
19
21
  font-family: inherit;
20
22
  color: var(--sigvelo-color-text);
@@ -95,8 +97,12 @@
95
97
  }
96
98
 
97
99
  /* A supporting tray shares one material and overlap contract whether it sits
98
- above the composer for queued work or below it for first-turn utilities. */
100
+ above the composer for queued work or below it for first-turn utilities.
101
+ Overlap the card radius, not the hairline: the composer edge is a shadow,
102
+ so a 1px tuck leaves the tray reading as a second pill. */
99
103
  :where(.prompt-input__tray) {
104
+ --prompt-input-tray-overlap: calc(var(--sigvelo-radius-xl) + var(--sigvelo-spacing-2));
105
+
100
106
  display: flex;
101
107
  align-items: center;
102
108
  min-block-size: var(--sigvelo-control-height-xl);
@@ -109,12 +115,16 @@
109
115
  }
110
116
 
111
117
  .prompt-input__tray[data-side="top"] {
112
- margin-block-end: calc(-1 * var(--sigvelo-border-width));
118
+ z-index: 0;
119
+ margin-block-end: calc(-1 * var(--prompt-input-tray-overlap));
120
+ padding-block-end: calc(var(--prompt-input-tray-overlap) + var(--sigvelo-spacing-1));
113
121
  border-radius: var(--sigvelo-radius-2xl) var(--sigvelo-radius-2xl) 0 0;
114
122
  }
115
123
 
116
124
  .prompt-input__tray[data-side="bottom"] {
117
- margin-block-start: calc(-1 * var(--sigvelo-border-width));
125
+ z-index: 0;
126
+ margin-block-start: calc(-1 * var(--prompt-input-tray-overlap));
127
+ padding-block-start: calc(var(--prompt-input-tray-overlap) + var(--sigvelo-spacing-1));
118
128
  border-radius: 0 0 var(--sigvelo-radius-2xl) var(--sigvelo-radius-2xl);
119
129
  }
120
130
 
@@ -370,6 +380,7 @@
370
380
  white-space: nowrap;
371
381
  }
372
382
 
383
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
373
384
  @container prompt-input (inline-size <= 36rem) {
374
385
  .prompt-input__footer {
375
386
  gap: var(--sigvelo-spacing-1);
@@ -416,6 +427,7 @@
416
427
  }
417
428
  }
418
429
 
430
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
419
431
  @container prompt-input (inline-size <= 22rem) {
420
432
  .prompt-input__context-trigger {
421
433
  inline-size: var(--sigvelo-control-height-xs);
@@ -548,7 +560,7 @@
548
560
 
549
561
  .prompt-input__command-copy {
550
562
  display: grid;
551
- grid-template-columns: auto minmax(0, 1fr) auto;
563
+ grid-template-columns: auto var(--sigvelo-layout-track-fill) auto;
552
564
  align-items: baseline;
553
565
  column-gap: var(--sigvelo-spacing-2);
554
566
  min-inline-size: 0;
@@ -610,6 +622,7 @@
610
622
  opacity: 1;
611
623
  }
612
624
 
625
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
613
626
  @container prompt-input (inline-size < 28rem) {
614
627
  .prompt-input__reference-label {
615
628
  max-inline-size: 12rem;
@@ -69,6 +69,7 @@
69
69
  }
70
70
 
71
71
  .queue__list-scroll {
72
+ /* Scrollbar inset, not --sigvelo-layout-stack. */
72
73
  padding-inline-end: var(--sigvelo-spacing-4);
73
74
  }
74
75
 
@@ -5,13 +5,5 @@
5
5
  }
6
6
 
7
7
  .reasoning__text {
8
- padding-inline-start: var(--sigvelo-spacing-3);
9
- border-inline-start: var(--sigvelo-border-style) calc(var(--sigvelo-border-width) * 2)
10
- var(--sigvelo-color-neutral-border-subtle);
11
- }
12
-
13
- @media (forced-colors: active) {
14
- .reasoning__text {
15
- border-inline-start: 2px solid CanvasText;
16
- }
8
+ padding-inline-start: 0;
17
9
  }
@@ -48,6 +48,10 @@
48
48
  --sigvelo-recipe-group-label-font-size: var(--sigvelo-text-xs);
49
49
  --sigvelo-recipe-group-label-font-weight: var(--sigvelo-font-weight-semibold);
50
50
  --sigvelo-recipe-group-label-line-height: inherit;
51
+ --sigvelo-recipe-layout-gutter: var(--sigvelo-layout-gutter);
52
+ --sigvelo-recipe-layout-gap: var(--sigvelo-layout-gap);
53
+ --sigvelo-recipe-layout-stack: var(--sigvelo-layout-stack);
54
+ --sigvelo-recipe-layout-cluster: var(--sigvelo-layout-cluster);
51
55
  }
52
56
 
53
57
  :where([data-slot="select-trigger"][data-size="sm"], .toggle--sm) {
@@ -136,9 +140,32 @@
136
140
  scrollbar-gutter: stable;
137
141
  }
138
142
 
143
+ /* Host-filling application surfaces. Display mode stays with the component;
144
+ this only stops a shell from inventing its own 100% / min-size contract. */
145
+ :where([data-recipe~="fill-host"]) {
146
+ min-inline-size: 0;
147
+ min-block-size: 0;
148
+ inline-size: 100%;
149
+ block-size: 100%;
150
+ }
151
+
152
+ /* Capped page column. Padding and measure come from the layout tokens so a
153
+ dossier, a run list, and a start screen sit on the same edges. */
154
+ :where([data-recipe~="page"]) {
155
+ box-sizing: border-box;
156
+ min-inline-size: 0;
157
+ inline-size: 100%;
158
+ max-inline-size: var(--sigvelo-layout-content);
159
+ margin-inline: auto;
160
+ padding-block: var(--sigvelo-recipe-layout-stack);
161
+ padding-inline: var(--sigvelo-recipe-layout-gutter);
162
+ }
163
+
139
164
  :where([data-recipe~="framed-panel"]) {
140
165
  display: flex;
141
166
  flex-direction: column;
167
+ min-inline-size: 0;
168
+ min-block-size: 0;
142
169
  inline-size: 100%;
143
170
  overflow: hidden;
144
171
  font-family: inherit;
@@ -403,7 +430,7 @@
403
430
  [data-slot="autocomplete-item"]
404
431
  )[data-highlighted] {
405
432
  color: var(--sigvelo-color-neutral-text-on-subtle);
406
- background-color: var(--sigvelo-color-neutral-bg-subtle);
433
+ background-color: var(--sigvelo-color-neutral-bg-selected);
407
434
  }
408
435
 
409
436
  :where(