@xyne/workflow-ui 0.1.3 → 0.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.
Files changed (89) hide show
  1. package/dist/components/builder/v3/GroupContainer.d.ts +21 -0
  2. package/dist/components/builder/v3/GroupContainer.d.ts.map +1 -0
  3. package/dist/components/builder/v3/GroupContainer.js +65 -0
  4. package/dist/components/builder/v3/GroupContainer.js.map +1 -0
  5. package/dist/components/builder/v3/SidePanel.d.ts +7 -1
  6. package/dist/components/builder/v3/SidePanel.d.ts.map +1 -1
  7. package/dist/components/builder/v3/SidePanel.js +2 -2
  8. package/dist/components/builder/v3/SidePanel.js.map +1 -1
  9. package/dist/components/builder/v3/StepConfigPanel.d.ts +12 -2
  10. package/dist/components/builder/v3/StepConfigPanel.d.ts.map +1 -1
  11. package/dist/components/builder/v3/StepConfigPanel.js +18 -2
  12. package/dist/components/builder/v3/StepConfigPanel.js.map +1 -1
  13. package/dist/components/builder/v3/StepNode.d.ts +5 -1
  14. package/dist/components/builder/v3/StepNode.d.ts.map +1 -1
  15. package/dist/components/builder/v3/StepNode.js +3 -3
  16. package/dist/components/builder/v3/StepNode.js.map +1 -1
  17. package/dist/components/builder/v3/SummaryButton.d.ts +14 -0
  18. package/dist/components/builder/v3/SummaryButton.d.ts.map +1 -0
  19. package/dist/components/builder/v3/SummaryButton.js +15 -0
  20. package/dist/components/builder/v3/SummaryButton.js.map +1 -0
  21. package/dist/components/builder/v3/SummaryDialog.d.ts +14 -0
  22. package/dist/components/builder/v3/SummaryDialog.d.ts.map +1 -0
  23. package/dist/components/builder/v3/SummaryDialog.js +44 -0
  24. package/dist/components/builder/v3/SummaryDialog.js.map +1 -0
  25. package/dist/components/builder/v3/WorkflowBuilderV3.d.ts +5 -2
  26. package/dist/components/builder/v3/WorkflowBuilderV3.d.ts.map +1 -1
  27. package/dist/components/builder/v3/WorkflowBuilderV3.js +21 -5
  28. package/dist/components/builder/v3/WorkflowBuilderV3.js.map +1 -1
  29. package/dist/components/builder/v3/WorkflowCanvas.d.ts +5 -1
  30. package/dist/components/builder/v3/WorkflowCanvas.d.ts.map +1 -1
  31. package/dist/components/builder/v3/WorkflowCanvas.js +2 -2
  32. package/dist/components/builder/v3/WorkflowCanvas.js.map +1 -1
  33. package/dist/components/builder/v3/WorkflowTree.d.ts +9 -2
  34. package/dist/components/builder/v3/WorkflowTree.d.ts.map +1 -1
  35. package/dist/components/builder/v3/WorkflowTree.js +24 -7
  36. package/dist/components/builder/v3/WorkflowTree.js.map +1 -1
  37. package/dist/components/dashboard/WorkflowDashboard.d.ts +4 -2
  38. package/dist/components/dashboard/WorkflowDashboard.d.ts.map +1 -1
  39. package/dist/components/dashboard/WorkflowDashboard.js +2 -2
  40. package/dist/components/dashboard/WorkflowDashboard.js.map +1 -1
  41. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts +11 -0
  42. package/dist/components/dashboard/WorkflowSummaryEditor.d.ts.map +1 -0
  43. package/dist/components/dashboard/WorkflowSummaryEditor.js +46 -0
  44. package/dist/components/dashboard/WorkflowSummaryEditor.js.map +1 -0
  45. package/dist/components/execution/ExecutionHeader.d.ts +9 -1
  46. package/dist/components/execution/ExecutionHeader.d.ts.map +1 -1
  47. package/dist/components/execution/ExecutionHeader.js +4 -2
  48. package/dist/components/execution/ExecutionHeader.js.map +1 -1
  49. package/dist/components/execution/ExecutionTree.d.ts +4 -2
  50. package/dist/components/execution/ExecutionTree.d.ts.map +1 -1
  51. package/dist/components/execution/ExecutionTree.js +18 -4
  52. package/dist/components/execution/ExecutionTree.js.map +1 -1
  53. package/dist/components/execution/ExecutionViewer.d.ts.map +1 -1
  54. package/dist/components/execution/ExecutionViewer.js +20 -3
  55. package/dist/components/execution/ExecutionViewer.js.map +1 -1
  56. package/dist/components/execution/SidePanelShell.d.ts +24 -0
  57. package/dist/components/execution/SidePanelShell.d.ts.map +1 -0
  58. package/dist/components/execution/SidePanelShell.js +46 -0
  59. package/dist/components/execution/SidePanelShell.js.map +1 -0
  60. package/dist/components/execution/StepDetailPanel.d.ts +8 -1
  61. package/dist/components/execution/StepDetailPanel.d.ts.map +1 -1
  62. package/dist/components/execution/StepDetailPanel.js +4 -32
  63. package/dist/components/execution/StepDetailPanel.js.map +1 -1
  64. package/dist/components/execution/SummaryPanel.d.ts +19 -0
  65. package/dist/components/execution/SummaryPanel.d.ts.map +1 -0
  66. package/dist/components/execution/SummaryPanel.js +13 -0
  67. package/dist/components/execution/SummaryPanel.js.map +1 -0
  68. package/dist/components/index.d.ts +10 -0
  69. package/dist/components/index.d.ts.map +1 -1
  70. package/dist/components/index.js +5 -0
  71. package/dist/components/index.js.map +1 -1
  72. package/dist/components/shared/MarkdownView.d.ts +13 -0
  73. package/dist/components/shared/MarkdownView.d.ts.map +1 -0
  74. package/dist/components/shared/MarkdownView.js +30 -0
  75. package/dist/components/shared/MarkdownView.js.map +1 -0
  76. package/dist/hooks/use-workflow-builder.d.ts +11 -1
  77. package/dist/hooks/use-workflow-builder.d.ts.map +1 -1
  78. package/dist/hooks/use-workflow-builder.js +49 -0
  79. package/dist/hooks/use-workflow-builder.js.map +1 -1
  80. package/dist/index.d.ts +2 -2
  81. package/dist/index.d.ts.map +1 -1
  82. package/dist/index.js +2 -2
  83. package/dist/index.js.map +1 -1
  84. package/dist/styles.css +1 -1
  85. package/dist/utils/group-layout.d.ts +33 -0
  86. package/dist/utils/group-layout.d.ts.map +1 -0
  87. package/dist/utils/group-layout.js +53 -0
  88. package/dist/utils/group-layout.js.map +1 -0
  89. package/package.json +5 -4
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from 'react';
2
+ interface GroupContainerProps {
3
+ title: string;
4
+ description?: string | undefined;
5
+ children: ReactNode;
6
+ /** When true (builder), title/description are double-click editable. */
7
+ editable?: boolean | undefined;
8
+ /** Commit an edit to the group's title and/or description. */
9
+ onUpdate?: ((patch: {
10
+ title?: string;
11
+ description?: string;
12
+ }) => void) | undefined;
13
+ }
14
+ /**
15
+ * A labeled box wrapping a contiguous run of steps that share a `groupId`.
16
+ * Documentation overlay only — no effect on execution. Used in both the
17
+ * builder (`WorkflowTree`, editable) and the run view (`ExecutionTree`, read-only).
18
+ */
19
+ export declare function GroupContainer({ title, description, children, editable, onUpdate }: GroupContainerProps): import("react").JSX.Element;
20
+ export {};
21
+ //# sourceMappingURL=GroupContainer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/GroupContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAGpE,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,EAAE,SAAS,CAAC;IACpB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC/B,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACpF;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,mBAAmB,+BA2CvG"}
@@ -0,0 +1,65 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from 'react';
3
+ import { cn } from '../../shared/cn.js';
4
+ /**
5
+ * A labeled box wrapping a contiguous run of steps that share a `groupId`.
6
+ * Documentation overlay only — no effect on execution. Used in both the
7
+ * builder (`WorkflowTree`, editable) and the run view (`ExecutionTree`, read-only).
8
+ */
9
+ export function GroupContainer({ title, description, children, editable, onUpdate }) {
10
+ const canEdit = !!editable && !!onUpdate;
11
+ return (_jsx("div", { className: "flex flex-col items-center", children: _jsxs("div", { className: cn('relative rounded-xl border border-dashed border-indigo-200 px-6 pt-6 pb-4', 'bg-indigo-50/30'), children: [_jsxs("div", { className: "absolute -top-3 left-4 flex items-center gap-1.5 rounded-full bg-indigo-100 px-2.5 py-0.5 text-[10px] font-semibold uppercase tracking-wider text-indigo-600", children: [_jsxs("svg", { width: "10", height: "10", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M3 7V5a2 2 0 0 1 2-2h2" }), _jsx("path", { d: "M17 3h2a2 2 0 0 1 2 2v2" }), _jsx("path", { d: "M21 17v2a2 2 0 0 1-2 2h-2" }), _jsx("path", { d: "M7 21H5a2 2 0 0 1-2-2v-2" })] }), canEdit ? (_jsx(EditableTitle, { value: title, onCommit: (v) => onUpdate({ title: v }) })) : (title)] }), canEdit ? (_jsx(EditableDescription, { value: description ?? '', onCommit: (v) => onUpdate({ description: v }) })) : (description && (_jsx("div", { className: "mb-3 mx-auto max-w-xs text-center text-[11px] leading-snug text-slate-500", children: description }))), _jsx("div", { className: "flex flex-col items-center", children: children })] }) }));
12
+ }
13
+ // ─── Inline editors (builder only) ───
14
+ function EditableTitle({ value, onCommit }) {
15
+ const [editing, setEditing] = useState(false);
16
+ const [draft, setDraft] = useState(value);
17
+ const ref = useRef(null);
18
+ useEffect(() => { if (editing) {
19
+ setDraft(value);
20
+ ref.current?.focus();
21
+ ref.current?.select();
22
+ } }, [editing, value]);
23
+ if (!editing) {
24
+ return (_jsx("span", { onDoubleClick: () => setEditing(true), title: "Double-click to rename", className: "cursor-text", children: value }));
25
+ }
26
+ const commit = () => { setEditing(false); const v = draft.trim(); if (v && v !== value)
27
+ onCommit(v); };
28
+ return (_jsx("input", { ref: ref, value: draft, onChange: (e) => setDraft(e.target.value), onBlur: commit, onKeyDown: (e) => {
29
+ if (e.key === 'Enter') {
30
+ e.preventDefault();
31
+ commit();
32
+ }
33
+ else if (e.key === 'Escape') {
34
+ e.preventDefault();
35
+ setEditing(false);
36
+ }
37
+ },
38
+ // Inherit the pill's font; drop uppercase so editing reads naturally.
39
+ className: "w-28 rounded border border-indigo-300 bg-white px-1 py-0 text-[10px] font-semibold normal-case tracking-normal text-indigo-700 outline-none" }));
40
+ }
41
+ function EditableDescription({ value, onCommit }) {
42
+ const [editing, setEditing] = useState(false);
43
+ const [draft, setDraft] = useState(value);
44
+ const ref = useRef(null);
45
+ useEffect(() => { if (editing) {
46
+ setDraft(value);
47
+ ref.current?.focus();
48
+ } }, [editing, value]);
49
+ if (editing) {
50
+ const commit = () => { setEditing(false); if (draft !== value)
51
+ onCommit(draft); };
52
+ return (_jsx("textarea", { ref: ref, value: draft, onChange: (e) => setDraft(e.target.value), onBlur: commit, onKeyDown: (e) => {
53
+ if (e.key === 'Enter' && (e.metaKey || e.ctrlKey)) {
54
+ e.preventDefault();
55
+ commit();
56
+ }
57
+ else if (e.key === 'Escape') {
58
+ e.preventDefault();
59
+ setEditing(false);
60
+ }
61
+ }, rows: 2, placeholder: "Describe what this group does\u2026", className: "mb-3 mx-auto block w-64 resize-y rounded border border-indigo-300 bg-white px-2 py-1 text-center text-[11px] leading-snug text-slate-600 outline-none" }));
62
+ }
63
+ return (_jsx("div", { onDoubleClick: () => setEditing(true), title: "Double-click to edit", className: cn('mb-3 mx-auto max-w-xs cursor-text text-center text-[11px] leading-snug', value ? 'text-slate-500' : 'italic text-slate-300'), children: value || 'Double-click to add a description' }));
64
+ }
65
+ //# sourceMappingURL=GroupContainer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GroupContainer.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/GroupContainer.tsx"],"names":[],"mappings":"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"}
@@ -17,6 +17,12 @@ export interface SidePanelProps {
17
17
  triggerConfig: Record<string, unknown>;
18
18
  readOnly: boolean;
19
19
  onUpdateStepConfig: (stepId: string, config: Record<string, unknown>) => void;
20
+ onUpdateStepMeta: (stepId: string, meta: {
21
+ title?: string;
22
+ description?: string;
23
+ groupId?: string | null;
24
+ }) => void;
25
+ onUpsertGroup: (group: import('@xyne/workflow-sdk/builder').StepGroup) => void;
20
26
  onDeleteStep: (stepId: string) => void;
21
27
  onDuplicateStep: (stepId: string) => void;
22
28
  onToggleStepDisabled: (stepId: string) => void;
@@ -24,5 +30,5 @@ export interface SidePanelProps {
24
30
  onRequestChangeTrigger: () => void;
25
31
  onClose: () => void;
26
32
  }
27
- export declare function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, onUpdateStepConfig, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }: SidePanelProps): import("react").JSX.Element;
33
+ export declare function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }: SidePanelProps): import("react").JSX.Element;
28
34
  //# 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;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKjF,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,4CAA4C;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,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,kBAAkB,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC9E,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,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,GACR,EAAE,cAAc,+BAwDhB"}
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;AACrF,OAAO,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,qCAAqC,CAAC;AAKjF,MAAM,WAAW,cAAc;IAC7B,4CAA4C;IAC5C,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACxC,4CAA4C;IAC5C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,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,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,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,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,GACR,EAAE,cAAc,+BA2DhB"}
@@ -2,12 +2,12 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { StepConfigPanel } from './StepConfigPanel.js';
3
3
  import { TriggerConfigPanel } from './TriggerConfigPanel.js';
4
4
  import { cn } from '../../shared/cn.js';
5
- export function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, onUpdateStepConfig, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }) {
5
+ export function SidePanel({ selectedStep, isTriggerSelected, config, stepMeta, triggerMeta, triggerType, triggerConfig, readOnly, onUpdateStepConfig, onUpdateStepMeta, onUpsertGroup, onDeleteStep, onDuplicateStep, onToggleStepDisabled, onUpdateTriggerConfig, onRequestChangeTrigger, onClose, }) {
6
6
  const isOpen = !!selectedStep || isTriggerSelected;
7
7
  const meta = selectedStep ? stepMeta.get(selectedStep.type) : undefined;
8
8
  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
9
  flex: isOpen ? '0 0 45%' : '0 0 0%',
10
10
  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), 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, onUpdateConfig: onUpdateTriggerConfig, onRequestChangeTrigger: onRequestChangeTrigger, readOnly: readOnly })) : null] })) }));
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, 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, onUpdateConfig: onUpdateTriggerConfig, onRequestChangeTrigger: onRequestChangeTrigger, readOnly: readOnly })) : null] })) }));
12
12
  }
