@xyne/workflow-ui 1.3.14 → 1.3.16
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/browser/EntryGrid.js +2 -2
- package/dist/components/browser/EntryGrid.js.map +1 -1
- package/dist/components/browser/EntryList.js +2 -2
- package/dist/components/browser/EntryList.js.map +1 -1
- package/dist/components/browser/utils.d.ts +4 -0
- package/dist/components/browser/utils.d.ts.map +1 -1
- package/dist/components/browser/utils.js +10 -0
- package/dist/components/browser/utils.js.map +1 -1
- package/dist/components/builder/v3/BuilderToolbar.d.ts +5 -1
- package/dist/components/builder/v3/BuilderToolbar.d.ts.map +1 -1
- package/dist/components/builder/v3/BuilderToolbar.js +4 -2
- package/dist/components/builder/v3/BuilderToolbar.js.map +1 -1
- package/dist/components/builder/v3/SidePanel.d.ts +7 -2
- package/dist/components/builder/v3/SidePanel.d.ts.map +1 -1
- package/dist/components/builder/v3/SidePanel.js +4 -3
- package/dist/components/builder/v3/SidePanel.js.map +1 -1
- package/dist/components/builder/v3/VariablesPanel.d.ts +16 -0
- package/dist/components/builder/v3/VariablesPanel.d.ts.map +1 -0
- package/dist/components/builder/v3/VariablesPanel.js +72 -0
- package/dist/components/builder/v3/VariablesPanel.js.map +1 -0
- package/dist/components/builder/v3/WorkflowBuilderV3.d.ts.map +1 -1
- package/dist/components/builder/v3/WorkflowBuilderV3.js +5 -5
- package/dist/components/builder/v3/WorkflowBuilderV3.js.map +1 -1
- package/dist/components/runs/RunsTable.js +1 -1
- 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 +7 -36
- package/dist/components/runs/RunsView.js.map +1 -1
- package/dist/components/workflows/WorkflowBrowser.js +1 -1
- package/dist/components/workflows/WorkflowBrowser.js.map +1 -1
- package/dist/hooks/use-variable-picker.d.ts.map +1 -1
- package/dist/hooks/use-variable-picker.js +4 -0
- package/dist/hooks/use-variable-picker.js.map +1 -1
- package/dist/hooks/use-workflow-builder.d.ts +4 -1
- package/dist/hooks/use-workflow-builder.d.ts.map +1 -1
- package/dist/hooks/use-workflow-builder.js +18 -0
- package/dist/hooks/use-workflow-builder.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
|
@@ -4,7 +4,7 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
6
|
import { ROW_ESTIMATE_GRID_PX } from './constants.js';
|
|
7
|
-
import { defaultLeading, isEntryDisabled } from './utils.js';
|
|
7
|
+
import { asText, defaultLeading, isEntryDisabled } from './utils.js';
|
|
8
8
|
import { entryCan } from './permissions.js';
|
|
9
9
|
function colsFor(width) {
|
|
10
10
|
if (width >= 1280)
|
|
@@ -87,7 +87,7 @@ export function EntryGrid({ entries, onOpen, renderLeading = defaultLeading, dis
|
|
|
87
87
|
ev.stopPropagation();
|
|
88
88
|
cancelEdit();
|
|
89
89
|
}
|
|
90
|
-
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: e.name })) }), e.caption ? (_jsx("span", { className: "truncate text-[11.5px] text-muted-foreground", children: e.caption })) : null, e.kind === 'file' && e.tags && e.tags.length > 0 ? (_jsx("span", { className: "mt-1 flex flex-wrap items-center gap-1", children: e.tags.slice(0, 4).map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) })) : null] })] }), onToggleSelect && (_jsx("button", { type: "button", "aria-label": selectedIds?.has(e.id) ? `Deselect ${e.name}` : `Select ${e.name}`, onClick: (ev) => { ev.stopPropagation(); onToggleSelect(e, entryIndex, ev.shiftKey); }, className: cn('absolute left-2 top-2 flex h-[18px] w-[18px] items-center justify-center rounded-[5px] border transition-colors', selectedIds?.has(e.id)
|
|
90
|
+
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: asText(e.name, e.id) })) }), e.caption ? (_jsx("span", { className: "truncate text-[11.5px] text-muted-foreground", children: asText(e.caption) })) : null, e.kind === 'file' && e.tags && e.tags.length > 0 ? (_jsx("span", { className: "mt-1 flex flex-wrap items-center gap-1", children: e.tags.slice(0, 4).map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) })) : null] })] }), onToggleSelect && (_jsx("button", { type: "button", "aria-label": selectedIds?.has(e.id) ? `Deselect ${e.name}` : `Select ${e.name}`, onClick: (ev) => { ev.stopPropagation(); onToggleSelect(e, entryIndex, ev.shiftKey); }, className: cn('absolute left-2 top-2 flex h-[18px] w-[18px] items-center justify-center rounded-[5px] border transition-colors', selectedIds?.has(e.id)
|
|
91
91
|
? 'border-[var(--wui-primary)] bg-[var(--wui-primary)] text-[var(--wui-primary-fg)]'
|
|
92
92
|
: 'border-[var(--wui-border-strong)] bg-[var(--wui-surface)]/90 backdrop-blur-sm group-hover:border-[var(--wui-fg-muted)]'), children: selectedIds?.has(e.id) && (_jsx("svg", { viewBox: "0 0 24 24", className: "h-3 w-3", fill: "none", stroke: "currentColor", strokeWidth: 2.5, strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) })), !isEditing && (onOpenEditor ?? onEditTags ?? onRename ?? onDelete ?? onMove ?? onShare) ? (_jsxs("div", { className: "absolute right-2 top-2 flex gap-1 opacity-0 transition group-hover:opacity-100 focus-within:opacity-100", children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onShare && entryCan(e, 'share') ? (_jsx("button", { type: "button", "aria-label": `Share ${e.name}`, title: "Share", onClick: (ev) => { ev.stopPropagation(); onShare(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Share2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete && entryCan(e, 'delete') ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md bg-background/80 text-muted-foreground shadow-sm ring-1 ring-border backdrop-blur-sm transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }, `${e.kind}-${e.id}`));
|
|
93
93
|
}) }, virtualRow.key));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryGrid.js","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryGrid.js","sourceRoot":"","sources":["../../../src/components/browser/EntryGrid.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACrE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAuB5C,SAAS,OAAO,CAAC,KAAa;IAC5B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,CAAC,CAAC;IAC5B,IAAI,KAAK,IAAI,GAAG;QAAE,OAAO,CAAC,CAAC;IAC3B,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,iBAAiB;IACxB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAS,GAAG,EAAE,CAC5C,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAC/D,CAAC;IACF,SAAS,CAAC,GAAiB,EAAE;QAC3B,MAAM,MAAM,GAAG,GAAS,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,EAAE,CAAC;QACT,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC1C,OAAO,GAAS,EAAE,GAAG,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,CAAC,EAAE,EAAE,CAAC,CAAC;IACP,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,EACxB,OAAO,EACP,MAAM,EACN,aAAa,GAAG,cAAc,EAC9B,YAAY,GAAG,KAAK,EACpB,cAAc,GAAG,KAAK,EACtB,QAAQ,EACR,QAAQ,EACR,MAAM,EACN,YAAY,EACZ,UAAU,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,eAAe,EACf,UAAU,GACJ;IACN,MAAM,IAAI,GAAG,iBAAiB,EAAE,CAAC;IACjC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;IAElD,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC,CAAC;IAE7D,MAAM,SAAS,GAAG,CAAC,CAAe,EAAQ,EAAE;QAC1C,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACnB,eAAe,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,GAAS,EAAE;QAC5B,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,EAAE,CAAC,CAAC;IACtB,CAAC,CAAC;IACF,MAAM,UAAU,GAAG,CAAC,CAAe,EAAQ,EAAE;QAC3C,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,EAAE,CAAC;QACjC,YAAY,CAAC,IAAI,CAAC,CAAC;QACnB,eAAe,CAAC,EAAE,CAAC,CAAC;QACpB,IAAI,IAAI,IAAI,IAAI,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YAC5B,QAAQ,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QACtB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,KAAK,EAAE,QAAQ;QACf,gBAAgB,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,IAAI,eAAe,CAAC,OAAO;QAC5E,YAAY,EAAE,GAAG,EAAE,CAAC,oBAAoB;QACxC,QAAQ,EAAE,CAAC;QACX,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE;KACvD,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IACnD,MAAM,YAAY,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACzG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,IAAI,QAAQ,GAAG,CAAC,IAAI,YAAY,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YAC/D,UAAU,EAAE,CAAC;QACf,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAEzC,OAAO,CACL,cAAK,GAAG,EAAE,iBAAiB,EAAE,SAAS,EAAC,2CAA2C,YAChF,cACE,IAAI,EAAC,MAAM,EACX,SAAS,EAAC,iBAAiB,EAC3B,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC,YAAY,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,YAEnF,YAAY,CAAC,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;gBAC/B,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK,GAAG,IAAI,CAAC;gBACtC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC,CAAC;gBACtD,OAAO,CACL,4BAEc,UAAU,CAAC,KAAK,EAC5B,GAAG,EAAE,WAAW,CAAC,cAAc,EAC/B,SAAS,EAAC,yCAAyC,EACnD,KAAK,EAAE;wBACL,SAAS,EAAE,cAAc,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,KAAK;wBACzF,mBAAmB,EAAE,UAAU,MAAM,CAAC,IAAI,CAAC,mBAAmB;qBAC/D,YAEA,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;wBAC5B,MAAM,UAAU,GAAG,KAAK,GAAG,MAAM,CAAC;wBAClC,MAAM,qBAAqB,GAAG,eAAe,CAAC,CAAC,EAAE,YAAY,EAAE,cAAc,CAAC,CAAC;wBAC/E,MAAM,SAAS,GAAG,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;wBACrC,MAAM,QAAQ,GAAG,qBAAqB,IAAI,SAAS,CAAC;wBACpD,OAAO,CACL,eAA+B,IAAI,EAAC,UAAU,EAAC,SAAS,EAAC,gBAAgB,aACvE,kBACE,IAAI,EAAC,QAAQ,EACb,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/B,SAAS,EAAE,EAAE,CACX,wGAAwG,EACxG,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,KAAK,YAAY;wCACjD,CAAC,CAAC,kDAAkD;wCACpD,CAAC,CAAC,eAAe,EACnB,QAAQ;wCACN,CAAC,CAAC,gBAAgB;wCAClB,CAAC,CAAC,gEAAgE,EACpE,SAAS,IAAI,oCAAoC,CAClD,EACD,KAAK,EAAE,CAAC,CAAC,IAAI,aAEb,cAAK,SAAS,EAAC,WAAW,YAAE,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,GAAO,EACzD,gBAAM,SAAS,EAAC,sCAAsC,aACpD,eAAM,SAAS,EAAC,mCAAmC,YAChD,SAAS,CAAC,CAAC,CAAC,CACX,gBACE,IAAI,EAAC,MAAM,EACX,SAAS,QACT,KAAK,EAAE,YAAY,EACnB,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EACvD,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EACxC,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAC1C,WAAW,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,CAAC,EAC9C,SAAS,EAAE,CAAC,EAAE,EAAE,EAAE;4DAChB,IAAI,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,CAAC;gEACvB,EAAE,CAAC,cAAc,EAAE,CAAC;gEACpB,EAAE,CAAC,eAAe,EAAE,CAAC;gEACrB,UAAU,CAAC,CAAC,CAAC,CAAC;4DAChB,CAAC;iEAAM,IAAI,EAAE,CAAC,GAAG,KAAK,QAAQ,EAAE,CAAC;gEAC/B,EAAE,CAAC,cAAc,EAAE,CAAC;gEACpB,EAAE,CAAC,eAAe,EAAE,CAAC;gEACrB,UAAU,EAAE,CAAC;4DACf,CAAC;wDACH,CAAC,EACD,MAAM,EAAE,GAAG,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAChC,SAAS,EAAE,GAAG,EACd,SAAS,EAAC,+JAA+J,GACzK,CACH,CAAC,CAAC,CAAC,CACF,eAAM,SAAS,EAAC,oDAAoD,YACjE,MAAM,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,GAChB,CACR,GACI,EACN,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACX,eAAM,SAAS,EAAC,8CAA8C,YAC3D,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,GACb,CACR,CAAC,CAAC,CAAC,IAAI,EACP,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD,eAAM,SAAS,EAAC,wCAAwC,YACrD,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAC7B,eAAc,SAAS,EAAC,sFAAsF,YAAE,CAAC,IAAtG,CAAC,CAA6G,CAC1H,CAAC,GACG,CACR,CAAC,CAAC,CAAC,IAAI,IACH,IACA,EAER,cAAc,IAAI,CACjB,iBACE,IAAI,EAAC,QAAQ,gBACD,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAC9E,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EACtF,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;wCACpB,CAAC,CAAC,kFAAkF;wCACpF,CAAC,CAAC,wHAAwH,CAC7H,YAEA,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CACzB,cAAK,OAAO,EAAC,WAAW,EAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAE,GAAG,EAAE,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,YAC3I,mBAAU,MAAM,EAAC,gBAAgB,GAAG,GAChC,CACP,GACM,CACV,EACA,CAAC,SAAS,IAAI,CAAC,YAAY,IAAI,UAAU,IAAI,QAAQ,IAAI,QAAQ,IAAI,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC,CACzF,eAAK,SAAS,EAAC,yGAAyG,aACrH,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CACnC,iBACE,IAAI,EAAC,QAAQ,gBACD,QAAQ,CAAC,CAAC,IAAI,YAAY,EACtC,KAAK,EAAC,aAAa,EACnB,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC3D,SAAS,EAAC,qLAAqL,YAE/L,KAAC,SAAS,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GACjD,CACV,CAAC,CAAC,CAAC,IAAI,EACP,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAC1D,iBACE,IAAI,EAAC,QAAQ,gBACD,kBAAkB,CAAC,CAAC,IAAI,EAAE,EACtC,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzD,SAAS,EAAC,qLAAqL,YAE/L,KAAC,GAAG,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GAC3C,CACV,CAAC,CAAC,CAAC,IAAI,EACP,OAAO,IAAI,QAAQ,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CACjC,iBACE,IAAI,EAAC,QAAQ,gBACD,SAAS,CAAC,CAAC,IAAI,EAAE,EAC7B,KAAK,EAAC,OAAO,EACb,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACtD,SAAS,EAAC,qLAAqL,YAE/L,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GAC9C,CACV,CAAC,CAAC,CAAC,IAAI,EACP,MAAM,IAAI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACjC,iBACE,IAAI,EAAC,QAAQ,gBACD,QAAQ,CAAC,CAAC,IAAI,EAAE,EAC5B,KAAK,EAAC,MAAM,EACZ,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACrD,SAAS,EAAC,qLAAqL,YAE/L,KAAC,aAAa,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GACrD,CACV,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IAAI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACnC,iBACE,IAAI,EAAC,QAAQ,gBACD,UAAU,CAAC,CAAC,IAAI,EAAE,EAC9B,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACxD,SAAS,EAAC,qLAAqL,YAE/L,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GAC9C,CACV,CAAC,CAAC,CAAC,IAAI,EACP,QAAQ,IAAI,QAAQ,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CACnC,iBACE,IAAI,EAAC,QAAQ,gBACD,UAAU,CAAC,CAAC,IAAI,EAAE,EAC9B,KAAK,EAAC,QAAQ,EACd,OAAO,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACvD,SAAS,EAAC,wMAAwM,YAElN,KAAC,MAAM,IAAC,SAAS,EAAC,aAAa,EAAC,WAAW,EAAE,IAAI,GAAI,GAC9C,CACV,CAAC,CAAC,CAAC,IAAI,IACJ,CACP,CAAC,CAAC,CAAC,IAAI,KAzJA,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,EAAE,CA0JvB,CACP,CAAC;oBACJ,CAAC,CAAC,IA3KG,UAAU,CAAC,GAAG,CA4Kf,CACP,CAAC;YACJ,CAAC,CAAC,GACI,GACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -4,7 +4,7 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import { cn } from '../shared/cn.js';
|
|
6
6
|
import { DEFAULT_COL_WIDTH, ROW_ESTIMATE_LIST_PX } from './constants.js';
|
|
7
|
-
import { defaultLeading, isEntryDisabled } from './utils.js';
|
|
7
|
+
import { asText, defaultLeading, isEntryDisabled } from './utils.js';
|
|
8
8
|
import { entryCan } from './permissions.js';
|
|
9
9
|
export function EntryList({ entries, columns = [], onOpen, nameHeader = 'Name', renderLeading = defaultLeading, disableFiles = false, disableFolders = false, onDelete, onRename, onMove, onOpenEditor, onEditTags, onShare, selectedIds, onToggleSelect, scrollParentRef, onReachEnd, }) {
|
|
10
10
|
const [editingId, setEditingId] = useState(null);
|
|
@@ -75,7 +75,7 @@ export function EntryList({ entries, columns = [], onOpen, nameHeader = 'Name',
|
|
|
75
75
|
ev.stopPropagation();
|
|
76
76
|
cancelEdit();
|
|
77
77
|
}
|
|
78
|
-
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: e.name }), e.kind === 'folder' && e.caption && (_jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: e.caption })), e.kind === 'file' && e.tags && e.tags.length > 0 && (_jsx("span", { className: "mt-0.5 flex flex-wrap items-center gap-1", children: e.tags.map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) }))] }))] }), e.kind !== 'folder' && columns.map((c) => (_jsx("span", { className: cn(c.mdOnly === false ? undefined : 'hidden md:block', 'truncate text-left tabular-nums text-[12px] text-muted-foreground'), children: c.render ? c.render(e) : (e.columns?.[c.key] ?? '—') }, `c-${c.key}`))), trailingActions > 0 ? (_jsxs("div", { style: { gridColumnStart: columns.length + 2 }, className: cn('flex items-center justify-end gap-0.5 transition', isEditing
|
|
78
|
+
}, onBlur: () => { commitEdit(e); }, maxLength: 255, className: "min-w-0 flex-1 truncate rounded-sm border border-ring/50 bg-background px-1.5 py-0.5 text-[13.5px] font-medium text-foreground outline-none focus:border-ring" })) : (_jsxs("span", { className: "flex min-w-0 flex-col text-left", children: [_jsx("span", { className: "truncate text-[13.5px] font-medium text-foreground", children: asText(e.name, e.id) }), e.kind === 'folder' && e.caption && (_jsx("span", { className: "truncate text-[11px] text-muted-foreground", children: asText(e.caption) })), e.kind === 'file' && e.tags && e.tags.length > 0 && (_jsx("span", { className: "mt-0.5 flex flex-wrap items-center gap-1", children: e.tags.map((t) => (_jsx("span", { className: "rounded-full bg-secondary px-1.5 py-px text-[10px] font-medium text-muted-foreground", children: t }, t))) }))] }))] }), e.kind !== 'folder' && columns.map((c) => (_jsx("span", { className: cn(c.mdOnly === false ? undefined : 'hidden md:block', 'truncate text-left tabular-nums text-[12px] text-muted-foreground'), children: c.render ? c.render(e) : (e.columns?.[c.key] ?? '—') }, `c-${c.key}`))), trailingActions > 0 ? (_jsxs("div", { style: { gridColumnStart: columns.length + 2 }, className: cn('flex items-center justify-end gap-0.5 transition', isEditing
|
|
79
79
|
? 'pointer-events-none opacity-0'
|
|
80
80
|
: 'opacity-0 group-hover:opacity-100 focus-within:opacity-100'), children: [onOpenEditor && e.kind === 'file' ? (_jsx("button", { type: "button", "aria-label": `Open ${e.name} in editor`, title: "Open editor", onClick: (ev) => { ev.stopPropagation(); onOpenEditor(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(SquarePen, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onEditTags && e.kind === 'file' && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Edit teams for ${e.name}`, title: "Teams", onClick: (ev) => { ev.stopPropagation(); onEditTags(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Tag, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onShare && entryCan(e, 'share') ? (_jsx("button", { type: "button", "aria-label": `Share ${e.name}`, title: "Share", onClick: (ev) => { ev.stopPropagation(); onShare(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Share2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onMove && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Move ${e.name}`, title: "Move", onClick: (ev) => { ev.stopPropagation(); onMove(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(FolderSymlink, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onRename && entryCan(e, 'update') ? (_jsx("button", { type: "button", "aria-label": `Rename ${e.name}`, title: "Rename", onClick: (ev) => { ev.stopPropagation(); startEdit(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-secondary hover:text-foreground", children: _jsx(Pencil, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null, onDelete && entryCan(e, 'delete') ? (_jsx("button", { type: "button", "aria-label": `Delete ${e.name}`, title: "Delete", onClick: (ev) => { ev.stopPropagation(); onDelete(e); }, className: "grid h-7 w-7 place-items-center rounded-md text-muted-foreground transition hover:bg-red-50 hover:text-red-600 dark:hover:bg-red-950/40", children: _jsx(Trash2, { className: "h-3.5 w-3.5", strokeWidth: 1.75 }) })) : null] })) : null] }) }, virtualRow.key));
|
|
81
81
|
}) }) })] }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EntryList.js","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AAErC,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"EntryList.js","sourceRoot":"","sources":["../../../src/components/browser/EntryList.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
import type { BrowserEntry, LeadingRenderer } from './types.js';
|
|
2
2
|
export declare const defaultLeading: LeadingRenderer;
|
|
3
|
+
/** Coerce a value to a string safe to render as a React child. Malformed entry
|
|
4
|
+
* data (e.g. a workflow whose metadata.name parsed to an object) would otherwise
|
|
5
|
+
* throw React #31 and blank the whole list. */
|
|
6
|
+
export declare function asText(value: unknown, fallback?: string): string;
|
|
3
7
|
export declare function isEntryDisabled(entry: BrowserEntry, disableFiles: boolean, disableFolders: boolean): boolean;
|
|
4
8
|
export declare function useScrollMargin(scrollParentRef: React.RefObject<HTMLElement | null>): {
|
|
5
9
|
listRef: React.RefObject<HTMLDivElement | null>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,eACgC,CAAC;AAE9D,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,GACtB,OAAO,CAKT;AAED,wBAAgB,eAAe,CAC7B,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACnD;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,CA0BA"}
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,eACgC,CAAC;AAE9D;;gDAEgD;AAChD,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,SAAK,GAAG,MAAM,CAI5D;AAED,wBAAgB,eAAe,CAC7B,KAAK,EAAE,YAAY,EACnB,YAAY,EAAE,OAAO,EACrB,cAAc,EAAE,OAAO,GACtB,OAAO,CAKT;AAED,wBAAgB,eAAe,CAC7B,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,GAAG,IAAI,CAAC,GACnD;IACD,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;IAChD,YAAY,EAAE,MAAM,CAAC;CACtB,CA0BA"}
|
|
@@ -2,6 +2,16 @@ import { jsx as _jsx } from "react/jsx-runtime";
|
|
|
2
2
|
import { useLayoutEffect, useRef, useState } from 'react';
|
|
3
3
|
import { FolderCard } from './FolderCard.js';
|
|
4
4
|
export const defaultLeading = (entry, size) => entry.kind === 'folder' ? _jsx(FolderCard, { size: size }) : null;
|
|
5
|
+
/** Coerce a value to a string safe to render as a React child. Malformed entry
|
|
6
|
+
* data (e.g. a workflow whose metadata.name parsed to an object) would otherwise
|
|
7
|
+
* throw React #31 and blank the whole list. */
|
|
8
|
+
export function asText(value, fallback = '') {
|
|
9
|
+
if (typeof value === 'string')
|
|
10
|
+
return value;
|
|
11
|
+
if (typeof value === 'number' || typeof value === 'boolean')
|
|
12
|
+
return String(value);
|
|
13
|
+
return fallback;
|
|
14
|
+
}
|
|
5
15
|
export function isEntryDisabled(entry, disableFiles, disableFolders) {
|
|
6
16
|
return ((entry.kind === 'file' && disableFiles) ||
|
|
7
17
|
(entry.kind === 'folder' && disableFolders));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAC7D,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,YAAqB,EACrB,cAAuB;IAEvB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC;QACvC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAoD;IAKpD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,GAA6B,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClD,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAS,EAAE;YAChB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/components/browser/utils.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,CAAC,MAAM,cAAc,GAAoB,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAC7D,KAAK,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAC,UAAU,IAAC,IAAI,EAAE,IAAI,GAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAE9D;;gDAEgD;AAChD,MAAM,UAAU,MAAM,CAAC,KAAc,EAAE,QAAQ,GAAG,EAAE;IAClD,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,OAAO,KAAK,KAAK,SAAS;QAAE,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC;IAClF,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,KAAmB,EACnB,YAAqB,EACrB,cAAuB;IAEvB,OAAO,CACL,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,YAAY,CAAC;QACvC,CAAC,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,cAAc,CAAC,CAC5C,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,eAAoD;IAKpD,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;IACpD,eAAe,CAAC,GAA6B,EAAE;QAC7C,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC;QAC7B,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC;QACzC,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,MAAM,OAAO,GAAG,GAAS,EAAE;YACzB,MAAM,EAAE,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;YACxC,MAAM,EAAE,GAAG,QAAQ,CAAC,qBAAqB,EAAE,CAAC;YAC5C,MAAM,IAAI,GAAG,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC;YAClD,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3D,CAAC,CAAC;QACF,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,GAAG,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC;QACvC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACrB,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,GAAS,EAAE;YAChB,EAAE,CAAC,UAAU,EAAE,CAAC;QAClB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IACtB,OAAO,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC;AACnC,CAAC"}
|
|
@@ -6,8 +6,12 @@ export interface BuilderToolbarProps {
|
|
|
6
6
|
onZoomIn: () => void;
|
|
7
7
|
onZoomOut: () => void;
|
|
8
8
|
onFitView: () => void;
|
|
9
|
+
/** Opens the workflow-variables panel. When omitted, no Variables button shows. */
|
|
10
|
+
onOpenVariables?: () => void;
|
|
11
|
+
variablesActive?: boolean;
|
|
12
|
+
variablesCount?: number;
|
|
9
13
|
showAiPanel?: boolean;
|
|
10
14
|
onToggleAiPanel?: () => void;
|
|
11
15
|
}
|
|
12
|
-
export declare function BuilderToolbar({ canUndo, canRedo, onUndo, onRedo, onZoomIn, onZoomOut, onFitView, showAiPanel, onToggleAiPanel, }: BuilderToolbarProps): import("react").JSX.Element;
|
|
16
|
+
export declare function BuilderToolbar({ canUndo, canRedo, onUndo, onRedo, onZoomIn, onZoomOut, onFitView, onOpenVariables, variablesActive, variablesCount, showAiPanel, onToggleAiPanel, }: BuilderToolbarProps): import("react").JSX.Element;
|
|
13
17
|
//# sourceMappingURL=BuilderToolbar.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/BuilderToolbar.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAkCD,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,WAAW,EACX,eAAe,GAChB,EAAE,mBAAmB,+
|
|
1
|
+
{"version":3,"file":"BuilderToolbar.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/BuilderToolbar.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,mFAAmF;IACnF,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;CAC9B;AAkCD,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,OAAO,EACP,MAAM,EACN,MAAM,EACN,QAAQ,EACR,SAAS,EACT,SAAS,EACT,eAAe,EACf,eAAe,EACf,cAAc,EACd,WAAW,EACX,eAAe,GAChB,EAAE,mBAAmB,+BA6FrB"}
|
|
@@ -8,8 +8,10 @@ function ToolbarButton({ title, disabled, onClick, children, }) {
|
|
|
8
8
|
function Divider() {
|
|
9
9
|
return _jsx("div", { className: "mx-0.5 h-5 w-px bg-slate-200" });
|
|
10
10
|
}
|
|
11
|
-
export function BuilderToolbar({ canUndo, canRedo, onUndo, onRedo, onZoomIn, onZoomOut, onFitView, showAiPanel, onToggleAiPanel, }) {
|
|
12
|
-
return (_jsxs("div", { className: cn('absolute bottom-4 left-1/2 z-20 -translate-x-1/2', 'flex items-center gap-0.5 rounded-xl border border-slate-200/80 bg-white/95 px-1.5 py-1 shadow-lg backdrop-blur-sm', 'animate-[wui-fade-in_200ms_ease-out]'), children: [_jsx(ToolbarButton, { title: "Undo (Ctrl+Z)", disabled: !canUndo, onClick: onUndo, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M3 7v6h6" }), _jsx("path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6.69 3L3 13" })] }) }), _jsx(ToolbarButton, { title: "Redo (Ctrl+Shift+Z)", disabled: !canRedo, onClick: onRedo, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 7v6h-6" }), _jsx("path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6.69 3L21 13" })] }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { title: "Zoom out", onClick: onZoomOut, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" }), _jsx("path", { d: "M8 11h6" })] }) }), _jsx(ToolbarButton, { title: "Fit view", onClick: onFitView, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M8 3H5a2 2 0 0 0-2 2v3" }), _jsx("path", { d: "M21 8V5a2 2 0 0 0-2-2h-3" }), _jsx("path", { d: "M3 16v3a2 2 0 0 0 2 2h3" }), _jsx("path", { d: "M16 21h3a2 2 0 0 0 2-2v-3" })] }) }), _jsx(ToolbarButton, { title: "Zoom in", onClick: onZoomIn, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" }), _jsx("path", { d: "M11 8v6" }), _jsx("path", { d: "M8 11h6" })] }) }),
|
|
11
|
+
export function BuilderToolbar({ canUndo, canRedo, onUndo, onRedo, onZoomIn, onZoomOut, onFitView, onOpenVariables, variablesActive, variablesCount, showAiPanel, onToggleAiPanel, }) {
|
|
12
|
+
return (_jsxs("div", { className: cn('absolute bottom-4 left-1/2 z-20 -translate-x-1/2', 'flex items-center gap-0.5 rounded-xl border border-slate-200/80 bg-white/95 px-1.5 py-1 shadow-lg backdrop-blur-sm', 'animate-[wui-fade-in_200ms_ease-out]'), children: [_jsx(ToolbarButton, { title: "Undo (Ctrl+Z)", disabled: !canUndo, onClick: onUndo, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M3 7v6h6" }), _jsx("path", { d: "M21 17a9 9 0 0 0-9-9 9 9 0 0 0-6.69 3L3 13" })] }) }), _jsx(ToolbarButton, { title: "Redo (Ctrl+Shift+Z)", disabled: !canRedo, onClick: onRedo, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M21 7v6h-6" }), _jsx("path", { d: "M3 17a9 9 0 0 1 9-9 9 9 0 0 1 6.69 3L21 13" })] }) }), _jsx(Divider, {}), _jsx(ToolbarButton, { title: "Zoom out", onClick: onZoomOut, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" }), _jsx("path", { d: "M8 11h6" })] }) }), _jsx(ToolbarButton, { title: "Fit view", onClick: onFitView, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M8 3H5a2 2 0 0 0-2 2v3" }), _jsx("path", { d: "M21 8V5a2 2 0 0 0-2-2h-3" }), _jsx("path", { d: "M3 16v3a2 2 0 0 0 2 2h3" }), _jsx("path", { d: "M16 21h3a2 2 0 0 0 2-2v-3" })] }) }), _jsx(ToolbarButton, { title: "Zoom in", onClick: onZoomIn, children: _jsxs("svg", { width: "15", height: "15", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: [_jsx("circle", { cx: "11", cy: "11", r: "8" }), _jsx("path", { d: "m21 21-4.3-4.3" }), _jsx("path", { d: "M11 8v6" }), _jsx("path", { d: "M8 11h6" })] }) }), onOpenVariables && (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsxs("button", { title: "Workflow variables \u2014 fixed values referenced as {{vars.key}}", onClick: onOpenVariables, className: cn('flex h-8 items-center gap-1.5 rounded-lg px-2.5 text-xs font-medium transition-all active:scale-95', variablesActive
|
|
13
|
+
? 'bg-indigo-600 text-white hover:bg-indigo-700'
|
|
14
|
+
: 'text-slate-600 hover:bg-slate-100'), 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: "M4 7V4h16v3" }), _jsx("path", { d: "M9 20h6" }), _jsx("path", { d: "M12 4v16" })] }), "Variables", variablesCount ? (_jsx("span", { className: cn('rounded-full px-1.5 text-[10px] font-semibold', variablesActive ? 'bg-white/25 text-white' : 'bg-slate-200 text-slate-600'), children: variablesCount })) : null] })] })), onToggleAiPanel && (_jsxs(_Fragment, { children: [_jsx(Divider, {}), _jsxs("button", { title: showAiPanel ? 'Close AI assistant' : 'Ask AI', onClick: onToggleAiPanel, className: cn('flex h-8 items-center gap-1.5 rounded-lg px-2.5 text-xs font-medium transition-all active:scale-95', showAiPanel
|
|
13
15
|
? 'bg-indigo-600 text-white hover:bg-indigo-700'
|
|
14
16
|
: 'text-indigo-600 hover:bg-indigo-50'), children: [_jsx("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 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) }), "Ask AI"] })] }))] }));
|
|
15
17
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BuilderToolbar.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/BuilderToolbar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"BuilderToolbar.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/BuilderToolbar.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { WorkflowConfig, WorkflowStepConfig } from '@xyne/workflow-sdk/builder';
|
|
1
|
+
import type { WorkflowConfig, WorkflowStepConfig, WorkflowVariable } from '@xyne/workflow-sdk/builder';
|
|
2
2
|
import type { ValidationIssue } from '@xyne/workflow-sdk';
|
|
3
3
|
import type { StepMeta, TriggerMeta } from '../../../hooks/use-step-metadata.js';
|
|
4
4
|
export interface SidePanelProps {
|
|
@@ -6,6 +6,11 @@ export interface SidePanelProps {
|
|
|
6
6
|
selectedStep: WorkflowStepConfig | null;
|
|
7
7
|
/** Whether the trigger node is selected. */
|
|
8
8
|
isTriggerSelected: boolean;
|
|
9
|
+
/** Whether the workflow-variables panel is selected. */
|
|
10
|
+
isVariablesSelected: boolean;
|
|
11
|
+
/** The workflow's author-time variables (for the variables panel). */
|
|
12
|
+
variables: WorkflowVariable[];
|
|
13
|
+
onUpdateVariables: (next: WorkflowVariable[]) => void;
|
|
9
14
|
/** Full workflow config — passed to variable picker for scope resolution. */
|
|
10
15
|
config: WorkflowConfig;
|
|
11
16
|
/** Metadata map for step types. */
|
|
@@ -37,5 +42,5 @@ export interface SidePanelProps {
|
|
|
37
42
|
onRequestChangeTrigger: () => void;
|
|
38
43
|
onClose: () => void;
|
|
39
44
|
}
|
|
40
|
-
export declare function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, issues, triggerIssues, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onAddStepCitation, onRemoveStepCitation, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }: SidePanelProps): import("react").JSX.Element;
|
|
45
|
+
export declare function SidePanel({ selectedStep, isTriggerSelected, isVariablesSelected, variables, onUpdateVariables, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, issues, triggerIssues, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onAddStepCitation, onRemoveStepCitation, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }: SidePanelProps): import("react").JSX.Element;
|
|
41
46
|
//# sourceMappingURL=SidePanel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidePanel.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"SidePanel.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAMjF,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,4CAA4C;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,wDAAwD;IACxD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,sEAAsE;IACtE,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,iBAAiB,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IACtD,6EAA6E;IAC7E,MAAM,EAAE,cAAc,CAAC;IACvB,mCAAmC;IACnC,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAChC,6BAA6B;IAC7B,WAAW,EAAE,WAAW,EAAE,CAAC;IAC3B,4BAA4B;IAC5B,WAAW,EAAE,MAAM,CAAC;IACpB,8BAA8B;IAC9B,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,gFAAgF;IAChF,MAAM,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IACvC,wEAAwE;IACxE,aAAa,CAAC,EAAE,eAAe,EAAE,GAAG,SAAS,CAAC;IAC9C,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9E,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,KAAK,IAAI,CAAC;IACpH,aAAa,EAAE,CAAC,KAAK,EAAE,OAAO,4BAA4B,EAAE,SAAS,KAAK,IAAI,CAAC;IAC/E,iBAAiB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,4BAA4B,EAAE,QAAQ,KAAK,IAAI,CAAC;IACxH,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF,YAAY,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACvC,eAAe,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1C,oBAAoB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C,qBAAqB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IACjE,sBAAsB,EAAE,MAAM,IAAI,CAAC;IACnC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,wBAAgB,SAAS,CAAC,EACxB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,MAAM,EACN,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,GACR,EAAE,cAAc,+BAqEhB"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
2
|
import { StepConfigPanel } from './StepConfigPanel.js';
|
|
3
3
|
import { TriggerConfigPanel } from './TriggerConfigPanel.js';
|
|
4
|
+
import { VariablesPanel } from './VariablesPanel.js';
|
|
4
5
|
import { cn } from '../../shared/cn.js';
|
|
5
|
-
export function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, issues, triggerIssues, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onAddStepCitation, onRemoveStepCitation, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }) {
|
|
6
|
-
const isOpen = !!selectedStep || isTriggerSelected;
|
|
6
|
+
export function SidePanel({ selectedStep, isTriggerSelected, isVariablesSelected, variables, onUpdateVariables, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, issues, triggerIssues, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onAddStepCitation, onRemoveStepCitation, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }) {
|
|
7
|
+
const isOpen = !!selectedStep || isTriggerSelected || isVariablesSelected;
|
|
7
8
|
const meta = selectedStep ? stepMeta.get(selectedStep.type) : undefined;
|
|
8
9
|
return (_jsx("div", { className: cn('relative flex h-full flex-col border-l border-slate-200/80 bg-white transition-[flex,opacity] duration-200', isOpen ? 'opacity-100' : 'opacity-0 overflow-hidden border-l-0'), style: {
|
|
9
10
|
flex: isOpen ? '0 0 45%' : '0 0 0%',
|
|
10
11
|
animation: isOpen ? 'wui-slide-in-right 180ms ease-out' : undefined,
|
|
11
|
-
}, children: isOpen && (_jsxs(_Fragment, { children: [_jsx("button", { onClick: onClose, className: "absolute right-3 top-4 z-10 flex h-6 w-6 items-center justify-center rounded-md text-slate-400 hover:bg-slate-100 hover:text-slate-600 transition-colors", 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" })] }) }), selectedStep ? (_jsx(StepConfigPanel, { step: selectedStep, config: config, category: meta?.category, icon: meta?.icon, onUpdateConfig: (stepConfig) => onUpdateStepConfig(selectedStep.id, stepConfig), onUpdateMeta: (metaUpdate) => onUpdateStepMeta(selectedStep.id, metaUpdate), groups: config.groups, onUpsertGroup: onUpsertGroup, onAddCitation: (fieldPath, citation) => onAddStepCitation(selectedStep.id, fieldPath, citation), onRemoveCitation: (citationPath, index) => onRemoveStepCitation(selectedStep.id, citationPath, index), issues: issues, onDelete: () => onDeleteStep(selectedStep.id), onDuplicate: () => onDuplicateStep(selectedStep.id), onToggleDisabled: () => onToggleStepDisabled(selectedStep.id), readOnly: readOnly }, selectedStep.id)) : isTriggerSelected ? (_jsx(TriggerConfigPanel, { triggerType: triggerType, triggerConfig: triggerConfig, triggerMeta: triggerMeta, issues: triggerIssues, onUpdateConfig: onUpdateTriggerConfig, onRequestChangeTrigger: onRequestChangeTrigger, readOnly: readOnly })) : null] })) }));
|
|
12
|
+
}, children: isOpen && (_jsxs(_Fragment, { children: [_jsx("button", { onClick: onClose, className: "absolute right-3 top-4 z-10 flex h-6 w-6 items-center justify-center rounded-md text-slate-400 hover:bg-slate-100 hover:text-slate-600 transition-colors", 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" })] }) }), selectedStep ? (_jsx(StepConfigPanel, { step: selectedStep, config: config, category: meta?.category, icon: meta?.icon, onUpdateConfig: (stepConfig) => onUpdateStepConfig(selectedStep.id, stepConfig), onUpdateMeta: (metaUpdate) => onUpdateStepMeta(selectedStep.id, metaUpdate), groups: config.groups, onUpsertGroup: onUpsertGroup, onAddCitation: (fieldPath, citation) => onAddStepCitation(selectedStep.id, fieldPath, citation), onRemoveCitation: (citationPath, index) => onRemoveStepCitation(selectedStep.id, citationPath, index), issues: issues, onDelete: () => onDeleteStep(selectedStep.id), onDuplicate: () => onDuplicateStep(selectedStep.id), onToggleDisabled: () => onToggleStepDisabled(selectedStep.id), readOnly: readOnly }, selectedStep.id)) : isTriggerSelected ? (_jsx(TriggerConfigPanel, { triggerType: triggerType, triggerConfig: triggerConfig, triggerMeta: triggerMeta, issues: triggerIssues, onUpdateConfig: onUpdateTriggerConfig, onRequestChangeTrigger: onRequestChangeTrigger, readOnly: readOnly })) : isVariablesSelected ? (_jsx(VariablesPanel, { variables: variables, onChange: onUpdateVariables, readOnly: readOnly })) : null] })) }));
|
|
12
13
|
}
|
|
13
14
|
//# sourceMappingURL=SidePanel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SidePanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":";AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"SidePanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { WorkflowVariable } from '@xyne/workflow-sdk/builder';
|
|
2
|
+
/**
|
|
3
|
+
* VariablesPanel — authors a workflow's fixed values (author-time constants).
|
|
4
|
+
*
|
|
5
|
+
* Each row is a {@link WorkflowVariable}: a key (referenced by steps as
|
|
6
|
+
* `{{vars.key}}`), a type, and a value editor. Documents reuse the shared
|
|
7
|
+
* upload control, so a policy PDF chosen here is the same file for every run —
|
|
8
|
+
* no per-execution upload.
|
|
9
|
+
*/
|
|
10
|
+
export interface VariablesPanelProps {
|
|
11
|
+
variables: WorkflowVariable[];
|
|
12
|
+
onChange: (next: WorkflowVariable[]) => void;
|
|
13
|
+
readOnly: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function VariablesPanel({ variables, onChange, readOnly }: VariablesPanelProps): import("react").JSX.Element;
|
|
16
|
+
//# sourceMappingURL=VariablesPanel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/VariablesPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,gBAAgB,EAGjB,MAAM,4BAA4B,CAAC;AAMpC;;;;;;;GAOG;AACH,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,gBAAgB,EAAE,CAAC;IAC9B,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,KAAK,IAAI,CAAC;IAC7C,QAAQ,EAAE,OAAO,CAAC;CACnB;AAmHD,wBAAgB,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,+BA0FpF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { AttachmentFieldInput } from '../../schema-form/AttachmentFieldInput.js';
|
|
4
|
+
import { cn } from '../../shared/cn.js';
|
|
5
|
+
const TYPES = [
|
|
6
|
+
{ value: 'text', label: 'Text' },
|
|
7
|
+
{ value: 'number', label: 'Number' },
|
|
8
|
+
{ value: 'boolean', label: 'Boolean' },
|
|
9
|
+
{ value: 'json', label: 'JSON' },
|
|
10
|
+
{ value: 'document', label: 'Document' },
|
|
11
|
+
{ value: 'documents', label: 'Documents' },
|
|
12
|
+
];
|
|
13
|
+
const inputCls = 'w-full rounded-md border border-slate-200 bg-white px-2.5 py-1.5 text-[13px] text-slate-800 outline-none focus:border-indigo-300 focus:ring-1 focus:ring-indigo-200 disabled:bg-slate-50 disabled:text-slate-400';
|
|
14
|
+
function emptyValueFor(type) {
|
|
15
|
+
switch (type) {
|
|
16
|
+
case 'text': return '';
|
|
17
|
+
case 'number': return 0;
|
|
18
|
+
case 'boolean': return false;
|
|
19
|
+
case 'json': return {};
|
|
20
|
+
case 'documents': return [];
|
|
21
|
+
case 'document': return undefined; // filled on upload
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/** Minimal SchemaFormField for the shared uploader — it only reads type/accept/maxSize. */
|
|
25
|
+
function attachmentField(multiple) {
|
|
26
|
+
return {
|
|
27
|
+
name: 'value',
|
|
28
|
+
type: multiple ? 'array' : 'attachment',
|
|
29
|
+
format: 'attachment',
|
|
30
|
+
...(multiple ? { itemSchema: { format: 'attachment' } } : {}),
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
function JsonValueEditor({ value, onChange, readOnly }) {
|
|
34
|
+
const [text, setText] = useState(() => JSON.stringify(value ?? {}, null, 2));
|
|
35
|
+
const [error, setError] = useState(null);
|
|
36
|
+
return (_jsxs("div", { children: [_jsx("textarea", { className: cn(inputCls, 'min-h-[84px] font-mono text-[12px] leading-snug'), value: text, disabled: readOnly, spellCheck: false, onChange: (e) => {
|
|
37
|
+
setText(e.target.value);
|
|
38
|
+
try {
|
|
39
|
+
onChange(JSON.parse(e.target.value));
|
|
40
|
+
setError(null);
|
|
41
|
+
}
|
|
42
|
+
catch {
|
|
43
|
+
setError('Invalid JSON');
|
|
44
|
+
}
|
|
45
|
+
} }), error && _jsx("p", { className: "mt-1 text-[11px] text-red-600", children: error })] }));
|
|
46
|
+
}
|
|
47
|
+
function ValueEditor({ variable, onChange, readOnly }) {
|
|
48
|
+
switch (variable.type) {
|
|
49
|
+
case 'text':
|
|
50
|
+
return (_jsx("input", { className: inputCls, value: String(variable.value ?? ''), disabled: readOnly, placeholder: "Value", onChange: (e) => onChange(e.target.value) }));
|
|
51
|
+
case 'number':
|
|
52
|
+
return (_jsx("input", { className: inputCls, type: "number", value: variable.value === undefined || variable.value === null ? '' : String(variable.value), disabled: readOnly, placeholder: "0", onChange: (e) => onChange(e.target.value === '' ? undefined : Number(e.target.value)) }));
|
|
53
|
+
case 'boolean':
|
|
54
|
+
return (_jsxs("label", { className: "flex items-center gap-2 text-[13px] text-slate-700", children: [_jsx("input", { type: "checkbox", checked: !!variable.value, disabled: readOnly, onChange: (e) => onChange(e.target.checked) }), variable.value ? 'true' : 'false'] }));
|
|
55
|
+
case 'json':
|
|
56
|
+
return _jsx(JsonValueEditor, { value: variable.value, onChange: onChange, readOnly: readOnly });
|
|
57
|
+
case 'document':
|
|
58
|
+
return _jsx(AttachmentFieldInput, { field: attachmentField(false), value: variable.value, onChange: onChange, readOnly: readOnly });
|
|
59
|
+
case 'documents':
|
|
60
|
+
return _jsx(AttachmentFieldInput, { field: attachmentField(true), value: variable.value ?? [], onChange: onChange, readOnly: readOnly });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
export function VariablesPanel({ variables, onChange, readOnly }) {
|
|
64
|
+
const drafts = variables;
|
|
65
|
+
const commit = (next) => onChange(next);
|
|
66
|
+
const update = (i, patch) => commit(drafts.map((v, idx) => (idx === i ? { ...v, ...patch } : v)));
|
|
67
|
+
const changeType = (i, type) => update(i, { type, value: emptyValueFor(type) });
|
|
68
|
+
const add = () => commit([...drafts, { key: '', type: 'text', value: '' }]);
|
|
69
|
+
const remove = (i) => commit(drafts.filter((_, idx) => idx !== i));
|
|
70
|
+
return (_jsxs("div", { className: "flex h-full flex-col", children: [_jsxs("div", { className: "border-b border-slate-100 px-5 py-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("div", { className: "flex h-9 w-9 shrink-0 items-center justify-center rounded-full bg-indigo-50 text-indigo-600", children: _jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M4 7V4h16v3" }), _jsx("path", { d: "M9 20h6" }), _jsx("path", { d: "M12 4v16" })] }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-sm font-semibold text-slate-800", children: "Variables" }), _jsx("div", { className: "mt-0.5 text-[10px] font-medium uppercase tracking-wider text-indigo-500", children: "Workflow" })] })] }), _jsxs("p", { className: "mt-2 text-[12px] leading-snug text-slate-500", children: ["Fixed values available to every run \u2014 reference them in any step as", ' ', _jsx("code", { className: "rounded bg-slate-100 px-1 text-[11px]", children: '{{vars.key}}' }), "."] })] }), _jsxs("div", { className: "flex-1 space-y-3 overflow-y-auto px-5 py-4", children: [drafts.length === 0 && (_jsx("p", { className: "text-[13px] text-slate-400", children: "No variables yet. Add one below." })), drafts.map((v, i) => (_jsxs("div", { className: "space-y-2 rounded-lg border border-slate-200 p-3", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx("input", { className: cn(inputCls, 'flex-1 font-mono'), value: v.key, disabled: readOnly, placeholder: "key", onChange: (e) => update(i, { key: e.target.value }) }), _jsx("select", { className: cn(inputCls, 'w-32'), value: v.type, disabled: readOnly, onChange: (e) => changeType(i, e.target.value), children: TYPES.map((t) => _jsx("option", { value: t.value, children: t.label }, t.value)) }), !readOnly && (_jsx("button", { type: "button", onClick: () => remove(i), title: "Remove", className: "flex h-7 w-7 shrink-0 items-center justify-center rounded-md text-slate-400 hover:bg-red-50 hover:text-red-500", 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" })] }) }))] }), _jsx(ValueEditor, { variable: v, readOnly: readOnly, onChange: (value) => update(i, { value }) }, v.type), _jsx("input", { className: cn(inputCls, 'text-[12px]'), value: v.description ?? '', disabled: readOnly, placeholder: "Description (optional)", onChange: (e) => update(i, { description: e.target.value }) })] }, i)))] }), !readOnly && (_jsx("div", { className: "border-t border-slate-100 px-5 py-3", children: _jsx("button", { type: "button", onClick: add, className: "w-full rounded-md border border-dashed border-slate-300 py-2 text-[13px] font-medium text-slate-600 transition-colors hover:border-indigo-300 hover:bg-indigo-50/40 hover:text-indigo-600", children: "+ Add variable" }) }))] }));
|
|
71
|
+
}
|
|
72
|
+
//# sourceMappingURL=VariablesPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VariablesPanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/VariablesPanel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjC,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAmBxC,MAAM,KAAK,GAAqD;IAC9D,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;IACpC,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;IACtC,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;IAChC,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,EAAE;IACxC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;CAC3C,CAAC;AAEF,MAAM,QAAQ,GACZ,kNAAkN,CAAC;AAErN,SAAS,aAAa,CAAC,IAA0B;IAC/C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC;QACxB,KAAK,SAAS,CAAC,CAAC,OAAO,KAAK,CAAC;QAC7B,KAAK,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvB,KAAK,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;QAC5B,KAAK,UAAU,CAAC,CAAC,OAAO,SAAkC,CAAC,CAAC,mBAAmB;IACjF,CAAC;AACH,CAAC;AAED,2FAA2F;AAC3F,SAAS,eAAe,CAAC,QAAiB;IACxC,OAAO;QACL,IAAI,EAAE,OAAO;QACb,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY;QACvC,MAAM,EAAE,YAAY;QACpB,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;KAChC,CAAC;AAClC,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAInD;IACC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAC;IACxD,OAAO,CACL,0BACE,mBACE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,iDAAiD,CAAC,EAC1E,KAAK,EAAE,IAAI,EACX,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,KAAK,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;oBACxB,IAAI,CAAC;wBACH,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;wBACrC,QAAQ,CAAC,IAAI,CAAC,CAAC;oBACjB,CAAC;oBAAC,MAAM,CAAC;wBACP,QAAQ,CAAC,cAAc,CAAC,CAAC;oBAC3B,CAAC;gBACH,CAAC,GACD,EACD,KAAK,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,KAAK,GAAK,IAC9D,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAIlD;IACC,QAAQ,QAAQ,CAAC,IAAI,EAAE,CAAC;QACtB,KAAK,MAAM;YACT,OAAO,CACL,gBACE,SAAS,EAAE,QAAQ,EACnB,KAAK,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,IAAI,EAAE,CAAC,EACnC,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,OAAO,EACnB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GACzC,CACH,CAAC;QACJ,KAAK,QAAQ;YACX,OAAO,CACL,gBACE,SAAS,EAAE,QAAQ,EACnB,IAAI,EAAC,QAAQ,EACb,KAAK,EAAE,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAC5F,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,GAAG,EACf,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,GACrF,CACH,CAAC;QACJ,KAAK,SAAS;YACZ,OAAO,CACL,iBAAO,SAAS,EAAC,oDAAoD,aACnE,gBACE,IAAI,EAAC,UAAU,EACf,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,EACzB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,GAC3C,EACD,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAC5B,CACT,CAAC;QACJ,KAAK,MAAM;YACT,OAAO,KAAC,eAAe,IAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;QAC5F,KAAK,UAAU;YACb,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;QAChI,KAAK,WAAW;YACd,OAAO,KAAC,oBAAoB,IAAC,KAAK,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,IAAI,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,GAAI,CAAC;IACvI,CAAC;AACH,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAuB;IACnF,MAAM,MAAM,GAAG,SAAoB,CAAC;IAEpC,MAAM,MAAM,GAAG,CAAC,IAAa,EAAQ,EAAE,CAAC,QAAQ,CAAC,IAA0B,CAAC,CAAC;IAC7E,MAAM,MAAM,GAAG,CAAC,CAAS,EAAE,KAAqB,EAAQ,EAAE,CACxD,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvE,MAAM,UAAU,GAAG,CAAC,CAAS,EAAE,IAA0B,EAAQ,EAAE,CACjE,MAAM,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,GAAS,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;IAClF,MAAM,MAAM,GAAG,CAAC,CAAS,EAAQ,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjF,OAAO,CACL,eAAK,SAAS,EAAC,sBAAsB,aAEnC,eAAK,SAAS,EAAC,qCAAqC,aAClD,eAAK,SAAS,EAAC,yBAAyB,aACtC,cAAK,SAAS,EAAC,6FAA6F,YAC1G,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,EAAC,cAAc,EAAC,OAAO,aAAC,eAAM,CAAC,EAAC,aAAa,GAAE,EAAA,eAAM,CAAC,EAAC,SAAS,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,IAAM,GAC/M,EACN,eAAK,SAAS,EAAC,gBAAgB,aAC7B,cAAK,SAAS,EAAC,+CAA+C,0BAAgB,EAC9E,cAAK,SAAS,EAAC,yEAAyE,yBAAe,IACnG,IACF,EACN,aAAG,SAAS,EAAC,8CAA8C,yFACW,GAAG,EACvE,eAAM,SAAS,EAAC,uCAAuC,YAAE,cAAc,GAAQ,SAC7E,IACA,EAGN,eAAK,SAAS,EAAC,4CAA4C,aACxD,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CACtB,YAAG,SAAS,EAAC,4BAA4B,iDAAqC,CAC/E,EACA,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,eAAa,SAAS,EAAC,kDAAkD,aACvE,eAAK,SAAS,EAAC,yBAAyB,aACtC,gBACE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC,EAC3C,KAAK,EAAE,CAAC,CAAC,GAAG,EACZ,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,KAAK,EACjB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GACnD,EACF,iBACE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,CAAC,EAC/B,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAA6B,CAAC,YAErE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAsB,KAAK,EAAE,CAAC,CAAC,KAAK,YAAG,CAAC,CAAC,KAAK,IAAjC,CAAC,CAAC,KAAK,CAAoC,CAAC,GACpE,EACR,CAAC,QAAQ,IAAI,CACZ,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,EACxB,KAAK,EAAC,QAAQ,EACd,SAAS,EAAC,gHAAgH,YAE1H,eAAK,KAAK,EAAC,IAAI,EAAC,MAAM,EAAC,IAAI,EAAC,OAAO,EAAC,WAAW,EAAC,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,cAAc,EAAC,WAAW,EAAC,GAAG,EAAC,aAAa,EAAC,OAAO,aAAC,eAAM,CAAC,EAAC,YAAY,GAAE,EAAA,eAAM,CAAC,EAAC,YAAY,GAAE,IAAM,GACnK,CACV,IACG,EACN,KAAC,WAAW,IAAc,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,CAAC,IAAlF,CAAC,CAAC,IAAI,CAAgF,EACxG,gBACE,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EACtC,KAAK,EAAE,CAAC,CAAC,WAAW,IAAI,EAAE,EAC1B,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAC,wBAAwB,EACpC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,GAC3D,KAnCM,CAAC,CAoCL,CACP,CAAC,IACE,EAGL,CAAC,QAAQ,IAAI,CACZ,cAAK,SAAS,EAAC,qCAAqC,YAClD,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EACZ,SAAS,EAAC,2LAA2L,+BAG9L,GACL,CACP,IACG,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowBuilderV3.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/WorkflowBuilderV3.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAsB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;
|
|
1
|
+
{"version":3,"file":"WorkflowBuilderV3.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/WorkflowBuilderV3.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAsB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AA2B3G,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC/C,aAAa,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,gFAAgF;IAChF,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,2EAA2E;IAC3E,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACzF,SAAS,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3D,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,+DAA+D;IAC/D,eAAe,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;CAC/C;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EAAE,eAAe,EACxB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,SAAS,EACT,eAAe,GAChB,EAAE,sBAAsB,+BA8ZxB"}
|
|
@@ -17,8 +17,8 @@ import { useWorkflowClient } from '../../../hooks/use-workflow-client.js';
|
|
|
17
17
|
import { findStepsReferencing } from '@xyne/workflow-sdk/builder';
|
|
18
18
|
import { cn } from '../../shared/cn.js';
|
|
19
19
|
/** Whether the config panel is showing (step or trigger selected). */
|
|
20
|
-
function isPanelOpen(selectedStepId, isTriggerSelected) {
|
|
21
|
-
return !!selectedStepId || isTriggerSelected;
|
|
20
|
+
function isPanelOpen(selectedStepId, isTriggerSelected, isVariablesSelected) {
|
|
21
|
+
return !!selectedStepId || isTriggerSelected || isVariablesSelected;
|
|
22
22
|
}
|
|
23
23
|
export function WorkflowBuilderV3({ builder: externalBuilder, initialConfig, initialSummary, onChange, onSave, readOnly = false, className, aiBuilderClient, }) {
|
|
24
24
|
const opts = { autoValidate: true };
|
|
@@ -235,16 +235,16 @@ export function WorkflowBuilderV3({ builder: externalBuilder, initialConfig, ini
|
|
|
235
235
|
return () => document.removeEventListener('keydown', handleKeyDown);
|
|
236
236
|
}, [builder, onSave, handleSave, requestDeleteStep]);
|
|
237
237
|
return (_jsxs("div", { className: cn('flex h-full w-full', className), "data-workflow-ui": true, children: [_jsxs("div", { ref: canvasRef, className: "relative overflow-hidden bg-slate-50 transition-[flex] duration-200", style: {
|
|
238
|
-
flex: isPanelOpen(builder.selectedStepId, builder.isTriggerSelected)
|
|
238
|
+
flex: isPanelOpen(builder.selectedStepId, builder.isTriggerSelected, builder.isVariablesSelected)
|
|
239
239
|
? '0 0 55%'
|
|
240
240
|
: '1 1 100%',
|
|
241
241
|
}, children: [_jsx(WorkflowCanvas, { zoom: zoom, config: builder.config, stepMeta: stepMeta, triggerMeta: triggerMeta, selectedStepId: builder.selectedStepId, isTriggerSelected: builder.isTriggerSelected, isTriggerConfigured: builder.isTriggerConfigured, readOnly: readOnly, onTriggerClick: handleTriggerClick, onStepClick: handleStepClick, onAddStep: handleAddStep, onCanvasClick: handleCanvasClick, onDeleteStep: (id) => requestDeleteStep(id), onDuplicateStep: (id) => builder.duplicateStep(id), onToggleStepDisabled: (id) => builder.toggleStepDisabled(id), onAddBranch: (stepId, container, name) => builder.addBranch(stepId, container, name), onRenameBranch: (stepId, container, oldName, newName) => builder.renameBranch(stepId, container, oldName, newName), onUpdateGroup: (groupId, patch) => {
|
|
242
242
|
const current = builder.config.groups?.find((g) => g.id === groupId);
|
|
243
243
|
if (current)
|
|
244
244
|
builder.upsertGroup({ ...current, ...patch });
|
|
245
|
-
}, issuesByStep: grouped.byStep, triggerHasIssues: grouped.trigger.length > 0 }), !readOnly && grouped.total > 0 && (_jsx("div", { className: "absolute left-3 top-3 z-10", children: _jsx(IssueBar, { total: grouped.total, position: safeCursor + 1, targetCount: issueTargets.length, onPrev: () => cycleIssue(-1), onNext: () => cycleIssue(1) }) })), !readOnly && (_jsx(BuilderToolbar, { canUndo: builder.canUndo, canRedo: builder.canRedo, onUndo: builder.undo, onRedo: builder.redo, onZoomIn: handleZoomIn, onZoomOut: handleZoomOut, onFitView: handleFitView, ...(aiBuilderClient
|
|
245
|
+
}, issuesByStep: grouped.byStep, triggerHasIssues: grouped.trigger.length > 0 }), !readOnly && grouped.total > 0 && (_jsx("div", { className: "absolute left-3 top-3 z-10", children: _jsx(IssueBar, { total: grouped.total, position: safeCursor + 1, targetCount: issueTargets.length, onPrev: () => cycleIssue(-1), onNext: () => cycleIssue(1) }) })), !readOnly && (_jsx(BuilderToolbar, { canUndo: builder.canUndo, canRedo: builder.canRedo, onUndo: builder.undo, onRedo: builder.redo, onZoomIn: handleZoomIn, onZoomOut: handleZoomOut, onFitView: handleFitView, onOpenVariables: () => builder.selectVariables(), variablesActive: builder.isVariablesSelected, variablesCount: builder.config.variables?.filter((v) => v.key.trim()).length ?? 0, ...(aiBuilderClient
|
|
246
246
|
? { showAiPanel, onToggleAiPanel: () => setShowAiPanel((v) => !v) }
|
|
247
|
-
: {}) })), !readOnly && onSave && (_jsxs("div", { className: "absolute right-3 top-3 z-10 flex items-center gap-2", children: [saveError && (_jsx("span", { className: "max-w-xs truncate rounded-md bg-red-50 px-2 py-1 text-[11px] text-red-600", title: saveError, children: saveError })), (builder.isDirty || summaryDirty) && !justSaved && (_jsx("span", { className: "text-[11px] font-medium text-amber-600", title: "Unsaved changes", children: "\u25CF Unsaved" })), _jsx(SummaryButton, { value: summary, onChange: setSummary }), _jsxs("button", { type: "button", "data-testid": "builder-save", onClick: () => void handleSave(), disabled: saving, className: cn('flex items-center gap-1.5 rounded-md px-3.5 py-1.5 text-[13px] font-semibold text-white shadow-sm transition-colors', justSaved ? 'bg-emerald-500 hover:bg-emerald-600' : 'bg-indigo-500 hover:bg-indigo-600', saving && 'opacity-50 cursor-not-allowed'), children: [justSaved ? (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) : (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), _jsx("path", { d: "M17 21v-8H7v8" }), _jsx("path", { d: "M7 3v5h8" })] })), saving ? 'Saving…' : justSaved ? 'Saved' : 'Save'] })] }))] }), _jsx(SidePanel, { selectedStep: selectedStep, isTriggerSelected: builder.isTriggerSelected, config: builder.config, stepMeta: stepMeta, triggerMeta: triggerMeta, triggerType: builder.config.trigger.type, triggerConfig: (builder.config.trigger.config ?? {}), readOnly: readOnly, issues: builder.selectedStepId ? grouped.byStep.get(builder.selectedStepId) : undefined, triggerIssues: builder.isTriggerSelected ? grouped.trigger : undefined, onUpdateStepConfig: (id, config) => builder.updateStepConfig(id, config), onUpdateStepMeta: (id, meta) => builder.updateStepMeta(id, meta), onUpsertGroup: (group) => builder.upsertGroup(group), onAddStepCitation: (id, fieldPath, citation) => builder.addStepCitation(id, fieldPath, citation), onRemoveStepCitation: (id, citationPath, index) => builder.removeStepCitation(id, citationPath, index), onDeleteStep: (id) => requestDeleteStep(id), onDuplicateStep: (id) => builder.duplicateStep(id), onToggleStepDisabled: (id) => builder.toggleStepDisabled(id), onUpdateTriggerConfig: (config) => builder.updateTriggerConfig(config), onRequestChangeTrigger: () => setShowTriggerPicker(true), onClose: () => builder.clearSelection() }), aiBuilderClient && (_jsx(AiBuilderPanel, { isOpen: showAiPanel, currentConfig: builder.config, client: aiBuilderClient, onApplyConfig: (config) => builder.applyConfig(config), ...(onSave ? { onSave: (config) => onSave(config, null) } : {}), onClose: () => setShowAiPanel(false) })), _jsx(StepPicker, { open: showStepPicker, context: stepPickerContext, onSelect: handleStepPickerSelect, onClose: () => setShowStepPicker(false) }), _jsx(TriggerPicker, { open: showTriggerPicker, onSelect: handleTriggerPickerSelect, onClose: () => setShowTriggerPicker(false) }), pendingValidation && (_jsx(SaveValidationDialog, { result: pendingValidation, stepLabel: stepLabel, onJump: (target) => { setPendingValidation(null); jumpToIssueTarget(target); }, onCancel: () => setPendingValidation(null), onSaveAnyway: () => { setPendingValidation(null); void doSave(); } })), pendingDelete && (_jsx(DeleteStepDialog, { stepLabel: stepLabel(pendingDelete.stepId), referencingLabels: pendingDelete.labels, onCancel: () => setPendingDelete(null), onConfirm: () => {
|
|
247
|
+
: {}) })), !readOnly && onSave && (_jsxs("div", { className: "absolute right-3 top-3 z-10 flex items-center gap-2", children: [saveError && (_jsx("span", { className: "max-w-xs truncate rounded-md bg-red-50 px-2 py-1 text-[11px] text-red-600", title: saveError, children: saveError })), (builder.isDirty || summaryDirty) && !justSaved && (_jsx("span", { className: "text-[11px] font-medium text-amber-600", title: "Unsaved changes", children: "\u25CF Unsaved" })), _jsx(SummaryButton, { value: summary, onChange: setSummary }), _jsxs("button", { type: "button", "data-testid": "builder-save", onClick: () => void handleSave(), disabled: saving, className: cn('flex items-center gap-1.5 rounded-md px-3.5 py-1.5 text-[13px] font-semibold text-white shadow-sm transition-colors', justSaved ? 'bg-emerald-500 hover:bg-emerald-600' : 'bg-indigo-500 hover:bg-indigo-600', saving && 'opacity-50 cursor-not-allowed'), children: [justSaved ? (_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "3", strokeLinecap: "round", strokeLinejoin: "round", children: _jsx("polyline", { points: "20 6 9 17 4 12" }) })) : (_jsxs("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z" }), _jsx("path", { d: "M17 21v-8H7v8" }), _jsx("path", { d: "M7 3v5h8" })] })), saving ? 'Saving…' : justSaved ? 'Saved' : 'Save'] })] }))] }), _jsx(SidePanel, { selectedStep: selectedStep, isTriggerSelected: builder.isTriggerSelected, isVariablesSelected: builder.isVariablesSelected, variables: builder.config.variables ?? [], onUpdateVariables: (next) => builder.updateVariables(next), config: builder.config, stepMeta: stepMeta, triggerMeta: triggerMeta, triggerType: builder.config.trigger.type, triggerConfig: (builder.config.trigger.config ?? {}), readOnly: readOnly, issues: builder.selectedStepId ? grouped.byStep.get(builder.selectedStepId) : undefined, triggerIssues: builder.isTriggerSelected ? grouped.trigger : undefined, onUpdateStepConfig: (id, config) => builder.updateStepConfig(id, config), onUpdateStepMeta: (id, meta) => builder.updateStepMeta(id, meta), onUpsertGroup: (group) => builder.upsertGroup(group), onAddStepCitation: (id, fieldPath, citation) => builder.addStepCitation(id, fieldPath, citation), onRemoveStepCitation: (id, citationPath, index) => builder.removeStepCitation(id, citationPath, index), onDeleteStep: (id) => requestDeleteStep(id), onDuplicateStep: (id) => builder.duplicateStep(id), onToggleStepDisabled: (id) => builder.toggleStepDisabled(id), onUpdateTriggerConfig: (config) => builder.updateTriggerConfig(config), onRequestChangeTrigger: () => setShowTriggerPicker(true), onClose: () => builder.clearSelection() }), aiBuilderClient && (_jsx(AiBuilderPanel, { isOpen: showAiPanel, currentConfig: builder.config, client: aiBuilderClient, onApplyConfig: (config) => builder.applyConfig(config), ...(onSave ? { onSave: (config) => onSave(config, null) } : {}), onClose: () => setShowAiPanel(false) })), _jsx(StepPicker, { open: showStepPicker, context: stepPickerContext, onSelect: handleStepPickerSelect, onClose: () => setShowStepPicker(false) }), _jsx(TriggerPicker, { open: showTriggerPicker, onSelect: handleTriggerPickerSelect, onClose: () => setShowTriggerPicker(false) }), pendingValidation && (_jsx(SaveValidationDialog, { result: pendingValidation, stepLabel: stepLabel, onJump: (target) => { setPendingValidation(null); jumpToIssueTarget(target); }, onCancel: () => setPendingValidation(null), onSaveAnyway: () => { setPendingValidation(null); void doSave(); } })), pendingDelete && (_jsx(DeleteStepDialog, { stepLabel: stepLabel(pendingDelete.stepId), referencingLabels: pendingDelete.labels, onCancel: () => setPendingDelete(null), onConfirm: () => {
|
|
248
248
|
builder.removeStep(pendingDelete.stepId);
|
|
249
249
|
setPendingDelete(null);
|
|
250
250
|
} }))] }));
|