@tutti-os/workspace-issue-manager 0.0.2 → 0.0.4

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.
@@ -23,7 +23,7 @@ import {
23
23
  resolveIssueManagerTopicDeleteErrorMessage,
24
24
  toContextRefInput,
25
25
  toIssueManagerWorkspaceFileLinkInput
26
- } from "./chunk-4B2P64PY.js";
26
+ } from "./chunk-FZXBXPXT.js";
27
27
  import {
28
28
  appendIssueManagerWorkspaceFileLinksToContent,
29
29
  clampIssueManagerSidebarWidth,
@@ -34,7 +34,7 @@ import {
34
34
  issueManagerSidebarMinWidth,
35
35
  normalizeIssueManagerContent,
36
36
  shouldAutoCollapseIssueManagerSidebar
37
- } from "./chunk-WJSZFKUD.js";
37
+ } from "./chunk-QRRPA7TH.js";
38
38
 
39
39
  // src/ui/react/internal/shell/IssueManagerNodeState.ts
40
40
  import { useEffect, useEffectEvent, useState } from "react";
@@ -1850,6 +1850,7 @@ function useIssueManagerController({
1850
1850
  notification,
1851
1851
  providerOptions,
1852
1852
  executionDirectoryProjectService: feature.executionDirectoryPicker?.service ?? null,
1853
+ workspaceUserProjectI18n: feature.workspaceUserProjectI18n,
1853
1854
  listExecutionDirectoryProjects: () => feature.executionDirectoryPicker?.list() ?? Promise.resolve({ projects: [] }),
1854
1855
  referenceTarget,
1855
1856
  selectTopic(topicId) {
@@ -2110,20 +2111,20 @@ function IssueManagerDetailTextSection({
2110
2111
  const bodyText = stripIssueManagerDescriptionTerminalPunctuation(body);
2111
2112
  const metaText = meta ? stripIssueManagerDescriptionTerminalPunctuation(meta) : null;
2112
2113
  const bodyClassName = cn(
2113
- "max-w-full whitespace-normal break-words text-[14px] leading-5 [overflow-wrap:anywhere]",
2114
+ "max-w-full whitespace-normal break-words text-[13px] leading-5 [overflow-wrap:anywhere]",
2114
2115
  isPlaceholder ? "font-normal text-[var(--text-secondary)]" : tone === "destructive" ? "font-semibold text-[var(--state-danger)]" : "font-semibold text-[var(--text-primary)]"
2115
2116
  );
2116
2117
  if (isPlaceholder) {
2117
2118
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2118
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: label }),
2119
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: label }),
2119
2120
  /* @__PURE__ */ jsx3("p", { className: bodyClassName, children: bodyText })
2120
2121
  ] });
2121
2122
  }
2122
2123
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2123
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: label }),
2124
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: label }),
2124
2125
  /* @__PURE__ */ jsxs3("div", { className: "min-w-0 rounded-[12px] border border-[var(--line-2)] px-4 py-3", children: [
2125
2126
  /* @__PURE__ */ jsx3("p", { className: bodyClassName, children: bodyText }),
2126
- metaText ? /* @__PURE__ */ jsx3("p", { className: "mt-1 truncate text-xs font-normal text-[var(--text-secondary)]", children: metaText }) : null
2127
+ metaText ? /* @__PURE__ */ jsx3("p", { className: "mt-1 truncate text-[11px] font-normal text-[var(--text-secondary)]", children: metaText }) : null
2127
2128
  ] })
2128
2129
  ] });
2129
2130
  }
@@ -2161,7 +2162,7 @@ function IssueManagerLatestRunStatusSection({
2161
2162
  }) : null;
2162
2163
  if (renderedLatestRunStatus !== null && renderedLatestRunStatus !== void 0) {
2163
2164
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2164
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.latestRunStatus") }),
2165
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: copy.t("labels.latestRunStatus") }),
2165
2166
  renderedLatestRunStatus
2166
2167
  ] });
2167
2168
  }
@@ -2184,7 +2185,7 @@ function IssueManagerLatestRunStatusSection({
2184
2185
  "p",
2185
2186
  {
2186
2187
  className: cn(
2187
- "min-w-0 flex-1 text-[14px] font-semibold leading-5 text-[var(--text-primary)] [overflow-wrap:anywhere]",
2188
+ "min-w-0 flex-1 text-[13px] font-semibold leading-5 text-[var(--text-primary)] [overflow-wrap:anywhere]",
2188
2189
  agentSessionId ? "font-mono" : ""
2189
2190
  ),
2190
2191
  children: primaryText
@@ -2192,9 +2193,9 @@ function IssueManagerLatestRunStatusSection({
2192
2193
  ),
2193
2194
  /* @__PURE__ */ jsx3(Badge, { variant: issueManagerStatusBadgeVariant(latestRun.status), children: statusLabel })
2194
2195
  ] }),
2195
- summary && agentSessionId ? /* @__PURE__ */ jsx3("p", { className: "mt-1 text-xs font-normal leading-5 text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: summary }) : null,
2196
- timestamp ? /* @__PURE__ */ jsx3("p", { className: "mt-1 truncate text-xs font-normal text-[var(--text-secondary)]", children: timestamp }) : null,
2197
- errorMessage ? /* @__PURE__ */ jsx3("p", { className: "mt-2 text-xs font-medium leading-5 text-[var(--state-danger)] [overflow-wrap:anywhere]", children: errorMessage }) : null
2196
+ summary && agentSessionId ? /* @__PURE__ */ jsx3("p", { className: "mt-1 text-[11px] font-normal leading-5 text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: summary }) : null,
2197
+ timestamp ? /* @__PURE__ */ jsx3("p", { className: "mt-1 truncate text-[11px] font-normal text-[var(--text-secondary)]", children: timestamp }) : null,
2198
+ errorMessage ? /* @__PURE__ */ jsx3("p", { className: "mt-2 text-[11px] font-medium leading-5 text-[var(--state-danger)] [overflow-wrap:anywhere]", children: errorMessage }) : null
2198
2199
  ] })
2199
2200
  ] });
