@mcp-b/react-components 0.41.0 → 0.42.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 (114) hide show
  1. package/dist/{ThinkChatActivity-DyGHj01E.d.ts → ThinkChatActivity-CsDql-ER.d.ts} +3 -0
  2. package/dist/{WorkspaceFileView-D0yFwoDr.js → WorkspaceFileView-DwdXiKku.js} +15 -20
  3. package/dist/components/agents-sdk/AgentActivity.js +3 -2
  4. package/dist/components/agents-sdk/AgentChat.js +1 -0
  5. package/dist/components/agents-sdk/BrowserRunPanel.js +2 -1
  6. package/dist/components/agents-sdk/ManagerOffice.d.ts +39 -27
  7. package/dist/components/agents-sdk/ManagerOffice.js +80 -44
  8. package/dist/components/agents-sdk/McpPluginCatalog.js +4 -2
  9. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  10. package/dist/components/agents-sdk/SubagentRunSelector.js +1 -1
  11. package/dist/components/agents-sdk/ThinkChat.d.ts +1 -1
  12. package/dist/components/agents-sdk/ThinkChat.js +1 -1
  13. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  14. package/dist/components/agents-sdk/ThinkChatActivity.js +19 -5
  15. package/dist/components/agents-sdk/ThinkChatToolPanels.js +6 -2
  16. package/dist/components/agents-sdk/ThinkExecutionDetail.js +3 -1
  17. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +1 -0
  18. package/dist/components/agents-sdk/ThinkFullApp.d.ts +40 -88
  19. package/dist/components/agents-sdk/ThinkFullApp.js +75 -124
  20. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.d.ts +1 -1
  21. package/dist/components/agents-sdk/ThinkFullAppViewSwitch.js +1 -1
  22. package/dist/components/agents-sdk/ThinkRoutineDetail.js +1 -1
  23. package/dist/components/agents-sdk/ThinkRoutineLibrary.d.ts +7 -6
  24. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +57 -65
  25. package/dist/components/agents-sdk/ThinkThreadPicker.js +2 -1
  26. package/dist/components/agents-sdk/WorkspaceExplorer.js +2 -1
  27. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  28. package/dist/components/ai-sdk/MessageScroller.js +2 -1
  29. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -0
  30. package/dist/components/ai-sdk/PromptInput.js +20 -14
  31. package/dist/components/extension/ChatGptSignInScreen.js +1 -0
  32. package/dist/components/foundations/ToggleGroup.d.ts +79 -1
  33. package/dist/components/foundations/ToggleGroup.js +1 -1
  34. package/dist/components/foundations/Toolbar.d.ts +151 -1
  35. package/dist/components/general-purpose/AppFrame.js +1 -0
  36. package/dist/components/general-purpose/AppTopBar.d.ts +96 -1
  37. package/dist/components/general-purpose/PricingBillingToggle.js +1 -1
  38. package/dist/components/general-purpose/PricingUsageCalculator.js +1 -1
  39. package/dist/components/general-purpose/ResizableSidePanel.d.ts +8 -0
  40. package/dist/components/general-purpose/ResizableSidePanel.js +3 -2
  41. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +59 -49
  42. package/dist/components/general-purpose/ResponsiveSidebarShell.js +74 -74
  43. package/dist/components/general-purpose/WebPreview.d.ts +3 -0
  44. package/dist/components/general-purpose/WebPreview.js +2 -2
  45. package/dist/components/nanites/AgentToolDetail.js +4 -3
  46. package/dist/styles/accordion.css +1 -0
  47. package/dist/styles/action-guide.css +8 -7
  48. package/dist/styles/activity-header.css +13 -39
  49. package/dist/styles/activity.css +40 -55
  50. package/dist/styles/agent-attention.css +14 -14
  51. package/dist/styles/agent-chat.css +62 -45
  52. package/dist/styles/agent-connection.css +10 -4
  53. package/dist/styles/agent-tool-detail.css +4 -4
  54. package/dist/styles/alert-dialog.css +4 -4
  55. package/dist/styles/app-frame.css +1 -3
  56. package/dist/styles/app-top-bar.css +5 -9
  57. package/dist/styles/approval.css +1 -0
  58. package/dist/styles/artifact.css +6 -6
  59. package/dist/styles/attachment-preview.css +5 -4
  60. package/dist/styles/browser-replay.css +6 -6
  61. package/dist/styles/browser-run-panel.css +1 -0
  62. package/dist/styles/button.css +15 -6
  63. package/dist/styles/card.css +5 -5
  64. package/dist/styles/chatgpt-sign-in-screen.css +1 -1
  65. package/dist/styles/code-block.css +14 -13
  66. package/dist/styles/codex-model-selector.css +2 -0
  67. package/dist/styles/collapsible.css +1 -0
  68. package/dist/styles/commit.css +6 -6
  69. package/dist/styles/context.css +9 -9
  70. package/dist/styles/conversation-tab-picker.css +1 -1
  71. package/dist/styles/conversation.css +6 -8
  72. package/dist/styles/dialog.css +4 -4
  73. package/dist/styles/empty-state.css +3 -3
  74. package/dist/styles/environment-variables.css +9 -9
  75. package/dist/styles/field.css +2 -1
  76. package/dist/styles/fieldset.css +2 -2
  77. package/dist/styles/index.css +3 -3
  78. package/dist/styles/manager-office.css +23 -29
  79. package/dist/styles/mcp-plugin-catalog.css +11 -10
  80. package/dist/styles/mcp-server-picker.css +3 -3
  81. package/dist/styles/message-scroller.css +9 -11
  82. package/dist/styles/message.css +43 -20
  83. package/dist/styles/navigation-menu.css +1 -0
  84. package/dist/styles/plan.css +13 -12
  85. package/dist/styles/pricing-page.css +26 -23
  86. package/dist/styles/prompt-input.css +18 -5
  87. package/dist/styles/queue.css +1 -0
  88. package/dist/styles/reasoning.css +1 -9
  89. package/dist/styles/recipes.css +28 -1
  90. package/dist/styles/responsive-sidebar-shell.css +44 -16
  91. package/dist/styles/separator.css +5 -5
  92. package/dist/styles/sources.css +4 -4
  93. package/dist/styles/stepper.css +1 -0
  94. package/dist/styles/streamdown.css +31 -21
  95. package/dist/styles/tabs.css +1 -0
  96. package/dist/styles/task.css +5 -17
  97. package/dist/styles/terminal.css +10 -10
  98. package/dist/styles/test-results.css +6 -6
  99. package/dist/styles/think-execution-status.css +2 -2
  100. package/dist/styles/think-execution-workbench.css +12 -15
  101. package/dist/styles/think-full-app.css +26 -64
  102. package/dist/styles/think-routine-library.css +26 -55
  103. package/dist/styles/think-thread-picker.css +9 -9
  104. package/dist/styles/utilities.css +33 -0
  105. package/dist/styles/web-preview.css +20 -19
  106. package/dist/styles/workspace-explorer.css +18 -21
  107. package/dist/styles/workspace-mount-manager.css +2 -2
  108. package/dist/utils/favicon.d.ts +6 -1
  109. package/dist/utils/favicon.js +18 -1
  110. package/package.json +2 -2
  111. package/dist/AppTopBar-ZdgmB_Lu.d.ts +0 -97
  112. package/dist/ToggleGroup-BrQZOQn_.d.ts +0 -80
  113. package/dist/Toolbar-CBOseBQr.d.ts +0 -152
  114. package/dist/{ThinkChat-BES_3Mb-.js → ThinkChat-DkA4Wr71.js} +1 -1
