@xyne/workflow-ui 1.3.26 → 1.3.29

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 (177) hide show
  1. package/dist/components/builder/AddStepButton.d.ts +6 -0
  2. package/dist/components/builder/AddStepButton.d.ts.map +1 -0
  3. package/dist/components/builder/AddStepButton.js +7 -0
  4. package/dist/components/builder/AddStepButton.js.map +1 -0
  5. package/dist/components/builder/BranchEdge.d.ts +3 -0
  6. package/dist/components/builder/BranchEdge.d.ts.map +1 -0
  7. package/dist/components/builder/BranchEdge.js +19 -0
  8. package/dist/components/builder/BranchEdge.js.map +1 -0
  9. package/dist/components/builder/BuilderToolbar.d.ts +10 -0
  10. package/dist/components/builder/BuilderToolbar.d.ts.map +1 -0
  11. package/dist/components/builder/BuilderToolbar.js +16 -0
  12. package/dist/components/builder/BuilderToolbar.js.map +1 -0
  13. package/dist/components/builder/StepConfigDrawer.d.ts +11 -0
  14. package/dist/components/builder/StepConfigDrawer.d.ts.map +1 -0
  15. package/dist/components/builder/StepConfigDrawer.js +21 -0
  16. package/dist/components/builder/StepConfigDrawer.js.map +1 -0
  17. package/dist/components/builder/StepNode.d.ts +15 -0
  18. package/dist/components/builder/StepNode.d.ts.map +1 -0
  19. package/dist/components/builder/StepNode.js +56 -0
  20. package/dist/components/builder/StepNode.js.map +1 -0
  21. package/dist/components/builder/StepPalette.d.ts +7 -0
  22. package/dist/components/builder/StepPalette.d.ts.map +1 -0
  23. package/dist/components/builder/StepPalette.js +83 -0
  24. package/dist/components/builder/StepPalette.js.map +1 -0
  25. package/dist/components/builder/StepPicker.d.ts +9 -0
  26. package/dist/components/builder/StepPicker.d.ts.map +1 -0
  27. package/dist/components/builder/StepPicker.js +95 -0
  28. package/dist/components/builder/StepPicker.js.map +1 -0
  29. package/dist/components/builder/TriggerConfigPanel.d.ts +10 -0
  30. package/dist/components/builder/TriggerConfigPanel.d.ts.map +1 -0
  31. package/dist/components/builder/TriggerConfigPanel.js +49 -0
  32. package/dist/components/builder/TriggerConfigPanel.js.map +1 -0
  33. package/dist/components/builder/TriggerNode.d.ts +9 -0
  34. package/dist/components/builder/TriggerNode.d.ts.map +1 -0
  35. package/dist/components/builder/TriggerNode.js +30 -0
  36. package/dist/components/builder/TriggerNode.js.map +1 -0
  37. package/dist/components/builder/TriggerPicker.d.ts +8 -0
  38. package/dist/components/builder/TriggerPicker.d.ts.map +1 -0
  39. package/dist/components/builder/TriggerPicker.js +61 -0
  40. package/dist/components/builder/TriggerPicker.js.map +1 -0
  41. package/dist/components/builder/WorkflowBuilder.d.ts +20 -0
  42. package/dist/components/builder/WorkflowBuilder.d.ts.map +1 -0
  43. package/dist/components/builder/WorkflowBuilder.js +157 -0
  44. package/dist/components/builder/WorkflowBuilder.js.map +1 -0
  45. package/dist/components/builder/edge-types.d.ts +3 -0
  46. package/dist/components/builder/edge-types.d.ts.map +1 -0
  47. package/dist/components/builder/edge-types.js +5 -0
  48. package/dist/components/builder/edge-types.js.map +1 -0
  49. package/dist/components/builder/node-types.d.ts +3 -0
  50. package/dist/components/builder/node-types.d.ts.map +1 -0
  51. package/dist/components/builder/node-types.js +11 -0
  52. package/dist/components/builder/node-types.js.map +1 -0
  53. package/dist/components/builder/v2/AddStepButton.d.ts +6 -0
  54. package/dist/components/builder/v2/AddStepButton.d.ts.map +1 -0
  55. package/dist/components/builder/v2/AddStepButton.js +6 -0
  56. package/dist/components/builder/v2/AddStepButton.js.map +1 -0
  57. package/dist/components/builder/v2/BranchEdge.d.ts +3 -0
  58. package/dist/components/builder/v2/BranchEdge.d.ts.map +1 -0
  59. package/dist/components/builder/v2/BranchEdge.js +46 -0
  60. package/dist/components/builder/v2/BranchEdge.js.map +1 -0
  61. package/dist/components/builder/v2/LoopBodyEdge.d.ts +7 -0
  62. package/dist/components/builder/v2/LoopBodyEdge.d.ts.map +1 -0
  63. package/dist/components/builder/v2/LoopBodyEdge.js +19 -0
  64. package/dist/components/builder/v2/LoopBodyEdge.js.map +1 -0
  65. package/dist/components/builder/v2/LoopbackEdge.d.ts +10 -0
  66. package/dist/components/builder/v2/LoopbackEdge.d.ts.map +1 -0
  67. package/dist/components/builder/v2/LoopbackEdge.js +26 -0
  68. package/dist/components/builder/v2/LoopbackEdge.js.map +1 -0
  69. package/dist/components/builder/v2/StepNode.d.ts +21 -0
  70. package/dist/components/builder/v2/StepNode.d.ts.map +1 -0
  71. package/dist/components/builder/v2/StepNode.js +36 -0
  72. package/dist/components/builder/v2/StepNode.js.map +1 -0
  73. package/dist/components/builder/v2/StepPicker.d.ts +8 -0
  74. package/dist/components/builder/v2/StepPicker.d.ts.map +1 -0
  75. package/dist/components/builder/v2/StepPicker.js +73 -0
  76. package/dist/components/builder/v2/StepPicker.js.map +1 -0
  77. package/dist/components/builder/v2/TerminalNode.d.ts +6 -0
  78. package/dist/components/builder/v2/TerminalNode.d.ts.map +1 -0
  79. package/dist/components/builder/v2/TerminalNode.js +7 -0
  80. package/dist/components/builder/v2/TerminalNode.js.map +1 -0
  81. package/dist/components/builder/v2/TriggerNode.d.ts +10 -0
  82. package/dist/components/builder/v2/TriggerNode.d.ts.map +1 -0
  83. package/dist/components/builder/v2/TriggerNode.js +20 -0
  84. package/dist/components/builder/v2/TriggerNode.js.map +1 -0
  85. package/dist/components/builder/v2/TriggerPicker.d.ts +7 -0
  86. package/dist/components/builder/v2/TriggerPicker.d.ts.map +1 -0
  87. package/dist/components/builder/v2/TriggerPicker.js +45 -0
  88. package/dist/components/builder/v2/TriggerPicker.js.map +1 -0
  89. package/dist/components/builder/v2/WorkflowBuilder.d.ts +14 -0
  90. package/dist/components/builder/v2/WorkflowBuilder.d.ts.map +1 -0
  91. package/dist/components/builder/v2/WorkflowBuilder.js +189 -0
  92. package/dist/components/builder/v2/WorkflowBuilder.js.map +1 -0
  93. package/dist/components/builder/v2/edge-types.d.ts +3 -0
  94. package/dist/components/builder/v2/edge-types.d.ts.map +1 -0
  95. package/dist/components/builder/v2/edge-types.js +9 -0
  96. package/dist/components/builder/v2/edge-types.js.map +1 -0
  97. package/dist/components/builder/v2/icons.d.ts +25 -0
  98. package/dist/components/builder/v2/icons.d.ts.map +1 -0
  99. package/dist/components/builder/v2/icons.js +43 -0
  100. package/dist/components/builder/v2/icons.js.map +1 -0
  101. package/dist/components/builder/v2/layout-engine.d.ts +76 -0
  102. package/dist/components/builder/v2/layout-engine.d.ts.map +1 -0
  103. package/dist/components/builder/v2/layout-engine.js +465 -0
  104. package/dist/components/builder/v2/layout-engine.js.map +1 -0
  105. package/dist/components/builder/v2/node-types.d.ts +3 -0
  106. package/dist/components/builder/v2/node-types.d.ts.map +1 -0
  107. package/dist/components/builder/v2/node-types.js +11 -0
  108. package/dist/components/builder/v2/node-types.js.map +1 -0
  109. package/dist/components/builder/v2/theme.d.ts +28 -0
  110. package/dist/components/builder/v2/theme.d.ts.map +1 -0
  111. package/dist/components/builder/v2/theme.js +63 -0
  112. package/dist/components/builder/v2/theme.js.map +1 -0
  113. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts +11 -0
  114. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts.map +1 -0
  115. package/dist/components/dashboard/WorkflowSummaryEditor.js +46 -0
  116. package/dist/components/dashboard/WorkflowSummaryEditor.js.map +1 -0
  117. package/dist/components/execution/CitationSourcePanel.d.ts.map +1 -1
  118. package/dist/components/execution/CitationSourcePanel.js +28 -12
  119. package/dist/components/execution/CitationSourcePanel.js.map +1 -1
  120. package/dist/components/execution/ExecutionEdge.d.ts +4 -0
  121. package/dist/components/execution/ExecutionEdge.d.ts.map +1 -0
  122. package/dist/components/execution/ExecutionEdge.js +27 -0
  123. package/dist/components/execution/ExecutionEdge.js.map +1 -0
  124. package/dist/components/execution/ExecutionStepNode.d.ts +14 -0
  125. package/dist/components/execution/ExecutionStepNode.d.ts.map +1 -0
  126. package/dist/components/execution/ExecutionStepNode.js +47 -0
  127. package/dist/components/execution/ExecutionStepNode.js.map +1 -0
  128. package/dist/components/execution/ExecutionTabs.d.ts +26 -1
  129. package/dist/components/execution/ExecutionTabs.d.ts.map +1 -1
  130. package/dist/components/execution/ExecutionTabs.js +34 -19
  131. package/dist/components/execution/ExecutionTabs.js.map +1 -1
  132. package/dist/components/execution/ExecutionTriggerNode.d.ts +9 -0
  133. package/dist/components/execution/ExecutionTriggerNode.d.ts.map +1 -0
  134. package/dist/components/execution/ExecutionTriggerNode.js +15 -0
  135. package/dist/components/execution/ExecutionTriggerNode.js.map +1 -0
  136. package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
  137. package/dist/components/execution/ExecutionViewer.js +1 -1
  138. package/dist/components/execution/ExecutionViewer.js.map +1 -1
  139. package/dist/components/execution/StepAgentPanels.d.ts +9 -0
  140. package/dist/components/execution/StepAgentPanels.d.ts.map +1 -0
  141. package/dist/components/execution/StepAgentPanels.js +133 -0
  142. package/dist/components/execution/StepAgentPanels.js.map +1 -0
  143. package/dist/components/execution/execution-layout.d.ts +31 -0
  144. package/dist/components/execution/execution-layout.d.ts.map +1 -0
  145. package/dist/components/execution/execution-layout.js +90 -0
  146. package/dist/components/execution/execution-layout.js.map +1 -0
  147. package/dist/components/execution/origin/citation-resolver.js +1 -1
  148. package/dist/components/execution/origin/citation-resolver.js.map +1 -1
  149. package/dist/components/shared/JsonTreeViewer.d.ts +9 -0
  150. package/dist/components/shared/JsonTreeViewer.d.ts.map +1 -0
  151. package/dist/components/shared/JsonTreeViewer.js +46 -0
  152. package/dist/components/shared/JsonTreeViewer.js.map +1 -0
  153. package/dist/components/shared/viewers/CsvView.js +2 -2
  154. package/dist/components/shared/viewers/CsvView.js.map +1 -1
  155. package/dist/components/shared/viewers/DocxView.js +1 -1
  156. package/dist/components/shared/viewers/DocxView.js.map +1 -1
  157. package/dist/components/shared/viewers/HtmlView.js +1 -1
  158. package/dist/components/shared/viewers/HtmlView.js.map +1 -1
  159. package/dist/components/shared/viewers/TextView.js +3 -3
  160. package/dist/components/shared/viewers/TextView.js.map +1 -1
  161. package/dist/layout-engine/components.d.ts.map +1 -1
  162. package/dist/layout-engine/components.js +11 -3
  163. package/dist/layout-engine/components.js.map +1 -1
  164. package/dist/styles.css +1 -1
  165. package/package.json +1 -1
  166. package/dist/components/schema-form/AttachmentField.d.ts +0 -16
  167. package/dist/components/schema-form/AttachmentField.d.ts.map +0 -1
  168. package/dist/components/schema-form/AttachmentField.js +0 -139
  169. package/dist/components/schema-form/AttachmentField.js.map +0 -1
  170. package/dist/components/share/ShareDialog.d.ts +0 -21
  171. package/dist/components/share/ShareDialog.d.ts.map +0 -1
  172. package/dist/components/share/ShareDialog.js +0 -98
  173. package/dist/components/share/ShareDialog.js.map +0 -1
  174. package/dist/utils/map-lanes.d.ts +0 -35
  175. package/dist/utils/map-lanes.d.ts.map +0 -1
  176. package/dist/utils/map-lanes.js +0 -48
  177. package/dist/utils/map-lanes.js.map +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@xyne/workflow-ui",