13
13
  //# sourceMappingURL=SidePanel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SidePanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AA2BxC,MAAM,UAAU,SAAS,CAAC,EACxB,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,GACQ;IACf,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,IAAI,iBAAiB,CAAC;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,4GAA4G,EAC5G,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sCAAsC,CAChE,EACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACnC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,SAAS;SACpE,YAEA,MAAM,IAAI,CACT,8BAGE,iBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,0JAA0J,YAEpK,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,aACrH,eAAM,CAAC,EAAC,YAAY,GAAG,EAAA,eAAM,CAAC,EAAC,YAAY,GAAG,IAC1C,GACC,EAGR,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,eAAe,IAEd,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,IAAI,EAAE,QAAQ,EACxB,IAAI,EAAE,IAAI,EAAE,IAAI,EAChB,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,EAC/E,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,EAC7C,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,EACnD,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC,EAC7D,QAAQ,EAAE,QAAQ,IATb,YAAY,CAAC,EAAE,CAUpB,CACH,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACtB,KAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,qBAAqB,EACrC,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,GACG,CACP,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"SidePanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SidePanel.tsx"],"names":[],"mappings":";AAEA,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AA6BxC,MAAM,UAAU,SAAS,CAAC,EACxB,YAAY,EACZ,iBAAiB,EACjB,MAAM,EACN,QAAQ,EACR,WAAW,EACX,WAAW,EACX,aAAa,EACb,QAAQ,EACR,kBAAkB,EAClB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,OAAO,GACQ;IACf,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,IAAI,iBAAiB,CAAC;IACnD,MAAM,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAExE,OAAO,CACL,cACE,SAAS,EAAE,EAAE,CACX,4GAA4G,EAC5G,MAAM,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,sCAAsC,CAChE,EACD,KAAK,EAAE;YACL,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ;YACnC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAAC,SAAS;SACpE,YAEA,MAAM,IAAI,CACT,8BAGE,iBACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAC,0JAA0J,YAEpK,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,aACrH,eAAM,CAAC,EAAC,YAAY,GAAG,EAAA,eAAM,CAAC,EAAC,YAAY,GAAG,IAC1C,GACC,EAGR,YAAY,CAAC,CAAC,CAAC,CACd,KAAC,eAAe,IAEd,IAAI,EAAE,YAAY,EAClB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,IAAI,EAAE,QAAQ,EACxB,IAAI,EAAE,IAAI,EAAE,IAAI,EAChB,cAAc,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,kBAAkB,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,EAC/E,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,gBAAgB,CAAC,YAAY,CAAC,EAAE,EAAE,UAAU,CAAC,EAC3E,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,YAAY,CAAC,EAAE,CAAC,EAC7C,WAAW,EAAE,GAAG,EAAE,CAAC,eAAe,CAAC,YAAY,CAAC,EAAE,CAAC,EACnD,gBAAgB,EAAE,GAAG,EAAE,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,CAAC,EAC7D,QAAQ,EAAE,QAAQ,IAZb,YAAY,CAAC,EAAE,CAapB,CACH,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CACtB,KAAC,kBAAkB,IACjB,WAAW,EAAE,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,qBAAqB,EACrC,sBAAsB,EAAE,sBAAsB,EAC9C,QAAQ,EAAE,QAAQ,GAClB,CACH,CAAC,CAAC,CAAC,IAAI,IACP,CACJ,GACG,CACP,CAAC;AACJ,CAAC"}