@@ -22,6 +22,39 @@
22
22
  list-style: none;
23
23
  }
24
24
 
25
+ /* 1D compositions hosts assemble themselves. Components that already own
26
+ anatomy use the matching data-recipe; these are for app markup. */
27
+ .sigvelo-stack {
28
+ display: flex;
29
+ flex-direction: column;
30
+ gap: var(--sigvelo-layout-stack);
31
+ min-inline-size: 0;
32
+ }
33
+
34
+ .sigvelo-cluster {
35
+ display: flex;
36
+ flex-wrap: wrap;
37
+ align-items: center;
38
+ gap: var(--sigvelo-layout-cluster);
39
+ min-inline-size: 0;
40
+ }
41
+
42
+ .sigvelo-fill {
43
+ min-inline-size: 0;
44
+ min-block-size: 0;
45
+ block-size: 100%;
46
+ }
47
+
48
+ .sigvelo-page {
49
+ box-sizing: border-box;
50
+ min-inline-size: 0;
51
+ inline-size: 100%;
52
+ max-inline-size: var(--sigvelo-layout-content);
53
+ margin-inline: auto;
54
+ padding-block: var(--sigvelo-layout-stack);
55
+ padding-inline: var(--sigvelo-layout-gutter);
56
+ }
57
+
25
58
  .sigvelo-truncate {
26
59
  overflow: hidden;
27
60
  text-overflow: ellipsis;
@@ -5,10 +5,10 @@
5
5
  position: relative;
6
6
  display: flex;
7
7
  align-items: center;
8
- min-block-size: calc(var(--sigvelo-density-compact-control-height) + var(--sigvelo-spacing-2));
9
- gap: var(--sigvelo-spacing-1-5);
8
+ min-block-size: var(--sigvelo-layout-chrome);
9
+ gap: var(--sigvelo-layout-cluster);
10
10
  padding-block: var(--sigvelo-spacing-1);
11
- padding-inline: var(--sigvelo-spacing-2);
11
+ padding-inline: var(--sigvelo-layout-gutter);
12
12
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
13
13
  var(--sigvelo-color-neutral-border-subtle);
14
14
  box-shadow: var(--sigvelo-elevation-bar);
@@ -20,19 +20,20 @@
20
20
 
21
21
  .web-preview__url-form {
22
22
  flex: 1;
23
- min-width: 0;
23
+ min-inline-size: 0;
24
24
  }
25
25
 
26
26
  .web-preview__url {
27
- width: 100%;
27
+ inline-size: 100%;
28
28
  font-family: var(--sigvelo-font-mono);
29
29
  font-size: var(--sigvelo-text-xs);
30
30
  }
31
31
 
32
32
  .web-preview__body {
33
33
  flex: 1;
34
- min-height: 16rem;
35
- width: 100%;
34
+ /* Preview canvas floor. Not --sigvelo-layout-sidebar. */
35
+ min-block-size: 16rem;
36
+ inline-size: 100%;
36
37
  border: none;
37
38
  }
38
39
 
@@ -55,15 +56,15 @@
55
56
  flex-direction: column;
56
57
  border-block-start: var(--sigvelo-border-style) var(--sigvelo-border-width)
57
58
  var(--sigvelo-color-neutral-border-subtle);
58
- max-height: 12rem;
59
+ max-block-size: 12rem;
59
60
  }
