@octaviaflow/core 3.1.0-beta.71 → 3.1.0-beta.72

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/marketing.js CHANGED
@@ -249,11 +249,12 @@ function isValidEmail(value) {
249
249
  }
250
250
 
251
251
  // src/marketing/components/BetaAccessForm/BetaAccessForm.tsx
252
- import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
252
+ import { Fragment, jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
253
253
  function BetaAccessForm({
254
254
  title = "Request early access",
255
255
  subtitle = "CURRENTLY IN PRIVATE BETA \u2014 WE REVIEW ACCESS REQUESTS WEEKLY",
256
256
  fields = "email",
257
+ nameLayout = "single",
257
258
  appearance = "card",
258
259
  teamSizes,
259
260
  plans,
@@ -274,6 +275,8 @@ function BetaAccessForm({
274
275
  const [values, setValues] = useState({
275
276
  email: "",
276
277
  name: "",
278
+ firstName: "",
279
+ lastName: "",
277
280
  company: "",
278
281
  teamSize: "",
279
282
  plan: defaultPlan ?? "",
@@ -289,10 +292,14 @@ function BetaAccessForm({
289
292
  setError("Please enter a valid work email.");
290
293
  return;
291
294
  }
292
- if (fields === "full" && !values.name?.trim()) {
295
+ if (fields === "full" && nameLayout === "single" && !values.name?.trim()) {
293
296
  setError("Please enter your name.");
294
297
  return;
295
298
  }
299
+ if (fields === "full" && nameLayout === "split" && !values.firstName?.trim()) {
300
+ setError("Please enter your first name.");
301
+ return;
302
+ }
296
303
  if (fields === "full" && teamSizes?.length && !values.teamSize) {
297
304
  setError("Please select your team size.");
298
305
  return;
@@ -353,7 +360,7 @@ function BetaAccessForm({
353
360
  fields === "full" && "ods-mkt-access__fields--full"
354
361
  ),
355
362
  children: [
356
- fields === "full" && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
363
+ fields === "full" && nameLayout === "single" && /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
357
364
  /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-name`, children: "Full name" }),
358
365
  /* @__PURE__ */ jsx3(
359
366
  Input,
@@ -367,6 +374,36 @@ function BetaAccessForm({
367
374
  }
368
375
  )
369
376
  ] }),
377
+ fields === "full" && nameLayout === "split" && /* @__PURE__ */ jsxs3(Fragment, { children: [
378
+ /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
379
+ /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-firstname`, children: "First name" }),
380
+ /* @__PURE__ */ jsx3(
381
+ Input,
382
+ {
383
+ id: `${uid}-firstname`,
384
+ autoComplete: "given-name",
385
+ placeholder: "Ada",
386
+ value: values.firstName ?? "",
387
+ onChange: (e) => setValues((v) => ({ ...v, firstName: e.target.value })),
388
+ disabled: busy
389
+ }
390
+ )
391
+ ] }),
392
+ /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
393
+ /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-lastname`, children: "Last name" }),
394
+ /* @__PURE__ */ jsx3(
395
+ Input,
396
+ {
397
+ id: `${uid}-lastname`,
398
+ autoComplete: "family-name",
399
+ placeholder: "Lovelace",
400
+ value: values.lastName ?? "",
401
+ onChange: (e) => setValues((v) => ({ ...v, lastName: e.target.value })),
402
+ disabled: busy
403
+ }
404
+ )
405
+ ] })
406
+ ] }),
370
407
  /* @__PURE__ */ jsxs3("div", { className: "ods-mkt-access__field", children: [
371
408
  /* @__PURE__ */ jsx3("label", { className: "ods-mkt-access__label", htmlFor: `${uid}-email`, children: "Work email" }),
372
409
  /* @__PURE__ */ jsx3(
@@ -657,7 +694,7 @@ function ContactForm({
657
694
  {
658
695
  id: `${uid}-message`,
659
696
  "aria-labelledby": `${uid}-message-label`,
660
- placeholder: "What are you trying to build?",
697
+ placeholder: selectedTopic?.messagePlaceholder ?? "What are you trying to build?",
661
698
  rows: 4,
662
699
  value: values.message,
663
700
  onChange: (e) => setValues((v) => ({ ...v, message: e.target.value })),
@@ -779,7 +816,7 @@ function FeatureGrid({
779
816
  // src/marketing/components/IntegrationsFinder/IntegrationsFinder.tsx
780
817
  import { CheckmarkIcon, SearchIcon } from "@octaviaflow/icons";
781
818
  import { useMemo, useState as useState3 } from "react";
782
- import { Fragment, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
819
+ import { Fragment as Fragment2, jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
783
820
  function LetterTile({ name }) {
784
821
  return /* @__PURE__ */ jsx9("span", { className: "ods-mkt-finder__letter", "aria-hidden": "true", children: name.trim().charAt(0).toUpperCase() });
785
822
  }
@@ -901,7 +938,7 @@ function IntegrationsFinder({
901
938
  " ",
902
939
  /* @__PURE__ */ jsx9("strong", { children: query.trim() }),
903
940
  " connector is available."
904
- ] }) : /* @__PURE__ */ jsxs8(Fragment, { children: [
941
+ ] }) : /* @__PURE__ */ jsxs8(Fragment2, { children: [
905
942
  /* @__PURE__ */ jsxs8("h3", { className: "ods-mkt-finder__miss-title", children: [
906
943
  "No native ",
907
944
  /* @__PURE__ */ jsx9("strong", { children: query.trim() }),
@@ -1134,7 +1171,7 @@ function roleGlyph(role, size = 12) {
1134
1171
  }
1135
1172
 
1136
1173
  // src/marketing/components/MarketingFooter/MarketingFooter.tsx
1137
- import { Fragment as Fragment2, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1174
+ import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs13 } from "react/jsx-runtime";
1138
1175
  function MarketingFooter({
1139
1176
  brand,
1140
1177
  tagline,
@@ -1149,7 +1186,7 @@ function MarketingFooter({
1149
1186
  return /* @__PURE__ */ jsxs13("footer", { ...rest, className: cn("ods-mkt-footer", className), children: [
1150
1187
  /* @__PURE__ */ jsxs13("div", { className: "ods-mkt-footer__grid", children: [
1151
1188
  /* @__PURE__ */ jsxs13("div", { className: "ods-mkt-footer__brand-col", children: [
1152
- /* @__PURE__ */ jsx14("div", { className: "ods-mkt-footer__brand", children: brand ?? /* @__PURE__ */ jsxs13(Fragment2, { children: [
1189
+ /* @__PURE__ */ jsx14("div", { className: "ods-mkt-footer__brand", children: brand ?? /* @__PURE__ */ jsxs13(Fragment3, { children: [
1153
1190
  /* @__PURE__ */ jsx14(BrandMark, { size: 16 }),
1154
1191
  /* @__PURE__ */ jsx14("span", { children: "OctaviaFlow" })
1155
1192
  ] }) }),
@@ -1241,7 +1278,7 @@ function MarketingHero({
1241
1278
 
1242
1279
  // src/marketing/components/MarketingNav/MarketingNav.tsx
1243
1280
  import { useState as useState4 } from "react";
1244
- import { Fragment as Fragment3, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
1281
+ import { Fragment as Fragment4, jsx as jsx16, jsxs as jsxs15 } from "react/jsx-runtime";
1245
1282
  function BurgerGlyph({ open }) {
1246
1283
  return /* @__PURE__ */ jsx16(
1247
1284
  "svg",
@@ -1269,7 +1306,7 @@ function MarketingNav({
1269
1306
  }) {
1270
1307
  const [mobileOpen, setMobileOpen] = useState4(false);
1271
1308
  return /* @__PURE__ */ jsxs15("header", { ...rest, className: cn("ods-mkt-nav", sticky && "ods-mkt-nav--sticky", className), children: [
1272
- /* @__PURE__ */ jsx16("a", { className: "ods-mkt-nav__brand", href: brandHref, children: brand ?? /* @__PURE__ */ jsxs15(Fragment3, { children: [
1309
+ /* @__PURE__ */ jsx16("a", { className: "ods-mkt-nav__brand", href: brandHref, children: brand ?? /* @__PURE__ */ jsxs15(Fragment4, { children: [
1273
1310
  /* @__PURE__ */ jsx16(BrandMark, {}),
1274
1311
  /* @__PURE__ */ jsx16("span", { children: "OctaviaFlow" })
1275
1312
  ] }) }),
@@ -1433,7 +1470,7 @@ function PricingTiers({ tiers, note, className, ...rest }) {
1433
1470
 
1434
1471
  // src/marketing/components/StatBand/StatBand.tsx
1435
1472
  import { useReducedMotion as useReducedMotion2 } from "framer-motion";
1436
- import { Fragment as Fragment4, jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1473
+ import { Fragment as Fragment5, jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1437
1474
  function StatBand({ items, orientation = "column", className, ...rest }) {
1438
1475
  const reducedMotion = useReducedMotion2();
1439
1476
  return /* @__PURE__ */ jsx20(
@@ -1452,7 +1489,7 @@ function StatBand({ items, orientation = "column", className, ...rest }) {
1452
1489
  suffix: item.suffix,
1453
1490
  formatValue: (v) => Math.round(v).toLocaleString("en-US")
1454
1491
  }
1455
- ) : /* @__PURE__ */ jsxs19(Fragment4, { children: [
1492
+ ) : /* @__PURE__ */ jsxs19(Fragment5, { children: [
1456
1493
  item.prefix,
1457
1494
  item.value,
1458
1495
  item.suffix
@@ -2010,7 +2047,7 @@ function ShowcaseSignup({
2010
2047
  }
2011
2048
 
2012
2049
  // src/marketing/components/WorkflowShowcase/WorkflowShowcase.tsx
2013
- import { Fragment as Fragment5, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
2050
+ import { Fragment as Fragment6, jsx as jsx24, jsxs as jsxs22 } from "react/jsx-runtime";
2014
2051
  var EMPTY_PLAN = { left: [], right: [], all: [], totalSteps: 1 };
2015
2052
  function ConnectorTile({ connector }) {
2016
2053
  return /* @__PURE__ */ jsx24(
@@ -2322,7 +2359,7 @@ function WorkflowShowcase({
2322
2359
  // biome-ignore lint/suspicious/noArrayIndexKey: segments are positional by nature
2323
2360
  /* @__PURE__ */ jsx24("span", { children: seg.text }, i)
2324
2361
  )
2325
- ) : /* @__PURE__ */ jsxs22(Fragment5, { children: [
2362
+ ) : /* @__PURE__ */ jsxs22(Fragment6, { children: [
2326
2363
  /* @__PURE__ */ jsx24("span", { className: "ods-showcase__placeholder", children: "Describe your pipeline \u2014 e.g. " }),
2327
2364
  /* @__PURE__ */ jsx24("span", { className: "ods-showcase__placeholder ods-showcase__placeholder--faint", children: '"Sync Storefront orders to Warehouse hourly, alert sales in Team Chat"' })
2328
2365
  ] }) })
@@ -2440,7 +2477,7 @@ function WorkflowShowcase({
2440
2477
  }
2441
2478
  )
2442
2479
  ] }),
2443
- swap && swapRole && /* @__PURE__ */ jsxs22(Fragment5, { children: [
2480
+ swap && swapRole && /* @__PURE__ */ jsxs22(Fragment6, { children: [
2444
2481
  /* @__PURE__ */ jsx24(
2445
2482
  "button",
2446
2483
  {