@mcp-b/react-components 0.39.0 → 0.41.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 (188) hide show
  1. package/dist/{AgentChat-CVO7xyLC.d.ts → AgentChat-DVr2giwD.d.ts} +1 -1
  2. package/dist/{AgentToolRunsContext-BCVqCtJ1.d.ts → AgentToolRunsContext-daY67hFM.d.ts} +12 -0
  3. package/dist/AppTopBar-ZdgmB_Lu.d.ts +97 -0
  4. package/dist/{CodeBlock-DO4Hdu1R.js → CodeBlock-BjELA-_s.js} +1 -1
  5. package/dist/{FileTree-DbQMpvxV.js → FileTree-DMYRdT6R.js} +1 -1
  6. package/dist/McpConnectorForm-MRm1r59e.d.ts +39 -0
  7. package/dist/{Message-DBsHHhcM.d.ts → Message-D_vCVEGB.d.ts} +20 -1
  8. package/dist/{ThinkChatActivity-D6-_5Phw.d.ts → ThinkChatActivity-DyGHj01E.d.ts} +1 -1
  9. package/dist/{ThinkExecutionRun-lYYgyeE1.d.ts → ThinkExecutionRun-k8bpyXqt.d.ts} +3 -3
  10. package/dist/Toolbar-CBOseBQr.d.ts +152 -0
  11. package/dist/{WorkspaceFileView-D0r7xnq5.js → WorkspaceFileView-D0yFwoDr.js} +3 -3
  12. package/dist/{WorkspaceMessageResponse-Cy28WGSz.d.ts → WorkspaceMessageResponse-D66ty4FO.d.ts} +1 -1
  13. package/dist/components/agents-sdk/AgentActivity.js +1 -1
  14. package/dist/components/agents-sdk/AgentChat.d.ts +1 -1
  15. package/dist/components/agents-sdk/AgentChat.js +41 -18
  16. package/dist/components/agents-sdk/AgentToolRunsContext.d.ts +1 -1
  17. package/dist/components/agents-sdk/AgentToolRunsContext.js +12 -0
  18. package/dist/components/agents-sdk/BrowserLiveScreen.d.ts +135 -0
  19. package/dist/components/agents-sdk/BrowserLiveScreen.js +637 -0
  20. package/dist/components/agents-sdk/BrowserLiveView.d.ts +2 -2
  21. package/dist/components/agents-sdk/BrowserLiveView.js +6 -9
  22. package/dist/components/agents-sdk/BrowserReplay.js +1 -1
  23. package/dist/components/agents-sdk/BrowserRunPanel.d.ts +72 -25
  24. package/dist/components/agents-sdk/BrowserRunPanel.js +111 -70
  25. package/dist/components/agents-sdk/ManagerOffice.d.ts +156 -0
  26. package/dist/components/agents-sdk/ManagerOffice.js +662 -0
  27. package/dist/components/agents-sdk/McpConnectionRequest.js +3 -3
  28. package/dist/components/agents-sdk/McpConnectorForm.d.ts +1 -38
  29. package/dist/components/agents-sdk/McpPluginCatalog.d.ts +8 -2
  30. package/dist/components/agents-sdk/McpPluginCatalog.js +79 -61
  31. package/dist/components/agents-sdk/McpServerPicker.d.ts +1 -1
  32. package/dist/components/agents-sdk/McpServerPicker.js +2 -2
  33. package/dist/components/agents-sdk/ModelSelector.js +1 -1
  34. package/dist/components/agents-sdk/PromptInputCommands.js +1 -1
  35. package/dist/components/agents-sdk/SubagentRunDetails.d.ts +1 -9
  36. package/dist/components/agents-sdk/SubagentRunDetails.js +1 -9
  37. package/dist/components/agents-sdk/SubagentRunIndicator.js +1 -1
  38. package/dist/components/agents-sdk/SubagentRunSelector.d.ts +4 -2
  39. package/dist/components/agents-sdk/SubagentRunSelector.js +7 -6
  40. package/dist/components/agents-sdk/ThinkChat.d.ts +4 -4
  41. package/dist/components/agents-sdk/ThinkChatActivity.d.ts +1 -1
  42. package/dist/components/agents-sdk/ThinkChatToolPanels.js +1 -1
  43. package/dist/components/agents-sdk/ThinkExecutionDetail.d.ts +1 -1
  44. package/dist/components/agents-sdk/ThinkExecutionDetail.js +43 -43
  45. package/dist/components/agents-sdk/ThinkExecutionRun.d.ts +2 -2
  46. package/dist/components/agents-sdk/ThinkExecutionRun.js +5 -6
  47. package/dist/components/agents-sdk/ThinkExecutionStatus.d.ts +1 -1
  48. package/dist/components/agents-sdk/ThinkExecutionStatus.js +8 -12
  49. package/dist/components/agents-sdk/ThinkExecutionWorkbench.d.ts +8 -1
  50. package/dist/components/agents-sdk/ThinkExecutionWorkbench.js +43 -38
  51. package/dist/components/agents-sdk/ThinkFullApp.d.ts +18 -6
  52. package/dist/components/agents-sdk/ThinkFullApp.js +112 -144
  53. package/dist/components/agents-sdk/ThinkRoutine.d.ts +1 -1
  54. package/dist/components/agents-sdk/ThinkRoutineBrowser.js +1 -1
  55. package/dist/components/agents-sdk/ThinkRoutineDetail.js +4 -15
  56. package/dist/components/agents-sdk/ThinkRoutineForm.js +1 -1
  57. package/dist/components/agents-sdk/ThinkRoutineLibrary.js +69 -89
  58. package/dist/components/agents-sdk/ThinkRoutineRuns.d.ts +1 -1
  59. package/dist/components/agents-sdk/ThinkRoutineRuns.js +3 -10
  60. package/dist/components/agents-sdk/ThinkThreadPicker.js +1 -1
  61. package/dist/components/agents-sdk/WorkspaceBrowser.js +1 -1
  62. package/dist/components/agents-sdk/WorkspaceExplorer.js +1 -1
  63. package/dist/components/agents-sdk/WorkspaceFileView.js +1 -1
  64. package/dist/components/agents-sdk/WorkspaceHeader.js +2 -1
  65. package/dist/components/agents-sdk/WorkspaceMessageResponse.d.ts +1 -1
  66. package/dist/components/agents-sdk/WorkspaceMountManager.js +11 -11
  67. package/dist/components/ai-sdk/Activity.js +1 -1
  68. package/dist/components/ai-sdk/AgentAttention.d.ts +1 -1
  69. package/dist/components/ai-sdk/AgentChatStartScreen.js +1 -1
  70. package/dist/components/ai-sdk/Approval.js +1 -1
  71. package/dist/components/ai-sdk/Artifact.js +1 -1
  72. package/dist/components/ai-sdk/ChainOfThought.d.ts +1 -1
  73. package/dist/components/ai-sdk/ChainOfThought.js +1 -1
  74. package/dist/components/ai-sdk/Checkpoint.js +1 -1
  75. package/dist/components/ai-sdk/CodeBlock.js +1 -1
  76. package/dist/components/ai-sdk/Conversation.js +1 -1
  77. package/dist/components/ai-sdk/Goal.js +1 -1
  78. package/dist/components/ai-sdk/MediaPreviewCard.js +1 -1
  79. package/dist/components/ai-sdk/Message.d.ts +2 -2
  80. package/dist/components/ai-sdk/Message.js +25 -3
  81. package/dist/components/ai-sdk/MessageScroller.js +1 -1
  82. package/dist/components/ai-sdk/MessageScrollerVirtual.js +1 -1
  83. package/dist/components/ai-sdk/Plan.js +1 -1
  84. package/dist/components/ai-sdk/PromptInput.js +1 -1
  85. package/dist/components/ai-sdk/Queue.d.ts +4 -4
  86. package/dist/components/ai-sdk/Queue.js +6 -15
  87. package/dist/components/ai-sdk/Reasoning.js +1 -1
  88. package/dist/components/ai-sdk/Sources.js +1 -1
  89. package/dist/components/ai-sdk/Task.d.ts +2 -2
  90. package/dist/components/ai-sdk/Task.js +2 -2
  91. package/dist/components/extension/ChatGptSignInScreen.d.ts +21 -10
  92. package/dist/components/extension/ChatGptSignInScreen.js +42 -34
  93. package/dist/components/extension/CodexModelSelector.js +1 -1
  94. package/dist/components/extension/ConversationTabPicker.js +1 -1
  95. package/dist/components/foundations/Avatar.d.ts +1 -10
  96. package/dist/components/foundations/Avatar.js +1 -10
  97. package/dist/components/foundations/Checkbox.js +1 -1
  98. package/dist/components/foundations/CheckboxGroup.js +1 -0
  99. package/dist/components/foundations/ContextMenu.js +1 -1
  100. package/dist/components/foundations/LinkButton.d.ts +12 -10
  101. package/dist/components/foundations/LinkButton.js +15 -11
  102. package/dist/components/foundations/Menubar.js +1 -1
  103. package/dist/components/foundations/SearchField.js +1 -1
  104. package/dist/components/foundations/Select.js +1 -1
  105. package/dist/components/foundations/Stepper.js +1 -1
  106. package/dist/components/foundations/Toast.js +1 -1
  107. package/dist/components/foundations/Toolbar.d.ts +1 -151
  108. package/dist/components/foundations/icons.d.ts +2 -2
  109. package/dist/components/foundations/icons.js +2 -2
  110. package/dist/components/general-purpose/AppTopBar.d.ts +1 -90
  111. package/dist/components/general-purpose/AppTopBar.js +2 -1
  112. package/dist/components/general-purpose/Commit.d.ts +2 -2
  113. package/dist/components/general-purpose/Commit.js +5 -13
  114. package/dist/components/general-purpose/EnvironmentVariables.d.ts +2 -2
  115. package/dist/components/general-purpose/EnvironmentVariables.js +4 -7
  116. package/dist/components/general-purpose/FileTree.js +1 -1
  117. package/dist/components/general-purpose/PricingBillingToggle.js +4 -9
  118. package/dist/components/general-purpose/PricingPlanCard.js +15 -14
  119. package/dist/components/general-purpose/ResponsiveSidebarShell.d.ts +95 -2
  120. package/dist/components/general-purpose/ResponsiveSidebarShell.js +90 -34
  121. package/dist/components/general-purpose/SetupChecklist.js +1 -1
  122. package/dist/components/general-purpose/Terminal.d.ts +1 -1
  123. package/dist/components/general-purpose/Terminal.js +4 -12
  124. package/dist/components/general-purpose/TestResults.d.ts +1 -1
  125. package/dist/components/general-purpose/TestResults.js +8 -21
  126. package/dist/components/general-purpose/ThemeModeControl.js +1 -1
  127. package/dist/components/general-purpose/WebPreview.d.ts +1 -1
  128. package/dist/components/general-purpose/WebPreview.js +4 -12
  129. package/dist/components/nanites/AgentConnection.js +2 -2
  130. package/dist/components/nanites/AgentToolDetail.d.ts +1 -1
  131. package/dist/components/nanites/AgentToolDetail.js +7 -7
  132. package/dist/components/nanites/NaniteScene.js +11 -11
  133. package/dist/{copy-button-4YvddK4e.js → copy-button-lys9N_aI.js} +1 -1
  134. package/dist/{icons-BGZ916hb.d.ts → icons-0corjfxR.d.ts} +6 -16
  135. package/dist/{icons-B4mGvCvc.js → icons-CVFSeTJn.js} +3 -5
  136. package/dist/styles/agent-attention.css +5 -5
  137. package/dist/styles/agent-chat.css +47 -12
  138. package/dist/styles/agent-tool-detail.css +2 -12
  139. package/dist/styles/app-icon.css +12 -18
  140. package/dist/styles/app-top-bar.css +32 -6
  141. package/dist/styles/avatar.css +6 -22
  142. package/dist/styles/base.css +2 -8
  143. package/dist/styles/browser-live-screen.css +38 -0
  144. package/dist/styles/browser-live-view.css +12 -4
  145. package/dist/styles/browser-run-panel.css +20 -16
  146. package/dist/styles/chatgpt-sign-in-screen.css +11 -5
  147. package/dist/styles/commit.css +24 -1
  148. package/dist/styles/environment-variables.css +3 -0
  149. package/dist/styles/index.css +5 -4
  150. package/dist/styles/manager-office.css +486 -0
  151. package/dist/styles/mcp-plugin-catalog.css +39 -35
  152. package/dist/styles/mcp-server-picker.css +1 -1
  153. package/dist/styles/message.css +41 -18
  154. package/dist/styles/nanite-scene.css +9 -9
  155. package/dist/styles/pricing-page.css +12 -8
  156. package/dist/styles/prompt-input.css +8 -13
  157. package/dist/styles/recipes.css +1 -57
  158. package/dist/styles/responsive-sidebar-shell.css +70 -20
  159. package/dist/styles/subagent-run.css +20 -3
  160. package/dist/styles/terminal.css +19 -0
  161. package/dist/styles/test-results.css +10 -1
  162. package/dist/styles/think-execution-status.css +8 -24
  163. package/dist/styles/think-execution-workbench.css +98 -105
  164. package/dist/styles/think-full-app.css +81 -185
  165. package/dist/styles/think-routine-library.css +0 -40
  166. package/dist/styles/think-thread-picker.css +8 -3
  167. package/dist/styles/transition-surface.css +7 -8
  168. package/dist/styles/utilities.css +42 -0
  169. package/dist/styles/web-preview.css +28 -5
  170. package/dist/styles/workspace-explorer.css +4 -23
  171. package/dist/styles/workspace-mount-manager.css +22 -0
  172. package/package.json +37 -35
  173. package/dist/ResponsiveSidebarShell-DWjULskY.d.ts +0 -68
  174. package/dist/components/agents-sdk/AgentActivityPreview.d.ts +0 -46
  175. package/dist/components/agents-sdk/AgentActivityPreview.js +0 -93
  176. package/dist/components/agents-sdk/ThinkThreadShell.d.ts +0 -38
  177. package/dist/components/agents-sdk/ThinkThreadShell.js +0 -27
  178. package/dist/components/foundations/Badge.d.ts +0 -62
  179. package/dist/components/foundations/Badge.js +0 -55
  180. package/dist/components/foundations/StatusPill.d.ts +0 -43
  181. package/dist/components/foundations/StatusPill.js +0 -35
  182. package/dist/components/general-purpose/Shell.d.ts +0 -149
  183. package/dist/components/general-purpose/Shell.js +0 -116
  184. package/dist/styles/agent-activity-preview-overlay.css +0 -169
  185. package/dist/styles/agent-activity-preview.css +0 -209
  186. package/dist/styles/badge.css +0 -120
  187. package/dist/styles/shell.css +0 -122
  188. package/dist/styles/status-pill.css +0 -39