@@ -1,14 +1,24 @@
1
- import type { WorkflowConfig, WorkflowStepConfig } from '@xyne/workflow-sdk/builder';
1
+ import type { WorkflowConfig, WorkflowStepConfig, StepGroup } from '@xyne/workflow-sdk/builder';
2
2
  export interface StepConfigPanelProps {
3
3
  step: WorkflowStepConfig;
4
4
  config: WorkflowConfig;
5
5
  category?: string | undefined;
6
6
  icon?: string | undefined;
7
7
  onUpdateConfig: (config: Record<string, unknown>) => void;
8
+ /** Update the step's documentation fields (alias title/description, group membership). */
9
+ onUpdateMeta?: (meta: {
10
+ title?: string;
11
+ description?: string;
12
+ groupId?: string | null;
13
+ }) => void;
14
+ /** Existing step groups (for the group selector). */
15
+ groups?: StepGroup[] | undefined;
16
+ /** Create/update a group (used when creating a new group or editing its title). */
17
+ onUpsertGroup?: (group: StepGroup) => void;
8
18
  onDelete: () => void;
9
19
  onDuplicate: () => void;
10
20
  onToggleDisabled: () => void;
11
21
  readOnly: boolean;
12
22
  }
13
- export declare function StepConfigPanel({ step, config, category, icon, onUpdateConfig, onDelete, onDuplicate, onToggleDisabled, readOnly, }: StepConfigPanelProps): import("react").JSX.Element;
23
+ export declare function StepConfigPanel({ step, config, category, icon, onUpdateConfig, onUpdateMeta, groups, onUpsertGroup, onDelete, onDuplicate, onToggleDisabled, readOnly, }: StepConfigPanelProps): import("react").JSX.Element;
14
24
  //# sourceMappingURL=StepConfigPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfigPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepConfigPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAa,MAAM,4BAA4B,CAAC;AAgBhG,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1D,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB;AASD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,GACT,EAAE,oBAAoB,+BAwKtB"}