60
61
 
61
62
  .web-preview__console-header {
62
63
  display: flex;
63
64
  align-items: center;
64
65
  justify-content: space-between;
65
- padding-block: var(--sigvelo-spacing-1-5);
66
- padding-inline: var(--sigvelo-spacing-3);
66
+ padding-block: var(--sigvelo-layout-cluster);
67
+ padding-inline: var(--sigvelo-layout-gutter);
67
68
  border: 0;
68
69
  font-size: var(--sigvelo-text-2xs);
69
70
  font-weight: var(--sigvelo-font-weight-bold);
@@ -93,18 +94,18 @@
93
94
 
94
95
  .web-preview__console-scroll {
95
96
  flex: 1;
96
- min-height: 0;
97
+ min-block-size: 0;
97
98
  }
98
99
 
99
100
  .web-preview__console-viewport {
100
- width: 100%;
101
- height: 100%;
101
+ inline-size: 100%;
102
+ block-size: 100%;
102
103
  overflow: auto;
103
104
  }
104
105
 
105
106
  .web-preview__console-empty {
106
- padding-block: var(--sigvelo-spacing-3);
107
- padding-inline: var(--sigvelo-spacing-3);
107
+ padding-block: var(--sigvelo-layout-gutter);
108
+ padding-inline: var(--sigvelo-layout-gutter);
108
109
  font-size: var(--sigvelo-text-xs);
109
110
  color: var(--sigvelo-color-text-muted);
110
111
  text-align: center;
@@ -112,11 +113,11 @@
112
113
 
113
114
  .web-preview__console-item {
114
115
  display: grid;
115
- grid-template-columns: auto 1fr auto;
116
- gap: var(--sigvelo-spacing-2);
116
+ grid-template-columns: auto var(--sigvelo-layout-track-fill) auto;
117
+ gap: var(--sigvelo-layout-cluster);
117
118
  align-items: baseline;
118
- padding-block: var(--sigvelo-spacing-1-5);
119
- padding-inline: var(--sigvelo-spacing-3);
119
+ padding-block: var(--sigvelo-layout-cluster);
120
+ padding-inline: var(--sigvelo-layout-gutter);
120
121
  font-family: var(--sigvelo-font-mono);
121
122
  font-size: var(--sigvelo-text-xs);
122
123
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
@@ -74,7 +74,7 @@
74
74
  flex: 0 0 auto;
75
75
  min-block-size: var(--sigvelo-density-compact-control-height);
76
76
  padding-block: var(--sigvelo-spacing-0-5);
77
- padding-inline: var(--sigvelo-spacing-1-5);
77
+ padding-inline: var(--sigvelo-layout-gutter);
78
78
  border-block-end: var(--sigvelo-border-style) var(--sigvelo-border-width)
79
79
  var(--sigvelo-color-neutral-border-subtle);
80
80
  }
@@ -175,9 +175,9 @@
175
175
  flex: 1;
176
176
  align-items: center;
177
177
  justify-content: center;
178
- padding-block: var(--sigvelo-spacing-6);
179
- padding-inline: var(--sigvelo-spacing-3);
180
- font-size: var(--sigvelo-text-compact);
178
+ padding-block: var(--sigvelo-layout-stack);
179
+ padding-inline: var(--sigvelo-layout-gutter);
180
+ font-size: var(--sigvelo-text-prose);
181
181
  color: var(--sigvelo-color-text-muted);
182
182
  text-align: center;
183
183
  }
@@ -201,8 +201,8 @@
201
201
  margin-inline: auto;
202
202
  padding-block: var(--sigvelo-spacing-8) var(--sigvelo-spacing-12);
203
203
  padding-inline: var(--sigvelo-spacing-6);
204
- font-size: var(--sigvelo-text-fluid-base);
205
- line-height: var(--sigvelo-leading-relaxed);
204
+ font-size: var(--sigvelo-text-prose);
205
+ line-height: var(--sigvelo-text-prose-leading);
206
206
  }