2200
2201
  const cardClassName = cn(
@@ -2202,7 +2203,7 @@ function IssueManagerLatestRunStatusSection({
2202
2203
  canOpenAgentSession ? "w-full bg-transparent text-left transition-colors hover:bg-transparency-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/25 focus-visible:ring-inset" : "bg-transparent"
2203
2204
  );
2204
2205
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2205
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.latestRunStatus") }),
2206
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: copy.t("labels.latestRunStatus") }),
2206
2207
  canOpenAgentSession ? /* @__PURE__ */ jsx3(
2207
2208
  "button",
2208
2209
  {
@@ -2224,8 +2225,8 @@ function IssueManagerOutputSection({
2224
2225
  outputs
2225
2226
  }) {
2226
2227
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2227
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.executionOutputs") }),
2228
- outputs.length === 0 ? /* @__PURE__ */ jsx3("p", { className: "text-sm font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noExecutionOutputs") }) : /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-[12px] border border-[var(--line-2)] bg-transparent", children: outputs.map((output) => /* @__PURE__ */ jsxs3(
2228
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: copy.t("labels.executionOutputs") }),
2229
+ outputs.length === 0 ? /* @__PURE__ */ jsx3("p", { className: "text-[13px] font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noExecutionOutputs") }) : /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-[12px] border border-[var(--line-2)] bg-transparent", children: outputs.map((output) => /* @__PURE__ */ jsxs3(
2229
2230
  "button",