@@ -1,2 +1,2 @@
1
- import { $ as TerminalIcon, A as MaximizeIcon, B as PencilIcon, C as FileIcon, D as ImageIcon, E as HashIcon, F as MonitorIcon, G as SearchIcon, H as PlusIcon, I as MoonIcon, J as SpinnerIcon, K as SidebarIcon, L as MoveToFrontIcon, M as MessageSquareIcon, N as MicrophoneIcon, O as InfoIcon, P as MinusIcon, Q as TargetIcon, R as PaperclipIcon, S as EyeOffIcon, T as FolderOpenIcon, U as QueueIcon, V as PlayIcon, W as RefreshIcon, X as StopIcon, Y as SquareIcon, Z as SunIcon, _ as DiscordIcon, a as ArrowUpIcon, b as EllipsisIcon, c as BoxIcon, d as CheckIcon, et as TrashIcon, f as ChevronDownIcon, g as CopyIcon, h as CodeIcon, i as ArrowRightIcon, j as McpIcon, k as LinkIcon, l as BrainIcon, m as ChevronRightIcon, n as ArrowDownIcon, nt as WrenchIcon, o as ArrowUpRightIcon, p as ChevronLeftIcon, q as SlackIcon, r as ArrowLeftIcon, rt as XIcon, s as BookmarkIcon, t as ArchiveIcon, tt as WarningIcon, u as CalendarIcon, v as DotIcon, w as FolderIcon, x as EyeIcon, y as DownloadIcon, z as PauseIcon } from "../../icons-B4mGvCvc.js";
2
- export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronLeftIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, HashIcon, ImageIcon, InfoIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SlackIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
1
+ import { $ as WarningIcon, A as MessageSquareIcon, B as PlusIcon, C as FolderIcon, D as LinkIcon, E as KeyboardIcon, F as MoveToFrontIcon, G as SlackIcon, H as RefreshIcon, I as PaperclipIcon, J as StopIcon, K as SpinnerIcon, L as PauseIcon, M as MinusIcon, N as MonitorIcon, O as MaximizeIcon, P as MoonIcon, Q as TrashIcon, R as PencilIcon, S as FileIcon, T as InfoIcon, U as SearchIcon, V as QueueIcon, W as SidebarIcon, X as TargetIcon, Y as SunIcon, Z as TerminalIcon, _ as DotIcon, a as ArrowUpIcon, b as EyeIcon, c as BoxIcon, d as CheckIcon, et as WrenchIcon, f as ChevronDownIcon, g as DiscordIcon, h as CopyIcon, i as ArrowRightIcon, j as MicrophoneIcon, k as McpIcon, l as BrainIcon, m as CodeIcon, n as ArrowDownIcon, o as ArrowUpRightIcon, p as ChevronRightIcon, q as SquareIcon, r as ArrowLeftIcon, s as BookmarkIcon, t as ArchiveIcon, tt as XIcon, u as CalendarIcon, v as DownloadIcon, w as FolderOpenIcon, x as EyeOffIcon, y as EllipsisIcon, z as PlayIcon } from "../../icons-CVFSeTJn.js";
2
+ export { ArchiveIcon, ArrowDownIcon, ArrowLeftIcon, ArrowRightIcon, ArrowUpIcon, ArrowUpRightIcon, BookmarkIcon, BoxIcon, BrainIcon, CalendarIcon, CheckIcon, ChevronDownIcon, ChevronRightIcon, CodeIcon, CopyIcon, DiscordIcon, DotIcon, DownloadIcon, EllipsisIcon, EyeIcon, EyeOffIcon, FileIcon, FolderIcon, FolderOpenIcon, InfoIcon, KeyboardIcon, LinkIcon, MaximizeIcon, McpIcon, MessageSquareIcon, MicrophoneIcon, MinusIcon, MonitorIcon, MoonIcon, MoveToFrontIcon, PaperclipIcon, PauseIcon, PencilIcon, PlayIcon, PlusIcon, QueueIcon, RefreshIcon, SearchIcon, SidebarIcon, SlackIcon, SpinnerIcon, SquareIcon, StopIcon, SunIcon, TargetIcon, TerminalIcon, TrashIcon, WarningIcon, WrenchIcon, XIcon };
@@ -1,91 +1,2 @@
1
- import { Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarLinkProps } from "../foundations/Toolbar.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
- interface AppTopBarGroupProps extends ToolbarGroupProps {}
11
- interface AppTopBarTitleProps extends useRender.ComponentProps<"div"> {}
12
- interface AppTopBarButtonProps extends Omit<ToolbarButtonProps, "aria-label"> {
13
- ref?: React.Ref<HTMLButtonElement>;
14
- /** Accessible name and default tooltip text for the icon-only control. */
15
- label: string;
16
- /** Tooltip text when it should differ from the accessible name. */
17
- tooltip?: React.ReactNode;
18
- }
19
- interface AppTopBarLinkProps extends Omit<ToolbarLinkProps, "aria-label"> {
20
- ref?: React.Ref<HTMLAnchorElement>;
21
- /** Accessible name and default tooltip text for the icon-only link. */
22
- label: string;
23
- /** Tooltip text when it should differ from the accessible name. */
24
- tooltip?: React.ReactNode;
25
- }
26
- interface AppTopBarControlProps extends ToolbarButtonProps {
27
- ref?: React.Ref<HTMLButtonElement>;
28
- }
29
- /**
30
- * Stable application-level toolbar with composable leading, title, and trailing
31
- * slots. Descendant buttons share Base UI's roving focus and tooltip provider.
32
- */
33
- declare function AppTopBarRoot({
34
- children,
35
- className,
36
- ...props
37
- }: AppTopBarRootProps): React.JSX.Element;
38
- declare function AppTopBarLeading({
39
- className,
40
- ...props
41
- }: AppTopBarGroupProps): React.JSX.Element;
42
- declare function AppTopBarTitle({
43
- className,
44
- render,
45
- ref,
46
- ...props
47
- }: AppTopBarTitleProps): React.ReactElement<unknown, string | React.JSXElementConstructor<any>>;
48
- declare function AppTopBarTrailing({
49
- className,
50
- ...props
51
- }: AppTopBarGroupProps): React.JSX.Element;
52
- declare function AppTopBarControl({
53
- className,
54
- ...props
55
- }: AppTopBarControlProps): React.JSX.Element;
56
- declare function AppTopBarButton({
57
- children,
58
- className,
59
- disabled,
60
- label,
61
- render,
62
- tooltip,
63
- ...props
64
- }: AppTopBarButtonProps): React.JSX.Element;
65
- declare function AppTopBarLink({
66
- children,
67
- className,
68
- label,
69
- render,
70
- tooltip,
71
- ...props
72
- }: AppTopBarLinkProps): React.JSX.Element;
73
- /**
74
- * Composable application top bar with stable leading, title, and trailing
75
- * slots. Icon controls use shared Toolbar roving focus and coordinated Tooltip
76
- * behavior; their fixed slots do not resize when state icons change. Render an
77
- * existing behavior-rich button through `Control` to retain those toolbar
78
- * semantics without rebuilding the control. Use `Link` for navigation so an
79
- * `href` or router-provided link keeps native link semantics.
80
- */
81
- declare const AppTopBar: {
82
- Root: typeof AppTopBarRoot;
83
- Leading: typeof AppTopBarLeading;
84
- Title: typeof AppTopBarTitle;
85
- Trailing: typeof AppTopBarTrailing;
86
- Control: typeof AppTopBarControl;
87
- Button: typeof AppTopBarButton;
88
- Link: typeof AppTopBarLink;
89
- };
90
- //#endregion
1
+ import { a as AppTopBarLinkProps, i as AppTopBarGroupProps, n as AppTopBarButtonProps, o as AppTopBarRootProps, r as AppTopBarControlProps, s as AppTopBarTitleProps, t as AppTopBar } from "../../AppTopBar-ZdgmB_Lu.js";
91
2
  export { AppTopBar, AppTopBarButtonProps, AppTopBarControlProps, AppTopBarGroupProps, AppTopBarLinkProps, AppTopBarRootProps, AppTopBarTitleProps };
