@inf-monkeys-tech/monkeys-design 1.0.81 → 1.0.84

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.
Files changed (62) hide show
  1. package/dist/components/agent-workbench/index.d.mts +3 -0
  2. package/dist/components/agent-workbench/index.d.ts +3 -0
  3. package/dist/components/agent-workbench/index.js +82 -20
  4. package/dist/components/agent-workbench/index.js.map +1 -1
  5. package/dist/components/agent-workbench/index.mjs +83 -21
  6. package/dist/components/agent-workbench/index.mjs.map +1 -1
  7. package/dist/components/base/index.js +4 -1
  8. package/dist/components/base/index.js.map +1 -1
  9. package/dist/components/base/index.mjs +4 -1
  10. package/dist/components/base/index.mjs.map +1 -1
  11. package/dist/components/data-explorer/index.js +4 -1
  12. package/dist/components/data-explorer/index.js.map +1 -1
  13. package/dist/components/data-explorer/index.mjs +4 -1
  14. package/dist/components/data-explorer/index.mjs.map +1 -1
  15. package/dist/components/layout/index.js +4 -1
  16. package/dist/components/layout/index.js.map +1 -1
  17. package/dist/components/layout/index.mjs +4 -1
  18. package/dist/components/layout/index.mjs.map +1 -1
  19. package/dist/components/navigation-sidebar/index.js +4 -1
  20. package/dist/components/navigation-sidebar/index.js.map +1 -1
  21. package/dist/components/navigation-sidebar/index.mjs +4 -1
  22. package/dist/components/navigation-sidebar/index.mjs.map +1 -1
  23. package/dist/components/runtime/index.js +4 -1
  24. package/dist/components/runtime/index.js.map +1 -1
  25. package/dist/components/runtime/index.mjs +4 -1
  26. package/dist/components/runtime/index.mjs.map +1 -1
  27. package/dist/components/toast/index.d.mts +1 -1
  28. package/dist/components/toast/index.d.ts +1 -1
  29. package/dist/components/toast/index.js +4 -1
  30. package/dist/components/toast/index.js.map +1 -1
  31. package/dist/components/toast/index.mjs +4 -1
  32. package/dist/components/toast/index.mjs.map +1 -1
  33. package/dist/components/toolbar/index.js +4 -1
  34. package/dist/components/toolbar/index.js.map +1 -1
  35. package/dist/components/toolbar/index.mjs +4 -1
  36. package/dist/components/toolbar/index.mjs.map +1 -1
  37. package/dist/components/workbench/index.js +4 -1
  38. package/dist/components/workbench/index.js.map +1 -1
  39. package/dist/components/workbench/index.mjs +4 -1
  40. package/dist/components/workbench/index.mjs.map +1 -1
  41. package/dist/index.d.mts +1 -1
  42. package/dist/index.d.ts +1 -1
  43. package/dist/index.js +44 -15
  44. package/dist/index.js.map +1 -1
  45. package/dist/index.mjs +44 -15
  46. package/dist/index.mjs.map +1 -1
  47. package/dist/locale/index.d.mts +8 -2
  48. package/dist/locale/index.d.ts +8 -2
  49. package/dist/locale/index.js +8 -2
  50. package/dist/locale/index.js.map +1 -1
  51. package/dist/locale/index.mjs +8 -2
  52. package/dist/locale/index.mjs.map +1 -1
  53. package/dist/provider/index.d.mts +2 -2
  54. package/dist/provider/index.d.ts +2 -2
  55. package/dist/provider/index.js +8 -2
  56. package/dist/provider/index.js.map +1 -1
  57. package/dist/provider/index.mjs +8 -2
  58. package/dist/provider/index.mjs.map +1 -1
  59. package/dist/styles.css +1 -1
  60. package/dist/{types-340390798922.d.mts → types-9c410e33a06b.d.mts} +3 -0
  61. package/dist/{types-340390798922.d.ts → types-9c410e33a06b.d.ts} +3 -0
  62. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { ChevronDown, Check, ChevronRight, Circle, ChevronUp, ArrowUp, ArrowDown, Pencil, Trash2, Image, File, LoaderCircle, CircleAlert, RotateCcw, X, Paperclip, FileText, Mic, Send, Square, ShoppingBag, Code2, Search, Palette, Sparkles, ArrowLeft, Upload, ArrowUpRight, Plus, Pin, Blocks, Settings, Clock3, TerminalSquare, FileOutput, Download, Loader2, ListFilter, Link2, ExternalLink, PanelRightClose, Wrench, BookOpen, RefreshCw, Bot, SquarePen, MessageSquare, CheckCircle2, XCircle, CircleStop, AlertCircle, GitFork, PencilLine, Copy, FileCode2, Files, TestTube2, Globe2, Film, Presentation, FileImage, Music2, Ellipsis } from 'lucide-react';
