@nextop-os/workspace-issue-manager 0.0.23 → 0.0.25
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.
- package/README.md +4 -0
- package/dist/assets/workspace-dock-task.d.ts +3 -0
- package/dist/{chunk-XI6VLBSW.js → chunk-PDBLEOV4.js} +690 -564
- package/dist/chunk-PDBLEOV4.js.map +1 -0
- package/dist/{chunk-5Y5GVLKU.js → chunk-QKFOVSRG.js} +55 -55
- package/dist/chunk-QKFOVSRG.js.map +1 -0
- package/dist/{chunk-V75TAM27.js → chunk-QW2WQXOG.js} +23 -2
- package/dist/chunk-QW2WQXOG.js.map +1 -0
- package/dist/{chunk-ZWDF5XA7.js → chunk-UZEH5YBL.js} +12 -5
- package/dist/chunk-UZEH5YBL.js.map +1 -0
- package/dist/core/index.d.ts +6 -1
- package/dist/core/index.js +6 -2
- package/dist/i18n/index.js +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +7 -3
- package/dist/{issueManagerControllerService.interface-B_Jr7Xw_.d.ts → issueManagerControllerService.interface-BtvnnFla.d.ts} +3 -1
- package/dist/services/index.d.ts +2 -2
- package/dist/services/index.js +3 -3
- package/dist/ui/index.d.ts +4 -3
- package/dist/ui/index.js +4 -4
- package/dist/workbench/index.d.ts +7 -4
- package/dist/workbench/index.js +21 -31
- package/dist/workbench/index.js.map +1 -1
- package/package.json +10 -6
- package/dist/chunk-5Y5GVLKU.js.map +0 -1
- package/dist/chunk-V75TAM27.js.map +0 -1
- package/dist/chunk-XI6VLBSW.js.map +0 -1
- package/dist/chunk-ZWDF5XA7.js.map +0 -1
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
toContextRefInput,
|
|
26
26
|
toIssueManagerWorkspaceFileLinkInput,
|
|
27
27
|
uniqueIssueManagerFileReferences
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-UZEH5YBL.js";
|
|
29
29
|
import {
|
|
30
30
|
appendIssueManagerWorkspaceFileLinksToContent,
|
|
31
31
|
clampIssueManagerSidebarWidth,
|
|
@@ -36,7 +36,7 @@ import {
|
|
|
36
36
|
issueManagerSidebarMinWidth,
|
|
37
37
|
normalizeIssueManagerContent,
|
|
38
38
|
shouldAutoCollapseIssueManagerSidebar
|
|
39
|
-
} from "./chunk-
|
|
39
|
+
} from "./chunk-QW2WQXOG.js";
|
|
40
40
|
|
|
41
41
|
// src/ui/react/internal/shell/IssueManagerNodeState.ts
|
|
42
42
|
import { useEffect, useEffectEvent, useState } from "react";
|
|
@@ -741,9 +741,9 @@ function createIssueManagerControllerActions(input) {
|
|
|
741
741
|
selectedTaskId: null
|
|
742
742
|
}));
|
|
743
743
|
},
|
|
744
|
-
async deleteIssue() {
|
|
744
|
+
async deleteIssue(options) {
|
|
745
745
|
const selectedIssueId = nodeState.selectedIssueId;
|
|
746
|
-
if (!selectedIssueId || !confirmIssueManagerMessage(copy.t("confirmations.deleteIssue"))) {
|
|
746
|
+
if (!selectedIssueId || options?.skipConfirmation !== true && !confirmIssueManagerMessage(copy.t("confirmations.deleteIssue"))) {
|
|
747
747
|
return;
|
|
748
748
|
}
|
|
749
749
|
try {
|
|
@@ -759,10 +759,10 @@ function createIssueManagerControllerActions(input) {
|
|
|
759
759
|
notifyError(error, "messages.issueDeleteFailed");
|
|
760
760
|
}
|
|
761
761
|
},
|
|
762
|
-
async deleteTask() {
|
|
762
|
+
async deleteTask(options) {
|
|
763
763
|
const selectedIssueId = nodeState.selectedIssueId;
|
|
764
764
|
const selectedTaskId = nodeState.selectedTaskId;
|
|
765
|
-
if (!selectedIssueId || !selectedTaskId || !confirmIssueManagerMessage(copy.t("confirmations.deleteTask"))) {
|
|
765
|
+
if (!selectedIssueId || !selectedTaskId || options?.skipConfirmation !== true && !confirmIssueManagerMessage(copy.t("confirmations.deleteTask"))) {
|
|
766
766
|
return;
|
|
767
767
|
}
|
|
768
768
|
try {
|
|
@@ -1659,39 +1659,46 @@ function hasFileAdapterMethod2(fileAdapter, methodName) {
|
|
|
1659
1659
|
}
|
|
1660
1660
|
|
|
1661
1661
|
// src/ui/IssueManagerNode.tsx
|
|
1662
|
-
import { Button as Button14, PanelIcon, cn as
|
|
1662
|
+
import { Button as Button14, PanelIcon, cn as cn12 } from "@nextop-os/ui-system";
|
|
1663
1663
|
|
|
1664
1664
|
// src/ui/internal/reference/IssueManagerReferencePicker.tsx
|
|
1665
|
-
import { useMemo as useMemo4 } from "react";
|
|
1666
1665
|
import { createPortal } from "react-dom";
|
|
1667
1666
|
import {
|
|
1668
1667
|
Button as Button3,
|
|
1669
1668
|
Card,
|
|
1670
1669
|
CardContent,
|
|
1671
|
-
CardDescription,
|
|
1672
1670
|
CardHeader,
|
|
1673
1671
|
CardTitle,
|
|
1674
|
-
CloseIcon
|
|
1672
|
+
CloseIcon,
|
|
1673
|
+
cn as cn2
|
|
1675
1674
|
} from "@nextop-os/ui-system";
|
|
1676
1675
|
|
|
1677
1676
|
// src/ui/internal/reference/IssueManagerReferencePickerSections.tsx
|
|
1678
|
-
import {
|
|
1677
|
+
import {
|
|
1678
|
+
Badge,
|
|
1679
|
+
Button as Button2,
|
|
1680
|
+
FileIcon as FileIcon2,
|
|
1681
|
+
FolderFilledIcon as FolderFilledIcon2
|
|
1682
|
+
} from "@nextop-os/ui-system";
|
|
1679
1683
|
|
|
1680
1684
|
// src/ui/internal/reference/IssueManagerReferencePickerTree.tsx
|
|
1685
|
+
import { useEffect as useEffect4, useState as useState3 } from "react";
|
|
1681
1686
|
import {
|
|
1687
|
+
AddIcon,
|
|
1682
1688
|
ArrowRightIcon,
|
|
1683
1689
|
Button,
|
|
1684
1690
|
CheckIcon,
|
|
1685
|
-
DirectoryIcon,
|
|
1686
1691
|
FileIcon,
|
|
1692
|
+
FolderFilledIcon,
|
|
1687
1693
|
Input,
|
|
1688
|
-
LoadingIcon,
|
|
1689
1694
|
ScrollArea,
|
|
1690
1695
|
SearchIcon,
|
|
1696
|
+
Spinner,
|
|
1691
1697
|
cn
|
|
1692
1698
|
} from "@nextop-os/ui-system";
|
|
1693
1699
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
1694
|
-
var issueManagerReferenceTreeIndent =
|
|
1700
|
+
var issueManagerReferenceTreeIndent = 24;
|
|
1701
|
+
var issueManagerReferenceTreeCollapseDurationMs = 200;
|
|
1695
1702
|
function IssueManagerReferencePickerBrowserPane({
|
|
1696
1703
|
browseRootEntries,
|
|
1697
1704
|
copy,
|
|
@@ -1708,9 +1715,9 @@ function IssueManagerReferencePickerBrowserPane({
|
|
|
1708
1715
|
onToggleFolder,
|
|
1709
1716
|
onToggleRef
|
|
1710
1717
|
}) {
|
|
1711
|
-
return /* @__PURE__ */ jsxs("section", { className: "flex min-h-0 flex-col border-b border-
|
|
1712
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
1713
|
-
/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-
|
|
1718
|
+
return /* @__PURE__ */ jsxs("section", { className: "flex min-h-0 flex-col border-b border-[var(--line-1)] lg:border-r lg:border-b-0", children: [
|
|
1719
|
+
/* @__PURE__ */ jsx("div", { className: "border-b border-[var(--line-1)] p-3", children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
1720
|
+
/* @__PURE__ */ jsx(SearchIcon, { className: "pointer-events-none absolute top-1/2 left-3 size-4 -translate-y-1/2 text-[var(--text-tertiary)]" }),
|
|
1714
1721
|
/* @__PURE__ */ jsx(
|
|
1715
1722
|
Input,
|
|
1716
1723
|
{
|
|
@@ -1721,7 +1728,7 @@ function IssueManagerReferencePickerBrowserPane({
|
|
|
1721
1728
|
}
|
|
1722
1729
|
)
|
|
1723
1730
|
] }) }),
|
|
1724
|
-
|
|
1731
|
+
isLoading ? /* @__PURE__ */ jsx(IssueManagerReferencePickerFeedback, { children: /* @__PURE__ */ jsx(Spinner, { className: "text-[var(--text-secondary)]", size: 16 }) }) : visibleEntries.length === 0 ? /* @__PURE__ */ jsx(IssueManagerReferencePickerFeedback, { children: mode === "search" ? copy.t("referencePicker.emptySearch") : copy.t("referencePicker.emptyDirectory") }) : /* @__PURE__ */ jsx(ScrollArea, { className: "min-h-0 flex-1", children: /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-[2px] p-3", children: mode === "browse" ? /* @__PURE__ */ jsx("div", { className: "space-y-0.5", children: browseRootEntries.map((entry) => /* @__PURE__ */ jsx(
|
|
1725
1732
|
IssueManagerReferencePickerTreeEntry,
|
|
1726
1733
|
{
|
|
1727
1734
|
childDepth: 1,
|
|
@@ -1741,7 +1748,9 @@ function IssueManagerReferencePickerBrowserPane({
|
|
|
1741
1748
|
{
|
|
1742
1749
|
entry,
|
|
1743
1750
|
focused: focusedPath === entry.path,
|
|
1744
|
-
selected: selectedRefs.some(
|
|
1751
|
+
selected: selectedRefs.some(
|
|
1752
|
+
(item) => item.path === entry.path
|
|
1753
|
+
),
|
|
1745
1754
|
onFocusPath,
|
|
1746
1755
|
onToggleRef
|
|
1747
1756
|
},
|
|
@@ -1768,13 +1777,62 @@ function IssueManagerReferencePickerTreeEntry({
|
|
|
1768
1777
|
const expanded = expandedFolderPaths[folderKey] ?? false;
|
|
1769
1778
|
const childState = directoryStateByPath[folderKey];
|
|
1770
1779
|
const childEntries = childState?.entries ?? [];
|
|
1780
|
+
const [shouldRenderChildContent, setShouldRenderChildContent] = useState3(expanded);
|
|
1781
|
+
useEffect4(() => {
|
|
1782
|
+
if (expanded) {
|
|
1783
|
+
setShouldRenderChildContent(true);
|
|
1784
|
+
return;
|
|
1785
|
+
}
|
|
1786
|
+
const timeoutId = window.setTimeout(() => {
|
|
1787
|
+
setShouldRenderChildContent(false);
|
|
1788
|
+
}, issueManagerReferenceTreeCollapseDurationMs);
|
|
1789
|
+
return () => window.clearTimeout(timeoutId);
|
|
1790
|
+
}, [expanded]);
|
|
1791
|
+
const shouldBuildChildContent = expanded || shouldRenderChildContent;
|
|
1792
|
+
const childContent = shouldBuildChildContent ? childState?.loading ? /* @__PURE__ */ jsxs(
|
|
1793
|
+
"div",
|
|
1794
|
+
{
|
|
1795
|
+
className: "flex items-center gap-2 px-2 py-2 text-xs text-[var(--text-secondary)]",
|
|
1796
|
+
style: {
|
|
1797
|
+
paddingLeft: `${childDepth * issueManagerReferenceTreeIndent + 12}px`
|
|
1798
|
+
},
|
|
1799
|
+
children: [
|
|
1800
|
+
/* @__PURE__ */ jsx(Spinner, { className: "text-[var(--text-secondary)]", size: 14 }),
|
|
1801
|
+
/* @__PURE__ */ jsx("span", { children: copy.t("referencePicker.loading") })
|
|
1802
|
+
]
|
|
1803
|
+
}
|
|
1804
|
+
) : childEntries.length > 0 ? /* @__PURE__ */ jsx("div", { className: "space-y-0.5", children: childEntries.map((childEntry) => /* @__PURE__ */ jsx(
|
|
1805
|
+
IssueManagerReferencePickerTreeEntry,
|
|
1806
|
+
{
|
|
1807
|
+
childDepth: childDepth + 1,
|
|
1808
|
+
copy,
|
|
1809
|
+
directoryStateByPath,
|
|
1810
|
+
entry: childEntry,
|
|
1811
|
+
expandedFolderPaths,
|
|
1812
|
+
focusedPath,
|
|
1813
|
+
selectedRefs,
|
|
1814
|
+
onFocusPath,
|
|
1815
|
+
onToggleFolder,
|
|
1816
|
+
onToggleRef
|
|
1817
|
+
},
|
|
1818
|
+
childEntry.path
|
|
1819
|
+
)) }) : childState?.loaded ? /* @__PURE__ */ jsx(
|
|
1820
|
+
"div",
|
|
1821
|
+
{
|
|
1822
|
+
className: "px-2 py-2 text-xs text-[var(--text-secondary)]",
|
|
1823
|
+
style: {
|
|
1824
|
+
paddingLeft: `${childDepth * issueManagerReferenceTreeIndent + 12}px`
|
|
1825
|
+
},
|
|
1826
|
+
children: copy.t("referencePicker.emptyDirectory")
|
|
1827
|
+
}
|
|
1828
|
+
) : null : null;
|
|
1771
1829
|
return /* @__PURE__ */ jsxs("div", { children: [
|
|
1772
1830
|
/* @__PURE__ */ jsxs(
|
|
1773
1831
|
"div",
|
|
1774
1832
|
{
|
|
1775
1833
|
className: cn(
|
|
1776
|
-
"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 rounded-
|
|
1777
|
-
focused || selected ? "bg-transparency-block" : "hover:bg-transparency-block
|
|
1834
|
+
"grid grid-cols-[auto_minmax(0,1fr)_auto] items-center gap-2 rounded-[6px] py-1.5 pr-1 pl-2 transition-colors",
|
|
1835
|
+
focused || selected ? "bg-transparency-block" : "hover:bg-transparency-block"
|
|
1778
1836
|
),
|
|
1779
1837
|
style: {
|
|
1780
1838
|
paddingLeft: `${(childDepth - 1) * issueManagerReferenceTreeIndent + 8}px`
|
|
@@ -1784,7 +1842,7 @@ function IssueManagerReferencePickerTreeEntry({
|
|
|
1784
1842
|
"button",
|
|
1785
1843
|
{
|
|
1786
1844
|
"aria-label": resolveIssueManagerReferenceLabel(entry),
|
|
1787
|
-
className: "grid size-5 shrink-0 place-items-center rounded-sm text-
|
|
1845
|
+
className: "grid size-5 shrink-0 place-items-center rounded-sm text-[var(--text-secondary)] hover:bg-[var(--transparency-hover)]",
|
|
1788
1846
|
type: "button",
|
|
1789
1847
|
onClick: () => onToggleFolder(entry),
|
|
1790
1848
|
children: /* @__PURE__ */ jsx(
|
|
@@ -1810,64 +1868,50 @@ function IssueManagerReferencePickerTreeEntry({
|
|
|
1810
1868
|
}
|
|
1811
1869
|
},
|
|
1812
1870
|
children: [
|
|
1813
|
-
isFolder ? /* @__PURE__ */ jsx(
|
|
1814
|
-
/* @__PURE__ */ jsx("span", { className: "truncate text-sm text-
|
|
1871
|
+
isFolder ? /* @__PURE__ */ jsx(FolderFilledIcon, { className: "size-4 shrink-0 text-[var(--rich-text-folder)]" }) : /* @__PURE__ */ jsx(FileIcon, { className: "size-4 shrink-0 text-[var(--text-tertiary)]" }),
|
|
1872
|
+
/* @__PURE__ */ jsx("span", { className: "truncate text-sm text-[var(--text-primary)]", children: resolveIssueManagerReferenceLabel(entry) })
|
|
1815
1873
|
]
|
|
1816
1874
|
}
|
|
1817
1875
|
),
|
|
1818
1876
|
/* @__PURE__ */ jsx(
|
|
1819
1877
|
Button,
|
|
1820
1878
|
{
|
|
1821
|
-
|
|
1879
|
+
"aria-label": resolveIssueManagerReferenceLabel(entry),
|
|
1880
|
+
"aria-pressed": selected,
|
|
1881
|
+
size: "icon-sm",
|
|
1822
1882
|
type: "button",
|
|
1823
|
-
variant:
|
|
1883
|
+
variant: "ghost",
|
|
1824
1884
|
onClick: () => {
|
|
1825
1885
|
onFocusPath(entry.path);
|
|
1826
1886
|
onToggleRef(entry);
|
|
1827
1887
|
},
|
|
1828
|
-
children: selected ? /* @__PURE__ */ jsx(CheckIcon, { size: 14 }) :
|
|
1888
|
+
children: selected ? /* @__PURE__ */ jsx(CheckIcon, { size: 14 }) : /* @__PURE__ */ jsx(AddIcon, { size: 16 })
|
|
1829
1889
|
}
|
|
1830
1890
|
)
|
|
1831
1891
|
]
|
|
1832
1892
|
}
|
|
1833
1893
|
),
|
|
1834
|
-
isFolder
|
|
1894
|
+
isFolder ? /* @__PURE__ */ jsx(
|
|
1835
1895
|
"div",
|
|
1836
1896
|
{
|
|
1837
|
-
className:
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
children:
|
|
1842
|
-
|
|
1843
|
-
|
|
1844
|
-
|
|
1845
|
-
|
|
1846
|
-
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
expandedFolderPaths,
|
|
1854
|
-
focusedPath,
|
|
1855
|
-
selectedRefs,
|
|
1856
|
-
onFocusPath,
|
|
1857
|
-
onToggleFolder,
|
|
1858
|
-
onToggleRef
|
|
1859
|
-
},
|
|
1860
|
-
childEntry.path
|
|
1861
|
-
)) : childState?.loaded ? /* @__PURE__ */ jsx(
|
|
1862
|
-
"div",
|
|
1863
|
-
{
|
|
1864
|
-
className: "px-2 py-2 text-xs text-muted-foreground",
|
|
1865
|
-
style: {
|
|
1866
|
-
paddingLeft: `${childDepth * issueManagerReferenceTreeIndent + 12}px`
|
|
1867
|
-
},
|
|
1868
|
-
children: copy.t("referencePicker.emptyDirectory")
|
|
1897
|
+
className: cn(
|
|
1898
|
+
"grid transition-[grid-template-rows] duration-200 ease-out motion-reduce:transition-none",
|
|
1899
|
+
expanded ? "grid-rows-[1fr]" : "grid-rows-[0fr]"
|
|
1900
|
+
),
|
|
1901
|
+
children: /* @__PURE__ */ jsx(
|
|
1902
|
+
"div",
|
|
1903
|
+
{
|
|
1904
|
+
"aria-hidden": expanded ? void 0 : "true",
|
|
1905
|
+
className: cn(
|
|
1906
|
+
"min-h-0 overflow-hidden transition-[opacity,transform] duration-200 ease-out motion-reduce:transition-none",
|
|
1907
|
+
expanded ? "translate-y-0 opacity-100" : "-translate-y-1 opacity-0"
|
|
1908
|
+
),
|
|
1909
|
+
inert: expanded ? void 0 : true,
|
|
1910
|
+
children: childContent
|
|
1911
|
+
}
|
|
1912
|
+
)
|
|
1869
1913
|
}
|
|
1870
|
-
) : null
|
|
1914
|
+
) : null
|
|
1871
1915
|
] });
|
|
1872
1916
|
}
|
|
1873
1917
|
function IssueManagerReferencePickerSearchEntry({
|
|
@@ -1882,8 +1926,8 @@ function IssueManagerReferencePickerSearchEntry({
|
|
|
1882
1926
|
"div",
|
|
1883
1927
|
{
|
|
1884
1928
|
className: cn(
|
|
1885
|
-
"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-
|
|
1886
|
-
focused || selected ? "border-border bg-transparency-block" : "border-transparent bg-transparent hover:border-border/70 hover:bg-transparency-block
|
|
1929
|
+
"grid grid-cols-[minmax(0,1fr)_auto] items-center gap-3 rounded-[6px] border py-2.5 pr-1 pl-3 transition-colors",
|
|
1930
|
+
focused || selected ? "border-border bg-transparency-block" : "border-transparent bg-transparent hover:border-border/70 hover:bg-transparency-block"
|
|
1887
1931
|
),
|
|
1888
1932
|
children: [
|
|
1889
1933
|
/* @__PURE__ */ jsxs(
|
|
@@ -1893,10 +1937,10 @@ function IssueManagerReferencePickerSearchEntry({
|
|
|
1893
1937
|
type: "button",
|
|
1894
1938
|
onClick: () => onFocusPath(entry.path),
|
|
1895
1939
|
children: [
|
|
1896
|
-
/* @__PURE__ */ jsx("span", { className: "grid size-9 shrink-0 place-items-center rounded-lg bg-
|
|
1940
|
+
/* @__PURE__ */ jsx("span", { className: "grid size-9 shrink-0 place-items-center rounded-lg bg-[var(--transparency-block)] text-[var(--text-tertiary)]", children: isFolder ? /* @__PURE__ */ jsx(FolderFilledIcon, { className: "size-4 text-[var(--rich-text-folder)]" }) : /* @__PURE__ */ jsx(FileIcon, { className: "size-4 text-[var(--text-tertiary)]" }) }),
|
|
1897
1941
|
/* @__PURE__ */ jsxs("span", { className: "min-w-0", children: [
|
|
1898
|
-
/* @__PURE__ */ jsx("span", { className: "block truncate text-sm font-medium text-
|
|
1899
|
-
/* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-
|
|
1942
|
+
/* @__PURE__ */ jsx("span", { className: "block truncate text-sm font-medium text-[var(--text-primary)]", children: resolveIssueManagerReferenceLabel(entry) }),
|
|
1943
|
+
/* @__PURE__ */ jsx("span", { className: "block truncate text-xs text-[var(--text-secondary)]", children: entry.path })
|
|
1900
1944
|
] })
|
|
1901
1945
|
]
|
|
1902
1946
|
}
|
|
@@ -1904,14 +1948,16 @@ function IssueManagerReferencePickerSearchEntry({
|
|
|
1904
1948
|
/* @__PURE__ */ jsx(
|
|
1905
1949
|
Button,
|
|
1906
1950
|
{
|
|
1907
|
-
|
|
1951
|
+
"aria-label": resolveIssueManagerReferenceLabel(entry),
|
|
1952
|
+
"aria-pressed": selected,
|
|
1953
|
+
size: "icon-sm",
|
|
1908
1954
|
type: "button",
|
|
1909
|
-
variant:
|
|
1955
|
+
variant: "ghost",
|
|
1910
1956
|
onClick: () => {
|
|
1911
1957
|
onFocusPath(entry.path);
|
|
1912
1958
|
onToggleRef(entry);
|
|
1913
1959
|
},
|
|
1914
|
-
children: selected ? /* @__PURE__ */ jsx(CheckIcon, { size: 14 }) :
|
|
1960
|
+
children: selected ? /* @__PURE__ */ jsx(CheckIcon, { size: 14 }) : /* @__PURE__ */ jsx(AddIcon, { size: 16 })
|
|
1915
1961
|
}
|
|
1916
1962
|
)
|
|
1917
1963
|
]
|
|
@@ -1921,7 +1967,7 @@ function IssueManagerReferencePickerSearchEntry({
|
|
|
1921
1967
|
function IssueManagerReferencePickerFeedback({
|
|
1922
1968
|
children
|
|
1923
1969
|
}) {
|
|
1924
|
-
return /* @__PURE__ */ jsx("div", { className: "grid min-h-
|
|
1970
|
+
return /* @__PURE__ */ jsx("div", { className: "grid min-h-0 flex-1 place-items-center px-4 text-center text-sm text-[var(--text-secondary)]", children });
|
|
1925
1971
|
}
|
|
1926
1972
|
function resolveIssueManagerReferenceLabel(ref) {
|
|
1927
1973
|
return ref.displayName || ref.path.split("/").filter(Boolean).at(-1) || ref.path;
|
|
@@ -1929,19 +1975,20 @@ function resolveIssueManagerReferenceLabel(ref) {
|
|
|
1929
1975
|
|
|
1930
1976
|
// src/ui/internal/reference/IssueManagerReferencePickerSections.tsx
|
|
1931
1977
|
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1978
|
+
var issueManagerReferencePickerSelectedBadgeClassName = "max-w-[14rem] rounded-[4px] border-transparent bg-[var(--transparency-block)] text-[var(--text-primary)]";
|
|
1932
1979
|
function IssueManagerReferencePickerPreviewPane({
|
|
1933
1980
|
copy,
|
|
1934
1981
|
focusedEntry,
|
|
1935
1982
|
mode
|
|
1936
1983
|
}) {
|
|
1937
|
-
return /* @__PURE__ */ jsx2("aside", { className: "flex shrink-0 flex-col border-t border-
|
|
1938
|
-
/* @__PURE__ */
|
|
1939
|
-
|
|
1940
|
-
/* @__PURE__ */ jsx2("p", { className: "max-w-[24ch] text-sm leading-5 text-
|
|
1941
|
-
] })
|
|
1984
|
+
return /* @__PURE__ */ jsx2("aside", { className: "flex shrink-0 flex-col border-t border-[var(--line-1)] bg-[var(--background-fronted)] lg:min-h-0 lg:flex-1 lg:border-t-0", children: /* @__PURE__ */ jsx2("div", { className: "flex min-h-0 flex-1 flex-col px-4 py-4 sm:px-5 lg:py-5", children: focusedEntry ? /* @__PURE__ */ jsxs2("div", { className: "flex min-h-0 flex-col gap-4 lg:flex-1 lg:gap-5", children: [
|
|
1985
|
+
/* @__PURE__ */ jsxs2("div", { className: "flex min-h-32 flex-col items-center justify-center space-y-4 rounded-[8px] border border-[var(--line-2,var(--border-2))] bg-[var(--transparency-block)] px-5 py-8 text-center sm:min-h-40 sm:py-10 lg:min-h-56 lg:py-14", children: [
|
|
1986
|
+
focusedEntry.kind === "folder" ? /* @__PURE__ */ jsx2(FolderFilledIcon2, { className: "mx-auto size-9 text-[var(--rich-text-folder)]" }) : /* @__PURE__ */ jsx2(FileIcon2, { className: "mx-auto size-9 text-[var(--text-tertiary)]" }),
|
|
1987
|
+
/* @__PURE__ */ jsx2("p", { className: "mx-auto max-w-[24ch] text-sm leading-5 text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: focusedEntry.kind === "folder" ? focusedEntry.path : resolveIssueManagerReferenceLabel(focusedEntry) })
|
|
1988
|
+
] }),
|
|
1942
1989
|
/* @__PURE__ */ jsx2("div", { className: "space-y-2 lg:space-y-3", children: /* @__PURE__ */ jsxs2("div", { className: "space-y-1.5", children: [
|
|
1943
|
-
/* @__PURE__ */ jsx2("p", { className: "truncate text-[15px] font-semibold text-
|
|
1944
|
-
/* @__PURE__ */ jsx2("p", { className: "line-clamp-3 text-sm text-
|
|
1990
|
+
/* @__PURE__ */ jsx2("p", { className: "truncate text-[15px] font-semibold text-[var(--text-primary)]", children: resolveIssueManagerReferenceLabel(focusedEntry) }),
|
|
1991
|
+
/* @__PURE__ */ jsx2("p", { className: "line-clamp-3 text-sm text-[var(--text-secondary)] [overflow-wrap:anywhere]", children: focusedEntry.path })
|
|
1945
1992
|
] }) })
|
|
1946
1993
|
] }) : /* @__PURE__ */ jsx2(IssueManagerReferencePickerFeedback2, { children: mode === "search" ? copy.t("referencePicker.emptySearch") : copy.t("referencePicker.emptyDirectory") }) }) });
|
|
1947
1994
|
}
|
|
@@ -1951,26 +1998,34 @@ function IssueManagerReferencePickerFooter({
|
|
|
1951
1998
|
onConfirm,
|
|
1952
1999
|
selectedRefs
|
|
1953
2000
|
}) {
|
|
1954
|
-
return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3 border-t border-
|
|
2001
|
+
return /* @__PURE__ */ jsxs2("div", { className: "flex flex-col gap-3 border-t border-[var(--line-1)] px-4 py-4 sm:px-6 lg:flex-row lg:items-center lg:justify-between", children: [
|
|
1955
2002
|
/* @__PURE__ */ jsxs2("div", { className: "flex min-w-0 flex-wrap items-center gap-2 lg:flex-1", children: [
|
|
1956
|
-
/* @__PURE__ */ jsx2("span", { className: "text-sm text-
|
|
2003
|
+
/* @__PURE__ */ jsx2("span", { className: "text-sm text-[var(--text-secondary)]", children: copy.t("referencePicker.selectedCount", {
|
|
1957
2004
|
count: selectedRefs.length
|
|
1958
2005
|
}) }),
|
|
1959
2006
|
selectedRefs.slice(0, 2).map((ref) => /* @__PURE__ */ jsx2(
|
|
1960
2007
|
Badge,
|
|
1961
2008
|
{
|
|
1962
|
-
className:
|
|
2009
|
+
className: issueManagerReferencePickerSelectedBadgeClassName,
|
|
2010
|
+
variant: "secondary",
|
|
1963
2011
|
children: /* @__PURE__ */ jsx2("span", { className: "truncate", children: resolveIssueManagerReferenceLabel(ref) })
|
|
1964
2012
|
},
|
|
1965
2013
|
ref.path
|
|
1966
2014
|
)),
|
|
1967
|
-
selectedRefs.length > 2 ? /* @__PURE__ */ jsxs2(
|
|
1968
|
-
|
|
1969
|
-
|
|
1970
|
-
|
|
2015
|
+
selectedRefs.length > 2 ? /* @__PURE__ */ jsxs2(
|
|
2016
|
+
Badge,
|
|
2017
|
+
{
|
|
2018
|
+
className: issueManagerReferencePickerSelectedBadgeClassName,
|
|
2019
|
+
variant: "secondary",
|
|
2020
|
+
children: [
|
|
2021
|
+
"+",
|
|
2022
|
+
selectedRefs.length - 2
|
|
2023
|
+
]
|
|
2024
|
+
}
|
|
2025
|
+
) : null
|
|
1971
2026
|
] }),
|
|
1972
2027
|
/* @__PURE__ */ jsxs2("div", { className: "flex w-full items-center justify-end gap-2 lg:w-auto lg:shrink-0", children: [
|
|
1973
|
-
/* @__PURE__ */ jsx2(Button2, { type: "button", variant: "
|
|
2028
|
+
/* @__PURE__ */ jsx2(Button2, { type: "button", variant: "secondary", onClick: onClose, children: copy.t("actions.cancel") }),
|
|
1974
2029
|
/* @__PURE__ */ jsx2(
|
|
1975
2030
|
Button2,
|
|
1976
2031
|
{
|
|
@@ -1986,11 +2041,13 @@ function IssueManagerReferencePickerFooter({
|
|
|
1986
2041
|
function IssueManagerReferencePickerFeedback2({
|
|
1987
2042
|
children
|
|
1988
2043
|
}) {
|
|
1989
|
-
return /* @__PURE__ */ jsx2("div", { className: "grid min-h-
|
|
2044
|
+
return /* @__PURE__ */ jsx2("div", { className: "grid min-h-0 flex-1 place-items-center px-4 text-center text-sm text-[var(--text-secondary)]", children });
|
|
1990
2045
|
}
|
|
1991
2046
|
|
|
1992
2047
|
// src/ui/internal/reference/IssueManagerReferencePicker.tsx
|
|
1993
2048
|
import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
2049
|
+
var issueManagerReferencePickerBackdropMotionClassName = "motion-safe:animate-in motion-safe:fade-in-0 motion-safe:duration-[180ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:animate-none";
|
|
2050
|
+
var issueManagerReferencePickerPanelMotionClassName = "motion-safe:animate-in motion-safe:fade-in-0 motion-safe:zoom-in-[0.96] motion-safe:duration-[250ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)] motion-reduce:animate-none";
|
|
1994
2051
|
function IssueManagerReferencePicker({
|
|
1995
2052
|
copy,
|
|
1996
2053
|
fileAdapter,
|
|
@@ -2021,32 +2078,31 @@ function IssueManagerReferencePicker({
|
|
|
2021
2078
|
open,
|
|
2022
2079
|
workspaceId
|
|
2023
2080
|
});
|
|
2024
|
-
const selectedCountLabel = useMemo4(
|
|
2025
|
-
() => copy.t("referencePicker.selectedCount", { count: selectedRefs.length }),
|
|
2026
|
-
[copy, selectedRefs.length]
|
|
2027
|
-
);
|
|
2028
2081
|
if (!open) {
|
|
2029
2082
|
return null;
|
|
2030
2083
|
}
|
|
2031
2084
|
const dialog = /* @__PURE__ */ jsx3(
|
|
2032
2085
|
"div",
|
|
2033
2086
|
{
|
|
2034
|
-
className:
|
|
2087
|
+
className: cn2(
|
|
2088
|
+
"fixed inset-0 grid place-items-center bg-[var(--backdrop)] px-3 py-4 backdrop-blur-md sm:px-6 sm:py-8",
|
|
2089
|
+
issueManagerReferencePickerBackdropMotionClassName
|
|
2090
|
+
),
|
|
2035
2091
|
style: { zIndex: "var(--z-panel)" },
|
|
2036
2092
|
onClick: onClose,
|
|
2037
2093
|
children: /* @__PURE__ */ jsxs3(
|
|
2038
2094
|
Card,
|
|
2039
2095
|
{
|
|
2040
2096
|
"aria-modal": "true",
|
|
2041
|
-
className:
|
|
2097
|
+
className: cn2(
|
|
2098
|
+
"flex h-[min(88vh,44rem)] w-full max-w-5xl origin-center flex-col gap-0 overflow-hidden border-[var(--line-1)] bg-[var(--background-fronted)] py-0 text-[var(--text-primary)] shadow-panel sm:h-[min(82vh,44rem)]",
|
|
2099
|
+
issueManagerReferencePickerPanelMotionClassName
|
|
2100
|
+
),
|
|
2042
2101
|
role: "dialog",
|
|
2043
2102
|
onClick: (event) => event.stopPropagation(),
|
|
2044
2103
|
children: [
|
|
2045
|
-
/* @__PURE__ */ jsx3(CardHeader, { className: "border-b border-
|
|
2046
|
-
/* @__PURE__ */
|
|
2047
|
-
/* @__PURE__ */ jsx3(CardTitle, { children: copy.t("referencePicker.title") }),
|
|
2048
|
-
/* @__PURE__ */ jsx3(CardDescription, { children: selectedCountLabel })
|
|
2049
|
-
] }),
|
|
2104
|
+
/* @__PURE__ */ jsx3(CardHeader, { className: "border-b border-[var(--line-1)] px-4 py-4 sm:px-6 sm:py-5", children: /* @__PURE__ */ jsxs3("div", { className: "flex items-start justify-between gap-4", children: [
|
|
2105
|
+
/* @__PURE__ */ jsx3("div", { className: "min-w-0", children: /* @__PURE__ */ jsx3(CardTitle, { children: copy.t("referencePicker.title") }) }),
|
|
2050
2106
|
/* @__PURE__ */ jsx3(
|
|
2051
2107
|
Button3,
|
|
2052
2108
|
{
|
|
@@ -2109,10 +2165,11 @@ function IssueManagerReferencePicker({
|
|
|
2109
2165
|
}
|
|
2110
2166
|
|
|
2111
2167
|
// src/ui/internal/shell/IssueManagerShell.tsx
|
|
2112
|
-
import { Button as Button13, cn as
|
|
2168
|
+
import { Button as Button13, FileCreateIcon as FileCreateIcon4, cn as cn11 } from "@nextop-os/ui-system";
|
|
2113
2169
|
|
|
2114
2170
|
// src/ui/internal/shell/IssueManagerPanels.tsx
|
|
2115
|
-
import {
|
|
2171
|
+
import { useState as useState6 } from "react";
|
|
2172
|
+
import { Badge as Badge3, Button as Button7, ConfirmationDialog, Input as Input2 } from "@nextop-os/ui-system";
|
|
2116
2173
|
|
|
2117
2174
|
// src/ui/internal/issue/IssueManagerIssueSections.tsx
|
|
2118
2175
|
import {
|
|
@@ -2120,7 +2177,7 @@ import {
|
|
|
2120
2177
|
Button as Button5,
|
|
2121
2178
|
FileCreateIcon as FileCreateIcon2,
|
|
2122
2179
|
ScrollArea as ScrollArea2,
|
|
2123
|
-
cn as
|
|
2180
|
+
cn as cn3
|
|
2124
2181
|
} from "@nextop-os/ui-system";
|
|
2125
2182
|
|
|
2126
2183
|
// src/ui/internal/panel/IssueManagerPanelText.ts
|
|
@@ -2146,23 +2203,6 @@ function resolveIssueManagerCreatorLabel(entity) {
|
|
|
2146
2203
|
// src/ui/internal/panel/IssueManagerPanelSurface.tsx
|
|
2147
2204
|
import { Button as Button4, FileCreateIcon } from "@nextop-os/ui-system";
|
|
2148
2205
|
import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
2149
|
-
var workspaceDockTaskImage = new URL(
|
|
2150
|
-
"../../../assets/workspace-dock-task.png",
|
|
2151
|
-
import.meta.url
|
|
2152
|
-
).href;
|
|
2153
|
-
function IssueManagerEmptyIllustration() {
|
|
2154
|
-
return /* @__PURE__ */ jsx4(
|
|
2155
|
-
"img",
|
|
2156
|
-
{
|
|
2157
|
-
alt: "",
|
|
2158
|
-
"aria-hidden": "true",
|
|
2159
|
-
className: "h-[84px] w-[84px] object-contain",
|
|
2160
|
-
decoding: "async",
|
|
2161
|
-
draggable: false,
|
|
2162
|
-
src: workspaceDockTaskImage
|
|
2163
|
-
}
|
|
2164
|
-
);
|
|
2165
|
-
}
|
|
2166
2206
|
function IssueManagerPaneLoadingState() {
|
|
2167
2207
|
return /* @__PURE__ */ jsxs4(
|
|
2168
2208
|
"div",
|
|
@@ -2212,19 +2252,19 @@ function IssueManagerDetailTextSection({
|
|
|
2212
2252
|
tone = "muted"
|
|
2213
2253
|
}) {
|
|
2214
2254
|
return /* @__PURE__ */ jsxs5("section", { className: "grid gap-2.5", children: [
|
|
2215
|
-
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-
|
|
2255
|
+
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: label }),
|
|
2216
2256
|
/* @__PURE__ */ jsxs5("div", { className: "grid gap-1.5", children: [
|
|
2217
2257
|
/* @__PURE__ */ jsx5(
|
|
2218
2258
|
"p",
|
|
2219
2259
|
{
|
|
2220
|
-
className:
|
|
2221
|
-
"text-sm leading-6",
|
|
2222
|
-
tone === "destructive" ? "text-
|
|
2260
|
+
className: cn3(
|
|
2261
|
+
"text-sm font-normal leading-6",
|
|
2262
|
+
tone === "destructive" ? "text-[var(--state-danger)]" : "text-[var(--text-secondary)]"
|
|
2223
2263
|
),
|
|
2224
2264
|
children: body
|
|
2225
2265
|
}
|
|
2226
2266
|
),
|
|
2227
|
-
meta ? /* @__PURE__ */ jsx5("p", { className: "text-xs leading-5 text-
|
|
2267
|
+
meta ? /* @__PURE__ */ jsx5("p", { className: "text-xs font-normal leading-5 text-[var(--text-secondary)]", children: meta }) : null
|
|
2228
2268
|
] })
|
|
2229
2269
|
] });
|
|
2230
2270
|
}
|
|
@@ -2234,8 +2274,8 @@ function IssueManagerOutputSection({
|
|
|
2234
2274
|
outputs
|
|
2235
2275
|
}) {
|
|
2236
2276
|
return /* @__PURE__ */ jsxs5("section", { className: "grid gap-2.5", children: [
|
|
2237
|
-
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-
|
|
2238
|
-
outputs.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-sm leading-6 text-
|
|
2277
|
+
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.executionOutputs") }),
|
|
2278
|
+
outputs.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-sm font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noExecutionOutputs") }) : /* @__PURE__ */ jsx5("div", { className: "grid gap-2", children: outputs.map((output) => /* @__PURE__ */ jsxs5(
|
|
2239
2279
|
"button",
|
|
2240
2280
|
{
|
|
2241
2281
|
className: "flex items-start justify-between gap-4 rounded-xl border border-border/65 px-4 py-3 text-left transition-colors hover:bg-accent/18",
|
|
@@ -2249,10 +2289,10 @@ function IssueManagerOutputSection({
|
|
|
2249
2289
|
},
|
|
2250
2290
|
children: [
|
|
2251
2291
|
/* @__PURE__ */ jsxs5("span", { className: "min-w-0 flex-1", children: [
|
|
2252
|
-
/* @__PURE__ */ jsx5("span", { className: "block truncate text-sm font-semibold text-
|
|
2253
|
-
/* @__PURE__ */ jsx5("span", { className: "mt-1 block truncate text-xs text-
|
|
2292
|
+
/* @__PURE__ */ jsx5("span", { className: "block truncate text-sm font-semibold text-[var(--text-primary)]", children: output.displayName }),
|
|
2293
|
+
/* @__PURE__ */ jsx5("span", { className: "mt-1 block truncate text-xs font-normal text-[var(--text-secondary)]", children: output.path })
|
|
2254
2294
|
] }),
|
|
2255
|
-
/* @__PURE__ */ jsx5("span", { className: "shrink-0 text-xs text-
|
|
2295
|
+
/* @__PURE__ */ jsx5("span", { className: "shrink-0 text-xs font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(output.createdAtUnix) || "" })
|
|
2256
2296
|
]
|
|
2257
2297
|
},
|
|
2258
2298
|
output.outputId
|
|
@@ -2268,26 +2308,16 @@ function IssueManagerSubtaskSection({
|
|
|
2268
2308
|
}) {
|
|
2269
2309
|
return /* @__PURE__ */ jsxs5("section", { className: "grid gap-2.5", children: [
|
|
2270
2310
|
/* @__PURE__ */ jsxs5("div", { className: "flex items-center justify-between gap-3", children: [
|
|
2271
|
-
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-
|
|
2272
|
-
/* @__PURE__ */ jsxs5(
|
|
2273
|
-
|
|
2274
|
-
|
|
2275
|
-
|
|
2276
|
-
size: "dialog",
|
|
2277
|
-
type: "button",
|
|
2278
|
-
variant: "secondary",
|
|
2279
|
-
onClick: onCreate,
|
|
2280
|
-
children: [
|
|
2281
|
-
/* @__PURE__ */ jsx5(FileCreateIcon2, { size: 14 }),
|
|
2282
|
-
copy.t("actions.add")
|
|
2283
|
-
]
|
|
2284
|
-
}
|
|
2285
|
-
)
|
|
2311
|
+
/* @__PURE__ */ jsx5("h3", { className: "text-sm font-semibold text-[var(--text-primary)]", children: copy.t("labels.subtasks") }),
|
|
2312
|
+
/* @__PURE__ */ jsxs5(Button5, { size: "dialog", type: "button", variant: "ghost", onClick: onCreate, children: [
|
|
2313
|
+
/* @__PURE__ */ jsx5(FileCreateIcon2, { size: 14 }),
|
|
2314
|
+
copy.t("actions.add")
|
|
2315
|
+
] })
|
|
2286
2316
|
] }),
|
|
2287
|
-
tasks.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-sm leading-6 text-
|
|
2317
|
+
tasks.length === 0 ? /* @__PURE__ */ jsx5("p", { className: "text-sm font-normal leading-6 text-[var(--text-secondary)]", children: copy.t("messages.noSubtasksForIssue") }) : /* @__PURE__ */ jsx5("div", { className: "grid gap-2", children: tasks.map((task) => /* @__PURE__ */ jsxs5(
|
|
2288
2318
|
"button",
|
|
2289
2319
|
{
|
|
2290
|
-
className:
|
|
2320
|
+
className: cn3(
|
|
2291
2321
|
"flex items-start justify-between gap-4 rounded-xl border px-4 py-3 text-left transition-colors",
|
|
2292
2322
|
selectedTaskId === task.taskId ? "border-border/90 bg-background-fronted" : "border-border/65 hover:bg-accent/18"
|
|
2293
2323
|
),
|
|
@@ -2296,15 +2326,15 @@ function IssueManagerSubtaskSection({
|
|
|
2296
2326
|
children: [
|
|
2297
2327
|
/* @__PURE__ */ jsxs5("div", { className: "min-w-0 flex-1", children: [
|
|
2298
2328
|
/* @__PURE__ */ jsxs5("div", { className: "flex min-w-0 items-center gap-2.5", children: [
|
|
2299
|
-
/* @__PURE__ */ jsx5("span", { className: "truncate text-sm font-semibold text-
|
|
2300
|
-
/* @__PURE__ */ jsx5(Badge2, { className: "rounded-md
|
|
2329
|
+
/* @__PURE__ */ jsx5("span", { className: "truncate text-sm font-semibold text-[var(--text-primary)]", children: task.title }),
|
|
2330
|
+
/* @__PURE__ */ jsx5(Badge2, { className: "rounded-md px-2 py-1 text-[11px] font-medium", children: resolveIssueManagerStatusLabel(copy, task.status) })
|
|
2301
2331
|
] }),
|
|
2302
|
-
/* @__PURE__ */ jsx5("p", { className: "mt-2 line-clamp-2 text-sm leading-6 text-
|
|
2332
|
+
/* @__PURE__ */ jsx5("p", { className: "mt-2 line-clamp-2 text-sm font-normal leading-6 text-[var(--text-secondary)]", children: summarizeIssueManagerContent(
|
|
2303
2333
|
task.content,
|
|
2304
2334
|
copy.t("messages.taskContentEmpty")
|
|
2305
2335
|
) })
|
|
2306
2336
|
] }),
|
|
2307
|
-
/* @__PURE__ */ jsx5("span", { className: "shrink-0 text-xs text-
|
|
2337
|
+
/* @__PURE__ */ jsx5("span", { className: "shrink-0 text-xs font-normal text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(
|
|
2308
2338
|
task.createdAtUnix ?? task.updatedAtUnix
|
|
2309
2339
|
) || "" })
|
|
2310
2340
|
]
|
|
@@ -2315,9 +2345,9 @@ function IssueManagerSubtaskSection({
|
|
|
2315
2345
|
}
|
|
2316
2346
|
|
|
2317
2347
|
// src/ui/internal/content/IssueManagerDescriptionSection.tsx
|
|
2318
|
-
import { useEffect as
|
|
2348
|
+
import { useEffect as useEffect5, useRef, useState as useState4 } from "react";
|
|
2319
2349
|
import { RichTextReadonlyContent } from "@nextop-os/ui-rich-text/editor";
|
|
2320
|
-
import { cn as
|
|
2350
|
+
import { cn as cn4 } from "@nextop-os/ui-system";
|
|
2321
2351
|
import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
2322
2352
|
function IssueManagerDescriptionSection({
|
|
2323
2353
|
content,
|
|
@@ -2328,9 +2358,9 @@ function IssueManagerDescriptionSection({
|
|
|
2328
2358
|
variant = "card"
|
|
2329
2359
|
}) {
|
|
2330
2360
|
const contentRef = useRef(null);
|
|
2331
|
-
const [isOverflowing, setIsOverflowing] =
|
|
2361
|
+
const [isOverflowing, setIsOverflowing] = useState4(false);
|
|
2332
2362
|
const normalizedContent = normalizeIssueManagerContent(content).trim();
|
|
2333
|
-
|
|
2363
|
+
useEffect5(() => {
|
|
2334
2364
|
if (variant === "plain") {
|
|
2335
2365
|
setIsOverflowing(false);
|
|
2336
2366
|
return;
|
|
@@ -2363,13 +2393,13 @@ function IssueManagerDescriptionSection({
|
|
|
2363
2393
|
if (variant === "plain") {
|
|
2364
2394
|
return /* @__PURE__ */ jsxs6("section", { className: "grid gap-2", children: [
|
|
2365
2395
|
/* @__PURE__ */ jsx6("span", { className: "text-sm font-semibold leading-5 text-[var(--text-primary)]", children: label }),
|
|
2366
|
-
normalizedContent ? /* @__PURE__ */ jsx6("div", { className: "max-w-3xl text-sm leading-5 text-text-secondary", children: /* @__PURE__ */ jsx6(
|
|
2396
|
+
normalizedContent ? /* @__PURE__ */ jsx6("div", { className: "max-w-3xl text-sm font-normal leading-5 text-[var(--text-secondary)]", children: /* @__PURE__ */ jsx6(
|
|
2367
2397
|
IssueManagerDescriptionContent,
|
|
2368
2398
|
{
|
|
2369
2399
|
content: normalizedContent,
|
|
2370
2400
|
onOpen
|
|
2371
2401
|
}
|
|
2372
|
-
) }) : /* @__PURE__ */ jsx6("p", { className: "text-sm leading-5 text-text-secondary", children: emptyLabel })
|
|
2402
|
+
) }) : /* @__PURE__ */ jsx6("p", { className: "text-sm font-normal leading-5 text-[var(--text-secondary)]", children: emptyLabel })
|
|
2373
2403
|
] });
|
|
2374
2404
|
}
|
|
2375
2405
|
return /* @__PURE__ */ jsxs6("section", { className: "grid gap-2", children: [
|
|
@@ -2377,7 +2407,7 @@ function IssueManagerDescriptionSection({
|
|
|
2377
2407
|
/* @__PURE__ */ jsxs6(
|
|
2378
2408
|
"div",
|
|
2379
2409
|
{
|
|
2380
|
-
className:
|
|
2410
|
+
className: cn4(
|
|
2381
2411
|
"relative min-w-0 rounded-lg border border-border-1 bg-transparent px-4 py-3",
|
|
2382
2412
|
minHeightClass
|
|
2383
2413
|
),
|
|
@@ -2385,8 +2415,8 @@ function IssueManagerDescriptionSection({
|
|
|
2385
2415
|
/* @__PURE__ */ jsx6(
|
|
2386
2416
|
"div",
|
|
2387
2417
|
{
|
|
2388
|
-
className:
|
|
2389
|
-
"max-h-[18rem] overflow-y-auto pr-2 text-sm leading-5 text-text-secondary",
|
|
2418
|
+
className: cn4(
|
|
2419
|
+
"max-h-[18rem] overflow-y-auto pr-2 text-sm font-normal leading-5 text-[var(--text-secondary)]",
|
|
2390
2420
|
isOverflowing && "pb-8"
|
|
2391
2421
|
),
|
|
2392
2422
|
ref: contentRef,
|
|
@@ -2396,7 +2426,7 @@ function IssueManagerDescriptionSection({
|
|
|
2396
2426
|
content: normalizedContent,
|
|
2397
2427
|
onOpen
|
|
2398
2428
|
}
|
|
2399
|
-
) : /* @__PURE__ */ jsx6("p", { className: "text-text-secondary", children: emptyLabel })
|
|
2429
|
+
) : /* @__PURE__ */ jsx6("p", { className: "font-normal text-[var(--text-secondary)]", children: emptyLabel })
|
|
2400
2430
|
}
|
|
2401
2431
|
),
|
|
2402
2432
|
isOverflowing ? /* @__PURE__ */ jsx6(
|
|
@@ -2431,10 +2461,12 @@ function IssueManagerDescriptionContent({
|
|
|
2431
2461
|
}
|
|
2432
2462
|
|
|
2433
2463
|
// src/ui/internal/content/IssueManagerRichTextTextarea.tsx
|
|
2434
|
-
import { useMemo as
|
|
2464
|
+
import { useEffect as useEffect6, useMemo as useMemo4, useRef as useRef2, useState as useState5 } from "react";
|
|
2435
2465
|
import { RichTextAtEditor } from "@nextop-os/ui-rich-text/editor";
|
|
2436
|
-
import { Button as Button6, LinkIcon, cn as
|
|
2466
|
+
import { Button as Button6, LinkIcon, cn as cn5 } from "@nextop-os/ui-system";
|
|
2437
2467
|
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2468
|
+
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";
|
|
2469
|
+
var issueManagerRichTextPlaceholderBaseClassName = "min-h-20 w-full p-3 text-sm font-normal leading-[1.3] text-[var(--text-placeholder)]";
|
|
2438
2470
|
function IssueManagerRichTextTextarea({
|
|
2439
2471
|
controller,
|
|
2440
2472
|
onChange,
|
|
@@ -2443,14 +2475,26 @@ function IssueManagerRichTextTextarea({
|
|
|
2443
2475
|
textareaClassName,
|
|
2444
2476
|
value
|
|
2445
2477
|
}) {
|
|
2446
|
-
const providers =
|
|
2478
|
+
const providers = useMemo4(
|
|
2447
2479
|
() => controller.resolveRichTextAtProviders(surface),
|
|
2448
2480
|
[controller, surface]
|
|
2449
2481
|
);
|
|
2450
2482
|
const showReferenceAction = controller.canReferenceWorkspaceFiles;
|
|
2483
|
+
const [focusSignal, setFocusSignal] = useState5(0);
|
|
2484
|
+
const previousValueRef = useRef2(value);
|
|
2485
|
+
const wasAddingReferenceRef = useRef2(false);
|
|
2486
|
+
useEffect6(() => {
|
|
2487
|
+
const isAddingReference = controller.referenceTarget?.mode === "insert" && controller.referenceTarget.parentKind === surface;
|
|
2488
|
+
if (wasAddingReferenceRef.current && !isAddingReference && value !== previousValueRef.current) {
|
|
2489
|
+
setFocusSignal((current) => current + 1);
|
|
2490
|
+
}
|
|
2491
|
+
wasAddingReferenceRef.current = isAddingReference;
|
|
2492
|
+
previousValueRef.current = value;
|
|
2493
|
+
}, [controller.referenceTarget, surface, value]);
|
|
2451
2494
|
return /* @__PURE__ */ jsx7(
|
|
2452
2495
|
RichTextAtEditor,
|
|
2453
2496
|
{
|
|
2497
|
+
focusSignal,
|
|
2454
2498
|
maxResults: 8,
|
|
2455
2499
|
minQueryLength: 1,
|
|
2456
2500
|
providers,
|
|
@@ -2459,15 +2503,24 @@ function IssueManagerRichTextTextarea({
|
|
|
2459
2503
|
noMatchesLabel: controller.copy.t("richTextAt.noMatches"),
|
|
2460
2504
|
removeReferenceActionLabel: controller.copy.t("actions.removeReference")
|
|
2461
2505
|
},
|
|
2462
|
-
textareaClassName:
|
|
2506
|
+
textareaClassName: cn5(
|
|
2507
|
+
issueManagerRichTextTextareaBaseClassName,
|
|
2508
|
+
textareaClassName,
|
|
2509
|
+
showReferenceAction && "pb-11"
|
|
2510
|
+
),
|
|
2511
|
+
placeholderClassName: cn5(
|
|
2512
|
+
issueManagerRichTextPlaceholderBaseClassName,
|
|
2513
|
+
textareaClassName,
|
|
2514
|
+
showReferenceAction && "pb-11"
|
|
2515
|
+
),
|
|
2463
2516
|
placeholder,
|
|
2464
2517
|
value,
|
|
2465
2518
|
onChange,
|
|
2466
|
-
overlay: showReferenceAction ? /* @__PURE__ */ jsx7("div", { className: "pointer-events-none absolute inset-x-
|
|
2519
|
+
overlay: showReferenceAction ? /* @__PURE__ */ jsx7("div", { className: "pointer-events-none absolute inset-x-3 bottom-3 z-10 flex", children: /* @__PURE__ */ jsxs7(
|
|
2467
2520
|
Button6,
|
|
2468
2521
|
{
|
|
2469
2522
|
className: "pointer-events-auto",
|
|
2470
|
-
size: "
|
|
2523
|
+
size: "default",
|
|
2471
2524
|
type: "button",
|
|
2472
2525
|
variant: "secondary",
|
|
2473
2526
|
onClick: () => {
|
|
@@ -2483,6 +2536,14 @@ function IssueManagerRichTextTextarea({
|
|
|
2483
2536
|
);
|
|
2484
2537
|
}
|
|
2485
2538
|
|
|
2539
|
+
// src/ui/internal/shell/IssueManagerEditorMotion.ts
|
|
2540
|
+
var issueManagerEditorRiseInClassName = "motion-safe:animate-in motion-safe:fade-in-0 motion-safe:slide-in-from-bottom-3 motion-safe:duration-[240ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)] motion-safe:[animation-fill-mode:both] motion-reduce:animate-none";
|
|
2541
|
+
var issueManagerEditorRiseInDelay0ClassName = "motion-safe:[animation-delay:0ms]";
|
|
2542
|
+
var issueManagerEditorRiseInDelay1ClassName = "motion-safe:[animation-delay:55ms]";
|
|
2543
|
+
var issueManagerEditorRiseInDelay2ClassName = "motion-safe:[animation-delay:110ms]";
|
|
2544
|
+
var issueManagerEditorRiseInDelay3ClassName = "motion-safe:[animation-delay:165ms]";
|
|
2545
|
+
var issueManagerEditorFooterFadeInClassName = "motion-safe:animate-in motion-safe:fade-in-0 motion-safe:duration-[180ms] motion-safe:ease-[cubic-bezier(0.22,1,0.36,1)] motion-safe:[animation-delay:180ms] motion-safe:[animation-fill-mode:both] motion-reduce:animate-none";
|
|
2546
|
+
|
|
2486
2547
|
// src/ui/internal/shell/IssueManagerPanels.tsx
|
|
2487
2548
|
import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2488
2549
|
function IssueManagerIssuePane({
|
|
@@ -2500,61 +2561,87 @@ function IssueManagerIssuePane({
|
|
|
2500
2561
|
const selectedTask = selectedTaskId ? (controller.taskDetail.value?.task?.taskId === selectedTaskId ? controller.taskDetail.value.task : tasks.find((task) => task.taskId === selectedTaskId)) ?? null : null;
|
|
2501
2562
|
const latestRun = selectedTask ? controller.taskDetail.value?.latestRun ?? controller.taskDetail.value?.recentRuns[0] ?? null : null;
|
|
2502
2563
|
const latestOutputs = selectedTask ? controller.taskDetail.value?.latestOutputs ?? [] : [];
|
|
2564
|
+
const [deleteDialogOpen, setDeleteDialogOpen] = useState6(false);
|
|
2565
|
+
const [deleteBusy, setDeleteBusy] = useState6(false);
|
|
2503
2566
|
if (isCreatingIssue || isEditingIssue) {
|
|
2504
2567
|
return /* @__PURE__ */ jsxs8("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
|
|
2505
2568
|
/* @__PURE__ */ jsx8("div", { className: "flex min-h-0 flex-1 flex-col gap-[14px] overflow-y-auto px-7 py-8", children: /* @__PURE__ */ jsxs8("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
|
|
2506
|
-
/* @__PURE__ */ jsx8(
|
|
2569
|
+
/* @__PURE__ */ jsx8(
|
|
2570
|
+
"div",
|
|
2571
|
+
{
|
|
2572
|
+
className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
|
|
2573
|
+
children: /* @__PURE__ */ jsx8("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") })
|
|
2574
|
+
}
|
|
2575
|
+
),
|
|
2507
2576
|
/* @__PURE__ */ jsxs8("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
|
|
2508
|
-
/* @__PURE__ */ jsxs8(
|
|
2509
|
-
|
|
2577
|
+
/* @__PURE__ */ jsxs8(
|
|
2578
|
+
"label",
|
|
2579
|
+
{
|
|
2580
|
+
className: `flex w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-primary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
|
|
2581
|
+
children: [
|
|
2582
|
+
/* @__PURE__ */ jsx8("span", { className: "leading-5", children: copy.t("labels.title") }),
|
|
2583
|
+
/* @__PURE__ */ jsx8(
|
|
2584
|
+
Input2,
|
|
2585
|
+
{
|
|
2586
|
+
placeholder: copy.t("composer.issueTitlePlaceholder"),
|
|
2587
|
+
variant: "md",
|
|
2588
|
+
value: controller.issueDraft.title,
|
|
2589
|
+
onChange: (event) => controller.setIssueTitle(event.target.value)
|
|
2590
|
+
}
|
|
2591
|
+
)
|
|
2592
|
+
]
|
|
2593
|
+
}
|
|
2594
|
+
),
|
|
2595
|
+
/* @__PURE__ */ jsxs8(
|
|
2596
|
+
"div",
|
|
2597
|
+
{
|
|
2598
|
+
className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-primary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
|
|
2599
|
+
children: [
|
|
2600
|
+
/* @__PURE__ */ jsx8("span", { className: "leading-5", children: copy.t("labels.content") }),
|
|
2601
|
+
/* @__PURE__ */ jsx8(
|
|
2602
|
+
IssueManagerRichTextTextarea,
|
|
2603
|
+
{
|
|
2604
|
+
controller,
|
|
2605
|
+
surface: "issue",
|
|
2606
|
+
textareaClassName: "min-h-[180px] resize-none",
|
|
2607
|
+
placeholder: copy.t("composer.issueContentPlaceholder"),
|
|
2608
|
+
value: controller.issueDraft.content,
|
|
2609
|
+
onChange: controller.setIssueContent
|
|
2610
|
+
}
|
|
2611
|
+
)
|
|
2612
|
+
]
|
|
2613
|
+
}
|
|
2614
|
+
)
|
|
2615
|
+
] })
|
|
2616
|
+
] }) }),
|
|
2617
|
+
/* @__PURE__ */ jsx8(
|
|
2618
|
+
"div",
|
|
2619
|
+
{
|
|
2620
|
+
className: `shrink-0 border-t border-border-1 px-7 py-4 ${issueManagerEditorFooterFadeInClassName}`,
|
|
2621
|
+
children: /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-end gap-3", children: [
|
|
2510
2622
|
/* @__PURE__ */ jsx8(
|
|
2511
|
-
|
|
2623
|
+
Button7,
|
|
2512
2624
|
{
|
|
2513
|
-
|
|
2514
|
-
|
|
2515
|
-
|
|
2516
|
-
|
|
2625
|
+
size: "dialog",
|
|
2626
|
+
type: "button",
|
|
2627
|
+
variant: "secondary",
|
|
2628
|
+
onClick: onDismissCreate,
|
|
2629
|
+
children: copy.t("actions.cancel")
|
|
2517
2630
|
}
|
|
2518
|
-
)
|
|
2519
|
-
] }),
|
|
2520
|
-
/* @__PURE__ */ jsxs8("div", { className: "flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-foreground", children: [
|
|
2521
|
-
/* @__PURE__ */ jsx8("span", { className: "leading-5", children: copy.t("labels.content") }),
|
|
2631
|
+
),
|
|
2522
2632
|
/* @__PURE__ */ jsx8(
|
|
2523
|
-
|
|
2633
|
+
Button7,
|
|
2524
2634
|
{
|
|
2525
|
-
|
|
2526
|
-
|
|
2527
|
-
|
|
2528
|
-
|
|
2529
|
-
|
|
2530
|
-
onChange: controller.setIssueContent
|
|
2635
|
+
disabled: isIssueTitleMissing,
|
|
2636
|
+
size: "dialog",
|
|
2637
|
+
type: "button",
|
|
2638
|
+
onClick: () => void controller.saveIssue(),
|
|
2639
|
+
children: copy.t("actions.saveIssue")
|
|
2531
2640
|
}
|
|
2532
2641
|
)
|
|
2533
2642
|
] })
|
|
2534
|
-
|
|
2535
|
-
|
|
2536
|
-
/* @__PURE__ */ jsx8("div", { className: "shrink-0 border-t border-border-1 px-7 py-4", children: /* @__PURE__ */ jsxs8("div", { className: "flex items-center justify-end gap-4", children: [
|
|
2537
|
-
/* @__PURE__ */ jsx8(
|
|
2538
|
-
Button7,
|
|
2539
|
-
{
|
|
2540
|
-
size: "dialog",
|
|
2541
|
-
type: "button",
|
|
2542
|
-
variant: "secondary",
|
|
2543
|
-
onClick: onDismissCreate,
|
|
2544
|
-
children: copy.t("actions.cancel")
|
|
2545
|
-
}
|
|
2546
|
-
),
|
|
2547
|
-
/* @__PURE__ */ jsx8(
|
|
2548
|
-
Button7,
|
|
2549
|
-
{
|
|
2550
|
-
disabled: isIssueTitleMissing,
|
|
2551
|
-
size: "dialog",
|
|
2552
|
-
type: "button",
|
|
2553
|
-
onClick: () => void controller.saveIssue(),
|
|
2554
|
-
children: copy.t("actions.saveIssue")
|
|
2555
|
-
}
|
|
2556
|
-
)
|
|
2557
|
-
] }) })
|
|
2643
|
+
}
|
|
2644
|
+
)
|
|
2558
2645
|
] });
|
|
2559
2646
|
}
|
|
2560
2647
|
if (!selectedIssue) {
|
|
@@ -2563,14 +2650,28 @@ function IssueManagerIssuePane({
|
|
|
2563
2650
|
return /* @__PURE__ */ jsx8("div", { className: "flex min-h-0 flex-col", children: /* @__PURE__ */ jsx8("div", { className: "min-h-0 flex-1 overflow-y-auto px-8 py-7", children: controller.issueDetail.isLoading && controller.issueDetail.value === null ? /* @__PURE__ */ jsx8(IssueManagerPaneLoadingState, {}) : /* @__PURE__ */ jsxs8("div", { className: "flex w-full min-w-0 flex-col gap-9", children: [
|
|
2564
2651
|
/* @__PURE__ */ jsxs8("header", { className: "flex items-start justify-between gap-6", children: [
|
|
2565
2652
|
/* @__PURE__ */ jsxs8("div", { className: "min-w-0 flex-1", children: [
|
|
2566
|
-
/* @__PURE__ */ jsx8("h2", { className: "line-clamp-2 text-base font-semibold leading-6 text-
|
|
2567
|
-
/* @__PURE__ */ jsxs8("div", { className: "mt-3 flex flex-wrap items-center gap-x-
|
|
2568
|
-
/* @__PURE__ */ jsx8(Badge3, {
|
|
2653
|
+
/* @__PURE__ */ jsx8("h2", { className: "line-clamp-2 text-base font-semibold leading-6 text-[var(--text-primary)]", children: selectedIssue.title }),
|
|
2654
|
+
/* @__PURE__ */ jsxs8("div", { className: "mt-3 flex flex-wrap items-center gap-x-2 gap-y-2 text-sm font-normal text-[var(--text-secondary)]", children: [
|
|
2655
|
+
/* @__PURE__ */ jsx8(Badge3, { variant: "secondary", children: resolveIssueManagerStatusLabel(copy, selectedIssue.status) }),
|
|
2656
|
+
/* @__PURE__ */ jsx8(
|
|
2657
|
+
"span",
|
|
2658
|
+
{
|
|
2659
|
+
"aria-hidden": "true",
|
|
2660
|
+
className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
|
|
2661
|
+
}
|
|
2662
|
+
),
|
|
2569
2663
|
/* @__PURE__ */ jsxs8("span", { children: [
|
|
2570
2664
|
copy.t("labels.creator"),
|
|
2571
2665
|
" ",
|
|
2572
2666
|
resolveIssueManagerCreatorLabel(selectedIssue)
|
|
2573
2667
|
] }),
|
|
2668
|
+
/* @__PURE__ */ jsx8(
|
|
2669
|
+
"span",
|
|
2670
|
+
{
|
|
2671
|
+
"aria-hidden": "true",
|
|
2672
|
+
className: "h-4 w-px shrink-0 bg-[var(--line-2)]"
|
|
2673
|
+
}
|
|
2674
|
+
),
|
|
2574
2675
|
/* @__PURE__ */ jsxs8("span", { children: [
|
|
2575
2676
|
copy.t("labels.createdAt"),
|
|
2576
2677
|
" ",
|
|
@@ -2578,12 +2679,10 @@ function IssueManagerIssuePane({
|
|
|
2578
2679
|
] })
|
|
2579
2680
|
] })
|
|
2580
2681
|
] }),
|
|
2581
|
-
/* @__PURE__ */ jsxs8("div", { className: "flex shrink-0 items-center gap-
|
|
2682
|
+
/* @__PURE__ */ jsxs8("div", { className: "flex shrink-0 items-center gap-2 pt-1", children: [
|
|
2582
2683
|
/* @__PURE__ */ jsx8(
|
|
2583
2684
|
Button7,
|
|
2584
2685
|
{
|
|
2585
|
-
className: "h-auto px-0 text-sm font-semibold text-muted-foreground hover:text-foreground",
|
|
2586
|
-
size: "sm",
|
|
2587
2686
|
type: "button",
|
|
2588
2687
|
variant: "ghost",
|
|
2589
2688
|
onClick: () => controller.setIssueEditorMode("edit"),
|
|
@@ -2593,18 +2692,35 @@ function IssueManagerIssuePane({
|
|
|
2593
2692
|
/* @__PURE__ */ jsx8(
|
|
2594
2693
|
Button7,
|
|
2595
2694
|
{
|
|
2596
|
-
className: "
|
|
2597
|
-
size: "sm",
|
|
2695
|
+
className: "text-[var(--state-danger)] hover:bg-[var(--on-danger)] hover:text-[var(--state-danger)]",
|
|
2598
2696
|
type: "button",
|
|
2599
2697
|
variant: "ghost",
|
|
2600
|
-
onClick: () =>
|
|
2601
|
-
void controller.deleteIssue();
|
|
2602
|
-
},
|
|
2698
|
+
onClick: () => setDeleteDialogOpen(true),
|
|
2603
2699
|
children: copy.t("actions.delete")
|
|
2604
2700
|
}
|
|
2605
2701
|
)
|
|
2606
2702
|
] })
|
|
2607
2703
|
] }),
|
|
2704
|
+
/* @__PURE__ */ jsx8(
|
|
2705
|
+
ConfirmationDialog,
|
|
2706
|
+
{
|
|
2707
|
+
cancelLabel: copy.t("actions.cancel"),
|
|
2708
|
+
confirmBusy: deleteBusy,
|
|
2709
|
+
confirmLabel: copy.t("actions.delete"),
|
|
2710
|
+
description: selectedIssue.title,
|
|
2711
|
+
open: deleteDialogOpen,
|
|
2712
|
+
title: copy.t("confirmations.deleteIssue"),
|
|
2713
|
+
tone: "destructive",
|
|
2714
|
+
onConfirm: () => {
|
|
2715
|
+
setDeleteBusy(true);
|
|
2716
|
+
void controller.deleteIssue({ skipConfirmation: true }).finally(() => {
|
|
2717
|
+
setDeleteBusy(false);
|
|
2718
|
+
setDeleteDialogOpen(false);
|
|
2719
|
+
});
|
|
2720
|
+
},
|
|
2721
|
+
onOpenChange: setDeleteDialogOpen
|
|
2722
|
+
}
|
|
2723
|
+
),
|
|
2608
2724
|
/* @__PURE__ */ jsx8(
|
|
2609
2725
|
IssueManagerDescriptionSection,
|
|
2610
2726
|
{
|
|
@@ -2648,17 +2764,19 @@ function IssueManagerIssuePane({
|
|
|
2648
2764
|
}
|
|
2649
2765
|
|
|
2650
2766
|
// src/ui/internal/shell/IssueManagerBottomBar.tsx
|
|
2651
|
-
import { Button as Button8, cn as
|
|
2767
|
+
import { Button as Button8, cn as cn7 } from "@nextop-os/ui-system";
|
|
2652
2768
|
|
|
2653
2769
|
// src/ui/internal/task/IssueManagerRunSections.tsx
|
|
2654
|
-
import { useState as
|
|
2770
|
+
import { useState as useState7 } from "react";
|
|
2655
2771
|
import {
|
|
2656
2772
|
Badge as Badge4,
|
|
2657
2773
|
Select,
|
|
2658
2774
|
SelectContent,
|
|
2659
2775
|
SelectItem,
|
|
2660
2776
|
SelectTrigger,
|
|
2661
|
-
SparkIcon
|
|
2777
|
+
SparkIcon,
|
|
2778
|
+
buttonVariants,
|
|
2779
|
+
cn as cn6
|
|
2662
2780
|
} from "@nextop-os/ui-system";
|
|
2663
2781
|
import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2664
2782
|
function IssueManagerRunActionTrigger({
|
|
@@ -2667,7 +2785,7 @@ function IssueManagerRunActionTrigger({
|
|
|
2667
2785
|
iconSize = 16,
|
|
2668
2786
|
triggerClassName
|
|
2669
2787
|
}) {
|
|
2670
|
-
const [resetToken, setResetToken] =
|
|
2788
|
+
const [resetToken, setResetToken] = useState7(0);
|
|
2671
2789
|
return /* @__PURE__ */ jsxs9(
|
|
2672
2790
|
Select,
|
|
2673
2791
|
{
|
|
@@ -2681,7 +2799,11 @@ function IssueManagerRunActionTrigger({
|
|
|
2681
2799
|
SelectTrigger,
|
|
2682
2800
|
{
|
|
2683
2801
|
"aria-label": controller.copy.t("actions.askAgentToRun"),
|
|
2684
|
-
className:
|
|
2802
|
+
className: cn6(
|
|
2803
|
+
buttonVariants({ variant: "secondary", size: "dialog" }),
|
|
2804
|
+
"[&>svg]:hidden",
|
|
2805
|
+
triggerClassName
|
|
2806
|
+
),
|
|
2685
2807
|
children: /* @__PURE__ */ jsxs9("span", { className: "flex min-w-0 flex-1 items-center gap-2", children: [
|
|
2686
2808
|
/* @__PURE__ */ jsx9(SparkIcon, { size: iconSize }),
|
|
2687
2809
|
/* @__PURE__ */ jsx9("span", { className: "truncate", children: controller.copy.t("actions.askAgentToRun") })
|
|
@@ -2703,7 +2825,7 @@ function IssueManagerRunPanels({
|
|
|
2703
2825
|
return /* @__PURE__ */ jsxs9("div", { className: "grid gap-4", children: [
|
|
2704
2826
|
/* @__PURE__ */ jsxs9("section", { className: "rounded-lg border border-border-1 bg-transparent px-4 py-4", children: [
|
|
2705
2827
|
/* @__PURE__ */ jsx9("h4", { className: "mb-3 text-sm font-semibold leading-5 text-[var(--text-primary)]", children: copy.t("labels.recentRuns") }),
|
|
2706
|
-
recentRuns.length === 0 ? /* @__PURE__ */ jsx9("p", { className: "text-sm leading-5 text-text-secondary", children: copy.t("messages.noRecentRuns") }) : /* @__PURE__ */ jsx9("div", { className: "grid gap-2.5", children: recentRuns.map((run) => /* @__PURE__ */ jsxs9(
|
|
2828
|
+
recentRuns.length === 0 ? /* @__PURE__ */ jsx9("p", { className: "text-sm leading-5 text-[var(--text-secondary)]", children: copy.t("messages.noRecentRuns") }) : /* @__PURE__ */ jsx9("div", { className: "grid gap-2.5", children: recentRuns.map((run) => /* @__PURE__ */ jsxs9(
|
|
2707
2829
|
"div",
|
|
2708
2830
|
{
|
|
2709
2831
|
className: "rounded-lg border border-[var(--border-2)] bg-transparent px-3.5 py-3",
|
|
@@ -2711,13 +2833,13 @@ function IssueManagerRunPanels({
|
|
|
2711
2833
|
/* @__PURE__ */ jsxs9("div", { className: "flex items-start justify-between gap-3", children: [
|
|
2712
2834
|
/* @__PURE__ */ jsxs9("div", { className: "min-w-0", children: [
|
|
2713
2835
|
/* @__PURE__ */ jsx9("p", { className: "truncate text-sm font-semibold leading-5 text-[var(--text-primary)]", children: run.summary || run.runId }),
|
|
2714
|
-
/* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs leading-[1.55] text-text-secondary", children: formatIssueManagerTimestamp(
|
|
2836
|
+
/* @__PURE__ */ jsx9("p", { className: "mt-1 text-xs leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerTimestamp(
|
|
2715
2837
|
run.updatedAtUnix ?? run.createdAtUnix
|
|
2716
2838
|
) })
|
|
2717
2839
|
] }),
|
|
2718
|
-
/* @__PURE__ */ jsx9(Badge4, { className: "rounded-full border-transparent bg-transparency-block px-2.5 py-1 text-xs text-text-secondary", children: resolveIssueManagerStatusLabel(copy, run.status) })
|
|
2840
|
+
/* @__PURE__ */ jsx9(Badge4, { className: "rounded-full border-transparent bg-transparency-block px-2.5 py-1 text-xs text-[var(--text-secondary)]", children: resolveIssueManagerStatusLabel(copy, run.status) })
|
|
2719
2841
|
] }),
|
|
2720
|
-
run.errorMessage ? /* @__PURE__ */ jsx9("p", { className: "mt-2 text-xs text-
|
|
2842
|
+
run.errorMessage ? /* @__PURE__ */ jsx9("p", { className: "mt-2 text-xs text-[var(--state-danger)]", children: run.errorMessage }) : null
|
|
2721
2843
|
]
|
|
2722
2844
|
},
|
|
2723
2845
|
run.runId
|
|
@@ -2725,7 +2847,7 @@ function IssueManagerRunPanels({
|
|
|
2725
2847
|
] }),
|
|
2726
2848
|
/* @__PURE__ */ jsxs9("section", { className: "rounded-lg border border-border-1 bg-transparent px-4 py-4", children: [
|
|
2727
2849
|
/* @__PURE__ */ jsx9("h4", { className: "mb-3 text-sm font-semibold leading-5 text-[var(--text-primary)]", children: copy.t("labels.outputs") }),
|
|
2728
|
-
outputs.length === 0 ? /* @__PURE__ */ jsx9("p", { className: "text-sm leading-5 text-text-secondary", children: copy.t("messages.noOutputs") }) : /* @__PURE__ */ jsx9("div", { className: "grid gap-2.5", children: outputs.map((output) => /* @__PURE__ */ jsxs9(
|
|
2850
|
+
outputs.length === 0 ? /* @__PURE__ */ jsx9("p", { className: "text-sm leading-5 text-[var(--text-secondary)]", children: copy.t("messages.noOutputs") }) : /* @__PURE__ */ jsx9("div", { className: "grid gap-2.5", children: outputs.map((output) => /* @__PURE__ */ jsxs9(
|
|
2729
2851
|
"button",
|
|
2730
2852
|
{
|
|
2731
2853
|
className: "rounded-lg border border-[var(--border-2)] bg-transparent px-3.5 py-3 text-left transition-colors hover:bg-transparency-hover",
|
|
@@ -2739,7 +2861,7 @@ function IssueManagerRunPanels({
|
|
|
2739
2861
|
},
|
|
2740
2862
|
children: [
|
|
2741
2863
|
/* @__PURE__ */ jsx9("p", { className: "truncate text-sm font-semibold leading-5 text-[var(--text-primary)]", children: output.displayName }),
|
|
2742
|
-
/* @__PURE__ */ jsx9("p", { className: "mt-1 truncate text-xs leading-[1.55] text-text-secondary", children: output.path })
|
|
2864
|
+
/* @__PURE__ */ jsx9("p", { className: "mt-1 truncate text-xs leading-[1.55] text-[var(--text-secondary)]", children: output.path })
|
|
2743
2865
|
]
|
|
2744
2866
|
},
|
|
2745
2867
|
output.outputId
|
|
@@ -2764,26 +2886,22 @@ function IssueManagerBottomBar({
|
|
|
2764
2886
|
return /* @__PURE__ */ jsx10("div", { className: "border-t border-[var(--border-1)] bg-transparent px-6 py-4 backdrop-blur", children: /* @__PURE__ */ jsxs10(
|
|
2765
2887
|
"div",
|
|
2766
2888
|
{
|
|
2767
|
-
className:
|
|
2889
|
+
className: cn7(
|
|
2768
2890
|
"flex gap-3",
|
|
2769
|
-
isNarrowLayout ? "flex-
|
|
2891
|
+
isNarrowLayout ? "flex-wrap items-center justify-end" : "items-center justify-end"
|
|
2770
2892
|
),
|
|
2771
2893
|
children: [
|
|
2772
2894
|
/* @__PURE__ */ jsx10(
|
|
2773
2895
|
IssueManagerRunActionTrigger,
|
|
2774
2896
|
{
|
|
2775
2897
|
controller,
|
|
2776
|
-
disabled: !selectedTask
|
|
2777
|
-
triggerClassName: cn5(
|
|
2778
|
-
"rounded-xl border-[var(--border-1)] bg-[var(--transparency-block)] px-4 py-2",
|
|
2779
|
-
isNarrowLayout ? "w-full" : "min-w-[14rem]"
|
|
2780
|
-
)
|
|
2898
|
+
disabled: !selectedTask
|
|
2781
2899
|
}
|
|
2782
2900
|
),
|
|
2783
2901
|
controller.canInviteCollaborators ? /* @__PURE__ */ jsx10(
|
|
2784
2902
|
Button8,
|
|
2785
2903
|
{
|
|
2786
|
-
className:
|
|
2904
|
+
className: "px-4",
|
|
2787
2905
|
disabled: !selectedIssue,
|
|
2788
2906
|
size: "dialog",
|
|
2789
2907
|
type: "button",
|
|
@@ -2801,9 +2919,9 @@ function IssueManagerBottomBar({
|
|
|
2801
2919
|
// src/ui/internal/shell/IssueManagerFloatingNotice.tsx
|
|
2802
2920
|
import {
|
|
2803
2921
|
FailedFilledIcon,
|
|
2804
|
-
Spinner,
|
|
2922
|
+
Spinner as Spinner2,
|
|
2805
2923
|
toastVariants,
|
|
2806
|
-
cn as
|
|
2924
|
+
cn as cn8
|
|
2807
2925
|
} from "@nextop-os/ui-system";
|
|
2808
2926
|
import { jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2809
2927
|
function IssueManagerFloatingNotice({
|
|
@@ -2815,14 +2933,14 @@ function IssueManagerFloatingNotice({
|
|
|
2815
2933
|
{
|
|
2816
2934
|
"aria-busy": notice.isLoading,
|
|
2817
2935
|
"aria-live": variant === "destructive" ? "assertive" : "polite",
|
|
2818
|
-
className:
|
|
2936
|
+
className: cn8(
|
|
2819
2937
|
toastVariants({ variant }),
|
|
2820
2938
|
"w-fit max-w-[min(72vw,40rem)] px-4 py-3 shadow-lg"
|
|
2821
2939
|
),
|
|
2822
2940
|
role: variant === "destructive" ? "alert" : "status",
|
|
2823
2941
|
children: /* @__PURE__ */ jsxs11("div", { className: "flex min-w-0 max-w-full items-center gap-[6px] whitespace-nowrap text-sm font-normal leading-normal", children: [
|
|
2824
2942
|
notice.isLoading ? /* @__PURE__ */ jsx11(
|
|
2825
|
-
|
|
2943
|
+
Spinner2,
|
|
2826
2944
|
{
|
|
2827
2945
|
className: "shrink-0 text-current",
|
|
2828
2946
|
size: 16,
|
|
@@ -2837,7 +2955,7 @@ function IssueManagerFloatingNotice({
|
|
|
2837
2955
|
}
|
|
2838
2956
|
|
|
2839
2957
|
// src/ui/internal/shell/IssueManagerSidebar.tsx
|
|
2840
|
-
import { cn as
|
|
2958
|
+
import { cn as cn10 } from "@nextop-os/ui-system";
|
|
2841
2959
|
|
|
2842
2960
|
// src/ui/internal/shell/IssueManagerSidebarSections.tsx
|
|
2843
2961
|
import {
|
|
@@ -2848,7 +2966,7 @@ import {
|
|
|
2848
2966
|
Input as Input3,
|
|
2849
2967
|
ScrollArea as ScrollArea3,
|
|
2850
2968
|
UnderlineTabs,
|
|
2851
|
-
cn as
|
|
2969
|
+
cn as cn9
|
|
2852
2970
|
} from "@nextop-os/ui-system";
|
|
2853
2971
|
|
|
2854
2972
|
// src/ui/internal/shell/IssueManagerShellState.ts
|
|
@@ -2862,7 +2980,7 @@ var issueManagerStatusFilters = [
|
|
|
2862
2980
|
"canceled"
|
|
2863
2981
|
];
|
|
2864
2982
|
function resolveIssueManagerSidebarViewState(input) {
|
|
2865
|
-
if (input.issues.isLoading && input.issues.value.length === 0) {
|
|
2983
|
+
if (input.issues.isLoading && input.issues.value.length === 0 && input.issues.hasResolved !== true) {
|
|
2866
2984
|
return {
|
|
2867
2985
|
kind: "loading"
|
|
2868
2986
|
};
|
|
@@ -2903,6 +3021,20 @@ function buildIssueManagerStatusCounts(issues) {
|
|
|
2903
3021
|
}
|
|
2904
3022
|
return counts;
|
|
2905
3023
|
}
|
|
3024
|
+
function resolveIssueManagerStatusCounts(input) {
|
|
3025
|
+
return input.statusCounts ? mapIssueManagerStatusCounts(input.statusCounts) : buildIssueManagerStatusCounts(input.value);
|
|
3026
|
+
}
|
|
3027
|
+
function mapIssueManagerStatusCounts(counts) {
|
|
3028
|
+
return {
|
|
3029
|
+
all: counts.all,
|
|
3030
|
+
canceled: counts.canceled,
|
|
3031
|
+
completed: counts.completed,
|
|
3032
|
+
failed: counts.failed,
|
|
3033
|
+
not_started: counts.notStarted,
|
|
3034
|
+
pending_acceptance: counts.pendingAcceptance,
|
|
3035
|
+
running: counts.running
|
|
3036
|
+
};
|
|
3037
|
+
}
|
|
2906
3038
|
function resolveIssueManagerShellContentViewState(input) {
|
|
2907
3039
|
const isIssueEditing = input.issueEditorMode !== "read";
|
|
2908
3040
|
const isTaskCreating = !isIssueEditing && input.taskEditorMode === "create";
|
|
@@ -2983,11 +3115,11 @@ function IssueManagerSidebarBody({
|
|
|
2983
3115
|
return /* @__PURE__ */ jsx12(
|
|
2984
3116
|
ScrollArea3,
|
|
2985
3117
|
{
|
|
2986
|
-
className:
|
|
3118
|
+
className: cn9("min-h-0", isNarrowLayout ? "flex-none" : "h-full flex-1"),
|
|
2987
3119
|
children: /* @__PURE__ */ jsx12(
|
|
2988
3120
|
"div",
|
|
2989
3121
|
{
|
|
2990
|
-
className:
|
|
3122
|
+
className: cn9(
|
|
2991
3123
|
"flex min-h-full flex-col gap-2.5 px-4 pt-1.5 pb-4",
|
|
2992
3124
|
isNarrowLayout ? "min-h-0" : "h-full"
|
|
2993
3125
|
),
|
|
@@ -3065,7 +3197,7 @@ function IssueManagerSearchField({
|
|
|
3065
3197
|
Input3,
|
|
3066
3198
|
{
|
|
3067
3199
|
"aria-label": placeholder,
|
|
3068
|
-
className:
|
|
3200
|
+
className: cn9(
|
|
3069
3201
|
"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",
|
|
3070
3202
|
"[&::-webkit-search-cancel-button]:appearance-none [&::-webkit-search-decoration]:appearance-none",
|
|
3071
3203
|
value ? "pr-9" : "pr-3"
|
|
@@ -3101,7 +3233,7 @@ function IssueManagerSidebarIssueList({
|
|
|
3101
3233
|
return /* @__PURE__ */ jsx12(
|
|
3102
3234
|
"div",
|
|
3103
3235
|
{
|
|
3104
|
-
className:
|
|
3236
|
+
className: cn9(
|
|
3105
3237
|
"flex gap-2.5",
|
|
3106
3238
|
isNarrowLayout ? "flex-row flex-nowrap items-start overflow-x-auto overflow-y-hidden [scrollbar-width:none] [&::-webkit-scrollbar]:hidden" : "flex-col"
|
|
3107
3239
|
),
|
|
@@ -3129,7 +3261,7 @@ function IssueManagerSidebarItem({
|
|
|
3129
3261
|
return /* @__PURE__ */ jsxs12(
|
|
3130
3262
|
"button",
|
|
3131
3263
|
{
|
|
3132
|
-
className:
|
|
3264
|
+
className: cn9(
|
|
3133
3265
|
"rounded-lg border px-3.5 py-3.5 text-left transition-colors",
|
|
3134
3266
|
isNarrowLayout ? "h-24 max-h-24 min-h-24 w-[clamp(220px,58vw,320px)] flex-[0_0_clamp(220px,58vw,320px)] overflow-hidden" : "w-full",
|
|
3135
3267
|
selected ? "border-[var(--border-1)] bg-[var(--background-fronted)]" : "border-[var(--border-1)] bg-transparent hover:bg-[var(--transparency-block)]"
|
|
@@ -3142,7 +3274,7 @@ function IssueManagerSidebarItem({
|
|
|
3142
3274
|
/* @__PURE__ */ jsx12("p", { className: "text-[12px] leading-[1.55] text-[var(--text-secondary)]", children: formatIssueManagerDate(issue.updatedAtUnix ?? issue.createdAtUnix) }),
|
|
3143
3275
|
/* @__PURE__ */ jsx12("p", { className: "line-clamp-4 text-[14px] font-semibold leading-[1.35rem] text-[var(--text-primary)]", children: issue.title })
|
|
3144
3276
|
] }),
|
|
3145
|
-
/* @__PURE__ */ jsx12(Badge5, { className: "
|
|
3277
|
+
/* @__PURE__ */ jsx12(Badge5, { className: "shrink-0", variant: "secondary", children: resolveIssueManagerStatusLabel(copy, issue.status) })
|
|
3146
3278
|
] }),
|
|
3147
3279
|
/* @__PURE__ */ jsx12("div", { className: "mt-2 text-[12px] leading-[1.55] text-[var(--text-secondary)]", children: copy.t("labels.taskCount", { count: issue.taskCount ?? 0 }) })
|
|
3148
3280
|
]
|
|
@@ -3156,14 +3288,14 @@ function IssueManagerSidebarLoadingState({
|
|
|
3156
3288
|
"div",
|
|
3157
3289
|
{
|
|
3158
3290
|
"aria-hidden": "true",
|
|
3159
|
-
className:
|
|
3291
|
+
className: cn9(
|
|
3160
3292
|
"gap-2.5",
|
|
3161
3293
|
isNarrowLayout ? "flex flex-row flex-nowrap overflow-x-hidden" : "grid"
|
|
3162
3294
|
),
|
|
3163
3295
|
children: Array.from({ length: 4 }, (_, index) => /* @__PURE__ */ jsxs12(
|
|
3164
3296
|
"div",
|
|
3165
3297
|
{
|
|
3166
|
-
className:
|
|
3298
|
+
className: cn9(
|
|
3167
3299
|
"rounded-lg bg-transparent px-3.5 py-3.5",
|
|
3168
3300
|
isNarrowLayout && "h-24 max-h-24 min-h-24 w-[clamp(220px,58vw,320px)] flex-[0_0_clamp(220px,58vw,320px)]"
|
|
3169
3301
|
),
|
|
@@ -3187,7 +3319,7 @@ function IssueManagerSidebarEmptyState({
|
|
|
3187
3319
|
return /* @__PURE__ */ jsxs12(
|
|
3188
3320
|
"div",
|
|
3189
3321
|
{
|
|
3190
|
-
className:
|
|
3322
|
+
className: cn9(
|
|
3191
3323
|
"relative flex flex-1 flex-col items-center justify-center self-stretch overflow-hidden p-0 text-center",
|
|
3192
3324
|
isNarrowLayout ? "h-24 max-h-24 min-h-24 w-full flex-[0_0_100%]" : "min-h-full"
|
|
3193
3325
|
),
|
|
@@ -3195,7 +3327,7 @@ function IssueManagerSidebarEmptyState({
|
|
|
3195
3327
|
/* @__PURE__ */ jsx12(
|
|
3196
3328
|
"p",
|
|
3197
3329
|
{
|
|
3198
|
-
className:
|
|
3330
|
+
className: cn9(
|
|
3199
3331
|
"text-sm font-semibold leading-5 text-[var(--text-primary)]",
|
|
3200
3332
|
tone === "destructive" ? "text-[var(--state-danger)]" : "text-[var(--text-primary)]"
|
|
3201
3333
|
),
|
|
@@ -3216,7 +3348,7 @@ function IssueManagerSidebarErrorState({
|
|
|
3216
3348
|
return /* @__PURE__ */ jsxs12(
|
|
3217
3349
|
"div",
|
|
3218
3350
|
{
|
|
3219
|
-
className:
|
|
3351
|
+
className: cn9(
|
|
3220
3352
|
"relative flex flex-1 flex-col items-center justify-center self-stretch overflow-hidden px-4 py-6 text-center",
|
|
3221
3353
|
isNarrowLayout ? "h-24 max-h-24 min-h-24 w-full flex-[0_0_100%]" : "min-h-full"
|
|
3222
3354
|
),
|
|
@@ -3280,10 +3412,10 @@ function IssueManagerSidebar({
|
|
|
3280
3412
|
"aside",
|
|
3281
3413
|
{
|
|
3282
3414
|
"aria-hidden": isCollapsed ? "true" : void 0,
|
|
3283
|
-
className:
|
|
3284
|
-
"
|
|
3415
|
+
className: cn10(
|
|
3416
|
+
"relative isolate flex h-full min-h-0 min-w-0 flex-col overflow-hidden bg-transparent opacity-100 transition-[border-color] duration-[140ms] ease-in-out after:pointer-events-none after:absolute after:inset-0 after:z-[1] after:bg-[color-mix(in_srgb,var(--background-panel)_88%,transparent)] after:opacity-0 after:transition-opacity after:duration-[160ms] after:delay-[70ms] motion-reduce:transition-none motion-reduce:after:transition-none [&>*]:transition-[opacity,filter] [&>*]:duration-[160ms] [&>*]:delay-[70ms] [&>*]:ease-in-out motion-reduce:[&>*]:transition-none",
|
|
3285
3417
|
isNarrowLayout ? "border-b border-[var(--border-1)]" : "border-r border-[var(--border-1)]",
|
|
3286
|
-
isCollapsed && "pointer-events-none
|
|
3418
|
+
isCollapsed && "pointer-events-none border-r-transparent after:opacity-100 after:delay-0 [&>*]:opacity-0 [&>*]:blur-[1px] [&>*]:delay-0 motion-reduce:[&>*]:blur-none"
|
|
3287
3419
|
),
|
|
3288
3420
|
inert: isCollapsed ? true : void 0,
|
|
3289
3421
|
children: [
|
|
@@ -3309,7 +3441,7 @@ function IssueManagerSidebar({
|
|
|
3309
3441
|
/* @__PURE__ */ jsx13(
|
|
3310
3442
|
"div",
|
|
3311
3443
|
{
|
|
3312
|
-
className:
|
|
3444
|
+
className: cn10(
|
|
3313
3445
|
"relative flex min-h-0 flex-col",
|
|
3314
3446
|
isNarrowLayout ? "flex-none" : "flex-1"
|
|
3315
3447
|
),
|
|
@@ -3342,18 +3474,8 @@ function IssueManagerSidebar({
|
|
|
3342
3474
|
}
|
|
3343
3475
|
|
|
3344
3476
|
// src/ui/internal/shell/IssueManagerTaskComposerPane.tsx
|
|
3345
|
-
import {
|
|
3346
|
-
Button as Button10,
|
|
3347
|
-
Input as Input4,
|
|
3348
|
-
Select as Select2,
|
|
3349
|
-
SelectContent as SelectContent2,
|
|
3350
|
-
SelectItem as SelectItem2,
|
|
3351
|
-
SelectTrigger as SelectTrigger2,
|
|
3352
|
-
SelectValue,
|
|
3353
|
-
UploadIcon
|
|
3354
|
-
} from "@nextop-os/ui-system";
|
|
3477
|
+
import { Button as Button10, Input as Input4 } from "@nextop-os/ui-system";
|
|
3355
3478
|
import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3356
|
-
var taskPriorityOptions = ["high", "medium", "low"];
|
|
3357
3479
|
function IssueManagerTaskComposerPane({
|
|
3358
3480
|
controller,
|
|
3359
3481
|
onCancel,
|
|
@@ -3361,118 +3483,84 @@ function IssueManagerTaskComposerPane({
|
|
|
3361
3483
|
}) {
|
|
3362
3484
|
const copy = controller.copy;
|
|
3363
3485
|
const isTaskTitleMissing = controller.taskDraft.title.trim().length === 0;
|
|
3364
|
-
const showAttachmentActions = controller.canUploadWorkspaceFiles || controller.canReferenceWorkspaceFiles;
|
|
3365
3486
|
return /* @__PURE__ */ jsxs14("div", { className: "flex h-full min-h-0 flex-col overflow-hidden", children: [
|
|
3366
|
-
/* @__PURE__ */ jsx14("div", { className: "min-h-0 flex-1 overflow-y-auto px-7 py-8", children: /* @__PURE__ */ jsxs14("div", { className: "flex w-full
|
|
3367
|
-
/* @__PURE__ */
|
|
3368
|
-
|
|
3369
|
-
|
|
3370
|
-
|
|
3371
|
-
/* @__PURE__ */
|
|
3372
|
-
|
|
3373
|
-
|
|
3374
|
-
|
|
3375
|
-
|
|
3376
|
-
|
|
3377
|
-
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3382
|
-
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
/* @__PURE__ */
|
|
3394
|
-
|
|
3487
|
+
/* @__PURE__ */ jsx14("div", { className: "flex min-h-0 flex-1 flex-col gap-[14px] overflow-y-auto px-7 py-8", children: /* @__PURE__ */ jsxs14("div", { className: "flex w-full min-w-0 flex-col gap-3", children: [
|
|
3488
|
+
/* @__PURE__ */ jsx14(
|
|
3489
|
+
"div",
|
|
3490
|
+
{
|
|
3491
|
+
className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
|
|
3492
|
+
children: /* @__PURE__ */ jsx14("h2", { className: "m-0 text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: copy.t("actions.addSubtask") })
|
|
3493
|
+
}
|
|
3494
|
+
),
|
|
3495
|
+
/* @__PURE__ */ jsxs14("div", { className: "flex w-full min-w-0 flex-col gap-6", children: [
|
|
3496
|
+
/* @__PURE__ */ jsxs14(
|
|
3497
|
+
"label",
|
|
3498
|
+
{
|
|
3499
|
+
className: `flex w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-primary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
|
|
3500
|
+
children: [
|
|
3501
|
+
/* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.title") }),
|
|
3502
|
+
/* @__PURE__ */ jsx14(
|
|
3503
|
+
Input4,
|
|
3504
|
+
{
|
|
3505
|
+
placeholder: copy.t("composer.subtaskTitlePlaceholder"),
|
|
3506
|
+
variant: "md",
|
|
3507
|
+
value: controller.taskDraft.title,
|
|
3508
|
+
onChange: (event) => controller.setTaskTitle(event.target.value)
|
|
3509
|
+
}
|
|
3510
|
+
)
|
|
3511
|
+
]
|
|
3512
|
+
}
|
|
3513
|
+
),
|
|
3514
|
+
/* @__PURE__ */ jsxs14(
|
|
3515
|
+
"div",
|
|
3395
3516
|
{
|
|
3396
|
-
className:
|
|
3397
|
-
|
|
3398
|
-
|
|
3399
|
-
|
|
3517
|
+
className: `flex min-h-0 w-full min-w-0 flex-col gap-2 text-sm font-semibold text-[var(--text-primary)] ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
|
|
3518
|
+
children: [
|
|
3519
|
+
/* @__PURE__ */ jsx14("span", { className: "leading-5", children: copy.t("labels.requirementDescription") }),
|
|
3520
|
+
/* @__PURE__ */ jsx14(
|
|
3521
|
+
IssueManagerRichTextTextarea,
|
|
3522
|
+
{
|
|
3523
|
+
controller,
|
|
3524
|
+
surface: "task",
|
|
3525
|
+
textareaClassName: "min-h-[180px] resize-none",
|
|
3526
|
+
placeholder: copy.t("composer.subtaskContentPlaceholder"),
|
|
3527
|
+
value: controller.taskDraft.content,
|
|
3528
|
+
onChange: controller.setTaskContent
|
|
3529
|
+
}
|
|
3530
|
+
)
|
|
3531
|
+
]
|
|
3400
3532
|
}
|
|
3401
3533
|
)
|
|
3402
|
-
] })
|
|
3403
|
-
|
|
3404
|
-
|
|
3405
|
-
|
|
3534
|
+
] })
|
|
3535
|
+
] }) }),
|
|
3536
|
+
/* @__PURE__ */ jsx14(
|
|
3537
|
+
"div",
|
|
3538
|
+
{
|
|
3539
|
+
className: `shrink-0 border-t border-border-1 px-7 py-4 ${issueManagerEditorFooterFadeInClassName}`,
|
|
3540
|
+
children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-end gap-3", children: [
|
|
3406
3541
|
/* @__PURE__ */ jsx14(
|
|
3407
|
-
|
|
3542
|
+
Button10,
|
|
3408
3543
|
{
|
|
3409
|
-
|
|
3410
|
-
|
|
3411
|
-
|
|
3412
|
-
|
|
3413
|
-
|
|
3414
|
-
onChange: controller.setTaskContent
|
|
3544
|
+
size: "default",
|
|
3545
|
+
type: "button",
|
|
3546
|
+
variant: "secondary",
|
|
3547
|
+
onClick: onCancel,
|
|
3548
|
+
children: copy.t("actions.cancel")
|
|
3415
3549
|
}
|
|
3416
3550
|
),
|
|
3417
|
-
|
|
3418
|
-
|
|
3419
|
-
|
|
3420
|
-
|
|
3421
|
-
|
|
3422
|
-
|
|
3423
|
-
|
|
3424
|
-
|
|
3425
|
-
|
|
3426
|
-
|
|
3427
|
-
},
|
|
3428
|
-
children: [
|
|
3429
|
-
/* @__PURE__ */ jsx14(UploadIcon, { size: 16 }),
|
|
3430
|
-
copy.t("actions.uploadFiles")
|
|
3431
|
-
]
|
|
3432
|
-
}
|
|
3433
|
-
) : null,
|
|
3434
|
-
controller.canUploadWorkspaceFiles ? /* @__PURE__ */ jsxs14(
|
|
3435
|
-
Button10,
|
|
3436
|
-
{
|
|
3437
|
-
className: "px-3",
|
|
3438
|
-
size: "dialog",
|
|
3439
|
-
type: "button",
|
|
3440
|
-
variant: "secondary",
|
|
3441
|
-
onClick: () => {
|
|
3442
|
-
void controller.uploadReferences("task", "folder");
|
|
3443
|
-
},
|
|
3444
|
-
children: [
|
|
3445
|
-
/* @__PURE__ */ jsx14(UploadIcon, { size: 16 }),
|
|
3446
|
-
copy.t("actions.uploadFolder")
|
|
3447
|
-
]
|
|
3448
|
-
}
|
|
3449
|
-
) : null
|
|
3450
|
-
] }) : null
|
|
3551
|
+
/* @__PURE__ */ jsx14(
|
|
3552
|
+
Button10,
|
|
3553
|
+
{
|
|
3554
|
+
disabled: !selectedIssue || isTaskTitleMissing,
|
|
3555
|
+
size: "default",
|
|
3556
|
+
type: "button",
|
|
3557
|
+
onClick: () => void controller.saveTask(),
|
|
3558
|
+
children: copy.t("actions.saveSubtask")
|
|
3559
|
+
}
|
|
3560
|
+
)
|
|
3451
3561
|
] })
|
|
3452
|
-
|
|
3453
|
-
|
|
3454
|
-
/* @__PURE__ */ jsx14("div", { className: "shrink-0 border-t border-border-1 px-7 py-4", children: /* @__PURE__ */ jsxs14("div", { className: "flex items-center justify-end gap-3", children: [
|
|
3455
|
-
/* @__PURE__ */ jsx14(
|
|
3456
|
-
Button10,
|
|
3457
|
-
{
|
|
3458
|
-
size: "default",
|
|
3459
|
-
type: "button",
|
|
3460
|
-
variant: "secondary",
|
|
3461
|
-
onClick: onCancel,
|
|
3462
|
-
children: copy.t("actions.cancel")
|
|
3463
|
-
}
|
|
3464
|
-
),
|
|
3465
|
-
/* @__PURE__ */ jsx14(
|
|
3466
|
-
Button10,
|
|
3467
|
-
{
|
|
3468
|
-
disabled: !selectedIssue || isTaskTitleMissing,
|
|
3469
|
-
size: "default",
|
|
3470
|
-
type: "button",
|
|
3471
|
-
onClick: () => void controller.saveTask(),
|
|
3472
|
-
children: copy.t("actions.saveSubtask")
|
|
3473
|
-
}
|
|
3474
|
-
)
|
|
3475
|
-
] }) })
|
|
3562
|
+
}
|
|
3563
|
+
)
|
|
3476
3564
|
] });
|
|
3477
3565
|
}
|
|
3478
3566
|
|
|
@@ -3489,16 +3577,16 @@ import {
|
|
|
3489
3577
|
DropdownMenuItem,
|
|
3490
3578
|
DropdownMenuTrigger,
|
|
3491
3579
|
Input as Input5,
|
|
3492
|
-
Select as
|
|
3493
|
-
SelectContent as
|
|
3494
|
-
SelectItem as
|
|
3495
|
-
SelectTrigger as
|
|
3496
|
-
SelectValue
|
|
3580
|
+
Select as Select2,
|
|
3581
|
+
SelectContent as SelectContent2,
|
|
3582
|
+
SelectItem as SelectItem2,
|
|
3583
|
+
SelectTrigger as SelectTrigger2,
|
|
3584
|
+
SelectValue,
|
|
3497
3585
|
SparkIcon as SparkIcon2
|
|
3498
3586
|
} from "@nextop-os/ui-system";
|
|
3499
3587
|
|
|
3500
3588
|
// src/ui/internal/content/IssueManagerContextSection.tsx
|
|
3501
|
-
import { Button as Button11, DirectoryIcon
|
|
3589
|
+
import { Button as Button11, DirectoryIcon, FileIcon as FileIcon3 } from "@nextop-os/ui-system";
|
|
3502
3590
|
import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3503
3591
|
function IssueManagerContextSection({
|
|
3504
3592
|
copy,
|
|
@@ -3523,7 +3611,7 @@ function IssueManagerContextSection({
|
|
|
3523
3611
|
}
|
|
3524
3612
|
)
|
|
3525
3613
|
] }),
|
|
3526
|
-
refs.length === 0 ? /* @__PURE__ */ jsx15("p", { className: "text-sm leading-5 text-text-secondary", children: emptyLabel }) : /* @__PURE__ */ jsx15("div", { className: "grid gap-2.5", children: refs.map((ref) => /* @__PURE__ */ jsxs15(
|
|
3614
|
+
refs.length === 0 ? /* @__PURE__ */ jsx15("p", { className: "text-sm leading-5 text-[var(--text-secondary)]", children: emptyLabel }) : /* @__PURE__ */ jsx15("div", { className: "grid gap-2.5", children: refs.map((ref) => /* @__PURE__ */ jsxs15(
|
|
3527
3615
|
"div",
|
|
3528
3616
|
{
|
|
3529
3617
|
className: "flex items-center justify-between gap-3 rounded-lg border border-[var(--border-2)] bg-transparent px-3.5 py-3",
|
|
@@ -3542,21 +3630,21 @@ function IssueManagerContextSection({
|
|
|
3542
3630
|
},
|
|
3543
3631
|
children: [
|
|
3544
3632
|
ref.path.endsWith("/") ? /* @__PURE__ */ jsx15(
|
|
3545
|
-
|
|
3633
|
+
DirectoryIcon,
|
|
3546
3634
|
{
|
|
3547
|
-
className: "shrink-0 text-text-secondary",
|
|
3635
|
+
className: "shrink-0 text-[var(--text-secondary)]",
|
|
3548
3636
|
size: 16
|
|
3549
3637
|
}
|
|
3550
3638
|
) : /* @__PURE__ */ jsx15(
|
|
3551
3639
|
FileIcon3,
|
|
3552
3640
|
{
|
|
3553
|
-
className: "shrink-0 text-text-secondary",
|
|
3641
|
+
className: "shrink-0 text-[var(--text-secondary)]",
|
|
3554
3642
|
size: 16
|
|
3555
3643
|
}
|
|
3556
3644
|
),
|
|
3557
3645
|
/* @__PURE__ */ jsxs15("span", { className: "min-w-0", children: [
|
|
3558
3646
|
/* @__PURE__ */ jsx15("span", { className: "block truncate text-sm font-semibold leading-5 text-[var(--text-primary)]", children: ref.displayName }),
|
|
3559
|
-
/* @__PURE__ */ jsx15("span", { className: "block truncate text-xs leading-[1.55] text-text-secondary", children: ref.path })
|
|
3647
|
+
/* @__PURE__ */ jsx15("span", { className: "block truncate text-xs leading-[1.55] text-[var(--text-secondary)]", children: ref.path })
|
|
3560
3648
|
] })
|
|
3561
3649
|
]
|
|
3562
3650
|
}
|
|
@@ -3564,7 +3652,7 @@ function IssueManagerContextSection({
|
|
|
3564
3652
|
/* @__PURE__ */ jsx15(
|
|
3565
3653
|
Button11,
|
|
3566
3654
|
{
|
|
3567
|
-
className: "h-7 rounded-md px-2 text-[13px] font-semibold text-text-secondary hover:text-[var(--text-primary)]",
|
|
3655
|
+
className: "h-7 rounded-md px-2 text-[13px] font-semibold text-[var(--text-secondary)] hover:text-[var(--text-primary)]",
|
|
3568
3656
|
size: "sm",
|
|
3569
3657
|
type: "button",
|
|
3570
3658
|
variant: "ghost",
|
|
@@ -3613,7 +3701,7 @@ function canIssueManagerSaveTask(input) {
|
|
|
3613
3701
|
|
|
3614
3702
|
// src/ui/internal/shell/IssueManagerTaskDrawerSections.tsx
|
|
3615
3703
|
import { Fragment, jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
3616
|
-
var
|
|
3704
|
+
var taskPriorityOptions = ["high", "medium", "low"];
|
|
3617
3705
|
function IssueManagerTaskDrawerHeader({
|
|
3618
3706
|
controller,
|
|
3619
3707
|
selectedTask,
|
|
@@ -3624,10 +3712,10 @@ function IssueManagerTaskDrawerHeader({
|
|
|
3624
3712
|
return /* @__PURE__ */ jsxs16("div", { className: "flex items-start justify-between gap-4 border-b border-border-1 px-7 py-5", children: [
|
|
3625
3713
|
/* @__PURE__ */ jsxs16("div", { className: "min-w-0 flex-1", children: [
|
|
3626
3714
|
view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsx16("div", { className: "grid min-w-0 gap-2", children: /* @__PURE__ */ jsx16("h3", { className: "line-clamp-3 text-sm font-semibold leading-[1.35] text-[var(--text-primary)]", children: view.title }) }) : /* @__PURE__ */ jsx16("h3", { className: "line-clamp-2 text-[17px] font-semibold leading-[1.35] text-[var(--text-primary)]", children: view.title }),
|
|
3627
|
-
view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsxs16("div", { className: "mt-2 flex min-w-0 items-center overflow-hidden text-sm leading-[1.55] text-text-secondary", children: [
|
|
3715
|
+
view.showTaskMetadata && selectedTask ? /* @__PURE__ */ jsxs16("div", { className: "mt-2 flex min-w-0 items-center overflow-hidden text-sm leading-[1.55] text-[var(--text-secondary)]", children: [
|
|
3628
3716
|
/* @__PURE__ */ jsx16(Badge6, { className: "shrink-0 rounded-full border-transparent bg-[var(--accent-bg)] px-2.5 py-1 text-xs text-[var(--text-primary)]", children: resolveIssueManagerStatusLabel(copy, selectedTask.status) }),
|
|
3629
3717
|
/* @__PURE__ */ jsx16("span", { className: "mx-3 h-[13px] w-px shrink-0 bg-border-1" }),
|
|
3630
|
-
/* @__PURE__ */ jsx16(Badge6, { className: "shrink-0 rounded-full border-transparent bg-transparency-block px-2.5 py-1 text-xs text-text-secondary", children: resolveIssueManagerPriorityLabel(copy, selectedTask.priority) }),
|
|
3718
|
+
/* @__PURE__ */ jsx16(Badge6, { className: "shrink-0 rounded-full border-transparent bg-transparency-block px-2.5 py-1 text-xs text-[var(--text-secondary)]", children: resolveIssueManagerPriorityLabel(copy, selectedTask.priority) }),
|
|
3631
3719
|
/* @__PURE__ */ jsx16("span", { className: "mx-3 h-[13px] w-px shrink-0 bg-border-1" }),
|
|
3632
3720
|
/* @__PURE__ */ jsxs16("span", { children: [
|
|
3633
3721
|
copy.t("labels.updatedAt"),
|
|
@@ -3653,7 +3741,7 @@ function IssueManagerTaskDrawerHeader({
|
|
|
3653
3741
|
"span",
|
|
3654
3742
|
{
|
|
3655
3743
|
"aria-hidden": "true",
|
|
3656
|
-
className: "text-base leading-none tracking-[0.18em] text-text-secondary",
|
|
3744
|
+
className: "text-base leading-none tracking-[0.18em] text-[var(--text-secondary)]",
|
|
3657
3745
|
children: "..."
|
|
3658
3746
|
}
|
|
3659
3747
|
)
|
|
@@ -3732,65 +3820,89 @@ function IssueManagerTaskDrawerEditBody({
|
|
|
3732
3820
|
const copy = controller.copy;
|
|
3733
3821
|
return /* @__PURE__ */ jsxs16(Fragment, { children: [
|
|
3734
3822
|
/* @__PURE__ */ jsxs16("div", { className: "grid gap-5", children: [
|
|
3735
|
-
/* @__PURE__ */ jsxs16(
|
|
3736
|
-
|
|
3737
|
-
|
|
3738
|
-
|
|
3739
|
-
|
|
3740
|
-
|
|
3741
|
-
|
|
3742
|
-
|
|
3743
|
-
|
|
3744
|
-
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3750
|
-
|
|
3751
|
-
|
|
3752
|
-
|
|
3753
|
-
|
|
3754
|
-
|
|
3755
|
-
|
|
3756
|
-
|
|
3757
|
-
|
|
3758
|
-
|
|
3759
|
-
|
|
3760
|
-
|
|
3761
|
-
|
|
3762
|
-
|
|
3763
|
-
|
|
3764
|
-
|
|
3765
|
-
|
|
3766
|
-
|
|
3767
|
-
|
|
3768
|
-
|
|
3769
|
-
|
|
3770
|
-
|
|
3771
|
-
|
|
3772
|
-
|
|
3773
|
-
|
|
3774
|
-
|
|
3775
|
-
|
|
3776
|
-
|
|
3777
|
-
|
|
3778
|
-
|
|
3779
|
-
|
|
3780
|
-
|
|
3781
|
-
|
|
3823
|
+
/* @__PURE__ */ jsxs16(
|
|
3824
|
+
"label",
|
|
3825
|
+
{
|
|
3826
|
+
className: `grid gap-2 ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay0ClassName}`,
|
|
3827
|
+
children: [
|
|
3828
|
+
/* @__PURE__ */ jsx16("span", { className: "text-sm font-semibold leading-5 text-[var(--text-primary)]", children: copy.t("labels.title") }),
|
|
3829
|
+
/* @__PURE__ */ jsx16(
|
|
3830
|
+
Input5,
|
|
3831
|
+
{
|
|
3832
|
+
placeholder: copy.t("composer.taskTitlePlaceholder"),
|
|
3833
|
+
variant: "md",
|
|
3834
|
+
value: controller.taskDraft.title,
|
|
3835
|
+
onChange: (event) => controller.setTaskTitle(event.target.value)
|
|
3836
|
+
}
|
|
3837
|
+
)
|
|
3838
|
+
]
|
|
3839
|
+
}
|
|
3840
|
+
),
|
|
3841
|
+
/* @__PURE__ */ jsx16(
|
|
3842
|
+
"div",
|
|
3843
|
+
{
|
|
3844
|
+
className: `flex flex-wrap items-center gap-3 ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay1ClassName}`,
|
|
3845
|
+
children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3", children: [
|
|
3846
|
+
/* @__PURE__ */ jsx16("span", { className: "text-sm font-medium text-[var(--text-secondary)]", children: copy.t("labels.priority") }),
|
|
3847
|
+
/* @__PURE__ */ jsxs16(
|
|
3848
|
+
Select2,
|
|
3849
|
+
{
|
|
3850
|
+
value: controller.taskDraft.priority,
|
|
3851
|
+
onValueChange: (value) => controller.setTaskPriority(value),
|
|
3852
|
+
children: [
|
|
3853
|
+
/* @__PURE__ */ jsx16(
|
|
3854
|
+
SelectTrigger2,
|
|
3855
|
+
{
|
|
3856
|
+
"aria-label": copy.t("labels.priority"),
|
|
3857
|
+
className: "min-w-28 rounded-lg border-border-1 bg-transparency-block text-sm",
|
|
3858
|
+
children: /* @__PURE__ */ jsx16(SelectValue, {})
|
|
3859
|
+
}
|
|
3860
|
+
),
|
|
3861
|
+
/* @__PURE__ */ jsx16(SelectContent2, { style: { zIndex: "var(--z-panel-popover)" }, children: taskPriorityOptions.map((priority) => /* @__PURE__ */ jsx16(SelectItem2, { value: priority, children: resolveIssueManagerPriorityLabel(copy, priority) }, priority)) })
|
|
3862
|
+
]
|
|
3863
|
+
}
|
|
3864
|
+
)
|
|
3865
|
+
] })
|
|
3866
|
+
}
|
|
3867
|
+
),
|
|
3868
|
+
/* @__PURE__ */ jsxs16(
|
|
3869
|
+
"div",
|
|
3870
|
+
{
|
|
3871
|
+
className: `grid gap-2 ${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay2ClassName}`,
|
|
3872
|
+
children: [
|
|
3873
|
+
/* @__PURE__ */ jsx16("span", { className: "text-sm font-semibold leading-5 text-[var(--text-primary)]", children: copy.t("labels.content") }),
|
|
3874
|
+
/* @__PURE__ */ jsx16(
|
|
3875
|
+
IssueManagerRichTextTextarea,
|
|
3876
|
+
{
|
|
3877
|
+
controller,
|
|
3878
|
+
surface: "task",
|
|
3879
|
+
textareaClassName: "min-h-[12rem] resize-none",
|
|
3880
|
+
placeholder: copy.t("composer.taskContentPlaceholder"),
|
|
3881
|
+
value: controller.taskDraft.content,
|
|
3882
|
+
onChange: controller.setTaskContent
|
|
3883
|
+
}
|
|
3884
|
+
)
|
|
3885
|
+
]
|
|
3886
|
+
}
|
|
3887
|
+
)
|
|
3782
3888
|
] }),
|
|
3783
3889
|
/* @__PURE__ */ jsx16(
|
|
3784
|
-
|
|
3890
|
+
"div",
|
|
3785
3891
|
{
|
|
3786
|
-
|
|
3787
|
-
|
|
3788
|
-
|
|
3789
|
-
|
|
3790
|
-
|
|
3791
|
-
|
|
3792
|
-
|
|
3793
|
-
|
|
3892
|
+
className: `${issueManagerEditorRiseInClassName} ${issueManagerEditorRiseInDelay3ClassName}`,
|
|
3893
|
+
children: /* @__PURE__ */ jsx16(
|
|
3894
|
+
IssueManagerContextSection,
|
|
3895
|
+
{
|
|
3896
|
+
copy,
|
|
3897
|
+
emptyLabel: copy.t("messages.noTaskReferences"),
|
|
3898
|
+
refs: taskRefs,
|
|
3899
|
+
onAdd: () => {
|
|
3900
|
+
void controller.attachReferences("task");
|
|
3901
|
+
},
|
|
3902
|
+
onOpen: controller.openReference,
|
|
3903
|
+
onRemove: controller.removeContextRef
|
|
3904
|
+
}
|
|
3905
|
+
)
|
|
3794
3906
|
}
|
|
3795
3907
|
),
|
|
3796
3908
|
!isCreate ? /* @__PURE__ */ jsx16(
|
|
@@ -3859,7 +3971,7 @@ function IssueManagerTaskDrawerFooter({
|
|
|
3859
3971
|
{
|
|
3860
3972
|
controller,
|
|
3861
3973
|
iconSize: 15,
|
|
3862
|
-
triggerClassName: "min-w-[11rem]
|
|
3974
|
+
triggerClassName: "min-w-[11rem]"
|
|
3863
3975
|
}
|
|
3864
3976
|
),
|
|
3865
3977
|
controller.canInviteCollaborators ? /* @__PURE__ */ jsx16(
|
|
@@ -3877,48 +3989,54 @@ function IssueManagerTaskDrawerFooter({
|
|
|
3877
3989
|
] }) });
|
|
3878
3990
|
}
|
|
3879
3991
|
if (view.showEditFooter) {
|
|
3880
|
-
return /* @__PURE__ */ jsx16(
|
|
3881
|
-
|
|
3882
|
-
|
|
3883
|
-
{
|
|
3884
|
-
|
|
3885
|
-
|
|
3886
|
-
|
|
3887
|
-
|
|
3888
|
-
|
|
3889
|
-
|
|
3890
|
-
|
|
3891
|
-
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
3895
|
-
|
|
3896
|
-
|
|
3897
|
-
|
|
3898
|
-
|
|
3899
|
-
|
|
3900
|
-
|
|
3901
|
-
|
|
3902
|
-
|
|
3903
|
-
|
|
3904
|
-
|
|
3905
|
-
|
|
3906
|
-
|
|
3907
|
-
|
|
3908
|
-
|
|
3909
|
-
|
|
3910
|
-
|
|
3911
|
-
|
|
3912
|
-
|
|
3913
|
-
|
|
3914
|
-
|
|
3915
|
-
|
|
3916
|
-
|
|
3917
|
-
|
|
3918
|
-
|
|
3919
|
-
|
|
3920
|
-
|
|
3921
|
-
|
|
3992
|
+
return /* @__PURE__ */ jsx16(
|
|
3993
|
+
"div",
|
|
3994
|
+
{
|
|
3995
|
+
className: `border-t border-border-1 px-7 py-4 ${issueManagerEditorFooterFadeInClassName}`,
|
|
3996
|
+
children: /* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between gap-3", children: [
|
|
3997
|
+
/* @__PURE__ */ jsx16("div", { className: "flex items-center gap-2", children: !view.isCreate && selectedTask ? /* @__PURE__ */ jsx16(
|
|
3998
|
+
Button12,
|
|
3999
|
+
{
|
|
4000
|
+
size: "default",
|
|
4001
|
+
type: "button",
|
|
4002
|
+
variant: "destructive",
|
|
4003
|
+
onClick: () => {
|
|
4004
|
+
void controller.deleteTask();
|
|
4005
|
+
},
|
|
4006
|
+
children: copy.t("actions.deleteTask")
|
|
4007
|
+
}
|
|
4008
|
+
) : null }),
|
|
4009
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-3", children: [
|
|
4010
|
+
/* @__PURE__ */ jsx16(
|
|
4011
|
+
Button12,
|
|
4012
|
+
{
|
|
4013
|
+
size: "default",
|
|
4014
|
+
type: "button",
|
|
4015
|
+
variant: "secondary",
|
|
4016
|
+
onClick: () => controller.setTaskEditorMode("read"),
|
|
4017
|
+
children: copy.t("actions.cancel")
|
|
4018
|
+
}
|
|
4019
|
+
),
|
|
4020
|
+
/* @__PURE__ */ jsxs16(
|
|
4021
|
+
Button12,
|
|
4022
|
+
{
|
|
4023
|
+
disabled: canIssueManagerSaveTask({
|
|
4024
|
+
selectedIssue,
|
|
4025
|
+
view
|
|
4026
|
+
}) === false,
|
|
4027
|
+
size: "default",
|
|
4028
|
+
type: "button",
|
|
4029
|
+
onClick: () => void controller.saveTask(),
|
|
4030
|
+
children: [
|
|
4031
|
+
/* @__PURE__ */ jsx16(SparkIcon2, { size: 16 }),
|
|
4032
|
+
copy.t("actions.saveTask")
|
|
4033
|
+
]
|
|
4034
|
+
}
|
|
4035
|
+
)
|
|
4036
|
+
] })
|
|
4037
|
+
] })
|
|
4038
|
+
}
|
|
4039
|
+
);
|
|
3922
4040
|
}
|
|
3923
4041
|
return null;
|
|
3924
4042
|
}
|
|
@@ -3984,27 +4102,27 @@ function IssueManagerTaskDrawer({
|
|
|
3984
4102
|
|
|
3985
4103
|
// src/ui/internal/shell/useIssueManagerShellView.ts
|
|
3986
4104
|
import {
|
|
3987
|
-
useEffect as
|
|
4105
|
+
useEffect as useEffect7,
|
|
3988
4106
|
useEffectEvent as useEffectEvent3,
|
|
3989
|
-
useRef as
|
|
3990
|
-
useState as
|
|
4107
|
+
useRef as useRef3,
|
|
4108
|
+
useState as useState8
|
|
3991
4109
|
} from "react";
|
|
3992
4110
|
function useIssueManagerShellView({
|
|
3993
4111
|
controller,
|
|
3994
4112
|
selectedIssue,
|
|
3995
4113
|
selectedTask
|
|
3996
4114
|
}) {
|
|
3997
|
-
const layoutRef =
|
|
3998
|
-
const resizeRef =
|
|
3999
|
-
const [sidebarWidth, setSidebarWidth] =
|
|
4115
|
+
const layoutRef = useRef3(null);
|
|
4116
|
+
const resizeRef = useRef3(null);
|
|
4117
|
+
const [sidebarWidth, setSidebarWidth] = useState8(
|
|
4000
4118
|
issueManagerSidebarDefaultWidth
|
|
4001
4119
|
);
|
|
4002
|
-
const [isNarrowLayout, setIsNarrowLayout] =
|
|
4120
|
+
const [isNarrowLayout, setIsNarrowLayout] = useState8(false);
|
|
4003
4121
|
const dismissNotification = useEffectEvent3(() => {
|
|
4004
4122
|
controller.dismissNotification();
|
|
4005
4123
|
});
|
|
4006
4124
|
const floatingNotice = controller.floatingNotice;
|
|
4007
|
-
|
|
4125
|
+
useEffect7(() => {
|
|
4008
4126
|
const publishLayout = () => {
|
|
4009
4127
|
const width = layoutRef.current?.getBoundingClientRect().width ?? 0;
|
|
4010
4128
|
if (!width) {
|
|
@@ -4027,7 +4145,7 @@ function useIssueManagerShellView({
|
|
|
4027
4145
|
window.removeEventListener("resize", publishLayout);
|
|
4028
4146
|
};
|
|
4029
4147
|
}, []);
|
|
4030
|
-
|
|
4148
|
+
useEffect7(() => {
|
|
4031
4149
|
if (!floatingNotice) {
|
|
4032
4150
|
return void 0;
|
|
4033
4151
|
}
|
|
@@ -4048,7 +4166,7 @@ function useIssueManagerShellView({
|
|
|
4048
4166
|
copy: controller.copy,
|
|
4049
4167
|
issues: controller.issues
|
|
4050
4168
|
});
|
|
4051
|
-
const statusCounts =
|
|
4169
|
+
const statusCounts = resolveIssueManagerStatusCounts(controller.issues);
|
|
4052
4170
|
const isSidebarAutoCollapsed = isNarrowLayout;
|
|
4053
4171
|
const isSidebarCollapsed = controller.nodeState.taskListCollapsed === true || isSidebarAutoCollapsed;
|
|
4054
4172
|
return {
|
|
@@ -4057,6 +4175,7 @@ function useIssueManagerShellView({
|
|
|
4057
4175
|
isNarrowLayout,
|
|
4058
4176
|
layoutRef,
|
|
4059
4177
|
layoutStyle: {
|
|
4178
|
+
gridTemplateColumns: isSidebarCollapsed ? "0 minmax(0, 1fr)" : "var(--issue-manager-sidebar-width) minmax(0, 1fr)",
|
|
4060
4179
|
"--issue-manager-sidebar-width": `${sidebarWidth}px`
|
|
4061
4180
|
},
|
|
4062
4181
|
resizeHandle: {
|
|
@@ -4139,6 +4258,7 @@ function useIssueManagerShellView({
|
|
|
4139
4258
|
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4140
4259
|
function IssueManagerShell({
|
|
4141
4260
|
controller,
|
|
4261
|
+
emptyIllustration,
|
|
4142
4262
|
onCloseTaskDrawer,
|
|
4143
4263
|
onDismissIssueCreate,
|
|
4144
4264
|
selectedIssue,
|
|
@@ -4152,7 +4272,7 @@ function IssueManagerShell({
|
|
|
4152
4272
|
return /* @__PURE__ */ jsxs18(
|
|
4153
4273
|
"div",
|
|
4154
4274
|
{
|
|
4155
|
-
className: "relative min-h-0 flex-1 overflow-hidden bg-transparent",
|
|
4275
|
+
className: "relative grid min-h-0 flex-1 grid-rows-[minmax(0,1fr)] overflow-hidden bg-transparent transition-[grid-template-columns] duration-[180ms] ease-[cubic-bezier(0.4,0,0.2,1)] motion-reduce:transition-none",
|
|
4156
4276
|
"data-issue-manager-sidebar-auto-collapsed": shellView.sidebar.isAutoCollapsed ? "true" : void 0,
|
|
4157
4277
|
"data-issue-manager-sidebar-collapsed": shellView.sidebar.isCollapsed ? "true" : void 0,
|
|
4158
4278
|
ref: shellView.layoutRef,
|
|
@@ -4170,7 +4290,7 @@ function IssueManagerShell({
|
|
|
4170
4290
|
statusCounts: shellView.sidebar.statusCounts
|
|
4171
4291
|
}
|
|
4172
4292
|
),
|
|
4173
|
-
shellView.sidebar.
|
|
4293
|
+
shellView.sidebar.isAutoCollapsed ? null : /* @__PURE__ */ jsx18(
|
|
4174
4294
|
"div",
|
|
4175
4295
|
{
|
|
4176
4296
|
"aria-label": controller.copy.t("labels.resizeIssueList"),
|
|
@@ -4178,7 +4298,10 @@ function IssueManagerShell({
|
|
|
4178
4298
|
"aria-valuemax": shellView.resizeHandle.ariaValueMax,
|
|
4179
4299
|
"aria-valuemin": shellView.resizeHandle.ariaValueMin,
|
|
4180
4300
|
"aria-valuenow": shellView.resizeHandle.ariaValueNow,
|
|
4181
|
-
className:
|
|
4301
|
+
className: cn11(
|
|
4302
|
+
"group absolute top-0 bottom-0 left-[calc(var(--issue-manager-sidebar-width)-6px)] z-20 w-3 cursor-col-resize touch-none opacity-100 transition-[left,opacity] duration-[180ms,120ms] ease-[cubic-bezier(0.4,0,0.2,1),ease] motion-reduce:transition-none",
|
|
4303
|
+
shellView.sidebar.isCollapsed && "pointer-events-none left-[-6px] opacity-0"
|
|
4304
|
+
),
|
|
4182
4305
|
role: "separator",
|
|
4183
4306
|
tabIndex: 0,
|
|
4184
4307
|
onKeyDown: shellView.resizeHandle.onKeyDown,
|
|
@@ -4189,78 +4312,79 @@ function IssueManagerShell({
|
|
|
4189
4312
|
children: /* @__PURE__ */ jsx18("span", { className: "absolute top-0 bottom-0 left-1/2 w-px -translate-x-1/2 bg-transparent transition-[background-color,width] duration-150 group-hover:w-0.5 group-hover:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)] group-focus-visible:w-0.5 group-focus-visible:bg-[color-mix(in_srgb,var(--border-focus)_40%,transparent)]" })
|
|
4190
4313
|
}
|
|
4191
4314
|
),
|
|
4192
|
-
/* @__PURE__ */ jsxs18(
|
|
4193
|
-
"div",
|
|
4194
|
-
|
|
4195
|
-
|
|
4196
|
-
|
|
4197
|
-
|
|
4198
|
-
|
|
4199
|
-
|
|
4200
|
-
|
|
4201
|
-
|
|
4202
|
-
|
|
4203
|
-
|
|
4204
|
-
|
|
4205
|
-
|
|
4206
|
-
|
|
4207
|
-
|
|
4208
|
-
|
|
4209
|
-
|
|
4210
|
-
|
|
4211
|
-
|
|
4212
|
-
|
|
4213
|
-
|
|
4214
|
-
|
|
4215
|
-
|
|
4216
|
-
|
|
4217
|
-
|
|
4218
|
-
|
|
4219
|
-
|
|
4220
|
-
|
|
4221
|
-
|
|
4222
|
-
|
|
4223
|
-
|
|
4224
|
-
|
|
4225
|
-
|
|
4226
|
-
|
|
4227
|
-
|
|
4228
|
-
|
|
4229
|
-
|
|
4230
|
-
|
|
4231
|
-
|
|
4232
|
-
|
|
4233
|
-
|
|
4234
|
-
|
|
4235
|
-
|
|
4236
|
-
|
|
4237
|
-
|
|
4238
|
-
|
|
4239
|
-
|
|
4240
|
-
|
|
4241
|
-
|
|
4242
|
-
|
|
4243
|
-
]
|
|
4244
|
-
}
|
|
4245
|
-
)
|
|
4315
|
+
/* @__PURE__ */ jsxs18("div", { className: "relative h-full min-h-0 overflow-hidden bg-transparent", children: [
|
|
4316
|
+
/* @__PURE__ */ jsxs18("div", { className: "flex h-full min-h-0 flex-col", children: [
|
|
4317
|
+
/* @__PURE__ */ jsx18("div", { className: "min-h-0 flex-1 overflow-hidden", children: shellView.content.isIssueEditing ? /* @__PURE__ */ jsx18(
|
|
4318
|
+
IssueManagerIssuePane,
|
|
4319
|
+
{
|
|
4320
|
+
controller,
|
|
4321
|
+
selectedIssue,
|
|
4322
|
+
onDismissCreate: onDismissIssueCreate
|
|
4323
|
+
}
|
|
4324
|
+
) : shellView.content.isTaskCreating ? /* @__PURE__ */ jsx18(
|
|
4325
|
+
IssueManagerTaskComposerPane,
|
|
4326
|
+
{
|
|
4327
|
+
controller,
|
|
4328
|
+
selectedIssue,
|
|
4329
|
+
onCancel: () => controller.setTaskEditorMode("read")
|
|
4330
|
+
}
|
|
4331
|
+
) : selectedIssue ? /* @__PURE__ */ jsx18(
|
|
4332
|
+
IssueManagerIssuePane,
|
|
4333
|
+
{
|
|
4334
|
+
controller,
|
|
4335
|
+
selectedIssue,
|
|
4336
|
+
onDismissCreate: onDismissIssueCreate
|
|
4337
|
+
}
|
|
4338
|
+
) : /* @__PURE__ */ jsx18(
|
|
4339
|
+
IssueManagerShellEmptyState,
|
|
4340
|
+
{
|
|
4341
|
+
controller,
|
|
4342
|
+
emptyIllustration
|
|
4343
|
+
}
|
|
4344
|
+
) }),
|
|
4345
|
+
/* @__PURE__ */ jsx18(
|
|
4346
|
+
IssueManagerBottomBar,
|
|
4347
|
+
{
|
|
4348
|
+
controller,
|
|
4349
|
+
isNarrowLayout: shellView.isNarrowLayout,
|
|
4350
|
+
selectedIssue,
|
|
4351
|
+
selectedTask,
|
|
4352
|
+
visible: shellView.content.showBottomBar
|
|
4353
|
+
}
|
|
4354
|
+
)
|
|
4355
|
+
] }),
|
|
4356
|
+
shellView.content.isTaskDrawerOpen ? /* @__PURE__ */ jsx18(
|
|
4357
|
+
IssueManagerTaskDrawer,
|
|
4358
|
+
{
|
|
4359
|
+
controller,
|
|
4360
|
+
selectedIssue,
|
|
4361
|
+
selectedTask,
|
|
4362
|
+
onClose: onCloseTaskDrawer
|
|
4363
|
+
}
|
|
4364
|
+
) : null
|
|
4365
|
+
] })
|
|
4246
4366
|
]
|
|
4247
4367
|
}
|
|
4248
4368
|
);
|
|
4249
4369
|
}
|
|
4250
4370
|
function IssueManagerShellEmptyState({
|
|
4251
|
-
controller
|
|
4371
|
+
controller,
|
|
4372
|
+
emptyIllustration
|
|
4252
4373
|
}) {
|
|
4253
4374
|
return /* @__PURE__ */ jsx18("div", { className: "flex h-full min-h-[320px] items-center justify-center px-10 py-10", children: /* @__PURE__ */ jsxs18("div", { className: "grid max-w-[420px] justify-items-center gap-2 text-center", children: [
|
|
4254
|
-
|
|
4375
|
+
emptyIllustration ?? null,
|
|
4255
4376
|
/* @__PURE__ */ jsx18("h2", { className: "text-lg font-semibold leading-[1.35] text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
|
|
4256
4377
|
/* @__PURE__ */ jsx18("p", { className: "max-w-[420px] text-base leading-[1.3] text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
|
|
4257
|
-
/* @__PURE__ */
|
|
4378
|
+
/* @__PURE__ */ jsxs18(
|
|
4258
4379
|
Button13,
|
|
4259
4380
|
{
|
|
4260
|
-
className: "mt-2",
|
|
4381
|
+
className: "mt-2 gap-2",
|
|
4261
4382
|
type: "button",
|
|
4262
4383
|
onClick: () => controller.setIssueEditorMode("create"),
|
|
4263
|
-
children:
|
|
4384
|
+
children: [
|
|
4385
|
+
/* @__PURE__ */ jsx18(FileCreateIcon4, { size: 16 }),
|
|
4386
|
+
controller.copy.t("actions.createIssue")
|
|
4387
|
+
]
|
|
4264
4388
|
}
|
|
4265
4389
|
)
|
|
4266
4390
|
] }) });
|
|
@@ -4269,6 +4393,7 @@ function IssueManagerShellEmptyState({
|
|
|
4269
4393
|
// src/ui/IssueManagerNode.tsx
|
|
4270
4394
|
import { jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4271
4395
|
function IssueManagerNode({
|
|
4396
|
+
emptyIllustration,
|
|
4272
4397
|
feature,
|
|
4273
4398
|
nodeId,
|
|
4274
4399
|
onStateChange,
|
|
@@ -4298,6 +4423,7 @@ function IssueManagerNode({
|
|
|
4298
4423
|
IssueManagerShell,
|
|
4299
4424
|
{
|
|
4300
4425
|
controller,
|
|
4426
|
+
emptyIllustration,
|
|
4301
4427
|
onCloseTaskDrawer: shell.onCloseTaskDrawer,
|
|
4302
4428
|
onDismissIssueCreate: shell.onDismissIssueCreate,
|
|
4303
4429
|
selectedIssue,
|
|
@@ -4341,7 +4467,7 @@ function IssueManagerNodeHeader({
|
|
|
4341
4467
|
"header",
|
|
4342
4468
|
{
|
|
4343
4469
|
...headerProps,
|
|
4344
|
-
className:
|
|
4470
|
+
className: cn12(
|
|
4345
4471
|
"flex h-full min-h-0 items-center justify-between gap-3 bg-[var(--background-panel)] px-2 pl-3",
|
|
4346
4472
|
className
|
|
4347
4473
|
),
|
|
@@ -4352,13 +4478,13 @@ function IssueManagerNodeHeader({
|
|
|
4352
4478
|
Button14,
|
|
4353
4479
|
{
|
|
4354
4480
|
"aria-label": toggleLabel,
|
|
4355
|
-
className: "rounded-md",
|
|
4481
|
+
className: "cursor-pointer rounded-md",
|
|
4356
4482
|
"data-issue-manager-sidebar-auto-collapsed": isSidebarAutoCollapsed ? "true" : void 0,
|
|
4357
4483
|
"data-issue-manager-sidebar-collapsed": effectiveCollapsed ? "true" : void 0,
|
|
4358
4484
|
size: "icon-sm",
|
|
4359
4485
|
title: toggleLabel,
|
|
4360
4486
|
type: "button",
|
|
4361
|
-
variant: "
|
|
4487
|
+
variant: "ghost",
|
|
4362
4488
|
onClick: (event) => {
|
|
4363
4489
|
event.stopPropagation();
|
|
4364
4490
|
toggleSidebar();
|
|
@@ -4388,4 +4514,4 @@ export {
|
|
|
4388
4514
|
IssueManagerNode,
|
|
4389
4515
|
IssueManagerNodeHeader
|
|
4390
4516
|
};
|
|
4391
|
-
//# sourceMappingURL=chunk-
|
|
4517
|
+
//# sourceMappingURL=chunk-PDBLEOV4.js.map
|