1
+ {"version":3,"file":"StepConfigPanel.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepConfigPanel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAa,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAgB3G,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,cAAc,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,CAAC;IAC1D,0FAA0F;IAC1F,YAAY,CAAC,EAAE,CAAC,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;IACjG,qDAAqD;IACrD,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC;IACjC,mFAAmF;IACnF,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,KAAK,IAAI,CAAC;IAC3C,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,WAAW,EAAE,MAAM,IAAI,CAAC;IACxB,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAaD,wBAAgB,eAAe,CAAC,EAC9B,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,IAAI,EACJ,cAAc,EACd,YAAY,EACZ,MAAM,EACN,aAAa,EACb,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,QAAQ,GACT,EAAE,oBAAoB,+BAmPtB"}
@@ -13,13 +13,16 @@ import { getStepIcon } from '../icons.js';
13
13
  function defaultCondition() {
14
14
  return { variable: '', operator: ConditionOperator.EQ, value: '' };
15
15
  }
16
+ function genGroupId() {
17
+ return `group_${Math.random().toString(36).slice(2, 8)}`;
18
+ }
16
19
  function formatTypeName(type) {
17
20
  return type
18
21
  .split(/[_-]/)
19
22
  .map((w) => w.charAt(0).toUpperCase() + w.slice(1).toLowerCase())
20
23
  .join(' ');
21
24
  }
