@octaviaflow/core 3.1.0-beta.115 → 3.1.0-beta.117

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 (92) hide show
  1. package/dist/chunk-23K2RF7Z.js +2694 -0
  2. package/dist/chunk-23K2RF7Z.js.map +1 -0
  3. package/dist/chunk-H3FCGN4P.js +6628 -0
  4. package/dist/chunk-H3FCGN4P.js.map +1 -0
  5. package/dist/chunk-ISJSOF3Z.js +3646 -0
  6. package/dist/chunk-ISJSOF3Z.js.map +1 -0
  7. package/dist/chunk-KSIZ7DLS.js +3582 -0
  8. package/dist/chunk-KSIZ7DLS.js.map +1 -0
  9. package/dist/chunk-NAG3EFQ6.js +6789 -0
  10. package/dist/chunk-NAG3EFQ6.js.map +1 -0
  11. package/dist/chunk-NMZWNZV7.js +1547 -0
  12. package/dist/chunk-NMZWNZV7.js.map +1 -0
  13. package/dist/chunk-QWOH2E3F.js +3189 -0
  14. package/dist/chunk-QWOH2E3F.js.map +1 -0
  15. package/dist/chunk-V22HCPVO.js +2856 -0
  16. package/dist/chunk-V22HCPVO.js.map +1 -0
  17. package/dist/chunk-VGAUSBP4.js +3181 -0
  18. package/dist/chunk-VGAUSBP4.js.map +1 -0
  19. package/dist/chunk-WTIM6E4X.js +3677 -0
  20. package/dist/chunk-WTIM6E4X.js.map +1 -0
  21. package/dist/chunk-XUBJHPJT.js +3680 -0
  22. package/dist/chunk-XUBJHPJT.js.map +1 -0
  23. package/dist/components/AgentCard/AgentCard.d.ts.map +1 -1
  24. package/dist/components/AssistantAura/AssistantAura.d.ts +21 -0
  25. package/dist/components/AssistantAura/AssistantAura.d.ts.map +1 -0
  26. package/dist/components/AssistantAura/index.d.ts +2 -0
  27. package/dist/components/AssistantAura/index.d.ts.map +1 -0
  28. package/dist/components/AssistantConversation/AssistantConversation.d.ts +112 -0
  29. package/dist/components/AssistantConversation/AssistantConversation.d.ts.map +1 -0
  30. package/dist/components/AssistantConversation/assistant.fixtures.d.ts +29 -0
  31. package/dist/components/AssistantConversation/assistant.fixtures.d.ts.map +1 -0
  32. package/dist/components/AssistantConversation/assistantGlyphs.d.ts +13 -0
  33. package/dist/components/AssistantConversation/assistantGlyphs.d.ts.map +1 -0
  34. package/dist/components/AssistantConversation/index.d.ts +2 -0
  35. package/dist/components/AssistantConversation/index.d.ts.map +1 -0
  36. package/dist/components/AssistantDock/AssistantDock.d.ts +25 -0
  37. package/dist/components/AssistantDock/AssistantDock.d.ts.map +1 -0
  38. package/dist/components/AssistantDock/index.d.ts +2 -0
  39. package/dist/components/AssistantDock/index.d.ts.map +1 -0
  40. package/dist/components/AssistantOrb/AssistantOrb.d.ts +14 -0
  41. package/dist/components/AssistantOrb/AssistantOrb.d.ts.map +1 -0
  42. package/dist/components/AssistantOrb/explorations/OvaIconConcepts.d.ts +22 -0
  43. package/dist/components/AssistantOrb/explorations/OvaIconConcepts.d.ts.map +1 -0
  44. package/dist/components/AssistantOrb/index.d.ts +2 -0
  45. package/dist/components/AssistantOrb/index.d.ts.map +1 -0
  46. package/dist/components/AssistantTrigger/AssistantTrigger.d.ts +17 -0
  47. package/dist/components/AssistantTrigger/AssistantTrigger.d.ts.map +1 -0
  48. package/dist/components/AssistantTrigger/index.d.ts +2 -0
  49. package/dist/components/AssistantTrigger/index.d.ts.map +1 -0
  50. package/dist/components/ChatComposer/ChatComposer.d.ts +8 -0
  51. package/dist/components/ChatComposer/ChatComposer.d.ts.map +1 -1
  52. package/dist/components/ChatDocPreview/ChatDocPreview.d.ts +20 -0
  53. package/dist/components/ChatDocPreview/ChatDocPreview.d.ts.map +1 -0
  54. package/dist/components/ChatDocPreview/index.d.ts +2 -0
  55. package/dist/components/ChatDocPreview/index.d.ts.map +1 -0
  56. package/dist/components/ChatInputRequest/ChatInputRequest.d.ts +68 -0
  57. package/dist/components/ChatInputRequest/ChatInputRequest.d.ts.map +1 -0
  58. package/dist/components/ChatInputRequest/index.d.ts +2 -0
  59. package/dist/components/ChatInputRequest/index.d.ts.map +1 -0
  60. package/dist/components/ChatLinkPreview/ChatLinkPreview.d.ts +33 -0
  61. package/dist/components/ChatLinkPreview/ChatLinkPreview.d.ts.map +1 -0
  62. package/dist/components/ChatLinkPreview/index.d.ts +2 -0
  63. package/dist/components/ChatLinkPreview/index.d.ts.map +1 -0
  64. package/dist/components/ChatSources/ChatSources.d.ts +10 -1
  65. package/dist/components/ChatSources/ChatSources.d.ts.map +1 -1
  66. package/dist/components/ChatSources/index.d.ts +1 -1
  67. package/dist/components/ChatSources/index.d.ts.map +1 -1
  68. package/dist/components/ChatVideoPreview/ChatVideoPreview.d.ts +37 -0
  69. package/dist/components/ChatVideoPreview/ChatVideoPreview.d.ts.map +1 -0
  70. package/dist/components/ChatVideoPreview/index.d.ts +2 -0
  71. package/dist/components/ChatVideoPreview/index.d.ts.map +1 -0
  72. package/dist/components/TruncatedText/TruncatedText.d.ts +15 -0
  73. package/dist/components/TruncatedText/TruncatedText.d.ts.map +1 -0
  74. package/dist/components/TruncatedText/index.d.ts +2 -0
  75. package/dist/components/TruncatedText/index.d.ts.map +1 -0
  76. package/dist/index.cjs +7716 -6548
  77. package/dist/index.cjs.map +1 -1
  78. package/dist/index.d.ts +10 -1
  79. package/dist/index.d.ts.map +1 -1
  80. package/dist/index.js +4742 -5654
  81. package/dist/index.js.map +1 -1
  82. package/dist/marketing/components/AssistantWidget/AssistantWidget.d.ts +60 -0
  83. package/dist/marketing/components/AssistantWidget/AssistantWidget.d.ts.map +1 -0
  84. package/dist/marketing/index.d.ts +1 -0
  85. package/dist/marketing/index.d.ts.map +1 -1
  86. package/dist/marketing.cjs +3710 -1196
  87. package/dist/marketing.cjs.map +1 -1
  88. package/dist/marketing.js +738 -482
  89. package/dist/marketing.js.map +1 -1
  90. package/dist/styles.css +1 -1
  91. package/dist/workflow.js +2 -2
  92. package/package.json +1 -1
package/dist/marketing.js CHANGED
@@ -1,16 +1,24 @@
1
1
  import {
2
+ AssistantAura,
3
+ AssistantConversation,
4
+ AssistantHeaderButton,
5
+ AssistantOrb,
2
6
  BlogCard,
7
+ ChatSuggestions,
8
+ CloseGlyph,
3
9
  CountUp,
10
+ NewChatGlyph,
4
11
  TestimonialCard,
5
- Textarea
6
- } from "./chunk-ZALBYWCU.js";
12
+ Textarea,
13
+ assistantStateOf
14
+ } from "./chunk-WTIM6E4X.js";
7
15
  import {
8
16
  Accordion,
9
17
  Button,
10
18
  Input,
11
19
  Select,
12
20
  Spinner
13
- } from "./chunk-75JAQ4ZG.js";
21
+ } from "./chunk-V22HCPVO.js";
14
22
  import {
15
23
  cn
16
24
  } from "./chunk-ZAUUGK2Y.js";
@@ -47,8 +55,255 @@ function AssistantTranscript({
47
55
  ] });
48
56
  }
49
57
 
