@nextop-os/workspace-issue-manager 0.0.22 → 0.0.24
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-DMC3JMM2.js} +39 -34
- package/dist/chunk-DMC3JMM2.js.map +1 -0
- package/dist/{chunk-ZWDF5XA7.js → chunk-ZQVG7YMT.js} +2 -2
- package/dist/chunk-ZQVG7YMT.js.map +1 -0
- package/dist/index.js +1 -1
- package/dist/services/index.js +1 -1
- package/dist/ui/index.d.ts +3 -2
- package/dist/ui/index.js +2 -2
- package/dist/workbench/index.d.ts +4 -2
- package/dist/workbench/index.js +15 -16
- package/dist/workbench/index.js.map +1 -1
- package/package.json +10 -6
- package/dist/chunk-XI6VLBSW.js.map +0 -1
- package/dist/chunk-ZWDF5XA7.js.map +0 -1
package/README.md
CHANGED
|
@@ -7,5 +7,9 @@ This package owns host-agnostic contracts, i18n defaults, React-facing feature
|
|
|
7
7
|
types, and workbench registration helpers. Hosts provide backend, identity,
|
|
8
8
|
file, agent runner, and optional share adapters.
|
|
9
9
|
|
|
10
|
+
Hosts that want the package-owned default dock or empty-state visual can import
|
|
11
|
+
it explicitly from
|
|
12
|
+
`@nextop-os/workspace-issue-manager/assets/workspace-dock-task.png`.
|
|
13
|
+
|
|
10
14
|
See [docs/architecture/workspace-issue-manager.md](/Users/ccr/tsh-project/nextop/docs/architecture/workspace-issue-manager.md)
|
|
11
15
|
for the current shared architecture and host-adapter model.
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
toContextRefInput,
|
|
26
26
|
toIssueManagerWorkspaceFileLinkInput,
|
|
27
27
|
uniqueIssueManagerFileReferences
|
|
28
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-ZQVG7YMT.js";
|
|
29
29
|
import {
|
|
30
30
|
appendIssueManagerWorkspaceFileLinksToContent,
|
|
31
31
|
clampIssueManagerSidebarWidth,
|
|
@@ -2146,23 +2146,6 @@ function resolveIssueManagerCreatorLabel(entity) {
|
|
|
2146
2146
|
// src/ui/internal/panel/IssueManagerPanelSurface.tsx
|
|
2147
2147
|
import { Button as Button4, FileCreateIcon } from "@nextop-os/ui-system";
|
|
2148
2148
|
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
2149
|
function IssueManagerPaneLoadingState() {
|
|
2167
2150
|
return /* @__PURE__ */ jsxs4(
|
|
2168
2151
|
"div",
|
|
@@ -2431,7 +2414,7 @@ function IssueManagerDescriptionContent({
|
|
|
2431
2414
|
}
|
|
2432
2415
|
|
|
2433
2416
|
// src/ui/internal/content/IssueManagerRichTextTextarea.tsx
|
|
2434
|
-
import { useMemo as useMemo5 } from "react";
|
|
2417
|
+
import { useEffect as useEffect5, useMemo as useMemo5, useRef as useRef2, useState as useState4 } from "react";
|
|
2435
2418
|
import { RichTextAtEditor } from "@nextop-os/ui-rich-text/editor";
|
|
2436
2419
|
import { Button as Button6, LinkIcon, cn as cn4 } from "@nextop-os/ui-system";
|
|
2437
2420
|
import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
@@ -2448,9 +2431,21 @@ function IssueManagerRichTextTextarea({
|
|
|
2448
2431
|
[controller, surface]
|
|
2449
2432
|
);
|
|
2450
2433
|
const showReferenceAction = controller.canReferenceWorkspaceFiles;
|
|
2434
|
+
const [focusSignal, setFocusSignal] = useState4(0);
|
|
2435
|
+
const previousValueRef = useRef2(value);
|
|
2436
|
+
const wasAddingReferenceRef = useRef2(false);
|
|
2437
|
+
useEffect5(() => {
|
|
2438
|
+
const isAddingReference = controller.referenceTarget?.mode === "insert" && controller.referenceTarget.parentKind === surface;
|
|
2439
|
+
if (wasAddingReferenceRef.current && !isAddingReference && value !== previousValueRef.current) {
|
|
2440
|
+
setFocusSignal((current) => current + 1);
|
|
2441
|
+
}
|
|
2442
|
+
wasAddingReferenceRef.current = isAddingReference;
|
|
2443
|
+
previousValueRef.current = value;
|
|
2444
|
+
}, [controller.referenceTarget, surface, value]);
|
|
2451
2445
|
return /* @__PURE__ */ jsx7(
|
|
2452
2446
|
RichTextAtEditor,
|
|
2453
2447
|
{
|
|
2448
|
+
focusSignal,
|
|
2454
2449
|
maxResults: 8,
|
|
2455
2450
|
minQueryLength: 1,
|
|
2456
2451
|
providers,
|
|
@@ -2651,7 +2646,7 @@ function IssueManagerIssuePane({
|
|
|
2651
2646
|
import { Button as Button8, cn as cn5 } from "@nextop-os/ui-system";
|
|
2652
2647
|
|
|
2653
2648
|
// src/ui/internal/task/IssueManagerRunSections.tsx
|
|
2654
|
-
import { useState as
|
|
2649
|
+
import { useState as useState5 } from "react";
|
|
2655
2650
|
import {
|
|
2656
2651
|
Badge as Badge4,
|
|
2657
2652
|
Select,
|
|
@@ -2667,7 +2662,7 @@ function IssueManagerRunActionTrigger({
|
|
|
2667
2662
|
iconSize = 16,
|
|
2668
2663
|
triggerClassName
|
|
2669
2664
|
}) {
|
|
2670
|
-
const [resetToken, setResetToken] =
|
|
2665
|
+
const [resetToken, setResetToken] = useState5(0);
|
|
2671
2666
|
return /* @__PURE__ */ jsxs9(
|
|
2672
2667
|
Select,
|
|
2673
2668
|
{
|
|
@@ -3984,27 +3979,27 @@ function IssueManagerTaskDrawer({
|
|
|
3984
3979
|
|
|
3985
3980
|
// src/ui/internal/shell/useIssueManagerShellView.ts
|
|
3986
3981
|
import {
|
|
3987
|
-
useEffect as
|
|
3982
|
+
useEffect as useEffect6,
|
|
3988
3983
|
useEffectEvent as useEffectEvent3,
|
|
3989
|
-
useRef as
|
|
3990
|
-
useState as
|
|
3984
|
+
useRef as useRef3,
|
|
3985
|
+
useState as useState6
|
|
3991
3986
|
} from "react";
|
|
3992
3987
|
function useIssueManagerShellView({
|
|
3993
3988
|
controller,
|
|
3994
3989
|
selectedIssue,
|
|
3995
3990
|
selectedTask
|
|
3996
3991
|
}) {
|
|
3997
|
-
const layoutRef =
|
|
3998
|
-
const resizeRef =
|
|
3999
|
-
const [sidebarWidth, setSidebarWidth] =
|
|
3992
|
+
const layoutRef = useRef3(null);
|
|
3993
|
+
const resizeRef = useRef3(null);
|
|
3994
|
+
const [sidebarWidth, setSidebarWidth] = useState6(
|
|
4000
3995
|
issueManagerSidebarDefaultWidth
|
|
4001
3996
|
);
|
|
4002
|
-
const [isNarrowLayout, setIsNarrowLayout] =
|
|
3997
|
+
const [isNarrowLayout, setIsNarrowLayout] = useState6(false);
|
|
4003
3998
|
const dismissNotification = useEffectEvent3(() => {
|
|
4004
3999
|
controller.dismissNotification();
|
|
4005
4000
|
});
|
|
4006
4001
|
const floatingNotice = controller.floatingNotice;
|
|
4007
|
-
|
|
4002
|
+
useEffect6(() => {
|
|
4008
4003
|
const publishLayout = () => {
|
|
4009
4004
|
const width = layoutRef.current?.getBoundingClientRect().width ?? 0;
|
|
4010
4005
|
if (!width) {
|
|
@@ -4027,7 +4022,7 @@ function useIssueManagerShellView({
|
|
|
4027
4022
|
window.removeEventListener("resize", publishLayout);
|
|
4028
4023
|
};
|
|
4029
4024
|
}, []);
|
|
4030
|
-
|
|
4025
|
+
useEffect6(() => {
|
|
4031
4026
|
if (!floatingNotice) {
|
|
4032
4027
|
return void 0;
|
|
4033
4028
|
}
|
|
@@ -4139,6 +4134,7 @@ function useIssueManagerShellView({
|
|
|
4139
4134
|
import { jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4140
4135
|
function IssueManagerShell({
|
|
4141
4136
|
controller,
|
|
4137
|
+
emptyIllustration,
|
|
4142
4138
|
onCloseTaskDrawer,
|
|
4143
4139
|
onDismissIssueCreate,
|
|
4144
4140
|
selectedIssue,
|
|
@@ -4219,7 +4215,13 @@ function IssueManagerShell({
|
|
|
4219
4215
|
selectedIssue,
|
|
4220
4216
|
onDismissCreate: onDismissIssueCreate
|
|
4221
4217
|
}
|
|
4222
|
-
) : /* @__PURE__ */ jsx18(
|
|
4218
|
+
) : /* @__PURE__ */ jsx18(
|
|
4219
|
+
IssueManagerShellEmptyState,
|
|
4220
|
+
{
|
|
4221
|
+
controller,
|
|
4222
|
+
emptyIllustration
|
|
4223
|
+
}
|
|
4224
|
+
) }),
|
|
4223
4225
|
/* @__PURE__ */ jsx18(
|
|
4224
4226
|
IssueManagerBottomBar,
|
|
4225
4227
|
{
|
|
@@ -4248,10 +4250,11 @@ function IssueManagerShell({
|
|
|
4248
4250
|
);
|
|
4249
4251
|
}
|
|
4250
4252
|
function IssueManagerShellEmptyState({
|
|
4251
|
-
controller
|
|
4253
|
+
controller,
|
|
4254
|
+
emptyIllustration
|
|
4252
4255
|
}) {
|
|
4253
4256
|
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
|
-
|
|
4257
|
+
emptyIllustration ?? null,
|
|
4255
4258
|
/* @__PURE__ */ jsx18("h2", { className: "text-lg font-semibold leading-[1.35] text-[var(--text-primary)]", children: controller.copy.t("messages.noIssues") }),
|
|
4256
4259
|
/* @__PURE__ */ jsx18("p", { className: "max-w-[420px] text-base leading-[1.3] text-[var(--text-secondary)]", children: controller.copy.t("emptyState") }),
|
|
4257
4260
|
/* @__PURE__ */ jsx18(
|
|
@@ -4269,6 +4272,7 @@ function IssueManagerShellEmptyState({
|
|
|
4269
4272
|
// src/ui/IssueManagerNode.tsx
|
|
4270
4273
|
import { jsx as jsx19, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4271
4274
|
function IssueManagerNode({
|
|
4275
|
+
emptyIllustration,
|
|
4272
4276
|
feature,
|
|
4273
4277
|
nodeId,
|
|
4274
4278
|
onStateChange,
|
|
@@ -4298,6 +4302,7 @@ function IssueManagerNode({
|
|
|
4298
4302
|
IssueManagerShell,
|
|
4299
4303
|
{
|
|
4300
4304
|
controller,
|
|
4305
|
+
emptyIllustration,
|
|
4301
4306
|
onCloseTaskDrawer: shell.onCloseTaskDrawer,
|
|
4302
4307
|
onDismissIssueCreate: shell.onDismissIssueCreate,
|
|
4303
4308
|
selectedIssue,
|
|
@@ -4388,4 +4393,4 @@ export {
|
|
|
4388
4393
|
IssueManagerNode,
|
|
4389
4394
|
IssueManagerNodeHeader
|
|
4390
4395
|
};
|
|
4391
|
-
//# sourceMappingURL=chunk-
|
|
4396
|
+
//# sourceMappingURL=chunk-DMC3JMM2.js.map
|