@octaviaflow/core 3.0.18-beta.2 → 3.0.18-beta.21

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 (174) 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-2ZIOFEIS.js +3001 -0
  6. package/dist/chunk-2ZIOFEIS.js.map +1 -0
  7. package/dist/chunk-3DWB2PUF.js +2991 -0
  8. package/dist/chunk-3DWB2PUF.js.map +1 -0
  9. package/dist/chunk-4ZALUTZS.js +2936 -0
  10. package/dist/chunk-4ZALUTZS.js.map +1 -0
  11. package/dist/chunk-5ARKSRED.js +2951 -0
  12. package/dist/chunk-5ARKSRED.js.map +1 -0
  13. package/dist/chunk-5OSGSJMM.js +2981 -0
  14. package/dist/chunk-5OSGSJMM.js.map +1 -0
  15. package/dist/chunk-5YQQMEF3.js +2981 -0
  16. package/dist/chunk-5YQQMEF3.js.map +1 -0
  17. package/dist/chunk-6QCJK7H7.js +2991 -0
  18. package/dist/chunk-6QCJK7H7.js.map +1 -0
  19. package/dist/chunk-76TP67ED.js +2984 -0
  20. package/dist/chunk-76TP67ED.js.map +1 -0
  21. package/dist/chunk-A6KMO4JV.js +2949 -0
  22. package/dist/chunk-A6KMO4JV.js.map +1 -0
  23. package/dist/chunk-B7FTWSTM.js +2938 -0
  24. package/dist/chunk-B7FTWSTM.js.map +1 -0
  25. package/dist/chunk-BCO6M26F.js +2940 -0
  26. package/dist/chunk-BCO6M26F.js.map +1 -0
  27. package/dist/chunk-C3UD2AZ5.js +2637 -0
  28. package/dist/chunk-C3UD2AZ5.js.map +1 -0
  29. package/dist/chunk-CEUP4NK2.js +2850 -0
  30. package/dist/chunk-CEUP4NK2.js.map +1 -0
  31. package/dist/chunk-DBNSBJO7.js +2993 -0
  32. package/dist/chunk-DBNSBJO7.js.map +1 -0
  33. package/dist/chunk-ECIHUVU7.js +2986 -0
  34. package/dist/chunk-ECIHUVU7.js.map +1 -0
  35. package/dist/chunk-EERNYLFL.js +2860 -0
  36. package/dist/chunk-EERNYLFL.js.map +1 -0
  37. package/dist/chunk-EKFDJX4G.js +2872 -0
  38. package/dist/chunk-EKFDJX4G.js.map +1 -0
  39. package/dist/chunk-GJA3GJUZ.js +2844 -0
  40. package/dist/chunk-GJA3GJUZ.js.map +1 -0
  41. package/dist/chunk-HDOTOZNA.js +2936 -0
  42. package/dist/chunk-HDOTOZNA.js.map +1 -0
  43. package/dist/chunk-IOKUV7FD.js +2658 -0
  44. package/dist/chunk-IOKUV7FD.js.map +1 -0
  45. package/dist/chunk-IUIICQU5.js +2946 -0
  46. package/dist/chunk-IUIICQU5.js.map +1 -0
  47. package/dist/chunk-J2UYZI6D.js +2946 -0
  48. package/dist/chunk-J2UYZI6D.js.map +1 -0
  49. package/dist/chunk-J7YASALS.js +2859 -0
  50. package/dist/chunk-J7YASALS.js.map +1 -0
  51. package/dist/chunk-JIEUYBQT.js +2658 -0
  52. package/dist/chunk-JIEUYBQT.js.map +1 -0
  53. package/dist/chunk-K2H7JLQW.js +2952 -0
  54. package/dist/chunk-K2H7JLQW.js.map +1 -0
  55. package/dist/chunk-KUXYBP66.js +2953 -0
  56. package/dist/chunk-KUXYBP66.js.map +1 -0
  57. package/dist/chunk-KYMYNYFV.js +2656 -0
  58. package/dist/chunk-KYMYNYFV.js.map +1 -0
  59. package/dist/chunk-MMXL343D.js +2974 -0
  60. package/dist/chunk-MMXL343D.js.map +1 -0
  61. package/dist/chunk-MXJL3EPE.js +2986 -0
  62. package/dist/chunk-MXJL3EPE.js.map +1 -0
  63. package/dist/chunk-MYZ25B2R.js +2995 -0
  64. package/dist/chunk-MYZ25B2R.js.map +1 -0
  65. package/dist/chunk-NTMEYB7B.js +2949 -0
  66. package/dist/chunk-NTMEYB7B.js.map +1 -0
  67. package/dist/chunk-PVJXX6GP.js +2640 -0
  68. package/dist/chunk-PVJXX6GP.js.map +1 -0
  69. package/dist/chunk-Q6ERDPQR.js +2981 -0
  70. package/dist/chunk-Q6ERDPQR.js.map +1 -0
  71. package/dist/chunk-S2SSBMWJ.js +2658 -0
  72. package/dist/chunk-S2SSBMWJ.js.map +1 -0
  73. package/dist/chunk-SLVDAZSX.js +2946 -0
  74. package/dist/chunk-SLVDAZSX.js.map +1 -0
  75. package/dist/chunk-UQBPYONV.js +2991 -0
  76. package/dist/chunk-UQBPYONV.js.map +1 -0
  77. package/dist/chunk-UXMNBS22.js +2955 -0
  78. package/dist/chunk-UXMNBS22.js.map +1 -0
  79. package/dist/chunk-WEGED7TA.js +2991 -0
  80. package/dist/chunk-WEGED7TA.js.map +1 -0
  81. package/dist/chunk-WEPTBLWX.js +2847 -0
  82. package/dist/chunk-WEPTBLWX.js.map +1 -0
  83. package/dist/chunk-WG4ZQMPS.js +2844 -0
  84. package/dist/chunk-WG4ZQMPS.js.map +1 -0
  85. package/dist/chunk-XEPEBHAW.js +2808 -0
  86. package/dist/chunk-XEPEBHAW.js.map +1 -0
  87. package/dist/chunk-XG2OYFX6.js +2925 -0
  88. package/dist/chunk-XG2OYFX6.js.map +1 -0
  89. package/dist/chunk-ZAMJEU42.js +2992 -0
  90. package/dist/chunk-ZAMJEU42.js.map +1 -0
  91. package/dist/chunk-ZRAM6FXB.js +2949 -0
  92. package/dist/chunk-ZRAM6FXB.js.map +1 -0
  93. package/dist/components/CsvViewer/CsvViewer.d.ts +51 -0
  94. package/dist/components/CsvViewer/CsvViewer.d.ts.map +1 -0
  95. package/dist/components/CsvViewer/index.d.ts +2 -0
  96. package/dist/components/CsvViewer/index.d.ts.map +1 -0
  97. package/dist/components/DataTable/DataTable.d.ts +19 -1
  98. package/dist/components/DataTable/DataTable.d.ts.map +1 -1
  99. package/dist/components/DropdownMenu/DropdownMenu.d.ts +12 -2
  100. package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -1
  101. package/dist/components/ExecutionConsole/ExecutionConsole.d.ts +8 -2
  102. package/dist/components/ExecutionConsole/ExecutionConsole.d.ts.map +1 -1
  103. package/dist/components/FlowMinimap/FlowMinimap.d.ts +17 -1
  104. package/dist/components/FlowMinimap/FlowMinimap.d.ts.map +1 -1
  105. package/dist/components/FlowToolbar/FlowToolbar.d.ts +16 -10
  106. package/dist/components/FlowToolbar/FlowToolbar.d.ts.map +1 -1
  107. package/dist/components/JsonViewer/JsonViewer.d.ts +42 -7
  108. package/dist/components/JsonViewer/JsonViewer.d.ts.map +1 -1
  109. package/dist/components/JsonViewer/index.d.ts +1 -1
  110. package/dist/components/JsonViewer/index.d.ts.map +1 -1
  111. package/dist/components/Select/Select.d.ts.map +1 -1
  112. package/dist/components/WorkflowHeader/WorkflowHeader.d.ts +130 -0
  113. package/dist/components/WorkflowHeader/WorkflowHeader.d.ts.map +1 -0
  114. package/dist/components/WorkflowHeader/WorkflowHeaderExpanded.d.ts +69 -0
  115. package/dist/components/WorkflowHeader/WorkflowHeaderExpanded.d.ts.map +1 -0
  116. package/dist/components/WorkflowHeader/index.d.ts +3 -0
  117. package/dist/components/WorkflowHeader/index.d.ts.map +1 -0
  118. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCentered.d.ts +40 -0
  119. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCentered.d.ts.map +1 -0
  120. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCommand.d.ts +39 -0
  121. package/dist/components/WorkflowHeader/misc/WorkflowHeaderCommand.d.ts.map +1 -0
  122. package/dist/components/WorkflowHeader/misc/WorkflowHeaderMinimal.d.ts +44 -0
  123. package/dist/components/WorkflowHeader/misc/WorkflowHeaderMinimal.d.ts.map +1 -0
  124. package/dist/components/WorkflowHeader/misc/WorkflowHeaderRail.d.ts +45 -0
  125. package/dist/components/WorkflowHeader/misc/WorkflowHeaderRail.d.ts.map +1 -0
  126. package/dist/components/WorkflowHeader/misc/WorkflowHeaderStudio.d.ts +48 -0
  127. package/dist/components/WorkflowHeader/misc/WorkflowHeaderStudio.d.ts.map +1 -0
  128. package/dist/components/WorkflowHeader/misc/WorkflowHeaderTiered.d.ts +52 -0
  129. package/dist/components/WorkflowHeader/misc/WorkflowHeaderTiered.d.ts.map +1 -0
  130. package/dist/components/XmlViewer/XmlViewer.d.ts +26 -1
  131. package/dist/components/XmlViewer/XmlViewer.d.ts.map +1 -1
  132. package/dist/components/XmlViewer/index.d.ts +1 -1
  133. package/dist/components/XmlViewer/index.d.ts.map +1 -1
  134. package/dist/components/YamlViewer/YamlViewer.d.ts +26 -1
  135. package/dist/components/YamlViewer/YamlViewer.d.ts.map +1 -1
  136. package/dist/components/YamlViewer/index.d.ts +1 -1
  137. package/dist/components/YamlViewer/index.d.ts.map +1 -1
  138. package/dist/hooks/useRelativeTime.d.ts +28 -0
  139. package/dist/hooks/useRelativeTime.d.ts.map +1 -0
  140. package/dist/hooks/useWorkflowRuntime.d.ts +20 -0
  141. package/dist/hooks/useWorkflowRuntime.d.ts.map +1 -0
  142. package/dist/index.cjs +4918 -3536
  143. package/dist/index.cjs.map +1 -1
  144. package/dist/index.d.ts +7 -3
  145. package/dist/index.d.ts.map +1 -1
  146. package/dist/index.js +4317 -3305
  147. package/dist/index.js.map +1 -1
  148. package/dist/styles.css +1 -1
  149. package/dist/workflow/components/ConfigPanel/ConfigPanel.d.ts +27 -9
  150. package/dist/workflow/components/ConfigPanel/ConfigPanel.d.ts.map +1 -1
  151. package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts +49 -1
  152. package/dist/workflow/components/FlowCanvas/FlowCanvas.d.ts.map +1 -1
  153. package/dist/workflow/components/FlowEdge/FlowEdge.d.ts.map +1 -1
  154. package/dist/workflow/components/FxPanel/FxPanel.d.ts +61 -0
  155. package/dist/workflow/components/FxPanel/FxPanel.d.ts.map +1 -0
  156. package/dist/workflow/components/FxPanel/FxToggleButton.d.ts +9 -0
  157. package/dist/workflow/components/FxPanel/FxToggleButton.d.ts.map +1 -0
  158. package/dist/workflow/components/Handle/Handle.d.ts +9 -1
  159. package/dist/workflow/components/Handle/Handle.d.ts.map +1 -1
  160. package/dist/workflow/components/Handle/handleRegistry.d.ts +19 -0
  161. package/dist/workflow/components/Handle/handleRegistry.d.ts.map +1 -1
  162. package/dist/workflow/components/kinds/index.d.ts +4 -0
  163. package/dist/workflow/components/kinds/index.d.ts.map +1 -1
  164. package/dist/workflow/index.d.ts +3 -1
  165. package/dist/workflow/index.d.ts.map +1 -1
  166. package/dist/workflow/store/selectors.d.ts +12 -0
  167. package/dist/workflow/store/selectors.d.ts.map +1 -1
  168. package/dist/workflow/utils/parenting.d.ts +5 -3
  169. package/dist/workflow/utils/parenting.d.ts.map +1 -1
  170. package/dist/workflow.cjs +915 -446
  171. package/dist/workflow.cjs.map +1 -1
  172. package/dist/workflow.js +309 -256
  173. package/dist/workflow.js.map +1 -1
  174. package/package.json +7 -3