2230
2231
  {
2231
2232
  className: "flex w-full items-start justify-between gap-4 border-b border-[var(--line-2)] px-4 py-3 text-left transition-colors last:border-b-0 hover:bg-transparency-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/25 focus-visible:ring-inset",
@@ -2239,10 +2240,10 @@ function IssueManagerOutputSection({
2239
2240
  },
2240
2241
  children: [
2241
2242
  /* @__PURE__ */ jsxs3("span", { className: "min-w-0 flex-1", children: [
2242
- /* @__PURE__ */ jsx3("span", { className: "block truncate text-sm font-semibold text-[var(--text-primary)]", children: output.displayName }),
2243
- /* @__PURE__ */ jsx3("span", { className: "mt-1 block truncate text-xs font-normal text-[var(--text-secondary)]", children: output.path })
2243
+ /* @__PURE__ */ jsx3("span", { className: "block truncate text-[13px] font-semibold text-[var(--text-primary)]", children: output.displayName }),
2244
+ /* @__PURE__ */ jsx3("span", { className: "mt-1 block truncate text-[11px] font-normal text-[var(--text-secondary)]", children: output.path })
2244
2245
  ] }),
2245
- /* @__PURE__ */ jsx3("span", { className: "shrink-0 text-xs font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(output.createdAtUnix) || "" })
2246
+ /* @__PURE__ */ jsx3("span", { className: "shrink-0 text-[11px] font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(output.createdAtUnix) || "" })
2246
2247
  ]
2247
2248
  },
2248
2249
  output.outputId
@@ -2258,13 +2259,13 @@ function IssueManagerSubtaskSection({
2258
2259
  }) {
2259
2260
  return /* @__PURE__ */ jsxs3("section", { className: "grid gap-2.5", children: [
2260
2261
  /* @__PURE__ */ jsxs3("div", { className: "flex items-center justify-between gap-3", children: [
2261
- /* @__PURE__ */ jsx3("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.subtasks") }),
2262
+ /* @__PURE__ */ jsx3("h3", { className: "text-[13px] font-semibold text-[var(--text-primary)]", children: copy.t("labels.subtasks") }),
2262
2263
  /* @__PURE__ */ jsxs3(Button2, { size: "dialog", type: "button", variant: "ghost", onClick: onCreate, children: [
2263
2264
  /* @__PURE__ */ jsx3(FileCreateIcon2, { size: 14 }),
2264
2265
  copy.t("actions.add")
2265
2266
  ] })
2266
2267
  ] }),
2267
- tasks.length === 0 ? /* @__PURE__ */ jsx3("p", { className: "text-sm font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noSubtasksForIssue") }) : /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-lg border border-[var(--line-2)] bg-transparent", children: tasks.map((task) => /* @__PURE__ */ jsxs3(
2268
+ tasks.length === 0 ? /* @__PURE__ */ jsx3("p", { className: "text-[13px] font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noSubtasksForIssue") }) : /* @__PURE__ */ jsx3("div", { className: "overflow-hidden rounded-lg border border-[var(--line-2)] bg-transparent", children: tasks.map((task) => /* @__PURE__ */ jsxs3(
2268
2269
  "button",
2269
2270
  {
2270
2271
  className: cn(
@@ -2276,15 +2277,15 @@ function IssueManagerSubtaskSection({
2276
2277
  children: [
2277
2278
  /* @__PURE__ */ jsxs3("div", { className: "min-w-0 flex-1", children: [
2278
2279
  /* @__PURE__ */ jsxs3("div", { className: "flex min-w-0 items-center gap-2.5", children: [
2279
- /* @__PURE__ */ jsx3(IssueManagerTitleTooltip, { title: task.title, children: /* @__PURE__ */ jsx3("span", { className: "truncate text-sm font-semibold text-[var(--text-primary)]", children: task.title }) }),
2280
+ /* @__PURE__ */ jsx3(IssueManagerTitleTooltip, { title: task.title, children: /* @__PURE__ */ jsx3("span", { className: "truncate text-[13px] font-semibold text-[var(--text-primary)]", children: task.title }) }),
2280
2281
  /* @__PURE__ */ jsx3(Badge, { variant: issueManagerStatusBadgeVariant(task.status), children: resolveIssueManagerStatusLabel(copy, task.status) })
2281
2282
  ] }),
2282
- /* @__PURE__ */ jsx3("p", { className: "mt-2 line-clamp-2 text-[12px] font-normal leading-[1.5] text-[var(--text-secondary)]", children: summarizeIssueManagerContent(
2283
+ /* @__PURE__ */ jsx3("p", { className: "mt-2 line-clamp-2 text-[11px] font-normal leading-[1.5] text-[var(--text-secondary)]", children: summarizeIssueManagerContent(
2283
2284
  task.content,
2284
2285
  copy.t("messages.taskContentEmpty")
2285
2286
  ) })
2286
2287
  ] }),
2287
- /* @__PURE__ */ jsx3("span", { className: "shrink-0 text-xs font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(
2288
+ /* @__PURE__ */ jsx3("span", { className: "shrink-0 text-[11px] font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(
2288
2289
  task.createdAtUnix ?? task.updatedAtUnix
2289
2290
  ) || "" })
2290
2291
  ]
@@ -2343,18 +2344,18 @@ function IssueManagerDescriptionSection({
2343
2344
  }, [displayContent, variant]);
2344
2345
  if (variant === "plain") {
2345
2346
  return /* @__PURE__ */ jsxs4("section", { className: "grid gap-2", children: [
2346
- /* @__PURE__ */ jsx4("span", { className: "text-sm font-semibold leading-5 text-[var(--text-primary)]", children: label }),
2347
- displayContent ? /* @__PURE__ */ jsx4("div", { className: "max-w-3xl text-sm font-normal leading-5 text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx4(
2347
+ /* @__PURE__ */ jsx4("span", { className: "text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: label }),
2348
+ displayContent ? /* @__PURE__ */ jsx4("div", { className: "max-w-3xl text-[13px] font-normal leading-5 text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx4(
2348
2349
  IssueManagerDescriptionContent,
2349
2350
  {
2350
2351
  content: displayContent,
2351
2352
  onOpen
2352
2353
  }
2353
- ) }) : /* @__PURE__ */ jsx4("p", { className: "text-sm font-normal leading-5 text-[var(--text-secondary)]", children: emptyLabel })
2354
+ ) }) : /* @__PURE__ */ jsx4("p", { className: "text-[13px] font-normal leading-5 text-[var(--text-secondary)]", children: emptyLabel })
2354
2355
  ] });
2355
2356
  }
2356
2357
  return /* @__PURE__ */ jsxs4("section", { className: "grid gap-2", children: [
2357
- /* @__PURE__ */ jsx4("span", { className: "text-sm font-semibold leading-5 text-[var(--text-primary)]", children: label }),
2358
+ /* @__PURE__ */ jsx4("span", { className: "text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: label }),
2358
2359
  /* @__PURE__ */ jsxs4(
2359
2360
  "div",
2360
2361
  {
@@ -2367,7 +2368,7 @@ function IssueManagerDescriptionSection({
2367
2368
  "div",
2368
2369
  {
2369
2370
  className: cn2(
2370
- "max-h-[18rem] overflow-y-auto pr-2 text-sm font-normal leading-5 text-[var(--text-secondary)]",
2371
+ "max-h-[18rem] overflow-y-auto pr-2 text-[13px] font-normal leading-5 text-[var(--text-secondary)]",
2371
2372
  isOverflowing && "pb-8"
2372
2373
  ),
2373
2374
  ref: contentRef,
@@ -2416,8 +2417,8 @@ import { useEffect as useEffect5, useMemo as useMemo3, useRef as useRef2, useSta
2416
2417
  import { RichTextAtEditor } from "@tutti-os/ui-rich-text/editor";
2417
2418
  import { Button as Button3, LinkIcon, cn as cn3 } from "@tutti-os/ui-system";
2418
2419
  import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
2419
- var issueManagerRichTextTextareaBaseClassName = "min-h-20 w-full rounded-[8px] border border-transparent bg-[var(--transparency-block)] p-3 text-sm font-normal leading-[1.3] text-[var(--text-primary)] transition-[background-color,border-color,color] outline-none shadow-none placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none";
2420
- var issueManagerRichTextPlaceholderBaseClassName = "min-h-20 w-full p-3 text-sm font-normal leading-[1.3] text-[var(--text-placeholder)]";
2420
+ var issueManagerRichTextTextareaBaseClassName = "min-h-20 w-full rounded-[8px] border border-transparent bg-[var(--transparency-block)] p-3 text-[13px] font-normal leading-[1.3] text-[var(--text-primary)] transition-[background-color,border-color,color] outline-none shadow-none placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:bg-[var(--transparency-hover)] focus-visible:border-transparent focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 disabled:cursor-not-allowed disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100 aria-invalid:border-[var(--state-danger)] aria-invalid:bg-[var(--transparency-block)] aria-invalid:hover:bg-[var(--transparency-hover)] aria-invalid:focus:bg-[var(--transparency-hover)] aria-invalid:focus-visible:bg-[var(--transparency-hover)] aria-invalid:ring-0 aria-invalid:shadow-none";
2421
+ var issueManagerRichTextPlaceholderBaseClassName = "min-h-20 w-full p-3 text-[13px] font-normal leading-[1.3] text-[var(--text-placeholder)]";
2421
2422
  function IssueManagerRichTextTextarea({
2422
2423
  controller,
2423
2424
  onChange,
@@ -2576,54 +2577,61 @@ function IssueManagerIssuePane({
2576
2577
  const [deleteBusy, setDeleteBusy] = useState5(false);
2577
2578
  if (isCreatingIssue || isEditingIssue) {
2578
2579
  return /* @__PURE__ */ jsxs6("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
2579
- /* @__PURE__ */ jsx7(ScrollArea2, { className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain", children: /* @__PURE__ */ jsx7("div", { className: "flex min-h-full flex-col gap-[14px] px-7 py-8", children: /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
2580
- /* @__PURE__ */ jsx7(
2581
- "div",
2582
- {
2583
- className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
2584
- children: /* @__PURE__ */ jsx7("h2", { className: "m-0 text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: isCreatingIssue ? copy.t("actions.createIssue") : copy.t("actions.editIssue") })
2585
- }
2586
- ),
2587
- /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
2588
- /* @__PURE__ */ jsxs6(
2589
- "label",
2590
- {
2591
- className: `flex w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
2592
- children: [
2593
- /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.title") }),
2594
- /* @__PURE__ */ jsx7(
2595
- IssueManagerDraftTitleInput,
2596
- {
2597
- placeholder: copy.t("composer.issueTitlePlaceholder"),
2598
- value: controller.issueDraft.title,
2599
- onChange: controller.setIssueTitle
2600
- }
2601
- )
2602
- ]
2603
- }
2604
- ),
2605
- /* @__PURE__ */ jsxs6(
2606
- "div",
2607
- {
2608
- className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
2609
- children: [
2610
- /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.content") }),
2611
- /* @__PURE__ */ jsx7(
2612
- IssueManagerRichTextTextarea,
2613
- {
2614
- controller,
2615
- surface: "issue",
2616
- textareaClassName: "min-h-[180px] resize-none",
2617
- placeholder: copy.t("composer.issueContentPlaceholder"),
2618
- value: controller.issueDraft.content,
2619
- onChange: controller.setIssueContent
2620
- }
2621
- )
2622
- ]
2623
- }
2624
- )
2625
- ] })
2626
- ] }) }) }),
2580
+ /* @__PURE__ */ jsx7(
2581
+ ScrollArea2,
2582
+ {
2583
+ scrollbarMode: "native",
2584
+ className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
2585
+ children: /* @__PURE__ */ jsx7("div", { className: "flex min-h-full flex-col gap-[14px] px-7 py-8", children: /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
2586
+ /* @__PURE__ */ jsx7(
2587
+ "div",
2588
+ {
2589
+ className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
2590
+ children: /* @__PURE__ */ jsx7("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: isCreatingIssue ? copy.t("actions.createIssue") : copy.t("actions.editIssue") })
2591
+ }
2592
+ ),
2593
+ /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
2594
+ /* @__PURE__ */ jsxs6(
2595
+ "label",
2596
+ {
2597
+ className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
2598
+ children: [
2599
+ /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.title") }),
2600
+ /* @__PURE__ */ jsx7(
2601
+ IssueManagerDraftTitleInput,
2602
+ {
2603
+ placeholder: copy.t("composer.issueTitlePlaceholder"),
2604
+ value: controller.issueDraft.title,
2605
+ onChange: controller.setIssueTitle
2606
+ }
2607
+ )
2608
+ ]
2609
+ }
2610
+ ),
2611
+ /* @__PURE__ */ jsxs6(
2612
+ "div",
2613
+ {
2614
+ className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
2615
+ children: [
2616
+ /* @__PURE__ */ jsx7("span", { className: "leading-5", children: copy.t("labels.content") }),
2617
+ /* @__PURE__ */ jsx7(
2618
+ IssueManagerRichTextTextarea,
2619
+ {
2620
+ controller,
2621
+ surface: "issue",
2622
+ textareaClassName: "min-h-[180px] resize-none",
2623
+ placeholder: copy.t("composer.issueContentPlaceholder"),
2624
+ value: controller.issueDraft.content,
2625
+ onChange: controller.setIssueContent
2626
+ }
2627
+ )
2628
+ ]
2629
+ }
2630
+ )
2631
+ ] })
2632
+ ] }) })
2633
+ }
2634
+ ),
2627
2635
  /* @__PURE__ */ jsx7(
2628
2636
  "div",
2629
2637
  {
@@ -2657,127 +2665,134 @@ function IssueManagerIssuePane({
2657
2665
  if (!selectedIssue) {
2658
2666
  return /* @__PURE__ */ jsx7("div", { className: "h-full min-h-0" });
2659
2667
  }
2660
- return /* @__PURE__ */ jsx7("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsx7(ScrollArea2, { className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain", children: /* @__PURE__ */ jsx7("div", { className: "px-8 py-7", children: controller.issueDetail.isLoading && controller.issueDetail.value === null ? /* @__PURE__ */ jsx7(IssueManagerPaneLoadingState, {}) : /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-9", children: [
2661
- /* @__PURE__ */ jsxs6("header", { className: "grid gap-3", children: [
2662
- /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between gap-6", children: [
2663
- /* @__PURE__ */ jsx7(IssueManagerTitleTooltip, { title: selectedIssue.title, children: /* @__PURE__ */ jsx7("h2", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-base font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: selectedIssue.title }) }),
2664
- /* @__PURE__ */ jsxs6("div", { className: "flex shrink-0 items-center gap-2", children: [
2665
- /* @__PURE__ */ jsx7(
2666
- Button4,
2667
- {
2668
- type: "button",
2669
- variant: "ghost",
2670
- onClick: () => controller.setIssueEditorMode("edit"),
2671
- children: copy.t("actions.edit")
2672
- }
2673
- ),
2674
- /* @__PURE__ */ jsx7(
2675
- Button4,
2676
- {
2677
- className: "text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
2678
- type: "button",
2679
- variant: "ghost",
2680
- onClick: () => setDeleteDialogOpen(true),
2681
- children: copy.t("actions.delete")
2682
- }
2683
- )
2684
- ] })
2685
- ] }),
2686
- /* @__PURE__ */ jsxs6("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[12px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
2668
+ return /* @__PURE__ */ jsx7("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: /* @__PURE__ */ jsx7(
2669
+ ScrollArea2,
2670
+ {
2671
+ scrollbarMode: "native",
2672
+ className: "min-h-0 flex-1 [&_[data-orientation=vertical][data-slot=scroll-area-scrollbar]]:opacity-100 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
2673
+ children: /* @__PURE__ */ jsx7("div", { className: "px-8 py-7", children: controller.issueDetail.isLoading && controller.issueDetail.value === null ? /* @__PURE__ */ jsx7(IssueManagerPaneLoadingState, {}) : /* @__PURE__ */ jsxs6("div", { className: "flex w-full min-w-0 flex-col gap-9", children: [
2674
+ /* @__PURE__ */ jsxs6("header", { className: "grid gap-3", children: [
2675
+ /* @__PURE__ */ jsxs6("div", { className: "flex items-center justify-between gap-6", children: [
2676
+ /* @__PURE__ */ jsx7(IssueManagerTitleTooltip, { title: selectedIssue.title, children: /* @__PURE__ */ jsx7("h2", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: selectedIssue.title }) }),
2677
+ /* @__PURE__ */ jsxs6("div", { className: "flex shrink-0 items-center gap-2", children: [
2678
+ /* @__PURE__ */ jsx7(
2679
+ Button4,
2680
+ {
2681
+ type: "button",
2682
+ variant: "ghost",
2683
+ onClick: () => controller.setIssueEditorMode("edit"),
2684
+ children: copy.t("actions.edit")
2685
+ }
2686
+ ),
2687
+ /* @__PURE__ */ jsx7(
2688
+ Button4,
2689
+ {
2690
+ className: "text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
2691
+ type: "button",
2692
+ variant: "ghost",
2693
+ onClick: () => setDeleteDialogOpen(true),
2694
+ children: copy.t("actions.delete")
2695
+ }
2696
+ )
2697
+ ] })
2698
+ ] }),
2699
+ /* @__PURE__ */ jsxs6("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
2700
+ /* @__PURE__ */ jsx7(
2701
+ Badge2,
2702
+ {
2703
+ variant: issueManagerStatusBadgeVariant(
2704
+ selectedIssue.status
2705
+ ),
2706
+ children: resolveIssueManagerStatusLabel(copy, selectedIssue.status)
2707
+ }
2708
+ ),
2709
+ /* @__PURE__ */ jsx7(
2710
+ "span",
2711
+ {
2712
+ "aria-hidden": "true",
2713
+ className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2714
+ }
2715
+ ),
2716
+ /* @__PURE__ */ jsxs6("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2717
+ copy.t("labels.creator"),
2718
+ " ",
2719
+ resolveIssueManagerCreatorLabel(selectedIssue)
2720
+ ] }),
2721
+ /* @__PURE__ */ jsx7(
2722
+ "span",
2723
+ {
2724
+ "aria-hidden": "true",
2725
+ className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2726
+ }
2727
+ ),
2728
+ /* @__PURE__ */ jsxs6("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
2729
+ copy.t("labels.createdAt"),
2730
+ " ",
2731
+ formatIssueManagerTimestamp(selectedIssue.createdAtUnix) || "-"
2732
+ ] })
2733
+ ] })
2734
+ ] }),
2687
2735
  /* @__PURE__ */ jsx7(
2688
- Badge2,
2736
+ ConfirmationDialog,
2689
2737
  {
2690
- variant: issueManagerStatusBadgeVariant(
2691
- selectedIssue.status
2692
- ),
2693
- children: resolveIssueManagerStatusLabel(copy, selectedIssue.status)
2738
+ cancelLabel: copy.t("actions.cancel"),
2739
+ confirmBusy: deleteBusy,
2740
+ confirmLabel: copy.t("actions.delete"),
2741
+ description: selectedIssue.title,
2742
+ open: deleteDialogOpen,
2743
+ title: copy.t("confirmations.deleteIssue"),
2744
+ tone: "destructive",
2745
+ onConfirm: () => {
2746
+ setDeleteBusy(true);
2747
+ void controller.deleteIssue({ skipConfirmation: true }).finally(() => {
2748
+ setDeleteBusy(false);
2749
+ setDeleteDialogOpen(false);
2750
+ });
2751
+ },
2752
+ onOpenChange: setDeleteDialogOpen
2694
2753
  }
2695
2754
  ),
2696
2755
  /* @__PURE__ */ jsx7(
2697
- "span",
2756
+ IssueManagerDescriptionSection,
2698
2757
  {
2699
- "aria-hidden": "true",
2700
- className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2758
+ content: issueContent,
2759
+ emptyLabel: copy.t("messages.issueContentEmpty"),
2760
+ label: copy.t("labels.description"),
2761
+ onOpen: controller.openReference,
2762
+ variant: "plain"
2701
2763
  }
2702
2764
  ),
2703
- /* @__PURE__ */ jsxs6("span", { className: "text-[12px] font-normal leading-[1.3]", children: [
2704
- copy.t("labels.creator"),
2705
- " ",
2706
- resolveIssueManagerCreatorLabel(selectedIssue)
2707
- ] }),
2708
2765
  /* @__PURE__ */ jsx7(
2709
- "span",
2766
+ IssueManagerLatestRunStatusSection,
2710
2767
  {
2711
- "aria-hidden": "true",
2712
- className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
2768
+ copy,
2769
+ latestRun,
2770
+ onOpenAgentSession: controller.canOpenAgentSessions ? controller.openAgentSession : void 0,
2771
+ renderLatestRunStatus,
2772
+ title: selectedTask?.title ?? selectedIssue.title
2713
2773
  }
2714
2774
  ),
2715
- /* @__PURE__ */ jsxs6("span", { className: "text-[12px] font-normal leading-[1.3]", children: [
2716
- copy.t("labels.createdAt"),
2717
- " ",
2718
- formatIssueManagerTimestamp(selectedIssue.createdAtUnix) || "-"
2719
- ] })
2720
- ] })
2721
- ] }),
2722
- /* @__PURE__ */ jsx7(
2723
- ConfirmationDialog,
2724
- {
2725
- cancelLabel: copy.t("actions.cancel"),
2726
- confirmBusy: deleteBusy,
2727
- confirmLabel: copy.t("actions.delete"),
2728
- description: selectedIssue.title,
2729
- open: deleteDialogOpen,
2730
- title: copy.t("confirmations.deleteIssue"),
2731
- tone: "destructive",
2732
- onConfirm: () => {
2733
- setDeleteBusy(true);
2734
- void controller.deleteIssue({ skipConfirmation: true }).finally(() => {
2735
- setDeleteBusy(false);
2736
- setDeleteDialogOpen(false);
2737
- });
2738
- },
2739
- onOpenChange: setDeleteDialogOpen
2740
- }
2741
- ),
2742
- /* @__PURE__ */ jsx7(
2743
- IssueManagerDescriptionSection,
2744
- {
2745
- content: issueContent,
2746
- emptyLabel: copy.t("messages.issueContentEmpty"),
2747
- label: copy.t("labels.description"),
2748
- onOpen: controller.openReference,
2749
- variant: "plain"
2750
- }
2751
- ),
2752
- /* @__PURE__ */ jsx7(
2753
- IssueManagerLatestRunStatusSection,
2754
- {
2755
- copy,
2756
- latestRun,
2757
- onOpenAgentSession: controller.canOpenAgentSessions ? controller.openAgentSession : void 0,
2758
- renderLatestRunStatus,
2759
- title: selectedTask?.title ?? selectedIssue.title
2760
- }
2761
- ),
2762
- /* @__PURE__ */ jsx7(
2763
- IssueManagerOutputSection,
2764
- {
2765
- copy,
2766
- outputs: latestOutputs,
2767
- onOpen: controller.openReference
2768
- }
2769
- ),
2770
- /* @__PURE__ */ jsx7(
2771
- IssueManagerSubtaskSection,
2772
- {
2773
- copy,
2774
- onCreate: controller.createTaskDraft,
2775
- onSelectTask: controller.selectTask,
2776
- selectedTaskId: selectedTask?.taskId ?? null,
2777
- tasks
2778
- }
2779
- )
2780
- ] }) }) }) });
2775
+ /* @__PURE__ */ jsx7(
2776
+ IssueManagerOutputSection,
2777
+ {
2778
+ copy,
2779
+ outputs: latestOutputs,
2780
+ onOpen: controller.openReference
2781
+ }
2782
+ ),
2783
+ /* @__PURE__ */ jsx7(
2784
+ IssueManagerSubtaskSection,
2785
+ {
2786
+ copy,
2787
+ onCreate: controller.createTaskDraft,
2788
+ onSelectTask: controller.selectTask,
2789
+ selectedTaskId: selectedTask?.taskId ?? null,
2790
+ tasks
2791
+ }
2792
+ )
2793
+ ] }) })
2794
+ }
2795
+ ) });
2781
2796
  }
2782
2797
 
2783
2798
  // src/ui/internal/shell/IssueManagerBottomBar.tsx
@@ -2961,16 +2976,7 @@ function IssueManagerExecutionDirectoryTrigger({
2961
2976
  },
2962
2977
  contentAlign: "end",
2963
2978
  disabled,
2964
- labels: {
2965
- linkExistingProject: controller.copy.t(
2966
- "actions.linkExistingExecutionDirectory"
2967
- ),
2968
- loadingProjects: controller.copy.t(
2969
- "labels.loadingExecutionDirectories"
2970
- ),
2971
- noProject: controller.copy.t("labels.noProject"),
2972
- projectLabel: controller.copy.t("actions.selectExecutionDirectory")
2973
- },
2979
+ i18n: controller.workspaceUserProjectI18n,
2974
2980
  service: controller.executionDirectoryProjectService,
2975
2981
  selectedProjectPath: controller.nodeState.selectedExecutionDirectory,
2976
2982
  unlistedProjectLabel: controller.copy.t(
@@ -3271,6 +3277,7 @@ function IssueManagerSidebarBody({
3271
3277
  return /* @__PURE__ */ jsx11(
3272
3278
  ScrollArea3,
3273
3279
  {
3280
+ scrollbarMode: "native",
3274
3281
  className: cn6("min-h-0", isNarrowLayout ? "flex-none" : "h-full flex-1"),
3275
3282
  children: /* @__PURE__ */ jsx11(
3276
3283
  "div",
@@ -3356,7 +3363,7 @@ function IssueManagerSearchField({
3356
3363
  {
3357
3364
  "aria-label": placeholder,
3358
3365
  className: cn6(
3359
- "box-border h-8 min-h-8 rounded-md border-0 bg-[var(--transparency-block)] px-3 text-sm font-normal leading-normal text-[var(--text-primary)] shadow-none outline-none ring-0 transition-colors placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:border-0 focus:bg-[var(--transparency-hover)] focus-visible:border-0 focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 focus-visible:ring-offset-0 disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100",
3366
+ "box-border h-8 min-h-8 rounded-md border-0 bg-[var(--transparency-block)] px-3 text-[13px] font-normal leading-normal text-[var(--text-primary)] shadow-none outline-none ring-0 transition-colors placeholder:text-[var(--text-placeholder)] hover:bg-[var(--transparency-hover)] focus:border-0 focus:bg-[var(--transparency-hover)] focus-visible:border-0 focus-visible:bg-[var(--transparency-hover)] focus-visible:ring-0 focus-visible:ring-offset-0 disabled:bg-[var(--transparency-block)] disabled:text-[var(--text-disabled)] disabled:opacity-100",
3360
3367
  "[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none",
3361
3368
  searchInput.value ? "pr-9" : "pr-3"
3362
3369
  ),
@@ -3442,10 +3449,10 @@ function IssueManagerSidebarItem({
3442
3449
  }
3443
3450
  ),
3444
3451
  /* @__PURE__ */ jsxs9("div", { className: "min-w-0 space-y-2", children: [
3445
- /* @__PURE__ */ jsx11("p", { className: "pr-28 text-[12px] leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerDate(issue.updatedAtUnix ?? issue.createdAtUnix) }),
3446
- /* @__PURE__ */ jsx11("p", { className: "line-clamp-4 text-[14px] font-medium leading-[1.35rem] text-[var(--text-primary)]", children: issue.title })
3452
+ /* @__PURE__ */ jsx11("p", { className: "pr-28 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerDate(issue.updatedAtUnix ?? issue.createdAtUnix) }),
3453
+ /* @__PURE__ */ jsx11("p", { className: "line-clamp-4 text-[13px] font-medium leading-[1.35rem] text-[var(--text-primary)]", children: issue.title })
3447
3454
  ] }),
3448
- /* @__PURE__ */ jsx11("div", { className: "mt-2 text-[12px] leading-[1.55] text-[var(--text-secondary)]", children: copy.t("labels.taskCount", { count: issue.taskCount ?? 0 }) })
3455
+ /* @__PURE__ */ jsx11("div", { className: "mt-2 text-[11px] leading-[1.55] text-[var(--text-secondary)]", children: copy.t("labels.taskCount", { count: issue.taskCount ?? 0 }) })
3449
3456
  ]
3450
3457
  }
3451
3458
  );
@@ -3495,7 +3502,7 @@ function IssueManagerSidebarEmptyState({
3495
3502
  "p",
3496
3503
  {
3497
3504
  className: cn6(
3498
- "max-w-sm text-sm leading-5 text-[var(--text-secondary)]",
3505
+ "max-w-sm text-[13px] leading-5 text-[var(--text-secondary)]",
3499
3506
  tone === "destructive" ? "text-[var(--state-danger)]" : "text-[var(--text-secondary)]"
3500
3507
  ),
3501
3508
  children: title
@@ -3518,7 +3525,7 @@ function IssueManagerSidebarErrorState({
3518
3525
  isNarrowLayout ? "h-24 max-h-24 min-h-24 w-full flex-[0_0_100%]" : "min-h-full"
3519
3526
  ),
3520
3527
  children: [
3521
- /* @__PURE__ */ jsx11("p", { className: "text-sm font-semibold leading-5 text-[var(--state-danger)]", children: title }),
3528
+ /* @__PURE__ */ jsx11("p", { className: "text-[13px] font-semibold leading-5 text-[var(--state-danger)]", children: title }),
3522
3529
  /* @__PURE__ */ jsx11(
3523
3530
  Button7,
3524
3531
  {
@@ -3655,14 +3662,14 @@ function IssueManagerTaskComposerPane({
3655
3662
  "div",
3656
3663
  {
3657
3664
  className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
3658
- children: /* @__PURE__ */ jsx13("h2", { className: "m-0 text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: copy.t("actions.addSubtask") })
3665
+ children: /* @__PURE__ */ jsx13("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: copy.t("actions.addSubtask") })
3659
3666
  }
3660
3667
  ),
3661
3668
  /* @__PURE__ */ jsxs11("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
3662
3669
  /* @__PURE__ */ jsxs11(
3663
3670
  "label",
3664
3671
  {
3665
- className: `flex w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3672
+ className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3666
3673
  children: [
3667
3674
  /* @__PURE__ */ jsx13("span", { className: "leading-5", children: copy.t("labels.title") }),
3668
3675
  /* @__PURE__ */ jsx13(
@@ -3679,7 +3686,7 @@ function IssueManagerTaskComposerPane({
3679
3686
  /* @__PURE__ */ jsxs11(
3680
3687
  "div",
3681
3688
  {
3682
- className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3689
+ className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3683
3690
  children: [
3684
3691
  /* @__PURE__ */ jsx13("span", { className: "leading-5", children: copy.t("labels.requirementDescription") }),
3685
3692
  /* @__PURE__ */ jsx13(
@@ -3747,7 +3754,7 @@ function IssueManagerTaskDrawerHeader({
3747
3754
  return /* @__PURE__ */ jsxs12(Fragment2, { children: [
3748
3755
  /* @__PURE__ */ jsxs12("div", { className: "grid gap-3 px-6 py-7", children: [
3749
3756
  /* @__PURE__ */ jsxs12("div", { className: "flex items-center justify-between gap-6", children: [
3750
- view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-base font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }) : /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }),
3757
+ view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-6 text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }) : /* @__PURE__ */ jsx14(IssueManagerTitleTooltip, { title: view.title, children: /* @__PURE__ */ jsx14("h3", { className: "line-clamp-2 min-w-0 flex-1 whitespace-normal text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)] [overflow-wrap:anywhere]", children: view.title }) }),
3751
3758
  /* @__PURE__ */ jsx14("div", { className: "flex shrink-0 items-center gap-2", children: view.showTaskActions && selectedTask ? /* @__PURE__ */ jsxs12(Fragment2, { children: [
3752
3759
  /* @__PURE__ */ jsx14(
3753
3760
  Button9,
@@ -3787,7 +3794,7 @@ function IssueManagerTaskDrawerHeader({
3787
3794
  cancelLabel: copy.t("actions.cancel"),
3788
3795
  confirmBusy: deleteBusy,
3789
3796
  confirmLabel: copy.t("actions.delete"),
3790
- description: selectedTask.title,
3797
+ description: /* @__PURE__ */ jsx14("span", { className: "block max-w-full whitespace-normal [overflow-wrap:anywhere]", children: selectedTask.title }),
3791
3798
  open: deleteDialogOpen,
3792
3799
  title: copy.t("confirmations.deleteTask"),
3793
3800
  tone: "destructive",
@@ -3807,7 +3814,7 @@ function IssueManagerTaskMetadataRow({
3807
3814
  copy,
3808
3815
  selectedTask
3809
3816
  }) {
3810
- return /* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[12px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
3817
+ return /* @__PURE__ */ jsxs12("div", { className: "flex flex-wrap items-center gap-x-2 gap-y-2 text-[11px] font-normal leading-[1.3] text-[var(--text-secondary)]", children: [
3811
3818
  /* @__PURE__ */ jsx14(Badge5, { variant: issueManagerStatusBadgeVariant(selectedTask.status), children: resolveIssueManagerStatusLabel(copy, selectedTask.status) }),
3812
3819
  /* @__PURE__ */ jsx14(
3813
3820
  "span",
@@ -3816,7 +3823,7 @@ function IssueManagerTaskMetadataRow({
3816
3823
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
3817
3824
  }
3818
3825
  ),
3819
- /* @__PURE__ */ jsxs12("span", { className: "text-[12px] font-normal leading-[1.3]", children: [
3826
+ /* @__PURE__ */ jsxs12("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3820
3827
  copy.t("labels.creator"),
3821
3828
  " ",
3822
3829
  resolveTaskCreatorLabel(selectedTask)
@@ -3828,7 +3835,7 @@ function IssueManagerTaskMetadataRow({
3828
3835
  className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
3829
3836
  }
3830
3837
  ),
3831
- /* @__PURE__ */ jsxs12("span", { className: "text-[12px] font-normal leading-[1.3]", children: [
3838
+ /* @__PURE__ */ jsxs12("span", { className: "text-[11px] font-normal leading-[1.3]", children: [
3832
3839
  copy.t("labels.createdAt"),
3833
3840
  " ",
3834
3841
  formatIssueManagerTimestamp(selectedTask.createdAtUnix) || "-"
@@ -3840,7 +3847,7 @@ function IssueManagerTaskAcceptanceCard({
3840
3847
  }) {
3841
3848
  const copy = controller.copy;
3842
3849
  return /* @__PURE__ */ jsxs12("div", { className: "grid gap-2 rounded-md bg-[var(--transparency-block)] px-3 py-2", children: [
3843
- /* @__PURE__ */ jsxs12("div", { className: "min-w-0 text-[12px] font-normal leading-[1.45] text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: [
3850
+ /* @__PURE__ */ jsxs12("div", { className: "min-w-0 text-[11px] font-normal leading-[1.45] text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: [
3844
3851
  /* @__PURE__ */ jsx14("span", { className: "font-semibold text-[var(--text-primary)]", children: copy.t("labels.taskAcceptance") }),
3845
3852
  /* @__PURE__ */ jsx14("span", { className: "mx-1 text-[var(--text-tertiary)]", children: "\xB7" }),
3846
3853
  /* @__PURE__ */ jsx14("span", { children: copy.t("messages.taskAcceptanceHint") })
@@ -3849,7 +3856,7 @@ function IssueManagerTaskAcceptanceCard({
3849
3856
  /* @__PURE__ */ jsx14(
3850
3857
  Button9,
3851
3858
  {
3852
- className: "h-7 px-2 text-xs text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
3859
+ className: "h-7 px-2 text-[11px] text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
3853
3860
  type: "button",
3854
3861
  variant: "ghost",
3855
3862
  onClick: () => void controller.setSelectedTaskStatus("not_started"),
@@ -3859,7 +3866,7 @@ function IssueManagerTaskAcceptanceCard({
3859
3866
  /* @__PURE__ */ jsx14(
3860
3867
  Button9,
3861
3868
  {
3862
- className: "h-7 px-2.5 text-xs",
3869
+ className: "h-7 px-2.5 text-[11px]",
3863
3870
  type: "button",
3864
3871
  variant: "secondary",
3865
3872
  onClick: () => void controller.setSelectedTaskStatus("completed"),
@@ -3910,14 +3917,14 @@ function IssueManagerTaskDrawerEditBody({
3910
3917
  "div",
3911
3918
  {
3912
3919
  className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
3913
- children: /* @__PURE__ */ jsx14("h2", { className: "m-0 text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: title })
3920
+ children: /* @__PURE__ */ jsx14("h2", { className: "m-0 text-[15px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: title })
3914
3921
  }
3915
3922
  ),
3916
3923
  /* @__PURE__ */ jsxs12("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
3917
3924
  /* @__PURE__ */ jsxs12(
3918
3925
  "label",
3919
3926
  {
3920
- className: `flex w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3927
+ className: `flex w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
3921
3928
  children: [
3922
3929
  /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.title") }),
3923
3930
  /* @__PURE__ */ jsx14(
@@ -3934,7 +3941,7 @@ function IssueManagerTaskDrawerEditBody({
3934
3941
  /* @__PURE__ */ jsxs12(
3935
3942
  "div",
3936
3943
  {
3937
- className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3944
+ className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-[13px] font-semibold text-[var(--text-secondary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
3938
3945
  children: [
3939
3946
  /* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.content") }),
3940
3947
  /* @__PURE__ */ jsx14(
@@ -4121,24 +4128,31 @@ function IssueManagerTaskDrawer({
4121
4128
  view
4122
4129
  }
4123
4130
  ),
4124
- /* @__PURE__ */ jsx15(ScrollArea4, { className: "min-h-0 flex-1 [&_[data-slot=scroll-area-viewport]]:overscroll-contain", children: /* @__PURE__ */ jsx15(
4125
- "div",
4131
+ /* @__PURE__ */ jsx15(
4132
+ ScrollArea4,
4126
4133
  {
4127
- className: cn8(
4128
- "flex flex-col",
4129
- view.bodyKind === "edit" ? "gap-[14px] px-6 py-8" : "gap-9 px-6 py-7"
4130
- ),
4134
+ scrollbarMode: "native",
4135
+ className: "min-h-0 flex-1 [&_[data-slot=scroll-area-viewport]]:overscroll-contain",
4131
4136
  children: /* @__PURE__ */ jsx15(
4132
- IssueManagerTaskDrawerBody,
4137
+ "div",
4133
4138
  {
4134
- controller,
4135
- renderLatestRunStatus,
4136
- taskContent,
4137
- view
4139
+ className: cn8(
4140
+ "flex flex-col",
4141
+ view.bodyKind === "edit" ? "gap-[14px] px-6 py-8" : "gap-9 px-6 py-7"
4142
+ ),
4143
+ children: /* @__PURE__ */ jsx15(
4144
+ IssueManagerTaskDrawerBody,
4145
+ {
4146
+ controller,
4147
+ renderLatestRunStatus,
4148
+ taskContent,
4149
+ view
4150
+ }
4151
+ )
4138
4152
  }
4139
4153
  )
4140
4154
  }
4141
- ) }),
4155
+ ),
4142
4156
  /* @__PURE__ */ jsx15(
4143
4157
  IssueManagerTaskDrawerFooter,
4144
4158
  {
@@ -4458,8 +4472,8 @@ function IssueManagerShellEmptyState({
4458
4472
  }) {
4459
4473
  return /* @__PURE__ */ jsx16("div", { className: "flex h-full min-h-[320px] items-center justify-center px-10 py-10", children: /* @__PURE__ */ jsxs14("div", { className: "grid max-w-[420px] justify-items-center gap-2 text-center", children: [
4460
4474
  emptyIllustration ? /* @__PURE__ */ jsx16("div", { className: "mb-4", children: emptyIllustration }) : null,
4461
- /* @__PURE__ */ jsx16("h2", { className: "text-[14px] font-semibold leading-5 text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
4462
- /* @__PURE__ */ jsx16("p", { className: "max-w-[420px] text-[14px] leading-5 text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
4475
+ /* @__PURE__ */ jsx16("h2", { className: "text-[13px] font-semibold leading-5 text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
4476
+ /* @__PURE__ */ jsx16("p", { className: "max-w-[420px] text-[13px] leading-5 text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
4463
4477
  /* @__PURE__ */ jsxs14(
4464
4478
  Button10,
4465
4479
  {
@@ -4538,7 +4552,7 @@ function IssueManagerTopicSelector({
4538
4552
  {
4539
4553
  "aria-label": topicLabel,
4540
4554
  className: cn10(
4541
- "max-w-[220px] gap-1 rounded-md border-0 bg-transparent text-sm font-normal shadow-none hover:bg-transparent focus:bg-transparent focus-visible:border-0 focus-visible:bg-transparent focus-visible:ring-0 active:bg-transparent aria-expanded:bg-transparent [&[data-state=open]>svg]:rotate-180",
4555
+ "max-w-[220px] gap-1 rounded-md border-0 bg-transparent text-[13px] font-normal shadow-none hover:bg-transparent focus:bg-transparent focus-visible:border-0 focus-visible:bg-transparent focus-visible:ring-0 active:bg-transparent aria-expanded:bg-transparent [&[data-state=open]>svg]:rotate-180",
4542
4556
  className
4543
4557
  ),
4544
4558
  size: "sm",
@@ -4655,7 +4669,7 @@ function IssueManagerTopicSelector({
4655
4669
  ] })
4656
4670
  ] }) }, topic.topicId);
4657
4671
  }),
4658
- topics.length === 0 ? /* @__PURE__ */ jsx17("div", { className: "px-3 py-2 text-xs leading-4 text-[var(--text-tertiary)]", children: copy.t("messages.topicListEmpty") }) : null,
4672
+ topics.length === 0 ? /* @__PURE__ */ jsx17("div", { className: "px-3 py-2 text-[11px] leading-4 text-[var(--text-tertiary)]", children: copy.t("messages.topicListEmpty") }) : null,
4659
4673
  /* @__PURE__ */ jsx17(DropdownMenuSeparator, {}),
4660
4674
  /* @__PURE__ */ jsxs15(
4661
4675
  DropdownMenuItem2,
@@ -4766,7 +4780,7 @@ function IssueManagerTopicDialog({
4766
4780
  /* @__PURE__ */ jsx17(DialogHeader, { children: /* @__PURE__ */ jsx17(DialogTitle, { children: dialogTitle }) }),
4767
4781
  /* @__PURE__ */ jsxs15("form", { className: "grid gap-4", onSubmit: submit, children: [
4768
4782
  /* @__PURE__ */ jsxs15("label", { className: "grid gap-2", children: [
4769
- /* @__PURE__ */ jsx17("span", { className: "text-xs font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicTitle") }),
4783
+ /* @__PURE__ */ jsx17("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicTitle") }),
4770
4784
  /* @__PURE__ */ jsx17(
4771
4785
  Input3,
4772
4786
  {
@@ -4778,7 +4792,7 @@ function IssueManagerTopicDialog({
4778
4792
  )
4779
4793
  ] }),
4780
4794
  /* @__PURE__ */ jsxs15("label", { className: "grid gap-2", children: [
4781
- /* @__PURE__ */ jsx17("span", { className: "text-xs font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicSummary") }),
4795
+ /* @__PURE__ */ jsx17("span", { className: "text-[11px] font-medium leading-4 text-[var(--text-secondary)]", children: copy.t("labels.topicSummary") }),
4782
4796
  /* @__PURE__ */ jsx17(
4783
4797
  Textarea,
4784
4798
  {
@@ -5030,4 +5044,4 @@ export {
5030
5044
  IssueManagerNode,
5031
5045
  IssueManagerNodeHeader
5032
5046
  };
5033
- //# sourceMappingURL=chunk-DLB2WIV6.js.map
5047
+ //# sourceMappingURL=chunk-RJX54QWL.js.map