3
- "version": "1.3.26",
3
+ "version": "1.3.29",
4
4
  "description": "Workflow builder + execution-viewer React UI for @xyne/workflow-sdk.",
5
5
  "license": "UNLICENSED",
6
6
  "repository": {
@@ -1,16 +0,0 @@
1
- import type { SchemaFormField } from '../../hooks/use-schema-form.js';
2
- /**
3
- * AttachmentField — renders an attachment-typed schema field (`format:'attachment'`,
4
- * single, or an `array` of them, multiple) as an inline upload dropzone. Files are
5
- * uploaded via `client.uploads.create`; the committed value is the {@link Attachment}
6
- * ref (single) or `Attachment[]` (multiple), pushed up through `onChange`. Per-field
7
- * `accept` / `maxSize` / `maxItems` constraints come straight from the schema field.
8
- */
9
- export interface AttachmentFieldProps {
10
- field: SchemaFormField;
11
- value: unknown;
12
- onChange: (value: unknown) => void;
13
- readOnly?: boolean | undefined;
14
- }
15
- export declare function AttachmentField({ field, value, onChange, readOnly }: AttachmentFieldProps): import("react").JSX.Element;
16
- //# sourceMappingURL=AttachmentField.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachmentField.d.ts","sourceRoot":"","sources":["../../../src/components/schema-form/AttachmentField.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gCAAgC,CAAC;AAItE;;;;;;GAMG;AACH,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;IACnC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC;AAyCD,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,oBAAoB,+BAqGzF"}
@@ -1,139 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useCallback, useEffect, useMemo, useRef, useState } from 'react';
3
- import { isExecutable } from '@xyne/workflow-sdk/common';
4
- import { useWorkflowClient } from '../../hooks/use-workflow-client.js';
5
- import { cn } from '../shared/cn.js';
6
- function formatBytes(bytes) {
7
- if (bytes < 1024)
8
- return `${String(bytes)} B`;
9
- if (bytes < 1024 * 1024)
10
- return `${(bytes / 1024).toFixed(1)} KB`;
11
- return `${(bytes / 1024 / 1024).toFixed(1)} MB`;
12
- }
13
- function isAcceptedMime(mime, accept) {
14
- for (const a of accept) {
15
- if (a === '*' || a === '*/*' || a === mime)
16
- return true;
17
- if (a.endsWith('/*') && mime.startsWith(a.slice(0, -1)))
18
- return true;
19
- }
20
- return false;
21
- }
22
- let _seq = 0;
23
- function nextId() {
24
- _seq += 1;
25
- return `att_${String(_seq)}`;
26
- }
27
- function seedFromValue(value, multiple) {
28
- const list = multiple
29
- ? Array.isArray(value)
30
- ? value
31
- : []
32
- : value
33
- ? [value]
34
- : [];
35
- return list.map((att) => ({ id: nextId(), name: att.name, status: 'done', attachment: att }));
36
- }
37
- export function AttachmentField({ field, value, onChange, readOnly }) {
38
- const client = useWorkflowClient();
39
- const multiple = field.type === 'array';
40
- const maxCount = multiple ? field.maxItems : 1;
41
- const [files, setFiles] = useState(() => seedFromValue(value, multiple));
42
- const [dragging, setDragging] = useState(false);
43
- const [localError, setLocalError] = useState(null);
44
- // Push committed (uploaded) attachments up to the form whenever they change,
45
- // without re-running on every parent re-render (onChange identity is unstable).
46
- const committed = useMemo(() => files.filter((f) => f.status === 'done' && f.attachment).map((f) => f.attachment), [files]);
47
- const onChangeRef = useRef(onChange);
48
- onChangeRef.current = onChange;
49
- useEffect(() => {
50
- onChangeRef.current(multiple ? committed : (committed[0] ?? undefined));
51
- }, [committed, multiple]);
52
- const validateFile = useCallback((file) => {
53
- const execReason = isExecutable(file.type || 'application/octet-stream', file.name);
54
- if (execReason)
55
- return `"${file.name}": ${execReason}`;
56
- if (field.accept && field.accept.length > 0 && !isAcceptedMime(file.type || 'application/octet-stream', field.accept)) {
57
- return `"${file.name}" (${file.type || 'unknown type'}) is not an accepted type`;
58
- }
59
- if (field.maxSize !== undefined && file.size > field.maxSize) {
60
- return `"${file.name}" exceeds max size (${formatBytes(file.size)} > ${formatBytes(field.maxSize)})`;
61
- }
62
- return null;
63
- }, [field.accept, field.maxSize]);
64
- const handleAddFiles = useCallback(async (fileList) => {
65
- const incoming = Array.from(fileList);
66
- const currentCount = multiple ? files.length : 0;
67
- if (!multiple)
68
- setFiles([]); // single — replace any existing
69
- const space = maxCount !== undefined ? Math.max(0, maxCount - currentCount) : incoming.length;
70
- const toUpload = incoming.slice(0, space);
71
- setLocalError(incoming.length > space
72
- ? `Only ${String(space)} more file${space === 1 ? '' : 's'} can be added.`
73
- : null);
74
- for (const f of toUpload) {
75
- const err = validateFile(f);
76
- const id = nextId();
77
- if (err) {
78
- setFiles((prev) => [...prev, { id, name: f.name, status: 'error', error: err }]);
79
- continue;
80
- }
81
- setFiles((prev) => [...prev, { id, name: f.name, status: 'uploading' }]);
82
- try {
83
- const res = await client.uploads.create([f]);
84
- const att = res.attachments[0];
85
- if (!att)
86
- throw new Error('No attachment returned from upload');
87
- setFiles((prev) => prev.map((x) => (x.id === id ? { ...x, status: 'done', attachment: att } : x)));
88
- }
89
- catch (uploadErr) {
90
- const msg = uploadErr instanceof Error ? uploadErr.message : String(uploadErr);
91
- setFiles((prev) => prev.map((x) => (x.id === id ? { ...x, status: 'error', error: msg } : x)));
92
- }
93
- }
94
- }, [files.length, multiple, maxCount, client, validateFile]);
95
- const handleRemove = useCallback((id) => {
96
- setFiles((prev) => prev.filter((f) => f.id !== id));
97
- }, []);
98
- const limitReached = maxCount !== undefined && files.length >= maxCount;
99
- const acceptString = field.accept?.join(',');
100
- return (_jsxs("div", { children: [!readOnly && (_jsx(DropZone, { accept: acceptString, dragging: dragging, disabled: limitReached, onDragChange: setDragging, onFiles: (f) => void handleAddFiles(f), hint: describeConstraints(field), single: !multiple })), files.length > 0 && (_jsx("ul", { className: "mt-2 space-y-1", children: files.map((f) => (_jsx(FileRow, { file: f, onRemove: readOnly ? undefined : () => handleRemove(f.id) }, f.id))) })), localError && _jsx("p", { className: "mt-1 text-[11px] text-red-500", children: localError })] }));
101
- }
102
- function describeConstraints(field) {
103
- const parts = [];
104
- if (field.accept && field.accept.length > 0)
105
- parts.push(field.accept.join(', '));
106
- if (field.maxSize)
107
- parts.push(`up to ${formatBytes(field.maxSize)}`);
108
- if (field.type === 'array' && field.maxItems)
109
- parts.push(`max ${String(field.maxItems)} files`);
110
- return parts.length > 0 ? parts.join(' · ') : 'Any file';
111
- }
112
- function DropZone({ accept, dragging, disabled, onDragChange, onFiles, hint, single, }) {
113
- return (_jsxs("label", { onDragOver: (e) => {
114
- e.preventDefault();
115
- if (!disabled)
116
- onDragChange(true);
117
- }, onDragLeave: () => onDragChange(false), onDrop: (e) => {
118
- e.preventDefault();
119
- onDragChange(false);
120
- if (!disabled && e.dataTransfer.files.length > 0)
121
- onFiles(e.dataTransfer.files);
122
- }, className: cn('flex cursor-pointer flex-col items-center justify-center rounded-md border-2 border-dashed px-4 py-5 text-center transition-colors', disabled
123
- ? 'cursor-not-allowed border-slate-200 bg-slate-50 text-slate-300'
124
- : dragging
125
- ? 'border-indigo-400 bg-indigo-50/60 text-indigo-700'
126
- : 'border-slate-300 bg-slate-50/30 text-slate-500 hover:border-slate-400 hover:bg-slate-50'), children: [_jsx("input", { type: "file", multiple: !single, accept: accept, disabled: disabled, className: "sr-only", onChange: (e) => {
127
- if (e.target.files && e.target.files.length > 0)
128
- onFiles(e.target.files);
129
- e.target.value = '';
130
- } }), _jsxs("svg", { width: "20", height: "20", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" }), _jsx("polyline", { points: "17 8 12 3 7 8" }), _jsx("line", { x1: "12", y1: "3", x2: "12", y2: "15" })] }), _jsx("span", { className: "mt-1.5 text-[12px] font-medium", children: disabled ? 'Limit reached' : single ? 'Drop a file or click to browse' : 'Drop files or click to browse' }), _jsx("span", { className: "mt-0.5 text-[10px] text-slate-400", children: hint })] }));
131
- }
132
- function FileRow({ file, onRemove }) {
133
- return (_jsxs("li", { className: cn('flex items-center gap-2 rounded-md border px-2 py-1.5 text-[12px]', file.status === 'error'
134
- ? 'border-red-200 bg-red-50/60'
135
- : file.status === 'done'
136
- ? 'border-emerald-200 bg-emerald-50/40'
137
- : 'border-slate-200 bg-white'), children: [_jsxs("div", { className: "shrink-0", children: [file.status === 'uploading' && (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", className: "animate-spin text-slate-400", children: _jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) })), file.status === 'done' && (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", className: "text-emerald-600", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })), file.status === 'error' && (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", className: "text-red-600", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }))] }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate font-medium text-slate-700", children: file.name }), file.status === 'error' && file.error && (_jsx("div", { className: "truncate text-[10px] text-red-500", title: file.error, children: file.error })), file.status === 'done' && file.attachment?.size !== undefined && (_jsx("div", { className: "text-[10px] text-slate-400", children: formatBytes(file.attachment.size) }))] }), onRemove && (_jsx("button", { type: "button", onClick: onRemove, className: "shrink-0 rounded p-1 text-slate-400 hover:bg-slate-200/60 hover:text-slate-700", "aria-label": "Remove", children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: [_jsx("line", { x1: "18", y1: "6", x2: "6", y2: "18" }), _jsx("line", { x1: "6", y1: "6", x2: "18", y2: "18" })] }) }))] }));
138
- }
139
- //# sourceMappingURL=AttachmentField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"AttachmentField.js","sourceRoot":"","sources":["../../../src/components/schema-form/AttachmentField.tsx"],"names":[],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- export interface ShareDialogProps {
2
- open: boolean;
3
- /** The resource kind — matches the host's ACL routes. */
4
- type: 'workflow' | 'folder';
5
- id: string;
6
- name?: string;
7
- onClose: () => void;
8
- /** Shareable roles offered in the picker. Defaults to editor/viewer. */
9
- roles?: Array<{
10
- value: string;
11
- label: string;
12
- }>;
13
- }
14
- /**
15
- * Owner-facing share panel: toggle workspace-public visibility and manage
16
- * per-user (editor/viewer) access. Talks to the host's ACL routes via
17
- * `client.acl.*`. Render it only when the caller has `workflow:share` (gate with
18
- * `canPerform(permittedActions, 'workflow:share')`).
19
- */
20
- export declare function ShareDialog({ open, type, id, name, onClose, roles }: ShareDialogProps): import("react").ReactPortal | null;
21
- //# sourceMappingURL=ShareDialog.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareDialog.d.ts","sourceRoot":"","sources":["../../../src/components/share/ShareDialog.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,wEAAwE;IACxE,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjD;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAqB,EAAE,EAAE,gBAAgB,sCAiPrG"}
@@ -1,98 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from 'react';
3
- import { createPortal } from 'react-dom';
4
- import { Loader2, X, Globe, Lock, Trash2 } from 'lucide-react';
5
- import { cn } from '../shared/cn.js';
6
- import { useWorkflowClient } from '../../hooks/use-workflow-client.js';
7
- const DEFAULT_ROLES = [
8
- { value: 'editor', label: 'Can edit' },
9
- { value: 'viewer', label: 'Can view' },
10
- ];
11
- /**
12
- * Owner-facing share panel: toggle workspace-public visibility and manage
13
- * per-user (editor/viewer) access. Talks to the host's ACL routes via
14
- * `client.acl.*`. Render it only when the caller has `workflow:share` (gate with
15
- * `canPerform(permittedActions, 'workflow:share')`).
16
- */
17
- export function ShareDialog({ open, type, id, name, onClose, roles = DEFAULT_ROLES }) {
18
- const client = useWorkflowClient();
19
- const [loading, setLoading] = useState(true);
20
- const [saving, setSaving] = useState(false);
21
- const [error, setError] = useState(null);
22
- const [isPublic, setIsPublic] = useState(false);
23
- const [owners, setOwners] = useState([]);
24
- const [shares, setShares] = useState([]);
25
- const [newEmail, setNewEmail] = useState('');
26
- const [newRole, setNewRole] = useState(roles[0]?.value ?? 'viewer');
27
- useEffect(() => {
28
- if (!open)
29
- return undefined;
30
- let cancelled = false;
31
- setLoading(true);
32
- setError(null);
33
- void client.acl
34
- .getPermissions(type, id)
35
- .then((res) => {
36
- if (cancelled)
37
- return;
38
- setIsPublic(res.isPublic);
39
- setOwners(res.users.filter((u) => u.role === 'owner'));
40
- setShares(res.users.filter((u) => u.role !== 'owner').map((u) => ({ email: u.email, role: u.role })));
41
- setLoading(false);
42
- })
43
- .catch((e) => {
44
- if (cancelled)
45
- return;
46
- setError(e instanceof Error ? e.message : 'Failed to load sharing');
47
- setLoading(false);
48
- });
49
- return () => {
50
- cancelled = true;
51
- };
52
- }, [open, type, id, client]);
53
- if (!open || typeof document === 'undefined')
54
- return null;
55
- const addShare = () => {
56
- const email = newEmail.trim().toLowerCase();
57
- if (!email)
58
- return;
59
- if (shares.some((s) => s.email === email) || owners.some((o) => o.email === email)) {
60
- setNewEmail('');
61
- return;
62
- }
63
- setShares((s) => [...s, { email, role: newRole }]);
64
- setNewEmail('');
65
- };
66
- const togglePublic = async (next) => {
67
- setIsPublic(next);
68
- try {
69
- await client.acl.setVisibility(type, id, next);
70
- }
71
- catch (e) {
72
- setIsPublic(!next);
73
- setError(e instanceof Error ? e.message : 'Failed to change visibility');
74
- }
75
- };
76
- const save = async () => {
77
- setSaving(true);
78
- setError(null);
79
- try {
80
- await client.acl.share(type, id, { shares });
81
- onClose();
82
- }
83
- catch (e) {
84
- setError(e instanceof Error ? e.message : 'Failed to save sharing');
85
- setSaving(false);
86
- }
87
- };
88
- return createPortal(_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center px-4", role: "presentation", onMouseDown: (e) => {
89
- if (e.target === e.currentTarget && !saving)
90
- onClose();
91
- }, children: [_jsx("div", { "aria-hidden": true, className: "pointer-events-none absolute inset-0 bg-black/50 backdrop-blur-sm animate-fade-in" }), _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": `Share ${name ?? type}`, className: cn('relative z-10 flex max-h-[85vh] w-full max-w-[460px] flex-col overflow-hidden rounded-2xl border border-border bg-surface-elevated shadow-2xl animate-scale-in'), onMouseDown: (e) => e.stopPropagation(), children: [_jsxs("div", { className: "flex items-start justify-between gap-3 px-5 pb-2 pt-4", children: [_jsxs("h2", { className: "text-[15px] font-semibold leading-tight text-foreground", children: ["Share ", name ? `“${name}”` : type] }), _jsx("button", { type: "button", "aria-label": "Close", disabled: saving, onClick: onClose, className: "grid h-7 w-7 flex-shrink-0 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground disabled:opacity-40", children: _jsx(X, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })] }), loading ? (_jsxs("div", { className: "flex items-center gap-2 px-5 py-8 text-[13px] text-muted-foreground", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), " Loading\u2026"] })) : (_jsxs("div", { className: "flex min-h-0 flex-1 flex-col gap-4 overflow-y-auto px-5 pb-4 pt-2", children: [_jsxs("label", { className: "flex cursor-pointer items-center gap-3 rounded-lg border border-border bg-surface px-3 py-2.5", children: [_jsx("span", { className: "grid h-8 w-8 place-items-center rounded-md bg-secondary text-muted-foreground", children: isPublic ? _jsx(Globe, { className: "h-4 w-4" }) : _jsx(Lock, { className: "h-4 w-4" }) }), _jsxs("span", { className: "min-w-0 flex-1", children: [_jsx("span", { className: "block text-[13px] font-medium text-foreground", children: isPublic ? 'Anyone in the workspace' : 'Restricted' }), _jsx("span", { className: "block text-[11.5px] text-muted-foreground", children: isPublic ? 'Everyone in your workspace can view this.' : 'Only people with access can open this.' })] }), _jsx("input", { type: "checkbox", checked: isPublic, onChange: (e) => void togglePublic(e.target.checked), className: "h-4 w-4 accent-[var(--wui-primary)]" })] }), owners.length > 0 && (_jsxs("div", { className: "text-[11.5px] text-muted-foreground", children: ["Owner: ", owners.map((o) => o.name || o.email).join(', ')] })), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { type: "email", value: newEmail, placeholder: "Add people by email", onChange: (e) => setNewEmail(e.target.value), onKeyDown: (e) => {
92
- if (e.key === 'Enter') {
93
- e.preventDefault();
94
- addShare();
95
- }
96
- }, className: "min-w-0 flex-1 rounded-lg border border-border bg-surface px-3 py-2 text-[13px] text-foreground focus:border-ring focus:outline-none focus:ring-2 focus:ring-ring/30" }), _jsx("select", { value: newRole, onChange: (e) => setNewRole(e.target.value), className: "rounded-lg border border-border bg-surface px-2 py-2 text-[12.5px] text-foreground focus:outline-none", children: roles.map((r) => (_jsx("option", { value: r.value, children: r.label }, r.value))) }), _jsx("button", { type: "button", onClick: addShare, className: "rounded-lg bg-secondary px-3 py-2 text-[12.5px] font-medium text-foreground transition hover:bg-secondary/80", children: "Add" })] }), _jsx("div", { className: "flex flex-col gap-1.5", children: shares.length === 0 ? (_jsx("p", { className: "py-2 text-center text-[12px] text-muted-foreground", children: "Not shared with anyone yet." })) : (shares.map((s) => (_jsxs("div", { className: "flex items-center gap-2 rounded-lg px-1 py-1", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-[13px] text-foreground", children: s.email }), _jsx("select", { value: s.role, onChange: (e) => setShares((list) => list.map((x) => (x.email === s.email ? { ...x, role: e.target.value } : x))), className: "rounded-md border border-border bg-surface px-2 py-1 text-[12px] text-foreground focus:outline-none", children: roles.map((r) => (_jsx("option", { value: r.value, children: r.label }, r.value))) }), _jsx("button", { type: "button", "aria-label": `Remove ${s.email}`, onClick: () => setShares((list) => list.filter((x) => x.email !== s.email)), className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-red-500", children: _jsx(Trash2, { className: "h-3.5 w-3.5" }) })] }, s.email)))) }), error ? _jsx("p", { role: "alert", className: "text-[11.5px] text-red-600 dark:text-red-400", children: error }) : null] })), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-border px-5 py-3", children: [_jsx("button", { type: "button", onClick: onClose, disabled: saving, className: "inline-flex h-8 items-center rounded-md px-3 text-[12.5px] text-muted-foreground transition hover:bg-secondary hover:text-foreground disabled:opacity-50", children: "Cancel" }), _jsxs("button", { type: "button", onClick: () => void save(), disabled: saving || loading, className: cn('inline-flex h-8 items-center gap-1.5 rounded-md px-3 text-[12.5px] font-medium transition-colors', 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] hover:bg-[var(--wui-primary-hover)]', 'disabled:cursor-not-allowed disabled:opacity-50'), children: [saving ? _jsx(Loader2, { className: "h-3.5 w-3.5 animate-spin", strokeWidth: 1.75 }) : null, "Save"] })] })] })] }), document.querySelector('[data-workflow-ui]') ?? document.body);
97
- }
98
- //# sourceMappingURL=ShareDialog.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ShareDialog.js","sourceRoot":"","sources":["../../../src/components/share/ShareDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,35 +0,0 @@
1
- import type { ExecutionDetail } from '@xyne/workflow-sdk/client';
2
- import { type StepExecutionState } from '../hooks/use-execution-viewer.js';
3
- /** One concurrent MAP iteration, ready to render as a PARALLEL-style lane. */
4
- export interface MapIterationLane {
5
- /** Zero-based iteration index, as captured from the node-path. */
6
- index: number;
7
- /** Per-iteration step states, keyed by bare leaf config id (frame-stripped). */
8
- states: Map<string, StepExecutionState>;
9
- /** This iteration's frame-stripped records — fed to a nested MAP inside the body. */
10
- records: ExecutionDetail['steps'];
11
- /**
12
- * The node-path frame for this iteration (e.g. `owners_map:item#0/`). Prefixed
13
- * onto a lane step's id to form a per-iteration selection id, so clicking the
14
- * same body step in different lanes selects DIFFERENT records.
15
- */
16
- prefix: string;
17
- }
18
- /**
19
- * Group an execution's raw step records into per-iteration lanes for one MAP step.
20
- *
21
- * MAP iteration records are node-path keyed `<mapStepId>:<branchKey>#<i>/<rest>`
22
- * (e.g. `owners_map:item#2/validate`). We bucket records by the captured iteration
23
- * index `<i>`, then keep two views per iteration:
24
- * - `states`: built from the records AS-IS, so each record's `nodePath` stays the
25
- * FULL node-path — that's what the approvals selector / sidebar resume need to
26
- * resume a paused gate inside one iteration. (Keying is by bare leaf id via
27
- * `leafStepId`, so there's no cross-iteration collision regardless.)
28
- * - `records`: the same records with the `<mapStepId>:<branchKey>#<i>/` frame
29
- * stripped, so a nested MAP inside the body can regex-match its own iterations
30
- * against paths relative to this iteration.
31
- *
32
- * Lanes are returned sorted by index so they render in source-array order.
33
- */
34
- export declare function buildMapIterations(mapStepId: string, records: ExecutionDetail['steps'] | undefined): MapIterationLane[];
35
- //# sourceMappingURL=map-lanes.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map-lanes.d.ts","sourceRoot":"","sources":["../../src/utils/map-lanes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,kCAAkC,CAAC;AAE1C,8EAA8E;AAC9E,MAAM,WAAW,gBAAgB;IAC/B,kEAAkE;IAClE,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IACxC,qFAAqF;IACrF,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,CAAC;IAClC;;;;OAIG;IACH,MAAM,EAAE,MAAM,CAAC;CAChB;AAMD;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,SAAS,GAC5C,gBAAgB,EAAE,CA0BpB"}
@@ -1,48 +0,0 @@
1
- import { buildStepStatesFromRecords, } from '../hooks/use-execution-viewer.js';
2
- function escapeRegExp(s) {
3
- return s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
4
- }
5
- /**
6
- * Group an execution's raw step records into per-iteration lanes for one MAP step.
7
- *
8
- * MAP iteration records are node-path keyed `<mapStepId>:<branchKey>#<i>/<rest>`
9
- * (e.g. `owners_map:item#2/validate`). We bucket records by the captured iteration
10
- * index `<i>`, then keep two views per iteration:
11
- * - `states`: built from the records AS-IS, so each record's `nodePath` stays the
12
- * FULL node-path — that's what the approvals selector / sidebar resume need to
13
- * resume a paused gate inside one iteration. (Keying is by bare leaf id via
14
- * `leafStepId`, so there's no cross-iteration collision regardless.)
15
- * - `records`: the same records with the `<mapStepId>:<branchKey>#<i>/` frame
16
- * stripped, so a nested MAP inside the body can regex-match its own iterations
17
- * against paths relative to this iteration.
18
- *
19
- * Lanes are returned sorted by index so they render in source-array order.
20
- */
21
- export function buildMapIterations(mapStepId, records) {
22
- if (!records)
23
- return [];
24
- const re = new RegExp(`^${escapeRegExp(mapStepId)}:[^/]+#(\\d+)/`);
25
- const full = new Map();
26
- const stripped = new Map();
27
- for (const r of records) {
28
- const m = re.exec(r.stepName);
29
- if (!m)
30
- continue;
31
- const iter = Number(m[1]);
32
- (full.get(iter) ?? full.set(iter, []).get(iter)).push(r);
33
- const sub = r.stepName.slice(r.stepName.indexOf('/') + 1); // drop the map frame
34
- (stripped.get(iter) ?? stripped.set(iter, []).get(iter)).push({ ...r, stepName: sub });
35
- }
36
- return [...full.entries()]
37
- .sort((a, b) => a[0] - b[0])
38
- .map(([index, recs]) => {
39
- const first = recs[0].stepName;
40
- return {
41
- index,
42
- records: stripped.get(index),
43
- states: buildStepStatesFromRecords(recs),
44
- prefix: first.slice(0, first.indexOf('/') + 1), // e.g. "owners_map:item#0/"
45
- };
46
- });
47
- }
48
- //# sourceMappingURL=map-lanes.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"map-lanes.js","sourceRoot":"","sources":["../../src/utils/map-lanes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,0BAA0B,GAE3B,MAAM,kCAAkC,CAAC;AAkB1C,SAAS,YAAY,CAAC,CAAS;IAC7B,OAAO,CAAC,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,UAAU,kBAAkB,CAChC,SAAiB,EACjB,OAA6C;IAE7C,IAAI,CAAC,OAAO;QAAE,OAAO,EAAE,CAAC;IACxB,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;IACnE,MAAM,IAAI,GAAG,IAAI,GAAG,EAAoC,CAAC;IACzD,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoC,CAAC;IAE7D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,CAAC;YAAE,SAAS;QACjB,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1B,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,qBAAqB;QAChF,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAE,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC;IAC1F,CAAC;IAED,OAAO,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;SACvB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;SAC3B,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE;QACrB,MAAM,KAAK,GAAG,IAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC;QACjC,OAAO;YACL,KAAK;YACL,OAAO,EAAE,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAE;YAC7B,MAAM,EAAE,0BAA0B,CAAC,IAAI,CAAC;YACxC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,4BAA4B;SAC7E,CAAC;IACJ,CAAC,CAAC,CAAC;AACP,CAAC"}