207
207
 
208
208
  .workspace-explorer__markdown-content > :first-child {
@@ -248,21 +248,15 @@
248
248
 
249
249
  .workspace-explorer__markdown-content [data-streamdown="heading-1"] {
250
250
  margin-block: var(--sigvelo-spacing-8) var(--sigvelo-spacing-3);
251
- font-size: var(--sigvelo-text-fluid-2xl);
252
- font-weight: var(--sigvelo-font-weight-bold);
253
- line-height: var(--sigvelo-leading-tight);
254
251
  }
255
252
 
256
253
  .workspace-explorer__markdown-content [data-streamdown="heading-2"] {
257
254
  margin-block: var(--sigvelo-spacing-8) var(--sigvelo-spacing-2);
258
- font-size: var(--sigvelo-text-fluid-lg);
259
- font-weight: var(--sigvelo-font-weight-bold);
260
255
  }
261
256
 
262
257
  .workspace-explorer__markdown-content
263
258
  :is([data-streamdown="heading-3"], [data-streamdown="heading-4"]) {
264
259
  margin-block: var(--sigvelo-spacing-6) var(--sigvelo-spacing-2);
265
- font-size: var(--sigvelo-text-lg);
266
260
  }
267
261
 
268
262
  .workspace-explorer__skill {
@@ -275,7 +269,7 @@
275
269
  .workspace-explorer__skill-kicker {
276
270
  margin-block-end: var(--sigvelo-spacing-2);
277
271
  color: var(--sigvelo-color-text-muted);
278
- font-size: var(--sigvelo-text-xs);
272
+ font-size: var(--sigvelo-text-meta);
279
273
  font-weight: var(--sigvelo-font-weight-semibold);
280
274
  letter-spacing: var(--sigvelo-tracking-wider);
281
275
  text-transform: uppercase;
@@ -295,10 +289,10 @@
295
289
 
296
290
  .workspace-explorer__skill-metadata {
297
291
  display: grid;
298
- grid-template-columns: max-content minmax(0, 1fr);
292
+ grid-template-columns: max-content var(--sigvelo-layout-track-fill);
299
293
  gap: var(--sigvelo-spacing-1) var(--sigvelo-spacing-3);
300
294
  margin-block: var(--sigvelo-spacing-4) 0;
301
- font-size: var(--sigvelo-text-sm);
295
+ font-size: var(--sigvelo-text-prose);
302
296
  }
303
297
 
304
298
  .workspace-explorer__skill-metadata dt {
@@ -319,7 +313,7 @@
319
313
  gap: var(--sigvelo-spacing-1-5);
320
314
  margin-block-start: var(--sigvelo-spacing-4);
321
315
  color: var(--sigvelo-color-success-text);
322
- font-size: var(--sigvelo-text-sm);
316
+ font-size: var(--sigvelo-text-prose);
323
317
  font-weight: var(--sigvelo-font-weight-semibold);
324
318
  }
325
319
 
@@ -331,7 +325,7 @@
331
325
  margin-block: var(--sigvelo-spacing-2) 0;
332
326
  padding-inline-start: var(--sigvelo-spacing-6);
333
327
  color: var(--sigvelo-color-danger-text);
334
- font-size: var(--sigvelo-text-sm);
328
+ font-size: var(--sigvelo-text-prose);
335
329
  }
336
330
 
337
331
  .workspace-explorer__media-scroll {
@@ -370,6 +364,7 @@
370
364
  display: flex;
371
365
  inline-size: 100%;
372
366
  block-size: 100%;
367
+ /* Image well floor. Not --sigvelo-layout-sidebar. */
373
368
  min-block-size: 16rem;
374
369
  align-items: center;
375
370
  justify-content: center;
@@ -442,7 +437,7 @@
442
437
  flex-wrap: wrap;
443
438
  gap: var(--sigvelo-spacing-2) var(--sigvelo-spacing-4);
444
439
  margin: 0;
445
- font-size: var(--sigvelo-text-xs);
440
+ font-size: var(--sigvelo-text-meta);
446
441
  }
447
442
 
448
443
  .workspace-explorer__media-details > div {
@@ -464,7 +459,7 @@
464
459
 
465
460
  .workspace-explorer__media-transcript {
466
461
  flex: 0 0 auto;
467
- font-size: var(--sigvelo-text-sm);
462
+ font-size: var(--sigvelo-text-prose);
468
463
  }
469
464
 
470
465
  .workspace-explorer__media-fallback,
@@ -472,7 +467,7 @@
472
467
  max-inline-size: 42rem;
473
468
  margin: 0;
474
469
  color: var(--sigvelo-color-text-muted);
475
- font-size: var(--sigvelo-text-compact);
470
+ font-size: var(--sigvelo-text-prose);
476
471
  text-align: center;
477
472
  }
478
473
 
@@ -526,6 +521,7 @@
526
521
  }
527
522
  }