58
+ // src/marketing/components/AssistantWidget/AssistantWidget.tsx
59
+ import {
60
+ useCallback,
61
+ useEffect,
62
+ useId,
63
+ useRef,
64
+ useState
65
+ } from "react";
66
+ import { Fragment, jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
67
+ function AssistantWidget({
68
+ variant = "floating",
69
+ position = "right",
70
+ frame = false,
71
+ device = "desktop",
72
+ open: openProp,
73
+ defaultOpen = false,
74
+ onOpenChange,
75
+ name = "Ova",
76
+ subtitle = "Octaviaflow assistant",
77
+ avatar,
78
+ launcherLabel = "Ask Ova",
79
+ teaser,
80
+ onTeaserDismiss,
81
+ aura = "normal",
82
+ greeting,
83
+ suggestions,
84
+ messages,
85
+ busy = false,
86
+ onSend,
87
+ onStop,
88
+ onRate,
89
+ onAnswer,
90
+ onSkipAsk,
91
+ onReset,
92
+ offline = false,
93
+ fallback,
94
+ placeholder = "Ask about Octaviaflow\u2026",
95
+ maxLength,
96
+ composerDisabled = false,
97
+ error,
98
+ notice,
99
+ className,
100
+ ...rest
101
+ }) {
102
+ const [openState, setOpenState] = useState(defaultOpen);
103
+ const open = variant === "embed" ? true : openProp ?? openState;
104
+ const setOpen = useCallback(
105
+ (next) => {
106
+ if (openProp === void 0) setOpenState(next);
107
+ onOpenChange?.(next);
108
+ },
109
+ [openProp, onOpenChange]
110
+ );
111
+ const [teaserHidden, setTeaserHidden] = useState(false);
112
+ const panelId = useId();
113
+ const nameId = useId();
114
+ const launcherRef = useRef(null);
115
+ const panelRef = useRef(null);
116
+ const overlay = variant !== "embed";
117
+ const state = assistantStateOf(messages, busy, false, { offline, error: Boolean(error) });
118
+ const nameText = typeof name === "string" ? name : "chat";
119
+ useEffect(() => {
120
+ if (overlay && open) panelRef.current?.querySelector("textarea")?.focus();
121
+ }, [open, overlay]);
122
+ useEffect(() => {
123
+ if (!overlay || !open) return;
124
+ const onKey = (e) => {
125
+ if (e.key !== "Escape") return;
126
+ setOpen(false);
127
+ launcherRef.current?.focus();
128
+ };
129
+ document.addEventListener("keydown", onKey);
130
+ return () => document.removeEventListener("keydown", onKey);
131
+ }, [open, overlay, setOpen]);
132
+ const close = () => {
133
+ setOpen(false);
134
+ launcherRef.current?.focus();
135
+ };
136
+ const actions = /* @__PURE__ */ jsxs2(Fragment, { children: [
137
+ onReset && !offline && /* @__PURE__ */ jsx2(AssistantHeaderButton, { label: "Start a new chat", onClick: onReset, disabled: busy, children: /* @__PURE__ */ jsx2(NewChatGlyph, {}) }),
138
+ overlay && /* @__PURE__ */ jsx2(AssistantHeaderButton, { label: `Close ${nameText}`, onClick: close, children: /* @__PURE__ */ jsx2(CloseGlyph, {}) })
139
+ ] });
140
+ const conversation = /* @__PURE__ */ jsx2(
141
+ AssistantConversation,
142
+ {
143
+ className: "ods-mkt-assistant__conversation",
144
+ name,
145
+ subtitle,
146
+ avatar,
147
+ nameId,
148
+ actions,
149
+ aura,
150
+ greeting,
151
+ suggestions,
152
+ messages,
153
+ replacement: offline ? fallback : void 0,
154
+ ...offline ? { state: "offline" } : {},
155
+ busy,
156
+ onSend,
157
+ onStop,
158
+ onRate,
159
+ onAnswer,
160
+ onSkipAsk,
161
+ placeholder,
162
+ maxLength,
163
+ composerDisabled,
164
+ error,
165
+ notice
166
+ }
167
+ );
168
+ const rootClass = cn(
169
+ "ods-mkt-assistant",
170
+ `ods-mkt-assistant--${variant}`,
171
+ `ods-mkt-assistant--${position}`,
172
+ frame && "ods-mkt-assistant--framed",
173
+ frame && device === "mobile" && "ods-mkt-assistant--phone",
174
+ open && "ods-mkt-assistant--open",
175
+ className
176
+ );
177
+ if (variant === "embed") {
178
+ const started = messages.length > 0 || offline;
179
+ return /* @__PURE__ */ jsx2("div", { ...rest, className: rootClass, children: started ? /* @__PURE__ */ jsx2("section", { "aria-labelledby": nameId, className: "ods-mkt-assistant__embed", children: conversation }) : /* @__PURE__ */ jsxs2(AssistantAura, { state, intensity: aura, className: "ods-mkt-assistant__ask", children: [
180
+ /* @__PURE__ */ jsxs2("div", { className: "ods-mkt-assistant__ask-head", children: [
181
+ /* @__PURE__ */ jsx2(AssistantOrb, { state, size: "lg", children: avatar }),
182
+ /* @__PURE__ */ jsxs2("div", { children: [
183
+ /* @__PURE__ */ jsx2("div", { id: nameId, className: "ods-mkt-assistant__ask-title", children: greeting ?? `Ask ${nameText} anything` }),
184
+ /* @__PURE__ */ jsx2("div", { className: "ods-mkt-assistant__ask-sub", children: subtitle })
185
+ ] })
186
+ ] }),
187
+ /* @__PURE__ */ jsxs2(
188
+ "form",
189
+ {
190
+ className: "ods-mkt-assistant__ask-form",
191
+ onSubmit: (e) => {
192
+ e.preventDefault();
193
+ const field = e.currentTarget.elements.namedItem("q");
194
+ if (field.value.trim()) onSend?.(field.value.trim());
195
+ field.value = "";
196
+ },
197
+ children: [
198
+ /* @__PURE__ */ jsx2(
199
+ "input",
200
+ {
201
+ name: "q",
202
+ className: "ods-mkt-assistant__ask-input",
203
+ placeholder,
204
+ "aria-label": placeholder,
205
+ maxLength,
206
+ autoComplete: "off"
207
+ }
208
+ ),
209
+ /* @__PURE__ */ jsx2("button", { type: "submit", className: "ods-mkt-assistant__ask-send", children: launcherLabel })
210
+ ]
211
+ }
212
+ ),
213
+ (suggestions?.length ?? 0) > 0 && /* @__PURE__ */ jsx2(
214
+ ChatSuggestions,
215
+ {
216
+ items: suggestions ?? [],
217
+ onSelect: (v) => onSend?.(v),
218
+ size: "sm",
219
+ layout: "wrap"
220
+ }
221
+ ),
222
+ notice && /* @__PURE__ */ jsx2("div", { className: "ods-mkt-assistant__ask-notice", children: notice })
223
+ ] }) });
224
+ }
225
+ const panel = open && /* @__PURE__ */ jsx2(
226
+ "div",
227
+ {
228
+ ref: panelRef,
229
+ id: panelId,
230
+ role: "dialog",
231
+ "aria-labelledby": nameId,
232
+ className: "ods-mkt-assistant__panel",
233
+ children: conversation
234
+ }
235
+ );
236
+ const showTeaser = !open && teaser && !teaserHidden && variant !== "bar";
237
+ const barLauncher = !open && /* @__PURE__ */ jsx2(AssistantAura, { state, intensity: aura, className: "ods-mkt-assistant__bar", children: /* @__PURE__ */ jsxs2(
238
+ "button",
239
+ {
240
+ ref: launcherRef,
241
+ type: "button",
242
+ className: "ods-mkt-assistant__bar-button",
243
+ "aria-expanded": false,
244
+ onClick: () => setOpen(true),
245
+ children: [
246
+ /* @__PURE__ */ jsx2(AssistantOrb, { state, size: "sm", children: avatar }),
247
+ /* @__PURE__ */ jsx2("span", { className: "ods-mkt-assistant__bar-text", children: placeholder }),
248
+ /* @__PURE__ */ jsx2("span", { className: "ods-mkt-assistant__bar-cta", children: launcherLabel })
249
+ ]
250
+ }
251
+ ) });
252
+ const cornerLauncher = /* @__PURE__ */ jsx2(
253
+ AssistantAura,
254
+ {
255
+ state,
256
+ intensity: open ? "off" : aura,
257
+ className: "ods-mkt-assistant__launcher-aura",
258
+ children: /* @__PURE__ */ jsxs2(
259
+ "button",
260
+ {
261
+ ref: launcherRef,
262
+ type: "button",
263
+ className: "ods-mkt-assistant__launcher",
264
+ "aria-expanded": open,
265
+ "aria-controls": open ? panelId : void 0,
266
+ onClick: () => setOpen(!open),
267
+ children: [
268
+ open ? /* @__PURE__ */ jsx2("span", { className: "ods-mkt-assistant__launcher-icon", children: /* @__PURE__ */ jsx2(CloseGlyph, {}) }) : /* @__PURE__ */ jsx2(AssistantOrb, { state, size: "sm", children: avatar }),
269
+ /* @__PURE__ */ jsx2("span", { className: "ods-mkt-assistant__launcher-label", children: open ? "Close" : launcherLabel })
270
+ ]
271
+ }
272
+ )
273
+ }
274
+ );
275
+ return /* @__PURE__ */ jsxs2("div", { ...rest, className: rootClass, children: [
276
+ panel,
277
+ showTeaser && /* @__PURE__ */ jsxs2("div", { className: "ods-mkt-assistant__teaser", children: [
278
+ /* @__PURE__ */ jsx2(
279
+ "button",
280
+ {
281
+ type: "button",
282
+ className: "ods-mkt-assistant__teaser-text",
283
+ onClick: () => setOpen(true),
284
+ children: teaser
285
+ }
286
+ ),
287
+ /* @__PURE__ */ jsx2(
288
+ "button",
289
+ {
290
+ type: "button",
291
+ className: "ods-mkt-assistant__teaser-close",
292
+ "aria-label": "Dismiss",
293
+ onClick: () => {
294
+ setTeaserHidden(true);
295
+ onTeaserDismiss?.();
296
+ },
297
+ children: /* @__PURE__ */ jsx2(CloseGlyph, {})
298
+ }
299
+ )
300
+ ] }),
301
+ variant === "bar" ? barLauncher : cornerLauncher
302
+ ] });
303
+ }
304
+
50
305
  // src/marketing/components/BackedBy/BackedBy.tsx
51
- import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
306
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
52
307
  function BackedBy({
53
308
  items,
54
309
  label = "Backed by",
@@ -57,22 +312,22 @@ function BackedBy({
57
312
  className,
58
313
  ...rest
59
314
  }) {
60
- return /* @__PURE__ */ jsxs2(
315
+ return /* @__PURE__ */ jsxs3(
61
316
  "div",
62
317
  {
63
318
  ...rest,
64
319
  className: cn("ods-mkt-backedby", align === "start" && "ods-mkt-backedby--start", className),
65
320
  children: [
66
- label && /* @__PURE__ */ jsx2("p", { className: "ods-mkt-backedby__label", children: label }),
67
- /* @__PURE__ */ jsx2("div", { className: "ods-mkt-backedby__row", children: items.map((item) => /* @__PURE__ */ jsx2("span", { className: "ods-mkt-backedby__mark", title: item.name, children: item.icon ?? /* @__PURE__ */ jsx2("span", { className: "ods-mkt-backedby__wordmark", children: item.name }) }, item.id)) }),
68
- note && /* @__PURE__ */ jsx2("p", { className: "ods-mkt-backedby__note", children: note })
321
+ label && /* @__PURE__ */ jsx3("p", { className: "ods-mkt-backedby__label", children: label }),
322
+ /* @__PURE__ */ jsx3("div", { className: "ods-mkt-backedby__row", children: items.map((item) => /* @__PURE__ */ jsx3("span", { className: "ods-mkt-backedby__mark", title: item.name, children: item.icon ?? /* @__PURE__ */ jsx3("span", { className: "ods-mkt-backedby__wordmark", children: item.name }) }, item.id)) }),
323
+ note && /* @__PURE__ */ jsx3("p", { className: "ods-mkt-backedby__note", children: note })
69
324
  ]
70
325
  }
71
326
  );
72
327
  }
73
328
 
74
329
  // src/marketing/components/BetaAccessForm/BetaAccessForm.tsx
75
- import { useId, useState } from "react";
330
+ import { useId as useId2, useState as useState2 } from "react";
76
331
 
77
332
  // src/marketing/components/WorkflowShowcase/showcaseEngine.ts
78
333
  var SETTLED_PHASES = [
@@ -249,7 +504,7 @@ function isValidEmail(value) {
249
504
  }
250
505
 
251
506
  // src/marketing/components/BetaAccessForm/BetaAccessForm.tsx
252
- import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
507
+ import { Fragment as Fragment2, jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
253
508
  function BetaAccessForm({
254
509
  title = "Request early access",
255
510
  subtitle = "CURRENTLY IN PRIVATE BETA \u2014 WE REVIEW ACCESS REQUESTS WEEKLY",
@@ -271,8 +526,8 @@ function BetaAccessForm({
271
526
  disabled = false,
272
527
  className
273
528
  }) {
274
- const uid = useId();
275
- const [values, setValues] = useState({
529
+ const uid = useId2();
530
+ const [values, setValues] = useState2({
276
531
  email: "",
277
532
  name: "",
278
533
  firstName: "",
@@ -283,8 +538,8 @@ function BetaAccessForm({
283
538
  useCase: "",
284
539
  details: ""
285
540
  });
286
- const [phase, setPhase] = useState("idle");
287
- const [error, setError] = useState(null);
541
+ const [phase, setPhase] = useState2("idle");
542
+ const [error, setError] = useState2(null);
288
543
  const handleSubmit = async (event) => {
289
544
  event.preventDefault();
290
545
  if (phase === "submitting") return;
@@ -320,7 +575,7 @@ function BetaAccessForm({
320
575
  };
321
576
  const inline = appearance === "inline";
322
577
  if (phase === "success") {
323
- return /* @__PURE__ */ jsxs3(
578
+ return /* @__PURE__ */ jsxs4(
324
579
  "div",
325
580
  {
326
581
  className: cn(
@@ -331,28 +586,28 @@ function BetaAccessForm({
331
586
  ),
332
587
  role: "status",
333
588
  children: [
334
- /* @__PURE__ */ jsxs3("p", { className: "ods-mkt-access__success-mark", children: [
589
+ /* @__PURE__ */ jsxs4("p", { className: "ods-mkt-access__success-mark", children: [
335
590
  "\u2713 ",
336
591
  successTitle
337
592
  ] }),
338
- /* @__PURE__ */ jsx3("p", { className: "ods-mkt-access__success-body", children: successBody })
593
+ /* @__PURE__ */ jsx4("p", { className: "ods-mkt-access__success-body", children: successBody })
339
594
  ]
340
595
  }
341
596
  );
342
597
  }
343
598
  const busy = disabled || phase === "submitting";
344
- return /* @__PURE__ */ jsxs3(
599
+ return /* @__PURE__ */ jsxs4(
345
600
  "form",
346
601
  {
347
602
  className: cn("ods-mkt-access", inline && "ods-mkt-access--inline", className),
348
603
  onSubmit: handleSubmit,
349
604
  noValidate: true,
350
605
  children: [
351
- /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__head", children: [
352
- /* @__PURE__ */ jsx3("h3", { className: "ods-mkt-access__title", children: title }),
353
- subtitle && /* @__PURE__ */ jsx3("p", { className: "ods-mkt-access__subtitle", children: subtitle })
606
+ /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__head", children: [
607
+ /* @__PURE__ */ jsx4("h3", { className: "ods-mkt-access__title", children: title }),
608
+ subtitle && /* @__PURE__ */ jsx4("p", { className: "ods-mkt-access__subtitle", children: subtitle })
354
609
  ] }),
355
- /* @__PURE__ */ jsxs3(
610
+ /* @__PURE__ */ jsxs4(
356
611
  "div",
357
612
  {
358
613
  className: cn(
@@ -360,9 +615,9 @@ function BetaAccessForm({
360
615
  fields === "full" && "ods-mkt-access__fields--full"
361
616
  ),
362
617
  children: [
363
- fields === "full" && nameLayout === "single" && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
364
- /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-name`, children: "Full name" }),
365
- /* @__PURE__ */ jsx3(
618
+ fields === "full" && nameLayout === "single" && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
619
+ /* @__PURE__ */ jsx4("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-name`, children: "Full name" }),
620
+ /* @__PURE__ */ jsx4(
366
621
  Input,
367
622
  {
368
623
  id: `${uid}-name`,
@@ -374,10 +629,10 @@ function BetaAccessForm({
374
629
  }
375
630
  )
376
631
  ] }),
377
- fields === "full" && nameLayout === "split" && /* @__PURE__ */ jsxs3(Fragment, { children: [
378
- /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
379
- /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-firstname`, children: "First name" }),
380
- /* @__PURE__ */ jsx3(
632
+ fields === "full" && nameLayout === "split" && /* @__PURE__ */ jsxs4(Fragment2, { children: [
633
+ /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
634
+ /* @__PURE__ */ jsx4("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-firstname`, children: "First name" }),
635
+ /* @__PURE__ */ jsx4(
381
636
  Input,
382
637
  {
383
638
  id: `${uid}-firstname`,
@@ -389,9 +644,9 @@ function BetaAccessForm({
389
644
  }
390
645
  )
391
646
  ] }),
392
- /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
393
- /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-lastname`, children: "Last name" }),
394
- /* @__PURE__ */ jsx3(
647
+ /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
648
+ /* @__PURE__ */ jsx4("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-lastname`, children: "Last name" }),
649
+ /* @__PURE__ */ jsx4(
395
650
  Input,
396
651
  {
397
652
  id: `${uid}-lastname`,
@@ -404,9 +659,9 @@ function BetaAccessForm({
404
659
  )
405
660
  ] })
406
661
  ] }),
407
- /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
408
- /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-email`, children: "Work email" }),
409
- /* @__PURE__ */ jsx3(
662
+ /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
663
+ /* @__PURE__ */ jsx4("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-email`, children: "Work email" }),
664
+ /* @__PURE__ */ jsx4(
410
665
  Input,
411
666
  {
412
667
  id: `${uid}-email`,
@@ -419,9 +674,9 @@ function BetaAccessForm({
419
674
  }
420
675
  )
421
676
  ] }),
422
- fields === "full" && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
423
- /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-company`, children: "Company" }),
424
- /* @__PURE__ */ jsx3(
677
+ fields === "full" && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
678
+ /* @__PURE__ */ jsx4("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-company`, children: "Company" }),
679
+ /* @__PURE__ */ jsx4(
425
680
  Input,
426
681
  {
427
682
  id: `${uid}-company`,
@@ -433,9 +688,9 @@ function BetaAccessForm({
433
688
  }
434
689
  )
435
690
  ] }),
436
- fields === "full" && teamSizes && teamSizes.length > 0 && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
437
- /* @__PURE__ */ jsx3("span", { className: "ods-mkt-access__label", id: `${uid}-teamsize-label`, children: "Team size" }),
438
- /* @__PURE__ */ jsx3(
691
+ fields === "full" && teamSizes && teamSizes.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
692
+ /* @__PURE__ */ jsx4("span", { className: "ods-mkt-access__label", id: `${uid}-teamsize-label`, children: "Team size" }),
693
+ /* @__PURE__ */ jsx4(
439
694
  Select,
440
695
  {
441
696
  "aria-labelledby": `${uid}-teamsize-label`,
@@ -447,9 +702,9 @@ function BetaAccessForm({
447
702
  }
448
703
  )
449
704
  ] }),
450
- fields === "full" && plans && plans.length > 0 && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
451
- /* @__PURE__ */ jsx3("span", { className: "ods-mkt-access__label", id: `${uid}-plan-label`, children: "Plan (optional)" }),
452
- /* @__PURE__ */ jsx3(
705
+ fields === "full" && plans && plans.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
706
+ /* @__PURE__ */ jsx4("span", { className: "ods-mkt-access__label", id: `${uid}-plan-label`, children: "Plan (optional)" }),
707
+ /* @__PURE__ */ jsx4(
453
708
  Select,
454
709
  {
455
710
  "aria-labelledby": `${uid}-plan-label`,
@@ -461,9 +716,9 @@ function BetaAccessForm({
461
716
  }
462
717
  )
463
718
  ] }),
464
- fields === "full" && useCases && useCases.length > 0 && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
465
- /* @__PURE__ */ jsx3("span", { className: "ods-mkt-access__label", id: `${uid}-usecase-label`, children: "Primary use case" }),
466
- /* @__PURE__ */ jsx3(
719
+ fields === "full" && useCases && useCases.length > 0 && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field", children: [
720
+ /* @__PURE__ */ jsx4("span", { className: "ods-mkt-access__label", id: `${uid}-usecase-label`, children: "Primary use case" }),
721
+ /* @__PURE__ */ jsx4(
467
722
  Select,
468
723
  {
469
724
  "aria-labelledby": `${uid}-usecase-label`,
@@ -475,8 +730,8 @@ function BetaAccessForm({
475
730
  }
476
731
  )
477
732
  ] }),
478
- fields === "full" && showDetails && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field ods-mkt-access__field--wide", children: [
479
- /* @__PURE__ */ jsx3(
733
+ fields === "full" && showDetails && /* @__PURE__ */ jsxs4("div", { className: "ods-mkt-access__field ods-mkt-access__field--wide", children: [
734
+ /* @__PURE__ */ jsx4(
480
735
  "label",
481
736
  {
482
737
  className: "ods-mkt-access__label",
@@ -485,7 +740,7 @@ function BetaAccessForm({
485
740
  children: detailsLabel
486
741
  }
487
742
  ),
488
- /* @__PURE__ */ jsx3(
743
+ /* @__PURE__ */ jsx4(
489
744
  Textarea,
490
745
  {
491
746
  id: `${uid}-details`,
@@ -498,7 +753,7 @@ function BetaAccessForm({
498
753
  }
499
754
  )
500
755
  ] }),
501
- /* @__PURE__ */ jsx3(
756
+ /* @__PURE__ */ jsx4(
502
757
  Button,
503
758
  {
504
759
  type: "submit",
@@ -511,15 +766,15 @@ function BetaAccessForm({
511
766
  ]
512
767
  }
513
768
  ),
514
- error && /* @__PURE__ */ jsx3("p", { className: "ods-mkt-access__error", role: "alert", children: error }),
515
- footnote && /* @__PURE__ */ jsx3("p", { className: "ods-mkt-access__footnote", children: footnote })
769
+ error && /* @__PURE__ */ jsx4("p", { className: "ods-mkt-access__error", role: "alert", children: error }),
770
+ footnote && /* @__PURE__ */ jsx4("p", { className: "ods-mkt-access__footnote", children: footnote })
516
771
  ]
517
772
  }
518
773
  );
519
774
  }
520
775
 
521
776
  // src/marketing/components/BlogGrid/BlogGrid.tsx
522
- import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
777
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
523
778
  function BlogGrid({
524
779
  posts,
525
780
  columns = 3,
@@ -528,8 +783,8 @@ function BlogGrid({
528
783
  className,
529
784
  ...rest
530
785
  }) {
531
- return /* @__PURE__ */ jsxs4("div", { ...rest, className: cn("ods-mkt-blog", className), children: [
532
- /* @__PURE__ */ jsx4("div", { className: cn("ods-mkt-blog__grid", `ods-mkt-blog__grid--${columns}`), children: posts.map((post) => /* @__PURE__ */ jsx4(
786
+ return /* @__PURE__ */ jsxs5("div", { ...rest, className: cn("ods-mkt-blog", className), children: [
787
+ /* @__PURE__ */ jsx5("div", { className: cn("ods-mkt-blog__grid", `ods-mkt-blog__grid--${columns}`), children: posts.map((post) => /* @__PURE__ */ jsx5(
533
788
  BlogCard,
534
789
  {
535
790
  title: post.title,
@@ -543,13 +798,13 @@ function BlogGrid({
543
798
  },
544
799
  post.id
545
800
  )) }),
546
- viewAllHref && /* @__PURE__ */ jsx4("div", { className: "ods-mkt-blog__more", children: /* @__PURE__ */ jsx4("a", { className: "ods-mkt-blog__more-link", href: viewAllHref, children: viewAllLabel }) })
801
+ viewAllHref && /* @__PURE__ */ jsx5("div", { className: "ods-mkt-blog__more", children: /* @__PURE__ */ jsx5("a", { className: "ods-mkt-blog__more-link", href: viewAllHref, children: viewAllLabel }) })
547
802
  ] });
548
803
  }
549
804
 
550
805
  // src/marketing/components/ContactForm/ContactForm.tsx
551
- import { useId as useId2, useState as useState2 } from "react";
552
- import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
806
+ import { useId as useId3, useState as useState3 } from "react";
807
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
553
808
  function ContactForm({
554
809
  title = "Talk to us",
555
810
  subtitle = "SALES \xB7 PARTNERSHIPS \xB7 ANYTHING ELSE \u2014 WE READ EVERYTHING",
@@ -562,8 +817,8 @@ function ContactForm({
562
817
  disabled = false,
563
818
  className
564
819
  }) {
565
- const uid = useId2();
566
- const [values, setValues] = useState2({
820
+ const uid = useId3();
821
+ const [values, setValues] = useState3({
567
822
  name: "",
568
823
  email: "",
569
824
  company: "",
@@ -571,8 +826,8 @@ function ContactForm({
571
826
  message: ""
572
827
  });
573
828
  const selectedTopic = topics?.find((t) => t.value === values.topic);
574
- const [phase, setPhase] = useState2("idle");
575
- const [error, setError] = useState2(null);
829
+ const [phase, setPhase] = useState3("idle");
830
+ const [error, setError] = useState3(null);
576
831
  const handleSubmit = async (event) => {
577
832
  event.preventDefault();
578
833
  if (phase === "submitting") return;
@@ -603,24 +858,24 @@ function ContactForm({
603
858
  }
604
859
  };
605
860
  if (phase === "success") {
606
- return /* @__PURE__ */ jsxs5("div", { className: cn("ods-mkt-contact", "ods-mkt-contact--success", className), role: "status", children: [
607
- /* @__PURE__ */ jsxs5("p", { className: "ods-mkt-contact__success-mark", children: [
861
+ return /* @__PURE__ */ jsxs6("div", { className: cn("ods-mkt-contact", "ods-mkt-contact--success", className), role: "status", children: [
862
+ /* @__PURE__ */ jsxs6("p", { className: "ods-mkt-contact__success-mark", children: [
608
863
  "\u2713 ",
609
864
  successTitle
610
865
  ] }),
611
- /* @__PURE__ */ jsx5("p", { className: "ods-mkt-contact__success-body", children: successBody })
866
+ /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__success-body", children: successBody })
612
867
  ] });
613
868
  }
614
869
  const busy = disabled || phase === "submitting";
615
- return /* @__PURE__ */ jsxs5("form", { className: cn("ods-mkt-contact", className), onSubmit: handleSubmit, noValidate: true, children: [
616
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__head", children: [
617
- /* @__PURE__ */ jsx5("h3", { className: "ods-mkt-contact__title", children: title }),
618
- subtitle && /* @__PURE__ */ jsx5("p", { className: "ods-mkt-contact__subtitle", children: subtitle })
870
+ return /* @__PURE__ */ jsxs6("form", { className: cn("ods-mkt-contact", className), onSubmit: handleSubmit, noValidate: true, children: [
871
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__head", children: [
872
+ /* @__PURE__ */ jsx6("h3", { className: "ods-mkt-contact__title", children: title }),
873
+ subtitle && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__subtitle", children: subtitle })
619
874
  ] }),
620
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__grid", children: [
621
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__field", children: [
622
- /* @__PURE__ */ jsx5("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-name`, children: "Full name" }),
623
- /* @__PURE__ */ jsx5(
875
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__grid", children: [
876
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__field", children: [
877
+ /* @__PURE__ */ jsx6("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-name`, children: "Full name" }),
878
+ /* @__PURE__ */ jsx6(
624
879
  Input,
625
880
  {
626
881
  id: `${uid}-name`,
@@ -632,9 +887,9 @@ function ContactForm({
632
887
  }
633
888
  )
634
889
  ] }),
635
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__field", children: [
636
- /* @__PURE__ */ jsx5("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-email`, children: "Work email" }),
637
- /* @__PURE__ */ jsx5(
890
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__field", children: [
891
+ /* @__PURE__ */ jsx6("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-email`, children: "Work email" }),
892
+ /* @__PURE__ */ jsx6(
638
893
  Input,
639
894
  {
640
895
  id: `${uid}-email`,
@@ -647,12 +902,12 @@ function ContactForm({
647
902
  }
648
903
  )
649
904
  ] }),
650
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
651
- /* @__PURE__ */ jsxs5("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-company`, children: [
905
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
906
+ /* @__PURE__ */ jsxs6("label", { className: "ods-mkt-contact__label", htmlFor: `${uid}-company`, children: [
652
907
  "Company ",
653
- /* @__PURE__ */ jsx5("span", { className: "ods-mkt-contact__optional", children: "(optional)" })
908
+ /* @__PURE__ */ jsx6("span", { className: "ods-mkt-contact__optional", children: "(optional)" })
654
909
  ] }),
655
- /* @__PURE__ */ jsx5(
910
+ /* @__PURE__ */ jsx6(
656
911
  Input,
657
912
  {
658
913
  id: `${uid}-company`,
@@ -664,9 +919,9 @@ function ContactForm({
664
919
  }
665
920
  )
666
921
  ] }),
667
- topics && topics.length > 0 && /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
668
- /* @__PURE__ */ jsx5("span", { className: "ods-mkt-contact__label", id: `${uid}-topic-label`, children: "Topic" }),
669
- /* @__PURE__ */ jsx5(
922
+ topics && topics.length > 0 && /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
923
+ /* @__PURE__ */ jsx6("span", { className: "ods-mkt-contact__label", id: `${uid}-topic-label`, children: "Topic" }),
924
+ /* @__PURE__ */ jsx6(
670
925
  Select,
671
926
  {
672
927
  "aria-labelledby": `${uid}-topic-label`,
@@ -677,10 +932,10 @@ function ContactForm({
677
932
  disabled: busy
678
933
  }
679
934
  ),
680
- selectedTopic?.hint && /* @__PURE__ */ jsx5("p", { className: "ods-mkt-contact__topic-hint", children: selectedTopic.hint })
935
+ selectedTopic?.hint && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__topic-hint", children: selectedTopic.hint })
681
936
  ] }),
682
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
683
- /* @__PURE__ */ jsx5(
937
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__field ods-mkt-contact__field--wide", children: [
938
+ /* @__PURE__ */ jsx6(
684
939
  "label",
685
940
  {
686
941
  className: "ods-mkt-contact__label",
@@ -689,7 +944,7 @@ function ContactForm({
689
944
  children: "Message"
690
945
  }
691
946
  ),
692
- /* @__PURE__ */ jsx5(
947
+ /* @__PURE__ */ jsx6(
693
948
  Textarea,
694
949
  {
695
950
  id: `${uid}-message`,
@@ -703,10 +958,10 @@ function ContactForm({
703
958
  )
704
959
  ] })
705
960
  ] }),
706
- error && /* @__PURE__ */ jsx5("p", { className: "ods-mkt-contact__error", role: "alert", children: error }),
707
- /* @__PURE__ */ jsxs5("div", { className: "ods-mkt-contact__foot", children: [
708
- footnote && /* @__PURE__ */ jsx5("p", { className: "ods-mkt-contact__footnote", children: footnote }),
709
- /* @__PURE__ */ jsx5(
961
+ error && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__error", role: "alert", children: error }),
962
+ /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-contact__foot", children: [
963
+ footnote && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__footnote", children: footnote }),
964
+ /* @__PURE__ */ jsx6(
710
965
  Button,
711
966
  {
712
967
  type: "submit",
@@ -721,13 +976,13 @@ function ContactForm({
721
976
  }
722
977
 
723
978
  // src/marketing/components/CtaBanner/CtaBanner.tsx
724
- import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
979
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
725
980
  function Action({
726
981
  action,
727
982
  variant
728
983
  }) {
729
984
  if (action.href) {
730
- return /* @__PURE__ */ jsx6(
985
+ return /* @__PURE__ */ jsx7(
731
986
  "a",
732
987
  {
733
988
  className: cn("ods-mkt-cta__link", `ods-mkt-cta__link--${variant}`),
@@ -737,7 +992,7 @@ function Action({
737
992
  }
738
993
  );
739
994
  }
740
- return /* @__PURE__ */ jsx6(Button, { variant, onClick: action.onClick, children: action.label });
995
+ return /* @__PURE__ */ jsx7(Button, { variant, onClick: action.onClick, children: action.label });
741
996
  }
742
997
  function CtaBanner({
743
998
  title,
@@ -748,19 +1003,19 @@ function CtaBanner({
748
1003
  className,
749
1004
  ...rest
750
1005
  }) {
751
- return /* @__PURE__ */ jsxs6("section", { ...rest, className: cn("ods-mkt-cta", className), children: [
752
- /* @__PURE__ */ jsx6("h2", { className: "ods-mkt-cta__title", children: title }),
753
- lede && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-cta__lede", children: lede }),
754
- /* @__PURE__ */ jsxs6("div", { className: "ods-mkt-cta__actions", children: [
755
- /* @__PURE__ */ jsx6(Action, { action: primary, variant: "primary" }),
756
- secondary && /* @__PURE__ */ jsx6(Action, { action: secondary, variant: "secondary" })
1006
+ return /* @__PURE__ */ jsxs7("section", { ...rest, className: cn("ods-mkt-cta", className), children: [
1007
+ /* @__PURE__ */ jsx7("h2", { className: "ods-mkt-cta__title", children: title }),
1008
+ lede && /* @__PURE__ */ jsx7("p", { className: "ods-mkt-cta__lede", children: lede }),
1009
+ /* @__PURE__ */ jsxs7("div", { className: "ods-mkt-cta__actions", children: [
1010
+ /* @__PURE__ */ jsx7(Action, { action: primary, variant: "primary" }),
1011
+ secondary && /* @__PURE__ */ jsx7(Action, { action: secondary, variant: "secondary" })
757
1012
  ] }),
758
- footnote && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-cta__footnote", children: footnote })
1013
+ footnote && /* @__PURE__ */ jsx7("p", { className: "ods-mkt-cta__footnote", children: footnote })
759
1014
  ] });
760
1015
  }
761
1016
 
762
1017
  // src/marketing/components/FaqSection/FaqSection.tsx
763
- import { jsx as jsx7 } from "react/jsx-runtime";
1018
+ import { jsx as jsx8 } from "react/jsx-runtime";
764
1019
  function FaqSection({
765
1020
  items,
766
1021
  columns = 1,
@@ -770,7 +1025,7 @@ function FaqSection({
770
1025
  }) {
771
1026
  const half = Math.ceil(items.length / 2);
772
1027
  const columnItems = columns === 2 ? [items.slice(0, half), items.slice(half)] : [items];
773
- return /* @__PURE__ */ jsx7("div", { ...rest, className: cn("ods-mkt-faq", columns === 2 && "ods-mkt-faq--2", className), children: columnItems.map((column, i) => /* @__PURE__ */ jsx7(
1028
+ return /* @__PURE__ */ jsx8("div", { ...rest, className: cn("ods-mkt-faq", columns === 2 && "ods-mkt-faq--2", className), children: columnItems.map((column, i) => /* @__PURE__ */ jsx8(
774
1029
  Accordion,
775
1030
  {
776
1031
  mode: "multiple",
@@ -778,7 +1033,7 @@ function FaqSection({
778
1033
  items: column.map((item) => ({
779
1034
  id: item.id,
780
1035
  label: item.question,
781
- content: /* @__PURE__ */ jsx7("div", { className: "ods-mkt-faq__answer", children: item.answer })
1036
+ content: /* @__PURE__ */ jsx8("div", { className: "ods-mkt-faq__answer", children: item.answer })
782
1037
  }))
783
1038
  },
784
1039
  i
@@ -786,7 +1041,7 @@ function FaqSection({
786
1041
  }
787
1042
 
788
1043
  // src/marketing/components/FeatureGrid/FeatureGrid.tsx
789
- import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
1044
+ import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
790
1045
  function FeatureGrid({
791
1046
  items,
792
1047
  columns = 3,
@@ -794,7 +1049,7 @@ function FeatureGrid({
794
1049
  className,
795
1050
  ...rest
796
1051
  }) {
797
- return /* @__PURE__ */ jsx8(
1052
+ return /* @__PURE__ */ jsx9(
798
1053
  "div",
799
1054
  {
800
1055
  ...rest,
@@ -804,10 +1059,10 @@ function FeatureGrid({
804
1059
  dense && "ods-mkt-features--dense",
805
1060
  className
806
1061
  ),
807
- children: items.map((item) => /* @__PURE__ */ jsxs7("article", { className: "ods-mkt-features__cell", children: [
808
- item.icon && /* @__PURE__ */ jsx8("span", { className: "ods-mkt-features__icon", "aria-hidden": "true", children: item.icon }),
809
- /* @__PURE__ */ jsx8("h3", { className: "ods-mkt-features__title", children: item.title }),
810
- /* @__PURE__ */ jsx8("p", { className: "ods-mkt-features__body", children: item.body })
1062
+ children: items.map((item) => /* @__PURE__ */ jsxs8("article", { className: "ods-mkt-features__cell", children: [
1063
+ item.icon && /* @__PURE__ */ jsx9("span", { className: "ods-mkt-features__icon", "aria-hidden": "true", children: item.icon }),
1064
+ /* @__PURE__ */ jsx9("h3", { className: "ods-mkt-features__title", children: item.title }),
1065
+ /* @__PURE__ */ jsx9("p", { className: "ods-mkt-features__body", children: item.body })
811
1066
  ] }, item.id))
812
1067
  }
813
1068
  );
@@ -815,10 +1070,10 @@ function FeatureGrid({
815
1070
 
816
1071
  // src/marketing/components/IntegrationsFinder/IntegrationsFinder.tsx
817
1072
  import { CheckmarkIcon, SearchIcon } from "@octaviaflow/icons";
818
- import { useMemo, useState as useState3 } from "react";
819
- import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
1073
+ import { useMemo, useState as useState4 } from "react";
1074
+ import { Fragment as Fragment3, jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
820
1075
  function LetterTile({ name }) {
821
- return /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__letter", "aria-hidden": "true", children: name.trim().charAt(0).toUpperCase() });
1076
+ return /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__letter", "aria-hidden": "true", children: name.trim().charAt(0).toUpperCase() });
822
1077
  }
823
1078
  function IntegrationsFinder({
824
1079
  items,
@@ -829,11 +1084,11 @@ function IntegrationsFinder({
829
1084
  requestErrorHint = "Couldn't send right now \u2014 please try again in a moment.",
830
1085
  className
831
1086
  }) {
832
- const [query, setQuery] = useState3("");
833
- const [activeCategory, setActiveCategory] = useState3(null);
834
- const [email, setEmail] = useState3("");
835
- const [requestState, setRequestState] = useState3("idle");
836
- const [emailError, setEmailError] = useState3(false);
1087
+ const [query, setQuery] = useState4("");
1088
+ const [activeCategory, setActiveCategory] = useState4(null);
1089
+ const [email, setEmail] = useState4("");
1090
+ const [requestState, setRequestState] = useState4("idle");
1091
+ const [emailError, setEmailError] = useState4(false);
837
1092
  const pillCategories = useMemo(() => {
838
1093
  if (categories?.length) return categories;
839
1094
  const seen = [];
@@ -879,14 +1134,14 @@ function IntegrationsFinder({
879
1134
  setRequestState("error");
880
1135
  }
881
1136
  };
882
- return /* @__PURE__ */ jsxs8("div", { className: cn("ods-mkt-finder", className), children: [
883
- /* @__PURE__ */ jsx9("div", { className: "ods-mkt-finder__search", children: /* @__PURE__ */ jsx9(
1137
+ return /* @__PURE__ */ jsxs9("div", { className: cn("ods-mkt-finder", className), children: [
1138
+ /* @__PURE__ */ jsx10("div", { className: "ods-mkt-finder__search", children: /* @__PURE__ */ jsx10(
884
1139
  Input,
885
1140
  {
886
1141
  type: "search",
887
1142
  "aria-label": "Search connectors",
888
1143
  placeholder: searchPlaceholder,
889
- leftIcon: /* @__PURE__ */ jsx9(SearchIcon, { size: "sm" }),
1144
+ leftIcon: /* @__PURE__ */ jsx10(SearchIcon, { size: "sm" }),
890
1145
  value: query,
891
1146
  onChange: (e) => {
892
1147
  setQuery(e.target.value);
@@ -894,8 +1149,8 @@ function IntegrationsFinder({
894
1149
  }
895
1150
  }
896
1151
  ) }),
897
- /* @__PURE__ */ jsxs8("fieldset", { className: "ods-mkt-finder__pills", "aria-label": "Connector categories", children: [
898
- /* @__PURE__ */ jsxs8(
1152
+ /* @__PURE__ */ jsxs9("fieldset", { className: "ods-mkt-finder__pills", "aria-label": "Connector categories", children: [
1153
+ /* @__PURE__ */ jsxs9(
899
1154
  "button",
900
1155
  {
901
1156
  type: "button",
@@ -906,11 +1161,11 @@ function IntegrationsFinder({
906
1161
  onClick: () => setActiveCategory(null),
907
1162
  children: [
908
1163
  "All ",
909
- /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__count", children: items.length })
1164
+ /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__count", children: items.length })
910
1165
  ]
911
1166
  }
912
1167
  ),
913
- pillCategories.map((category) => /* @__PURE__ */ jsxs8(
1168
+ pillCategories.map((category) => /* @__PURE__ */ jsxs9(
914
1169
  "button",
915
1170
  {
916
1171
  type: "button",
@@ -922,34 +1177,34 @@ function IntegrationsFinder({
922
1177
  children: [
923
1178
  category,
924
1179
  " ",
925
- /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__count", children: counts.get(category) ?? 0 })
1180
+ /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__count", children: counts.get(category) ?? 0 })
926
1181
  ]
927
1182
  },
928
1183
  category
929
1184
  ))
930
1185
  ] }),
931
- results.length > 0 ? /* @__PURE__ */ jsx9("div", { className: "ods-mkt-finder__grid", children: results.map((item) => /* @__PURE__ */ jsxs8("div", { className: "ods-mkt-finder__card", children: [
932
- /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__card-icon", "aria-hidden": "true", children: item.icon ?? /* @__PURE__ */ jsx9(LetterTile, { name: item.name }) }),
933
- /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__card-name", children: item.name }),
934
- (item.kind ?? "native") === "universal" && /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__badge", children: universalBadgeLabel })
935
- ] }, item.name)) }) : /* @__PURE__ */ jsx9("div", { className: "ods-mkt-finder__miss", children: requestState === "sent" ? /* @__PURE__ */ jsxs8("p", { className: "ods-mkt-finder__sent", role: "status", children: [
936
- /* @__PURE__ */ jsx9(CheckmarkIcon, { size: "sm", "aria-hidden": "true" }),
1186
+ results.length > 0 ? /* @__PURE__ */ jsx10("div", { className: "ods-mkt-finder__grid", children: results.map((item) => /* @__PURE__ */ jsxs9("div", { className: "ods-mkt-finder__card", children: [
1187
+ /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__card-icon", "aria-hidden": "true", children: item.icon ?? /* @__PURE__ */ jsx10(LetterTile, { name: item.name }) }),
1188
+ /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__card-name", children: item.name }),
1189
+ (item.kind ?? "native") === "universal" && /* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__badge", children: universalBadgeLabel })
1190
+ ] }, item.name)) }) : /* @__PURE__ */ jsx10("div", { className: "ods-mkt-finder__miss", children: requestState === "sent" ? /* @__PURE__ */ jsxs9("p", { className: "ods-mkt-finder__sent", role: "status", children: [
1191
+ /* @__PURE__ */ jsx10(CheckmarkIcon, { size: "sm", "aria-hidden": "true" }),
937
1192
  " Got it \u2014 we'll let you know when a",
938
1193
  " ",
939
- /* @__PURE__ */ jsx9("strong", { children: query.trim() }),
1194
+ /* @__PURE__ */ jsx10("strong", { children: query.trim() }),
940
1195
  " connector is available."
941
- ] }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
942
- /* @__PURE__ */ jsxs8("h3", { className: "ods-mkt-finder__miss-title", children: [
1196
+ ] }) : /* @__PURE__ */ jsxs9(Fragment3, { children: [
1197
+ /* @__PURE__ */ jsxs9("h3", { className: "ods-mkt-finder__miss-title", children: [
943
1198
  "No native ",
944
- /* @__PURE__ */ jsx9("strong", { children: query.trim() }),
1199
+ /* @__PURE__ */ jsx10("strong", { children: query.trim() }),
945
1200
  " connector yet"
946
1201
  ] }),
947
- /* @__PURE__ */ jsxs8("p", { className: "ods-mkt-finder__miss-body", children: [
1202
+ /* @__PURE__ */ jsxs9("p", { className: "ods-mkt-finder__miss-body", children: [
948
1203
  "Our universal open connectors likely cover it today \u2014 and we build native connectors on request. ",
949
1204
  onRequestConnector && "Leave your email and we'll notify you."
950
1205
  ] }),
951
- onRequestConnector && /* @__PURE__ */ jsxs8("form", { className: "ods-mkt-finder__miss-form", onSubmit: handleRequest, noValidate: true, children: [
952
- /* @__PURE__ */ jsx9(
1206
+ onRequestConnector && /* @__PURE__ */ jsxs9("form", { className: "ods-mkt-finder__miss-form", onSubmit: handleRequest, noValidate: true, children: [
1207
+ /* @__PURE__ */ jsx10(
953
1208
  Input,
954
1209
  {
955
1210
  type: "email",
@@ -964,15 +1219,15 @@ function IntegrationsFinder({
964
1219
  }
965
1220
  }
966
1221
  ),
967
- /* @__PURE__ */ jsx9(Button, { type: "submit", variant: "primary", loading: requestState === "sending", children: "Request connector" })
1222
+ /* @__PURE__ */ jsx10(Button, { type: "submit", variant: "primary", loading: requestState === "sending", children: "Request connector" })
968
1223
  ] }),
969
- requestState === "error" && /* @__PURE__ */ jsx9("p", { className: "ods-mkt-finder__miss-error", role: "alert", children: requestErrorHint })
1224
+ requestState === "error" && /* @__PURE__ */ jsx10("p", { className: "ods-mkt-finder__miss-error", role: "alert", children: requestErrorHint })
970
1225
  ] }) })
971
1226
  ] });
972
1227
  }
973
1228
 
974
1229
  // src/marketing/components/IntegrationsWall/IntegrationsWall.tsx
975
- import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
1230
+ import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
976
1231
  function IntegrationsWall({
977
1232
  categories,
978
1233
  footnote,
@@ -980,26 +1235,26 @@ function IntegrationsWall({
980
1235
  className,
981
1236
  ...rest
982
1237
  }) {
983
- return /* @__PURE__ */ jsxs9("div", { ...rest, className: cn("ods-mkt-wall", className), children: [
984
- /* @__PURE__ */ jsx10("div", { className: cn("ods-mkt-wall__grid", `ods-mkt-wall__grid--${columns}`), children: categories.map((category) => /* @__PURE__ */ jsxs9("div", { className: "ods-mkt-wall__card", children: [
985
- /* @__PURE__ */ jsxs9("div", { className: "ods-mkt-wall__card-head", children: [
986
- category.icon && /* @__PURE__ */ jsx10("span", { className: "ods-mkt-wall__card-icon", "aria-hidden": "true", children: category.icon }),
987
- /* @__PURE__ */ jsx10("h3", { className: "ods-mkt-wall__card-label", children: category.label })
1238
+ return /* @__PURE__ */ jsxs10("div", { ...rest, className: cn("ods-mkt-wall", className), children: [
1239
+ /* @__PURE__ */ jsx11("div", { className: cn("ods-mkt-wall__grid", `ods-mkt-wall__grid--${columns}`), children: categories.map((category) => /* @__PURE__ */ jsxs10("div", { className: "ods-mkt-wall__card", children: [
1240
+ /* @__PURE__ */ jsxs10("div", { className: "ods-mkt-wall__card-head", children: [
1241
+ category.icon && /* @__PURE__ */ jsx11("span", { className: "ods-mkt-wall__card-icon", "aria-hidden": "true", children: category.icon }),
1242
+ /* @__PURE__ */ jsx11("h3", { className: "ods-mkt-wall__card-label", children: category.label })
988
1243
  ] }),
989
- /* @__PURE__ */ jsx10("div", { className: "ods-mkt-wall__pills", children: category.items.map((item) => /* @__PURE__ */ jsxs9("span", { className: "ods-mkt-wall__pill", children: [
990
- item.icon && /* @__PURE__ */ jsx10("span", { className: "ods-mkt-wall__pill-icon", "aria-hidden": "true", children: item.icon }),
1244
+ /* @__PURE__ */ jsx11("div", { className: "ods-mkt-wall__pills", children: category.items.map((item) => /* @__PURE__ */ jsxs10("span", { className: "ods-mkt-wall__pill", children: [
1245
+ item.icon && /* @__PURE__ */ jsx11("span", { className: "ods-mkt-wall__pill-icon", "aria-hidden": "true", children: item.icon }),
991
1246
  item.name
992
1247
  ] }, item.name)) })
993
1248
  ] }, category.id)) }),
994
- footnote && /* @__PURE__ */ jsx10("p", { className: "ods-mkt-wall__footnote", children: footnote })
1249
+ footnote && /* @__PURE__ */ jsx11("p", { className: "ods-mkt-wall__footnote", children: footnote })
995
1250
  ] });
996
1251
  }
997
1252
 
998
1253
  // src/marketing/components/LiveConsole/LiveConsole.tsx
999
1254
  import { CheckmarkIcon as CheckmarkIcon2, CloseIcon } from "@octaviaflow/icons";
1000
- import { jsx as jsx11, jsxs as jsxs10 } from "react/jsx-runtime";
1255
+ import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
1001
1256
  function PendingGlyph() {
1002
- return /* @__PURE__ */ jsx11(
1257
+ return /* @__PURE__ */ jsx12(
1003
1258
  "svg",
1004
1259
  {
1005
1260
  viewBox: "0 0 24 24",
@@ -1011,20 +1266,20 @@ function PendingGlyph() {
1011
1266
  strokeLinecap: "round",
1012
1267
  strokeDasharray: "3.5 3.5",
1013
1268
  "aria-hidden": "true",
1014
- children: /* @__PURE__ */ jsx11("circle", { cx: "12", cy: "12", r: "9" })
1269
+ children: /* @__PURE__ */ jsx12("circle", { cx: "12", cy: "12", r: "9" })
1015
1270
  }
1016
1271
  );
1017
1272
  }
1018
1273
  function StateGlyph({ state }) {
1019
1274
  switch (state) {
1020
1275
  case "done":
1021
- return /* @__PURE__ */ jsx11(CheckmarkIcon2, { size: "sm", "aria-hidden": "true" });
1276
+ return /* @__PURE__ */ jsx12(CheckmarkIcon2, { size: "sm", "aria-hidden": "true" });
1022
1277
  case "running":
1023
- return /* @__PURE__ */ jsx11(Spinner, { size: "sm" });
1278
+ return /* @__PURE__ */ jsx12(Spinner, { size: "sm" });
1024
1279
  case "error":
1025
- return /* @__PURE__ */ jsx11(CloseIcon, { size: "sm", "aria-hidden": "true" });
1280
+ return /* @__PURE__ */ jsx12(CloseIcon, { size: "sm", "aria-hidden": "true" });
1026
1281
  case "queued":
1027
- return /* @__PURE__ */ jsx11(PendingGlyph, {});
1282
+ return /* @__PURE__ */ jsx12(PendingGlyph, {});
1028
1283
  }
1029
1284
  }
1030
1285
  function LiveConsole({
@@ -1035,33 +1290,33 @@ function LiveConsole({
1035
1290
  className,
1036
1291
  ...rest
1037
1292
  }) {
1038
- return /* @__PURE__ */ jsxs10("div", { ...rest, className: cn("ods-mkt-console", className), children: [
1039
- /* @__PURE__ */ jsxs10("div", { className: "ods-mkt-console__head", children: [
1040
- /* @__PURE__ */ jsx11("span", { className: "ods-mkt-console__title", children: title }),
1041
- badge != null && /* @__PURE__ */ jsxs10("span", { className: "ods-mkt-console__badge", children: [
1042
- /* @__PURE__ */ jsx11("span", { className: "ods-mkt-console__dot" }),
1293
+ return /* @__PURE__ */ jsxs11("div", { ...rest, className: cn("ods-mkt-console", className), children: [
1294
+ /* @__PURE__ */ jsxs11("div", { className: "ods-mkt-console__head", children: [
1295
+ /* @__PURE__ */ jsx12("span", { className: "ods-mkt-console__title", children: title }),
1296
+ badge != null && /* @__PURE__ */ jsxs11("span", { className: "ods-mkt-console__badge", children: [
1297
+ /* @__PURE__ */ jsx12("span", { className: "ods-mkt-console__dot" }),
1043
1298
  badge
1044
1299
  ] })
1045
1300
  ] }),
1046
- /* @__PURE__ */ jsx11("div", { className: "ods-mkt-console__body", children: lines.map((line, i) => {
1301
+ /* @__PURE__ */ jsx12("div", { className: "ods-mkt-console__body", children: lines.map((line, i) => {
1047
1302
  const state = line.state ?? "done";
1048
- return /* @__PURE__ */ jsxs10(
1303
+ return /* @__PURE__ */ jsxs11(
1049
1304
  "div",
1050
1305
  {
1051
1306
  className: cn("ods-mkt-console__line", animated && "ods-mkt-console__line--animated"),
1052
1307
  style: animated ? { animationDelay: `${0.3 + i * 0.6}s` } : void 0,
1053
1308
  children: [
1054
- /* @__PURE__ */ jsx11(
1309
+ /* @__PURE__ */ jsx12(
1055
1310
  "span",
1056
1311
  {
1057
1312
  className: cn("ods-mkt-console__glyph", `ods-mkt-console__glyph--${state}`),
1058
1313
  "aria-hidden": "true",
1059
- children: /* @__PURE__ */ jsx11(StateGlyph, { state })
1314
+ children: /* @__PURE__ */ jsx12(StateGlyph, { state })
1060
1315
  }
1061
1316
  ),
1062
- /* @__PURE__ */ jsxs10("span", { className: "ods-mkt-console__text", children: [
1063
- /* @__PURE__ */ jsx11("span", { className: "ods-mkt-console__label", children: line.label }),
1064
- line.detail && /* @__PURE__ */ jsxs10(
1317
+ /* @__PURE__ */ jsxs11("span", { className: "ods-mkt-console__text", children: [
1318
+ /* @__PURE__ */ jsx12("span", { className: "ods-mkt-console__label", children: line.label }),
1319
+ line.detail && /* @__PURE__ */ jsxs11(
1065
1320
  "span",
1066
1321
  {
1067
1322
  className: cn(
@@ -1085,9 +1340,9 @@ function LiveConsole({
1085
1340
  }
1086
1341
 
1087
1342
  // src/marketing/components/LogoMarquee/LogoMarquee.tsx
1088
- import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
1343
+ import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1089
1344
  function Track({ items, hidden }) {
1090
- return /* @__PURE__ */ jsx12("div", { className: "ods-mkt-marquee__track", "aria-hidden": hidden || void 0, children: items.map((item) => /* @__PURE__ */ jsx12("span", { className: "ods-mkt-marquee__logo", title: item.label, children: item.icon ?? /* @__PURE__ */ jsx12("span", { className: "ods-mkt-marquee__wordmark", children: item.label }) }, item.id)) });
1345
+ return /* @__PURE__ */ jsx13("div", { className: "ods-mkt-marquee__track", "aria-hidden": hidden || void 0, children: items.map((item) => /* @__PURE__ */ jsx13("span", { className: "ods-mkt-marquee__logo", title: item.label, children: item.icon ?? /* @__PURE__ */ jsx13("span", { className: "ods-mkt-marquee__wordmark", children: item.label }) }, item.id)) });
1091
1346
  }
1092
1347
  function LogoMarquee({
1093
1348
  items,
@@ -1097,16 +1352,16 @@ function LogoMarquee({
1097
1352
  className,
1098
1353
  ...rest
1099
1354
  }) {
1100
- return /* @__PURE__ */ jsxs11(
1355
+ return /* @__PURE__ */ jsxs12(
1101
1356
  "div",
1102
1357
  {
1103
1358
  ...rest,
1104
1359
  className: cn("ods-mkt-marquee", grayscale && "ods-mkt-marquee--gray", className),
1105
1360
  children: [
1106
- label && /* @__PURE__ */ jsx12("p", { className: "ods-mkt-marquee__label", children: label }),
1107
- /* @__PURE__ */ jsx12("div", { className: "ods-mkt-marquee__viewport", children: /* @__PURE__ */ jsxs11("div", { className: "ods-mkt-marquee__rail", style: { animationDuration: `${speed}s` }, children: [
1108
- /* @__PURE__ */ jsx12(Track, { items }),
1109
- /* @__PURE__ */ jsx12(Track, { items, hidden: true })
1361
+ label && /* @__PURE__ */ jsx13("p", { className: "ods-mkt-marquee__label", children: label }),
1362
+ /* @__PURE__ */ jsx13("div", { className: "ods-mkt-marquee__viewport", children: /* @__PURE__ */ jsxs12("div", { className: "ods-mkt-marquee__rail", style: { animationDuration: `${speed}s` }, children: [
1363
+ /* @__PURE__ */ jsx13(Track, { items }),
1364
+ /* @__PURE__ */ jsx13(Track, { items, hidden: true })
1110
1365
  ] }) })
1111
1366
  ]
1112
1367
  }
@@ -1114,7 +1369,7 @@ function LogoMarquee({
1114
1369
  }
1115
1370
 
1116
1371
  // src/marketing/glyphs.tsx
1117
- import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
1372
+ import { jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1118
1373
  var base = {
1119
1374
  xmlns: "http://www.w3.org/2000/svg",
1120
1375
  viewBox: "0 0 24 24",
@@ -1125,53 +1380,53 @@ var base = {
1125
1380
  strokeLinejoin: "round"
1126
1381
  };
1127
1382
  function SourceGlyph({ size = 12 }) {
1128
- return /* @__PURE__ */ jsxs12("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1129
- /* @__PURE__ */ jsx13("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
1130
- /* @__PURE__ */ jsx13("path", { d: "M3 5v14a9 3 0 0 0 18 0V5" }),
1131
- /* @__PURE__ */ jsx13("path", { d: "M3 12a9 3 0 0 0 18 0" })
1383
+ return /* @__PURE__ */ jsxs13("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1384
+ /* @__PURE__ */ jsx14("ellipse", { cx: "12", cy: "5", rx: "9", ry: "3" }),
1385
+ /* @__PURE__ */ jsx14("path", { d: "M3 5v14a9 3 0 0 0 18 0V5" }),
1386
+ /* @__PURE__ */ jsx14("path", { d: "M3 12a9 3 0 0 0 18 0" })
1132
1387
  ] });
1133
1388
  }
1134
1389
  function DestinationGlyph({ size = 12 }) {
1135
- return /* @__PURE__ */ jsxs12("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1136
- /* @__PURE__ */ jsx13("rect", { x: "2", y: "3", width: "20", height: "5", rx: "1" }),
1137
- /* @__PURE__ */ jsx13("path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" }),
1138
- /* @__PURE__ */ jsx13("path", { d: "M10 12h4" })
1390
+ return /* @__PURE__ */ jsxs13("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1391
+ /* @__PURE__ */ jsx14("rect", { x: "2", y: "3", width: "20", height: "5", rx: "1" }),
1392
+ /* @__PURE__ */ jsx14("path", { d: "M4 8v11a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8" }),
1393
+ /* @__PURE__ */ jsx14("path", { d: "M10 12h4" })
1139
1394
  ] });
1140
1395
  }
1141
1396
  function ActionGlyph({ size = 12 }) {
1142
- return /* @__PURE__ */ jsx13("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ jsx13("path", { d: "M13 2 3 14h9l-1 8 10-12h-9l1-8z" }) });
1397
+ return /* @__PURE__ */ jsx14("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ jsx14("path", { d: "M13 2 3 14h9l-1 8 10-12h-9l1-8z" }) });
1143
1398
  }
1144
1399
  function NotifyGlyph({ size = 12 }) {
1145
- return /* @__PURE__ */ jsx13("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ jsx13("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) });
1400
+ return /* @__PURE__ */ jsx14("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: /* @__PURE__ */ jsx14("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }) });
1146
1401
  }
1147
1402
  function ConnectorGlyph({ size = 12 }) {
1148
- return /* @__PURE__ */ jsxs12("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1149
- /* @__PURE__ */ jsx13("path", { d: "M12 22v-5" }),
1150
- /* @__PURE__ */ jsx13("path", { d: "M9 8V2M15 8V2" }),
1151
- /* @__PURE__ */ jsx13("path", { d: "M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8h12z" })
1403
+ return /* @__PURE__ */ jsxs13("svg", { ...base, width: size, height: size, "aria-hidden": "true", children: [
1404
+ /* @__PURE__ */ jsx14("path", { d: "M12 22v-5" }),
1405
+ /* @__PURE__ */ jsx14("path", { d: "M9 8V2M15 8V2" }),
1406
+ /* @__PURE__ */ jsx14("path", { d: "M18 8v5a4 4 0 0 1-4 4h-4a4 4 0 0 1-4-4V8h12z" })
1152
1407
  ] });
1153
1408
  }
1154
1409
  function BrandMark({ size = 18 }) {
1155
- return /* @__PURE__ */ jsxs12("svg", { viewBox: "0 0 18 18", width: size, height: size, "aria-hidden": "true", children: [
1156
- /* @__PURE__ */ jsx13("rect", { width: "18", height: "18", fill: "var(--ods-accent)" }),
1157
- /* @__PURE__ */ jsx13("path", { d: "M4 9h8.5M9.5 5.5 13 9l-3.5 3.5", stroke: "#fff", strokeWidth: "1.6", fill: "none" })
1410
+ return /* @__PURE__ */ jsxs13("svg", { viewBox: "0 0 18 18", width: size, height: size, "aria-hidden": "true", children: [
1411
+ /* @__PURE__ */ jsx14("rect", { width: "18", height: "18", fill: "var(--ods-accent)" }),
1412
+ /* @__PURE__ */ jsx14("path", { d: "M4 9h8.5M9.5 5.5 13 9l-3.5 3.5", stroke: "#fff", strokeWidth: "1.6", fill: "none" })
1158
1413
  ] });
1159
1414
  }
1160
1415
  function roleGlyph(role, size = 12) {
1161
1416
  switch (role) {
1162
1417
  case "source":
1163
- return /* @__PURE__ */ jsx13(SourceGlyph, { size });
1418
+ return /* @__PURE__ */ jsx14(SourceGlyph, { size });
1164
1419
  case "destination":
1165
- return /* @__PURE__ */ jsx13(DestinationGlyph, { size });
1420
+ return /* @__PURE__ */ jsx14(DestinationGlyph, { size });
1166
1421
  case "action":
1167
- return /* @__PURE__ */ jsx13(ActionGlyph, { size });
1422
+ return /* @__PURE__ */ jsx14(ActionGlyph, { size });
1168
1423
  case "notify":
1169
- return /* @__PURE__ */ jsx13(NotifyGlyph, { size });
1424
+ return /* @__PURE__ */ jsx14(NotifyGlyph, { size });
1170
1425
  }
1171
1426
  }
1172
1427
 
1173
1428
  // src/marketing/components/MarketingFooter/MarketingFooter.tsx
1174
- import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1429
+ import { Fragment as Fragment4, jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
1175
1430
  function MarketingFooter({
1176
1431
  brand,
1177
1432
  tagline,
@@ -1183,32 +1438,32 @@ function MarketingFooter({
1183
1438
  className,
1184
1439
  ...rest
1185
1440
  }) {
1186
- return /* @__PURE__ */ jsxs13("footer", { ...rest, className: cn("ods-mkt-footer", className), children: [
1187
- /* @__PURE__ */ jsxs13("div", { className: "ods-mkt-footer__grid", children: [
1188
- /* @__PURE__ */ jsxs13("div", { className: "ods-mkt-footer__brand-col", children: [
1189
- /* @__PURE__ */ jsx14("div", { className: "ods-mkt-footer__brand", children: brand ?? /* @__PURE__ */ jsxs13(Fragment3, { children: [
1190
- /* @__PURE__ */ jsx14(BrandMark, { size: 16 }),
1191
- /* @__PURE__ */ jsx14("span", { children: "OctaviaFlow" })
1441
+ return /* @__PURE__ */ jsxs14("footer", { ...rest, className: cn("ods-mkt-footer", className), children: [
1442
+ /* @__PURE__ */ jsxs14("div", { className: "ods-mkt-footer__grid", children: [
1443
+ /* @__PURE__ */ jsxs14("div", { className: "ods-mkt-footer__brand-col", children: [
1444
+ /* @__PURE__ */ jsx15("div", { className: "ods-mkt-footer__brand", children: brand ?? /* @__PURE__ */ jsxs14(Fragment4, { children: [
1445
+ /* @__PURE__ */ jsx15(BrandMark, { size: 16 }),
1446
+ /* @__PURE__ */ jsx15("span", { children: "OctaviaFlow" })
1192
1447
  ] }) }),
1193
- tagline && /* @__PURE__ */ jsx14("p", { className: "ods-mkt-footer__tagline", children: tagline }),
1194
- meta && /* @__PURE__ */ jsx14("div", { className: "ods-mkt-footer__meta", children: meta }),
1195
- newsletter && /* @__PURE__ */ jsx14("div", { className: "ods-mkt-footer__newsletter", children: newsletter })
1448
+ tagline && /* @__PURE__ */ jsx15("p", { className: "ods-mkt-footer__tagline", children: tagline }),
1449
+ meta && /* @__PURE__ */ jsx15("div", { className: "ods-mkt-footer__meta", children: meta }),
1450
+ newsletter && /* @__PURE__ */ jsx15("div", { className: "ods-mkt-footer__newsletter", children: newsletter })
1196
1451
  ] }),
1197
- columns.map((column) => /* @__PURE__ */ jsxs13("nav", { className: "ods-mkt-footer__col", "aria-label": String(column.id), children: [
1198
- /* @__PURE__ */ jsx14("span", { className: "ods-mkt-footer__col-label", children: column.label }),
1199
- column.links.map((link) => /* @__PURE__ */ jsx14("a", { className: "ods-mkt-footer__link", href: link.href, children: link.label }, link.href))
1452
+ columns.map((column) => /* @__PURE__ */ jsxs14("nav", { className: "ods-mkt-footer__col", "aria-label": String(column.id), children: [
1453
+ /* @__PURE__ */ jsx15("span", { className: "ods-mkt-footer__col-label", children: column.label }),
1454
+ column.links.map((link) => /* @__PURE__ */ jsx15("a", { className: "ods-mkt-footer__link", href: link.href, children: link.label }, link.href))
1200
1455
  ] }, column.id))
1201
1456
  ] }),
1202
- (legal || social) && /* @__PURE__ */ jsxs13("div", { className: "ods-mkt-footer__bar", children: [
1203
- /* @__PURE__ */ jsx14("span", { children: legal }),
1204
- /* @__PURE__ */ jsx14("span", { children: social })
1457
+ (legal || social) && /* @__PURE__ */ jsxs14("div", { className: "ods-mkt-footer__bar", children: [
1458
+ /* @__PURE__ */ jsx15("span", { children: legal }),
1459
+ /* @__PURE__ */ jsx15("span", { children: social })
1205
1460
  ] })
1206
1461
  ] });
1207
1462
  }
1208
1463
 
1209
1464
  // src/marketing/components/MarketingHero/MarketingHero.tsx
1210
1465
  import { motion, useReducedMotion } from "framer-motion";
1211
- import { jsx as jsx15, jsxs as jsxs14 } from "react/jsx-runtime";
1466
+ import { jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
1212
1467
  function MarketingHero({
1213
1468
  kicker,
1214
1469
  title,
@@ -1220,19 +1475,19 @@ function MarketingHero({
1220
1475
  }) {
1221
1476
  const reducedMotion = useReducedMotion();
1222
1477
  const words = title.split(/\s+/).filter(Boolean);
1223
- return /* @__PURE__ */ jsxs14(
1478
+ return /* @__PURE__ */ jsxs15(
1224
1479
  "section",
1225
1480
  {
1226
1481
  ...rest,
1227
1482
  className: cn("ods-mkt-hero", align === "center" && "ods-mkt-hero--center", className),
1228
1483
  children: [
1229
- kicker && /* @__PURE__ */ jsx15("p", { className: "ods-mkt-hero__kicker", children: kicker }),
1230
- /* @__PURE__ */ jsx15("h1", { className: "ods-mkt-hero__title", children: words.map((word, i) => /* @__PURE__ */ jsxs14(
1484
+ kicker && /* @__PURE__ */ jsx16("p", { className: "ods-mkt-hero__kicker", children: kicker }),
1485
+ /* @__PURE__ */ jsx16("h1", { className: "ods-mkt-hero__title", children: words.map((word, i) => /* @__PURE__ */ jsxs15(
1231
1486
  "span",
1232
1487
  {
1233
1488
  className: "ods-mkt-hero__word-clip",
1234
1489
  children: [
1235
- /* @__PURE__ */ jsx15(
1490
+ /* @__PURE__ */ jsx16(
1236
1491
  motion.span,
1237
1492
  {
1238
1493
  className: "ods-mkt-hero__word",
@@ -1251,7 +1506,7 @@ function MarketingHero({
1251
1506
  },
1252
1507
  i
1253
1508
  )) }),
1254
- lede && /* @__PURE__ */ jsx15(
1509
+ lede && /* @__PURE__ */ jsx16(
1255
1510
  motion.p,
1256
1511
  {
1257
1512
  className: "ods-mkt-hero__lede",
@@ -1261,7 +1516,7 @@ function MarketingHero({
1261
1516
  children: lede
1262
1517
  }
1263
1518
  ),
1264
- children && /* @__PURE__ */ jsx15(
1519
+ children && /* @__PURE__ */ jsx16(
1265
1520
  motion.div,
1266
1521
  {
1267
1522
  className: "ods-mkt-hero__body",
@@ -1277,10 +1532,10 @@ function MarketingHero({
1277
1532
  }
1278
1533
 
1279
1534
  // src/marketing/components/MarketingNav/MarketingNav.tsx
1280
- import { useState as useState4 } from "react";
1281
- import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
1535
+ import { useState as useState5 } from "react";
1536
+ import { Fragment as Fragment5, jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
1282
1537
  function BurgerGlyph({ open }) {
1283
- return /* @__PURE__ */ jsx16(
1538
+ return /* @__PURE__ */ jsx17(
1284
1539
  "svg",
1285
1540
  {
1286
1541
  viewBox: "0 0 24 24",
@@ -1291,7 +1546,7 @@ function BurgerGlyph({ open }) {
1291
1546
  strokeWidth: "2",
1292
1547
  strokeLinecap: "round",
1293
1548
  "aria-hidden": "true",
1294
- children: open ? /* @__PURE__ */ jsx16("path", { d: "M6 6l12 12M18 6 6 18" }) : /* @__PURE__ */ jsx16("path", { d: "M4 7h16M4 12h16M4 17h16" })
1549
+ children: open ? /* @__PURE__ */ jsx17("path", { d: "M6 6l12 12M18 6 6 18" }) : /* @__PURE__ */ jsx17("path", { d: "M4 7h16M4 12h16M4 17h16" })
1295
1550
  }
1296
1551
  );
1297
1552
  }
@@ -1304,13 +1559,13 @@ function MarketingNav({
1304
1559
  className,
1305
1560
  ...rest
1306
1561
  }) {
1307
- const [mobileOpen, setMobileOpen] = useState4(false);
1308
- return /* @__PURE__ */ jsxs15("header", { ...rest, className: cn("ods-mkt-nav", sticky && "ods-mkt-nav--sticky", className), children: [
1309
- /* @__PURE__ */ jsx16("a", { className: "ods-mkt-nav__brand", href: brandHref, children: brand ?? /* @__PURE__ */ jsxs15(Fragment4, { children: [
1310
- /* @__PURE__ */ jsx16(BrandMark, {}),
1311
- /* @__PURE__ */ jsx16("span", { children: "OctaviaFlow" })
1562
+ const [mobileOpen, setMobileOpen] = useState5(false);
1563
+ return /* @__PURE__ */ jsxs16("header", { ...rest, className: cn("ods-mkt-nav", sticky && "ods-mkt-nav--sticky", className), children: [
1564
+ /* @__PURE__ */ jsx17("a", { className: "ods-mkt-nav__brand", href: brandHref, children: brand ?? /* @__PURE__ */ jsxs16(Fragment5, { children: [
1565
+ /* @__PURE__ */ jsx17(BrandMark, {}),
1566
+ /* @__PURE__ */ jsx17("span", { children: "OctaviaFlow" })
1312
1567
  ] }) }),
1313
- links.length > 0 && /* @__PURE__ */ jsx16("nav", { className: "ods-mkt-nav__links", "aria-label": "Main", children: links.map((link) => /* @__PURE__ */ jsx16(
1568
+ links.length > 0 && /* @__PURE__ */ jsx17("nav", { className: "ods-mkt-nav__links", "aria-label": "Main", children: links.map((link) => /* @__PURE__ */ jsx17(
1314
1569
  "a",
1315
1570
  {
1316
1571
  href: link.href,
@@ -1320,8 +1575,8 @@ function MarketingNav({
1320
1575
  },
1321
1576
  link.href
1322
1577
  )) }),
1323
- actions && /* @__PURE__ */ jsx16("div", { className: "ods-mkt-nav__actions", children: actions }),
1324
- (links.length > 0 || actions) && /* @__PURE__ */ jsx16(
1578
+ actions && /* @__PURE__ */ jsx17("div", { className: "ods-mkt-nav__actions", children: actions }),
1579
+ (links.length > 0 || actions) && /* @__PURE__ */ jsx17(
1325
1580
  "button",
1326
1581
  {
1327
1582
  type: "button",
@@ -1329,11 +1584,11 @@ function MarketingNav({
1329
1584
  "aria-expanded": mobileOpen,
1330
1585
  "aria-label": "Toggle menu",
1331
1586
  onClick: () => setMobileOpen((open) => !open),
1332
- children: /* @__PURE__ */ jsx16(BurgerGlyph, { open: mobileOpen })
1587
+ children: /* @__PURE__ */ jsx17(BurgerGlyph, { open: mobileOpen })
1333
1588
  }
1334
1589
  ),
1335
- mobileOpen && /* @__PURE__ */ jsxs15("nav", { className: "ods-mkt-nav__mobile", "aria-label": "Main", children: [
1336
- links.map((link) => /* @__PURE__ */ jsx16(
1590
+ mobileOpen && /* @__PURE__ */ jsxs16("nav", { className: "ods-mkt-nav__mobile", "aria-label": "Main", children: [
1591
+ links.map((link) => /* @__PURE__ */ jsx17(
1337
1592
  "a",
1338
1593
  {
1339
1594
  href: link.href,
@@ -1347,13 +1602,13 @@ function MarketingNav({
1347
1602
  },
1348
1603
  link.href
1349
1604
  )),
1350
- actions && /* @__PURE__ */ jsx16("div", { className: "ods-mkt-nav__mobile-actions", children: actions })
1605
+ actions && /* @__PURE__ */ jsx17("div", { className: "ods-mkt-nav__mobile-actions", children: actions })
1351
1606
  ] })
1352
1607
  ] });
1353
1608
  }
1354
1609
 
1355
1610
  // src/marketing/components/MarketingSection/MarketingSection.tsx
1356
- import { jsx as jsx17, jsxs as jsxs16 } from "react/jsx-runtime";
1611
+ import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
1357
1612
  function MarketingSection({
1358
1613
  kicker,
1359
1614
  title,
@@ -1365,7 +1620,7 @@ function MarketingSection({
1365
1620
  children,
1366
1621
  ...rest
1367
1622
  }) {
1368
- return /* @__PURE__ */ jsxs16(
1623
+ return /* @__PURE__ */ jsxs17(
1369
1624
  "section",
1370
1625
  {
1371
1626
  ...rest,
@@ -1377,10 +1632,10 @@ function MarketingSection({
1377
1632
  className
1378
1633
  ),
1379
1634
  children: [
1380
- (kicker || title || lede) && /* @__PURE__ */ jsxs16("header", { className: "ods-mkt-section__head", children: [
1381
- kicker && /* @__PURE__ */ jsx17("p", { className: "ods-mkt-section__kicker", children: kicker }),
1382
- title && /* @__PURE__ */ jsx17("h2", { className: "ods-mkt-section__title", children: title }),
1383
- lede && /* @__PURE__ */ jsx17("p", { className: "ods-mkt-section__lede", children: lede })
1635
+ (kicker || title || lede) && /* @__PURE__ */ jsxs17("header", { className: "ods-mkt-section__head", children: [
1636
+ kicker && /* @__PURE__ */ jsx18("p", { className: "ods-mkt-section__kicker", children: kicker }),
1637
+ title && /* @__PURE__ */ jsx18("h2", { className: "ods-mkt-section__title", children: title }),
1638
+ lede && /* @__PURE__ */ jsx18("p", { className: "ods-mkt-section__lede", children: lede })
1384
1639
  ] }),
1385
1640
  children
1386
1641
  ]
@@ -1389,7 +1644,7 @@ function MarketingSection({
1389
1644
  }
1390
1645
 
1391
1646
  // src/marketing/components/PageHero/PageHero.tsx
1392
- import { jsx as jsx18, jsxs as jsxs17 } from "react/jsx-runtime";
1647
+ import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
1393
1648
  function PageHero({
1394
1649
  kicker,
1395
1650
  title,
@@ -1399,16 +1654,16 @@ function PageHero({
1399
1654
  className,
1400
1655
  ...rest
1401
1656
  }) {
1402
- return /* @__PURE__ */ jsxs17(
1657
+ return /* @__PURE__ */ jsxs18(
1403
1658
  "header",
1404
1659
  {
1405
1660
  ...rest,
1406
1661
  className: cn("ods-mkt-pagehero", align === "start" && "ods-mkt-pagehero--start", className),
1407
1662
  children: [
1408
- kicker && /* @__PURE__ */ jsx18("span", { className: "ods-mkt-pagehero__kicker", children: kicker }),
1409
- /* @__PURE__ */ jsx18("h1", { className: "ods-mkt-pagehero__title", children: title }),
1410
- subtitle && /* @__PURE__ */ jsx18("p", { className: "ods-mkt-pagehero__subtitle", children: subtitle }),
1411
- actions && /* @__PURE__ */ jsx18("div", { className: "ods-mkt-pagehero__actions", children: actions })
1663
+ kicker && /* @__PURE__ */ jsx19("span", { className: "ods-mkt-pagehero__kicker", children: kicker }),
1664
+ /* @__PURE__ */ jsx19("h1", { className: "ods-mkt-pagehero__title", children: title }),
1665
+ subtitle && /* @__PURE__ */ jsx19("p", { className: "ods-mkt-pagehero__subtitle", children: subtitle }),
1666
+ actions && /* @__PURE__ */ jsx19("div", { className: "ods-mkt-pagehero__actions", children: actions })
1412
1667
  ]
1413
1668
  }
1414
1669
  );
@@ -1416,10 +1671,10 @@ function PageHero({
1416
1671
 
1417
1672
  // src/marketing/components/PricingTiers/PricingTiers.tsx
1418
1673
  import { CheckmarkIcon as CheckmarkIcon3 } from "@octaviaflow/icons";
1419
- import { jsx as jsx19, jsxs as jsxs18 } from "react/jsx-runtime";
1674
+ import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1420
1675
  function TierCta({ cta, featured }) {
1421
1676
  if (cta.href) {
1422
- return /* @__PURE__ */ jsx19(
1677
+ return /* @__PURE__ */ jsx20(
1423
1678
  "a",
1424
1679
  {
1425
1680
  className: cn(
@@ -1432,11 +1687,11 @@ function TierCta({ cta, featured }) {
1432
1687
  }
1433
1688
  );
1434
1689
  }
1435
- return /* @__PURE__ */ jsx19(Button, { variant: featured ? "primary" : "secondary", fullWidth: true, onClick: cta.onClick, children: cta.label });
1690
+ return /* @__PURE__ */ jsx20(Button, { variant: featured ? "primary" : "secondary", fullWidth: true, onClick: cta.onClick, children: cta.label });
1436
1691
  }
1437
1692
  function PricingTiers({ tiers, note, className, ...rest }) {
1438
- return /* @__PURE__ */ jsxs18("div", { ...rest, className: cn("ods-mkt-pricing", className), children: [
1439
- /* @__PURE__ */ jsx19("div", { className: "ods-mkt-pricing__grid", children: tiers.map((tier) => /* @__PURE__ */ jsxs18(
1693
+ return /* @__PURE__ */ jsxs19("div", { ...rest, className: cn("ods-mkt-pricing", className), children: [
1694
+ /* @__PURE__ */ jsx20("div", { className: "ods-mkt-pricing__grid", children: tiers.map((tier) => /* @__PURE__ */ jsxs19(
1440
1695
  "article",
1441
1696
  {
1442
1697
  className: cn(
@@ -1444,42 +1699,42 @@ function PricingTiers({ tiers, note, className, ...rest }) {
1444
1699
  tier.featured && "ods-mkt-pricing__card--featured"
1445
1700
  ),
1446
1701
  children: [
1447
- tier.featured && /* @__PURE__ */ jsx19("span", { className: "ods-mkt-pricing__badge", children: tier.badge ?? "Recommended" }),
1448
- /* @__PURE__ */ jsx19("h3", { className: "ods-mkt-pricing__name", children: tier.name }),
1449
- /* @__PURE__ */ jsxs18("div", { className: "ods-mkt-pricing__price-row", children: [
1450
- /* @__PURE__ */ jsx19("span", { className: "ods-mkt-pricing__price", children: tier.price }),
1451
- tier.period && /* @__PURE__ */ jsx19("span", { className: "ods-mkt-pricing__period", children: tier.period })
1702
+ tier.featured && /* @__PURE__ */ jsx20("span", { className: "ods-mkt-pricing__badge", children: tier.badge ?? "Recommended" }),
1703
+ /* @__PURE__ */ jsx20("h3", { className: "ods-mkt-pricing__name", children: tier.name }),
1704
+ /* @__PURE__ */ jsxs19("div", { className: "ods-mkt-pricing__price-row", children: [
1705
+ /* @__PURE__ */ jsx20("span", { className: "ods-mkt-pricing__price", children: tier.price }),
1706
+ tier.period && /* @__PURE__ */ jsx20("span", { className: "ods-mkt-pricing__period", children: tier.period })
1452
1707
  ] }),
1453
- tier.annualNote && /* @__PURE__ */ jsx19("span", { className: "ods-mkt-pricing__annual", children: tier.annualNote }),
1454
- tier.description && /* @__PURE__ */ jsx19("p", { className: "ods-mkt-pricing__desc", children: tier.description }),
1455
- /* @__PURE__ */ jsx19("ul", { className: "ods-mkt-pricing__features", children: tier.features.map((feature, i) => (
1708
+ tier.annualNote && /* @__PURE__ */ jsx20("span", { className: "ods-mkt-pricing__annual", children: tier.annualNote }),
1709
+ tier.description && /* @__PURE__ */ jsx20("p", { className: "ods-mkt-pricing__desc", children: tier.description }),
1710
+ /* @__PURE__ */ jsx20("ul", { className: "ods-mkt-pricing__features", children: tier.features.map((feature, i) => (
1456
1711
  // biome-ignore lint/suspicious/noArrayIndexKey: features are positional copy
1457
- /* @__PURE__ */ jsxs18("li", { className: "ods-mkt-pricing__feature", children: [
1458
- /* @__PURE__ */ jsx19(CheckmarkIcon3, { size: "sm", "aria-hidden": "true" }),
1459
- /* @__PURE__ */ jsx19("span", { children: feature })
1712
+ /* @__PURE__ */ jsxs19("li", { className: "ods-mkt-pricing__feature", children: [
1713
+ /* @__PURE__ */ jsx20(CheckmarkIcon3, { size: "sm", "aria-hidden": "true" }),
1714
+ /* @__PURE__ */ jsx20("span", { children: feature })
1460
1715
  ] }, i)
1461
1716
  )) }),
1462
- /* @__PURE__ */ jsx19(TierCta, { cta: tier.cta, featured: Boolean(tier.featured) })
1717
+ /* @__PURE__ */ jsx20(TierCta, { cta: tier.cta, featured: Boolean(tier.featured) })
1463
1718
  ]
1464
1719
  },
1465
1720
  tier.id
1466
1721
  )) }),
1467
- note && /* @__PURE__ */ jsx19("p", { className: "ods-mkt-pricing__note", children: note })
1722
+ note && /* @__PURE__ */ jsx20("p", { className: "ods-mkt-pricing__note", children: note })
1468
1723
  ] });
1469
1724
  }
1470
1725
 
1471
1726
  // src/marketing/components/StatBand/StatBand.tsx
1472
1727
  import { useReducedMotion as useReducedMotion2 } from "framer-motion";
1473
- import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1728
+ import { Fragment as Fragment6, jsx as jsx21, jsxs as jsxs20 } from "react/jsx-runtime";
1474
1729
  function StatBand({ items, orientation = "column", className, ...rest }) {
1475
1730
  const reducedMotion = useReducedMotion2();
1476
- return /* @__PURE__ */ jsx20(
1731
+ return /* @__PURE__ */ jsx21(
1477
1732
  "div",
1478
1733
  {
1479
1734
  ...rest,
1480
1735
  className: cn("ods-mkt-statband", `ods-mkt-statband--${orientation}`, className),
1481
- children: items.map((item) => /* @__PURE__ */ jsxs19("div", { className: "ods-mkt-statband__item", children: [
1482
- /* @__PURE__ */ jsx20("div", { className: "ods-mkt-statband__value", children: typeof item.value === "number" ? /* @__PURE__ */ jsx20(
1736
+ children: items.map((item) => /* @__PURE__ */ jsxs20("div", { className: "ods-mkt-statband__item", children: [
1737
+ /* @__PURE__ */ jsx21("div", { className: "ods-mkt-statband__value", children: typeof item.value === "number" ? /* @__PURE__ */ jsx21(
1483
1738
  CountUp,
1484
1739
  {
1485
1740
  value: item.value,
@@ -1489,31 +1744,31 @@ function StatBand({ items, orientation = "column", className, ...rest }) {
1489
1744
  suffix: item.suffix,
1490
1745
  formatValue: (v) => Math.round(v).toLocaleString("en-US")
1491
1746
  }
1492
- ) : /* @__PURE__ */ jsxs19(Fragment5, { children: [
1747
+ ) : /* @__PURE__ */ jsxs20(Fragment6, { children: [
1493
1748
  item.prefix,
1494
1749
  item.value,
1495
1750
  item.suffix
1496
1751
  ] }) }),
1497
- /* @__PURE__ */ jsx20("div", { className: "ods-mkt-statband__label", children: item.label })
1752
+ /* @__PURE__ */ jsx21("div", { className: "ods-mkt-statband__label", children: item.label })
1498
1753
  ] }, item.id))
1499
1754
  }
1500
1755
  );
1501
1756
  }
1502
1757
 
1503
1758
  // src/marketing/components/TestimonialStrip/TestimonialStrip.tsx
1504
- import { jsx as jsx21 } from "react/jsx-runtime";
1759
+ import { jsx as jsx22 } from "react/jsx-runtime";
1505
1760
  function TestimonialStrip({
1506
1761
  items,
1507
1762
  columns = 3,
1508
1763
  className,
1509
1764
  ...rest
1510
1765
  }) {
1511
- return /* @__PURE__ */ jsx21(
1766
+ return /* @__PURE__ */ jsx22(
1512
1767
  "div",
1513
1768
  {
1514
1769
  ...rest,
1515
1770
  className: cn("ods-mkt-testimonials", `ods-mkt-testimonials--${columns}`, className),
1516
- children: items.map((item) => /* @__PURE__ */ jsx21(
1771
+ children: items.map((item) => /* @__PURE__ */ jsx22(
1517
1772
  TestimonialCard,
1518
1773
  {
1519
1774
  quote: item.quote,
@@ -1530,16 +1785,16 @@ function TestimonialStrip({
1530
1785
  // src/marketing/components/WorkflowShowcase/WorkflowShowcase.tsx
1531
1786
  import { AnimatePresence as AnimatePresence2, motion as motion3, useReducedMotion as useReducedMotion4 } from "framer-motion";
1532
1787
  import {
1533
- useCallback,
1534
- useEffect as useEffect2,
1788
+ useCallback as useCallback2,
1789
+ useEffect as useEffect3,
1535
1790
  useMemo as useMemo2,
1536
- useRef as useRef2,
1537
- useState as useState7
1791
+ useRef as useRef3,
1792
+ useState as useState8
1538
1793
  } from "react";
1539
1794
 
1540
1795
  // src/marketing/components/WorkflowShowcase/ShowcaseScene.tsx
1541
- import { useEffect, useRef, useState as useState5 } from "react";
1542
- import { jsx as jsx22, jsxs as jsxs20 } from "react/jsx-runtime";
1796
+ import { useEffect as useEffect2, useRef as useRef2, useState as useState6 } from "react";
1797
+ import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
1543
1798
  function slots(n) {
1544
1799
  return Array.from({ length: n }, (_, i) => 208 + (i - (n - 1) / 2) * 80);
1545
1800
  }
@@ -1575,9 +1830,9 @@ function particlesFor(side, index, path, active, fast) {
1575
1830
  return out;
1576
1831
  }
1577
1832
  function DefaultCoreGlyph() {
1578
- return /* @__PURE__ */ jsxs20("svg", { viewBox: "0 0 24 24", width: "30", height: "30", fill: "none", "aria-hidden": "true", children: [
1579
- /* @__PURE__ */ jsx22("rect", { x: "3", y: "3", width: "18", height: "18", rx: "1", stroke: "currentColor", strokeWidth: "1.6" }),
1580
- /* @__PURE__ */ jsx22(
1833
+ return /* @__PURE__ */ jsxs21("svg", { viewBox: "0 0 24 24", width: "30", height: "30", fill: "none", "aria-hidden": "true", children: [
1834
+ /* @__PURE__ */ jsx23("rect", { x: "3", y: "3", width: "18", height: "18", rx: "1", stroke: "currentColor", strokeWidth: "1.6" }),
1835
+ /* @__PURE__ */ jsx23(
1581
1836
  "path",
1582
1837
  {
1583
1838
  d: "M7 12h7M11.5 8.5 15 12l-3.5 3.5",
@@ -1590,7 +1845,7 @@ function DefaultCoreGlyph() {
1590
1845
  ] });
1591
1846
  }
1592
1847
  function CubeFace({ connector }) {
1593
- return /* @__PURE__ */ jsx22(
1848
+ return /* @__PURE__ */ jsx23(
1594
1849
  "span",
1595
1850
  {
1596
1851
  className: cn(
@@ -1611,9 +1866,9 @@ function ShowcaseScene({
1611
1866
  caption,
1612
1867
  onCoreClick
1613
1868
  }) {
1614
- const [pulse, setPulse] = useState5(false);
1615
- const pulseTimer = useRef(null);
1616
- useEffect(
1869
+ const [pulse, setPulse] = useState6(false);
1870
+ const pulseTimer = useRef2(null);
1871
+ useEffect2(
1617
1872
  () => () => {
1618
1873
  if (pulseTimer.current) clearTimeout(pulseTimer.current);
1619
1874
  },
@@ -1681,10 +1936,10 @@ function ShowcaseScene({
1681
1936
  { left: 83, top: 158 },
1682
1937
  { left: 158, top: 158 }
1683
1938
  ];
1684
- return /* @__PURE__ */ jsxs20("div", { className: "ods-showcase__scene", "aria-hidden": "true", children: [
1685
- /* @__PURE__ */ jsxs20("div", { className: "ods-showcase__scene-stage", children: [
1686
- /* @__PURE__ */ jsxs20("svg", { className: "ods-showcase__wires", width: "460", height: "460", "aria-hidden": "true", children: [
1687
- pins.map((pin) => /* @__PURE__ */ jsx22(
1939
+ return /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__scene", "aria-hidden": "true", children: [
1940
+ /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__scene-stage", children: [
1941
+ /* @__PURE__ */ jsxs21("svg", { className: "ods-showcase__wires", width: "460", height: "460", "aria-hidden": "true", children: [
1942
+ pins.map((pin) => /* @__PURE__ */ jsx23(
1688
1943
  "path",
1689
1944
  {
1690
1945
  d: pin.d,
@@ -1692,7 +1947,7 @@ function ShowcaseScene({
1692
1947
  },
1693
1948
  pin.d
1694
1949
  )),
1695
- pads.map((pad) => /* @__PURE__ */ jsx22(
1950
+ pads.map((pad) => /* @__PURE__ */ jsx23(
1696
1951
  "rect",
1697
1952
  {
1698
1953
  x: pad.x - 2,
@@ -1703,9 +1958,9 @@ function ShowcaseScene({
1703
1958
  },
1704
1959
  `${pad.x}-${pad.y}`
1705
1960
  )),
1706
- guides.map((guide) => /* @__PURE__ */ jsxs20("g", { children: [
1707
- /* @__PURE__ */ jsx22("path", { d: guide.d, className: "ods-showcase__guide" }),
1708
- /* @__PURE__ */ jsx22(
1961
+ guides.map((guide) => /* @__PURE__ */ jsxs21("g", { children: [
1962
+ /* @__PURE__ */ jsx23("path", { d: guide.d, className: "ods-showcase__guide" }),
1963
+ /* @__PURE__ */ jsx23(
1709
1964
  "path",
1710
1965
  {
1711
1966
  d: guide.d,
@@ -1718,7 +1973,7 @@ function ShowcaseScene({
1718
1973
  )
1719
1974
  ] }, guide.d))
1720
1975
  ] }),
1721
- particles.map((p) => /* @__PURE__ */ jsx22(
1976
+ particles.map((p) => /* @__PURE__ */ jsx23(
1722
1977
  "span",
1723
1978
  {
1724
1979
  className: cn("ods-showcase__particle", `ods-showcase__particle--${p.variant}`),
@@ -1732,29 +1987,29 @@ function ShowcaseScene({
1732
1987
  },
1733
1988
  p.key
1734
1989
  )),
1735
- /* @__PURE__ */ jsxs20("div", { className: "ods-showcase__platform", children: [
1736
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__platform-south" }),
1737
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__platform-east" }),
1738
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__platform-top" }),
1739
- tiles.slice(0, 8).map((label, i) => /* @__PURE__ */ jsxs20(
1990
+ /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__platform", children: [
1991
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__platform-south" }),
1992
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__platform-east" }),
1993
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__platform-top" }),
1994
+ tiles.slice(0, 8).map((label, i) => /* @__PURE__ */ jsxs21(
1740
1995
  "span",
1741
1996
  {
1742
1997
  className: "ods-showcase__tile",
1743
1998
  style: { left: tilePositions[i].left, top: tilePositions[i].top },
1744
1999
  children: [
1745
- /* @__PURE__ */ jsxs20("span", { className: "ods-showcase__tile-flip", children: [
1746
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--south" }),
1747
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--east" })
2000
+ /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__tile-flip", children: [
2001
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--south" }),
2002
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--east" })
1748
2003
  ] }),
1749
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--south" }),
1750
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--east" }),
1751
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__tile-face", children: label })
2004
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--south" }),
2005
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__tile-wall ods-showcase__tile-wall--east" }),
2006
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__tile-face", children: label })
1752
2007
  ]
1753
2008
  },
1754
2009
  label
1755
2010
  )),
1756
- pulse && /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-ring" }),
1757
- /* @__PURE__ */ jsxs20(
2011
+ pulse && /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-ring" }),
2012
+ /* @__PURE__ */ jsxs21(
1758
2013
  "button",
1759
2014
  {
1760
2015
  type: "button",
@@ -1765,28 +2020,28 @@ function ShowcaseScene({
1765
2020
  onCoreClick?.();
1766
2021
  },
1767
2022
  children: [
1768
- /* @__PURE__ */ jsxs20("span", { className: "ods-showcase__core-flip", children: [
1769
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--south ods-showcase__core-wall--back" }),
1770
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--east ods-showcase__core-wall--back" })
2023
+ /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__core-flip", children: [
2024
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--south ods-showcase__core-wall--back" }),
2025
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--east ods-showcase__core-wall--back" })
1771
2026
  ] }),
1772
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--south" }),
1773
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--east" }),
1774
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__core-top", children: coreIcon ?? /* @__PURE__ */ jsx22(DefaultCoreGlyph, {}) })
2027
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--south" }),
2028
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-wall ods-showcase__core-wall--east" }),
2029
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__core-top", children: coreIcon ?? /* @__PURE__ */ jsx23(DefaultCoreGlyph, {}) })
1775
2030
  ]
1776
2031
  }
1777
2032
  )
1778
2033
  ] }),
1779
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__floater ods-showcase__floater--a" }),
1780
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__floater ods-showcase__floater--b" }),
1781
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__floater ods-showcase__floater--c" }),
1782
- !left.length && /* @__PURE__ */ jsx22("span", { className: "ods-showcase__ghost", style: { left: 8, top: 178 }, children: "+" }),
1783
- !right.length && /* @__PURE__ */ jsx22("span", { className: "ods-showcase__ghost", style: { left: 392, top: 178 }, children: "+" }),
1784
- left.map((node, i) => /* @__PURE__ */ jsx22(
2034
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__floater ods-showcase__floater--a" }),
2035
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__floater ods-showcase__floater--b" }),
2036
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__floater ods-showcase__floater--c" }),
2037
+ !left.length && /* @__PURE__ */ jsx23("span", { className: "ods-showcase__ghost", style: { left: 8, top: 178 }, children: "+" }),
2038
+ !right.length && /* @__PURE__ */ jsx23("span", { className: "ods-showcase__ghost", style: { left: 392, top: 178 }, children: "+" }),
2039
+ left.map((node, i) => /* @__PURE__ */ jsx23(
1785
2040
  "span",
1786
2041
  {
1787
2042
  className: "ods-showcase__cube-slot",
1788
2043
  style: { left: 8, top: leftYs[i] - 30 },
1789
- children: /* @__PURE__ */ jsxs20(
2044
+ children: /* @__PURE__ */ jsxs21(
1790
2045
  "span",
1791
2046
  {
1792
2047
  className: cn(
@@ -1796,25 +2051,25 @@ function ShowcaseScene({
1796
2051
  ),
1797
2052
  style: { animationDelay: `${i * 0.15}s` },
1798
2053
  children: [
1799
- /* @__PURE__ */ jsxs20("span", { className: "ods-showcase__cube-flip", children: [
1800
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-south ods-showcase__cube-wall--back" }),
1801
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-east ods-showcase__cube-wall--back" })
2054
+ /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__cube-flip", children: [
2055
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-south ods-showcase__cube-wall--back" }),
2056
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-east ods-showcase__cube-wall--back" })
1802
2057
  ] }),
1803
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-south" }),
1804
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-east" }),
1805
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-top", children: /* @__PURE__ */ jsx22(CubeFace, { connector: node.connector }) })
2058
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-south" }),
2059
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-east" }),
2060
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-top", children: /* @__PURE__ */ jsx23(CubeFace, { connector: node.connector }) })
1806
2061
  ]
1807
2062
  }
1808
2063
  )
1809
2064
  },
1810
2065
  node.connector.name
1811
2066
  )),
1812
- right.map((node, j) => /* @__PURE__ */ jsx22(
2067
+ right.map((node, j) => /* @__PURE__ */ jsx23(
1813
2068
  "span",
1814
2069
  {
1815
2070
  className: "ods-showcase__cube-slot",
1816
2071
  style: { left: 392, top: rightYs[j] - 30 },
1817
- children: /* @__PURE__ */ jsxs20(
2072
+ children: /* @__PURE__ */ jsxs21(
1818
2073
  "span",
1819
2074
  {
1820
2075
  className: cn(
@@ -1824,13 +2079,13 @@ function ShowcaseScene({
1824
2079
  ),
1825
2080
  style: { animationDelay: `${j * 0.15}s` },
1826
2081
  children: [
1827
- /* @__PURE__ */ jsxs20("span", { className: "ods-showcase__cube-flip", children: [
1828
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-south ods-showcase__cube-wall--back" }),
1829
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-east ods-showcase__cube-wall--back" })
2082
+ /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__cube-flip", children: [
2083
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-south ods-showcase__cube-wall--back" }),
2084
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-east ods-showcase__cube-wall--back" })
1830
2085
  ] }),
1831
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-south" }),
1832
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-east" }),
1833
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__cube-top", children: /* @__PURE__ */ jsx22(CubeFace, { connector: node.connector }) })
2086
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-south" }),
2087
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-east" }),
2088
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__cube-top", children: /* @__PURE__ */ jsx23(CubeFace, { connector: node.connector }) })
1834
2089
  ]
1835
2090
  }
1836
2091
  )
@@ -1838,15 +2093,15 @@ function ShowcaseScene({
1838
2093
  node.connector.name
1839
2094
  ))
1840
2095
  ] }),
1841
- /* @__PURE__ */ jsx22("span", { className: "ods-showcase__scene-caption", children: caption })
2096
+ /* @__PURE__ */ jsx23("span", { className: "ods-showcase__scene-caption", children: caption })
1842
2097
  ] });
1843
2098
  }
1844
2099
 
1845
2100
  // src/marketing/components/WorkflowShowcase/ShowcaseSignup.tsx
1846
2101
  import { AnimatePresence, motion as motion2, useReducedMotion as useReducedMotion3 } from "framer-motion";
1847
- import { useId as useId3, useState as useState6 } from "react";
2102
+ import { useId as useId4, useState as useState7 } from "react";
1848
2103
  import { FocusScope } from "react-aria";
1849
- import { jsx as jsx23, jsxs as jsxs21 } from "react/jsx-runtime";
2104
+ import { jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
1850
2105
  var OVERLAY_MOTION = {
1851
2106
  initial: { opacity: 0 },
1852
2107
  animate: { opacity: 1 },
@@ -1864,9 +2119,9 @@ function ShowcaseSignup({
1864
2119
  onboardingHref = "#"
1865
2120
  }) {
1866
2121
  const reducedMotion = useReducedMotion3();
1867
- const titleId = useId3();
1868
- const subtitleId = useId3();
1869
- const [values, setValues] = useState6({
2122
+ const titleId = useId4();
2123
+ const subtitleId = useId4();
2124
+ const [values, setValues] = useState7({
1870
2125
  name: "",
1871
2126
  email: "",
1872
2127
  company: "",
@@ -1885,14 +2140,14 @@ function ShowcaseSignup({
1885
2140
  const firstName = values.name.trim().split(/\s+/)[0] || "";
1886
2141
  const emailShown = values.email.trim() || "your inbox";
1887
2142
  const slug = `${slugify(values.company)}.${workspaceDomain}`;
1888
- return /* @__PURE__ */ jsx23(AnimatePresence, { children: open && /* @__PURE__ */ jsx23(
2143
+ return /* @__PURE__ */ jsx24(AnimatePresence, { children: open && /* @__PURE__ */ jsx24(
1889
2144
  motion2.div,
1890
2145
  {
1891
2146
  className: "ods-showcase__veil",
1892
2147
  ...OVERLAY_MOTION,
1893
2148
  transition: { duration: reducedMotion ? 0 : 0.22 },
1894
- children: /* @__PURE__ */ jsxs21(FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: [
1895
- phase === "signup" && /* @__PURE__ */ jsxs21(
2149
+ children: /* @__PURE__ */ jsxs22(FocusScope, { contain: true, restoreFocus: true, autoFocus: true, children: [
2150
+ phase === "signup" && /* @__PURE__ */ jsxs22(
1896
2151
  motion2.form,
1897
2152
  {
1898
2153
  className: "ods-showcase__glass-card",
@@ -1907,18 +2162,18 @@ function ShowcaseSignup({
1907
2162
  ...cardMotion,
1908
2163
  transition: { duration: reducedMotion ? 0 : 0.3, ease: [0.2, 0.7, 0.2, 1] },
1909
2164
  children: [
1910
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-head", children: [
1911
- /* @__PURE__ */ jsx23("h3", { id: titleId, className: "ods-showcase__glass-title", children: "Create your workspace" }),
1912
- /* @__PURE__ */ jsxs21("p", { id: subtitleId, className: "ods-showcase__microcopy", children: [
2165
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-head", children: [
2166
+ /* @__PURE__ */ jsx24("h3", { id: titleId, className: "ods-showcase__glass-title", children: "Create your workspace" }),
2167
+ /* @__PURE__ */ jsxs22("p", { id: subtitleId, className: "ods-showcase__microcopy", children: [
1913
2168
  "FREE IN PRIVATE BETA \xB7 YOUR ",
1914
2169
  stepCount,
1915
2170
  "-STEP WORKFLOW COMES WITH YOU"
1916
2171
  ] })
1917
2172
  ] }),
1918
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__form-grid", children: [
1919
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__field", children: [
1920
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__field-label", children: "FULL NAME" }),
1921
- /* @__PURE__ */ jsx23(
2173
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__form-grid", children: [
2174
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__field", children: [
2175
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__field-label", children: "FULL NAME" }),
2176
+ /* @__PURE__ */ jsx24(
1922
2177
  Input,
1923
2178
  {
1924
2179
  "aria-label": "Full name",
@@ -1929,9 +2184,9 @@ function ShowcaseSignup({
1929
2184
  }
1930
2185
  )
1931
2186
  ] }),
1932
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__field", children: [
1933
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__field-label", children: "WORK EMAIL" }),
1934
- /* @__PURE__ */ jsx23(
2187
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__field", children: [
2188
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__field-label", children: "WORK EMAIL" }),
2189
+ /* @__PURE__ */ jsx24(
1935
2190
  Input,
1936
2191
  {
1937
2192
  "aria-label": "Work email",
@@ -1943,9 +2198,9 @@ function ShowcaseSignup({
1943
2198
  }
1944
2199
  )
1945
2200
  ] }),
1946
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__field", children: [
1947
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__field-label", children: "COMPANY" }),
1948
- /* @__PURE__ */ jsx23(
2201
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__field", children: [
2202
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__field-label", children: "COMPANY" }),
2203
+ /* @__PURE__ */ jsx24(
1949
2204
  Input,
1950
2205
  {
1951
2206
  "aria-label": "Company",
@@ -1956,9 +2211,9 @@ function ShowcaseSignup({
1956
2211
  }
1957
2212
  )
1958
2213
  ] }),
1959
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__field", children: [
1960
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__field-label", children: "TEAM SIZE" }),
1961
- /* @__PURE__ */ jsx23(
2214
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__field", children: [
2215
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__field-label", children: "TEAM SIZE" }),
2216
+ /* @__PURE__ */ jsx24(
1962
2217
  Select,
1963
2218
  {
1964
2219
  "aria-label": "Team size",
@@ -1969,19 +2224,19 @@ function ShowcaseSignup({
1969
2224
  )
1970
2225
  ] })
1971
2226
  ] }),
1972
- error && /* @__PURE__ */ jsx23("p", { className: "ods-showcase__form-error", role: "alert", children: error }),
1973
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-foot", children: [
1974
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__microcopy", children: "NO CREDIT CARD \xB7 SSO & SELF-HOSTING LATER" }),
1975
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-actions", children: [
1976
- /* @__PURE__ */ jsx23(Button, { type: "button", variant: "secondary", onClick: onBack, children: "Back" }),
1977
- /* @__PURE__ */ jsx23(Button, { type: "submit", variant: "primary", children: "Create account & deploy \u2192" })
2227
+ error && /* @__PURE__ */ jsx24("p", { className: "ods-showcase__form-error", role: "alert", children: error }),
2228
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-foot", children: [
2229
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__microcopy", children: "NO CREDIT CARD \xB7 SSO & SELF-HOSTING LATER" }),
2230
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-actions", children: [
2231
+ /* @__PURE__ */ jsx24(Button, { type: "button", variant: "secondary", onClick: onBack, children: "Back" }),
2232
+ /* @__PURE__ */ jsx24(Button, { type: "submit", variant: "primary", children: "Create account & deploy \u2192" })
1978
2233
  ] })
1979
2234
  ] })
1980
2235
  ]
1981
2236
  },
1982
2237
  "signup"
1983
2238
  ),
1984
- phase === "creating" && /* @__PURE__ */ jsxs21(
2239
+ phase === "creating" && /* @__PURE__ */ jsxs22(
1985
2240
  motion2.div,
1986
2241
  {
1987
2242
  className: "ods-showcase__glass-card ods-showcase__glass-card--slim",
@@ -1989,8 +2244,8 @@ function ShowcaseSignup({
1989
2244
  ...cardMotion,
1990
2245
  transition: { duration: reducedMotion ? 0 : 0.25 },
1991
2246
  children: [
1992
- /* @__PURE__ */ jsx23("span", { className: "ods-showcase__spin", "aria-hidden": "true", children: "\u27F3" }),
1993
- /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__creating-line", children: [
2247
+ /* @__PURE__ */ jsx24("span", { className: "ods-showcase__spin", "aria-hidden": "true", children: "\u27F3" }),
2248
+ /* @__PURE__ */ jsxs22("span", { className: "ods-showcase__creating-line", children: [
1994
2249
  "provisioning workspace \xB7 saving draft \xB7 inviting ",
1995
2250
  emailShown
1996
2251
  ] })
@@ -1998,7 +2253,7 @@ function ShowcaseSignup({
1998
2253
  },
1999
2254
  "creating"
2000
2255
  ),
2001
- phase === "welcome" && /* @__PURE__ */ jsxs21(
2256
+ phase === "welcome" && /* @__PURE__ */ jsxs22(
2002
2257
  motion2.div,
2003
2258
  {
2004
2259
  className: "ods-showcase__glass-card ods-showcase__glass-card--welcome",
@@ -2008,32 +2263,32 @@ function ShowcaseSignup({
2008
2263
  ...cardMotion,
2009
2264
  transition: { duration: reducedMotion ? 0 : 0.3, ease: [0.2, 0.7, 0.2, 1] },
2010
2265
  children: [
2011
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-head", children: [
2012
- /* @__PURE__ */ jsx23("p", { className: "ods-showcase__microcopy ods-showcase__microcopy--success", children: "\u2713 WORKSPACE READY" }),
2013
- /* @__PURE__ */ jsxs21("h3", { id: titleId, className: "ods-showcase__glass-title", children: [
2266
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-head", children: [
2267
+ /* @__PURE__ */ jsx24("p", { className: "ods-showcase__microcopy ods-showcase__microcopy--success", children: "\u2713 WORKSPACE READY" }),
2268
+ /* @__PURE__ */ jsxs22("h3", { id: titleId, className: "ods-showcase__glass-title", children: [
2014
2269
  "Welcome to OctaviaFlow",
2015
2270
  firstName ? `, ${firstName}` : "",
2016
2271
  "."
2017
2272
  ] }),
2018
- /* @__PURE__ */ jsxs21("p", { className: "ods-showcase__welcome-body", children: [
2273
+ /* @__PURE__ */ jsxs22("p", { className: "ods-showcase__welcome-body", children: [
2019
2274
  "We emailed a sign-in link to ",
2020
- /* @__PURE__ */ jsx23("strong", { children: emailShown }),
2275
+ /* @__PURE__ */ jsx24("strong", { children: emailShown }),
2021
2276
  ". Your ",
2022
2277
  stepCount,
2023
2278
  "-step workflow is saved as a draft in",
2024
2279
  " ",
2025
- /* @__PURE__ */ jsx23("code", { className: "ods-showcase__slug", children: slug }),
2280
+ /* @__PURE__ */ jsx24("code", { className: "ods-showcase__slug", children: slug }),
2026
2281
  " \u2014 deploy it from the dashboard whenever you're ready."
2027
2282
  ] })
2028
2283
  ] }),
2029
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-foot", children: [
2030
- /* @__PURE__ */ jsxs21("div", { className: "ods-showcase__glass-actions", children: [
2031
- /* @__PURE__ */ jsx23("a", { className: "ods-showcase__solid-link", href: dashboardHref, children: "Open dashboard \u2192" }),
2032
- /* @__PURE__ */ jsx23("a", { className: "ods-showcase__text-link", href: onboardingHref, children: "Book onboarding \u2192" })
2284
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-foot", children: [
2285
+ /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__glass-actions", children: [
2286
+ /* @__PURE__ */ jsx24("a", { className: "ods-showcase__solid-link", href: dashboardHref, children: "Open dashboard \u2192" }),
2287
+ /* @__PURE__ */ jsx24("a", { className: "ods-showcase__text-link", href: onboardingHref, children: "Book onboarding \u2192" })
2033
2288
  ] }),
2034
- /* @__PURE__ */ jsxs21("span", { className: "ods-showcase__microcopy ods-showcase__microcopy--right", children: [
2289
+ /* @__PURE__ */ jsxs22("span", { className: "ods-showcase__microcopy ods-showcase__microcopy--right", children: [
2035
2290
  "PRIVATE BETA",
2036
- /* @__PURE__ */ jsx23("br", {}),
2291
+ /* @__PURE__ */ jsx24("br", {}),
2037
2292
  "ONBOARDING INCLUDED"
2038
2293
  ] })
2039
2294
  ] })
@@ -2047,10 +2302,10 @@ function ShowcaseSignup({
2047
2302
  }
2048
2303
 
2049
2304
  // src/marketing/components/WorkflowShowcase/WorkflowShowcase.tsx
2050
- import { Fragment as Fragment6, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
2305
+ import { Fragment as Fragment7, jsx as jsx25, jsxs as jsxs23 } from "react/jsx-runtime";
2051
2306
  var EMPTY_PLAN = { left: [], right: [], all: [], totalSteps: 1 };
2052
2307
  function ConnectorTile({ connector }) {
2053
- return /* @__PURE__ */ jsx24(
2308
+ return /* @__PURE__ */ jsx25(
2054
2309
  "span",
2055
2310
  {
2056
2311
  "aria-hidden": "true",
@@ -2084,45 +2339,45 @@ function WorkflowShowcase({
2084
2339
  }) {
2085
2340
  const reducedMotion = useReducedMotion4();
2086
2341
  const rotationActive = rotatePrompts && !defaultPrompt && examples.length > 0;
2087
- const [prompt, setPrompt] = useState7(
2342
+ const [prompt, setPrompt] = useState8(
2088
2343
  defaultPrompt || (rotationActive ? examples[0]?.prompt ?? "" : "")
2089
2344
  );
2090
- const [engagedWithPrompt, setEngagedWithPrompt] = useState7(false);
2091
- const [promptHovered, setPromptHovered] = useState7(false);
2092
- const [promptFocused, setPromptFocused] = useState7(false);
2093
- const rotateIdx = useRef2(0);
2094
- const [selected, setSelected] = useState7([]);
2095
- const [phase, setPhase] = useState7("idle");
2096
- const [shown, setShown] = useState7(0);
2097
- const [status, setStatus] = useState7("");
2098
- const [pickerOpen, setPickerOpen] = useState7(false);
2099
- const [schedIdx, setSchedIdx] = useState7(0);
2100
- const [swap, setSwap] = useState7(null);
2101
- const [signupError, setSignupError] = useState7(null);
2102
- const signupReturnPhase = useRef2("done");
2103
- const cardRef = useRef2(null);
2104
- const timers = useRef2([]);
2105
- const clearTimers = useCallback(() => {
2345
+ const [engagedWithPrompt, setEngagedWithPrompt] = useState8(false);
2346
+ const [promptHovered, setPromptHovered] = useState8(false);
2347
+ const [promptFocused, setPromptFocused] = useState8(false);
2348
+ const rotateIdx = useRef3(0);
2349
+ const [selected, setSelected] = useState8([]);
2350
+ const [phase, setPhase] = useState8("idle");
2351
+ const [shown, setShown] = useState8(0);
2352
+ const [status, setStatus] = useState8("");
2353
+ const [pickerOpen, setPickerOpen] = useState8(false);
2354
+ const [schedIdx, setSchedIdx] = useState8(0);
2355
+ const [swap, setSwap] = useState8(null);
2356
+ const [signupError, setSignupError] = useState8(null);
2357
+ const signupReturnPhase = useRef3("done");
2358
+ const cardRef = useRef3(null);
2359
+ const timers = useRef3([]);
2360
+ const clearTimers = useCallback2(() => {
2106
2361
  for (const t of timers.current) clearTimeout(t);
2107
2362
  timers.current = [];
2108
2363
  }, []);
2109
- useEffect2(() => clearTimers, [clearTimers]);
2364
+ useEffect3(() => clearTimers, [clearTimers]);
2110
2365
  const tempo = reducedMotion ? 0.35 : 1;
2111
- const at = useCallback(
2366
+ const at = useCallback2(
2112
2367
  (ms, fn) => {
2113
2368
  timers.current.push(setTimeout(fn, ms * tempo));
2114
2369
  },
2115
2370
  [tempo]
2116
2371
  );
2117
- const firstPhase = useRef2(true);
2118
- useEffect2(() => {
2372
+ const firstPhase = useRef3(true);
2373
+ useEffect3(() => {
2119
2374
  if (firstPhase.current) {
2120
2375
  firstPhase.current = false;
2121
2376
  return;
2122
2377
  }
2123
2378
  onPhaseChange?.(phase);
2124
2379
  }, [phase, onPhaseChange]);
2125
- const phaseRef = useRef2(phase);
2380
+ const phaseRef = useRef3(phase);
2126
2381
  phaseRef.current = phase;
2127
2382
  const byName = useMemo2(() => new Map(connectors.map((c) => [c.name, c])), [connectors]);
2128
2383
  const detected = useMemo2(() => detectConnectors(prompt, connectors), [prompt, connectors]);
@@ -2139,10 +2394,10 @@ function WorkflowShowcase({
2139
2394
  const manualSchedule = schedules[schedIdx];
2140
2395
  const scheduleShown = inferredSchedule ?? (manualSchedule === "AUTO" ? "HOURLY" : manualSchedule);
2141
2396
  const triggers = WORKFLOW_SHOWCASE_TRIGGERS;
2142
- const [triggerIdx, setTriggerIdx] = useState7(0);
2397
+ const [triggerIdx, setTriggerIdx] = useState8(0);
2143
2398
  const manualTrigger = triggers[triggerIdx];
2144
2399
  const cadenceShown = manualTrigger === "SCHEDULE" ? scheduleShown : manualTrigger;
2145
- useEffect2(() => {
2400
+ useEffect3(() => {
2146
2401
  if (!rotationActive || engagedWithPrompt || promptHovered || promptFocused || phase !== "idle") {
2147
2402
  return;
2148
2403
  }
@@ -2152,7 +2407,7 @@ function WorkflowShowcase({
2152
2407
  }, 4200);
2153
2408
  return () => clearInterval(timer);
2154
2409
  }, [rotationActive, engagedWithPrompt, promptHovered, promptFocused, phase, examples]);
2155
- const startBuild = useCallback(
2410
+ const startBuild = useCallback2(
2156
2411
  (text, baseSelected) => {
2157
2412
  if (phaseRef.current === "analyzing" || phaseRef.current === "building") return;
2158
2413
  phaseRef.current = "analyzing";
@@ -2189,7 +2444,7 @@ function WorkflowShowcase({
2189
2444
  },
2190
2445
  [clearTimers, connectors, onBuild, scheduleShown, manualTrigger, at]
2191
2446
  );
2192
- const resetToIdle = useCallback(() => {
2447
+ const resetToIdle = useCallback2(() => {
2193
2448
  clearTimers();
2194
2449
  phaseRef.current = "idle";
2195
2450
  setPhase("idle");
@@ -2308,8 +2563,8 @@ function WorkflowShowcase({
2308
2563
  animate: { opacity: 1, y: 0 },
2309
2564
  transition: { duration: 0.4, delay, ease: [0.2, 0.7, 0.2, 1] }
2310
2565
  };
2311
- return /* @__PURE__ */ jsxs22("section", { ...rest, className: cn("ods-showcase", className), children: [
2312
- /* @__PURE__ */ jsxs22(
2566
+ return /* @__PURE__ */ jsxs23("section", { ...rest, className: cn("ods-showcase", className), children: [
2567
+ /* @__PURE__ */ jsxs23(
2313
2568
  "div",
2314
2569
  {
2315
2570
  ref: cardRef,
@@ -2317,8 +2572,8 @@ function WorkflowShowcase({
2317
2572
  onMouseEnter: () => setPromptHovered(true),
2318
2573
  onMouseLeave: () => setPromptHovered(false),
2319
2574
  children: [
2320
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__prompt", children: [
2321
- /* @__PURE__ */ jsx24(
2575
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__prompt", children: [
2576
+ /* @__PURE__ */ jsx25(
2322
2577
  "textarea",
2323
2578
  {
2324
2579
  className: "ods-showcase__prompt-input",
@@ -2335,8 +2590,8 @@ function WorkflowShowcase({
2335
2590
  rows: 2
2336
2591
  }
2337
2592
  ),
2338
- /* @__PURE__ */ jsx24("div", { className: "ods-showcase__prompt-render", "aria-hidden": "true", children: prompt ? segments.map(
2339
- (seg, i) => seg.connector ? /* @__PURE__ */ jsxs22(
2593
+ /* @__PURE__ */ jsx25("div", { className: "ods-showcase__prompt-render", "aria-hidden": "true", children: prompt ? segments.map(
2594
+ (seg, i) => seg.connector ? /* @__PURE__ */ jsxs23(
2340
2595
  "button",
2341
2596
  {
2342
2597
  type: "button",
@@ -2350,36 +2605,36 @@ function WorkflowShowcase({
2350
2605
  if (name) openSwap(name, seg.text, e.currentTarget);
2351
2606
  },
2352
2607
  children: [
2353
- !promptFocused && /* @__PURE__ */ jsx24(ConnectorTile, { connector: seg.connector }),
2608
+ !promptFocused && /* @__PURE__ */ jsx25(ConnectorTile, { connector: seg.connector }),
2354
2609
  seg.text
2355
2610
  ]
2356
2611
  },
2357
2612
  i
2358
2613
  ) : (
2359
2614
  // biome-ignore lint/suspicious/noArrayIndexKey: segments are positional by nature
2360
- /* @__PURE__ */ jsx24("span", { children: seg.text }, i)
2615
+ /* @__PURE__ */ jsx25("span", { children: seg.text }, i)
2361
2616
  )
2362
- ) : /* @__PURE__ */ jsxs22(Fragment6, { children: [
2363
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__placeholder", children: "Describe your pipeline \u2014 e.g. " }),
2364
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__placeholder ods-showcase__placeholder--faint", children: '"Sync Storefront orders to Warehouse hourly, alert sales in Team Chat"' })
2617
+ ) : /* @__PURE__ */ jsxs23(Fragment7, { children: [
2618
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__placeholder", children: "Describe your pipeline \u2014 e.g. " }),
2619
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__placeholder ods-showcase__placeholder--faint", children: '"Sync Storefront orders to Warehouse hourly, alert sales in Team Chat"' })
2365
2620
  ] }) })
2366
2621
  ] }),
2367
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__coach", children: [
2368
- /* @__PURE__ */ jsx24(
2622
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__coach", children: [
2623
+ /* @__PURE__ */ jsx25(
2369
2624
  "span",
2370
2625
  {
2371
2626
  className: cn("ods-showcase__coach-line", `ods-showcase__coach-line--${coachTone}`),
2372
2627
  children: coachLine
2373
2628
  }
2374
2629
  ),
2375
- coachAdds.map((c) => /* @__PURE__ */ jsxs22(
2630
+ coachAdds.map((c) => /* @__PURE__ */ jsxs23(
2376
2631
  "button",
2377
2632
  {
2378
2633
  type: "button",
2379
2634
  className: "ods-showcase__coach-add",
2380
2635
  onClick: () => toggleConnector(c.name),
2381
2636
  children: [
2382
- /* @__PURE__ */ jsx24(ConnectorTile, { connector: c }),
2637
+ /* @__PURE__ */ jsx25(ConnectorTile, { connector: c }),
2383
2638
  "+ ",
2384
2639
  c.name
2385
2640
  ]
@@ -2387,7 +2642,7 @@ function WorkflowShowcase({
2387
2642
  c.name
2388
2643
  ))
2389
2644
  ] }),
2390
- /* @__PURE__ */ jsx24(AnimatePresence2, { initial: false, children: pickerOpen && /* @__PURE__ */ jsx24(
2645
+ /* @__PURE__ */ jsx25(AnimatePresence2, { initial: false, children: pickerOpen && /* @__PURE__ */ jsx25(
2391
2646
  motion3.div,
2392
2647
  {
2393
2648
  className: "ods-showcase__picker",
@@ -2395,9 +2650,9 @@ function WorkflowShowcase({
2395
2650
  animate: { opacity: 1, height: "auto" },
2396
2651
  exit: reducedMotion ? { opacity: 0 } : { opacity: 0, height: 0 },
2397
2652
  transition: { duration: 0.22, ease: [0.2, 0.7, 0.2, 1] },
2398
- children: /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__picker-row", children: [
2399
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__microcopy", children: "CONNECTORS" }),
2400
- connectors.map((c) => /* @__PURE__ */ jsxs22(
2653
+ children: /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__picker-row", children: [
2654
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__microcopy", children: "CONNECTORS" }),
2655
+ connectors.map((c) => /* @__PURE__ */ jsxs23(
2401
2656
  "button",
2402
2657
  {
2403
2658
  type: "button",
@@ -2408,13 +2663,13 @@ function WorkflowShowcase({
2408
2663
  "aria-pressed": selected.includes(c.name),
2409
2664
  onClick: () => toggleConnector(c.name),
2410
2665
  children: [
2411
- /* @__PURE__ */ jsx24(ConnectorTile, { connector: c }),
2666
+ /* @__PURE__ */ jsx25(ConnectorTile, { connector: c }),
2412
2667
  c.name
2413
2668
  ]
2414
2669
  },
2415
2670
  c.name
2416
2671
  )),
2417
- /* @__PURE__ */ jsxs22("span", { className: "ods-showcase__microcopy ods-showcase__microcopy--faint", children: [
2672
+ /* @__PURE__ */ jsxs23("span", { className: "ods-showcase__microcopy ods-showcase__microcopy--faint", children: [
2418
2673
  "+ ",
2419
2674
  catalogNote,
2420
2675
  " IN THE APP"
@@ -2422,8 +2677,8 @@ function WorkflowShowcase({
2422
2677
  ] })
2423
2678
  }
2424
2679
  ) }),
2425
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__toolbar", children: [
2426
- /* @__PURE__ */ jsxs22(
2680
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__toolbar", children: [
2681
+ /* @__PURE__ */ jsxs23(
2427
2682
  "button",
2428
2683
  {
2429
2684
  type: "button",
@@ -2439,7 +2694,7 @@ function WorkflowShowcase({
2439
2694
  ]
2440
2695
  }
2441
2696
  ),
2442
- /* @__PURE__ */ jsxs22(
2697
+ /* @__PURE__ */ jsxs23(
2443
2698
  "button",
2444
2699
  {
2445
2700
  type: "button",
@@ -2454,7 +2709,7 @@ function WorkflowShowcase({
2454
2709
  ]
2455
2710
  }
2456
2711
  ),
2457
- manualTrigger === "SCHEDULE" && /* @__PURE__ */ jsxs22(
2712
+ manualTrigger === "SCHEDULE" && /* @__PURE__ */ jsxs23(
2458
2713
  "button",
2459
2714
  {
2460
2715
  type: "button",
@@ -2466,8 +2721,8 @@ function WorkflowShowcase({
2466
2721
  ]
2467
2722
  }
2468
2723
  ),
2469
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__model", children: modelLabel }),
2470
- /* @__PURE__ */ jsx24(
2724
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__model", children: modelLabel }),
2725
+ /* @__PURE__ */ jsx25(
2471
2726
  Button,
2472
2727
  {
2473
2728
  variant: "primary",
@@ -2477,8 +2732,8 @@ function WorkflowShowcase({
2477
2732
  }
2478
2733
  )
2479
2734
  ] }),
2480
- swap && swapRole && /* @__PURE__ */ jsxs22(Fragment6, { children: [
2481
- /* @__PURE__ */ jsx24(
2735
+ swap && swapRole && /* @__PURE__ */ jsxs23(Fragment7, { children: [
2736
+ /* @__PURE__ */ jsx25(
2482
2737
  "button",
2483
2738
  {
2484
2739
  type: "button",
@@ -2487,7 +2742,7 @@ function WorkflowShowcase({
2487
2742
  onClick: () => setSwap(null)
2488
2743
  }
2489
2744
  ),
2490
- /* @__PURE__ */ jsxs22(
2745
+ /* @__PURE__ */ jsxs23(
2491
2746
  "div",
2492
2747
  {
2493
2748
  className: "ods-showcase__swap",
@@ -2497,13 +2752,13 @@ function WorkflowShowcase({
2497
2752
  if (e.key === "Escape") setSwap(null);
2498
2753
  },
2499
2754
  children: [
2500
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__swap-head", children: [
2755
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__swap-head", children: [
2501
2756
  "SWAP ",
2502
2757
  swapRole.toUpperCase(),
2503
2758
  " \u2014 ",
2504
2759
  swap.name.toUpperCase()
2505
2760
  ] }),
2506
- swapItems.map((c) => /* @__PURE__ */ jsxs22(
2761
+ swapItems.map((c) => /* @__PURE__ */ jsxs23(
2507
2762
  "button",
2508
2763
  {
2509
2764
  type: "button",
@@ -2511,14 +2766,14 @@ function WorkflowShowcase({
2511
2766
  className: "ods-showcase__swap-item",
2512
2767
  onClick: () => doSwap(swap, c.name),
2513
2768
  children: [
2514
- /* @__PURE__ */ jsx24(ConnectorTile, { connector: c }),
2515
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__swap-name", children: c.name }),
2516
- c.name === swap.name && /* @__PURE__ */ jsx24("span", { className: "ods-showcase__swap-mark", children: "\u25CF CURRENT" })
2769
+ /* @__PURE__ */ jsx25(ConnectorTile, { connector: c }),
2770
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__swap-name", children: c.name }),
2771
+ c.name === swap.name && /* @__PURE__ */ jsx25("span", { className: "ods-showcase__swap-mark", children: "\u25CF CURRENT" })
2517
2772
  ]
2518
2773
  },
2519
2774
  c.name
2520
2775
  )),
2521
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__swap-foot", children: [
2776
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__swap-foot", children: [
2522
2777
  catalogNote,
2523
2778
  " CONNECTORS IN THE APP"
2524
2779
  ] })
@@ -2529,9 +2784,9 @@ function WorkflowShowcase({
2529
2784
  ]
2530
2785
  }
2531
2786
  ),
2532
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__examples", children: [
2533
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__microcopy", children: "TRY:" }),
2534
- examples.map((ex) => /* @__PURE__ */ jsx24(
2787
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__examples", children: [
2788
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__microcopy", children: "TRY:" }),
2789
+ examples.map((ex) => /* @__PURE__ */ jsx25(
2535
2790
  "button",
2536
2791
  {
2537
2792
  type: "button",
@@ -2542,30 +2797,30 @@ function WorkflowShowcase({
2542
2797
  ex.id
2543
2798
  ))
2544
2799
  ] }),
2545
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__canvas", children: [
2546
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__canvas-head", children: [
2547
- /* @__PURE__ */ jsxs22("span", { className: "ods-showcase__microcopy", children: [
2800
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__canvas", children: [
2801
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__canvas-head", children: [
2802
+ /* @__PURE__ */ jsxs23("span", { className: "ods-showcase__microcopy", children: [
2548
2803
  canvasLabel,
2549
2804
  " \xB7 ",
2550
2805
  canvasSub
2551
2806
  ] }),
2552
- /* @__PURE__ */ jsxs22("span", { className: cn("ods-showcase__badge", `ods-showcase__badge--${badge.tone}`), children: [
2553
- /* @__PURE__ */ jsx24("span", { className: cn("ods-showcase__dot", badge.pulse && "ods-showcase__dot--pulse") }),
2807
+ /* @__PURE__ */ jsxs23("span", { className: cn("ods-showcase__badge", `ods-showcase__badge--${badge.tone}`), children: [
2808
+ /* @__PURE__ */ jsx25("span", { className: cn("ods-showcase__dot", badge.pulse && "ods-showcase__dot--pulse") }),
2554
2809
  badge.label
2555
2810
  ] })
2556
2811
  ] }),
2557
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__stage", children: [
2558
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__rail", children: [
2559
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__rail-head", children: [
2560
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__microcopy", children: railLabel }),
2561
- /* @__PURE__ */ jsx24(
2812
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__stage", children: [
2813
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__rail", children: [
2814
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__rail-head", children: [
2815
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__microcopy", children: railLabel }),
2816
+ /* @__PURE__ */ jsx25(
2562
2817
  "span",
2563
2818
  {
2564
2819
  className: cn("ods-showcase__dot", badge.pulse && "ods-showcase__dot--pulse")
2565
2820
  }
2566
2821
  )
2567
2822
  ] }),
2568
- /* @__PURE__ */ jsx24("div", { className: "ods-showcase__rail-body", children: /* @__PURE__ */ jsx24(AnimatePresence2, { initial: false, children: activity.map((line) => /* @__PURE__ */ jsx24(
2823
+ /* @__PURE__ */ jsx25("div", { className: "ods-showcase__rail-body", children: /* @__PURE__ */ jsx25(AnimatePresence2, { initial: false, children: activity.map((line) => /* @__PURE__ */ jsx25(
2569
2824
  motion3.div,
2570
2825
  {
2571
2826
  className: cn("ods-showcase__act", `ods-showcase__act--${line.tone}`),
@@ -2577,7 +2832,7 @@ function WorkflowShowcase({
2577
2832
  },
2578
2833
  line.id
2579
2834
  )) }) }),
2580
- /* @__PURE__ */ jsx24(
2835
+ /* @__PURE__ */ jsx25(
2581
2836
  "div",
2582
2837
  {
2583
2838
  className: cn(
@@ -2589,7 +2844,7 @@ function WorkflowShowcase({
2589
2844
  }
2590
2845
  )
2591
2846
  ] }),
2592
- /* @__PURE__ */ jsx24(
2847
+ /* @__PURE__ */ jsx25(
2593
2848
  ShowcaseScene,
2594
2849
  {
2595
2850
  left: sceneLeft,
@@ -2608,11 +2863,11 @@ function WorkflowShowcase({
2608
2863
  }
2609
2864
  }
2610
2865
  ),
2611
- /* @__PURE__ */ jsx24("div", { className: "ods-showcase__metrics", children: metrics.map((m, idx) => {
2866
+ /* @__PURE__ */ jsx25("div", { className: "ods-showcase__metrics", children: metrics.map((m, idx) => {
2612
2867
  const revealed = settled || phase === "building" && shown > idx;
2613
2868
  const interim = m.buildingValue != null && !settled && revealed;
2614
- return /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__metric", children: [
2615
- /* @__PURE__ */ jsxs22(
2869
+ return /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__metric", children: [
2870
+ /* @__PURE__ */ jsxs23(
2616
2871
  "div",
2617
2872
  {
2618
2873
  className: cn(
@@ -2621,7 +2876,7 @@ function WorkflowShowcase({
2621
2876
  m.tone === "success" && settled && "ods-showcase__metric-value--success"
2622
2877
  ),
2623
2878
  children: [
2624
- settled ? /* @__PURE__ */ jsx24(
2879
+ settled ? /* @__PURE__ */ jsx25(
2625
2880
  CountUp,
2626
2881
  {
2627
2882
  value: m.value,
@@ -2634,17 +2889,17 @@ function WorkflowShowcase({
2634
2889
  }
2635
2890
  ) : interim ? `${m.prefix ?? ""}${m.buildingValue}` : "\u2014",
2636
2891
  revealed && m.suffix ? m.suffix : null,
2637
- revealed && m.unit ? /* @__PURE__ */ jsxs22("span", { className: "ods-showcase__metric-unit", children: [
2892
+ revealed && m.unit ? /* @__PURE__ */ jsxs23("span", { className: "ods-showcase__metric-unit", children: [
2638
2893
  " ",
2639
2894
  m.unit
2640
2895
  ] }) : null
2641
2896
  ]
2642
2897
  }
2643
2898
  ),
2644
- /* @__PURE__ */ jsx24("div", { className: "ods-showcase__microcopy", children: m.label })
2899
+ /* @__PURE__ */ jsx25("div", { className: "ods-showcase__microcopy", children: m.label })
2645
2900
  ] }, m.id);
2646
2901
  }) }),
2647
- /* @__PURE__ */ jsx24(
2902
+ /* @__PURE__ */ jsx25(
2648
2903
  ShowcaseSignup,
2649
2904
  {
2650
2905
  phase,
@@ -2663,20 +2918,20 @@ function WorkflowShowcase({
2663
2918
  )
2664
2919
  ] })
2665
2920
  ] }),
2666
- /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__outro", "aria-live": "polite", children: [
2667
- buildingNow && /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__building", children: [
2668
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__spin", "aria-hidden": "true", children: "\u27F3" }),
2921
+ /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__outro", "aria-live": "polite", children: [
2922
+ buildingNow && /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__building", children: [
2923
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__spin", "aria-hidden": "true", children: "\u27F3" }),
2669
2924
  " ",
2670
2925
  status
2671
2926
  ] }),
2672
- phase === "done" && /* @__PURE__ */ jsxs22("div", { className: "ods-showcase__done", children: [
2673
- /* @__PURE__ */ jsxs22(motion3.div, { className: "ods-showcase__done-note", ...rise(0), children: [
2927
+ phase === "done" && /* @__PURE__ */ jsxs23("div", { className: "ods-showcase__done", children: [
2928
+ /* @__PURE__ */ jsxs23(motion3.div, { className: "ods-showcase__done-note", ...rise(0), children: [
2674
2929
  "\u2713 ",
2675
2930
  doneNote
2676
2931
  ] }),
2677
- /* @__PURE__ */ jsxs22(motion3.div, { className: "ods-showcase__cta", ...rise(0.2), children: [
2678
- /* @__PURE__ */ jsx24("span", { className: "ods-showcase__cta-copy", children: "Deploy it on your own data \u2014 takes 2 minutes." }),
2679
- /* @__PURE__ */ jsx24(
2932
+ /* @__PURE__ */ jsxs23(motion3.div, { className: "ods-showcase__cta", ...rise(0.2), children: [
2933
+ /* @__PURE__ */ jsx25("span", { className: "ods-showcase__cta-copy", children: "Deploy it on your own data \u2014 takes 2 minutes." }),
2934
+ /* @__PURE__ */ jsx25(
2680
2935
  Button,
2681
2936
  {
2682
2937
  variant: "primary",
@@ -2688,7 +2943,7 @@ function WorkflowShowcase({
2688
2943
  children: "Create free account \u2192"
2689
2944
  }
2690
2945
  ),
2691
- /* @__PURE__ */ jsx24("a", { className: "ods-showcase__text-link", href: onboardingHref, children: "Book onboarding \u2192" })
2946
+ /* @__PURE__ */ jsx25("a", { className: "ods-showcase__text-link", href: onboardingHref, children: "Book onboarding \u2192" })
2692
2947
  ] })
2693
2948
  ] })
2694
2949
  ] })
@@ -2697,6 +2952,7 @@ function WorkflowShowcase({
2697
2952
  export {
2698
2953
  ActionGlyph,
2699
2954
  AssistantTranscript,
2955
+ AssistantWidget,
2700
2956
  BackedBy,
2701
2957
  BetaAccessForm,
2702
2958
  BlogGrid,