@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.
- package/dist/chunk-23K2RF7Z.js +2694 -0
- package/dist/chunk-23K2RF7Z.js.map +1 -0
- package/dist/chunk-H3FCGN4P.js +6628 -0
- package/dist/chunk-H3FCGN4P.js.map +1 -0
- package/dist/chunk-ISJSOF3Z.js +3646 -0
- package/dist/chunk-ISJSOF3Z.js.map +1 -0
- package/dist/chunk-KSIZ7DLS.js +3582 -0
- package/dist/chunk-KSIZ7DLS.js.map +1 -0
- package/dist/chunk-NAG3EFQ6.js +6789 -0
- package/dist/chunk-NAG3EFQ6.js.map +1 -0
- package/dist/chunk-NMZWNZV7.js +1547 -0
- package/dist/chunk-NMZWNZV7.js.map +1 -0
- package/dist/chunk-QWOH2E3F.js +3189 -0
- package/dist/chunk-QWOH2E3F.js.map +1 -0
- package/dist/chunk-V22HCPVO.js +2856 -0
- package/dist/chunk-V22HCPVO.js.map +1 -0
- package/dist/chunk-VGAUSBP4.js +3181 -0
- package/dist/chunk-VGAUSBP4.js.map +1 -0
- package/dist/chunk-WTIM6E4X.js +3677 -0
- package/dist/chunk-WTIM6E4X.js.map +1 -0
- package/dist/chunk-XUBJHPJT.js +3680 -0
- package/dist/chunk-XUBJHPJT.js.map +1 -0
- package/dist/components/AgentCard/AgentCard.d.ts.map +1 -1
- package/dist/components/AssistantAura/AssistantAura.d.ts +21 -0
- package/dist/components/AssistantAura/AssistantAura.d.ts.map +1 -0
- package/dist/components/AssistantAura/index.d.ts +2 -0
- package/dist/components/AssistantAura/index.d.ts.map +1 -0
- package/dist/components/AssistantConversation/AssistantConversation.d.ts +112 -0
- package/dist/components/AssistantConversation/AssistantConversation.d.ts.map +1 -0
- package/dist/components/AssistantConversation/assistant.fixtures.d.ts +29 -0
- package/dist/components/AssistantConversation/assistant.fixtures.d.ts.map +1 -0
- package/dist/components/AssistantConversation/assistantGlyphs.d.ts +13 -0
- package/dist/components/AssistantConversation/assistantGlyphs.d.ts.map +1 -0
- package/dist/components/AssistantConversation/index.d.ts +2 -0
- package/dist/components/AssistantConversation/index.d.ts.map +1 -0
- package/dist/components/AssistantDock/AssistantDock.d.ts +25 -0
- package/dist/components/AssistantDock/AssistantDock.d.ts.map +1 -0
- package/dist/components/AssistantDock/index.d.ts +2 -0
- package/dist/components/AssistantDock/index.d.ts.map +1 -0
- package/dist/components/AssistantOrb/AssistantOrb.d.ts +14 -0
- package/dist/components/AssistantOrb/AssistantOrb.d.ts.map +1 -0
- package/dist/components/AssistantOrb/explorations/OvaIconConcepts.d.ts +22 -0
- package/dist/components/AssistantOrb/explorations/OvaIconConcepts.d.ts.map +1 -0
- package/dist/components/AssistantOrb/index.d.ts +2 -0
- package/dist/components/AssistantOrb/index.d.ts.map +1 -0
- package/dist/components/AssistantTrigger/AssistantTrigger.d.ts +17 -0
- package/dist/components/AssistantTrigger/AssistantTrigger.d.ts.map +1 -0
- package/dist/components/AssistantTrigger/index.d.ts +2 -0
- package/dist/components/AssistantTrigger/index.d.ts.map +1 -0
- package/dist/components/ChatComposer/ChatComposer.d.ts +8 -0
- package/dist/components/ChatComposer/ChatComposer.d.ts.map +1 -1
- package/dist/components/ChatDocPreview/ChatDocPreview.d.ts +20 -0
- package/dist/components/ChatDocPreview/ChatDocPreview.d.ts.map +1 -0
- package/dist/components/ChatDocPreview/index.d.ts +2 -0
- package/dist/components/ChatDocPreview/index.d.ts.map +1 -0
- package/dist/components/ChatInputRequest/ChatInputRequest.d.ts +68 -0
- package/dist/components/ChatInputRequest/ChatInputRequest.d.ts.map +1 -0
- package/dist/components/ChatInputRequest/index.d.ts +2 -0
- package/dist/components/ChatInputRequest/index.d.ts.map +1 -0
- package/dist/components/ChatLinkPreview/ChatLinkPreview.d.ts +33 -0
- package/dist/components/ChatLinkPreview/ChatLinkPreview.d.ts.map +1 -0
- package/dist/components/ChatLinkPreview/index.d.ts +2 -0
- package/dist/components/ChatLinkPreview/index.d.ts.map +1 -0
- package/dist/components/ChatSources/ChatSources.d.ts +10 -1
- package/dist/components/ChatSources/ChatSources.d.ts.map +1 -1
- package/dist/components/ChatSources/index.d.ts +1 -1
- package/dist/components/ChatSources/index.d.ts.map +1 -1
- package/dist/components/ChatVideoPreview/ChatVideoPreview.d.ts +37 -0
- package/dist/components/ChatVideoPreview/ChatVideoPreview.d.ts.map +1 -0
- package/dist/components/ChatVideoPreview/index.d.ts +2 -0
- package/dist/components/ChatVideoPreview/index.d.ts.map +1 -0
- package/dist/components/TruncatedText/TruncatedText.d.ts +15 -0
- package/dist/components/TruncatedText/TruncatedText.d.ts.map +1 -0
- package/dist/components/TruncatedText/index.d.ts +2 -0
- package/dist/components/TruncatedText/index.d.ts.map +1 -0
- package/dist/index.cjs +7716 -6548
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4742 -5654
- package/dist/index.js.map +1 -1
- package/dist/marketing/components/AssistantWidget/AssistantWidget.d.ts +60 -0
- package/dist/marketing/components/AssistantWidget/AssistantWidget.d.ts.map +1 -0
- package/dist/marketing/index.d.ts +1 -0
- package/dist/marketing/index.d.ts.map +1 -1
- package/dist/marketing.cjs +3710 -1196
- package/dist/marketing.cjs.map +1 -1
- package/dist/marketing.js +738 -482
- package/dist/marketing.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/workflow.js +2 -2
- 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
|
-
|
|
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-
|
|
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
|
|
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__ */
|
|
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__ */
|
|
67
|
-
/* @__PURE__ */
|
|
68
|
-
note && /* @__PURE__ */
|
|
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
|
|
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 =
|
|
275
|
-
const [values, setValues] =
|
|
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] =
|
|
287
|
-
const [error, setError] =
|
|
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__ */
|
|
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__ */
|
|
589
|
+
/* @__PURE__ */ jsxs4("p", { className: "ods-mkt-access__success-mark", children: [
|
|
335
590
|
"\u2713 ",
|
|
336
591
|
successTitle
|
|
337
592
|
] }),
|
|
338
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
352
|
-
/* @__PURE__ */
|
|
353
|
-
subtitle && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
364
|
-
/* @__PURE__ */
|
|
365
|
-
/* @__PURE__ */
|
|
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__ */
|
|
378
|
-
/* @__PURE__ */
|
|
379
|
-
/* @__PURE__ */
|
|
380
|
-
/* @__PURE__ */
|
|
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__ */
|
|
393
|
-
/* @__PURE__ */
|
|
394
|
-
/* @__PURE__ */
|
|
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__ */
|
|
408
|
-
/* @__PURE__ */
|
|
409
|
-
/* @__PURE__ */
|
|
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__ */
|
|
423
|
-
/* @__PURE__ */
|
|
424
|
-
/* @__PURE__ */
|
|
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__ */
|
|
437
|
-
/* @__PURE__ */
|
|
438
|
-
/* @__PURE__ */
|
|
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__ */
|
|
451
|
-
/* @__PURE__ */
|
|
452
|
-
/* @__PURE__ */
|
|
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__ */
|
|
465
|
-
/* @__PURE__ */
|
|
466
|
-
/* @__PURE__ */
|
|
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__ */
|
|
479
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
515
|
-
footnote && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
532
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
552
|
-
import { jsx as
|
|
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 =
|
|
566
|
-
const [values, setValues] =
|
|
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] =
|
|
575
|
-
const [error, setError] =
|
|
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__ */
|
|
607
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
616
|
-
/* @__PURE__ */
|
|
617
|
-
/* @__PURE__ */
|
|
618
|
-
subtitle && /* @__PURE__ */
|
|
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__ */
|
|
621
|
-
/* @__PURE__ */
|
|
622
|
-
/* @__PURE__ */
|
|
623
|
-
/* @__PURE__ */
|
|
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__ */
|
|
636
|
-
/* @__PURE__ */
|
|
637
|
-
/* @__PURE__ */
|
|
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__ */
|
|
651
|
-
/* @__PURE__ */
|
|
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__ */
|
|
908
|
+
/* @__PURE__ */ jsx6("span", { className: "ods-mkt-contact__optional", children: "(optional)" })
|
|
654
909
|
] }),
|
|
655
|
-
/* @__PURE__ */
|
|
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__ */
|
|
668
|
-
/* @__PURE__ */
|
|
669
|
-
/* @__PURE__ */
|
|
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__ */
|
|
935
|
+
selectedTopic?.hint && /* @__PURE__ */ jsx6("p", { className: "ods-mkt-contact__topic-hint", children: selectedTopic.hint })
|
|
681
936
|
] }),
|
|
682
|
-
/* @__PURE__ */
|
|
683
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
707
|
-
/* @__PURE__ */
|
|
708
|
-
footnote && /* @__PURE__ */
|
|
709
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
752
|
-
/* @__PURE__ */
|
|
753
|
-
lede && /* @__PURE__ */
|
|
754
|
-
/* @__PURE__ */
|
|
755
|
-
/* @__PURE__ */
|
|
756
|
-
secondary && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
808
|
-
item.icon && /* @__PURE__ */
|
|
809
|
-
/* @__PURE__ */
|
|
810
|
-
/* @__PURE__ */
|
|
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
|
|
819
|
-
import { Fragment as
|
|
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__ */
|
|
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] =
|
|
833
|
-
const [activeCategory, setActiveCategory] =
|
|
834
|
-
const [email, setEmail] =
|
|
835
|
-
const [requestState, setRequestState] =
|
|
836
|
-
const [emailError, setEmailError] =
|
|
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__ */
|
|
883
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
898
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1164
|
+
/* @__PURE__ */ jsx10("span", { className: "ods-mkt-finder__count", children: items.length })
|
|
910
1165
|
]
|
|
911
1166
|
}
|
|
912
1167
|
),
|
|
913
|
-
pillCategories.map((category) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
932
|
-
/* @__PURE__ */
|
|
933
|
-
/* @__PURE__ */
|
|
934
|
-
(item.kind ?? "native") === "universal" && /* @__PURE__ */
|
|
935
|
-
] }, item.name)) }) : /* @__PURE__ */
|
|
936
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1194
|
+
/* @__PURE__ */ jsx10("strong", { children: query.trim() }),
|
|
940
1195
|
" connector is available."
|
|
941
|
-
] }) : /* @__PURE__ */
|
|
942
|
-
/* @__PURE__ */
|
|
1196
|
+
] }) : /* @__PURE__ */ jsxs9(Fragment3, { children: [
|
|
1197
|
+
/* @__PURE__ */ jsxs9("h3", { className: "ods-mkt-finder__miss-title", children: [
|
|
943
1198
|
"No native ",
|
|
944
|
-
/* @__PURE__ */
|
|
1199
|
+
/* @__PURE__ */ jsx10("strong", { children: query.trim() }),
|
|
945
1200
|
" connector yet"
|
|
946
1201
|
] }),
|
|
947
|
-
/* @__PURE__ */
|
|
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__ */
|
|
952
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1222
|
+
/* @__PURE__ */ jsx10(Button, { type: "submit", variant: "primary", loading: requestState === "sending", children: "Request connector" })
|
|
968
1223
|
] }),
|
|
969
|
-
requestState === "error" && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
984
|
-
/* @__PURE__ */
|
|
985
|
-
/* @__PURE__ */
|
|
986
|
-
category.icon && /* @__PURE__ */
|
|
987
|
-
/* @__PURE__ */
|
|
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__ */
|
|
990
|
-
item.icon && /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
1255
|
+
import { jsx as jsx12, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1001
1256
|
function PendingGlyph() {
|
|
1002
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1276
|
+
return /* @__PURE__ */ jsx12(CheckmarkIcon2, { size: "sm", "aria-hidden": "true" });
|
|
1022
1277
|
case "running":
|
|
1023
|
-
return /* @__PURE__ */
|
|
1278
|
+
return /* @__PURE__ */ jsx12(Spinner, { size: "sm" });
|
|
1024
1279
|
case "error":
|
|
1025
|
-
return /* @__PURE__ */
|
|
1280
|
+
return /* @__PURE__ */ jsx12(CloseIcon, { size: "sm", "aria-hidden": "true" });
|
|
1026
1281
|
case "queued":
|
|
1027
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
1039
|
-
/* @__PURE__ */
|
|
1040
|
-
/* @__PURE__ */
|
|
1041
|
-
badge != null && /* @__PURE__ */
|
|
1042
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1301
|
+
/* @__PURE__ */ jsx12("div", { className: "ods-mkt-console__body", children: lines.map((line, i) => {
|
|
1047
1302
|
const state = line.state ?? "done";
|
|
1048
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1314
|
+
children: /* @__PURE__ */ jsx12(StateGlyph, { state })
|
|
1060
1315
|
}
|
|
1061
1316
|
),
|
|
1062
|
-
/* @__PURE__ */
|
|
1063
|
-
/* @__PURE__ */
|
|
1064
|
-
line.detail && /* @__PURE__ */
|
|
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
|
|
1343
|
+
import { jsx as jsx13, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1089
1344
|
function Track({ items, hidden }) {
|
|
1090
|
-
return /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1107
|
-
/* @__PURE__ */
|
|
1108
|
-
/* @__PURE__ */
|
|
1109
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
1129
|
-
/* @__PURE__ */
|
|
1130
|
-
/* @__PURE__ */
|
|
1131
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1136
|
-
/* @__PURE__ */
|
|
1137
|
-
/* @__PURE__ */
|
|
1138
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1150
|
-
/* @__PURE__ */
|
|
1151
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1156
|
-
/* @__PURE__ */
|
|
1157
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1418
|
+
return /* @__PURE__ */ jsx14(SourceGlyph, { size });
|
|
1164
1419
|
case "destination":
|
|
1165
|
-
return /* @__PURE__ */
|
|
1420
|
+
return /* @__PURE__ */ jsx14(DestinationGlyph, { size });
|
|
1166
1421
|
case "action":
|
|
1167
|
-
return /* @__PURE__ */
|
|
1422
|
+
return /* @__PURE__ */ jsx14(ActionGlyph, { size });
|
|
1168
1423
|
case "notify":
|
|
1169
|
-
return /* @__PURE__ */
|
|
1424
|
+
return /* @__PURE__ */ jsx14(NotifyGlyph, { size });
|
|
1170
1425
|
}
|
|
1171
1426
|
}
|
|
1172
1427
|
|
|
1173
1428
|
// src/marketing/components/MarketingFooter/MarketingFooter.tsx
|
|
1174
|
-
import { Fragment as
|
|
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__ */
|
|
1187
|
-
/* @__PURE__ */
|
|
1188
|
-
/* @__PURE__ */
|
|
1189
|
-
/* @__PURE__ */
|
|
1190
|
-
/* @__PURE__ */
|
|
1191
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1194
|
-
meta && /* @__PURE__ */
|
|
1195
|
-
newsletter && /* @__PURE__ */
|
|
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__ */
|
|
1198
|
-
/* @__PURE__ */
|
|
1199
|
-
column.links.map((link) => /* @__PURE__ */
|
|
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__ */
|
|
1203
|
-
/* @__PURE__ */
|
|
1204
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1230
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1281
|
-
import { Fragment as
|
|
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__ */
|
|
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__ */
|
|
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] =
|
|
1308
|
-
return /* @__PURE__ */
|
|
1309
|
-
/* @__PURE__ */
|
|
1310
|
-
/* @__PURE__ */
|
|
1311
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1324
|
-
(links.length > 0 || actions) && /* @__PURE__ */
|
|
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__ */
|
|
1587
|
+
children: /* @__PURE__ */ jsx17(BurgerGlyph, { open: mobileOpen })
|
|
1333
1588
|
}
|
|
1334
1589
|
),
|
|
1335
|
-
mobileOpen && /* @__PURE__ */
|
|
1336
|
-
links.map((link) => /* @__PURE__ */
|
|
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__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1381
|
-
kicker && /* @__PURE__ */
|
|
1382
|
-
title && /* @__PURE__ */
|
|
1383
|
-
lede && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1409
|
-
/* @__PURE__ */
|
|
1410
|
-
subtitle && /* @__PURE__ */
|
|
1411
|
-
actions && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1439
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1448
|
-
/* @__PURE__ */
|
|
1449
|
-
/* @__PURE__ */
|
|
1450
|
-
/* @__PURE__ */
|
|
1451
|
-
tier.period && /* @__PURE__ */
|
|
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__ */
|
|
1454
|
-
tier.description && /* @__PURE__ */
|
|
1455
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1458
|
-
/* @__PURE__ */
|
|
1459
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1717
|
+
/* @__PURE__ */ jsx20(TierCta, { cta: tier.cta, featured: Boolean(tier.featured) })
|
|
1463
1718
|
]
|
|
1464
1719
|
},
|
|
1465
1720
|
tier.id
|
|
1466
1721
|
)) }),
|
|
1467
|
-
note && /* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
1482
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1747
|
+
) : /* @__PURE__ */ jsxs20(Fragment6, { children: [
|
|
1493
1748
|
item.prefix,
|
|
1494
1749
|
item.value,
|
|
1495
1750
|
item.suffix
|
|
1496
1751
|
] }) }),
|
|
1497
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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__ */
|
|
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
|
|
1788
|
+
useCallback as useCallback2,
|
|
1789
|
+
useEffect as useEffect3,
|
|
1535
1790
|
useMemo as useMemo2,
|
|
1536
|
-
useRef as
|
|
1537
|
-
useState as
|
|
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
|
|
1542
|
-
import { jsx as
|
|
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__ */
|
|
1579
|
-
/* @__PURE__ */
|
|
1580
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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] =
|
|
1615
|
-
const pulseTimer =
|
|
1616
|
-
|
|
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__ */
|
|
1685
|
-
/* @__PURE__ */
|
|
1686
|
-
/* @__PURE__ */
|
|
1687
|
-
pins.map((pin) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1707
|
-
/* @__PURE__ */
|
|
1708
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1736
|
-
/* @__PURE__ */
|
|
1737
|
-
/* @__PURE__ */
|
|
1738
|
-
/* @__PURE__ */
|
|
1739
|
-
tiles.slice(0, 8).map((label, i) => /* @__PURE__ */
|
|
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__ */
|
|
1746
|
-
/* @__PURE__ */
|
|
1747
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1750
|
-
/* @__PURE__ */
|
|
1751
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1757
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1769
|
-
/* @__PURE__ */
|
|
1770
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1773
|
-
/* @__PURE__ */
|
|
1774
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1780
|
-
/* @__PURE__ */
|
|
1781
|
-
/* @__PURE__ */
|
|
1782
|
-
!left.length && /* @__PURE__ */
|
|
1783
|
-
!right.length && /* @__PURE__ */
|
|
1784
|
-
left.map((node, i) => /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1800
|
-
/* @__PURE__ */
|
|
1801
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1804
|
-
/* @__PURE__ */
|
|
1805
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
1828
|
-
/* @__PURE__ */
|
|
1829
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1832
|
-
/* @__PURE__ */
|
|
1833
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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
|
|
2102
|
+
import { useId as useId4, useState as useState7 } from "react";
|
|
1848
2103
|
import { FocusScope } from "react-aria";
|
|
1849
|
-
import { jsx as
|
|
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 =
|
|
1868
|
-
const subtitleId =
|
|
1869
|
-
const [values, setValues] =
|
|
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__ */
|
|
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__ */
|
|
1895
|
-
phase === "signup" && /* @__PURE__ */
|
|
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__ */
|
|
1911
|
-
/* @__PURE__ */
|
|
1912
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1919
|
-
/* @__PURE__ */
|
|
1920
|
-
/* @__PURE__ */
|
|
1921
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1933
|
-
/* @__PURE__ */
|
|
1934
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1947
|
-
/* @__PURE__ */
|
|
1948
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1960
|
-
/* @__PURE__ */
|
|
1961
|
-
/* @__PURE__ */
|
|
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__ */
|
|
1973
|
-
/* @__PURE__ */
|
|
1974
|
-
/* @__PURE__ */
|
|
1975
|
-
/* @__PURE__ */
|
|
1976
|
-
/* @__PURE__ */
|
|
1977
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
1993
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2012
|
-
/* @__PURE__ */
|
|
2013
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2273
|
+
/* @__PURE__ */ jsxs22("p", { className: "ods-showcase__welcome-body", children: [
|
|
2019
2274
|
"We emailed a sign-in link to ",
|
|
2020
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2030
|
-
/* @__PURE__ */
|
|
2031
|
-
/* @__PURE__ */
|
|
2032
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2289
|
+
/* @__PURE__ */ jsxs22("span", { className: "ods-showcase__microcopy ods-showcase__microcopy--right", children: [
|
|
2035
2290
|
"PRIVATE BETA",
|
|
2036
|
-
/* @__PURE__ */
|
|
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
|
|
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__ */
|
|
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] =
|
|
2342
|
+
const [prompt, setPrompt] = useState8(
|
|
2088
2343
|
defaultPrompt || (rotationActive ? examples[0]?.prompt ?? "" : "")
|
|
2089
2344
|
);
|
|
2090
|
-
const [engagedWithPrompt, setEngagedWithPrompt] =
|
|
2091
|
-
const [promptHovered, setPromptHovered] =
|
|
2092
|
-
const [promptFocused, setPromptFocused] =
|
|
2093
|
-
const rotateIdx =
|
|
2094
|
-
const [selected, setSelected] =
|
|
2095
|
-
const [phase, setPhase] =
|
|
2096
|
-
const [shown, setShown] =
|
|
2097
|
-
const [status, setStatus] =
|
|
2098
|
-
const [pickerOpen, setPickerOpen] =
|
|
2099
|
-
const [schedIdx, setSchedIdx] =
|
|
2100
|
-
const [swap, setSwap] =
|
|
2101
|
-
const [signupError, setSignupError] =
|
|
2102
|
-
const signupReturnPhase =
|
|
2103
|
-
const cardRef =
|
|
2104
|
-
const timers =
|
|
2105
|
-
const clearTimers =
|
|
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
|
-
|
|
2364
|
+
useEffect3(() => clearTimers, [clearTimers]);
|
|
2110
2365
|
const tempo = reducedMotion ? 0.35 : 1;
|
|
2111
|
-
const at =
|
|
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 =
|
|
2118
|
-
|
|
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 =
|
|
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] =
|
|
2397
|
+
const [triggerIdx, setTriggerIdx] = useState8(0);
|
|
2143
2398
|
const manualTrigger = triggers[triggerIdx];
|
|
2144
2399
|
const cadenceShown = manualTrigger === "SCHEDULE" ? scheduleShown : manualTrigger;
|
|
2145
|
-
|
|
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 =
|
|
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 =
|
|
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__ */
|
|
2312
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2321
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2339
|
-
(seg, i) => seg.connector ? /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2615
|
+
/* @__PURE__ */ jsx25("span", { children: seg.text }, i)
|
|
2361
2616
|
)
|
|
2362
|
-
) : /* @__PURE__ */
|
|
2363
|
-
/* @__PURE__ */
|
|
2364
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2368
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2399
|
-
/* @__PURE__ */
|
|
2400
|
-
connectors.map((c) => /* @__PURE__ */
|
|
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__ */
|
|
2666
|
+
/* @__PURE__ */ jsx25(ConnectorTile, { connector: c }),
|
|
2412
2667
|
c.name
|
|
2413
2668
|
]
|
|
2414
2669
|
},
|
|
2415
2670
|
c.name
|
|
2416
2671
|
)),
|
|
2417
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2426
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2470
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2481
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2515
|
-
/* @__PURE__ */
|
|
2516
|
-
c.name === swap.name && /* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
2533
|
-
/* @__PURE__ */
|
|
2534
|
-
examples.map((ex) => /* @__PURE__ */
|
|
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__ */
|
|
2546
|
-
/* @__PURE__ */
|
|
2547
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2553
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2558
|
-
/* @__PURE__ */
|
|
2559
|
-
/* @__PURE__ */
|
|
2560
|
-
/* @__PURE__ */
|
|
2561
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2615
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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__ */
|
|
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__ */
|
|
2899
|
+
/* @__PURE__ */ jsx25("div", { className: "ods-showcase__microcopy", children: m.label })
|
|
2645
2900
|
] }, m.id);
|
|
2646
2901
|
}) }),
|
|
2647
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2667
|
-
buildingNow && /* @__PURE__ */
|
|
2668
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2673
|
-
/* @__PURE__ */
|
|
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__ */
|
|
2678
|
-
/* @__PURE__ */
|
|
2679
|
-
/* @__PURE__ */
|
|
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__ */
|
|
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,
|