@@ -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"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * WorkflowHeaderCommand (DRAFT — not exported from the package).
3
+ *
4
+ * Center-stage command palette trigger (a search input lookalike). Most
5
+ * actions are reachable from the palette, so the action cluster on the
6
+ * right stays minimal (Run/Stop, console, ⋮). Identity sits on the left.
7
+ *
8
+ * ┌──────────────────────────────────────────────────────────────────────┐
9
+ * │ ● HTTP Order Sync [⌘K Search nodes, actions, runs…] Stop ⏏ ⋮ │
10
+ * └──────────────────────────────────────────────────────────────────────┘
11
+ *
12
+ * Why it might win:
13
+ * - For power users who live in keyboard shortcuts, the palette IS the
14
+ * surface — the chrome around it can be very quiet.
15
+ * - Center input acts as a visual anchor and a doing-things-fast affordance.
16
+ *
17
+ * Why it might lose:
18
+ * - First-time users look for buttons, not search inputs.
19
+ * - Hard to balance the center input against the left identity on
20
+ * narrow viewports.
21
+ */
22
+ import type { ReactNode } from "react";
23
+ import { type DropdownMenuItem } from "../../DropdownMenu";
24
+ export interface WorkflowHeaderCommandProps {
25
+ name: ReactNode;
26
+ statusTone?: "draft" | "active" | "paused" | "error" | "running";
27
+ /** Placeholder shown in the command palette trigger input. */
28
+ commandPlaceholder?: string;
29
+ /** Fires when the palette trigger is clicked or ⌘K pressed. */
30
+ onCommand?: () => void;
31
+ isRunning?: boolean;
32
+ onStop?: () => void;
33
+ isConsoleOpen?: boolean;
34
+ onToggleConsole?: () => void;
35
+ menuItems?: DropdownMenuItem[];
36
+ className?: string;
37
+ }
38
+ export declare function WorkflowHeaderCommand({ name, statusTone, commandPlaceholder, onCommand, isRunning, onStop, isConsoleOpen, onToggleConsole, menuItems, className, }: WorkflowHeaderCommandProps): import("react/jsx-runtime").JSX.Element;
39
+ //# sourceMappingURL=WorkflowHeaderCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderCommand.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderCommand.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAQvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,8DAA8D;IAC9D,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IACvB,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,qBAAqB,CAAC,EACpC,IAAI,EACJ,UAAoB,EACpB,kBAAmD,EACnD,SAAS,EACT,SAAS,EACT,MAAM,EACN,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,0BAA0B,2CAmE5B"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * WorkflowHeaderMinimal (DRAFT — not exported from the package).
3
+ *
4
+ * Single-row barebones variant for editors embedded inside a larger
5
+ * surface that already provides chrome (back navigation, breadcrumb,
6
+ * environment switching). The DS strip is reduced to:
7
+ *
8
+ * ┌──────────────────────────────────────────────────┐
9
+ * │ ● Name · Saved 12s ago Stop · ⋮ │
10
+ * └──────────────────────────────────────────────────┘
11
+ *
12
+ * What's intentionally NOT here vs the main variant:
13
+ * - No back / breadcrumb (parent surface owns navigation)
14
+ * - No env chip (parent surface owns environment switching)
15
+ * - No console toggle (assumes the host renders the console inline)
16
+ * - No bottom progress shimmer (assumes the host provides ambient
17
+ * "running" feedback elsewhere)
18
+ *
19
+ * Why it might win:
20
+ * - When this header is embedded in a richer parent UI, duplicating
21
+ * navigation and environment controls makes both feel cluttered.
22
+ *
23
+ * Why it might lose:
24
+ * - Loses the "this strip is the entire chrome" pattern that the
25
+ * standalone editor relies on.
26
+ *
27
+ * Imported only by `WorkflowHeader.stories.tsx` for side-by-side review.
28
+ */
29
+ import type { ReactNode } from "react";
30
+ import { type DropdownMenuItem } from "../../DropdownMenu";
31
+ export interface WorkflowHeaderMinimalProps {
32
+ name: ReactNode;
33
+ /** "draft" | "active" | "paused" | "error" | "running" */
34
+ statusTone?: "draft" | "active" | "paused" | "error" | "running";
35
+ /** Save indicator text. Consumer formats relative time. */
36
+ saveLabel?: string;
37
+ saveError?: string | null;
38
+ isRunning?: boolean;
39
+ onStop?: () => void;
40
+ menuItems?: DropdownMenuItem[];
41
+ className?: string;
42
+ }
43
+ export declare function WorkflowHeaderMinimal({ name, statusTone, saveLabel, saveError, isRunning, onStop, menuItems, className, }: WorkflowHeaderMinimalProps): import("react/jsx-runtime").JSX.Element;
44
+ //# sourceMappingURL=WorkflowHeaderMinimal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderMinimal.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderMinimal.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,0BAA0B;IACzC,IAAI,EAAE,SAAS,CAAC;IAChB,0DAA0D;IAC1D,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;IACjE,2DAA2D;IAC3D,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,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EACpC,IAAI,EACJ,UAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,SAAS,EACT,SAAS,GACV,EAAE,0BAA0B,2CAsD5B"}
@@ -0,0 +1,45 @@
1
+ /**
2
+ * WorkflowHeaderRail (DRAFT — not exported from the package).
3
+ *
4
+ * Single row with a 3 px status-coloured stripe on the LEFT edge that
5
+ * runs the full header height. The rail IS the status indicator — no
6
+ * dot needed inline. Reads instantly from the periphery: orange = paused,
7
+ * red = error, blue + animated = running.
8
+ *
9
+ * ┃ ‹ Workflows / HTTP Order Sync · Saved 12s ago Stop · Draft ▎ ⏏ ⋮
10
+ * ┃ ← rail (status-tinted, animates when running)
11
+ *
12
+ * Why it might win:
13
+ * - Status is readable from the periphery without parsing — single
14
+ * vertical line catches the eye like a tab indicator.
15
+ * - No inline status dot frees ~12 px of horizontal space for the title.
16
+ *
17
+ * Why it might lose:
18
+ * - Left-edge accents collide with sidebars/rails the host already uses.
19
+ * - Less discoverable status — first-time users don't know to read it.
20
+ */
21
+ import type { ReactNode } from "react";
22
+ import { type DropdownMenuItem } from "../../DropdownMenu";
23
+ export interface WorkflowHeaderRailProps {
24
+ name: ReactNode;
25
+ statusTone?: "draft" | "active" | "paused" | "error" | "running";
26
+ onBack?: () => void;
27
+ parentLabel?: ReactNode;
28
+ saveLabel?: string;
29
+ saveError?: string | null;
30
+ isRunning?: boolean;
31
+ onStop?: () => void;
32
+ runtime?: string;
33
+ environment?: {
34
+ label: ReactNode;
35
+ accent?: string;
36
+ title?: string;
37
+ onClick?: () => void;
38
+ };
39
+ isConsoleOpen?: boolean;
40
+ onToggleConsole?: () => void;
41
+ menuItems?: DropdownMenuItem[];
42
+ className?: string;
43
+ }
44
+ export declare function WorkflowHeaderRail({ name, statusTone, onBack, parentLabel, saveLabel, saveError, isRunning, onStop, runtime, environment, isConsoleOpen, onToggleConsole, menuItems, className, }: WorkflowHeaderRailProps): import("react/jsx-runtime").JSX.Element;
45
+ //# sourceMappingURL=WorkflowHeaderRail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderRail.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderRail.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,uBAAuB;IACtC,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,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,kBAAkB,CAAC,EACjC,IAAI,EACJ,UAAoB,EACpB,MAAM,EACN,WAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,uBAAuB,2CA4FzB"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * WorkflowHeaderStudio (DRAFT — not exported from the package).
3
+ *
4
+ * Dashboard-feel single row (60 px tall). The Run / Stop CTA is the
5
+ * visual anchor on the right — primary variant, prominent — making
6
+ * "execute this workflow" the obvious next action. Generous typography.
7
+ *
8
+ * ┌──────────────────────────────────────────────────────────────────────────┐
9
+ * │ ‹ Workflows / ● HTTP Order Sync Draft ▎ ⏏ [▶ Run] ⋮ │
10
+ * │ Saved 12s ago │
11
+ * └──────────────────────────────────────────────────────────────────────────┘
12
+ *
13
+ * Why it might win:
14
+ * - Run is the primary intent in most editor sessions — giving it visual
15
+ * weight reduces hunt-and-click and reads as "tool ready to do work."
16
+ * - 60 px height gives the title room to breathe; save indicator gets a
17
+ * dedicated second line so it's never competing with the title.
18
+ *
19
+ * Why it might lose:
20
+ * - 16 px taller than the default → less canvas.
21
+ * - Big primary CTA at rest can feel demanding on long idle sessions.
22
+ */
23
+ import type { ReactNode } from "react";
24
+ import { type DropdownMenuItem } from "../../DropdownMenu";
25
+ export interface WorkflowHeaderStudioProps {
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
+ onRun?: () => void;
34
+ onStop?: () => void;
35
+ runtime?: string;
36
+ environment?: {
37
+ label: ReactNode;
38
+ accent?: string;
39
+ title?: string;
40
+ onClick?: () => void;
41
+ };
42
+ isConsoleOpen?: boolean;
43
+ onToggleConsole?: () => void;
44
+ menuItems?: DropdownMenuItem[];
45
+ className?: string;
46
+ }
47
+ export declare function WorkflowHeaderStudio({ name, statusTone, onBack, parentLabel, saveLabel, saveError, isRunning, onRun, onStop, runtime, environment, isConsoleOpen, onToggleConsole, menuItems, className, }: WorkflowHeaderStudioProps): import("react/jsx-runtime").JSX.Element;
48
+ //# sourceMappingURL=WorkflowHeaderStudio.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderStudio.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderStudio.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,yBAAyB;IACxC,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,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,UAAoB,EACpB,MAAM,EACN,WAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACT,KAAK,EACL,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,yBAAyB,2CAgH3B"}
@@ -0,0 +1,52 @@
1
+ /**
2
+ * WorkflowHeaderTiered (DRAFT — not exported from the package).
3
+ *
4
+ * Two-row variant for editors that need always-visible run metadata
5
+ * underneath the identity row.
6
+ *
7
+ * ┌──────────────────────────────────────────────────────────────────────┐
8
+ * │ ‹ Workflows / ● Name Stop · 00:12 · Env ▎ ⏏ ⋮ │ ← 40 px
9
+ * │ GPT-4o · 2 steps · 0 errors · last run 3m ago · Saved 12s ago │ ← 24 px
10
+ * │ ──────────────────────────────────────────────────────────────────── │ ← shimmer while running
11
+ * └──────────────────────────────────────────────────────────────────────┘
12
+ *
13
+ * Why it might win:
14
+ * - Always-visible execution context (model, step count, errors, etc.)
15
+ * - Save indicator gets dedicated breathing room — never competes with
16
+ * the title for horizontal space
17
+ *
18
+ * Why it might lose:
19
+ * - 64 px total height (40 + 24) costs 20 px of canvas vs the default 44 px
20
+ * - The meta strip can read as noise when the workflow is idle
21
+ *
22
+ * Imported only by `WorkflowHeader.stories.tsx` for side-by-side review.
23
+ */
24
+ import type { ReactNode } from "react";
25
+ import { type DropdownMenuItem } from "../../DropdownMenu";
26
+ export interface WorkflowHeaderTieredProps {
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
+ onStop?: () => void;
39
+ runtime?: string;
40
+ environment?: {
41
+ label: ReactNode;
42
+ accent?: string;
43
+ title?: string;
44
+ onClick?: () => void;
45
+ };
46
+ isConsoleOpen?: boolean;
47
+ onToggleConsole?: () => void;
48
+ menuItems?: DropdownMenuItem[];
49
+ className?: string;
50
+ }
51
+ export declare function WorkflowHeaderTiered({ name, statusTone, onBack, parentLabel, meta, saveLabel, saveError, isRunning, onStop, runtime, environment, isConsoleOpen, onToggleConsole, menuItems, className, }: WorkflowHeaderTieredProps): import("react/jsx-runtime").JSX.Element;
52
+ //# sourceMappingURL=WorkflowHeaderTiered.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowHeaderTiered.d.ts","sourceRoot":"","sources":["../../../../src/components/WorkflowHeader/misc/WorkflowHeaderTiered.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,EAAgB,KAAK,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGzE,MAAM,WAAW,yBAAyB;IACxC,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;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,SAAS,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,IAAI,EACJ,UAAoB,EACpB,MAAM,EACN,WAAoB,EACpB,IAAI,EACJ,SAAS,EACT,SAAS,EACT,SAAS,EACT,MAAM,EACN,OAAO,EACP,WAAW,EACX,aAAa,EACb,eAAe,EACf,SAAS,EACT,SAAS,GACV,EAAE,yBAAyB,2CAkH3B"}
@@ -1,7 +1,32 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- export interface XmlViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "children"> {
2
+ /** Result reported through `onValidate` after each edit-mode keystroke. */
3
+ export interface XmlViewerValidationResult {
4
+ /** True when the current editor text passes `XMLValidator.validate`. */
5
+ valid: boolean;
6
+ /** Parse error details — only present when `valid` is false. */
7
+ error?: {
8
+ /** 1-indexed line number. */
9
+ line: number;
10
+ /** 1-indexed column number. */
11
+ col: number;
12
+ /** Human-readable error message. */
13
+ message: string;
14
+ };
15
+ }
16
+ export interface XmlViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "children" | "onChange"> {
3
17
  /** Raw XML string. */
4
18
  data: string;
19
+ /**
20
+ * `view` (default) — read-only DOM-style tree with collapsible nodes.
21
+ * `edit` — CodeEditor primed with the XML text. `onChange` fires on
22
+ * every keystroke; `onValidate` reports parse success/failure via
23
+ * `fast-xml-parser`'s XMLValidator (line/col accurate across browsers).
24
+ */
25
+ mode?: "view" | "edit";
26
+ /** Fires on every keystroke in `mode='edit'` with the raw editor text. */
27
+ onChange?: (rawText: string) => void;
28
+ /** Fires after each parse attempt in `mode='edit'`. */
29
+ onValidate?: (result: XmlViewerValidationResult) => void;
5
30
  /** Initially expand to N levels deep. Default 2. Use `Infinity` to expand everything. */
6
31
  defaultExpandDepth?: number;
7
32
  /** Show attributes inline (vs. collapsed). Default true. */
@@ -1 +1 @@
1
- {"version":3,"file":"XmlViewer.d.ts","sourceRoot":"","sources":["../../../src/components/XmlViewer/XmlViewer.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,cACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnE,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAgGD;;;GAGG;AACH,eAAO,MAAM,SAAS,2GA4ErB,CAAC"}
1
+ {"version":3,"file":"XmlViewer.d.ts","sourceRoot":"","sources":["../../../src/components/XmlViewer/XmlViewer.tsx"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AASf,2EAA2E;AAC3E,MAAM,WAAW,yBAAyB;IACxC,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE;QACN,6BAA6B;QAC7B,IAAI,EAAE,MAAM,CAAC;QACb,+BAA+B;QAC/B,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,sBAAsB;IACtB,IAAI,EAAE,MAAM,CAAC;IACb;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,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,yFAAyF;IACzF,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oFAAoF;IACpF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,4CAA4C;IAC5C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAgGD;;;GAGG;AACH,eAAO,MAAM,SAAS,2GAiFrB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { XmlViewer, type XmlViewerProps } from "./XmlViewer";
1
+ export { XmlViewer, type XmlViewerProps, type XmlViewerValidationResult, } from "./XmlViewer";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/XmlViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/XmlViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,KAAK,cAAc,EACnB,KAAK,yBAAyB,GAC/B,MAAM,aAAa,CAAC"}
@@ -1,7 +1,32 @@
1
1
  import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
- export interface YamlViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "children"> {
2
+ /** Result reported through `onValidate` after each edit-mode keystroke. */
3
+ export interface YamlViewerValidationResult {
4
+ /** True when the current editor text parses as valid YAML. */
5
+ valid: boolean;
6
+ /** Parse error details — only present when `valid` is false. */
7
+ error?: {
8
+ /** 1-indexed line number from the YAML parser. */
9
+ line: number;
10
+ /** 1-indexed column number from the YAML parser. */
11
+ col: number;
12
+ /** Human-readable error message. */
13
+ message: string;
14
+ };
15
+ }
16
+ export interface YamlViewerProps extends Omit<ComponentPropsWithoutRef<"div">, "title" | "children" | "onChange"> {
3
17
  /** Raw YAML string OR a parsed object/array (auto-stringified to YAML). */
4
18
  data: string | unknown;
19
+ /**
20
+ * `view` (default) — read-only token-highlighted YAML tree.
21
+ * `edit` — CodeEditor primed with the YAML text. `onChange` fires on
22
+ * every keystroke; `onValidate` reports parse success/failure with
23
+ * line/col extracted from the `yaml` parser.
24
+ */
25
+ mode?: "view" | "edit";
26
+ /** Fires on every keystroke in `mode='edit'` with the raw editor text. */
27
+ onChange?: (rawText: string) => void;
28
+ /** Fires after each parse attempt in `mode='edit'`. */
29
+ onValidate?: (result: YamlViewerValidationResult) => void;
5
30
  /** Initially expand to N levels deep. Default 99 (fully expanded). */
6
31
  defaultExpandDepth?: number;
7
32
  /** Show line numbers at the gutter. Default true. */
@@ -1 +1 @@
1
- {"version":3,"file":"YamlViewer.d.ts","sourceRoot":"","sources":["../../../src/components/YamlViewer/YamlViewer.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAKf,MAAM,OAAO,CAAC;AAOf,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IACnE,2EAA2E;IAC3E,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AA4KD;;;GAGG;AACH,eAAO,MAAM,UAAU,4GA6OtB,CAAC"}
1
+ {"version":3,"file":"YamlViewer.d.ts","sourceRoot":"","sources":["../../../src/components/YamlViewer/YamlViewer.tsx"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,wBAAwB,EAG7B,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAUf,2EAA2E;AAC3E,MAAM,WAAW,0BAA0B;IACzC,8DAA8D;IAC9D,KAAK,EAAE,OAAO,CAAC;IACf,gEAAgE;IAChE,KAAK,CAAC,EAAE;QACN,kDAAkD;QAClD,IAAI,EAAE,MAAM,CAAC;QACb,oDAAoD;QACpD,GAAG,EAAE,MAAM,CAAC;QACZ,oCAAoC;QACpC,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,eACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;IAChF,2EAA2E;IAC3E,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,0EAA0E;IAC1E,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,uDAAuD;IACvD,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,0BAA0B,KAAK,IAAI,CAAC;IAC1D,sEAAsE;IACtE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qDAAqD;IACrD,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,iDAAiD;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,wEAAwE;IACxE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,sBAAsB;IACtB,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,gEAAgE;IAChE,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AA4KD;;;GAGG;AACH,eAAO,MAAM,UAAU,4GAkPtB,CAAC"}
@@ -1,2 +1,2 @@
1
- export { YamlViewer, type YamlViewerProps } from "./YamlViewer";
1
+ export { YamlViewer, type YamlViewerProps, type YamlViewerValidationResult, } from "./YamlViewer";
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/YamlViewer/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/YamlViewer/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,eAAe,EACpB,KAAK,0BAA0B,GAChC,MAAM,cAAc,CAAC"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Pure relative-time formatter — produces `just now / Xs ago / Xm ago /
3
+ * Xh ago` for the first 24 h, then falls back to a locale date string.
4
+ *
5
+ * @param when Reference timestamp (`Date` or epoch ms). `null` → returns null.
6
+ * @param now The "now" baseline (epoch ms). Defaults to `Date.now()`.
7
+ * Pass the same `now` repeatedly to keep render output stable
8
+ * across many indicators on the same surface.
9
+ */
10
+ export declare function formatRelativeTime(when: Date | number | null | undefined, now?: number): string | null;
11
+ export interface UseRelativeTimeOptions {
12
+ /**
13
+ * Tick cadence in milliseconds. Default 30 000 (30 s). Drop to 1 000
14
+ * for second-resolution indicators (e.g. a live "uploading"
15
+ * countdown); raise to 60 000+ for slow-changing meta lines.
16
+ */
17
+ intervalMs?: number;
18
+ }
19
+ /**
20
+ * Live relative-time string. Re-renders the host every `intervalMs`
21
+ * (default 30 s) so the displayed value stays current without the
22
+ * consumer wiring a timer.
23
+ *
24
+ * @param date Timestamp (`Date` or epoch ms). `null` → returns null.
25
+ * @param options Optional config — see {@link UseRelativeTimeOptions}.
26
+ */
27
+ export declare function useRelativeTime(date: Date | number | null | undefined, options?: UseRelativeTimeOptions): string | null;
28
+ //# sourceMappingURL=useRelativeTime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRelativeTime.d.ts","sourceRoot":"","sources":["../../src/hooks/useRelativeTime.ts"],"names":[],"mappings":"AA0BA;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,GAAG,GAAE,MAAmB,GACvB,MAAM,GAAG,IAAI,CAWf;AAED,MAAM,WAAW,sBAAsB;IACrC;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EACtC,OAAO,GAAE,sBAA2B,GACnC,MAAM,GAAG,IAAI,CAaf"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Pure runtime formatter. Use this for static durations (a finished run's
3
+ * total time, a CSV cell, an exported report). For live ticking strings
4
+ * use {@link useWorkflowRuntime}.
5
+ *
6
+ * - Sub-hour runs render as `MM:SS` (two-digit minutes + seconds).
7
+ * - One-hour-and-over runs render as `H:MM:SS` (hour-prefixed).
8
+ * - Negative inputs clamp to 0.
9
+ */
10
+ export declare function formatWorkflowRuntime(ms: number): string;
11
+ /**
12
+ * Live runtime counter — re-renders the host component once per second
13
+ * while `active` is true. Returns `null` when paused so consumers can
14
+ * render an idle placeholder.
15
+ *
16
+ * @param startedAt Run start time (`Date` or epoch ms). `null` / undefined → returns null.
17
+ * @param active Drives ticking. False stops the interval and returns null.
18
+ */
19
+ export declare function useWorkflowRuntime(startedAt: Date | number | null | undefined, active: boolean): string | null;
20
+ //# sourceMappingURL=useWorkflowRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWorkflowRuntime.d.ts","sourceRoot":"","sources":["../../src/hooks/useWorkflowRuntime.ts"],"names":[],"mappings":"AA2BA;;;;;;;;GAQG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAOxD;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAChC,SAAS,EAAE,IAAI,GAAG,MAAM,GAAG,IAAI,GAAG,SAAS,EAC3C,MAAM,EAAE,OAAO,GACd,MAAM,GAAG,IAAI,CAef"}