@octaviaflow/core 3.1.0-beta.67 → 3.1.0-beta.68

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 (70) hide show
  1. package/dist/chunk-JMSZOWT2.js +2616 -0
  2. package/dist/chunk-JMSZOWT2.js.map +1 -0
  3. package/dist/chunk-KZP2MNBO.js +2516 -0
  4. package/dist/chunk-KZP2MNBO.js.map +1 -0
  5. package/dist/chunk-S4LE4BFQ.js +5934 -0
  6. package/dist/chunk-S4LE4BFQ.js.map +1 -0
  7. package/dist/chunk-X7YETDK7.js +107 -0
  8. package/dist/chunk-X7YETDK7.js.map +1 -0
  9. package/dist/components/WorkflowShowcase/ShowcaseScene.d.ts +20 -0
  10. package/dist/components/WorkflowShowcase/ShowcaseScene.d.ts.map +1 -0
  11. package/dist/components/WorkflowShowcase/ShowcaseSignup.d.ts +14 -0
  12. package/dist/components/WorkflowShowcase/ShowcaseSignup.d.ts.map +1 -0
  13. package/dist/components/WorkflowShowcase/WorkflowShowcase.d.ts +48 -0
  14. package/dist/components/WorkflowShowcase/WorkflowShowcase.d.ts.map +1 -0
  15. package/dist/components/WorkflowShowcase/index.d.ts +3 -0
  16. package/dist/components/WorkflowShowcase/index.d.ts.map +1 -0
  17. package/dist/components/WorkflowShowcase/showcaseEngine.d.ts +102 -0
  18. package/dist/components/WorkflowShowcase/showcaseEngine.d.ts.map +1 -0
  19. package/dist/index.js +7854 -13331
  20. package/dist/index.js.map +1 -1
  21. package/dist/marketing/components/AssistantTranscript/AssistantTranscript.d.ts +15 -0
  22. package/dist/marketing/components/AssistantTranscript/AssistantTranscript.d.ts.map +1 -0
  23. package/dist/marketing/components/CtaBanner/CtaBanner.d.ts +16 -0
  24. package/dist/marketing/components/CtaBanner/CtaBanner.d.ts.map +1 -0
  25. package/dist/marketing/components/FeatureGrid/FeatureGrid.d.ts +15 -0
  26. package/dist/marketing/components/FeatureGrid/FeatureGrid.d.ts.map +1 -0
  27. package/dist/marketing/components/IntegrationsWall/IntegrationsWall.d.ts +19 -0
  28. package/dist/marketing/components/IntegrationsWall/IntegrationsWall.d.ts.map +1 -0
  29. package/dist/marketing/components/LiveConsole/LiveConsole.d.ts +21 -0
  30. package/dist/marketing/components/LiveConsole/LiveConsole.d.ts.map +1 -0
  31. package/dist/marketing/components/MarketingFooter/MarketingFooter.d.ts +25 -0
  32. package/dist/marketing/components/MarketingFooter/MarketingFooter.d.ts.map +1 -0
  33. package/dist/marketing/components/MarketingHero/MarketingHero.d.ts +11 -0
  34. package/dist/marketing/components/MarketingHero/MarketingHero.d.ts.map +1 -0
  35. package/dist/marketing/components/MarketingNav/MarketingNav.d.ts +17 -0
  36. package/dist/marketing/components/MarketingNav/MarketingNav.d.ts.map +1 -0
  37. package/dist/marketing/components/MarketingSection/MarketingSection.d.ts +15 -0
  38. package/dist/marketing/components/MarketingSection/MarketingSection.d.ts.map +1 -0
  39. package/dist/marketing/components/StatBand/StatBand.d.ts +16 -0
  40. package/dist/marketing/components/StatBand/StatBand.d.ts.map +1 -0
  41. package/dist/marketing/components/WorkflowShowcase/ShowcaseScene.d.ts +20 -0
  42. package/dist/marketing/components/WorkflowShowcase/ShowcaseScene.d.ts.map +1 -0
  43. package/dist/marketing/components/WorkflowShowcase/ShowcaseSignup.d.ts +14 -0
  44. package/dist/marketing/components/WorkflowShowcase/ShowcaseSignup.d.ts.map +1 -0
  45. package/dist/marketing/components/WorkflowShowcase/WorkflowShowcase.d.ts +48 -0
  46. package/dist/marketing/components/WorkflowShowcase/WorkflowShowcase.d.ts.map +1 -0
  47. package/dist/marketing/components/WorkflowShowcase/index.d.ts +3 -0
  48. package/dist/marketing/components/WorkflowShowcase/index.d.ts.map +1 -0
  49. package/dist/marketing/components/WorkflowShowcase/showcaseEngine.d.ts +102 -0
  50. package/dist/marketing/components/WorkflowShowcase/showcaseEngine.d.ts.map +1 -0
  51. package/dist/marketing/glyphs.d.ts +20 -0
  52. package/dist/marketing/glyphs.d.ts.map +1 -0
  53. package/dist/marketing/index.d.ts +13 -0
  54. package/dist/marketing/index.d.ts.map +1 -0
  55. package/dist/marketing.cjs +3985 -0
  56. package/dist/marketing.cjs.map +1 -0
  57. package/dist/marketing.js +1669 -0
  58. package/dist/marketing.js.map +1 -0
  59. package/dist/styles.css +1 -1
  60. package/dist/workflow/components/HttpActionPanel/HttpActionPanel.d.ts +29 -0
  61. package/dist/workflow/components/HttpActionPanel/HttpActionPanel.d.ts.map +1 -0
  62. package/dist/workflow/components/HttpActionPanel/httpActionTypes.d.ts +135 -0
  63. package/dist/workflow/components/HttpActionPanel/httpActionTypes.d.ts.map +1 -0
  64. package/dist/workflow/index.d.ts +2 -0
  65. package/dist/workflow/index.d.ts.map +1 -1
  66. package/dist/workflow.cjs +6922 -271
  67. package/dist/workflow.cjs.map +1 -1
  68. package/dist/workflow.js +1587 -56
  69. package/dist/workflow.js.map +1 -1
  70. package/package.json +6 -1
