@octaviaflow/core 3.0.18-beta.6 → 3.0.18-beta.8

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 (76) hide show
  1. package/dist/chunk-2NGC7AI3.js +2637 -0
  2. package/dist/chunk-2NGC7AI3.js.map +1 -0
  3. package/dist/chunk-2O6K5PLY.js +2637 -0
  4. package/dist/chunk-2O6K5PLY.js.map +1 -0
  5. package/dist/chunk-C3UD2AZ5.js +2637 -0
  6. package/dist/chunk-C3UD2AZ5.js.map +1 -0
  7. package/dist/chunk-IOKUV7FD.js +2658 -0
  8. package/dist/chunk-IOKUV7FD.js.map +1 -0
  9. package/dist/chunk-KYMYNYFV.js +2656 -0
  10. package/dist/chunk-KYMYNYFV.js.map +1 -0
  11. package/dist/chunk-PVJXX6GP.js +2640 -0
  12. package/dist/chunk-PVJXX6GP.js.map +1 -0
  13. package/dist/components/CsvViewer/CsvViewer.d.ts +51 -0
  14. package/dist/components/CsvViewer/CsvViewer.d.ts.map +1 -0
  15. package/dist/components/CsvViewer/index.d.ts +2 -0
  16. package/dist/components/CsvViewer/index.d.ts.map +1 -0
  17. package/dist/components/DropdownMenu/DropdownMenu.d.ts +4 -1
  18. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  19. package/dist/components/ExecutionConsole/ExecutionConsole.d.ts +8 -2
  20. package/dist/components/ExecutionConsole/ExecutionConsole.d.ts.map +1 -1
  21. package/dist/components/FlowMinimap/FlowMinimap.d.ts +17 -1
  22. package/dist/components/FlowMinimap/FlowMinimap.d.ts.map +1 -1
  23. package/dist/components/FlowToolbar/FlowToolbar.d.ts +16 -10
  24. package/dist/components/FlowToolbar/FlowToolbar.d.ts.map +1 -1
  25. package/dist/components/JsonViewer/JsonViewer.d.ts +42 -7
  26. package/dist/components/JsonViewer/JsonViewer.d.ts.map +1 -1
  27. package/dist/components/JsonViewer/index.d.ts +1 -1
  28. package/dist/components/JsonViewer/index.d.ts.map +1 -1
  29. package/dist/components/WorkflowHeader/WorkflowHeader.d.ts +130 -0
  30. package/dist/components/WorkflowHeader/WorkflowHeader.d.ts.map +1 -0
  31. package/dist/components/WorkflowHeader/WorkflowHeaderExpanded.d.ts +69 -0
  32. package/dist/components/WorkflowHeader/WorkflowHeaderExpanded.d.ts.map +1 -0
  33. package/dist/components/WorkflowHeader/index.d.ts +3 -0
  34. package/dist/components/WorkflowHeader/index.d.ts.map +1 -0
  35. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCentered.d.ts +40 -0
  36. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCentered.d.ts.map +1 -0
  37. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCommand.d.ts +39 -0
  38. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCommand.d.ts.map +1 -0
  39. package/dist/components/WorkflowHeader/misc/WorkflowHeaderMinimal.d.ts +44 -0
  40. package/dist/components/WorkflowHeader/misc/WorkflowHeaderMinimal.d.ts.map +1 -0
  41. package/dist/components/WorkflowHeader/misc/WorkflowHeaderRail.d.ts +45 -0
  42. package/dist/components/WorkflowHeader/misc/WorkflowHeaderRail.d.ts.map +1 -0
  43. package/dist/components/WorkflowHeader/misc/WorkflowHeaderStudio.d.ts +48 -0
  44. package/dist/components/WorkflowHeader/misc/WorkflowHeaderStudio.d.ts.map +1 -0
  45. package/dist/components/WorkflowHeader/misc/WorkflowHeaderTiered.d.ts +52 -0
  46. package/dist/components/WorkflowHeader/misc/WorkflowHeaderTiered.d.ts.map +1 -0
  47. package/dist/components/XmlViewer/XmlViewer.d.ts +26 -1
  48. package/dist/components/XmlViewer/XmlViewer.d.ts.map +1 -1
  49. package/dist/components/XmlViewer/index.d.ts +1 -1
  50. package/dist/components/XmlViewer/index.d.ts.map +1 -1
  51. package/dist/components/YamlViewer/YamlViewer.d.ts +26 -1
  52. package/dist/components/YamlViewer/YamlViewer.d.ts.map +1 -1
  53. package/dist/components/YamlViewer/index.d.ts +1 -1
  54. package/dist/components/YamlViewer/index.d.ts.map +1 -1
  55. package/dist/hooks/useRelativeTime.d.ts +28 -0
  56. package/dist/hooks/useRelativeTime.d.ts.map +1 -0
  57. package/dist/hooks/useWorkflowRuntime.d.ts +20 -0
  58. package/dist/hooks/useWorkflowRuntime.d.ts.map +1 -0
  59. package/dist/index.cjs +4423 -3411
  60. package/dist/index.cjs.map +1 -1
  61. package/dist/index.d.ts +7 -3
  62. package/dist/index.d.ts.map +1 -1
  63. package/dist/index.js +4243 -3230
  64. package/dist/index.js.map +1 -1
  65. package/dist/styles.css +1 -1
  66. package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts +14 -1
  67. package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts.map +1 -1
  68. package/dist/workflow/index.d.ts +1 -1
  69. package/dist/workflow/index.d.ts.map +1 -1
  70. package/dist/workflow/store/selectors.d.ts +12 -0
  71. package/dist/workflow/store/selectors.d.ts.map +1 -1
  72. package/dist/workflow.cjs +84 -46
  73. package/dist/workflow.cjs.map +1 -1
  74. package/dist/workflow.js +15 -57
  75. package/dist/workflow.js.map +1 -1
  76. package/package.json +7 -3
