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