22
- export function StepConfigPanel({ step, config, category, icon, onUpdateConfig, onDelete, onDuplicate, onToggleDisabled, readOnly, }) {
25
+ export function StepConfigPanel({ step, config, category, icon, onUpdateConfig, onUpdateMeta, groups, onUpsertGroup, onDelete, onDuplicate, onToggleDisabled, readOnly, }) {
23
26
  const isConditional = step.type === 'CONDITIONAL';
24
27
  const isSwitch = step.type === 'SWITCH';
25
28
  const hasSpecialEditor = isConditional || isSwitch;
@@ -39,7 +42,20 @@ export function StepConfigPanel({ step, config, category, icon, onUpdateConfig,
39
42
  return new Set(Object.keys(branches).map((k) => k.split('.')[0]));
40
43
  }, [stepConfig, descriptor?.configSchema]);
41
44
  const visibleFields = useMemo(() => fields.filter((f) => !branchTopKeys.has(f.path)), [fields, branchTopKeys]);
42
- 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: cn('flex h-9 w-9 shrink-0 items-center justify-center rounded-lg', theme.iconBg, theme.iconText), children: getStepIcon(icon, { size: 18 }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-sm font-semibold text-slate-800", children: displayName }), _jsxs("div", { className: "flex items-center gap-1.5 mt-0.5", children: [_jsx("span", { className: cn('h-1.5 w-1.5 rounded-full', theme.dot) }), _jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: category ?? step.type })] })] })] }), _jsxs("div", { className: "mt-3 flex items-center gap-2 rounded-md bg-slate-50 px-3 py-1.5", children: [_jsx("span", { className: "text-[10px] text-slate-400 font-medium", children: "Ref" }), _jsx("code", { className: "text-[11px] font-mono text-indigo-500 select-all", children: `{{${step.id}.output}}` })] })] }), _jsx("div", { className: "flex-1 overflow-y-auto px-5 py-4", children: isConditional ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-1 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Condition" }), _jsx("p", { className: "mb-3 text-[11px] text-slate-400", children: "Define when the true branch executes" }), _jsx(ConditionEditorPanel, { condition: stepConfig['condition'] ?? defaultCondition(), onChange: (c) => onUpdateConfig({ ...stepConfig, condition: c }), config: config, atStepId: step.id, readOnly: readOnly })] })) : isSwitch ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-1 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Switch Cases" }), _jsx("p", { className: "mb-3 text-[11px] text-slate-400", children: "Route to the first matching case" }), _jsx(SwitchCaseEditor, { cases: stepConfig['cases'] ?? [], onChange: (c) => onUpdateConfig({ ...stepConfig, cases: c }), config: config, atStepId: step.id, readOnly: readOnly })] })) : isLoading ? (_jsx("div", { className: "flex justify-center py-12", children: _jsx(LoadingSpinner, { size: "md" }) })) : visibleFields.length > 0 ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-3 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Configuration" }), _jsx(EnhancedSchemaFormRenderer, { fields: visibleFields, values: values, errors: errors, onChange: (path, value) => setFieldValue(path, value), config: config, atStepId: step.id, readOnly: readOnly })] })) : (_jsxs("div", { className: "flex flex-col items-center py-12 text-center", children: [_jsx("div", { className: "mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-slate-50 ring-1 ring-slate-100", children: _jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", className: "text-slate-300", strokeLinecap: "round", children: [_jsx("path", { d: "M12 8v4l3 3" }), _jsx("circle", { cx: "12", cy: "12", r: "10" })] }) }), _jsx("p", { className: "text-[13px] font-medium text-slate-400", children: "No configuration needed" }), _jsx("p", { className: "mt-1 text-[11px] text-slate-300", children: "This step works with default settings" })] })) }), !readOnly && (_jsxs("div", { className: "flex gap-2 border-t border-slate-100 px-5 py-3", children: [_jsxs("button", { onClick: onToggleDisabled, className: cn('flex items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-[12px] font-medium transition-all', isDisabled
45
+ 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: cn('flex h-9 w-9 shrink-0 items-center justify-center rounded-lg', theme.iconBg, theme.iconText), children: getStepIcon(icon, { size: 18 }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-sm font-semibold text-slate-800", children: displayName }), _jsxs("div", { className: "flex items-center gap-1.5 mt-0.5", children: [_jsx("span", { className: cn('h-1.5 w-1.5 rounded-full', theme.dot) }), _jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: category ?? step.type })] })] })] }), _jsxs("div", { className: "mt-3 flex items-center gap-2 rounded-md bg-slate-50 px-3 py-1.5", children: [_jsx("span", { className: "text-[10px] text-slate-400 font-medium", children: "Ref" }), _jsx("code", { className: "text-[11px] font-mono text-indigo-500 select-all", children: `{{${step.id}.output}}` })] })] }), _jsxs("div", { className: "flex-1 overflow-y-auto px-5 py-4", children: [onUpdateMeta && !readOnly && (_jsxs("div", { className: "mb-5 space-y-3 rounded-lg border border-slate-100 bg-slate-50/50 p-3", children: [_jsx("h4", { className: "text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Annotations" }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-[11px] font-medium text-slate-500", children: "Title" }), _jsx("input", { type: "text", value: step.title ?? '', onChange: (e) => onUpdateMeta({ title: e.target.value }), placeholder: displayName, className: "w-full rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-100" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-[11px] font-medium text-slate-500", children: "Description" }), _jsx("textarea", { value: step.description ?? '', onChange: (e) => onUpdateMeta({ description: e.target.value }), rows: 2, placeholder: "What this step does\u2026", className: "w-full resize-y rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-100" })] }), _jsxs("div", { children: [_jsx("label", { className: "mb-1 block text-[11px] font-medium text-slate-500", children: "Group" }), _jsxs("select", { value: step.groupId ?? '', onChange: (e) => {
46
+ const v = e.target.value;
47
+ if (v === '__new__') {
48
+ const id = genGroupId();
49
+ onUpsertGroup?.({ id, title: 'New Group' });
50
+ onUpdateMeta({ groupId: id });
51
+ }
52
+ else {
53
+ onUpdateMeta({ groupId: v || null });
54
+ }
55
+ }, className: "w-full rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] bg-white outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-100", children: [_jsx("option", { value: "", children: "No group" }), (groups ?? []).map((g) => (_jsx("option", { value: g.id, children: g.title }, g.id))), _jsx("option", { value: "__new__", children: "\uFF0B Create group\u2026" })] }), step.groupId && onUpsertGroup && (() => {
56
+ const current = (groups ?? []).find((g) => g.id === step.groupId);
57
+ return current ? (_jsxs("div", { className: "mt-2 space-y-1.5 rounded-md border border-slate-200 bg-white p-2", children: [_jsx("span", { className: "block text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Group details" }), _jsx("input", { type: "text", value: current.title, onChange: (e) => onUpsertGroup({ ...current, title: e.target.value }), placeholder: "Group title", className: "w-full rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-100" }), _jsx("textarea", { value: current.description ?? '', onChange: (e) => onUpsertGroup({ ...current, description: e.target.value }), rows: 2, placeholder: "What this group of steps does\u2026", className: "w-full resize-y rounded-md border border-slate-200 px-2.5 py-1.5 text-[12px] outline-none focus:border-indigo-400 focus:ring-1 focus:ring-indigo-100" })] })) : null;
58
+ })()] })] })), isConditional ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-1 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Condition" }), _jsx("p", { className: "mb-3 text-[11px] text-slate-400", children: "Define when the true branch executes" }), _jsx(ConditionEditorPanel, { condition: stepConfig['condition'] ?? defaultCondition(), onChange: (c) => onUpdateConfig({ ...stepConfig, condition: c }), config: config, atStepId: step.id, readOnly: readOnly })] })) : isSwitch ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-1 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Switch Cases" }), _jsx("p", { className: "mb-3 text-[11px] text-slate-400", children: "Route to the first matching case" }), _jsx(SwitchCaseEditor, { cases: stepConfig['cases'] ?? [], onChange: (c) => onUpdateConfig({ ...stepConfig, cases: c }), config: config, atStepId: step.id, readOnly: readOnly })] })) : isLoading ? (_jsx("div", { className: "flex justify-center py-12", children: _jsx(LoadingSpinner, { size: "md" }) })) : visibleFields.length > 0 ? (_jsxs("div", { children: [_jsx("h4", { className: "mb-3 text-[10px] font-bold uppercase tracking-widest text-slate-400", children: "Configuration" }), _jsx(EnhancedSchemaFormRenderer, { fields: visibleFields, values: values, errors: errors, onChange: (path, value) => setFieldValue(path, value), config: config, atStepId: step.id, readOnly: readOnly })] })) : (_jsxs("div", { className: "flex flex-col items-center py-12 text-center", children: [_jsx("div", { className: "mb-3 flex h-10 w-10 items-center justify-center rounded-full bg-slate-50 ring-1 ring-slate-100", children: _jsxs("svg", { width: "18", height: "18", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "1.5", className: "text-slate-300", strokeLinecap: "round", children: [_jsx("path", { d: "M12 8v4l3 3" }), _jsx("circle", { cx: "12", cy: "12", r: "10" })] }) }), _jsx("p", { className: "text-[13px] font-medium text-slate-400", children: "No configuration needed" }), _jsx("p", { className: "mt-1 text-[11px] text-slate-300", children: "This step works with default settings" })] }))] }), !readOnly && (_jsxs("div", { className: "flex gap-2 border-t border-slate-100 px-5 py-3", children: [_jsxs("button", { onClick: onToggleDisabled, className: cn('flex items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-[12px] font-medium transition-all', isDisabled
43
59
  ? 'border-emerald-200 text-emerald-600 hover:bg-emerald-50'
44
60
  : 'border-slate-200 text-slate-500 hover:bg-slate-50 hover:border-slate-300'), children: [_jsx("svg", { width: "12", height: "12", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", children: isDisabled
45
61
  ? _jsxs(_Fragment, { children: [_jsx("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] })
@@ -1 +1 @@
1
- {"version":3,"file":"StepConfigPanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepConfigPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepConfigPanel.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepConfigPanel.tsx"],"names":[],"mappings":"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"}
@@ -2,6 +2,10 @@ export type ExecutionStepStatus = 'pending' | 'running' | 'completed' | 'failed'
2
2
  export interface StepNodeProps {
3
3
  stepId: string;
4
4
  label: string;
5
+ /** Secondary line under the label — the step type name, shown when an alias title is set. */
6
+ subLabel?: string | undefined;
7
+ /** Per-step alias description; surfaced as a one-line subtitle + hover tooltip. */
8
+ description?: string | undefined;
5
9
  category?: string | undefined;
6
10
  icon?: string | undefined;
7
11
  isSelected: boolean;
@@ -14,5 +18,5 @@ export interface StepNodeProps {
14
18
  onDuplicate?: () => void;
15
19
  onToggleDisabled?: () => void;
16
20
  }
17
- export declare function StepNode({ label, category, icon, isSelected, isDisabled, readOnly, executionStatus, onClick, onDelete, onDuplicate, onToggleDisabled, }: StepNodeProps): import("react").JSX.Element;
21
+ export declare function StepNode({ label, subLabel, description, category, icon, isSelected, isDisabled, readOnly, executionStatus, onClick, onDelete, onDuplicate, onToggleDisabled, }: StepNodeProps): import("react").JSX.Element;
18
22
  //# sourceMappingURL=StepNode.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StepNode.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepNode.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExG,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,gBAAgB,GACjB,EAAE,aAAa,+BA+Gf"}
1
+ {"version":3,"file":"StepNode.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepNode.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;AAExG,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,6FAA6F;IAC7F,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,mFAAmF;IACnF,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;IAClB,wFAAwF;IACxF,eAAe,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAClD,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CAC/B;AAED,wBAAgB,QAAQ,CAAC,EACvB,KAAK,EACL,QAAQ,EACR,WAAW,EACX,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,eAAe,EACf,OAAO,EACP,QAAQ,EACR,WAAW,EACX,gBAAgB,GACjB,EAAE,aAAa,+BA0Hf"}
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { cn } from '../../shared/cn.js';
3
3
  import { getCategoryTheme } from '../theme.js';
4
4
  import { getStepIcon } from '../icons.js';
5
- export function StepNode({ label, category, icon, isSelected, isDisabled, readOnly, executionStatus, onClick, onDelete, onDuplicate, onToggleDisabled, }) {
5
+ export function StepNode({ label, subLabel, description, category, icon, isSelected, isDisabled, readOnly, executionStatus, onClick, onDelete, onDuplicate, onToggleDisabled, }) {
6
6
  const theme = getCategoryTheme(category);
7
7
  const isExecution = executionStatus !== undefined;
8
8
  // Execution-mode border + ring classes
@@ -23,11 +23,11 @@ export function StepNode({ label, category, icon, isSelected, isDisabled, readOn
23
23
  skipped: '',
24
24
  }[executionStatus]) : undefined;
25
25
  const isPending = isExecution && (executionStatus === 'pending' || executionStatus === 'skipped');
26
- return (_jsxs("div", { onClick: (e) => { e.stopPropagation(); onClick(); }, className: cn('group relative flex w-48 cursor-pointer items-center gap-3 rounded-lg border bg-white px-3 py-3 transition-all', isExecution
26
+ return (_jsxs("div", { onClick: (e) => { e.stopPropagation(); onClick(); }, title: description || undefined, className: cn('group relative flex w-48 cursor-pointer items-center gap-3 rounded-lg border bg-white px-3 py-3 transition-all', isExecution
27
27
  ? `border-l-[3px] ${execBorder} ${execRing} shadow-sm`
28
28
  : cn(`border-l-[3px] ${theme.accent}`, isSelected
29
29
  ? `ring-2 ${theme.ring} shadow-md`
30
- : 'border-slate-200 shadow-sm hover:shadow-md hover:-translate-y-px hover:border-slate-300'), isSelected && isExecution && 'shadow-md', (isDisabled || isPending) && 'opacity-40 grayscale'), style: { animation: 'wui-scale-in 200ms ease-out' }, children: [_jsx("div", { className: cn('flex h-8 w-8 shrink-0 items-center justify-center rounded-lg', theme.iconBg, theme.iconText), children: getStepIcon(icon, { size: 16 }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-[13px] font-semibold text-slate-800 leading-tight", children: label }), category && (_jsxs("div", { className: "mt-0.5 flex items-center gap-1.5", children: [_jsx("span", { className: cn('h-1.5 w-1.5 rounded-full', theme.dot) }), _jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: category })] }))] }), !readOnly && (_jsxs("div", { className: cn('absolute -right-1 -top-3 flex gap-1 transition-all duration-150', 'opacity-0 translate-y-1 group-hover:opacity-100 group-hover:translate-y-0'), children: [onDuplicate && (_jsx("button", { onClick: (e) => { e.stopPropagation(); onDuplicate(); }, className: "flex h-6 w-6 items-center justify-center rounded-md bg-white text-slate-400 shadow-md ring-1 ring-slate-200/80 hover:text-slate-700 hover:ring-slate-300 transition-colors", title: "Duplicate", children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { width: "13", height: "13", x: "9", y: "9", rx: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }) })), onToggleDisabled && (_jsx("button", { onClick: (e) => { e.stopPropagation(); onToggleDisabled(); }, className: "flex h-6 w-6 items-center justify-center rounded-md bg-white text-slate-400 shadow-md ring-1 ring-slate-200/80 hover:text-slate-700 hover:ring-slate-300 transition-colors", title: isDisabled ? 'Enable' : 'Disable', children: _jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: isDisabled
30
+ : 'border-slate-200 shadow-sm hover:shadow-md hover:-translate-y-px hover:border-slate-300'), isSelected && isExecution && 'shadow-md', (isDisabled || isPending) && 'opacity-40 grayscale'), style: { animation: 'wui-scale-in 200ms ease-out' }, children: [_jsx("div", { className: cn('flex h-8 w-8 shrink-0 items-center justify-center rounded-lg', theme.iconBg, theme.iconText), children: getStepIcon(icon, { size: 16 }) }), _jsxs("div", { className: "min-w-0 flex-1", children: [_jsx("div", { className: "truncate text-[13px] font-semibold text-slate-800 leading-tight", children: label }), subLabel && (_jsx("div", { className: "truncate text-[11px] text-slate-500 leading-tight", children: subLabel })), description && (_jsx("div", { className: "truncate text-[10px] text-slate-400 leading-tight", children: description })), category && (_jsxs("div", { className: "mt-0.5 flex items-center gap-1.5", children: [_jsx("span", { className: cn('h-1.5 w-1.5 rounded-full', theme.dot) }), _jsx("span", { className: "text-[10px] text-slate-400 uppercase tracking-wide", children: category })] }))] }), !readOnly && (_jsxs("div", { className: cn('absolute -right-1 -top-3 flex gap-1 transition-all duration-150', 'opacity-0 translate-y-1 group-hover:opacity-100 group-hover:translate-y-0'), children: [onDuplicate && (_jsx("button", { onClick: (e) => { e.stopPropagation(); onDuplicate(); }, className: "flex h-6 w-6 items-center justify-center rounded-md bg-white text-slate-400 shadow-md ring-1 ring-slate-200/80 hover:text-slate-700 hover:ring-slate-300 transition-colors", title: "Duplicate", children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("rect", { width: "13", height: "13", x: "9", y: "9", rx: "2" }), _jsx("path", { d: "M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1" })] }) })), onToggleDisabled && (_jsx("button", { onClick: (e) => { e.stopPropagation(); onToggleDisabled(); }, className: "flex h-6 w-6 items-center justify-center rounded-md bg-white text-slate-400 shadow-md ring-1 ring-slate-200/80 hover:text-slate-700 hover:ring-slate-300 transition-colors", title: isDisabled ? 'Enable' : 'Disable', children: _jsx("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", children: isDisabled
31
31
  ? _jsxs(_Fragment, { children: [_jsx("path", { d: "M2 12s3-7 10-7 10 7 10 7-3 7-10 7-10-7-10-7Z" }), _jsx("circle", { cx: "12", cy: "12", r: "3" })] })
32
32
  : _jsxs(_Fragment, { children: [_jsx("path", { d: "M10.73 5.08A10.43 10.43 0 0 1 12 5c7 0 10 7 10 7a13.16 13.16 0 0 1-1.67 2.68" }), _jsx("path", { d: "M6.61 6.61A13.526 13.526 0 0 0 2 12s3 7 10 7a9.74 9.74 0 0 0 5.39-1.61" }), _jsx("line", { x1: "2", x2: "22", y1: "2", y2: "22" })] }) }) })), onDelete && (_jsx("button", { onClick: (e) => { e.stopPropagation(); onDelete(); }, className: "flex h-6 w-6 items-center justify-center rounded-md bg-white text-red-400 shadow-md ring-1 ring-red-200/60 hover:text-red-600 hover:bg-red-50 hover:ring-red-300 transition-colors", title: "Delete", children: _jsxs("svg", { width: "11", height: "11", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2.5", strokeLinecap: "round", strokeLinejoin: "round", children: [_jsx("path", { d: "M3 6h18" }), _jsx("path", { d: "M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6" }), _jsx("path", { d: "M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2" })] }) }))] }))] }));
33
33
  }
@@ -1 +1 @@
1
- {"version":3,"file":"StepNode.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepNode.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"StepNode.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/StepNode.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export interface SummaryButtonProps {
2
+ /** Current summary markdown (empty string when unset). */
3
+ value: string;
4
+ /** Called when the user applies edits in the dialog. Persists via the builder's Save. */
5
+ onChange: (value: string) => void;
6
+ className?: string | undefined;
7
+ }
8
+ /**
9
+ * Trigger for the workflow-summary editor: a compact button that opens a modal
10
+ * markdown editor ({@link SummaryDialog}). The summary is part of the builder's
11
+ * save payload, so there is no separate save here.
12
+ */
13
+ export declare function SummaryButton({ value, onChange, className }: SummaryButtonProps): import("react").JSX.Element;
14
+ //# sourceMappingURL=SummaryButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryButton.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryButton.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,yFAAyF;IACzF,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAChC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,kBAAkB,+BAkC/E"}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
3
+ import { SummaryDialog } from './SummaryDialog.js';
4
+ import { cn } from '../../shared/cn.js';
5
+ /**
6
+ * Trigger for the workflow-summary editor: a compact button that opens a modal
7
+ * markdown editor ({@link SummaryDialog}). The summary is part of the builder's
8
+ * save payload, so there is no separate save here.
9
+ */
10
+ export function SummaryButton({ value, onChange, className }) {
11
+ const [open, setOpen] = useState(false);
12
+ const hasSummary = value.trim().length > 0;
13
+ return (_jsxs("div", { className: cn('relative', className), children: [_jsxs("button", { type: "button", "data-testid": "summary-button", onClick: () => setOpen(true), title: hasSummary ? 'Edit workflow summary' : 'Add a summary describing this workflow', className: cn('flex items-center gap-1.5 rounded-md border px-2.5 py-1.5 text-[13px] font-semibold shadow-sm transition-colors', 'border-slate-200 bg-white 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: "M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z" }), _jsx("path", { d: "M14 2v6h6" }), _jsx("path", { d: "M16 13H8" }), _jsx("path", { d: "M16 17H8" }), _jsx("path", { d: "M10 9H8" })] }), "Summary", !hasSummary && (_jsx("span", { className: "h-1.5 w-1.5 rounded-full bg-amber-400", title: "No summary yet" }))] }), open && (_jsx(SummaryDialog, { value: value, onApply: onChange, onClose: () => setOpen(false) }))] }));
14
+ }
15
+ //# sourceMappingURL=SummaryButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryButton.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,EAAE,EAAE,MAAM,oBAAoB,CAAC;AAUxC;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAsB;IAC9E,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IACxC,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,CAAC;IAE3C,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,SAAS,CAAC,aACvC,kBACE,IAAI,EAAC,QAAQ,iBACD,gBAAgB,EAC5B,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,EAC5B,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,wCAAwC,EACtF,SAAS,EAAE,EAAE,CACX,iHAAiH,EACjH,4DAA4D,CAC7D,aAED,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,aAC5I,eAAM,CAAC,EAAC,4DAA4D,GAAE,EAAA,eAAM,CAAC,EAAC,WAAW,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,eAAM,CAAC,EAAC,UAAU,GAAE,EAAA,eAAM,CAAC,EAAC,SAAS,GAAE,IAClJ,aAEL,CAAC,UAAU,IAAI,CACd,eAAM,SAAS,EAAC,uCAAuC,EAAC,KAAK,EAAC,gBAAgB,GAAG,CAClF,IACM,EAER,IAAI,IAAI,CACP,KAAC,aAAa,IACZ,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,GAC7B,CACH,IACG,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface SummaryDialogProps {
2
+ /** Current summary markdown. */
3
+ value: string;
4
+ /** Apply the edited summary (in-memory). Persistence happens via the builder's Save. */
5
+ onApply: (value: string) => void;
6
+ onClose: () => void;
7
+ }
8
+ /**
9
+ * Modal editor for the workflow summary (markdown). Author can paste/type
10
+ * markdown or upload a `.md` file, with a live rendered preview. Applying only
11
+ * updates in-memory state — the summary is persisted with the workflow's Save.
12
+ */
13
+ export declare function SummaryDialog({ value, onApply, onClose }: SummaryDialogProps): import("react").JSX.Element;
14
+ //# sourceMappingURL=SummaryDialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryDialog.d.ts","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryDialog.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,kBAAkB;IACjC,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,wFAAwF;IACxF,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,EAAE,kBAAkB,+BA2H5E"}
@@ -0,0 +1,44 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useRef, useState } from 'react';
3
+ import { MarkdownView } from '../../shared/MarkdownView.js';
4
+ import { cn } from '../../shared/cn.js';
5
+ /**
6
+ * Modal editor for the workflow summary (markdown). Author can paste/type
7
+ * markdown or upload a `.md` file, with a live rendered preview. Applying only
8
+ * updates in-memory state — the summary is persisted with the workflow's Save.
9
+ */
10
+ export function SummaryDialog({ value, onApply, onClose }) {
11
+ const [draft, setDraft] = useState(value);
12
+ const [tab, setTab] = useState('write');
13
+ const [uploadError, setUploadError] = useState(null);
14
+ const fileRef = useRef(null);
15
+ const handleUpload = async (file) => {
16
+ setUploadError(null);
17
+ if (!file)
18
+ return;
19
+ const tooBig = file.size > 1024 * 1024; // 1 MB guard
20
+ if (tooBig) {
21
+ setUploadError('File is too large (max 1 MB).');
22
+ return;
23
+ }
24
+ try {
25
+ const text = await file.text();
26
+ setDraft(text);
27
+ setTab('preview');
28
+ }
29
+ catch {
30
+ setUploadError('Could not read that file.');
31
+ }
32
+ };
33
+ const apply = () => {
34
+ onApply(draft);
35
+ onClose();
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/30", 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
+ }
39
+ function TabButton({ label, active, onClick, testid, }) {
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
41
+ ? 'border-indigo-500 text-indigo-600'
42
+ : 'border-transparent text-slate-400 hover:text-slate-600'), children: label }));
43
+ }
44
+ //# sourceMappingURL=SummaryDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SummaryDialog.js","sourceRoot":"","sources":["../../../../src/components/builder/v3/SummaryDialog.tsx"],"names":[],"mappings":"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"}
@@ -3,11 +3,14 @@ import { type UseWorkflowBuilderReturn } from '../../../hooks/use-workflow-build
3
3
  export interface WorkflowBuilderV3Props {
4
4
  builder?: UseWorkflowBuilderReturn | undefined;
5
5
  initialConfig?: WorkflowConfig | undefined;
6
+ /** Initial workflow summary (a record-level column, edited via the popover). */
7
+ initialSummary?: string | null | undefined;
6
8
  onChange?: ((config: WorkflowConfig) => void) | undefined;
7
- onSave?: ((config: WorkflowConfig) => Promise<void>) | undefined;
9
+ /** Persists the workflow. Summary travels with config in one save call. */
10
+ onSave?: ((config: WorkflowConfig, summary: string | null) => Promise<void>) | undefined;
8
11
  onTestRun?: ((config: WorkflowConfig) => void) | undefined;
9
12
  readOnly?: boolean | undefined;
10
13
  className?: string | undefined;
11
14
  }
12
- export declare function WorkflowBuilderV3({ builder: externalBuilder, initialConfig, onChange, onSave, readOnly, className, }: WorkflowBuilderV3Props): import("react").JSX.Element;
15
+ export declare function WorkflowBuilderV3({ builder: externalBuilder, initialConfig, initialSummary, onChange, onSave, readOnly, className, }: WorkflowBuilderV3Props): import("react").JSX.Element;
13
16
  //# sourceMappingURL=WorkflowBuilderV3.d.ts.map
@@ -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,EAAsB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAc3G,MAAM,WAAW,sBAAsB;IACrC,OAAO,CAAC,EAAE,wBAAwB,GAAG,SAAS,CAAC;IAC/C,aAAa,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IAC3C,QAAQ,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IAC1D,MAAM,CAAC,EAAE,CAAC,CAAC,MAAM,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IACjE,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;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EAAE,eAAe,EACxB,aAAa,EACb,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,SAAS,GACV,EAAE,sBAAsB,+BAqQxB"}
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,EAAsB,KAAK,wBAAwB,EAAE,MAAM,wCAAwC,CAAC;AAe3G,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;CAChC;AAED,wBAAgB,iBAAiB,CAAC,EAChC,OAAO,EAAE,eAAe,EACxB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,MAAM,EACN,QAAgB,EAChB,SAAS,GACV,EAAE,sBAAsB,+BAwRxB"}