@@ -0,0 +1,51 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ export type CsvViewerViewLayout = "table" | "raw";
3
+ /** Result reported through `onValidate` after each edit-mode keystroke. */
4
+ export interface CsvViewerValidationResult {
5
+ /** True when papaparse reports no errors. */
6
+ valid: boolean;
7
+ /** First parse error — only present when `valid` is false. */
8
+ error?: {
9
+ /** 1-indexed row number from the parser. */
10
+ line: number;
11
+ /** Column index where the error occurred (1-indexed; defaults to 1 when
12
+ * the parser doesn't report a specific column). */
13
+ col: number;
14
+ /** Human-readable error message. */
15
+ message: string;
16
+ };
17
+ }
18
+ export interface CsvViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "children" | "onChange"> {
19
+ /** Raw CSV text. */
20
+ data: string;
21
+ /**
22
+ * `view` (default) — toggle between parsed table and raw text via the
23
+ * header SegmentedControl.
24
+ * `edit` — CodeEditor with parse validation (papaparse).
25
+ */
26
+ mode?: "view" | "edit";
27
+ /** Default layout in `mode='view'`. Default `"table"`. */
28
+ defaultLayout?: CsvViewerViewLayout;
29
+ /** Treat the first row as a header. Default true. */
30
+ hasHeader?: boolean;
31
+ /** Delimiter — pass `","`, `";"`, `"\t"`, etc. Auto-detected if omitted. */
32
+ delimiter?: string;
33
+ /** Show line numbers in the raw layout. Default true. */
34
+ showLineNumbers?: boolean;
35
+ /** Fires on every keystroke in `mode='edit'` with the raw editor text. */
36
+ onChange?: (rawText: string) => void;
37
+ /** Fires after each parse attempt in `mode='edit'`. */
38
+ onValidate?: (result: CsvViewerValidationResult) => void;
39
+ /** Optional title. */
40
+ title?: ReactNode;
41
+ /** Optional status pill next to title. */
42
+ status?: ReactNode;
43
+ /** Show a copy-document button in the header. */
44
+ copyable?: boolean;
45
+ /** Fixed body height — number → pixels, string → any CSS length. */
46
+ height?: number | string;
47
+ /** Upper bound on body height; ignored when `height` is set. */
48
+ maxHeight?: number | string;
49
+ }
50
+ export declare const CsvViewer: import("react").ForwardRefExoticComponent<CsvViewerProps & import("react").RefAttributes<HTMLDivElement>>;
51
+ //# sourceMappingURL=CsvViewer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CsvViewer.d.ts","sourceRoot":"","sources":["../../../src/components/CsvViewer/CsvViewer.tsx"],"names":[],"mappings":"AAqBA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAQf,MAAM,MAAM,mBAAmB,GAAG,OAAO,GAAG,KAAK,CAAC;AAElD,2EAA2E;AAC3E,MAAM,WAAW,yBAAyB;IACxC,6CAA6C;IAC7C,KAAK,EAAE,OAAO,CAAC;IACf,8DAA8D;IAC9D,KAAK,CAAC,EAAE;QACN,4CAA4C;QAC5C,IAAI,EAAE,MAAM,CAAC;QACb;4DACoD;QACpD,GAAG,EAAE,MAAM,CAAC;QACZ,oCAAoC;QACpC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAChF,oBAAoB;IACpB,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,0DAA0D;IAC1D,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,qDAAqD;IACrD,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,yBAAyB,KAAK,IAAI,CAAC;IACzD,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AA8CD,eAAO,MAAM,SAAS,2GA6HrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { CsvViewer, type CsvViewerProps, type CsvViewerValidationResult, type CsvViewerViewLayout, } from "./CsvViewer";
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/CsvViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,GACzB,MAAM,aAAa,CAAC"}
@@ -1,6 +1,9 @@
1
1
  import { type ReactNode } from "react";
