@xyne/workflow-ui 1.1.0 → 1.2.0
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/dist/components/automations/CreateWorkflowDialog.d.ts +1 -1
- package/dist/components/automations/CreateWorkflowDialog.d.ts.map +1 -1
- package/dist/components/automations/CreateWorkflowDialog.js +14 -27
- package/dist/components/automations/CreateWorkflowDialog.js.map +1 -1
- package/dist/components/browser/EntryGrid.d.ts +3 -1
- package/dist/components/browser/EntryGrid.d.ts.map +1 -1
- package/dist/components/browser/EntryGrid.js +43 -38
- package/dist/components/browser/EntryGrid.js.map +1 -1
- package/dist/components/browser/EntryList.d.ts +3 -1
- package/dist/components/browser/EntryList.d.ts.map +1 -1
- package/dist/components/browser/EntryList.js +39 -35
- package/dist/components/browser/EntryList.js.map +1 -1
- package/dist/components/browser/MoveDialog.d.ts.map +1 -1
- package/dist/components/browser/MoveDialog.js +3 -1
- package/dist/components/browser/MoveDialog.js.map +1 -1
- package/dist/components/browser/NameDialog.d.ts.map +1 -1
- package/dist/components/browser/NameDialog.js +5 -2
- package/dist/components/browser/NameDialog.js.map +1 -1
- package/dist/components/browser/SearchField.js +1 -1
- package/dist/components/browser/SearchField.js.map +1 -1
- package/dist/components/browser/ViewToggle.js +5 -5
- package/dist/components/browser/ViewToggle.js.map +1 -1
- package/dist/components/builder/v3/ConditionEditorPanel.js +2 -2
- package/dist/components/builder/v3/ConditionEditorPanel.js.map +1 -1
- package/dist/components/builder/v3/DeleteStepDialog.js +1 -1
- package/dist/components/builder/v3/DeleteStepDialog.js.map +1 -1
- package/dist/components/builder/v3/DiscriminatedUnionEditor.js +1 -1
- package/dist/components/builder/v3/DiscriminatedUnionEditor.js.map +1 -1
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js +1 -1
- package/dist/components/builder/v3/EnhancedSchemaFormRenderer.js.map +1 -1
- package/dist/components/builder/v3/InputSchemaBuilder.js +1 -1
- package/dist/components/builder/v3/InputSchemaBuilder.js.map +1 -1
- package/dist/components/builder/v3/SaveValidationDialog.js +1 -1
- package/dist/components/builder/v3/SaveValidationDialog.js.map +1 -1
- package/dist/components/builder/v3/StringArrayInput.js +1 -1
- package/dist/components/builder/v3/StringArrayInput.js.map +1 -1
- package/dist/components/builder/v3/SummaryDialog.js +1 -1
- package/dist/components/builder/v3/SummaryDialog.js.map +1 -1
- package/dist/components/builder/v3/SwitchCaseEditor.js +1 -1
- package/dist/components/builder/v3/SwitchCaseEditor.js.map +1 -1
- package/dist/components/builder/v3/VariableRefInput.js +1 -1
- package/dist/components/builder/v3/VariableRefInput.js.map +1 -1
- package/dist/components/dashboard/TriggerFormModal.js +1 -1
- package/dist/components/dashboard/TriggerFormModal.js.map +1 -1
- package/dist/components/execution/ApprovalReviewDisplay.d.ts.map +1 -1
- package/dist/components/execution/ApprovalReviewDisplay.js +5 -3
- package/dist/components/execution/ApprovalReviewDisplay.js.map +1 -1
- package/dist/components/execution/ApprovalsView.d.ts.map +1 -1
- package/dist/components/execution/ApprovalsView.js +91 -17
- package/dist/components/execution/ApprovalsView.js.map +1 -1
- package/dist/components/execution/PauseFormRenderer.d.ts.map +1 -1
- package/dist/components/execution/PauseFormRenderer.js +3 -2
- package/dist/components/execution/PauseFormRenderer.js.map +1 -1
- package/dist/components/execution/PauseInteractionPanel.js +1 -1
- package/dist/components/execution/PauseInteractionPanel.js.map +1 -1
- package/dist/components/execution/RerunDialog.js +1 -1
- package/dist/components/execution/RerunDialog.js.map +1 -1
- package/dist/components/execution/SidePanelShell.d.ts.map +1 -1
- package/dist/components/execution/SidePanelShell.js +2 -2
- package/dist/components/execution/SidePanelShell.js.map +1 -1
- package/dist/components/execution/ValueEditor.js +21 -21
- package/dist/components/execution/ValueEditor.js.map +1 -1
- package/dist/components/execution/origin/OriginTrace.d.ts +4 -2
- package/dist/components/execution/origin/OriginTrace.d.ts.map +1 -1
- package/dist/components/execution/origin/OriginTrace.js +9 -6
- package/dist/components/execution/origin/OriginTrace.js.map +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/index.js.map +1 -1
- package/dist/components/runs/RunsFilters.js +1 -1
- package/dist/components/runs/RunsFilters.js.map +1 -1
- package/dist/components/runs/RunsTable.d.ts +3 -1
- package/dist/components/runs/RunsTable.d.ts.map +1 -1
- package/dist/components/runs/RunsTable.js +18 -28
- package/dist/components/runs/RunsTable.js.map +1 -1
- package/dist/components/runs/RunsView.d.ts.map +1 -1
- package/dist/components/runs/RunsView.js +51 -3
- package/dist/components/runs/RunsView.js.map +1 -1
- package/dist/components/schema-form/AttachmentFieldInput.js +8 -8
- package/dist/components/schema-form/AttachmentFieldInput.js.map +1 -1
- package/dist/components/schema-form/SchemaFormRenderer.js +4 -4
- package/dist/components/schema-form/SchemaFormRenderer.js.map +1 -1
- package/dist/components/shared/JsonView.d.ts +13 -0
- package/dist/components/shared/JsonView.d.ts.map +1 -0
- package/dist/components/shared/JsonView.js +59 -0
- package/dist/components/shared/JsonView.js.map +1 -0
- package/dist/components/shared/MarkdownEditor.d.ts.map +1 -1
- package/dist/components/shared/MarkdownEditor.js +10 -5
- package/dist/components/shared/MarkdownEditor.js.map +1 -1
- package/dist/components/shared/MarkdownView.d.ts +1 -1
- package/dist/components/shared/MarkdownView.d.ts.map +1 -1
- package/dist/components/shared/MarkdownView.js +33 -20
- package/dist/components/shared/MarkdownView.js.map +1 -1
- package/dist/components/shared/Select.d.ts +20 -0
- package/dist/components/shared/Select.d.ts.map +1 -0
- package/dist/components/shared/Select.js +50 -0
- package/dist/components/shared/Select.js.map +1 -0
- package/dist/components/shared/Toolbar.d.ts +17 -0
- package/dist/components/shared/Toolbar.d.ts.map +1 -0
- package/dist/components/shared/Toolbar.js +26 -0
- package/dist/components/shared/Toolbar.js.map +1 -0
- package/dist/components/workflows/WorkflowBrowser.d.ts +4 -1
- package/dist/components/workflows/WorkflowBrowser.d.ts.map +1 -1
- package/dist/components/workflows/WorkflowBrowser.js +123 -30
- package/dist/components/workflows/WorkflowBrowser.js.map +1 -1
- package/dist/components/workflows/WorkflowHome.d.ts +22 -0
- package/dist/components/workflows/WorkflowHome.d.ts.map +1 -0
- package/dist/components/workflows/WorkflowHome.js +33 -0
- package/dist/components/workflows/WorkflowHome.js.map +1 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -34,7 +34,7 @@ export function SummaryDialog({ value, onApply, onClose }) {
|
|
|
34
34
|
onApply(draft);
|
|
35
35
|
onClose();
|
|
36
36
|
};
|
|
37
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", "data-testid": "summary-dialog", children: [_jsx("div", { className: "absolute inset-0 bg-black/
|
|
37
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", "data-testid": "summary-dialog", children: [_jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm", onClick: onClose }), _jsxs("div", { className: cn('relative z-10 flex max-h-[80vh] w-full max-w-2xl flex-col rounded-xl border border-slate-200 bg-white shadow-xl', 'animate-[wui-fade-in_150ms_ease-out]'), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-slate-200/80 px-5 py-3.5", children: [_jsx("h3", { className: "text-sm font-semibold text-slate-800", children: "Workflow Summary" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("button", { type: "button", "data-testid": "summary-upload", onClick: () => fileRef.current?.click(), className: "flex items-center gap-1.5 rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] font-semibold text-slate-600 hover:bg-slate-50", children: [_jsxs("svg", { width: "13", height: "13", 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", x2: "12", y1: "3", y2: "15" })] }), "Upload .md"] }), _jsx("input", { ref: fileRef, type: "file", accept: ".md,.markdown,text/markdown,text/plain", className: "hidden", "data-testid": "summary-file-input", onChange: (e) => { void handleUpload(e.target.files?.[0]); e.target.value = ''; } }), _jsx("button", { onClick: onClose, className: "flex h-6 w-6 items-center justify-center rounded-md text-slate-400 hover:bg-slate-100 hover:text-slate-600 transition-colors", "aria-label": "Close", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) })] })] }), _jsxs("div", { className: "flex items-center gap-1 border-b border-slate-200/80 px-5", children: [_jsx(TabButton, { label: "Write", active: tab === 'write', onClick: () => setTab('write'), testid: "summary-tab-write" }), _jsx(TabButton, { label: "Preview", active: tab === 'preview', onClick: () => setTab('preview'), testid: "summary-tab-preview" }), uploadError && _jsx("span", { className: "ml-auto py-2 text-[12px] text-red-600", children: uploadError })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-5 py-4", children: tab === 'write' ? (_jsx("textarea", { "data-testid": "summary-input", value: draft, onChange: (e) => setDraft(e.target.value), placeholder: 'Describe what this workflow does…\n\nMarkdown supported — headings, **bold**, lists, links, tables.', className: "h-[45vh] w-full resize-none rounded-md border border-slate-200 px-3 py-2.5 font-mono text-[13px] leading-relaxed outline-none focus:border-indigo-400 focus:ring-2 focus:ring-indigo-100" })) : (_jsx("div", { className: "min-h-[45vh]", "data-testid": "summary-preview", children: draft.trim() ? (_jsx(MarkdownView, { children: draft })) : (_jsx("p", { className: "text-[13px] italic text-slate-400", children: "Nothing to preview yet." })) })) }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-slate-200/80 px-5 py-3", children: [_jsx("button", { type: "button", onClick: onClose, className: "rounded-md px-3.5 py-1.5 text-[13px] font-semibold text-slate-500 hover:bg-slate-100", children: "Cancel" }), _jsx("button", { type: "button", "data-testid": "summary-apply", onClick: apply, className: "rounded-md bg-indigo-500 px-3.5 py-1.5 text-[13px] font-semibold text-white shadow-sm hover:bg-indigo-600", children: "Done" })] })] })] }));
|
|
38
38
|
}
|
|
39
39
|
function TabButton({ label, active, onClick, testid, }) {
|
|
40
40
|
return (_jsx("button", { type: "button", "data-testid": testid, onClick: onClick, className: cn('border-b-2 px-3 py-2.5 text-[13px] font-semibold transition-colors', active
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SummaryDialog.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryDialog.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAYxC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAsB;IAC3E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC1C,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAM,OAAO,CAAC,CAAC;IAC7C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACpE,MAAM,OAAO,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,KAAK,EAAE,IAAsB,EAAE,EAAE;QACpD,cAAc,CAAC,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,aAAa;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,cAAc,CAAC,+BAA+B,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QACD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;YAC/B,QAAQ,CAAC,IAAI,CAAC,CAAC;YACf,MAAM,CAAC,SAAS,CAAC,CAAC;QACpB,CAAC;QAAC,MAAM,CAAC;YACP,cAAc,CAAC,2BAA2B,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,GAAG,EAAE;QACjB,OAAO,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,EAAE,CAAC;IACZ,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,iBAAa,gBAAgB,aAC/F,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"SummaryDialog.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryDialog.tsx"],"names":[],"mappings":"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"}
|
|
@@ -28,7 +28,7 @@ export function SwitchCaseEditor({ cases, onChange, config, atStepId, readOnly,
|
|
|
28
28
|
[next[index], next[target]] = [next[target], next[index]];
|
|
29
29
|
onChange(next);
|
|
30
30
|
}, [cases, onChange]);
|
|
31
|
-
return (_jsxs("div", { className: "space-y-3", children: [cases.map((switchCase, i) => (_jsxs("div", { className: "rounded-lg border border-slate-200 bg-white shadow-sm overflow-hidden", children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-slate-100 bg-slate-50/50 px-3 py-2", children: [_jsx("div", { className: "flex h-5 w-5 items-center justify-center rounded-md bg-violet-100 text-[10px] font-bold text-violet-600", children: i + 1 }), _jsx("input", { type: "text", value: switchCase.label ?? '', onChange: (e) => updateCase(i, { label: e.target.value }), disabled: readOnly, placeholder: `Case ${i + 1}`, className: cn('flex-1 rounded-md border border-transparent bg-transparent px-1.5 py-0.5 text-xs font-medium text-slate-700', 'hover:border-slate-200 focus:border-[var(--wui-primary)] focus:ring-1 focus:ring-[var(--wui-primary)]
|
|
31
|
+
return (_jsxs("div", { className: "space-y-3", children: [cases.map((switchCase, i) => (_jsxs("div", { className: "rounded-lg border border-slate-200 bg-white shadow-sm overflow-hidden", children: [_jsxs("div", { className: "flex items-center gap-2 border-b border-slate-100 bg-slate-50/50 px-3 py-2", children: [_jsx("div", { className: "flex h-5 w-5 items-center justify-center rounded-md bg-violet-100 text-[10px] font-bold text-violet-600", children: i + 1 }), _jsx("input", { type: "text", value: switchCase.label ?? '', onChange: (e) => updateCase(i, { label: e.target.value }), disabled: readOnly, placeholder: `Case ${i + 1}`, className: cn('flex-1 rounded-md border border-transparent bg-transparent px-1.5 py-0.5 text-xs font-medium text-slate-700', 'hover:border-slate-200 focus:border-[var(--wui-primary)] focus:ring-1 focus:ring-[color-mix(in_srgb,var(--wui-primary)_22%,transparent)] outline-none transition-all', readOnly && 'cursor-not-allowed opacity-60'), onKeyDown: (e) => e.stopPropagation() }), !readOnly && (_jsxs("div", { className: "flex items-center gap-0.5", children: [_jsx("button", { onClick: () => moveCase(i, -1), disabled: i === 0, className: cn('flex h-5 w-5 items-center justify-center rounded transition-colors', i === 0
|
|
32
32
|
? 'text-slate-200 cursor-not-allowed'
|
|
33
33
|
: 'text-slate-400 hover:text-slate-600 hover:bg-slate-100'), title: "Move up", children: _jsx("svg", { width: "9", height: "9", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: _jsx("path", { d: "m18 15-6-6-6 6" }) }) }), _jsx("button", { onClick: () => moveCase(i, 1), disabled: i === cases.length - 1, className: cn('flex h-5 w-5 items-center justify-center rounded transition-colors', i === cases.length - 1
|
|
34
34
|
? 'text-slate-200 cursor-not-allowed'
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SwitchCaseEditor.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SwitchCaseEditor.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SwitchCaseEditor.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SwitchCaseEditor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -77,7 +77,7 @@ export function VariableRefInput({ value, onChange, config, atStepId, placeholde
|
|
|
77
77
|
return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("div", { className: "relative", children: [_jsx("textarea", { ref: inputRef, rows: 1, value: stringValue, onChange: (e) => onChange(e.target.value), placeholder: placeholder, disabled: disabled, className: cn('w-full rounded-lg border pr-9 align-top',
|
|
78
78
|
// Grow with content (incl. pasted multi-line markdown) instead of
|
|
79
79
|
// scrolling; preserves newlines that a single-line input would strip.
|
|
80
|
-
'resize-none [field-sizing:content] min-h-[2.25rem] max-h-56 overflow-y-auto whitespace-pre-wrap break-words', compact ? 'rounded-md px-2.5 py-1.5 text-xs min-h-[1.875rem]' : 'px-3 py-2 text-sm', 'bg-white text-[var(--wui-fg)]', 'outline-none transition-all', 'border-[var(--wui-border)] focus:border-[var(--wui-primary)] focus:ring-2 focus:ring-[var(--wui-primary)]
|
|
80
|
+
'resize-none [field-sizing:content] min-h-[2.25rem] max-h-56 overflow-y-auto whitespace-pre-wrap break-words', compact ? 'rounded-md px-2.5 py-1.5 text-xs min-h-[1.875rem]' : 'px-3 py-2 text-sm', 'bg-white text-[var(--wui-fg)]', 'outline-none transition-all', 'border-[var(--wui-border)] focus:border-[var(--wui-primary)] focus:ring-2 focus:ring-[color-mix(in_srgb,var(--wui-primary)_12%,transparent)]', disabled && 'opacity-60 cursor-not-allowed bg-[var(--wui-bg-subtle)]'), onKeyDown: (e) => e.stopPropagation(), onClick: (e) => e.stopPropagation() }), _jsx("button", { type: "button", onClick: (e) => { e.stopPropagation(); setShowPicker(!showPicker); }, disabled: disabled, className: cn('absolute right-1.5 top-1.5 flex h-6 items-center rounded px-1 text-[10px] font-bold transition-colors', showPicker
|
|
81
81
|
? 'bg-indigo-100 text-indigo-600'
|
|
82
82
|
: 'text-slate-400 hover:bg-indigo-50 hover:text-indigo-500'), title: "Insert variable reference", children: '{{ }}' })] }), hasRefs && segments.length > 0 && (_jsx("div", { className: "mt-1 flex flex-wrap gap-1", children: segments.map((seg, i) => {
|
|
83
83
|
if (seg.type === 'text')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VariableRefInput.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/VariableRefInput.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"VariableRefInput.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/VariableRefInput.tsx"],"names":[],"mappings":"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"}
|
|
@@ -23,6 +23,6 @@ export function TriggerFormModal({ inputSchema, workflowName, onSubmit, onClose,
|
|
|
23
23
|
setIsSubmitting(false);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
|
-
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0 bg-black/
|
|
26
|
+
return (_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center", children: [_jsx("div", { className: "absolute inset-0 bg-black/50 backdrop-blur-sm", onClick: onClose }), _jsxs("div", { className: cn('relative z-10 w-full max-w-lg rounded-xl border border-[var(--wui-border)] bg-[var(--wui-surface)] shadow-xl', 'animate-[wui-fade-in_150ms_ease-out]'), children: [_jsxs("div", { className: "flex items-center justify-between border-b border-[var(--wui-border)] px-5 py-3.5", children: [_jsx("h3", { className: "text-sm font-semibold text-[var(--wui-fg)]", children: workflowName ? `Run "${workflowName}"` : 'Run Workflow' }), _jsx("button", { onClick: onClose, className: "flex h-6 w-6 items-center justify-center rounded-md text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-muted)] hover:text-[var(--wui-fg)] transition-colors", "aria-label": "Close", children: _jsxs("svg", { width: "14", height: "14", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("path", { d: "M18 6 6 18" }), _jsx("path", { d: "m6 6 12 12" })] }) })] }), _jsxs("div", { className: "max-h-[60vh] space-y-4 overflow-y-auto px-5 py-4", children: [nothingToCollect && (_jsxs("p", { className: "text-[13px] leading-relaxed text-[var(--wui-fg-muted)]", children: ["This will start a new run", workflowName ? _jsxs(_Fragment, { children: [" of ", _jsx("span", { className: "font-medium text-[var(--wui-fg)]", children: workflowName })] }) : '', ". No input is required."] })), !nothingToCollect && (_jsx(SchemaFormRenderer, { fields: form.fields, values: form.values, errors: form.errors, onChange: (path, value) => form.setFieldValue(path, value) }))] }), _jsxs("div", { className: "flex items-center justify-end gap-2 border-t border-[var(--wui-border)] px-5 py-3", children: [error && (_jsx("span", { className: "mr-auto truncate text-xs text-[var(--wui-status-failed)]", title: error, children: error })), _jsx("button", { onClick: onClose, disabled: isSubmitting, className: "rounded-md border border-[var(--wui-border)] px-3.5 py-1.5 text-[13px] font-medium text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-muted)] transition-colors disabled:opacity-50", children: "Cancel" }), _jsx("button", { onClick: () => void handleSubmit(), disabled: isSubmitting, className: cn('rounded-md px-3.5 py-1.5 text-[13px] font-semibold text-[var(--wui-primary-fg)] transition-colors', 'bg-[var(--wui-primary)] hover:bg-[var(--wui-primary-hover)]', isSubmitting && 'opacity-50 cursor-not-allowed'), children: isSubmitting ? 'Running...' : 'Run' })] })] })] }));
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=TriggerFormModal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TriggerFormModal.js","sourceRoot":"","sources":["../../../src/components/dashboard/TriggerFormModal.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,kBAAkB,EAAE,MAAM,sCAAsC,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AASrC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,WAAW,EACX,YAAY,EACZ,QAAQ,EACR,OAAO,GACe;IACtB,MAAM,IAAI,GAAG,aAAa,CAAC,EAAE,MAAM,EAAE,WAAW,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC1E,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAExD,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAElD,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;QAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YAAE,OAAO;QAC7B,eAAe,CAAC,IAAI,CAAC,CAAC;QACtB,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,IAAI,CAAC;YACH,MAAM,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC9B,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,QAAQ,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC7D,CAAC;gBAAS,CAAC;YACT,eAAe,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,qDAAqD,aAElE,cAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"TriggerFormModal.js","sourceRoot":"","sources":["../../../src/components/dashboard/TriggerFormModal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalReviewDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/execution/ApprovalReviewDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;
|
|
1
|
+
{"version":3,"file":"ApprovalReviewDisplay.d.ts","sourceRoot":"","sources":["../../../src/components/execution/ApprovalReviewDisplay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAkC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,IAAI,GAAG,QAAQ,GAAG,YAAY,CAAC;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AA+MF;;;;;;;;GAQG;AACH,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,gBAAgB,GACjB,EAAE;IACD,IAAI,EAAE,mBAAmB,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,SAAS,CAAC;CAC7C,+BAiGA"}
|
|
@@ -7,6 +7,8 @@ import { DisplayValue, isAttachment, isAttachmentArray } from '../shared/Attachm
|
|
|
7
7
|
const toRow = (value) => value !== null && typeof value === 'object'
|
|
8
8
|
? value
|
|
9
9
|
: { headline: value == null ? '—' : String(value) };
|
|
10
|
+
/** True when the workflow left a field empty (blank, or the placeholder dash). */
|
|
11
|
+
const isBlankValue = (s) => !s || s.trim() === '' || s.trim() === '—';
|
|
10
12
|
// ── Pieces ───────────────────────────────────────────────────────────────────
|
|
11
13
|
function ConfidencePill({ value, tone }) {
|
|
12
14
|
return (_jsxs("span", { className: cn('inline-flex items-center rounded-full px-2.5 py-1 text-[13px] font-semibold tabular-nums', tone === 'ok'
|
|
@@ -14,15 +16,15 @@ function ConfidencePill({ value, tone }) {
|
|
|
14
16
|
: 'border border-[var(--wui-status-paused)]/40 bg-[var(--wui-bg)] text-[var(--wui-status-paused)]'), children: [value, "%"] }));
|
|
15
17
|
}
|
|
16
18
|
function InfoRow({ label, v, originChip, }) {
|
|
17
|
-
return (_jsxs("div", { className: "flex items-center justify-between gap-4 rounded-xl border border-[var(--wui-border)] bg-[var(--wui-bg)] px-4 py-3.5", children: [_jsxs("div", { className: "min-w-0", children: [_jsx(MarkdownView, { bare: true, className: "text-[12.5px] leading-tight text-[var(--wui-fg-muted)]", children: label }), _jsx(
|
|
19
|
+
return (_jsxs("div", { className: "flex items-center justify-between gap-4 rounded-xl border border-[var(--wui-border)] bg-[var(--wui-bg)] px-4 py-3.5", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(MarkdownView, { bare: true, className: "text-[12.5px] leading-tight text-[var(--wui-fg-muted)]", children: label }), isBlankValue(v.headline) ? (_jsx("p", { className: "mt-1 text-[13.5px] italic leading-tight text-[var(--wui-fg-muted)]", children: "No value" })) : (_jsx(MarkdownView, { bare: true, className: "mt-1 text-[14px] text-[var(--wui-fg)] [&_p]:leading-snug", children: v.headline }))] }), _jsxs("div", { className: "flex shrink-0 items-center gap-3", children: [typeof v.confidence === 'number' && _jsx(ConfidencePill, { value: v.confidence, tone: "ok" }), v.source && (_jsx("span", { className: "text-[13px] font-medium text-[var(--wui-fg-muted)]", children: v.source })), originChip] })] }));
|
|
18
20
|
}
|
|
19
21
|
function RestrictedRow({ label, v, originChip, }) {
|
|
20
22
|
return (_jsxs("div", { className: "flex items-center justify-between gap-4 rounded-xl border border-dashed border-[var(--wui-border)] px-4 py-3.5", style: {
|
|
21
23
|
backgroundImage: 'repeating-linear-gradient(135deg, var(--wui-bg-muted) 0 8px, transparent 8px 16px)',
|
|
22
|
-
}, children: [_jsxs("div", { className: "min-w-0", children: [_jsx(MarkdownView, { bare: true, className: "text-[12.5px] leading-tight text-[var(--wui-fg-muted)]", children: label }), _jsx(MarkdownView, { bare: true, className: "mt-1 text-[15px] font-semibold leading-tight tracking-[0.04em] text-[var(--wui-fg-muted)]", children: v.headline })] }), _jsxs("span", { className: "flex shrink-0 items-center gap-1.5 text-[12.5px] font-medium text-[var(--wui-fg-muted)]", children: [_jsx(Lock, { className: "size-3.5" }), v.restrictedLabel ?? 'restricted', originChip] })] }));
|
|
24
|
+
}, children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsx(MarkdownView, { bare: true, className: "text-[12.5px] leading-tight text-[var(--wui-fg-muted)]", children: label }), _jsx(MarkdownView, { bare: true, className: "mt-1 text-[15px] font-semibold leading-tight tracking-[0.04em] text-[var(--wui-fg-muted)]", children: v.headline })] }), _jsxs("span", { className: "flex shrink-0 items-center gap-1.5 text-[12.5px] font-medium text-[var(--wui-fg-muted)]", children: [_jsx(Lock, { className: "size-3.5" }), v.restrictedLabel ?? 'restricted', originChip] })] }));
|
|
23
25
|
}
|
|
24
26
|
function ReviewRow({ label, v, originChip, }) {
|
|
25
|
-
return (_jsxs("div", { className: "rounded-xl border border-[var(--wui-status-paused)]/40 bg-[var(--wui-status-paused)]/10 p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0", children: [_jsxs("p", { className: "flex items-center gap-1.5 text-[12.5px] font-medium leading-tight text-[var(--wui-status-paused)]", children: [_jsx("span", { className: "truncate", children: label }), _jsx("span", { className: "shrink-0", children: "\u00B7 needs review" })] }), _jsx(MarkdownView, { bare: true, className: "mt-1 text-[16px] font-bold leading-tight tracking-[-0.01em] text-[var(--wui-fg)] tabular-nums", children: v.headline })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [typeof v.confidence === 'number' && _jsx(ConfidencePill, { value: v.confidence, tone: "review" }), originChip] })] }), (v.flag ?? v.sop) && (_jsx("div", { className: "my-3 border-t border-dashed border-[var(--wui-status-paused)]/40" })), v.flag && (_jsxs("p", { className: "flex items-start gap-1.5 text-[13px] leading-snug text-[var(--wui-status-paused)]", children: [_jsx(Flag, { className: "mt-0.5 size-3.5 shrink-0" }), _jsxs("span", { children: [v.flag, ".", ' ', v.sourceNote && (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-semibold text-[var(--wui-fg)]/80", children: "Source:" }), " ", v.sourceNote] }))] })] })), v.sop && (_jsxs("div", { className: "mt-2.5 flex gap-2 rounded-lg bg-[var(--wui-primary)]/10 px-3.5 py-2.5 text-[13px] leading-snug text-[var(--wui-primary)]", children: [_jsx(HelpCircle, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("p", { children: [_jsx("span", { className: "font-semibold", children: "From the SOP:" }), " ", v.sop, ' ', v.sopRef && _jsx("span", { className: "font-medium underline underline-offset-2", children: v.sopRef })] })] }))] }));
|
|
27
|
+
return (_jsxs("div", { className: "rounded-xl border border-[var(--wui-status-paused)]/40 bg-[var(--wui-status-paused)]/10 p-4", children: [_jsxs("div", { className: "flex items-start justify-between gap-3", children: [_jsxs("div", { className: "min-w-0 flex-1", children: [_jsxs("p", { className: "flex items-center gap-1.5 text-[12.5px] font-medium leading-tight text-[var(--wui-status-paused)]", children: [_jsx("span", { className: "truncate", children: label }), _jsx("span", { className: "shrink-0", children: "\u00B7 needs review" })] }), _jsx(MarkdownView, { bare: true, className: "mt-1 text-[16px] font-bold leading-tight tracking-[-0.01em] text-[var(--wui-fg)] tabular-nums", children: v.headline })] }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [typeof v.confidence === 'number' && _jsx(ConfidencePill, { value: v.confidence, tone: "review" }), originChip] })] }), (v.flag ?? v.sop) && (_jsx("div", { className: "my-3 border-t border-dashed border-[var(--wui-status-paused)]/40" })), v.flag && (_jsxs("p", { className: "flex items-start gap-1.5 text-[13px] leading-snug text-[var(--wui-status-paused)]", children: [_jsx(Flag, { className: "mt-0.5 size-3.5 shrink-0" }), _jsxs("span", { children: [v.flag, ".", ' ', v.sourceNote && (_jsxs(_Fragment, { children: [_jsx("span", { className: "font-semibold text-[var(--wui-fg)]/80", children: "Source:" }), " ", v.sourceNote] }))] })] })), v.sop && (_jsxs("div", { className: "mt-2.5 flex gap-2 rounded-lg bg-[var(--wui-primary)]/10 px-3.5 py-2.5 text-[13px] leading-snug text-[var(--wui-primary)]", children: [_jsx(HelpCircle, { className: "mt-0.5 size-4 shrink-0" }), _jsxs("p", { children: [_jsx("span", { className: "font-semibold", children: "From the SOP:" }), " ", v.sop, ' ', v.sopRef && _jsx("span", { className: "font-medium underline underline-offset-2", children: v.sopRef })] })] }))] }));
|
|
26
28
|
}
|
|
27
29
|
function SectionHeader({ title, meta, alert, collapsible, collapsed, onToggle, }) {
|
|
28
30
|
const metaEl = meta ? (_jsx("span", { className: cn('shrink-0 text-[12px] font-medium tabular-nums', alert ? 'text-[var(--wui-status-paused)]' : 'text-[var(--wui-fg-muted)]'), children: meta })) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalReviewDisplay.js","sourceRoot":"","sources":["../../../src/components/execution/ApprovalReviewDisplay.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAkB,MAAM,OAAO,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEnE,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAe5F,MAAM,KAAK,GAAG,CAAC,KAAc,EAAY,EAAE,CACzC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ;IACzC,CAAC,CAAE,KAAkB;IACrB,CAAC,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;AAExD,gFAAgF;AAChF,SAAS,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,EAA4C;IAC/E,OAAO,CACL,gBACE,SAAS,EAAE,EAAE,CACX,0FAA0F,EAC1F,IAAI,KAAK,IAAI;YACX,CAAC,CAAC,wEAAwE;YAC1E,CAAC,CAAC,gGAAgG,CACrG,aAEA,KAAK,SACD,CACR,CAAC;AACJ,CAAC;AAED,SAAS,OAAO,CAAC,EACf,KAAK,EACL,CAAC,EACD,UAAU,GAKX;IACC,OAAO,CACL,eAAK,SAAS,EAAC,qHAAqH,aAClI,eAAK,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"ApprovalReviewDisplay.js","sourceRoot":"","sources":["../../../src/components/execution/ApprovalReviewDisplay.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApprovalsView.d.ts","sourceRoot":"","sources":["../../../src/components/execution/ApprovalsView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ApprovalsView.d.ts","sourceRoot":"","sources":["../../../src/components/execution/ApprovalsView.tsx"],"names":[],"mappings":"AA4IA,MAAM,WAAW,kBAAkB;IACjC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACxC,SAAS,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,aAAa,CAAC,EAAE,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BA+PxF"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { useCallback, useEffect, useRef, useState, useMemo } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
3
4
|
function useResizablePanel(defaultPct = 25, min = 15, max = 50) {
|
|
4
5
|
const [pct, setPct] = useState(defaultPct);
|
|
5
6
|
const containerRef = useRef(null);
|
|
@@ -33,7 +34,7 @@ import { usePauseInteractionState } from './PauseInteractionPanel.js';
|
|
|
33
34
|
import { PauseFormRenderer } from './PauseFormRenderer.js';
|
|
34
35
|
import { cn } from '../shared/cn.js';
|
|
35
36
|
import { MarkdownView } from '../shared/MarkdownView.js';
|
|
36
|
-
import {
|
|
37
|
+
import { SearchField } from '../browser/SearchField.js';
|
|
37
38
|
import {} from '@xyne/workflow-sdk/builder';
|
|
38
39
|
import { useOriginInspector, OriginChipFor, OriginPanel } from './origin/OriginTrace.js';
|
|
39
40
|
import { buildOriginCtx, findPausedStepConfig, getFieldCitations } from './origin/origin-resolver.js';
|
|
@@ -85,9 +86,6 @@ function IconExternalLink({ className }) {
|
|
|
85
86
|
function IconSpinner({ className }) {
|
|
86
87
|
return (_jsx("svg", { className: cn('animate-spin', className), viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.75, children: _jsx("path", { d: "M21 12a9 9 0 1 1-6.219-8.56" }) }));
|
|
87
88
|
}
|
|
88
|
-
function IconSearch({ className }) {
|
|
89
|
-
return (_jsxs("svg", { className: className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("line", { x1: "21", y1: "21", x2: "16.65", y2: "16.65" })] }));
|
|
90
|
-
}
|
|
91
89
|
function IconInbox({ className }) {
|
|
92
90
|
return (_jsxs("svg", { className: className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.5, strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("polyline", { points: "22 12 16 12 14 15 10 15 8 12 2 12" }), _jsx("path", { d: "M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z" })] }));
|
|
93
91
|
}
|
|
@@ -102,7 +100,11 @@ export function ApprovalsView({ onCountChange, onViewRun, className }) {
|
|
|
102
100
|
const [detailLoading, setDetailLoading] = useState(false);
|
|
103
101
|
const [query, setQuery] = useState('');
|
|
104
102
|
const [selectedTags, setSelectedTags] = useState([]);
|
|
105
|
-
|
|
103
|
+
// Default to oldest-first — the longest-waiting approvals are the most urgent.
|
|
104
|
+
const [sortBy, setSortBy] = useState('oldest');
|
|
105
|
+
const [filterOpen, setFilterOpen] = useState(false);
|
|
106
|
+
const [selectedWorkflows, setSelectedWorkflows] = useState([]);
|
|
107
|
+
const [selectedStages, setSelectedStages] = useState([]);
|
|
106
108
|
const load = async () => {
|
|
107
109
|
setLoading(true);
|
|
108
110
|
try {
|
|
@@ -155,6 +157,20 @@ export function ApprovalsView({ onCountChange, onViewRun, className }) {
|
|
|
155
157
|
}, [client, selectedId]);
|
|
156
158
|
// Tags present across pending approvals — drives the tag filter chips.
|
|
157
159
|
const availableTags = [...new Set(summaries.flatMap((s) => s.tags ?? []))].sort();
|
|
160
|
+
// Filter options with per-value counts, derived from the full pending set.
|
|
161
|
+
const { workflowOptions, stageOptions } = useMemo(() => {
|
|
162
|
+
const wf = new Map();
|
|
163
|
+
const st = new Map();
|
|
164
|
+
for (const s of summaries) {
|
|
165
|
+
const n = s.name ?? s.workflowId;
|
|
166
|
+
wf.set(n, (wf.get(n) ?? 0) + 1);
|
|
167
|
+
st.set(s.pausedStepName, (st.get(s.pausedStepName) ?? 0) + 1);
|
|
168
|
+
}
|
|
169
|
+
const toSorted = (m) => [...m.entries()].map(([value, count]) => ({ value, count })).sort((a, b) => a.value.localeCompare(b.value));
|
|
170
|
+
return { workflowOptions: toSorted(wf), stageOptions: toSorted(st) };
|
|
171
|
+
}, [summaries]);
|
|
172
|
+
const activeFilterCount = selectedWorkflows.length + selectedStages.length + selectedTags.length;
|
|
173
|
+
const clearAllFilters = () => { setSelectedWorkflows([]); setSelectedStages([]); setSelectedTags([]); };
|
|
158
174
|
const filtered = summaries.filter((ex) => {
|
|
159
175
|
if (query.trim()) {
|
|
160
176
|
const q = query.toLowerCase();
|
|
@@ -163,6 +179,10 @@ export function ApprovalsView({ onCountChange, onViewRun, className }) {
|
|
|
163
179
|
if (!name.includes(q) && !step.includes(q))
|
|
164
180
|
return false;
|
|
165
181
|
}
|
|
182
|
+
if (selectedWorkflows.length > 0 && !selectedWorkflows.includes(ex.name ?? ex.workflowId))
|
|
183
|
+
return false;
|
|
184
|
+
if (selectedStages.length > 0 && !selectedStages.includes(ex.pausedStepName))
|
|
185
|
+
return false;
|
|
166
186
|
// ANY-match tag filter.
|
|
167
187
|
if (selectedTags.length > 0) {
|
|
168
188
|
const tags = ex.tags ?? [];
|
|
@@ -170,6 +190,10 @@ export function ApprovalsView({ onCountChange, onViewRun, className }) {
|
|
|
170
190
|
return false;
|
|
171
191
|
}
|
|
172
192
|
return true;
|
|
193
|
+
}).sort((a, b) => {
|
|
194
|
+
const at = new Date(a.createdAt).getTime();
|
|
195
|
+
const bt = new Date(b.createdAt).getTime();
|
|
196
|
+
return sortBy === 'oldest' ? at - bt : bt - at;
|
|
173
197
|
});
|
|
174
198
|
if (loading) {
|
|
175
199
|
return (_jsx("div", { className: cn('flex h-full items-center justify-center', className), children: _jsx(IconSpinner, { className: "h-5 w-5 text-[var(--wui-fg-muted)]" }) }));
|
|
@@ -177,13 +201,59 @@ export function ApprovalsView({ onCountChange, onViewRun, className }) {
|
|
|
177
201
|
if (summaries.length === 0) {
|
|
178
202
|
return (_jsxs("div", { className: cn('flex h-full flex-col items-center justify-center gap-2 text-sm text-[var(--wui-fg-muted)]', className), children: [_jsx(IconCheck, { className: "h-9 w-9 opacity-25" }), _jsx("span", { children: "No pending approvals" })] }));
|
|
179
203
|
}
|
|
180
|
-
return (_jsxs("div", { ref: containerRef, className: cn('flex h-full overflow-hidden', className), children: [_jsxs("div", { className: "flex shrink-0 flex-col overflow-hidden bg-
|
|
204
|
+
return (_jsxs("div", { ref: containerRef, className: cn('flex h-full overflow-hidden', className), children: [_jsxs("div", { className: "flex shrink-0 flex-col overflow-hidden border-r border-[var(--wui-border)] bg-[var(--wui-bg-muted)]", style: { width: `${pct}%` }, children: [_jsxs("div", { className: "flex shrink-0 items-center gap-2 border-b border-[var(--wui-border)] px-3", style: { minHeight: '53px' }, children: [_jsx(SearchField, { value: query, onChange: setQuery, className: "flex-1", ariaLabel: "Search approvals", placeholder: "Search approvals\u2026" }), _jsxs("button", { type: "button", onClick: () => { setSortBy((s) => (s === 'oldest' ? 'newest' : 'oldest')); }, title: sortBy === 'oldest' ? 'Oldest waiting first — click for newest' : 'Newest first — click for oldest', "aria-label": "Toggle sort order", className: "flex shrink-0 items-center gap-1 rounded-full border border-[var(--wui-border)] px-2.5 py-1 text-[11px] font-medium text-[var(--wui-fg-muted)] transition hover:bg-[var(--wui-bg-muted)] hover:text-[var(--wui-fg)]", children: [_jsx(IconClock, { className: "h-3 w-3 shrink-0" }), sortBy === 'oldest' ? 'Oldest' : 'Newest'] }), _jsxs("div", { className: "relative shrink-0", children: [_jsxs("button", { type: "button", onClick: () => { setFilterOpen((o) => !o); }, "aria-label": "Filter approvals", title: "Filter", className: cn('relative flex h-7 w-7 items-center justify-center rounded-full border transition', activeFilterCount > 0
|
|
205
|
+
? 'border-[var(--wui-primary)] bg-[color-mix(in_srgb,var(--wui-primary)_12%,transparent)] text-[var(--wui-primary)]'
|
|
206
|
+
: 'border-[var(--wui-border)] text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-muted)] hover:text-[var(--wui-fg)]'), children: [_jsx(IconFilter, { className: "h-3.5 w-3.5" }), activeFilterCount > 0 && (_jsx("span", { className: "absolute -right-1 -top-1 flex h-4 min-w-[16px] items-center justify-center rounded-full bg-[var(--wui-primary)] px-1 text-[9px] font-bold text-[var(--wui-primary-fg)]", children: activeFilterCount }))] }), filterOpen && (_jsx(FilterModal, { activeCount: activeFilterCount, onClear: clearAllFilters, onClose: () => { setFilterOpen(false); }, sections: [
|
|
207
|
+
{
|
|
208
|
+
key: 'workflow',
|
|
209
|
+
label: 'Workflow',
|
|
210
|
+
options: workflowOptions,
|
|
211
|
+
selected: selectedWorkflows,
|
|
212
|
+
onToggle: (v) => { setSelectedWorkflows((p) => (p.includes(v) ? p.filter((x) => x !== v) : [...p, v])); },
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
key: 'stage',
|
|
216
|
+
label: 'Waiting stage',
|
|
217
|
+
options: stageOptions,
|
|
218
|
+
selected: selectedStages,
|
|
219
|
+
onToggle: (v) => { setSelectedStages((p) => (p.includes(v) ? p.filter((x) => x !== v) : [...p, v])); },
|
|
220
|
+
},
|
|
221
|
+
...(availableTags.length > 0
|
|
222
|
+
? [{
|
|
223
|
+
key: 'team',
|
|
224
|
+
label: 'Team',
|
|
225
|
+
options: availableTags.map((t) => ({ value: t, count: summaries.filter((s) => (s.tags ?? []).includes(t)).length })),
|
|
226
|
+
selected: selectedTags,
|
|
227
|
+
onToggle: (v) => { setSelectedTags((p) => (p.includes(v) ? p.filter((x) => x !== v) : [...p, v])); },
|
|
228
|
+
}]
|
|
229
|
+
: []),
|
|
230
|
+
] }))] })] }), _jsx("div", { className: "flex-1 overflow-y-auto", children: filtered.length === 0 ? (_jsx("div", { className: "flex h-20 items-center justify-center px-3 text-center text-[13px] text-[var(--wui-fg-muted)]", children: "No approvals match your filters" })) : (_jsx("div", { className: "divide-y divide-border border-b border-border", children: filtered.map((ex) => (_jsx(ApprovalRow, { summary: ex, selected: selectedId === ex.id, onClick: () => void handleSelectRow(ex) }, ex.id))) })) })] }), _jsx("div", { onMouseDown: onMouseDown, className: "group relative flex w-1 shrink-0 cursor-col-resize items-center justify-center bg-border hover:bg-brand/40 transition-colors", children: _jsx("div", { className: "h-8 w-0.5 rounded-full bg-border group-hover:bg-brand transition-colors" }) }), _jsx("div", { className: "flex flex-1 flex-col overflow-hidden bg-background", children: detailLoading ? (_jsx("div", { className: "flex h-full items-center justify-center", children: _jsx(IconSpinner, { className: "h-5 w-5 text-[var(--wui-fg-muted)]" }) })) : detail ? (_jsx(ApprovalPanel, { execution: detail, onClose: () => { setSelectedId(null); setDetail(null); }, onResumed: handleResumed, ...(onViewRun ? { onViewRun } : {}), client: client })) : (_jsxs("div", { className: "flex h-full flex-col items-center justify-center gap-2 text-[13px] text-[var(--wui-fg-muted)]", children: [_jsx(IconInbox, { className: "h-8 w-8 opacity-25" }), _jsx("span", { children: "Select a workflow to review" })] })) })] }));
|
|
181
231
|
}
|
|
182
232
|
// ─── list row ─────────────────────────────────────────────────────────────────
|
|
233
|
+
function IconFilter({ className }) {
|
|
234
|
+
return (_jsx("svg", { className: className, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 1.75, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polygon", { points: "22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3" }) }));
|
|
235
|
+
}
|
|
236
|
+
const FILTER_OPTION_CAP = 50;
|
|
237
|
+
function FilterModal({ sections, activeCount, onClear, onClose }) {
|
|
238
|
+
const [active, setActive] = useState(sections[0]?.key ?? '');
|
|
239
|
+
const [query, setQuery] = useState('');
|
|
240
|
+
const section = sections.find((s) => s.key === active) ?? sections[0];
|
|
241
|
+
if (typeof document === 'undefined' || !section)
|
|
242
|
+
return null;
|
|
243
|
+
const q = query.trim().toLowerCase();
|
|
244
|
+
const added = section.options.filter((o) => section.selected.includes(o.value));
|
|
245
|
+
const pool = section.options.filter((o) => !section.selected.includes(o.value));
|
|
246
|
+
const results = (q ? pool.filter((o) => o.value.toLowerCase().includes(q)) : pool)
|
|
247
|
+
.sort((a, b) => a.value.localeCompare(b.value));
|
|
248
|
+
const shown = results.slice(0, FILTER_OPTION_CAP);
|
|
249
|
+
return createPortal(_jsxs("div", { className: "fixed inset-0 z-50 flex items-center justify-center px-4", role: "presentation", onMouseDown: onClose, children: [_jsx("div", { "aria-hidden": true, className: "absolute inset-0 bg-black/50 backdrop-blur-sm" }), _jsxs("div", { role: "dialog", "aria-modal": "true", "aria-label": "Filters", className: "relative z-10 flex h-[72vh] max-h-[660px] w-full max-w-2xl flex-col overflow-hidden rounded-2xl border border-[var(--wui-border)] bg-[var(--wui-bg)] shadow-2xl", onMouseDown: (e) => { e.stopPropagation(); }, children: [_jsxs("div", { className: "flex shrink-0 items-center justify-between border-b border-[var(--wui-border)] px-5 py-3.5", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("h2", { className: "text-[15px] font-semibold text-[var(--wui-fg)]", children: "Filters" }), activeCount > 0 && (_jsx("span", { className: "rounded-full bg-[var(--wui-primary)] px-2 py-0.5 text-[11px] font-bold text-[var(--wui-primary-fg)]", children: activeCount }))] }), _jsx("button", { type: "button", onClick: onClose, "aria-label": "Close", className: "grid h-7 w-7 place-items-center rounded-md text-[var(--wui-fg-muted)] transition hover:bg-[var(--wui-bg-muted)] hover:text-[var(--wui-fg)]", children: _jsx(IconClose, { className: "h-4 w-4" }) })] }), _jsxs("div", { className: "flex min-h-0 flex-1", children: [_jsx("div", { className: "w-44 shrink-0 space-y-0.5 overflow-y-auto border-r border-[var(--wui-border)] bg-[var(--wui-bg-muted)] p-2", children: sections.map((s) => (_jsxs("button", { type: "button", onClick: () => { setActive(s.key); setQuery(''); }, className: cn('flex w-full items-center justify-between gap-2 rounded-lg px-3 py-2 text-left text-[13px] transition', s.key === active
|
|
250
|
+
? 'bg-[var(--wui-bg)] font-semibold text-[var(--wui-fg)] shadow-sm'
|
|
251
|
+
: 'text-[var(--wui-fg-muted)] hover:bg-[color-mix(in_srgb,var(--wui-fg)_5%,transparent)] hover:text-[var(--wui-fg)]'), children: [_jsx("span", { className: "truncate", children: s.label }), s.selected.length > 0 && (_jsx("span", { className: "grid h-[18px] min-w-[18px] shrink-0 place-items-center rounded-full bg-[var(--wui-primary)] px-1 text-[10px] font-bold text-[var(--wui-primary-fg)]", children: s.selected.length }))] }, s.key))) }), _jsxs("div", { className: "flex min-w-0 flex-1 flex-col", children: [_jsx("div", { className: "shrink-0 border-b border-[var(--wui-border)] p-3", children: _jsx("input", { type: "text", autoFocus: true, value: query, onChange: (e) => { setQuery(e.target.value); }, placeholder: `Search ${section.label.toLowerCase()}…`, className: "w-full rounded-lg border border-[var(--wui-border)] bg-[var(--wui-bg-muted)] px-3 py-2 text-[13px] text-[var(--wui-fg)] outline-none transition placeholder:text-[var(--wui-fg-muted)] focus:border-[var(--wui-primary)]" }) }), _jsxs("div", { className: "min-h-0 flex-1 overflow-y-auto px-3 py-2.5", children: [added.length > 0 && (_jsxs("div", { className: "mb-3", children: [_jsxs("div", { className: "mb-1 px-1 text-[10px] font-semibold uppercase tracking-[0.08em] text-[var(--wui-fg-muted)]", children: ["Added \u00B7 ", added.length] }), _jsx("div", { className: "space-y-0.5", children: added.map((opt) => (_jsxs("button", { type: "button", onClick: () => { section.onToggle(opt.value); }, className: "group flex w-full items-center gap-2 rounded-md bg-[color-mix(in_srgb,var(--wui-primary)_10%,transparent)] px-2 py-1.5 text-left transition hover:bg-[color-mix(in_srgb,var(--wui-primary)_16%,transparent)]", children: [_jsx(IconCheck, { className: "h-3.5 w-3.5 shrink-0 text-[var(--wui-primary)]" }), _jsx("span", { className: "min-w-0 flex-1 truncate text-[12.5px] text-[var(--wui-fg)]", title: opt.value, children: opt.value }), _jsx(IconX, { className: "h-3 w-3 shrink-0 text-[var(--wui-fg-muted)] group-hover:text-[var(--wui-fg)]" })] }, opt.value))) })] })), _jsx("div", { className: "mb-1 px-1 text-[10px] font-semibold uppercase tracking-[0.08em] text-[var(--wui-fg-muted)]", children: q ? 'Results' : 'Suggestions' }), shown.length === 0 ? (_jsx("p", { className: "px-1 py-2 text-[12.5px] text-[var(--wui-fg-muted)]", children: q ? 'No matches' : 'Nothing to add' })) : (_jsxs("div", { className: "space-y-0.5", children: [shown.map((opt) => (_jsxs("button", { type: "button", onClick: () => { section.onToggle(opt.value); }, className: "flex w-full items-center gap-2 rounded-md px-2 py-1.5 text-left transition hover:bg-[var(--wui-bg-muted)]", children: [_jsx("span", { className: "h-4 w-4 shrink-0 rounded-[4px] border border-[var(--wui-border-strong)]" }), _jsx("span", { className: "min-w-0 flex-1 truncate text-[12.5px] text-[var(--wui-fg)]", title: opt.value, children: opt.value }), _jsx("span", { className: "shrink-0 text-[11px] tabular-nums text-[var(--wui-fg-muted)]", children: opt.count })] }, opt.value))), results.length > FILTER_OPTION_CAP && (_jsxs("p", { className: "px-1 py-1.5 text-[11px] text-[var(--wui-fg-muted)]", children: [results.length - FILTER_OPTION_CAP, " more \u2014 refine your search"] }))] }))] })] })] }), _jsxs("div", { className: "flex shrink-0 items-center justify-between border-t border-[var(--wui-border)] px-5 py-3", children: [_jsx("button", { type: "button", onClick: onClear, disabled: activeCount === 0, className: "text-[13px] font-medium text-[var(--wui-fg-muted)] transition hover:text-[var(--wui-fg)] disabled:opacity-40", children: "Clear all" }), _jsx("button", { type: "button", onClick: onClose, className: "rounded-lg bg-[var(--wui-primary)] px-5 py-1.5 text-[13px] font-semibold text-[var(--wui-primary-fg)] transition hover:bg-[var(--wui-primary-hover)]", children: "Done" })] })] })] }), document.querySelector('[data-workflow-ui]') ?? document.body);
|
|
252
|
+
}
|
|
183
253
|
function ApprovalRow({ summary, selected, onClick }) {
|
|
184
|
-
return (
|
|
185
|
-
? 'bg-
|
|
186
|
-
: '
|
|
254
|
+
return (_jsx("button", { type: "button", onClick: onClick, className: cn('flex w-full items-center gap-3 px-4 py-3 text-left transition-colors duration-100', 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-[var(--wui-status-paused)]', selected
|
|
255
|
+
? 'bg-[color-mix(in_srgb,var(--wui-primary)_12%,transparent)] shadow-[inset_3px_0_0_0_var(--wui-primary)]'
|
|
256
|
+
: 'hover:bg-[color-mix(in_srgb,var(--wui-fg)_5%,transparent)]'), children: _jsxs("div", { className: "flex min-w-0 flex-1 flex-col gap-0.5", children: [_jsx("p", { className: "truncate text-[13px] font-semibold text-[var(--wui-fg)]", children: summary.name ?? summary.workflowId }), _jsxs("div", { className: "flex min-w-0 items-center gap-2", children: [summary.pausedStepName && (_jsxs("span", { className: "min-w-0 truncate text-[11px] text-[var(--wui-fg-muted)]", title: summary.pausedStepName, children: ["Waiting at: ", _jsx("span", { className: "font-medium text-[var(--wui-fg)]", children: summary.pausedStepName })] })), _jsxs("span", { className: "ml-auto flex shrink-0 items-center gap-1 text-[11px] text-[var(--wui-fg-muted)]", children: [_jsx(IconClock, { className: "h-3 w-3 shrink-0" }), timeAgo(summary.createdAt)] })] })] }) }));
|
|
187
257
|
}
|
|
188
258
|
// ─── detail panel ─────────────────────────────────────────────────────────────
|
|
189
259
|
function ApprovalPanel({ execution, onClose, onResumed, onViewRun, client, }) {
|
|
@@ -197,18 +267,18 @@ function ApprovalPanel({ execution, onClose, onResumed, onViewRun, client, }) {
|
|
|
197
267
|
const [aiOpen, setAiOpen] = useState(false);
|
|
198
268
|
const aiClient = useMemo(() => new AiBuilderClient({ baseUrl: client.baseUrl }), [client.baseUrl]);
|
|
199
269
|
return (_jsxs("div", { className: "flex h-full", children: [_jsxs("div", { className: "flex h-full min-w-0 flex-1 flex-col", children: [_jsxs("div", { className: "flex shrink-0 items-center justify-between gap-3 border-b border-border px-5", style: { minHeight: '53px' }, children: [_jsx("p", { className: "truncate text-[15px] font-semibold text-[var(--wui-fg)]", title: execution.name ?? execution.workflowId, children: execution.name ?? execution.workflowId }), _jsxs("div", { className: "flex shrink-0 items-center gap-2", children: [onViewRun && (_jsxs("button", { type: "button", onClick: () => { onClose(); onViewRun(execution.id, execution.name ?? execution.workflowId); }, className: "flex items-center gap-1.5 rounded-full border border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] px-3 py-1 text-[11.5px] font-medium text-[var(--wui-fg-muted)] transition hover:bg-[var(--wui-border)] hover:text-[var(--wui-fg)]", children: [_jsx(IconExternalLink, { className: "h-3 w-3" }), "View run"] })), _jsxs("button", { type: "button", onClick: () => setAiOpen((v) => !v), className: cn('flex items-center gap-1.5 rounded-full border px-3 py-1 text-[11.5px] font-medium transition', aiOpen
|
|
200
|
-
? 'border-
|
|
201
|
-
: 'border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] text-[var(--wui-fg-muted)] hover:bg-[var(--wui-border)] hover:text-[var(--wui-fg)]'), children: [_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) }), "Ask AI"] }), _jsx("button", { type: "button", onClick: onClose, className: "grid h-7 w-7 place-items-center rounded-[var(--wui-radius-sm)] text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-subtle)] transition-colors", children: _jsx(IconClose, { className: "h-4 w-4" }) })] })] }), _jsx("div", { className: "flex flex-1 overflow-hidden min-h-0", children: pauseState ? (_jsx(PausePanel, { executionId: execution.id, execution: execution, pauseState: pauseState, onResumed: onResumed, rawConfig: rawConfig, citations: citations, onInspect: inspector.open, aiOpen: aiOpen, aiClient: aiClient, onAiClose: () => setAiOpen(false) })) : (_jsx(FallbackPanel, { executionId: execution.id, onResumed: onResumed, client: client })) })] }), _jsx(OriginPanel, { inspected: inspector.inspected, ctx: originCtx, onClose: inspector.close, width: originPanelWidth, onWidthChange: setOriginPanelWidth })] }));
|
|
270
|
+
? 'border-[var(--wui-primary)] bg-[var(--wui-primary-light)] text-[var(--wui-primary)] hover:bg-[color-mix(in_srgb,var(--wui-primary)_18%,transparent)]'
|
|
271
|
+
: 'border-[var(--wui-border)] bg-[var(--wui-bg-subtle)] text-[var(--wui-fg-muted)] hover:bg-[var(--wui-border)] hover:text-[var(--wui-fg)]'), children: [_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) }), "Ask AI"] }), _jsx("button", { type: "button", onClick: onClose, className: "grid h-7 w-7 place-items-center rounded-[var(--wui-radius-sm)] text-[var(--wui-fg-muted)] hover:bg-[var(--wui-bg-subtle)] transition-colors", children: _jsx(IconClose, { className: "h-4 w-4" }) })] })] }), _jsx("div", { className: "flex flex-1 overflow-hidden min-h-0", children: pauseState ? (_jsx(PausePanel, { executionId: execution.id, execution: execution, pauseState: pauseState, onResumed: onResumed, rawConfig: rawConfig, citations: citations, onInspect: inspector.open, activeOriginLabel: inspector.inspected?.label, aiOpen: aiOpen, aiClient: aiClient, onAiClose: () => setAiOpen(false) })) : (_jsx(FallbackPanel, { executionId: execution.id, onResumed: onResumed, client: client })) })] }), _jsx(OriginPanel, { inspected: inspector.inspected, ctx: originCtx, onClose: inspector.close, width: originPanelWidth, onWidthChange: setOriginPanelWidth })] }));
|
|
202
272
|
}
|
|
203
273
|
// Content + actions split for pauseState case — scrollable content, sticky footer actions.
|
|
204
|
-
function PausePanel({ executionId, execution, pauseState, onResumed, rawConfig, citations, onInspect, aiOpen, aiClient, onAiClose, }) {
|
|
274
|
+
function PausePanel({ executionId, execution, pauseState, onResumed, rawConfig, citations, onInspect, activeOriginLabel, aiOpen, aiClient, onAiClose, }) {
|
|
205
275
|
const { actions, isSubmitting, error, formValues, setFormValues, handleAction } = usePauseInteractionState(executionId, pauseState, onResumed);
|
|
206
276
|
const rawDisplayValue = (i) => rawConfig?.['display']?.[i]?.value;
|
|
207
277
|
const rawFormField = (i) => rawConfig?.['form']?.fields?.[i];
|
|
208
278
|
const fieldCitations = (fieldPath) => getFieldCitations(rawConfig, citations, fieldPath);
|
|
209
279
|
const formCount = pauseState.form?.fields.length ?? 0;
|
|
210
280
|
const hasForm = formCount > 0;
|
|
211
|
-
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden min-h-0", style: { width: aiOpen ? '50%' : '100%', transition: 'width 280ms cubic-bezier(0.4,0,0.2,1)' }, children: [_jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-5 space-y-4", children: [pauseState.reason && (_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx(MarkdownView, { className: "text-[13.5px] font-medium text-[var(--wui-fg)]", children: pauseState.reason }), _jsx(OriginChipFor, { raw: rawConfig?.['reason'], citations: fieldCitations('reason'), label: "Reason", onInspect: onInspect })] })), pauseState.prompt && (_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx(MarkdownView, { className: "text-[13px] text-[var(--wui-fg-muted)]", children: pauseState.prompt }), _jsx(OriginChipFor, { raw: rawConfig?.['prompt'], citations: fieldCitations('prompt'), label: "Prompt", onInspect: onInspect })] })), pauseState.display && pauseState.display.length > 0 && (_jsx(ReviewDisplay, { rows: pauseState.display, renderOriginChip: (i) => (_jsx(OriginChipFor, { raw: rawDisplayValue(i), citations: fieldCitations(`display.${String(i)}`), label: pauseState.display?.[i]?.label ?? '', onInspect: onInspect })) })), pauseState.form && (_jsx(PauseFormRenderer, { form: pauseState.form, values: formValues, onChange: setFormValues, disabled: isSubmitting, renderFieldChip: (field, i) => (_jsx(OriginChipFor, { raw: rawFormField(i), citations: fieldCitations(`form.fields.${String(i)}`), label: field.label, onInspect: onInspect })) })), error && (_jsx("p", { className: "text-[12px] text-[var(--wui-status-failed)]", children: error.message }))] }), _jsx("div", { className: "flex shrink-0 items-center justify-end gap-2 border-t border-[var(--wui-border)] px-5 py-3", children: actions.map((action) => (_jsx(PanelActionButton, { action: action, onClick: () => handleAction(action), disabled: isSubmitting }, action.key))) })] }), _jsx(PauseAIChat, { aiOpen: aiOpen, aiClient: aiClient, execution: execution, onClose: onAiClose, formValues: formValues, setFormValues: setFormValues, hasForm: hasForm })] }));
|
|
281
|
+
return (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex min-w-0 flex-1 flex-col overflow-hidden min-h-0", style: { width: aiOpen ? '50%' : '100%', transition: 'width 280ms cubic-bezier(0.4,0,0.2,1)' }, children: [_jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-5 space-y-4", children: [pauseState.reason && (_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx(MarkdownView, { className: "min-w-0 flex-1 text-[13.5px] font-medium text-[var(--wui-fg)]", children: pauseState.reason }), _jsx(OriginChipFor, { raw: rawConfig?.['reason'], citations: fieldCitations('reason'), label: "Reason", onInspect: onInspect, active: activeOriginLabel === 'Reason' })] })), pauseState.prompt && (_jsxs("div", { className: "flex items-start justify-between gap-2", children: [_jsx(MarkdownView, { className: "min-w-0 flex-1 text-[13px] text-[var(--wui-fg-muted)]", children: pauseState.prompt }), _jsx(OriginChipFor, { raw: rawConfig?.['prompt'], citations: fieldCitations('prompt'), label: "Prompt", onInspect: onInspect, active: activeOriginLabel === 'Prompt' })] })), pauseState.display && pauseState.display.length > 0 && (_jsx(ReviewDisplay, { rows: pauseState.display, renderOriginChip: (i) => (_jsx(OriginChipFor, { raw: rawDisplayValue(i), citations: fieldCitations(`display.${String(i)}`), label: pauseState.display?.[i]?.label ?? '', onInspect: onInspect, active: activeOriginLabel === (pauseState.display?.[i]?.label ?? '') })) })), pauseState.form && (_jsx(PauseFormRenderer, { form: pauseState.form, values: formValues, onChange: setFormValues, disabled: isSubmitting, renderFieldChip: (field, i) => (_jsx(OriginChipFor, { raw: rawFormField(i), citations: fieldCitations(`form.fields.${String(i)}`), label: field.label, onInspect: onInspect, active: activeOriginLabel === field.label })) })), error && (_jsx("p", { className: "text-[12px] text-[var(--wui-status-failed)]", children: error.message }))] }), _jsx("div", { className: "flex shrink-0 items-center justify-end gap-2 border-t border-[var(--wui-border)] px-5 py-3", children: actions.map((action) => (_jsx(PanelActionButton, { action: action, onClick: () => handleAction(action), disabled: isSubmitting }, action.key))) })] }), _jsx(PauseAIChat, { aiOpen: aiOpen, aiClient: aiClient, execution: execution, onClose: onAiClose, formValues: formValues, setFormValues: setFormValues, hasForm: hasForm })] }));
|
|
212
282
|
}
|
|
213
283
|
/**
|
|
214
284
|
* The approval Ask AI panel — isolates the chat (and its high-frequency
|
|
@@ -225,9 +295,9 @@ function PauseAIChat({ aiOpen, aiClient, execution, onClose, formValues, setForm
|
|
|
225
295
|
setDraft('');
|
|
226
296
|
await send(text, formValues);
|
|
227
297
|
}, [draft, isLoading, send, formValues]);
|
|
228
|
-
const formFillBanner = pendingFormFill ? (_jsxs("div", { className: "shrink-0 border-b border-
|
|
229
|
-
? _jsx("span", { className: "italic text-
|
|
230
|
-
: String(value) })] }, key))) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => { setFormValues({ ...formValues, ...pendingFormFill }); clearFormFill(); }, className: "flex-1 rounded-lg bg-
|
|
298
|
+
const formFillBanner = pendingFormFill ? (_jsxs("div", { className: "shrink-0 border-b border-[var(--wui-status-completed)] bg-[color-mix(in_srgb,var(--wui-status-completed)_12%,transparent)] px-4 py-3", children: [_jsx("p", { className: "mb-2 text-[12px] font-medium text-[var(--wui-status-completed)]", children: "AI suggested form values" }), _jsx("div", { className: "mb-2 divide-y divide-[color-mix(in_srgb,var(--wui-status-completed)_20%,transparent)] rounded-lg border border-[var(--wui-status-completed)] bg-[var(--wui-surface)] overflow-hidden max-h-32 overflow-y-auto", children: Object.entries(pendingFormFill).map(([key, value]) => (_jsxs("div", { className: "flex items-center gap-2 px-3 py-1.5", children: [_jsx("span", { className: "shrink-0 text-[11px] font-medium text-[var(--wui-status-completed)] min-w-0 truncate", style: { maxWidth: '45%' }, title: key, children: key.replace(/_/g, ' ') }), _jsx("span", { className: "ml-auto text-[11px] text-[var(--wui-status-completed)] font-mono truncate", title: String(value ?? ''), children: value === '' || value === null || value === undefined
|
|
299
|
+
? _jsx("span", { className: "italic text-[var(--wui-status-completed)]", children: "empty" })
|
|
300
|
+
: String(value) })] }, key))) }), _jsxs("div", { className: "flex gap-2", children: [_jsx("button", { type: "button", onClick: () => { setFormValues({ ...formValues, ...pendingFormFill }); clearFormFill(); }, className: "flex-1 rounded-lg bg-[var(--wui-status-completed)] py-1.5 text-[12px] font-semibold text-[var(--wui-primary-fg)] transition hover:brightness-95", children: "Apply suggestions" }), _jsx("button", { type: "button", onClick: clearFormFill, className: "rounded-lg border border-[var(--wui-status-completed)] px-3 py-1.5 text-[12px] text-[var(--wui-status-completed)] transition hover:bg-[color-mix(in_srgb,var(--wui-status-completed)_18%,transparent)]", children: "Dismiss" })] })] })) : null;
|
|
231
301
|
return (_jsx(SharedChatPanel, { isOpen: aiOpen, messages: messages, isLoading: isLoading, streaming: streaming, error: aiError, draft: draft, onDraftChange: setDraft, onSend: handleSend, onStop: stop, onReset: reset, onClose: onClose, suggestions: [
|
|
232
302
|
'Where did this data come from?',
|
|
233
303
|
...(hasForm ? ['Can you fill in the form for me?'] : []),
|
|
@@ -268,6 +338,10 @@ function FallbackPanel({ executionId, onResumed, client, }) {
|
|
|
268
338
|
}
|
|
269
339
|
function PanelActionButton({ action, onClick, disabled }) {
|
|
270
340
|
const style = action.style ?? 'default';
|
|
271
|
-
|
|
341
|
+
// Approve / Reject get semantic colours (green / red) regardless of the
|
|
342
|
+
// configured style; other actions fall back to the generic style palette.
|
|
343
|
+
const isApprove = action.key === 'approve';
|
|
344
|
+
const isReject = action.key === 'reject';
|
|
345
|
+
return (_jsx("button", { type: "button", onClick: onClick, disabled: disabled, className: cn('inline-flex items-center justify-center gap-1.5 rounded-[var(--wui-radius-sm)] px-4 py-1.5 text-[12.5px] font-semibold transition-colors', 'disabled:cursor-not-allowed disabled:opacity-50', isApprove && 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] hover:bg-[var(--wui-primary-hover)]', isReject && 'border border-[var(--wui-status-failed)] bg-[color-mix(in_srgb,var(--wui-status-failed)_10%,transparent)] text-[var(--wui-status-failed)] hover:bg-[color-mix(in_srgb,var(--wui-status-failed)_18%,transparent)]', !isApprove && !isReject && style === 'primary' && 'bg-[var(--wui-primary)] text-[var(--wui-primary-fg)] hover:bg-[var(--wui-primary-hover)]', !isApprove && !isReject && style === 'danger' && 'border border-[var(--wui-status-failed)] text-[var(--wui-status-failed)] hover:bg-[color-mix(in_srgb,var(--wui-status-failed)_10%,transparent)]', !isApprove && !isReject && style === 'default' && 'border border-[var(--wui-border)] text-[var(--wui-fg)] hover:bg-[var(--wui-bg-subtle)]'), children: action.label }));
|
|
272
346
|
}
|
|
273
347
|
//# sourceMappingURL=ApprovalsView.js.map
|