@@ -1714,7 +1715,7 @@ export default function GitActionsControl({
}}
>
- {item.label}
+ {item.label}
);
})}
@@ -1727,7 +1728,7 @@ export default function GitActionsControl({
}}
>
- Publish repository...
+ Publish repository...
) : null}
{gitStatusForActions?.refName === null && (
@@ -1759,7 +1760,9 @@ export default function GitActionsControl({
onClick={initializeGit}
>
- {initAction.isPending ? "Initializing..." : "Initialize Git"}
+
+ {initAction.isPending ? "Initializing..." : "Initialize Git"}
+
) : (
<>
@@ -1774,7 +1777,7 @@ export default function GitActionsControl({
quickAction={quickAction}
SourceControlIcon={SourceControlIcon}
/>
- {quickAction.label}
+ {quickAction.label}
{quickActionDisabledReason && (
@@ -1788,7 +1791,7 @@ export default function GitActionsControl({
>
- Git actions
+ Git actions
{gitItems}
diff --git a/apps/web/src/components/ProjectScriptsControl.tsx b/apps/web/src/components/ProjectScriptsControl.tsx
index a4bef0c53f7a..9736821afa67 100644
--- a/apps/web/src/components/ProjectScriptsControl.tsx
+++ b/apps/web/src/components/ProjectScriptsControl.tsx
@@ -28,6 +28,7 @@ import {
MenuGroup,
MenuGroupLabel,
MenuItem,
+ MenuItemLabel,
MenuPopup,
MenuSeparator,
MenuShortcut,
@@ -156,7 +157,7 @@ export default function ProjectScriptsControl({
onClick={() => void importFileScript(fileScript)}
>
- {fileScript.name}
+ {fileScript.name}
@@ -181,9 +182,9 @@ export default function ProjectScriptsControl({
onClick={() => onRunScript(script)}
>
-
+
{script.runOnWorktreeCreate ? `${script.name} (setup)` : script.name}
-
+
{shortcutLabel && (
- Add action
+ Add action
>
);
@@ -240,7 +241,7 @@ export default function ProjectScriptsControl({
onClick={() => onRunScript(primaryScript)}
>
- Run {primaryScript.name}
+ Run {primaryScript.name}
{shortcutLabelForCommand(keybindings, commandForProjectScript(primaryScript.id))}
@@ -255,7 +256,7 @@ export default function ProjectScriptsControl({
>
- Project actions
+ Project actions
{scriptItems}
@@ -267,7 +268,7 @@ export default function ProjectScriptsControl({
onClick={openAddDialog}
>
- Add project action…
+ Add project action…
)}
>
diff --git a/apps/web/src/components/chat/OpenInPicker.tsx b/apps/web/src/components/chat/OpenInPicker.tsx
index a6e07feb354c..0f8f8cbc45c3 100644
--- a/apps/web/src/components/chat/OpenInPicker.tsx
+++ b/apps/web/src/components/chat/OpenInPicker.tsx
@@ -21,6 +21,7 @@ import { Group, GroupSeparator } from "../ui/group";
import {
Menu,
MenuItem,
+ MenuItemLabel,
MenuPopup,
MenuShortcut,
MenuSub,
@@ -305,7 +306,7 @@ export const OpenInPicker = memo(function OpenInPicker({
onClick={() => openInEditor(value)}
>
- {label}
+ {label}
{value === preferredEditor && openFavoriteEditorShortcutLabel && (
{openFavoriteEditorShortcutLabel}
)}
@@ -331,7 +332,7 @@ export const OpenInPicker = memo(function OpenInPicker({
onClick={() => openInEditor(preferredEditor)}
>
- Open in {primaryOption.label}
+ Open in {primaryOption.label}
{openFavoriteEditorShortcutLabel && (
{openFavoriteEditorShortcutLabel}
)}
@@ -340,7 +341,7 @@ export const OpenInPicker = memo(function OpenInPicker({
- Open in…
+ Open in…
{editorItems}
diff --git a/apps/web/src/components/ui/menu.tsx b/apps/web/src/components/ui/menu.tsx
index d0e40992c6cc..2df8d830dafd 100644
--- a/apps/web/src/components/ui/menu.tsx
+++ b/apps/web/src/components/ui/menu.tsx
@@ -101,6 +101,7 @@ function MenuItem({
density === "touch" && "min-h-10 sm:min-h-10",
className,
)}
+ data-density={density}
data-inset={inset}
data-slot="menu-item"
data-variant={variant}
@@ -109,6 +110,20 @@ function MenuItem({
);
}
+// Trim font leading so visible letters center with the icons in touch rows.
+// Symmetric padding keeps accents and descenders inside truncated labels.
+function MenuItemLabel({ className, ...props }: React.ComponentProps<"span">) {
+ return (
+
+ );
+}
+
function MenuCheckboxItem({
className,
children,
@@ -275,6 +290,7 @@ function MenuSubTrigger({
density === "touch" && "min-h-10 sm:min-h-10",
className,
)}
+ data-density={density}
data-inset={inset}
data-slot="menu-sub-trigger"
{...props}
@@ -325,6 +341,7 @@ export {
MenuGroup,
MenuGroup as DropdownMenuGroup,
MenuItem,
+ MenuItemLabel,
MenuItem as DropdownMenuItem,
MenuCheckboxItem,
MenuCheckboxItem as DropdownMenuCheckboxItem,
From 0479fd3950ba359ccef8c8d4aba57b026f5bc465 Mon Sep 17 00:00:00 2001
From: shivam <91240327+shivamhwp@users.noreply.github.com>
Date: Sun, 20 Sep 2026 12:38:52 +0000
Subject: [PATCH 8/9] fix(web): expose menu label slot
---
apps/web/src/components/ui/menu.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/apps/web/src/components/ui/menu.tsx b/apps/web/src/components/ui/menu.tsx
index 2df8d830dafd..792aba76f311 100644
--- a/apps/web/src/components/ui/menu.tsx
+++ b/apps/web/src/components/ui/menu.tsx
@@ -115,6 +115,7 @@ function MenuItem({
function MenuItemLabel({ className, ...props }: React.ComponentProps<"span">) {
return (
Date: Sun, 20 Sep 2026 14:25:25 +0000
Subject: [PATCH 9/9] fix(web): expose breadcrumb text slot props
---
apps/web/src/components/WorkspaceBreadcrumb.tsx | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/apps/web/src/components/WorkspaceBreadcrumb.tsx b/apps/web/src/components/WorkspaceBreadcrumb.tsx
index 3e3beb8f39e5..015e381aa251 100644
--- a/apps/web/src/components/WorkspaceBreadcrumb.tsx
+++ b/apps/web/src/components/WorkspaceBreadcrumb.tsx
@@ -1,4 +1,4 @@
-import type { ReactNode } from "react";
+import type { ComponentProps, ReactNode } from "react";
import { cn } from "../lib/utils";
@@ -26,21 +26,17 @@ interface WorkspaceBreadcrumbItemProps {
readonly current?: boolean;
}
-export function WorkspaceBreadcrumbText({
- children,
- className,
-}: {
- readonly children: ReactNode;
- readonly className?: string;
-}) {
+export function WorkspaceBreadcrumbText({ children, className, ...props }: ComponentProps<"span">) {
return (
{children}