@@ -10,9 +10,10 @@ import { useRender } from "@base-ui/react/use-render";
10
10
  * Stable application-level toolbar with composable leading, title, and trailing
11
11
  * slots. Descendant buttons share Base UI's roving focus and tooltip provider.
12
12
  */
13
- function AppTopBarRoot({ children, className, ...props }) {
13
+ function AppTopBarRoot({ children, className, titleAlign = "center", ...props }) {
14
14
  return /* @__PURE__ */ jsx(Tooltip.Provider, { children: /* @__PURE__ */ jsx(Toolbar.Root, {
15
15
  className: mergeBaseClassName("app-top-bar", className),
16
+ "data-title-align": titleAlign,
16
17
  ...props,
17
18
  children
18
19
  }) });
@@ -13,7 +13,7 @@ interface CommitProps extends Omit<React.ComponentProps<typeof Collapsible.Root>
13
13
  * summaries with expandable file details. Do not use it as a generic
14
14
  * accordion; use Collapsible or Accordion directly.
15
15
  *
16
- * Styling consumes Sigvelo surface, border, spacing, radius, badge, and focus
16
+ * Styling consumes Sigvelo surface, border, spacing, radius, status, and focus
17
17
  * tokens. Add shared metadata/file affordances here instead of forking commit
18
18
  * cards in apps.
19
19
  *
@@ -190,7 +190,7 @@ declare function CommitFile({
190
190
  }: CommitFileProps & {
191
191
  ref?: React.Ref<HTMLLIElement>;
192
192
  }): React.JSX.Element;
193
- interface CommitFileStatusProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color"> {
193
+ interface CommitFileStatusProps extends React.HTMLAttributes<HTMLSpanElement> {
194
194
  status: CommitFileStatusValue;
195
195
  }
196
196
  declare function CommitFileStatus({
@@ -1,18 +1,11 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
2
  import { Collapsible } from "../foundations/Collapsible.js";
3
- import { C as FileIcon, m as ChevronRightIcon } from "../../icons-B4mGvCvc.js";
4
- import { t as CopyButton } from "../../copy-button-4YvddK4e.js";
5
- import { Badge } from "../foundations/Badge.js";
3
+ import { S as FileIcon, p as ChevronRightIcon } from "../../icons-CVFSeTJn.js";
4
+ import { t as CopyButton } from "../../copy-button-lys9N_aI.js";
6
5
  import { Avatar } from "../foundations/Avatar.js";
7
6
  import "react";
8
7
  import { jsx, jsxs } from "react/jsx-runtime";
9
8
  //#region src/components/general-purpose/Commit.tsx
10
- const FILE_STATUS_COLOR = {
11
- added: "success",
12
- modified: "warning",
13
- deleted: "destructive",
14
- renamed: "primary"
15
- };
16
9
  const FILE_STATUS_LABEL = {
17
10
  added: "A",
18
11
  modified: "M",
@@ -27,7 +20,7 @@ const FILE_STATUS_LABEL = {
27
20
  * summaries with expandable file details. Do not use it as a generic
28
21
  * accordion; use Collapsible or Accordion directly.
29
22
  *
30
- * Styling consumes Sigvelo surface, border, spacing, radius, badge, and focus
23
+ * Styling consumes Sigvelo surface, border, spacing, radius, status, and focus
31
24
  * tokens. Add shared metadata/file affordances here instead of forking commit
32
25
  * cards in apps.
33
26
  *
@@ -197,12 +190,11 @@ function CommitFile({ className, children, ref, ...props }) {
197
190
  });
198
191
  }
199
192
  function CommitFileStatus({ className, status, ref, ...props }) {
200
- return /* @__PURE__ */ jsx(Badge, {
193
+ return /* @__PURE__ */ jsx("span", {
201
194
  ...props,
202
195
  ref,
203
- color: FILE_STATUS_COLOR[status],
204
- size: "sm",
205
196
  className: cx("commit__file-status", className),
197
+ "data-status": status,
206
198
  "aria-label": status,
207
199
  children: FILE_STATUS_LABEL[status]
208
200
  });
@@ -22,7 +22,7 @@ interface EnvironmentVariablesProps extends React.HTMLAttributes<HTMLDivElement>
22
22
  * environment keys and copyable values. Do not treat masking as a security
23
23
  * boundary; do not render secrets for users who are not allowed to see them.
24
24
  *
25
- * Sigvelo changes: composes Badge, Button, Switch, and Tooltip; maps copy and
25
+ * Sigvelo changes: composes Button, Switch, and Tooltip; maps copy and
26
26
  * reveal controls to Sigvelo CSS tokens; keeps masking local to the component.
27
27
  *
28
28
  * Values need visible labels and copy buttons need accessible labels. Styling
@@ -156,7 +156,7 @@ declare function EnvironmentVariableCopyButton({
156
156
  timeout,
157
157
  ...props
158
158
  }: EnvironmentVariableCopyButtonProps): React.JSX.Element;
159
- interface EnvironmentVariableRequiredProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color"> {}
159
+ interface EnvironmentVariableRequiredProps extends React.HTMLAttributes<HTMLSpanElement> {}
160
160
  declare function EnvironmentVariableRequired({
161
161
  className,
162
162
  children,
@@ -1,7 +1,6 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { S as EyeOffIcon, x as EyeIcon } from "../../icons-B4mGvCvc.js";
3
- import { t as CopyButton } from "../../copy-button-4YvddK4e.js";
4
- import { Badge } from "../foundations/Badge.js";
2
+ import { b as EyeIcon, x as EyeOffIcon } from "../../icons-CVFSeTJn.js";
3
+ import { t as CopyButton } from "../../copy-button-lys9N_aI.js";
5
4
  import { Switch } from "../foundations/Switch.js";
6
5
  import * as React from "react";
7
6
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
@@ -26,7 +25,7 @@ function useVariableContext() {
26
25
  * environment keys and copyable values. Do not treat masking as a security
27
26
  * boundary; do not render secrets for users who are not allowed to see them.
28
27
  *
29
- * Sigvelo changes: composes Badge, Button, Switch, and Tooltip; maps copy and
28
+ * Sigvelo changes: composes Button, Switch, and Tooltip; maps copy and
30
29
  * reveal controls to Sigvelo CSS tokens; keeps masking local to the component.
31
30
  *
32
31
  * Values need visible labels and copy buttons need accessible labels. Styling
@@ -185,11 +184,9 @@ function EnvironmentVariableCopyButton({ className, format = "value", label, onC
185
184
  });
186
185
  }
187
186
  function EnvironmentVariableRequired({ className, children, ref, ...props }) {
188
- return /* @__PURE__ */ jsx(Badge, {
187
+ return /* @__PURE__ */ jsx("span", {
189
188
  ...props,
190
189
  ref,
191
- color: "warning",
192
- size: "sm",
193
190
  className: cx("environment-variables__required", className),
194
191
  children: children ?? "Required"
195
192
  });
@@ -1,2 +1,2 @@
1
- import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../../FileTree-DbQMpvxV.js";
1
+ import { a as FileTreeIcon, i as FileTreeFolder, n as FileTreeActions, o as FileTreeName, r as FileTreeFile, t as FileTree } from "../../FileTree-DMYRdT6R.js";
2
2
  export { FileTree, FileTreeActions, FileTreeFile, FileTreeFolder, FileTreeIcon, FileTreeName };
@@ -1,5 +1,4 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { Badge } from "../foundations/Badge.js";
3
2
  import { ToggleGroup } from "../foundations/ToggleGroup.js";
4
3
  import { Switch } from "../foundations/Switch.js";
5
4
  import { jsx, jsxs } from "react/jsx-runtime";
@@ -26,10 +25,8 @@ function PricingBillingToggle({ value, onValueChange, yearlySavingsPercent, vari
26
25
  /* @__PURE__ */ jsxs("span", {
27
26
  className: "pricing-page__period-label",
28
27
  "data-active": isYearly || void 0,
29
- children: ["Yearly", /* @__PURE__ */ jsxs(Badge, {
30
- color: "success",
31
- size: "sm",
32
- className: "pricing-page__billing-badge",
28
+ children: ["Yearly", /* @__PURE__ */ jsxs("span", {
29
+ className: "pricing-page__billing-savings",
33
30
  children: [
34
31
  "Save ",
35
32
  yearlySavingsPercent,
@@ -51,10 +48,8 @@ function PricingBillingToggle({ value, onValueChange, yearlySavingsPercent, vari
51
48
  children: "Monthly"
52
49
  }), /* @__PURE__ */ jsxs(ToggleGroup.Item, {
53
50
  value: "yearly",
54
- children: ["Yearly", /* @__PURE__ */ jsxs(Badge, {
55
- color: "success",
56
- size: "sm",
57
- className: "pricing-page__billing-badge",
51
+ children: ["Yearly", /* @__PURE__ */ jsxs("span", {
52
+ className: "pricing-page__billing-savings",
58
53
  children: [
59
54
  "-",
60
55
  yearlySavingsPercent,
@@ -1,10 +1,9 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { O as InfoIcon, P as MinusIcon, d as CheckIcon } from "../../icons-B4mGvCvc.js";
2
+ import { M as MinusIcon, T as InfoIcon, d as CheckIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { IconButton } from "../foundations/IconButton.js";
5
5
  import { Separator } from "../foundations/Separator.js";
6
6
  import { Card } from "../foundations/Card.js";
7
- import { Badge } from "../foundations/Badge.js";
8
7
  import { getPlanPrice, getPlanYearlySavings } from "./Pricing.js";
9
8
  import { jsx, jsxs } from "react/jsx-runtime";
10
9
  //#region src/components/general-purpose/PricingPlanCard.tsx
@@ -24,20 +23,22 @@ function PricingPlanCard({ plan, billingPeriod, action = "select", onSelect, cla
24
23
  className: cx("pricing-page__plan", className),
25
24
  "data-popular": plan.popular || void 0,
26
25
  children: [
27
- plan.popular ? /* @__PURE__ */ jsx(Badge, {
28
- color: "success",
29
- className: "pricing-page__popular-badge",
30
- children: "Most Popular"
31
- }) : null,
32
26
  /* @__PURE__ */ jsxs("div", {
33
27
  className: "pricing-page__plan-header",
34
- children: [/* @__PURE__ */ jsx("h2", {
35
- className: "pricing-page__plan-name",
36
- children: plan.name
37
- }), /* @__PURE__ */ jsx("p", {
38
- className: "pricing-page__plan-description",
39
- children: plan.description
40
- })]
28
+ children: [
29
+ plan.popular ? /* @__PURE__ */ jsx("span", {
30
+ className: "pricing-page__popular-label",
31
+ children: "Most popular"
32
+ }) : null,
33
+ /* @__PURE__ */ jsx("h2", {
34
+ className: "pricing-page__plan-name",
35
+ children: plan.name
36
+ }),
37
+ /* @__PURE__ */ jsx("p", {
38
+ className: "pricing-page__plan-description",
39
+ children: plan.description
40
+ })
41
+ ]
41
42
  }),
42
43
  /* @__PURE__ */ jsxs("div", {
43
44
  className: "pricing-page__plan-price",
@@ -1,2 +1,95 @@
1
- import { i as ResponsiveSidebarShellTopBarControls, n as ResponsiveSidebarShellControls, r as ResponsiveSidebarShellProps, t as ResponsiveSidebarShell } from "../../ResponsiveSidebarShell-DWjULskY.js";
2
- export { ResponsiveSidebarShell, ResponsiveSidebarShellControls, ResponsiveSidebarShellProps, ResponsiveSidebarShellTopBarControls };
1
+ import { t as AppTopBar } from "../../AppTopBar-ZdgmB_Lu.js";
2
+ import * as React from "react";
3
+
4
+ //#region src/components/general-purpose/ResponsiveSidebarShell.d.ts
5
+ interface ResponsiveSidebarShellControls {
6
+ /** Close the sidebar and move focus to the main content. */
7
+ closeSidebar: () => void;
8
+ /** Close only when the shell is currently using its compact drawer layout. */
9
+ closeSidebarOnCompact: () => void;
10
+ }
11
+ interface ResponsiveSidebarShellProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "children" | "title"> {
12
+ /**
13
+ * Navigation or other secondary surface shown beside the selected content.
14
+ * Omit for a shell that is only a bar row over content — the app bar then
15
+ * has one mount point whether or not a sidebar exists.
16
+ */
17
+ sidebar?: React.ReactNode | ((controls: ResponsiveSidebarShellControls) => React.ReactNode);
18
+ /** Main content. */
19
+ children?: React.ReactNode;
20
+ /** Short noun used by the toggle and resize control, such as “threads” or “schedules”. */
21
+ sidebarLabel?: string;
22
+ /** Whether the sidebar is open. Omit for internal state. */
23
+ sidebarOpen?: boolean;
24
+ /** Initial sidebar state when `sidebarOpen` is uncontrolled. */
25
+ defaultSidebarOpen?: boolean;
26
+ /** Initial desktop sidebar width in CSS pixels. */
27
+ defaultSidebarWidth?: number;
28
+ /** Called when the sidebar is opened or closed. */
29
+ onSidebarOpenChange?: (open: boolean) => void;
30
+ /**
31
+ * No bar row at all — for content that brings its own application bar.
32
+ * Distinct from passing no slots: an empty shell with a sidebar still shows
33
+ * a bar carrying the toggle.
34
+ */
35
+ topBarHidden?: boolean;
36
+ /** Props for the shell-owned bar root: `aria-label`, `className`, data hooks. */
37
+ topBarProps?: React.ComponentProps<typeof AppTopBar.Root> & {
38
+ [dataAttribute: `data-${string}`]: string | undefined;
39
+ };
40
+ /**
41
+ * App-owned leading navigation. When present it owns the single leading
42
+ * slot instead of sitting beside a second shell toggle; wide sidebars use
43
+ * their responsive default and compact sidebars remain available through
44
+ * `compactTitleTrigger`.
45
+ */
46
+ topBarLeading?: React.ReactNode;
47
+ /** Compact-only navigation that replaces the drawer trigger without hiding the wide rail toggle. */
48
+ compactTopBarLeading?: React.ReactNode;
49
+ /** Bar title content. Hidden at compact widths when `compactTitleTrigger` stands in. */
50
+ topBarTitle?: React.ReactNode;
51
+ /** Element the bar title renders into, e.g. `<h1 id={…}/>` for a labelled page. */
52
+ topBarTitleRender?: React.ReactElement<Record<string, unknown>>;
53
+ /** Content placed in the bar's trailing group. */
54
+ topBarTrailing?: React.ReactNode;
55
+ /**
56
+ * Label content for a compact-width drawer trigger that replaces the plain
57
+ * title and the icon toggle: the title itself becomes the control that opens
58
+ * the sidebar. The shell renders the button and the disclosure chevron.
59
+ */
60
+ compactTitleTrigger?: React.ReactNode;
61
+ /** Accessible name for the mobile peek target that returns to the main content. */
62
+ showMainLabel?: string;
63
+ }
64
+ /**
65
+ * The one application shell: responsive master-detail with a resizable desktop
66
+ * sidebar, a compact floating drawer that leaves the main content in place as
67
+ * a dismiss target, and a shell-owned application bar composed from slots.
68
+ * The root exposes `data-sidebar-open="true" | "false"` as its public styling hook.
69
+ */
70
+ declare function ResponsiveSidebarShell({
71
+ sidebar,
72
+ sidebarLabel,
73
+ sidebarOpen,
74
+ defaultSidebarOpen,
75
+ defaultSidebarWidth,
76
+ onSidebarOpenChange,
77
+ topBarHidden,
78
+ topBarProps,
79
+ topBarLeading,
80
+ compactTopBarLeading,
81
+ topBarTitle,
82
+ topBarTitleRender,
83
+ topBarTrailing,
84
+ compactTitleTrigger,
85
+ showMainLabel,
86
+ className,
87
+ children,
88
+ ref,
89
+ style,
90
+ ...props
91
+ }: ResponsiveSidebarShellProps & {
92
+ ref?: React.Ref<HTMLDivElement>;
93
+ }): React.JSX.Element;
94
+ //#endregion
95
+ export { ResponsiveSidebarShell, ResponsiveSidebarShellControls, ResponsiveSidebarShellProps };
@@ -1,5 +1,5 @@
1
1
  import { t as cx } from "../../class-names-BiMDVpUo.js";
2
- import { K as SidebarIcon } from "../../icons-B4mGvCvc.js";
2
+ import { W as SidebarIcon, f as ChevronDownIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { t as capitalize } from "../../format-DB2mX9DA.js";
5
5
  import { n as mergeRefs } from "../../merge-refs-DF_7w2x_.js";
@@ -15,30 +15,67 @@ const sidebarKeyboardStep = 24;
15
15
  const compactSidebarWidthRem = 56;
16
16
  function useControllableSidebar({ sidebarOpen, defaultSidebarOpen, onSidebarOpenChange }) {
17
17
  const [innerOpen, setInnerOpen] = React.useState(defaultSidebarOpen ?? true);
18
- return [sidebarOpen ?? innerOpen, React.useCallback((next) => {
19
- if (sidebarOpen === void 0) setInnerOpen(next);
20
- onSidebarOpenChange?.(next);
21
- }, [sidebarOpen, onSidebarOpenChange])];
18
+ return [
19
+ sidebarOpen ?? innerOpen,
20
+ React.useCallback((next) => {
21
+ if (sidebarOpen === void 0) setInnerOpen(next);
22
+ onSidebarOpenChange?.(next);
23
+ }, [sidebarOpen, onSidebarOpenChange]),
24
+ setInnerOpen
25
+ ];
22
26
  }
23
27
  function isCompactSidebar(root) {
24
28
  const rootFontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize) || 16;
25
- return root.getBoundingClientRect().width <= compactSidebarWidthRem * rootFontSize;
29
+ return root.offsetWidth <= compactSidebarWidthRem * rootFontSize;
26
30
  }
27
31
  /**
28
- * Responsive master-detail shell with a resizable desktop sidebar and a compact
29
- * floating sidebar that leaves the main content in place as a dismiss target.
32
+ * The one application shell: responsive master-detail with a resizable desktop
33
+ * sidebar, a compact floating drawer that leaves the main content in place as
34
+ * a dismiss target, and a shell-owned application bar composed from slots.
30
35
  * The root exposes `data-sidebar-open="true" | "false"` as its public styling hook.
31
36
  */
32
- function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, defaultSidebarOpen, defaultSidebarWidth = sidebarDefaultWidth, onSidebarOpenChange, toolbarLabel = "Sidebar controls", showMainLabel = "Show main content", className, children, ref, style, ...props }) {
37
+ function ResponsiveSidebarShell({ sidebar, sidebarLabel = "sidebar", sidebarOpen, defaultSidebarOpen, defaultSidebarWidth = sidebarDefaultWidth, onSidebarOpenChange, topBarHidden = false, topBarProps, topBarLeading, compactTopBarLeading, topBarTitle, topBarTitleRender, topBarTrailing, compactTitleTrigger, showMainLabel = "Show main content", className, children, ref, style, ...props }) {
33
38
  const sidebarId = React.useId();
34
39
  const rootRef = React.useRef(null);
35
40
  const mainRef = React.useRef(null);
36
41
  const openerRef = React.useRef(null);
37
- const [isSidebarOpen, setSidebarOpen] = useControllableSidebar({
42
+ const compactRef = React.useRef(null);
43
+ const restoreSidebarOnWideRef = React.useRef(true);
44
+ const [isSidebarOpen, setSidebarOpen, primeSidebarOpen] = useControllableSidebar({
38
45
  sidebarOpen,
39
46
  defaultSidebarOpen,
40
47
  onSidebarOpenChange
41
48
  });
49
+ const wantsBuiltInDefault = sidebarOpen === void 0 && defaultSidebarOpen === void 0;
50
+ React.useLayoutEffect(() => {
51
+ const root = rootRef.current;
52
+ if (!root) return;
53
+ const syncLayout = () => {
54
+ if (root.offsetWidth <= 0) return;
55
+ const compact = isCompactSidebar(root);
56
+ const wasCompact = compactRef.current;
57
+ compactRef.current = compact;
58
+ if (wasCompact === null) {
59
+ if (wantsBuiltInDefault && compact) primeSidebarOpen(false);
60
+ return;
61
+ }
62
+ if (!wasCompact && compact) {
63
+ restoreSidebarOnWideRef.current = isSidebarOpen;
64
+ if (isSidebarOpen) setSidebarOpen(false);
65
+ } else if (wasCompact && !compact && restoreSidebarOnWideRef.current) setSidebarOpen(true);
66
+ };
67
+ syncLayout();
68
+ if (typeof ResizeObserver === "undefined") return;
69
+ const observer = new ResizeObserver(syncLayout);
70
+ observer.observe(root);
71
+ return () => observer.disconnect();
72
+ }, [
73
+ isSidebarOpen,
74
+ primeSidebarOpen,
75
+ setSidebarOpen,
76
+ wantsBuiltInDefault
77
+ ]);
78
+ const hasSidebar = sidebar != null;
42
79
  const toggleLabel = capitalize(sidebarLabel);
43
80
  const toggleTooltip = `${isSidebarOpen ? "Hide" : "Show"} ${sidebarLabel}`;
44
81
  const updateSidebar = React.useCallback((update, restoreFocus) => {
@@ -66,8 +103,9 @@ function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, de
66
103
  closeSidebar,
67
104
  closeSidebarOnCompact
68
105
  }) : sidebar;
69
- const sidebarToggle = /* @__PURE__ */ jsx(AppTopBar.Button, {
70
- className: "responsive-sidebar-shell__toggle",
106
+ const hasTitleTrigger = hasSidebar && compactTitleTrigger != null && compactTopBarLeading == null;
107
+ const renderSidebarToggle = (className) => hasSidebar ? /* @__PURE__ */ jsx(AppTopBar.Button, {
108
+ className: cx("responsive-sidebar-shell__toggle", className),
71
109
  label: toggleLabel,
72
110
  tooltip: toggleTooltip,
73
111
  type: "button",
@@ -75,30 +113,22 @@ function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, de
75
113
  "aria-expanded": isSidebarOpen,
76
114
  onClick: (event) => toggleSidebar(event.currentTarget),
77
115
  children: /* @__PURE__ */ jsx(SidebarIcon, {})
78
- });
79
- const topBarContent = typeof topBar === "function" ? topBar({
80
- sidebarId,
81
- sidebarOpen: isSidebarOpen,
82
- sidebarToggle,
83
- toggleSidebar
84
- }) : topBar;
85
- return /* @__PURE__ */ jsxs("div", {
116
+ }) : null;
117
+ const hasTopBar = !topBarHidden && (hasSidebar || topBarLeading != null || compactTopBarLeading != null || topBarTitle != null || topBarTrailing != null || topBarProps != null);
118
+ return /* @__PURE__ */ jsx("div", {
86
119
  ref: mergeRefs(rootRef, ref),
87
120
  className: cx("responsive-sidebar-shell", className),
88
121
  style,
89
122
  ...props,
90
- "data-sidebar-open": isSidebarOpen ? "true" : "false",
123
+ "data-sidebar-open": hasSidebar && isSidebarOpen ? "true" : "false",
91
124
  onKeyDown: (event) => {
92
125
  props.onKeyDown?.(event);
93
- if (!event.defaultPrevented && event.key === "Escape" && isSidebarOpen && rootRef.current && isCompactSidebar(rootRef.current)) {
126
+ if (!event.defaultPrevented && event.key === "Escape" && hasSidebar && isSidebarOpen && rootRef.current && isCompactSidebar(rootRef.current)) {
94
127
  event.preventDefault();
95
128
  dismissSidebar();
96
129
  }
97
130
  },
98
- children: [topBarContent ?? /* @__PURE__ */ jsx(AppTopBar.Root, {
99
- "aria-label": toolbarLabel,
100
- children: /* @__PURE__ */ jsx(AppTopBar.Leading, { children: sidebarToggle })
101
- }), /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
131
+ children: /* @__PURE__ */ jsxs(ResizableSidePanel.Root, {
102
132
  className: "responsive-sidebar-shell__frame",
103
133
  label: sidebarLabel,
104
134
  side: "start",
@@ -107,22 +137,48 @@ function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, de
107
137
  maxSize: sidebarMaxWidth,
108
138
  keyboardStep: sidebarKeyboardStep,
109
139
  children: [
110
- isSidebarOpen ? /* @__PURE__ */ jsx(ResizableSidePanel.Handle, { className: "responsive-sidebar-shell__resizer" }) : null,
111
- /* @__PURE__ */ jsx("div", {
140
+ hasSidebar && isSidebarOpen ? /* @__PURE__ */ jsx(ResizableSidePanel.Handle, { className: "responsive-sidebar-shell__resizer" }) : null,
141
+ hasSidebar ? /* @__PURE__ */ jsx("div", {
112
142
  id: sidebarId,
113
143
  className: "responsive-sidebar-shell__sidebar",
114
144
  "aria-hidden": isSidebarOpen ? void 0 : true,
115
145
  inert: isSidebarOpen ? void 0 : true,
116
146
  children: sidebarContent
117
- }),
118
- /* @__PURE__ */ jsx("div", {
147
+ }) : null,
148
+ /* @__PURE__ */ jsxs("div", {
119
149
  ref: mainRef,
120
150
  className: "responsive-sidebar-shell__main",
121
- "data-recipe": "application-plane",
122
151
  tabIndex: -1,
123
- children
152
+ children: [hasTopBar ? /* @__PURE__ */ jsxs(AppTopBar.Root, {
153
+ "aria-label": "Application controls",
154
+ ...topBarProps,
155
+ children: [
156
+ hasSidebar || topBarLeading != null || compactTopBarLeading != null ? /* @__PURE__ */ jsxs(AppTopBar.Leading, { children: [topBarLeading ?? renderSidebarToggle(hasTitleTrigger ? "responsive-sidebar-shell__toggle--replaced-by-title" : compactTopBarLeading != null ? "responsive-sidebar-shell__toggle--replaced-by-compact-leading" : void 0), topBarLeading == null && compactTopBarLeading != null ? /* @__PURE__ */ jsx("span", {
157
+ className: "responsive-sidebar-shell__compact-leading",
158
+ children: compactTopBarLeading
159
+ }) : null] }) : null,
160
+ topBarTitle != null || hasTitleTrigger ? /* @__PURE__ */ jsxs(AppTopBar.Title, {
161
+ render: topBarTitleRender,
162
+ children: [topBarTitle != null ? /* @__PURE__ */ jsx("span", {
163
+ className: cx("responsive-sidebar-shell__title-text", hasTitleTrigger && "responsive-sidebar-shell__title-text--replaced-by-trigger"),
164
+ children: topBarTitle
165
+ }) : null, hasTitleTrigger ? /* @__PURE__ */ jsxs(Button, {
166
+ type: "button",
167
+ variant: "ghost",
168
+ color: "neutral",
169
+ size: "sm",
170
+ className: "responsive-sidebar-shell__title-trigger",
171
+ "aria-controls": sidebarId,
172
+ "aria-expanded": isSidebarOpen,
173
+ onClick: (event) => toggleSidebar(event.currentTarget),
174
+ children: [compactTitleTrigger, /* @__PURE__ */ jsx(ChevronDownIcon, { "aria-hidden": "true" })]
175
+ }) : null]
176
+ }) : null,
177
+ topBarTrailing != null ? /* @__PURE__ */ jsx(AppTopBar.Trailing, { children: topBarTrailing }) : null
178
+ ]
179
+ }) : null, children]
124
180
  }),
125
- isSidebarOpen ? /* @__PURE__ */ jsx(Button, {
181
+ hasSidebar && isSidebarOpen ? /* @__PURE__ */ jsx(Button, {
126
182
  type: "button",
127
183
  variant: "ghost",
128
184
  color: "neutral",
@@ -131,7 +187,7 @@ function ResponsiveSidebarShell({ sidebar, topBar, sidebarLabel, sidebarOpen, de
131
187
  onClick: closeSidebar
132
188
  }) : null
133
189
  ]
134
- })]
190
+ })
135
191
  });
136
192
  }
137
193
  //#endregion
@@ -1,5 +1,5 @@
1
1
  import { n as mergeBaseClassName } from "../../class-names-BiMDVpUo.js";
2
- import { H as PlusIcon, d as CheckIcon, f as ChevronDownIcon, tt as WarningIcon } from "../../icons-B4mGvCvc.js";
2
+ import { $ as WarningIcon, B as PlusIcon, d as CheckIcon, f as ChevronDownIcon } from "../../icons-CVFSeTJn.js";
3
3
  import { Button } from "../foundations/Button.js";
4
4
  import { Menu } from "../foundations/Menu.js";
5
5
  import * as React from "react";
@@ -63,7 +63,7 @@ declare function TerminalTitle({
63
63
  ref?: React.Ref<HTMLSpanElement>;
64
64
  }): React.JSX.Element;
65
65
  type TerminalStatusValue = "idle" | "running" | "success" | "error";
66
- interface TerminalStatusProps extends Omit<React.HTMLAttributes<HTMLSpanElement>, "color"> {
66
+ interface TerminalStatusProps extends React.HTMLAttributes<HTMLSpanElement> {
67
67
  status: TerminalStatusValue;
68
68
  }
69
69
  declare function TerminalStatus({