2
2
  export interface DropdownMenuItem {
3
- label: string;
3
+ /** Visible content. Strings are the common case — also accepts a
4
+ * ReactNode so composing components can inject custom markup
5
+ * (e.g. an icon glyph with a wrapping tooltip span). */
6
+ label: ReactNode;
4
7
  icon?: ReactNode;
5
8
  onClick?: () => void;
6
9
  danger?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA8B,MAAM,OAAO,CAAC;AAQnE,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AA8ND,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAA0B,EAC1B,aAAoB,EACpB,iBAAyB,EACzB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GAClC,EAAE,iBAAiB,2CA0CnB"}
1
+ {"version":3,"file":"DropdownMenu.d.ts","sourceRoot":"","sources":["../../../src/components/DropdownMenu/DropdownMenu.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAA8B,MAAM,OAAO,CAAC;AAQnE,MAAM,WAAW,gBAAgB;IAC/B;;6DAEyD;IACzD,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,SAAS,CAAC;IACnB,KAAK,EAAE,gBAAgB,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,GAAG,KAAK,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;;;OAKG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;;OAKG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,2EAA2E;IAC3E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAwPD,wBAAgB,YAAY,CAAC,EAC3B,OAAO,EACP,KAAK,EACL,KAAe,EACf,SAAS,EACT,gBAAgB,EAChB,mBAA0B,EAC1B,aAAoB,EACpB,iBAAyB,EACzB,YAAY,EAAE,SAAS,EACvB,iBAAiB,EAAE,cAAc,GAClC,EAAE,iBAAiB,2CA2CnB"}
@@ -23,8 +23,14 @@ export interface ExecutionConsoleProps {
23
23
  running?: boolean;
24
24
  /** Handler for the built-in Stop button — only rendered when `running` is true. */
25
25
  onStop?: () => void;
26
- /** Handler for the built-in Clear button. */
26
+ /** Handler for the built-in Clear button (renders a trash icon). */
27
27
  onClear?: () => void;
28
+ /** Handler for the built-in Close button (renders an × icon). Use when
29
+ * the console lives inside a modal/drawer/overlay and the consumer
30
+ * wants a dismiss action separate from "clear logs". Renders alongside
31
+ * `onClear` when both are provided; the Close button is rightmost so
32
+ * it lands closest to where users expect a dismiss control. */
33
+ onClose?: () => void;
28
34
  /** Custom copy handler — defaults to writing visible logs to the clipboard. */
29
35
  onCopy?: () => void;
30
36
  /** Custom export handler — receives the chosen format + the visible logs.
@@ -62,5 +68,5 @@ export interface ExecutionConsoleProps {
62
68
  emptyState?: ReactNode;
63
69
  className?: string;
64
70
  }
65
- export declare function ExecutionConsole({ open, onToggle, logs, running, onStop, onClear, onCopy, onExport, searchable, showLevelFilter, showNodeFilter, exportable, expandedHeight, height, toolbar, emptyState, className, }: ExecutionConsoleProps): import("react/jsx-runtime").JSX.Element;
71
+ export declare function ExecutionConsole({ open, onToggle, logs, running, onStop, onClear, onClose, onCopy, onExport, searchable, showLevelFilter, showNodeFilter, exportable, expandedHeight, height, toolbar, emptyState, className, }: ExecutionConsoleProps): import("react/jsx-runtime").JSX.Element;
66
72
  //# sourceMappingURL=ExecutionConsole.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExecutionConsole.d.ts","sourceRoot":"","sources":["../../../src/components/ExecutionConsole/ExecutionConsole.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,OAAO,CAAC;AAG7E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC5D,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4DD,wBAAgB,gBAAgB,CAAC,EAC/B,IAAY,EACZ,QAAQ,EACR,IAAS,EACT,OAAe,EACf,MAAM,EACN,OAAO,EACP,MAAM,EACN,QAAQ,EACR,UAAiB,EACjB,eAAsB,EACtB,cAAqB,EACrB,UAAiB,EACjB,cAAwC,EACxC,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,qBAAqB,2CA+ZvB"}
1
+ {"version":3,"file":"ExecutionConsole.d.ts","sourceRoot":"","sources":["../../../src/components/ExecutionConsole/ExecutionConsole.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,OAAO,CAAC;AAG7E,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC;AAEvE,MAAM,WAAW,QAAQ;IACvB,6EAA6E;IAC7E,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,QAAQ,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;qEACiE;IACjE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,KAAK,CAAC;AAE1C,MAAM,WAAW,qBAAqB;IACpC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IACtB,IAAI,CAAC,EAAE,QAAQ,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,mFAAmF;IACnF,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB;;;;oEAIgE;IAChE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;iEAC6D;IAC7D,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,IAAI,CAAC;IAC5D,+CAA+C;IAC/C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,0EAA0E;IAC1E,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+EAA+E;IAC/E,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB;;;;;;;;;;;;;;OAcG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,mEAAmE;IACnE,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkED,wBAAgB,gBAAgB,CAAC,EAC/B,IAAY,EACZ,QAAQ,EACR,IAAS,EACT,OAAe,EACf,MAAM,EACN,OAAO,EACP,OAAO,EACP,MAAM,EACN,QAAQ,EACR,UAAiB,EACjB,eAAsB,EACtB,cAAqB,EACrB,UAAiB,EACjB,cAAwC,EACxC,MAAM,EACN,OAAO,EACP,UAAU,EACV,SAAS,GACV,EAAE,qBAAqB,2CA2avB"}
@@ -52,9 +52,25 @@ export interface FlowMinimapProps {
52
52
  /**
53
53
  * Legacy click-to-pan callback. Fires with the world coordinates of
54
54
  * the click point. Prefer `onViewportChange` for richer integration.
55
+ *
56
+ * When omitted and the minimap is mounted inside `<FlowCanvas>`,
57
+ * navigation is routed through the canvas's imperative instance —
58
+ * consumers don't need to wire anything.
55
59
  */
56
60
  onViewportChange?: ((x: number, y: number) => void) | ((next: FlowMinimapViewport) => void);
61
+ /**
62
+ * Disable the wheel-zoom gesture. Defaults to enabled when the minimap
63
+ * is auto-subscribed to a `<FlowCanvas>`. Set to `false` to keep the
64
+ * page scroll behaviour intact.
65
+ */
66
+ zoomOnScroll?: boolean;
67
+ /**
68
+ * Padding (in world units) added around the auto-computed content
69
+ * bounds when no `totalWidth` / `totalHeight` is supplied. Defaults
70
+ * to 80. Ignored when explicit dimensions are passed.
71
+ */
72
+ bounds_padding?: number;
57
73
  className?: string;
58
74
  }
59
- export declare function FlowMinimap({ nodes, edges, viewportRect, viewport, totalWidth, totalHeight, onViewportChange, className, }: FlowMinimapProps): import("react/jsx-runtime").JSX.Element;
75
+ export declare function FlowMinimap(props: FlowMinimapProps): import("react/jsx-runtime").JSX.Element;
60
76
  //# sourceMappingURL=FlowMinimap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlowMinimap.d.ts","sourceRoot":"","sources":["../../../src/components/FlowMinimap/FlowMinimap.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC;IAC5F,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAKD,wBAAgB,WAAW,CAAC,EAC1B,KAAU,EACV,KAAU,EACV,YAAY,EACZ,QAAQ,EACR,UAAiB,EACjB,WAAkB,EAClB,gBAAgB,EAChB,SAAS,GACV,EAAE,gBAAgB,2CAsNlB"}
1
+ {"version":3,"file":"FlowMinimap.d.ts","sourceRoot":"","sources":["../../../src/components/FlowMinimap/FlowMinimap.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,EAAE,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC9B;AAED,MAAM,WAAW,uBAAuB;IACtC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,mBAAmB;IAClC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;IAC1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,mBAAmB,KAAK,IAAI,CAAC,CAAC;IAC5F;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;;OAIG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAaD,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,2CA4clD"}
@@ -25,7 +25,16 @@ export interface FlowToolbarDividerProps {
25
25
  }
26
26
  export declare function FlowToolbarDivider({ className }: FlowToolbarDividerProps): import("react/jsx-runtime").JSX.Element;
27
27
  export interface FlowToolbarZoomProps {
28
- zoom: number;
28
+ /**
29
+ * Current zoom factor (1 = 100 %). Optional — when omitted, the
30
+ * component subscribes to the live viewport via `useViewportOrNull()`
31
+ * so the displayed % stays in sync with the canvas without the
32
+ * consumer plumbing `flow.getViewport().zoom` through every render.
33
+ * Pass an explicit `zoom` only when rendering outside a `<FlowCanvas>`
34
+ * (e.g. a Storybook demo or design doc) or when you want to drive the
35
+ * value from custom state.
36
+ */
37
+ zoom?: number;
29
38
  onZoomIn?: () => void;
30
39
  onZoomOut?: () => void;
31
40
  onFit?: () => void;
@@ -50,17 +59,14 @@ export declare const FlowToolbarIcons: {
50
59
  zoomOut: import("react/jsx-runtime").JSX.Element;
51
60
  zoomReset: import("react/jsx-runtime").JSX.Element;
52
61
  fit: import("react/jsx-runtime").JSX.Element;
53
- /**
54
- * Auto-layout glyph — a small directed-graph diagram (three connected
55
- * nodes) that reads as "graph layout". Lives inside this barrel so the
56
- * `<FlowToolbarAutoLayout>` button doesn't need an icon-pack import.
57
- * If the design system later adds a canonical icon to `@octaviaflow/icons`,
58
- * this can be swapped without breaking consumers.
59
- */
60
62
  autoLayout: import("react/jsx-runtime").JSX.Element;
63
+ /** Centre-to-fit — alternate when consumers want the centring glyph
64
+ * rather than the fit-to-screen rectangle. Exposed so power users can
65
+ * swap via `icon={FlowToolbarIcons.center}`. */
66
+ center: import("react/jsx-runtime").JSX.Element;
61
67
  /** Checkmark — short-lived success indicator on the save button. */
62
68
  check: import("react/jsx-runtime").JSX.Element;
63
- /** Filled exclamation — error indicator on the save button. */
69
+ /** Filled warning — error indicator on the save button. */
64
70
  error: import("react/jsx-runtime").JSX.Element;
65
71
  };
66
72
  export type FlowToolbarSaveState = "idle" | "saving" | "success" | "error";
@@ -141,5 +147,5 @@ export interface FlowToolbarResetProps {
141
147
  className?: string;
142
148
  }
143
149
  export declare function FlowToolbarReset({ onReset, disabled, shortcut, className, }: FlowToolbarResetProps): import("react/jsx-runtime").JSX.Element;
144
- export declare function FlowToolbarZoom({ zoom, onZoomIn, onZoomOut, onFit, onReset, className, }: FlowToolbarZoomProps): import("react/jsx-runtime").JSX.Element;
150
+ export declare function FlowToolbarZoom({ zoom: zoomProp, onZoomIn, onZoomOut, onFit, onReset, className, }: FlowToolbarZoomProps): import("react/jsx-runtime").JSX.Element;
145
151
  //# sourceMappingURL=FlowToolbar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"FlowToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/FlowToolbar/FlowToolbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FlowToolbar.d.ts","sourceRoot":"","sources":["../../../src/components/FlowToolbar/FlowToolbar.tsx"],"names":[],"mappings":"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"}
@@ -1,17 +1,45 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- export interface JsonViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title"> {
2
+ /** Result reported through `onValidate` after each edit-mode keystroke. */
3
+ export interface JsonViewerValidationResult {
4
+ /** True when the current editor text parses as valid JSON. */
5
+ valid: boolean;
6
+ /** Parse error details — only present when `valid` is false. */
7
+ error?: {
8
+ /** 1-indexed line number from the parser. */
9
+ line: number;
10
+ /** 1-indexed column number from the parser. */
11
+ col: number;
12
+ /** Human-readable error message from the JSON parser. */
13
+ message: string;
14
+ };
15
+ }
16
+ export interface JsonViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "onChange"> {
3
17
  data: unknown;
4
- /** Initially expand to N levels deep. Default 2. */
18
+ /**
19
+ * `view` (default) — read-only collapsible tree view of `data`.
20
+ * `edit` — switches to a CodeEditor primed with the JSON text of `data`.
21
+ * In edit mode `onChange` fires on every keystroke with the raw text;
22
+ * `onValidate` reports parse success/failure (Monaco's built-in JSON
23
+ * language service also renders inline red squiggles).
24
+ */
25
+ mode?: "view" | "edit";
26
+ /** Fires on every keystroke in `mode='edit'` with the raw editor text.
27
+ * Always fires — even when the text is currently invalid JSON. */
28
+ onChange?: (rawText: string) => void;
29
+ /** Fires after each parse attempt in `mode='edit'`. Consumers gate the
30
+ * save button on `result.valid`. */
31
+ onValidate?: (result: JsonViewerValidationResult) => void;
32
+ /** Initially expand to N levels deep (view mode only). Default 2. */
5
33
  defaultExpandDepth?: number;
6
- /** Show array indexes. Default true. */
34
+ /** Show array indexes (view mode only). Default true. */
7
35
  showIndexes?: boolean;
8
- /** Show a copy button on hover for each leaf value. */
36
+ /** Show a copy button on hover for each leaf value (view mode only). */
9
37
  copyable?: boolean;
10
38
  /** Optional title. */
11
39
  title?: ReactNode;
12
40
  /** Optional status pill next to title. */
13
41
  status?: ReactNode;
14
- /** Limit each string value display length. */
42
+ /** Limit each string value display length (view mode only). */
15
43
  truncateAt?: number;
16
44
  /** Fixed body height — number → pixels, string → any CSS length.
17
45
  * The inner tree scrolls vertically when content exceeds the bound. */
@@ -22,8 +50,15 @@ export interface JsonViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "
22
50
  maxHeight?: number | string;
23
51
  }
24
52
  /**
25
- * Read-only JSON tree viewer with collapsible nodes, type-tinted values,
26
- * mono font for keys, and optional copy buttons on leaves.
53
+ * JSON viewer with two modes:
54
+ *
55
+ * - `view` (default) — collapsible tree of `data` with type-tinted
56
+ * values, mono font for keys, optional copy buttons on leaves.
57
+ * - `edit` — CodeEditor primed with JSON-stringified `data`.
58
+ * Monaco's built-in JSON language service renders inline parse-error
59
+ * squiggles. Consumers wire `onChange` (raw text) + `onValidate`
60
+ * (parse result) — typical pattern is `disabled={!isValid}` on a
61
+ * save button driven by `onValidate`.
27
62
  */
28
63
  export declare const JsonViewer: import("react").ForwardRefExoticComponent<JsonViewerProps & import("react").RefAttributes<HTMLDivElement>>;
29
64
  //# sourceMappingURL=JsonViewer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"JsonViewer.d.ts","sourceRoot":"","sources":["../../../src/components/JsonViewer/JsonViewer.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EAGf,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACtD,IAAI,EAAE,OAAO,CAAC;IACd,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wCAAwC;IACxC,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,8CAA8C;IAC9C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;2EACuE;IACvE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;2CAEuC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAMD;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAiDtB,CAAC"}
1
+ {"version":3,"file":"JsonViewer.d.ts","sourceRoot":"","sources":["../../../src/components/JsonViewer/JsonViewer.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EAIf,MAAM,OAAO,CAAC;AASf,2EAA2E;AAC3E,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE;QACN,6CAA6C;QAC7C,IAAI,EAAE,MAAM,CAAC;QACb,+CAA+C;QAC/C,GAAG,EAAE,MAAM,CAAC;QACZ,yDAAyD;QACzD,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnE,IAAI,EAAE,OAAO,CAAC;IACd;;;;;;OAMG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;uEACmE;IACnE,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC;yCACqC;IACrC,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1D,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,yDAAyD;IACzD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,+DAA+D;IAC/D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;2EACuE;IACvE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB;;2CAEuC;IACvC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAMD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,UAAU,4GAwDtB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { JsonViewer, type JsonViewerProps } from "./JsonViewer";
1
+ export { JsonViewer, type JsonViewerProps, type JsonViewerValidationResult, } from "./JsonViewer";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/JsonViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/JsonViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,0BAA0B,GAChC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,130 @@
1
+ /**
2
+ * WorkflowHeader — the strip rendered above a workflow editor canvas.
3
+ *
4
+ * Two-zone layout (left identity cluster · right action cluster). The save
5
+ * indicator lives at the END of the left cluster, after the title — close
6
+ * to the workflow it refers to, not floating in the middle.
7
+ *
8
+ * ┌──────────────────────────────────────────────────────────────────────┐
9
+ * │ ‹ Workflows / ● Name · Saved 12s ago Stop · 00:12 · Draft ▎ ⏏ ⋮ │
10
+ * │ ──────────────────────────────────────────────────────────────────── │ ← shimmer while running
11
+ * └──────────────────────────────────────────────────────────────────────┘
12
+ *
13
+ * Polish layers (research-backed):
14
+ * 1. **Status dot** (6-7 px coloured ●) replaces the heavier Badge as
15
+ * the primary identity-status signal.
16
+ * 2. **Breadcrumb-style back** (`‹ Workflows /`) replaces the naked
17
+ * back-icon button.
18
+ * 3. **Bottom hairline progress stripe** — visible ONLY during execution.
19
+ * Single biggest perceived-quality lift, no vertical cost.
20
+ * 4. **Tabular runtime counter** (`00:00:12`) inline with Stop.
21
+ *
22
+ * Size variants:
23
+ * - `md` (default) — 44 px, TopBar parity. Standard editor height.
24
+ * - `sm` — 36 px compact. For embedded editors / dense workspaces.
25
+ *
26
+ * Env chip is consumer-driven: the consumer supplies the `accent` colour
27
+ * (any CSS colour or token) to drive the left-border accent. The DS does
28
+ * NOT bake in environment names (production/staging/dev) — those live in
29
+ * the consumer's backend.
30
+ */
31
+ import type { ReactNode } from "react";
32
+ import { type DropdownMenuItem, type DropdownMenuProps } from "../DropdownMenu";
33
+ export type WorkflowHeaderSize = "sm" | "md";
34
+ export type WorkflowHeaderSaveState = "idle" | "saving" | "success" | "error";
35
+ /** Semantic tone for the status dot. Use `running` while an execution is
36
+ * in flight (paired with `isRunning`). */
37
+ export type WorkflowHeaderStatusTone = "draft" | "active" | "running" | "paused" | "error";
38
+ export interface WorkflowHeaderEnvironment {
39
+ /** Label inside the chip (consumer-supplied — usually from backend). */
40
+ label: ReactNode;
41
+ /** Left-border accent. Accepts any CSS colour or token reference (e.g.
42
+ * `"var(--ods-status-failed)"`, `"#0F62FE"`). Omit for no accent. */
43
+ accent?: string;
44
+ /** Tooltip — useful for "Coming soon" placeholders. */
45
+ title?: string;
46
+ /** Click handler. Omit to render a non-interactive placeholder chip. */
47
+ onClick?: () => void;
48
+ }
49
+ export interface WorkflowHeaderProps {
50
+ /** Workflow name shown after the status dot. */
51
+ name: ReactNode;
52
+ /** Status tone — drives the colour of the dot. Defaults to "draft". */
53
+ statusTone?: WorkflowHeaderStatusTone;
54
+ /** Click handler for the back affordance. Omit to hide it. */
55
+ onBack?: () => void;
56
+ /** Parent label rendered in the breadcrumb when `onBack` is set
57
+ * (e.g. "Workflows"). Defaults to "Back". */
58
+ parentLabel?: ReactNode;
59
+ saveState?: WorkflowHeaderSaveState;
60
+ /** Timestamp of the last successful save — used to format "Saved Xs ago". */
61
+ lastSavedAt?: Date | number | null;
62
+ /** Optional error message — surfaced as `title` on the failed indicator. */
63
+ saveError?: string | null;
64
+ /** When true, the Stop button is mounted and the bottom progress stripe
65
+ * animates. The status dot auto-tints to `running` if `statusTone` is
66
+ * left at its default. */
67
+ isRunning?: boolean;
68
+ /** Click handler for the primary Run button (rendered while !isRunning).
69
+ * Run / Stop form a complementary pair — Run shows while idle, Stop
70
+ * shows while running. Pass both for the standard editor pattern. */
71
+ onRun?: () => void;
72
+ /** Click handler for the Stop button (rendered while isRunning). */
73
+ onStop?: () => void;
74
+ /** Optional run-start timestamp. When supplied while `isRunning`, a
75
+ * tabular runtime counter appears next to Stop (`00:00:12`). */
76
+ runStartedAt?: Date | number | null;
77
+ /** Environment chip — consumer-driven (backend supplies). Omit to hide. */
78
+ environment?: WorkflowHeaderEnvironment;
79
+ /** Console toggle handler. Pressed state syncs to `isConsoleOpen`. */
80
+ isConsoleOpen?: boolean;
81
+ onToggleConsole?: () => void;
82
+ /** When true, the console toggle renders even outside an active run —
83
+ * meaning the consumer has logs from a previous run that the user can
84
+ * re-open. Visibility rule: `onToggleConsole && (isRunning || consoleHasLogs)`.
85
+ * Default false → the console button stays hidden on a fresh / idle
86
+ * editor with no logs to show. */
87
+ consoleHasLogs?: boolean;
88
+ /**
89
+ * Simple API — items shown inside the default ⋮ DropdownMenu. Pass
90
+ * `[]` or omit to hide the menu entirely. Most consumers should use
91
+ * just this; the props below are for advanced configuration.
92
+ */
93
+ menuItems?: DropdownMenuItem[];
94
+ /** Aria-label for the trigger. Defaults to "More actions". */
95
+ menuLabel?: string;
96
+ /**
97
+ * Override the default trigger element (`⋮` icon button). Useful for
98
+ * "Actions ▾" text triggers, custom icons, or anchoring the menu off a
99
+ * different glyph. Must render an element that DropdownMenu can use as
100
+ * a trigger (button or div with onClick handler).
101
+ */
102
+ menuTrigger?: ReactNode;
103
+ /**
104
+ * Pass-through to the underlying DropdownMenu for advanced config —
105
+ * align, side, matchTriggerWidth, closeOnOutsideClick, closeOnEscape,
106
+ * triggerClassName, className. Everything DropdownMenu accepts except
107
+ * `items`, `trigger`, and `aria-label` (which the header owns).
108
+ */
109
+ menuProps?: Omit<DropdownMenuProps, "items" | "trigger" | "aria-label">;
110
+ /**
111
+ * Total slot replacement. When provided, this node is rendered in the
112
+ * overflow-menu position instead of the default DropdownMenu — even if
113
+ * `menuItems` is also set. Use this when you need a fundamentally
114
+ * different overflow surface (e.g. a custom Popover, a chained menu,
115
+ * or a Sheet trigger).
116
+ */
117
+ menu?: ReactNode;
118
+ /** Rendered at the END of the left zone (after the save indicator). */
119
+ leftSlot?: ReactNode;
120
+ /** Rendered BEFORE the right-zone action cluster. */
121
+ rightSlot?: ReactNode;
122
+ /** Size variant. `md` = 44 px (TopBar parity, default). `sm` = 36 px
123
+ * (compact, for embedded editors). */
124
+ size?: WorkflowHeaderSize;
125
+ /** Render the loading skeleton — useful while workflow metadata loads. */
126
+ loading?: boolean;
127
+ className?: string;
128
+ }
129
+ export declare function WorkflowHeader({ name, statusTone, onBack, parentLabel, saveState, lastSavedAt, saveError, isRunning, onRun, onStop, runStartedAt, environment, isConsoleOpen, onToggleConsole, consoleHasLogs, menuItems, menuLabel, menuTrigger, menuProps, menu, leftSlot, rightSlot, size, loading, className, }: WorkflowHeaderProps): import("react/jsx-runtime").JSX.Element;
130
+ //# sourceMappingURL=WorkflowHeader.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeader.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowHeader/WorkflowHeader.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * WorkflowHeaderExpanded — two-row variant of WorkflowHeader for editors
3
+ * that need always-visible run metadata under the identity row.
4
+ *
5
+ * Same visual rhythm as `WorkflowHeader` (status dot, breadcrumb back,
6
+ * bottom progress shimmer, tabular runtime counter, Run/Stop pair). The
7
+ * meta line carries free-form text supplied by the consumer — typically
8
+ * "GPT-4o · 2 steps · 0 errors · last run 3m ago".
9
+ *
10
+ * ┌──────────────────────────────────────────────────────────────────────┐
11
+ * │ ‹ Workflows / ● Name [▶ Run] · Env ▎ Console ⋮ │ ← 40 px
12
+ * │ GPT-4o · 2 steps · 0 errors · last run 3m ago · Saved 12s ago │ ← 24 px
13
+ * │ ──────────────────────────────────────────────────────────────────── │ ← shimmer while running
14
+ * └──────────────────────────────────────────────────────────────────────┘
15
+ *
16
+ * Use this variant when:
17
+ * - Run metadata (model, step count, errors, last-run time) is part of
18
+ * the workflow's identity for the user — not a hidden detail.
19
+ * - The editor surface can spare 20 px of canvas height for the meta
20
+ * row.
21
+ *
22
+ * Otherwise prefer the default `WorkflowHeader` (44 px, info inline).
23
+ */
24
+ import type { ReactNode } from "react";
25
+ import { type DropdownMenuItem, type DropdownMenuProps } from "../DropdownMenu";
26
+ export interface WorkflowHeaderExpandedProps {
27
+ name: ReactNode;
28
+ /** "draft" | "active" | "paused" | "error" | "running" */
29
+ statusTone?: "draft" | "active" | "paused" | "error" | "running";
30
+ onBack?: () => void;
31
+ parentLabel?: ReactNode;
32
+ /** Free-form meta line — model, step count, errors, etc. */
33
+ meta?: ReactNode;
34
+ /** Save indicator text. Consumer formats relative time on its side. */
35
+ saveLabel?: string;
36
+ saveError?: string | null;
37
+ isRunning?: boolean;
38
+ onRun?: () => void;
39
+ onStop?: () => void;
40
+ /** Run-start timestamp. When supplied while `isRunning`, the header
41
+ * ticks a live tabular-figure runtime counter (`00:12`) next to Stop.
42
+ * Internally uses the public `useWorkflowRuntime` hook so consumers
43
+ * can render the same string in other surfaces. */
44
+ runStartedAt?: Date | number | null;
45
+ /** Override the auto-computed runtime string. Use this only when you
46
+ * need a non-default format (e.g. server-provided cumulative duration).
47
+ * When omitted, the value derived from `runStartedAt` wins. */
48
+ runtime?: string;
49
+ environment?: {
50
+ label: ReactNode;
51
+ accent?: string;
52
+ title?: string;
53
+ onClick?: () => void;
54
+ };
55
+ isConsoleOpen?: boolean;
56
+ onToggleConsole?: () => void;
57
+ /** Visibility gate for the console toggle — same semantics as
58
+ * WorkflowHeader. The toggle renders when running OR when this is
59
+ * true (consumer reports past logs exist). Defaults to false. */
60
+ consoleHasLogs?: boolean;
61
+ menuItems?: DropdownMenuItem[];
62
+ menuLabel?: string;
63
+ menuTrigger?: ReactNode;
64
+ menuProps?: Omit<DropdownMenuProps, "items" | "trigger" | "aria-label">;
65
+ menu?: ReactNode;
66
+ className?: string;
67
+ }
68
+ export declare function WorkflowHeaderExpanded({ name, statusTone, onBack, parentLabel, meta, saveLabel, saveError, isRunning, onRun, onStop, runStartedAt, runtime: runtimeOverride, environment, isConsoleOpen, onToggleConsole, consoleHasLogs, menuItems, menuLabel, menuTrigger, menuProps, menu, className, }: WorkflowHeaderExpandedProps): import("react/jsx-runtime").JSX.Element;
69
+ //# sourceMappingURL=WorkflowHeaderExpanded.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderExpanded.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowHeader/WorkflowHeaderExpanded.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAG9F,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,uEAAuE;IACvE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB;;;wDAGoD;IACpD,YAAY,CAAC,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC;;oEAEgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,WAAW,CAAC,EAAE;QAAE,KAAK,EAAE,SAAS,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;KAAE,CAAC;IAC1F,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B;;sEAEkE;IAClE,cAAc,CAAC,EAAE,OAAO,CAAC;IAGzB,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,IAAI,CAAC,iBAAiB,EAAE,OAAO,GAAG,SAAS,GAAG,YAAY,CAAC,CAAC;IACxE,IAAI,CAAC,EAAE,SAAS,CAAC;IAEjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,UAAoB,EACpB,MAAM,EACN,WAAoB,EACpB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,YAAY,EACZ,OAAO,EAAE,eAAe,EACxB,WAAW,EACX,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,SAA0B,EAC1B,WAAW,EACX,SAAS,EACT,IAAI,EACJ,SAAS,GACV,EAAE,2BAA2B,2CAqJ7B"}
@@ -0,0 +1,3 @@
1
+ export { WorkflowHeader, type WorkflowHeaderEnvironment, type WorkflowHeaderProps, type WorkflowHeaderSaveState, type WorkflowHeaderStatusTone, } from "./WorkflowHeader";
2
+ export { WorkflowHeaderExpanded, type WorkflowHeaderExpandedProps, } from "./WorkflowHeaderExpanded";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowHeader/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,KAAK,yBAAyB,EAC9B,KAAK,mBAAmB,EACxB,KAAK,uBAAuB,EAC5B,KAAK,wBAAwB,GAC9B,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,sBAAsB,EACtB,KAAK,2BAA2B,GACjC,MAAM,0BAA0B,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * WorkflowHeaderCentered (DRAFT — not exported from the package).
3
+ *
4
+ * Symmetric three-zone layout with the workflow identity centered. Left
5
+ * holds navigation, right holds actions, center holds the title + status
6
+ * + tiny save indicator. Reads like a document tab strip — works well
7
+ * when the workflow IS the surface, with no other competing chrome.
8
+ *
9
+ * ┌──────────────────────────────────────────────────────────────────────┐
10
+ * │ ‹ Workflows ● HTTP Order Sync · Saved 12s ago Stop ⏏ ⋮ │
11
+ * │ ──────────────────────────────────────────────────────────────────── │
12
+ * └──────────────────────────────────────────────────────────────────────┘
13
+ *
14
+ * Why it might win:
15
+ * - The workflow name is the most important content — centering it
16
+ * gives it visual weight without making it physically larger.
17
+ * - Symmetry reads as polished and document-focused.
18
+ *
19
+ * Why it might lose:
20
+ * - Centered layouts feel "modal-ish" — less editor, more document.
21
+ * - On narrow viewports the center can collide with the side zones.
22
+ */
23
+ import type { ReactNode } from "react";
24
+ import { type DropdownMenuItem } from "../../DropdownMenu";
25
+ export interface WorkflowHeaderCenteredProps {
26
+ name: ReactNode;
27
+ statusTone?: "draft" | "active" | "paused" | "error" | "running";
28
+ onBack?: () => void;
29
+ parentLabel?: ReactNode;
30
+ saveLabel?: string;
31
+ saveError?: string | null;
32
+ isRunning?: boolean;
33
+ onStop?: () => void;
34
+ isConsoleOpen?: boolean;
35
+ onToggleConsole?: () => void;
36
+ menuItems?: DropdownMenuItem[];
37
+ className?: string;
38
+ }
39
+ export declare function WorkflowHeaderCentered({ name, statusTone, onBack, parentLabel, saveLabel, saveError, isRunning, onStop, isConsoleOpen, onToggleConsole, menuItems, className, }: WorkflowHeaderCenteredProps): import("react/jsx-runtime").JSX.Element;
40
+ //# sourceMappingURL=WorkflowHeaderCentered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderCentered.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderCentered.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,2BAA2B;IAC1C,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,WAAW,CAAC,EAAE,SAAS,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,UAAoB,EACpB,MAAM,EACN,WAAyB,EACzB,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,2BAA2B,2CAoF7B"}