1
+ import { ChevronDown, Check, ChevronRight, Circle, ChevronUp, ArrowUp, ArrowDown, Pencil, Trash2, Image, File, LoaderCircle, CircleAlert, RotateCcw, X, Paperclip, FileText, Mic, Send, Square, ShoppingBag, Code2, Search, Palette, Sparkles, ArrowLeft, Upload, ArrowUpRight, Plus, Pin, Blocks, Settings, Clock3, TerminalSquare, FileOutput, Download, Loader2, ListFilter, Link2, TriangleAlert, RefreshCw, ExternalLink, PanelRightClose, Wrench, BookOpen, Bot, SquarePen, MessageSquare, CheckCircle2, XCircle, CircleStop, AlertCircle, GitFork, PencilLine, Copy, FileCode2, Files, TestTube2, Globe2, Film, Presentation, FileImage, Music2, Ellipsis } from 'lucide-react';
2
2
  import * as React5 from 'react';
3
3
  import { useImperativeHandle, forwardRef, createContext, useRef, useState, useMemo, useEffect, useContext } from 'react';
4
4
  import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
@@ -209,7 +209,10 @@ var enUS = {
209
209
  closeTab: ({ name }) => `Close ${name}`,
210
210
  closeWorkspace: "Close workspace",
211
211
  download: ({ name }) => `Download ${name}`,
212
- openExternal: ({ name }) => `Open ${name} in a new window`
212
+ openExternal: ({ name }) => `Open ${name} in a new window`,
213
+ loading: "Loading preview...",
214
+ failed: "Preview unavailable",
215
+ retry: "Try again"
213
216
  },