528
523
 
524
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
529
525
  @container (inline-size < 30rem) {
530
526
  .workspace-explorer__filter {
531
527
  margin-inline: var(--sigvelo-spacing-1-5);
@@ -545,9 +541,10 @@
545
541
  }
546
542
  }
547
543
 
544
+ /* Local wrap. Not --sigvelo-layout-break-compact. */
548
545
  @container (inline-size < 24rem) {
549
546
  .workspace-explorer__skill-metadata {
550
- grid-template-columns: 1fr;
547
+ grid-template-columns: var(--sigvelo-layout-track-fill);
551
548
  gap: 0;
552
549
  }
553
550
 
@@ -1,6 +1,6 @@
1
1
  .workspace-mount-manager__content {
2
2
  display: grid;
3
- gap: var(--sigvelo-spacing-3);
3
+ gap: var(--sigvelo-layout-gutter);
4
4
  }
5
5
 
6
6
  .workspace-mount-manager__error,
@@ -11,7 +11,7 @@
11
11
  }
12
12
 
13
13
  .workspace-mount-manager__list {
14
- gap: var(--sigvelo-spacing-2);
14
+ gap: var(--sigvelo-layout-cluster);
15
15
  }
16
16
 
17
17
  .workspace-mount-manager__error {
@@ -6,5 +6,10 @@
6
6
  * `<link rel="icon">` should prefer that resolved URL because it may point elsewhere.
7
7
  */
8
8
  declare function inferFaviconUrl(url: string): string | undefined;
9
+ /**
10
+ * Browsers block public pages from fetching loopback URLs (private network
11
+ * access). Skip those favicons when the document is not itself on loopback.
12
+ */
13
+ declare function canRequestFavicon(src: string, documentOrigin?: string): boolean;
9
14
  //#endregion
10
- export { inferFaviconUrl };
15
+ export { canRequestFavicon, inferFaviconUrl };
@@ -14,5 +14,22 @@ function inferFaviconUrl(url) {
14
14
  return;
15
15
  }
16
16
  }
17
+ function isLoopbackHost(hostname) {
18
+ return hostname === "localhost" || hostname === "127.0.0.1" || hostname === "[::1]";
19
+ }
20
+ /**
21
+ * Browsers block public pages from fetching loopback URLs (private network
22
+ * access). Skip those favicons when the document is not itself on loopback.
23
+ */
24
+ function canRequestFavicon(src, documentOrigin = globalThis.location?.origin) {
25
+ try {
26
+ const favicon = new URL(src);
27
+ if (!documentOrigin) return true;
28
+ const page = new URL(documentOrigin);
29
+ return !(isLoopbackHost(favicon.hostname) && !isLoopbackHost(page.hostname));
30
+ } catch {
31
+ return false;
32
+ }
33
+ }
17
34
  //#endregion
18
- export { inferFaviconUrl };
35
+ export { canRequestFavicon, inferFaviconUrl };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mcp-b/react-components",
3
- "version": "0.41.0",
3
+ "version": "0.42.0",
4
4
  "description": "MCP-B React components built on Base UI and shared design tokens, including Cloudflare Think chat primitives.",
5
5
  "homepage": "https://design-system.sigvelo.com",
6
6
  "bugs": {
@@ -53,7 +53,7 @@
53
53
  "streamdown": "^2.5.0",
54
54
  "unist-util-visit": "^5.1.0",
55
55
  "yet-another-react-lightbox": "^3.32.2",
56
- "@mcp-b/design-tokens": "0.41.0"
56
+ "@mcp-b/design-tokens": "0.42.0"
57
57
  },
