@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 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.
@@ -0,0 +1,3 @@
1
+ declare const src: string;
2
+
3
+ export default src;
@@ -25,7 +25,7 @@ import {
25
25
  toContextRefInput,
26
26
  toIssueManagerWorkspaceFileLinkInput,
27
27
  uniqueIssueManagerFileReferences
28
- } from "./chunk-ZWDF5XA7.js";
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 useState4 } from "react";
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] = useState4(0);
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 useEffect5,
3982
+ useEffect as useEffect6,
3988
3983
  useEffectEvent as useEffectEvent3,
3989
- useRef as useRef2,
3990
- useState as useState5
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 = useRef2(null);
3998
- const resizeRef = useRef2(null);
3999
- const [sidebarWidth, setSidebarWidth] = useState5(
3992
+ const layoutRef = useRef3(null);
3993
+ const resizeRef = useRef3(null);
3994
+ const [sidebarWidth, setSidebarWidth] = useState6(
4000
3995
  issueManagerSidebarDefaultWidth
4001
3996
  );
4002
- const [isNarrowLayout, setIsNarrowLayout] = useState5(false);
3997
+ const [isNarrowLayout, setIsNarrowLayout] = useState6(false);
4003
3998
  const dismissNotification = useEffectEvent3(() => {
4004
3999
  controller.dismissNotification();
4005
4000
  });
4006
4001
  const floatingNotice = controller.floatingNotice;
4007
- useEffect5(() => {
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
- useEffect5(() => {
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(IssueManagerShellEmptyState, { controller }) }),
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
- /* @__PURE__ */ jsx18(IssueManagerEmptyIllustration, {}),
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-XI6VLBSW.js.map
4396
+ //# sourceMappingURL=chunk-DMC3JMM2.js.map