214
217
  usage: {
215
218
  label: "Context usage",
@@ -2582,7 +2585,7 @@ function JsonValue({ value }) {
2582
2585
  return /* @__PURE__ */ jsx(
2583
2586
  "pre",
2584
2587
  {
2585
- className: "max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-md bg-muted p-3 font-mono text-xs text-foreground",
2588
+ className: "max-h-48 max-w-full overflow-auto overscroll-contain whitespace-pre-wrap break-words rounded-md bg-muted p-3 font-mono text-xs text-foreground [overflow-wrap:anywhere]",
2586
2589
  tabIndex: 0,
2587
2590
  children: content
2588
2591
  }
@@ -2595,13 +2598,20 @@ function AgentWorkbenchApproval({ approval, className, onDecision }) {
2595
2598
  return /* @__PURE__ */ jsx(
2596
2599
  "article",
2597
2600
  {
2598
- className: cn2("rounded-lg border border-border bg-card p-3 text-card-foreground", className),
2601
+ className: cn2("min-w-0 overflow-hidden rounded-lg border border-border bg-card p-3 text-card-foreground", className),
2599
2602
  "data-agent-approval-status": approval.status,
2600
2603
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-3", children: [
2601
2604
  requested ? /* @__PURE__ */ jsx(Clock3, { className: "mt-0.5 size-4 shrink-0", "aria-hidden": "true" }) : approved ? /* @__PURE__ */ jsx(Check, { className: "mt-0.5 size-4 shrink-0 text-primary", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(X, { className: "mt-0.5 size-4 shrink-0 text-destructive-text", "aria-hidden": "true" }),
2602
2605
  /* @__PURE__ */ jsxs("div", { className: "min-w-0 flex-1", children: [
2603
2606
  /* @__PURE__ */ jsx("h3", { className: "break-words text-sm font-medium", children: approval.title }),
2604
- approval.description ? /* @__PURE__ */ jsx("p", { className: "mt-1 whitespace-pre-wrap break-words text-sm text-muted-foreground", children: approval.description }) : null,
2607
+ approval.description ? /* @__PURE__ */ jsx(
2608
+ "p",
2609
+ {
2610
+ tabIndex: 0,
2611
+ className: "mt-1 max-h-32 overflow-auto whitespace-pre-wrap break-words text-sm text-muted-foreground [overflow-wrap:anywhere]",
2612
+ children: approval.description
2613
+ }
2614
+ ) : null,
2605
2615
  approval.requestedAction !== void 0 ? /* @__PURE__ */ jsx("div", { className: "mt-3 min-w-0", children: /* @__PURE__ */ jsx(JsonValue, { value: approval.requestedAction }) }) : null,
2606
2616
  requested ? /* @__PURE__ */ jsxs("div", { className: "mt-3 flex flex-wrap gap-2", children: [
2607
2617
  /* @__PURE__ */ jsx(
@@ -2645,8 +2655,9 @@ function JsonValue2({ value, className }) {
2645
2655
  return /* @__PURE__ */ jsx(
2646
2656
  "pre",
2647
2657
  {
2658
+ tabIndex: 0,
2648
2659
  className: cn2(
2649
- "max-h-64 overflow-auto whitespace-pre-wrap break-words rounded-md bg-muted p-3 font-mono text-xs text-foreground",
2660
+ "max-h-64 max-w-full overflow-auto overscroll-contain whitespace-pre-wrap break-words rounded-md bg-muted p-3 font-mono text-xs text-foreground [overflow-wrap:anywhere]",
2650
2661
  className
2651
2662
  ),
2652
2663
  children: content
@@ -2689,7 +2700,7 @@ function AgentWorkbenchTool({
2689
2700
  {
2690
2701
  open: isExpanded,
2691
2702
  className: cn2(
2692
- "group rounded-lg border border-border bg-card text-card-foreground",
2703
+ "group min-w-0 overflow-hidden rounded-lg border border-border bg-card text-card-foreground",
2693
2704
  classNames?.root,
2694
2705
  className
2695
2706
  ),
@@ -2723,7 +2734,7 @@ function AgentWorkbenchTool({
2723
2734
  ]
2724
2735
  }
2725
2736
  ),
2726
- /* @__PURE__ */ jsxs("div", { className: cn2("space-y-3 border-t border-border px-3 py-3 text-sm", classNames?.content), children: [
2737
+ /* @__PURE__ */ jsxs("div", { className: cn2("min-w-0 space-y-3 border-t border-border px-3 py-3 text-sm", classNames?.content), children: [
2727
2738
  event.payload.input !== void 0 ? /* @__PURE__ */ jsxs("div", { className: "space-y-1.5", children: [
2728
2739
  /* @__PURE__ */ jsx("div", { className: "text-xs font-medium text-muted-foreground", children: messages.input }),
2729
2740
  /* @__PURE__ */ jsx(JsonValue2, { value: event.payload.input, className: classNames?.input })
@@ -2732,7 +2743,15 @@ function AgentWorkbenchTool({
2732
2743
  /* @__PURE__ */ jsx("div", { className: "text-xs font-medium text-muted-foreground", children: messages.output }),
2733
2744
  /* @__PURE__ */ jsx(JsonValue2, { value: event.payload.output, className: classNames?.output })
2734
2745
  ] }) : null,
2735
- event.payload.error ? /* @__PURE__ */ jsx("p", { className: "text-sm text-destructive-text", role: "alert", children: event.payload.error }) : null
2746
+ event.payload.error ? /* @__PURE__ */ jsx(
2747
+ "p",
2748
+ {
2749
+ tabIndex: 0,
2750
+ className: "max-h-32 overflow-auto whitespace-pre-wrap break-words text-sm text-destructive-text [overflow-wrap:anywhere]",
2751
+ role: "alert",
2752
+ children: event.payload.error
2753
+ }
2754
+ ) : null
2736
2755
  ] })
2737
2756
  ]
2738
2757
  }
@@ -2752,7 +2771,7 @@ function ActivityDetails({
2752
2771
  "details",
2753
2772
  {
2754
2773
  className: cn2(
2755
- "group rounded-lg border border-border bg-card text-card-foreground",
2774
+ "group min-w-0 overflow-hidden rounded-lg border border-border bg-card text-card-foreground",
2756
2775
  className
2757
2776
  ),
2758
2777
  open,
@@ -2781,7 +2800,7 @@ function ActivityDetails({
2781
2800
  "div",
2782
2801
  {
2783
2802
  className: cn2(
2784
- "border-t border-border px-3 py-3 text-sm",
2803
+ "min-w-0 border-t border-border px-3 py-3 text-sm",
2785
2804
  contentClassName
2786
2805
  ),
2787
2806
  children
@@ -2876,7 +2895,14 @@ function AgentWorkbenchActivity({
2876
2895
  className: classNames?.item,
2877
2896
  triggerClassName: classNames?.trigger,
2878
2897
  contentClassName: classNames?.content,
2879
- children: /* @__PURE__ */ jsx("div", { className: "whitespace-pre-wrap text-muted-foreground", children: event.payload.text })
2898
+ children: /* @__PURE__ */ jsx(
2899
+ "div",
2900
+ {
2901
+ tabIndex: 0,
2902
+ className: "max-h-64 overflow-auto whitespace-pre-wrap break-words text-muted-foreground [overflow-wrap:anywhere]",
2903
+ children: event.payload.text
2904
+ }
2905
+ )
2880
2906
  },
2881
2907
  event.payload.reasoningId
2882
2908
  )),
@@ -2890,9 +2916,9 @@ function AgentWorkbenchActivity({
2890
2916
  className: classNames?.item,
2891
2917
  triggerClassName: classNames?.trigger,
2892
2918
  contentClassName: classNames?.content,
2893
- children: /* @__PURE__ */ jsx("ol", { className: "space-y-2", children: event.payload.steps.map((step) => /* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2", children: [
2919
+ children: /* @__PURE__ */ jsx("ol", { className: "space-y-2", children: event.payload.steps.map((step) => /* @__PURE__ */ jsxs("li", { className: "flex min-w-0 items-start gap-2", children: [
2894
2920
  /* @__PURE__ */ jsx(StatusIcon, { status: step.status }),
2895
- /* @__PURE__ */ jsx("span", { children: step.title })
2921
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 break-words [overflow-wrap:anywhere]", children: step.title })
2896
2922
  ] }, step.id)) })
2897
2923
  },
2898
2924
  event.payload.planId
@@ -2909,7 +2935,7 @@ function AgentWorkbenchActivity({
2909
2935
  contentClassName: classNames?.content,
2910
2936
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
2911
2937
  /* @__PURE__ */ jsx(StatusIcon, { status: event.payload.status }),
2912
- /* @__PURE__ */ jsx("span", { className: "whitespace-pre-wrap text-muted-foreground", children: event.payload.detail || messages.taskNoDetail })
2938
+ /* @__PURE__ */ jsx("span", { className: "min-w-0 whitespace-pre-wrap break-words text-muted-foreground [overflow-wrap:anywhere]", children: event.payload.detail || messages.taskNoDetail })
2913
2939
  ] })
2914
2940
  },
2915
2941
  event.payload.taskId
@@ -3569,14 +3595,18 @@ var AgentWorkbenchMessage = forwardRef(
3569
3595
  );
3570
3596
  }
3571
3597
  );
3572
- var AgentWorkbenchMessageContent = forwardRef(function AgentWorkbenchMessageContent2({ children, className, ...contentProps }, ref) {
3598
+ var AgentWorkbenchMessageContent = forwardRef(function AgentWorkbenchMessageContent2({ children, className, tabIndex = 0, ...contentProps }, ref) {
3573
3599
  return /* @__PURE__ */ jsx(
3574
3600
  "div",
3575
3601
  {
3576
3602
  ...contentProps,
3577
3603
  ref,
3604
+ tabIndex,
3578
3605
  className: cn2(
3579
- "flex w-fit min-w-0 max-w-full flex-col gap-2 overflow-hidden break-words text-sm [overflow-wrap:anywhere]",
3606
+ "flex w-fit min-w-0 max-w-full flex-col gap-2 overflow-x-auto overflow-y-hidden break-words text-sm [overflow-wrap:anywhere]",
3607
+ "[&_a]:max-w-full [&_a]:break-all [&_code]:max-w-full [&_code]:break-words",
3608
+ "[&_pre]:w-max [&_pre]:min-w-full [&_pre]:whitespace-pre [&_pre_code]:break-normal",
3609
+ "[&_table]:w-max [&_table]:min-w-full [&_table]:whitespace-nowrap",
3580
3610
  "group-[.is-user]:ml-auto group-[.is-user]:rounded-lg group-[.is-user]:bg-secondary group-[.is-user]:px-4 group-[.is-user]:py-3 group-[.is-user]:text-foreground",
3581
3611
  "group-[.is-assistant]:text-foreground",
3582
3612
  className
@@ -4083,19 +4113,27 @@ var ARTIFACT_ICONS = {
4083
4113
  web: Globe2
4084
4114
  };
4085
4115
  function ArtifactThumbnail({ artifact }) {
4086
- if (artifact.thumbnailUrl) {
4116
+ const [thumbnailFailed, setThumbnailFailed] = useState(false);
4117
+ if (artifact.status === "loading") {
4118
+ return /* @__PURE__ */ jsx("span", { className: "size-7 shrink-0 animate-pulse rounded bg-muted", "aria-hidden": "true" });
4119
+ }
4120
+ if (artifact.status === "error") {
4121
+ return /* @__PURE__ */ jsx("span", { className: "flex size-7 shrink-0 items-center justify-center rounded bg-destructive/10 text-destructive-text", children: /* @__PURE__ */ jsx(TriangleAlert, { className: "size-4", "aria-hidden": "true" }) });
4122
+ }
4123
+ if (artifact.thumbnailUrl && !thumbnailFailed) {
4087
4124
  return /* @__PURE__ */ jsx(
4088
4125
  "img",
4089
4126
  {
4090
4127
  src: artifact.thumbnailUrl,
4091
4128
  alt: "",
4092
4129
  loading: "lazy",
4093
- className: "size-7 rounded object-cover"
4130
+ className: "size-7 shrink-0 rounded object-cover",
4131
+ onError: () => setThumbnailFailed(true)
4094
4132
  }
4095
4133
  );
4096
4134
  }
4097
4135
  const Icon2 = ARTIFACT_ICONS[artifact.kind];
4098
- return /* @__PURE__ */ jsx("span", { className: "flex size-7 items-center justify-center rounded bg-muted text-muted-foreground", children: /* @__PURE__ */ jsx(Icon2, { className: "size-4", "aria-hidden": "true" }) });
4136
+ return /* @__PURE__ */ jsx("span", { className: "flex size-7 shrink-0 items-center justify-center rounded bg-muted text-muted-foreground", children: /* @__PURE__ */ jsx(Icon2, { className: "size-4", "aria-hidden": "true" }) });
4099
4137
  }
4100
4138
  function ArtifactGroup({
4101
4139
  title,
@@ -4299,6 +4337,30 @@ function AgentWorkbenchArtifactWorkspace({
4299
4337
  if (!over || active.id === over.id) return;
4300
4338
  onIntent?.({ type: "reorder", artifactId: String(active.id), overArtifactId: String(over.id) });
4301
4339
  };
4340
+ const artifactContent = activeArtifact.status === "loading" ? /* @__PURE__ */ jsx("div", { className: "flex size-full min-h-48 items-center justify-center p-6 text-center", role: "status", children: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 flex-col items-center gap-3 text-sm text-muted-foreground", children: [
4341
+ /* @__PURE__ */ jsx(Loader2, { className: "size-5 animate-spin", "aria-hidden": "true" }),
4342
+ /* @__PURE__ */ jsx("span", { children: messages.loading })
4343
+ ] }) }) : activeArtifact.status === "error" ? /* @__PURE__ */ jsx("div", { className: "flex size-full min-h-48 items-center justify-center p-6 text-center", role: "alert", children: /* @__PURE__ */ jsxs("div", { className: "flex min-w-0 max-w-sm flex-col items-center gap-3", children: [
4344
+ /* @__PURE__ */ jsx("span", { className: "flex size-10 items-center justify-center rounded-full bg-destructive/10 text-destructive-text", children: /* @__PURE__ */ jsx(TriangleAlert, { className: "size-5", "aria-hidden": "true" }) }),
4345
+ /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
4346
+ /* @__PURE__ */ jsx("div", { className: "break-words text-sm font-medium text-foreground [overflow-wrap:anywhere]", children: messages.failed }),
4347
+ activeArtifact.description ? /* @__PURE__ */ jsx("p", { className: "mt-1 max-h-24 overflow-auto whitespace-pre-wrap break-words text-sm text-muted-foreground [overflow-wrap:anywhere]", children: activeArtifact.description }) : null
4348
+ ] }),
4349
+ onIntent ? /* @__PURE__ */ jsxs(
4350
+ Button,
4351
+ {
4352
+ type: "button",
4353
+ variant: "outline",
4354
+ size: "sm",
4355
+ className: "gap-2",
4356
+ onClick: () => onIntent({ type: "retry", artifactId: activeArtifact.id }),
4357
+ children: [
4358
+ /* @__PURE__ */ jsx(RefreshCw, { className: "size-4", "aria-hidden": "true" }),
4359
+ messages.retry
4360
+ ]
4361
+ }
4362
+ ) : null
4363
+ ] }) }) : renderArtifact(activeArtifact);
4302
4364
  return /* @__PURE__ */ jsxs(
4303
4365
  TabsPrimitive.Root,
4304
4366
  {
@@ -4370,7 +4432,7 @@ function AgentWorkbenchArtifactWorkspace({
4370
4432
  {
4371
4433
  value: artifact.id,
4372
4434
  className: "size-full min-h-0 min-w-0 outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-ring",
4373
- children: artifact.id === activeArtifact.id ? renderArtifact(artifact) : null
4435
+ children: artifact.id === activeArtifact.id ? artifactContent : null
4374
4436
  },
4375
4437
  artifact.id
4376
4438
  )) })