58
58
  "devDependencies": {
59
59
  "@ai-sdk/react": "^3.0.249",
@@ -1,97 +0,0 @@
1
- import { a as ToolbarLinkProps, n as ToolbarButtonProps, r as ToolbarGroupProps, t as Toolbar } from "./Toolbar-CBOseBQr.js";
2
- import * as React from "react";
3
- import { useRender } from "@base-ui/react/use-render";
4
-
5
- //#region src/components/general-purpose/AppTopBar.d.ts
6
- interface AppTopBarRootProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Root> {
7
- /** Accessible name describing the controls in this application bar. */
8
- "aria-label": string;
9
- /**
10
- * Where the title sits. An application bar centres it between the control
11
- * groups; a panel header labels its leading edge instead.
12
- */
13
- titleAlign?: "center" | "start";
14
- }
15
- interface AppTopBarGroupProps extends ToolbarGroupProps {}
16
- interface AppTopBarTitleProps extends useRender.ComponentProps<"div"> {}
17
- interface AppTopBarButtonProps extends Omit<ToolbarButtonProps, "aria-label"> {
18
- ref?: React.Ref<HTMLButtonElement>;
19
- /** Accessible name and default tooltip text for the icon-only control. */
20
- label: string;
21
- /** Tooltip text when it should differ from the accessible name. */
22
- tooltip?: React.ReactNode;
23
- }
24
- interface AppTopBarLinkProps extends Omit<ToolbarLinkProps, "aria-label"> {
25
- ref?: React.Ref<HTMLAnchorElement>;
26
- /** Accessible name and default tooltip text for the icon-only link. */
27
- label: string;
28
- /** Tooltip text when it should differ from the accessible name. */
29
- tooltip?: React.ReactNode;
30
- }
31
- interface AppTopBarControlProps extends ToolbarButtonProps {
32
- ref?: React.Ref<HTMLButtonElement>;
33
- }
34
- /**
35
- * Stable application-level toolbar with composable leading, title, and trailing
36
- * slots. Descendant buttons share Base UI's roving focus and tooltip provider.
37
- */
38
- declare function AppTopBarRoot({
39
- children,
40
- className,
41
- titleAlign,
42
- ...props
43
- }: AppTopBarRootProps): React.JSX.Element;
44
- declare function AppTopBarLeading({
45
- className,
46
- ...props
47
- }: AppTopBarGroupProps): React.JSX.Element;
48
- declare function AppTopBarTitle({
49
- className,
50
- render,
51
- ref,
52
- ...props
53
- }: AppTopBarTitleProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
54
- declare function AppTopBarTrailing({
55
- className,
56
- ...props
57
- }: AppTopBarGroupProps): React.JSX.Element;
58
- declare function AppTopBarControl({
59
- className,
60
- ...props
61
- }: AppTopBarControlProps): React.JSX.Element;
62
- declare function AppTopBarButton({
63
- children,
64
- className,
65
- disabled,
66
- label,
67
- render,
68
- tooltip,
69
- ...props
70
- }: AppTopBarButtonProps): React.JSX.Element;
71
- declare function AppTopBarLink({
72
- children,
73
- className,
74
- label,
75
- render,
76
- tooltip,
77
- ...props
78
- }: AppTopBarLinkProps): React.JSX.Element;
79
- /**
80
- * Composable application top bar with stable leading, title, and trailing
81
- * slots. Icon controls use shared Toolbar roving focus and coordinated Tooltip
82
- * behavior; their fixed slots do not resize when state icons change. Render an
83
- * existing behavior-rich button through `Control` to retain those toolbar
84
- * semantics without rebuilding the control. Use `Link` for navigation so an
85
- * `href` or router-provided link keeps native link semantics.
86
- */
87
- declare const AppTopBar: {
88
- Root: typeof AppTopBarRoot;
89
- Leading: typeof AppTopBarLeading;
90
- Title: typeof AppTopBarTitle;
91
- Trailing: typeof AppTopBarTrailing;
92
- Control: typeof AppTopBarControl;
93
- Button: typeof AppTopBarButton;
94
- Link: typeof AppTopBarLink;
95
- };
96
- //#endregion
97
- export { AppTopBarLinkProps as a, AppTopBarGroupProps as i, AppTopBarButtonProps as n, AppTopBarRootProps as o, AppTopBarControlProps as r, AppTopBarTitleProps as s, AppTopBar as t };
@@ -1,80 +0,0 @@
1
- import { r as ToggleVariantsOptions } from "./Toggle-DLrIf5YH.js";
2
- import * as React from "react";
3
- import { ToggleGroup } from "@base-ui/react/toggle-group";
4
- import { Toggle } from "@base-ui/react/toggle";
5
-
6
- //#region src/components/foundations/ToggleGroup.d.ts
7
- type ToggleGroupSize = ToggleVariantsOptions["size"];
8
- type ToggleGroupProps<Value extends string = string> = ToggleGroup.Props<Value> & {
9
- variant?: ToggleVariantsOptions["variant"];
10
- /**
11
- * The size of the toggle group.
12
- * @default 'md'
13
- */
14
- size?: ToggleGroupSize;
15
- spacing?: number;
16
- /**
17
- * Draws one shared thumb that slides between segments rather than lighting up
18
- * each item's own background. This is the permission-mode / view-switch
19
- * control; it is a presentation of this group, not a separate component.
20
- *
21
- * Only meaningful for single selection — a sliding thumb cannot be in two
22
- * places, so a `multiple` group ignores it.
23
- */
24
- segmented?: boolean;
25
- };
26
- interface ToggleGroupItemProps extends React.ComponentPropsWithRef<typeof Toggle>, Omit<ToggleVariantsOptions, "className"> {}
27
- /**
28
- * A toggle group component for selecting one or multiple options.
29
- *
30
- * @example
31
- * ```tsx
32
- * // Single selection (defaultValue is an array)
33
- * <ToggleGroup.Root defaultValue={["center"]}>
34
- * <ToggleGroup.Item value="left">Left</ToggleGroup.Item>
35
- * <ToggleGroup.Item value="center">Center</ToggleGroup.Item>
36
- * <ToggleGroup.Item value="right">Right</ToggleGroup.Item>
37
- * </ToggleGroup.Root>
38
- * ```
39
- *
40
- * @example
41
- * ```tsx
42
- * // Multiple selection
43
- * <ToggleGroup.Root multiple defaultValue={["bold", "italic"]}>
44
- * <ToggleGroup.Item value="bold">Bold</ToggleGroup.Item>
45
- * <ToggleGroup.Item value="italic">Italic</ToggleGroup.Item>
46
- * <ToggleGroup.Item value="underline">Underline</ToggleGroup.Item>
47
- * </ToggleGroup.Root>
48
- * ```
49
- *
50
- * @see {@link https://base-ui.com/react/components/toggle-group | Base UI Toggle Group}
51
- */
52
- declare function ToggleGroupRoot<Value extends string>({
53
- size,
54
- spacing,
55
- segmented,
56
- variant,
57
- className,
58
- children,
59
- style,
60
- ref,
61
- ...props
62
- }: ToggleGroupProps<Value>): React.JSX.Element;
63
- /**
64
- * A single toggle item within a ToggleGroup.
65
- */
66
- declare function ToggleGroupItem({
67
- className,
68
- variant,
69
- size,
70
- ref,
71
- ...props
72
- }: ToggleGroupItemProps & {
73
- ref?: React.Ref<HTMLButtonElement>;
74
- }): React.JSX.Element;
75
- declare const ToggleGroup$1: {
76
- Root: typeof ToggleGroupRoot;
77
- Item: typeof ToggleGroupItem;
78
- };
79
- //#endregion
80
- export { ToggleGroupItemProps as n, ToggleGroupProps as r, ToggleGroup$1 as t };
@@ -1,152 +0,0 @@
1
- import * as React from "react";
2
- import { Toolbar } from "@base-ui/react/toolbar";
3
-
4
- //#region src/components/foundations/Toolbar.d.ts
5
- /**
6
- * Props for the Toolbar.Root component.
7
- */
8
- interface ToolbarRootProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Root> {}
9
- /**
10
- * Props for the Toolbar.Button component.
11
- */
12
- interface ToolbarButtonProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Button> {
13
- /** Skip the default Button chrome when a composed control owns its visuals. */
14
- unstyled?: boolean;
15
- }
16
- /**
17
- * Props for the Toolbar.Link component.
18
- */
19
- interface ToolbarLinkProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Link> {
20
- /** Skip the default Button chrome when a composed link owns its visuals. */
21
- unstyled?: boolean;
22
- }
23
- /**
24
- * Props for the Toolbar.Group component.
25
- */
26
- interface ToolbarGroupProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Group> {}
27
- /**
28
- * Props for the Toolbar.Separator component.
29
- */
30
- interface ToolbarSeparatorProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Separator> {}
31
- /**
32
- * Props for the Toolbar.Input component.
33
- */
34
- interface ToolbarInputProps extends React.ComponentPropsWithoutRef<typeof Toolbar.Input> {}
35
- /**
36
- * Container for grouping toolbar buttons and controls.
37
- *
38
- * @example
39
- * ```tsx
40
- * <Toolbar.Root>
41
- * <Toolbar.Button>Bold</Toolbar.Button>
42
- * <Toolbar.Button>Italic</Toolbar.Button>
43
- * <Toolbar.Separator />
44
- * <Toolbar.Button>Align Left</Toolbar.Button>
45
- * </Toolbar.Root>
46
- * ```
47
- *
48
- * @see {@link https://base-ui.com/react/components/toolbar | Base UI Toolbar}
49
- */
50
- declare function ToolbarRoot({
51
- className,
52
- ref,
53
- ...props
54
- }: ToolbarRootProps & {
55
- ref?: React.Ref<HTMLDivElement>;
56
- }): React.JSX.Element;
57
- /**
58
- * A clickable button within the toolbar.
59
- */
60
- declare function ToolbarButton({
61
- unstyled,
62
- className,
63
- ref,
64
- ...props
65
- }: ToolbarButtonProps & {
66
- ref?: React.Ref<HTMLButtonElement>;
67
- }): React.JSX.Element;
68
- /**
69
- * A link element within the toolbar.
70
- */
71
- declare function ToolbarLink({
72
- unstyled,
73
- className,
74
- ref,
75
- ...props
76
- }: ToolbarLinkProps & {
77
- ref?: React.Ref<HTMLAnchorElement>;
78
- }): React.JSX.Element;
79
- /**
80
- * Groups toolbar items together.
81
- */
82
- declare function ToolbarGroup({
83
- className,
84
- ref,
85
- ...props
86
- }: ToolbarGroupProps & {
87
- ref?: React.Ref<HTMLDivElement>;
88
- }): React.JSX.Element;
89
- /**
90
- * Visual separator between toolbar sections.
91
- */
92
- declare function ToolbarSeparator({
93
- className,
94
- ref,
95
- ...props
96
- }: ToolbarSeparatorProps & {
97
- ref?: React.Ref<HTMLDivElement>;
98
- }): React.JSX.Element;
99
- /**
100
- * Input element within the toolbar.
101
- */
102
- declare function ToolbarInput({
103
- className,
104
- ref,
105
- ...props
106
- }: ToolbarInputProps & {
107
- ref?: React.Ref<HTMLInputElement>;
108
- }): React.JSX.Element;
109
- /**
110
- * A container for grouping buttons and controls.
111
- * Provides keyboard navigation between items.
112
- *
113
- * @example
114
- * ```tsx
115
- * // Text formatting toolbar
116
- * <Toolbar.Root>
117
- * <Toolbar.Group>
118
- * <Toolbar.Button>Bold</Toolbar.Button>
119
- * <Toolbar.Button>Italic</Toolbar.Button>
120
- * <Toolbar.Button>Underline</Toolbar.Button>
121
- * </Toolbar.Group>
122
- * <Toolbar.Separator />
123
- * <Toolbar.Group>
124
- * <Toolbar.Button>Left</Toolbar.Button>
125
- * <Toolbar.Button>Center</Toolbar.Button>
126
- * <Toolbar.Button>Right</Toolbar.Button>
127
- * </Toolbar.Group>
128
- * </Toolbar.Root>
129
- * ```
130
- *
131
- * @example
132
- * ```tsx
133
- * // Vertical toolbar
134
- * <Toolbar.Root orientation="vertical">
135
- * <Toolbar.Button>Item 1</Toolbar.Button>
136
- * <Toolbar.Button>Item 2</Toolbar.Button>
137
- * <Toolbar.Button>Item 3</Toolbar.Button>
138
- * </Toolbar.Root>
139
- * ```
140
- *
141
- * @see {@link https://base-ui.com/react/components/toolbar | Base UI Toolbar}
142
- */
143
- declare const Toolbar$1: {
144
- Root: typeof ToolbarRoot;
145
- Button: typeof ToolbarButton;
146
- Link: typeof ToolbarLink;
147
- Group: typeof ToolbarGroup;
148
- Separator: typeof ToolbarSeparator;
149
- Input: typeof ToolbarInput;
150
- };
151
- //#endregion
152
- export { ToolbarLinkProps as a, ToolbarInputProps as i, ToolbarButtonProps as n, ToolbarRootProps as o, ToolbarGroupProps as r, ToolbarSeparatorProps as s, Toolbar$1 as t };
@@ -1,6 +1,6 @@
1
1
  import { TransitionSurface } from "./components/foundations/TransitionSurface.js";
2
- import { AgentChat, compactingNotice } from "./components/agents-sdk/AgentChat.js";
3
2
  import { AgentToolRunsProvider, useOptionalAgentToolRuns, useSourceScopedAgentToolEvents } from "./components/agents-sdk/AgentToolRunsContext.js";
3
+ import { AgentChat, compactingNotice } from "./components/agents-sdk/AgentChat.js";
4
4
  import { SubagentRunList } from "./components/agents-sdk/SubagentRunList.js";
5
5
  import { ThinkChatContext, ThinkChatLiveContext, useOptionalThinkChatContext, useThinkChatContext } from "./components/agents-sdk/ThinkChatContext.js";
6
6
  import { ThinkChatActivity, createThinkChatActivityRenderer, renderThinkChatActivityPart } from "./components/agents-sdk/ThinkChatActivity.js";