@@ -0,0 +1,107 @@
1
+ import {
2
+ cn
3
+ } from "./chunk-ZAUUGK2Y.js";
4
+
5
+ // src/components/CountUp/CountUp.tsx
6
+ import {
7
+ forwardRef,
8
+ useEffect,
9
+ useRef,
10
+ useState
11
+ } from "react";
12
+ import { jsxs } from "react/jsx-runtime";
13
+ var easeLinear = (t) => t;
14
+ var easeOutCubic = (t) => 1 - Math.pow(1 - t, 3);
15
+ var easeOutQuart = (t) => 1 - Math.pow(1 - t, 4);
16
+ var easeOutExpo = (t) => t === 1 ? 1 : 1 - Math.pow(2, -10 * t);
17
+ var CountUp = forwardRef(
18
+ function CountUp2({
19
+ value,
20
+ from = 0,
21
+ duration = 800,
22
+ easing = easeOutCubic,
23
+ decimals = 0,
24
+ formatValue,
25
+ prefix,
26
+ suffix,
27
+ delay = 0,
28
+ disableAnimation = false,
29
+ onComplete,
30
+ className,
31
+ ...rest
32
+ }, ref) {
33
+ const [n, setN] = useState(disableAnimation ? value : from);
34
+ const lastRendered = useRef(disableAnimation ? value : from);
35
+ useEffect(() => {
36
+ const reduced = typeof window !== "undefined" && window.matchMedia?.("(prefers-reduced-motion: reduce)").matches;
37
+ if (disableAnimation || reduced) {
38
+ setN(value);
39
+ lastRendered.current = value;
40
+ onComplete?.();
41
+ return;
42
+ }
43
+ const startValue = lastRendered.current;
44
+ const delta = value - startValue;
45
+ if (delta === 0) return;
46
+ let raf = null;
47
+ let timeoutId = null;
48
+ let startTime = null;
49
+ let cancelled = false;
50
+ const tick = (ts) => {
51
+ if (cancelled) return;
52
+ if (startTime === null) startTime = ts;
53
+ const t = Math.min(1, (ts - startTime) / Math.max(1, duration));
54
+ const eased = easing(t);
55
+ const current = startValue + delta * eased;
56
+ setN(current);
57
+ lastRendered.current = current;
58
+ if (t < 1) {
59
+ raf = requestAnimationFrame(tick);
60
+ } else {
61
+ lastRendered.current = value;
62
+ setN(value);
63
+ onComplete?.();
64
+ }
65
+ };
66
+ const start = () => {
67
+ raf = requestAnimationFrame(tick);
68
+ };
69
+ if (delay > 0) {
70
+ timeoutId = window.setTimeout(start, delay);
71
+ } else {
72
+ start();
73
+ }
74
+ return () => {
75
+ cancelled = true;
76
+ if (raf !== null) cancelAnimationFrame(raf);
77
+ if (timeoutId !== null) window.clearTimeout(timeoutId);
78
+ };
79
+ }, [value, duration, delay, disableAnimation]);
80
+ const display = formatValue ? formatValue(n) : n.toFixed(decimals);
81
+ return /* @__PURE__ */ jsxs(
82
+ "span",
83
+ {
84
+ ...rest,
85
+ ref,
86
+ className: cn("ods-count-up", className),
87
+ "aria-live": "polite",
88
+ "aria-atomic": "true",
89
+ children: [
90
+ prefix,
91
+ display,
92
+ suffix
93
+ ]
94
+ }
95
+ );
96
+ }
97
+ );
98
+ CountUp.displayName = "CountUp";
99
+
100
+ export {
101
+ easeLinear,
102
+ easeOutCubic,
103
+ easeOutQuart,
104
+ easeOutExpo,
105
+ CountUp
106
+ };
107
+ //# sourceMappingURL=chunk-X7YETDK7.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/CountUp/CountUp.tsx"],"sourcesContent":["\"use client\";\nimport {\n type ComponentPropsWithoutRef,\n forwardRef,\n type ReactNode,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport { cn } from \"../../utils/cn\";\n\n/* ---------------------------------------------------------------------------\n * CountUp — animated numeric counter.\n *\n * For ETL / orchestration dashboards: rows processed, runs completed,\n * MRR, throughput totals. Pairs naturally with `Sparkline` and `Stat`.\n *\n * The animation is implementation-light — a `requestAnimationFrame` loop\n * with a configurable easing function. Skips entirely when the user has\n * `prefers-reduced-motion` enabled or `disableAnimation` is true.\n *\n * Re-runs the tween whenever `value` changes, starting from the previous\n * displayed value (so consecutive updates flow smoothly without a reset\n * to 0).\n * ------------------------------------------------------------------------- */\n\nexport type Easing = (t: number) => number;\n\nexport interface CountUpProps\n extends Omit<\n ComponentPropsWithoutRef<\"span\">,\n // HTMLSpanElement carries a native `prefix` attribute (string) — omit\n // it so our `ReactNode` prefix slot can coexist.\n \"children\" | \"onChange\" | \"prefix\"\n > {\n /** Target value. */\n value: number;\n /** Starting value on FIRST mount. Default 0. */\n from?: number;\n /** Tween duration in ms. Default 800. */\n duration?: number;\n /** Easing function. Default `easeOutCubic`. */\n easing?: Easing;\n /** Decimal places when no `formatValue` is supplied. Default 0. */\n decimals?: number;\n /** Custom formatter — wins over `decimals`. */\n formatValue?: (value: number) => ReactNode;\n /** Inline content before the number. */\n prefix?: ReactNode;\n /** Inline content after the number (e.g. \"%\"). */\n suffix?: ReactNode;\n /** Delay the tween start in ms. */\n delay?: number;\n /**\n * Skip the animation and render `value` immediately. Reads as a\n * \"static mode\" — useful for SSR snapshots or print views.\n */\n disableAnimation?: boolean;\n /** Fires once when the tween settles on the target value. */\n onComplete?: () => void;\n}\n\n/* ---------------------------------------------------------------------------\n * Easings\n * ------------------------------------------------------------------------- */\n\nexport const easeLinear: Easing = (t) => t;\nexport const easeOutCubic: Easing = (t) => 1 - Math.pow(1 - t, 3);\nexport const easeOutQuart: Easing = (t) => 1 - Math.pow(1 - t, 4);\nexport const easeOutExpo: Easing = (t) =>\n t === 1 ? 1 : 1 - Math.pow(2, -10 * t);\n\n/* ---------------------------------------------------------------------------\n * Component\n * ------------------------------------------------------------------------- */\n\nexport const CountUp = forwardRef<HTMLSpanElement, CountUpProps>(\n function CountUp(\n {\n value,\n from = 0,\n duration = 800,\n easing = easeOutCubic,\n decimals = 0,\n formatValue,\n prefix,\n suffix,\n delay = 0,\n disableAnimation = false,\n onComplete,\n className,\n ...rest\n },\n ref,\n ) {\n // The current rendered number. Initialise to `from` on first mount;\n // subsequent renders tween from the previous displayed value.\n const [n, setN] = useState<number>(disableAnimation ? value : from);\n const lastRendered = useRef<number>(disableAnimation ? value : from);\n\n useEffect(() => {\n // Respect prefers-reduced-motion — snap to target without animation.\n const reduced =\n typeof window !== \"undefined\" &&\n window.matchMedia?.(\"(prefers-reduced-motion: reduce)\")\n .matches;\n\n if (disableAnimation || reduced) {\n setN(value);\n lastRendered.current = value;\n onComplete?.();\n return;\n }\n\n const startValue = lastRendered.current;\n const delta = value - startValue;\n if (delta === 0) return;\n\n let raf: number | null = null;\n let timeoutId: number | null = null;\n let startTime: number | null = null;\n let cancelled = false;\n\n const tick = (ts: number) => {\n if (cancelled) return;\n if (startTime === null) startTime = ts;\n const t = Math.min(1, (ts - startTime) / Math.max(1, duration));\n const eased = easing(t);\n const current = startValue + delta * eased;\n setN(current);\n lastRendered.current = current;\n if (t < 1) {\n raf = requestAnimationFrame(tick);\n } else {\n lastRendered.current = value;\n setN(value);\n onComplete?.();\n }\n };\n\n const start = () => {\n raf = requestAnimationFrame(tick);\n };\n\n if (delay > 0) {\n timeoutId = window.setTimeout(start, delay);\n } else {\n start();\n }\n\n return () => {\n cancelled = true;\n if (raf !== null) cancelAnimationFrame(raf);\n if (timeoutId !== null) window.clearTimeout(timeoutId);\n };\n // We intentionally exclude `easing` from deps — it should be a\n // stable function reference. If the consumer changes easing\n // mid-flight, we just pick it up on the next value change.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value, duration, delay, disableAnimation]);\n\n const display = formatValue ? formatValue(n) : n.toFixed(decimals);\n\n return (\n <span\n {...rest}\n ref={ref}\n className={cn(\"ods-count-up\", className)}\n // aria-live so screen readers announce updates without a stale\n // value lingering. Polite (default for \"status\") avoids\n // interrupting other announcements.\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n {prefix}\n {display}\n {suffix}\n </span>\n );\n },\n);\n\nCountUp.displayName = \"CountUp\";\n"],"mappings":";;;;;AACA;AAAA,EAEE;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AA4JD;AAlGC,IAAM,aAAqB,CAAC,MAAM;AAClC,IAAM,eAAuB,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC;AACzD,IAAM,eAAuB,CAAC,MAAM,IAAI,KAAK,IAAI,IAAI,GAAG,CAAC;AACzD,IAAM,cAAsB,CAAC,MAClC,MAAM,IAAI,IAAI,IAAI,KAAK,IAAI,GAAG,MAAM,CAAC;AAMhC,IAAM,UAAU;AAAA,EACrB,SAASA,SACP;AAAA,IACE;AAAA,IACA,OAAO;AAAA,IACP,WAAW;AAAA,IACX,SAAS;AAAA,IACT,WAAW;AAAA,IACX;AAAA,IACA;AAAA,IACA;AAAA,IACA,QAAQ;AAAA,IACR,mBAAmB;AAAA,IACnB;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,GACA,KACA;AAGA,UAAM,CAAC,GAAG,IAAI,IAAI,SAAiB,mBAAmB,QAAQ,IAAI;AAClE,UAAM,eAAe,OAAe,mBAAmB,QAAQ,IAAI;AAEnE,cAAU,MAAM;AAEd,YAAM,UACJ,OAAO,WAAW,eAClB,OAAO,aAAa,kCAAkC,EACnD;AAEL,UAAI,oBAAoB,SAAS;AAC/B,aAAK,KAAK;AACV,qBAAa,UAAU;AACvB,qBAAa;AACb;AAAA,MACF;AAEA,YAAM,aAAa,aAAa;AAChC,YAAM,QAAQ,QAAQ;AACtB,UAAI,UAAU,EAAG;AAEjB,UAAI,MAAqB;AACzB,UAAI,YAA2B;AAC/B,UAAI,YAA2B;AAC/B,UAAI,YAAY;AAEhB,YAAM,OAAO,CAAC,OAAe;AAC3B,YAAI,UAAW;AACf,YAAI,cAAc,KAAM,aAAY;AACpC,cAAM,IAAI,KAAK,IAAI,IAAI,KAAK,aAAa,KAAK,IAAI,GAAG,QAAQ,CAAC;AAC9D,cAAM,QAAQ,OAAO,CAAC;AACtB,cAAM,UAAU,aAAa,QAAQ;AACrC,aAAK,OAAO;AACZ,qBAAa,UAAU;AACvB,YAAI,IAAI,GAAG;AACT,gBAAM,sBAAsB,IAAI;AAAA,QAClC,OAAO;AACL,uBAAa,UAAU;AACvB,eAAK,KAAK;AACV,uBAAa;AAAA,QACf;AAAA,MACF;AAEA,YAAM,QAAQ,MAAM;AAClB,cAAM,sBAAsB,IAAI;AAAA,MAClC;AAEA,UAAI,QAAQ,GAAG;AACb,oBAAY,OAAO,WAAW,OAAO,KAAK;AAAA,MAC5C,OAAO;AACL,cAAM;AAAA,MACR;AAEA,aAAO,MAAM;AACX,oBAAY;AACZ,YAAI,QAAQ,KAAM,sBAAqB,GAAG;AAC1C,YAAI,cAAc,KAAM,QAAO,aAAa,SAAS;AAAA,MACvD;AAAA,IAKF,GAAG,CAAC,OAAO,UAAU,OAAO,gBAAgB,CAAC;AAE7C,UAAM,UAAU,cAAc,YAAY,CAAC,IAAI,EAAE,QAAQ,QAAQ;AAEjE,WACE;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ;AAAA,QACA,WAAW,GAAG,gBAAgB,SAAS;AAAA,QAIvC,aAAU;AAAA,QACV,eAAY;AAAA,QAEX;AAAA;AAAA,UACA;AAAA,UACA;AAAA;AAAA;AAAA,IACH;AAAA,EAEJ;AACF;AAEA,QAAQ,cAAc;","names":["CountUp"]}
@@ -0,0 +1,20 @@
1
+ import { type ReactNode } from "react";
2
+ import { type WorkflowShowcaseConnector } from "./showcaseEngine";
3
+ export interface ShowcaseSceneNode {
4
+ connector: WorkflowShowcaseConnector;
5
+ /** Whether this node's step has completed (wires + particles light up). */
6
+ active: boolean;
7
+ }
8
+ export interface ShowcaseSceneProps {
9
+ left: ShowcaseSceneNode[];
10
+ right: ShowcaseSceneNode[];
11
+ /** Any build/run motion is happening (analyzing → welcome). */
12
+ engaged: boolean;
13
+ /** Platform tile labels (8). */
14
+ tiles: readonly string[];
15
+ /** Center-of-platform icon. Defaults to a gradient core glyph. */
16
+ coreIcon?: ReactNode;
17
+ caption: string;
18
+ }
19
+ export declare function ShowcaseScene({ left, right, engaged, tiles, coreIcon, caption, }: ShowcaseSceneProps): import("react/jsx-runtime").JSX.Element;
20
+ //# sourceMappingURL=ShowcaseScene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowcaseScene.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowShowcase/ShowcaseScene.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAA+B,MAAM,OAAO,CAAC;AAExF,OAAO,EAAY,KAAK,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAY5E,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,yBAAyB,CAAC;IACrC,2EAA2E;IAC3E,MAAM,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAC3B,+DAA+D;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,gCAAgC;IAChC,KAAK,EAAE,SAAS,MAAM,EAAE,CAAC;IACzB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;CACjB;AA6ED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,OAAO,EACP,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE,kBAAkB,2CA4KpB"}
@@ -0,0 +1,14 @@
1
+ import { type WorkflowShowcasePhase, type WorkflowShowcaseSignupValues } from "./showcaseEngine";
2
+ export interface ShowcaseSignupProps {
3
+ phase: WorkflowShowcasePhase;
4
+ stepCount: number;
5
+ workspaceDomain: string;
6
+ teamSizes: string[];
7
+ error: string | null;
8
+ onSubmit: (values: WorkflowShowcaseSignupValues) => void;
9
+ onBack: () => void;
10
+ dashboardHref?: string;
11
+ onboardingHref?: string;
12
+ }
13
+ export declare function ShowcaseSignup({ phase, stepCount, workspaceDomain, teamSizes, error, onSubmit, onBack, dashboardHref, onboardingHref, }: ShowcaseSignupProps): import("react/jsx-runtime").JSX.Element;
14
+ //# sourceMappingURL=ShowcaseSignup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShowcaseSignup.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowShowcase/ShowcaseSignup.tsx"],"names":[],"mappings":"AAQA,OAAO,EAEL,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAC;AAW1B,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,4BAA4B,KAAK,IAAI,CAAC;IACzD,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAQD,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,SAAS,EACT,eAAe,EACf,SAAS,EACT,KAAK,EACL,QAAQ,EACR,MAAM,EACN,aAAmB,EACnB,cAAoB,GACrB,EAAE,mBAAmB,2CA2LrB"}
@@ -0,0 +1,48 @@
1
+ import { type ComponentPropsWithoutRef, type ReactNode } from "react";
2
+ import { type WorkflowShowcaseConnector, type WorkflowShowcaseExample, type WorkflowShowcaseMetric, type WorkflowShowcasePhase, type WorkflowShowcaseSignupValues } from "./showcaseEngine";
3
+ export interface WorkflowShowcaseBuildDetail {
4
+ prompt: string;
5
+ connectors: string[];
6
+ schedule: string;
7
+ }
8
+ export interface WorkflowShowcaseProps extends Omit<ComponentPropsWithoutRef<"section">, "onSubmit"> {
9
+ /** Connector catalog to recognize/pick from. Vendor-neutral by default. */
10
+ connectors?: WorkflowShowcaseConnector[];
11
+ /** "TRY:" example chips. */
12
+ examples?: WorkflowShowcaseExample[];
13
+ /** Right-rail metric cards. */
14
+ metrics?: WorkflowShowcaseMetric[];
15
+ /** Pre-filled prompt text. */
16
+ defaultPrompt?: string;
17
+ /** Mono label at the right edge of the toolbar. */
18
+ modelLabel?: string;
19
+ /** Mono label in the canvas header. */
20
+ canvasLabel?: string;
21
+ /** Header of the live activity rail. */
22
+ railLabel?: string;
23
+ /** Labels for the 8 platform tiles in the scene. */
24
+ platformTiles?: readonly string[];
25
+ /** Icon on the core cube. */
26
+ coreIcon?: ReactNode;
27
+ /** Catalog-size figure used in coach copy, e.g. "600+". */
28
+ catalogNote?: string;
29
+ /** Team-size choices in the signup form. */
30
+ teamSizes?: string[];
31
+ /** Domain used for the workspace-slug preview in the welcome card. */
32
+ workspaceDomain?: string;
33
+ dashboardHref?: string;
34
+ onboardingHref?: string;
35
+ /** Accessible label for the prompt textarea. */
36
+ promptAriaLabel?: string;
37
+ /** Fires when a build kicks off (analytics hook). */
38
+ onBuild?: (detail: WorkflowShowcaseBuildDetail) => void;
39
+ /** Fires on every phase transition (analytics hook). */
40
+ onPhaseChange?: (phase: WorkflowShowcasePhase) => void;
41
+ /**
42
+ * Real signup handler. Resolve → welcome card; throw → inline error and
43
+ * back to the form. Omit to simulate provisioning (pure demo mode).
44
+ */
45
+ onSignup?: (values: WorkflowShowcaseSignupValues) => Promise<void> | void;
46
+ }
47
+ export declare function WorkflowShowcase({ connectors, examples, metrics, defaultPrompt, modelLabel, canvasLabel, railLabel, platformTiles, coreIcon, catalogNote, teamSizes, workspaceDomain, dashboardHref, onboardingHref, promptAriaLabel, onBuild, onPhaseChange, onSignup, className, ...rest }: WorkflowShowcaseProps): import("react/jsx-runtime").JSX.Element;
48
+ //# sourceMappingURL=WorkflowShowcase.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkflowShowcase.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowShowcase/WorkflowShowcase.tsx"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,wBAAwB,EAE7B,KAAK,SAAS,EAMf,MAAM,OAAO,CAAC;AAMf,OAAO,EAcL,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAE1B,KAAK,4BAA4B,EAClC,MAAM,kBAAkB,CAAC;AAa1B,MAAM,WAAW,2BAA2B;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,qBACf,SAAQ,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC;IAC7D,2EAA2E;IAC3E,UAAU,CAAC,EAAE,yBAAyB,EAAE,CAAC;IACzC,4BAA4B;IAC5B,QAAQ,CAAC,EAAE,uBAAuB,EAAE,CAAC;IACrC,+BAA+B;IAC/B,OAAO,CAAC,EAAE,sBAAsB,EAAE,CAAC;IACnC,8BAA8B;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mDAAmD;IACnD,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,aAAa,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAClC,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,2DAA2D;IAC3D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gDAAgD;IAChD,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,qDAAqD;IACrD,OAAO,CAAC,EAAE,CAAC,MAAM,EAAE,2BAA2B,KAAK,IAAI,CAAC;IACxD,wDAAwD;IACxD,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,4BAA4B,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC3E;AA+BD,wBAAgB,gBAAgB,CAAC,EAC/B,UAAiD,EACjD,QAA6C,EAC7C,OAA2C,EAC3C,aAAkB,EAClB,UAA6B,EAC7B,WAA+B,EAC/B,SAA8B,EAC9B,aAA+C,EAC/C,QAAQ,EACR,WAAoB,EACpB,SAA+C,EAC/C,eAAmC,EACnC,aAAa,EACb,cAAoB,EACpB,eAA0C,EAC1C,OAAO,EACP,aAAa,EACb,QAAQ,EACR,SAAS,EACT,GAAG,IAAI,EACR,EAAE,qBAAqB,2CAilBvB"}
@@ -0,0 +1,3 @@
1
+ export { WORKFLOW_SHOWCASE_DEFAULT_CONNECTORS, WORKFLOW_SHOWCASE_DEFAULT_EXAMPLES, WORKFLOW_SHOWCASE_DEFAULT_METRICS, WORKFLOW_SHOWCASE_DEFAULT_TILES, WORKFLOW_SHOWCASE_SCHEDULES, type WorkflowShowcaseConnector, type WorkflowShowcaseExample, type WorkflowShowcaseMetric, type WorkflowShowcasePhase, type WorkflowShowcaseRole, type WorkflowShowcaseSignupValues, } from "./showcaseEngine";
2
+ export { WorkflowShowcase, type WorkflowShowcaseBuildDetail, type WorkflowShowcaseProps, } from "./WorkflowShowcase";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowShowcase/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oCAAoC,EACpC,kCAAkC,EAClC,iCAAiC,EACjC,+BAA+B,EAC/B,2BAA2B,EAC3B,KAAK,yBAAyB,EAC9B,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,qBAAqB,EAC1B,KAAK,oBAAoB,EACzB,KAAK,4BAA4B,GAClC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,gBAAgB,EAChB,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,GAC3B,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,102 @@
1
+ import type { ReactNode } from "react";
2
+ export type WorkflowShowcaseRole = "source" | "destination" | "action" | "notify";
3
+ export interface WorkflowShowcaseConnector {
4
+ /** Canonical display name — matched case-insensitively inside the prompt. */
5
+ name: string;
6
+ role: WorkflowShowcaseRole;
7
+ /** Extra strings that also count as a mention of this connector. */
8
+ aliases?: string[];
9
+ /** Optional icon tile. Defaults to a two-letter monogram. */
10
+ icon?: ReactNode;
11
+ }
12
+ export interface WorkflowShowcaseExample {
13
+ id: string;
14
+ /** Chip label, e.g. "Storefront orders → Warehouse, hourly". */
15
+ label: string;
16
+ /** Prompt inserted (and auto-built) when the chip is clicked. */
17
+ prompt: string;
18
+ }
19
+ export interface WorkflowShowcaseMetric {
20
+ id: string;
21
+ /** Final value once the pipeline reads as live. */
22
+ value: number;
23
+ /** Interim value while the workflow is still assembling. Omit → "—". */
24
+ buildingValue?: number;
25
+ decimals?: number;
26
+ /** Small unit text after the value, e.g. "rows/min". */
27
+ unit?: string;
28
+ /** Rendered before the number, e.g. "−". */
29
+ prefix?: string;
30
+ /** Rendered flush after the number, e.g. "%". */
31
+ suffix?: string;
32
+ /** Mono microcopy under the value, e.g. "THROUGHPUT". */
33
+ label: string;
34
+ /** "success" tints the final value green (savings, wins). */
35
+ tone?: "default" | "success";
36
+ }
37
+ export type WorkflowShowcasePhase = "idle" | "analyzing" | "building" | "done" | "signup" | "creating" | "welcome";
38
+ /** Phases in which the generated workflow reads as complete. */
39
+ export declare const SETTLED_PHASES: readonly WorkflowShowcasePhase[];
40
+ export interface WorkflowShowcasePlan {
41
+ /** Sources, in catalog order. */
42
+ left: WorkflowShowcaseConnector[];
43
+ /** Destination → action → notify, in that order. */
44
+ right: WorkflowShowcaseConnector[];
45
+ /** Every connector in the plan (left + right). */
46
+ all: WorkflowShowcaseConnector[];
47
+ /** Total assemble steps: each source + schema map + each right-side node. */
48
+ totalSteps: number;
49
+ }
50
+ export interface WorkflowShowcaseSignupValues {
51
+ name: string;
52
+ email: string;
53
+ company: string;
54
+ teamSize: string;
55
+ }
56
+ export interface ShowcaseActivityLine {
57
+ id: string;
58
+ text: string;
59
+ tone: "muted" | "faint" | "active" | "done" | "plain";
60
+ }
61
+ export interface ShowcasePromptSegment {
62
+ text: string;
63
+ /** Set when this segment is a recognized connector mention. */
64
+ connector?: WorkflowShowcaseConnector;
65
+ }
66
+ export declare const WORKFLOW_SHOWCASE_DEFAULT_CONNECTORS: WorkflowShowcaseConnector[];
67
+ export declare const WORKFLOW_SHOWCASE_DEFAULT_EXAMPLES: WorkflowShowcaseExample[];
68
+ export declare const WORKFLOW_SHOWCASE_DEFAULT_METRICS: WorkflowShowcaseMetric[];
69
+ export declare const WORKFLOW_SHOWCASE_SCHEDULES: readonly ["AUTO", "HOURLY", "DAILY", "REAL-TIME"];
70
+ export declare const WORKFLOW_SHOWCASE_DEFAULT_TILES: readonly ["ELT", "CDC", "DAG", "CRON", "HEAL", "COST", "API", "LOG"];
71
+ /** Connector names mentioned in the prompt, in catalog order, deduped. */
72
+ export declare function detectConnectors(prompt: string, catalog: WorkflowShowcaseConnector[]): string[];
73
+ /** Split the prompt into plain / recognized-connector segments, preserving
74
+ * the user's exact text. Powers the live-highlight overlay. */
75
+ export declare function segmentPrompt(prompt: string, catalog: WorkflowShowcaseConnector[]): ShowcasePromptSegment[];
76
+ /** Infer a schedule from natural language; null when nothing matches. */
77
+ export declare function scheduleFromPrompt(prompt: string): string | null;
78
+ /** Two-letter monogram for the default icon tile: "Team Chat" → "TC". */
79
+ export declare function monogram(name: string): string;
80
+ /**
81
+ * Resolve the workflow plan from explicit picks + prompt mentions. A viable
82
+ * demo always has at least one source and one non-source, so missing sides
83
+ * are backfilled from the catalog (first source / first notify-or-destination).
84
+ */
85
+ export declare function resolvePlan(selected: string[], detected: string[], catalog: WorkflowShowcaseConnector[]): WorkflowShowcasePlan;
86
+ /** Ordered assemble steps for the rail + canvas ("storefront extract", …). */
87
+ export declare function assembleSteps(plan: WorkflowShowcasePlan): string[];
88
+ /**
89
+ * Script the "OCTAVIA IS DOING" rail for the current moment.
90
+ * `shown` = number of assemble steps already completed while building.
91
+ */
92
+ export declare function buildActivity(args: {
93
+ phase: WorkflowShowcasePhase;
94
+ shown: number;
95
+ plan: WorkflowShowcasePlan;
96
+ selected: string[];
97
+ status: string;
98
+ }): ShowcaseActivityLine[];
99
+ /** "Acme Inc." → "acme-inc" (workspace slug preview in the welcome card). */
100
+ export declare function slugify(value: string): string;
101
+ export declare function isValidEmail(value: string): boolean;
102
+ //# sourceMappingURL=showcaseEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"showcaseEngine.d.ts","sourceRoot":"","sources":["../../../src/components/WorkflowShowcase/showcaseEngine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAWvC,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,aAAa,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACxC,6EAA6E;IAC7E,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,oBAAoB,CAAC;IAC3B,oEAAoE;IACpE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,gEAAgE;IAChE,KAAK,EAAE,MAAM,CAAC;IACd,iEAAiE;IACjE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,EAAE,EAAE,MAAM,CAAC;IACX,mDAAmD;IACnD,KAAK,EAAE,MAAM,CAAC;IACd,wEAAwE;IACxE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yDAAyD;IACzD,KAAK,EAAE,MAAM,CAAC;IACd,6DAA6D;IAC7D,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,MAAM,qBAAqB,GAC7B,MAAM,GACN,WAAW,GACX,UAAU,GACV,MAAM,GACN,QAAQ,GACR,UAAU,GACV,SAAS,CAAC;AAEd,gEAAgE;AAChE,eAAO,MAAM,cAAc,EAAE,SAAS,qBAAqB,EAK1D,CAAC;AAEF,MAAM,WAAW,oBAAoB;IACnC,iCAAiC;IACjC,IAAI,EAAE,yBAAyB,EAAE,CAAC;IAClC,oDAAoD;IACpD,KAAK,EAAE,yBAAyB,EAAE,CAAC;IACnC,kDAAkD;IAClD,GAAG,EAAE,yBAAyB,EAAE,CAAC;IACjC,6EAA6E;IAC7E,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,4BAA4B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;CACvD;AAED,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,SAAS,CAAC,EAAE,yBAAyB,CAAC;CACvC;AAOD,eAAO,MAAM,oCAAoC,EAAE,yBAAyB,EAS3E,CAAC;AAEF,eAAO,MAAM,kCAAkC,EAAE,uBAAuB,EAgBvE,CAAC;AAEF,eAAO,MAAM,iCAAiC,EAAE,sBAAsB,EAWrE,CAAC;AAEF,eAAO,MAAM,2BAA2B,mDAAoD,CAAC;AAE7F,eAAO,MAAM,+BAA+B,sEASlC,CAAC;AA0BX,0EAA0E;AAC1E,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,yBAAyB,EAAE,GAAG,MAAM,EAAE,CAK/F;AAED;gEACgE;AAChE,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,yBAAyB,EAAE,GACnC,qBAAqB,EAAE,CAazB;AAED,yEAAyE;AACzE,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMhE;AAED,yEAAyE;AACzE,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7C;AAaD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,QAAQ,EAAE,MAAM,EAAE,EAClB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,EAAE,yBAAyB,EAAE,GACnC,oBAAoB,CAgCtB;AAYD,8EAA8E;AAC9E,wBAAgB,aAAa,CAAC,IAAI,EAAE,oBAAoB,GAAG,MAAM,EAAE,CAMlE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE;IAClC,KAAK,EAAE,qBAAqB,CAAC;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,oBAAoB,CAAC;IAC3B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;CAChB,GAAG,oBAAoB,EAAE,CA4BzB;AAMD,6EAA6E;AAC7E,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQ7C;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD"}