@opensite/ui 2.5.0 → 2.5.2

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.
@@ -14,8 +14,7 @@ import * as PopoverPrimitive from '@radix-ui/react-popover';
14
14
  import { Icon } from '@page-speed/icon';
15
15
  import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
16
16
  import * as TabsPrimitive from '@radix-ui/react-tabs';
17
- import { Form } from '@page-speed/forms';
18
- import { useFileUpload, useContactForm, DynamicFormField, FormEngine } from '@page-speed/forms/integration';
17
+ import { FormEngine } from '@page-speed/forms/integration';
19
18
 
20
19
  // components/ui/container.tsx
21
20
  function cn(...inputs) {
@@ -4579,12 +4578,18 @@ function FooterLinksGrid({
4579
4578
  }
4580
4579
  );
4581
4580
  }
4581
+ var DEFAULT_STYLE_RULES = {
4582
+ formContainer: "flex items-stretch w-full",
4583
+ fieldsContainer: "",
4584
+ fieldClassName: "",
4585
+ formClassName: ""
4586
+ };
4582
4587
  var DEFAULT_FORM_FIELDS = [
4583
4588
  {
4584
4589
  name: "email",
4585
4590
  type: "email",
4586
4591
  label: "Email Address",
4587
- placeholder: "Enter your email",
4592
+ placeholder: "Email Address",
4588
4593
  required: true,
4589
4594
  columnSpan: 12
4590
4595
  }
@@ -4597,7 +4602,6 @@ function FooterSocialNewsletter({
4597
4602
  className,
4598
4603
  contentClassName,
4599
4604
  logoWrapperClassName,
4600
- logoClassName,
4601
4605
  gridClassName,
4602
4606
  navSectionClassName,
4603
4607
  navTitleClassName,
@@ -4606,16 +4610,7 @@ function FooterSocialNewsletter({
4606
4610
  socialColumnClassName,
4607
4611
  socialLinksClassName,
4608
4612
  socialLinkClassName,
4609
- formFields = DEFAULT_FORM_FIELDS,
4610
- formConfig,
4611
- onSubmit,
4612
- onSuccess,
4613
- onError,
4614
- successMessage,
4615
- buttonAction,
4616
- helperText,
4617
- formSlot,
4618
- privacyClassName,
4613
+ formEngineSetup,
4619
4614
  bottomClassName,
4620
4615
  copyrightClassName,
4621
4616
  background,
@@ -4625,104 +4620,36 @@ function FooterSocialNewsletter({
4625
4620
  patternOpacity,
4626
4621
  optixFlowConfig
4627
4622
  }) {
4628
- const {
4629
- uploadTokens,
4630
- uploadProgress,
4631
- isUploading,
4632
- uploadFiles,
4633
- removeFile,
4634
- resetUpload
4635
- } = useFileUpload({ onError });
4636
- const { form, submissionError, formMethod, resetSubmissionState } = useContactForm({
4637
- formFields,
4638
- formConfig,
4639
- onSubmit,
4640
- onSuccess: (data) => {
4641
- resetUpload();
4642
- onSuccess?.(data);
4643
- },
4644
- onError,
4645
- uploadTokens
4646
- });
4647
4623
  const renderForm = React4.useMemo(() => {
4648
- if (formSlot) return formSlot;
4649
- const defaultButtonAction = {
4650
- label: "Subscribe",
4624
+ if (!formEngineSetup) return null;
4625
+ const action = {
4651
4626
  variant: "default",
4652
- className: "h-12"
4627
+ icon: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
4653
4628
  };
4654
- const action = buttonAction || defaultButtonAction;
4655
- return /* @__PURE__ */ jsxs(
4656
- Form,
4629
+ return /* @__PURE__ */ jsx(
4630
+ FormEngine,
4657
4631
  {
4658
- form,
4659
- fields: formFields,
4660
- notificationConfig: {
4661
- submissionError,
4662
- successMessage
4663
- },
4664
- formConfig: {
4665
- endpoint: formConfig?.endpoint,
4666
- method: formMethod,
4667
- submissionConfig: formConfig?.submissionConfig,
4668
- formLayout: "button-group",
4669
- buttonGroupSize: "sm",
4670
- submitLabel: action.label,
4671
- submitVariant: action.variant || "default",
4672
- submitIconComponent: action.icon || /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/send" })
4673
- },
4674
- onNewSubmission: () => {
4675
- resetUpload();
4676
- resetSubmissionState();
4632
+ formEngineSetup: {
4633
+ ...formEngineSetup,
4634
+ formLayoutSettings: {
4635
+ ...formEngineSetup.formLayoutSettings,
4636
+ formLayout: "button-group",
4637
+ buttonGroupSetup: {
4638
+ ...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
4639
+ size: "default",
4640
+ submitLabel: action.icon || action.label,
4641
+ submitVariant: action.variant
4642
+ }
4643
+ }
4677
4644
  },
4678
- children: [
4679
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 sm:flex-row", children: [
4680
- formFields.map((field) => /* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
4681
- DynamicFormField,
4682
- {
4683
- field,
4684
- uploadProgress,
4685
- onFileUpload: uploadFiles,
4686
- onFileRemove: removeFile,
4687
- isUploading
4688
- }
4689
- ) }, field.name)),
4690
- /* @__PURE__ */ jsxs(
4691
- Pressable,
4692
- {
4693
- onClick: form.handleSubmit,
4694
- asButton: true,
4695
- variant: action.variant,
4696
- className: cn("h-12", action.className),
4697
- disabled: form.isSubmitting,
4698
- children: [
4699
- action.label,
4700
- action.iconAfter
4701
- ]
4702
- }
4703
- )
4704
- ] }),
4705
- helperText && (typeof helperText === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm mt-2"), children: helperText }) : helperText)
4706
- ]
4645
+ defaultFields: DEFAULT_FORM_FIELDS,
4646
+ defaultStyleRules: {
4647
+ ...DEFAULT_STYLE_RULES,
4648
+ formContainer: cn(DEFAULT_STYLE_RULES.formContainer)
4649
+ }
4707
4650
  }
4708
4651
  );
4709
- }, [
4710
- formSlot,
4711
- formFields,
4712
- form,
4713
- formConfig,
4714
- formMethod,
4715
- buttonAction,
4716
- uploadProgress,
4717
- uploadFiles,
4718
- removeFile,
4719
- isUploading,
4720
- submissionError,
4721
- successMessage,
4722
- helperText,
4723
- resetUpload,
4724
- resetSubmissionState
4725
- ]);
4652
+ }, [formEngineSetup]);
4726
4653
  return /* @__PURE__ */ jsx(
4727
4654
  Section,
4728
4655
  {
@@ -4730,20 +4657,26 @@ function FooterSocialNewsletter({
4730
4657
  spacing,
4731
4658
  pattern,
4732
4659
  patternOpacity,
4733
- className: cn(className),
4660
+ className,
4734
4661
  containerClassName,
4735
4662
  children: /* @__PURE__ */ jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxs("footer", { children: [
4736
4663
  /* @__PURE__ */ jsxs("div", { className: "mb-20", children: [
4737
4664
  logo && /* @__PURE__ */ jsx(
4738
- FooterLogo,
4665
+ Pressable,
4739
4666
  {
4740
- logo,
4741
- logoClassName: cn(
4742
- "flex items-center gap-2",
4743
- logoWrapperClassName
4744
- ),
4745
- logoImageClassName: cn("h-10", logoClassName),
4746
- optixFlowConfig
4667
+ href: logo.url || "/",
4668
+ className: cn("block mb-8 md:mb-12", logoWrapperClassName),
4669
+ children: /* @__PURE__ */ jsx(
4670
+ Img,
4671
+ {
4672
+ src: logo.src,
4673
+ className: cn(
4674
+ "h-16 object-contain w-auto max-w-full",
4675
+ logo.className
4676
+ ),
4677
+ optixFlowConfig
4678
+ }
4679
+ )
4747
4680
  }
4748
4681
  ),
4749
4682
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("mt-6", socialColumnClassName), children: /* @__PURE__ */ jsx(
@@ -4756,10 +4689,9 @@ function FooterSocialNewsletter({
4756
4689
  children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
4757
4690
  SocialLinkIcon,
4758
4691
  {
4759
- href: social.href,
4760
- label: social.label,
4761
- iconNameOverride: social.iconNameOverride,
4762
- iconSize: 20,
4692
+ size: "icon-lg",
4693
+ variant: "ghost",
4694
+ ...social,
4763
4695
  className: cn(
4764
4696
  "opacity-80 transition-colors hover:opacity-100",
4765
4697
  socialLinkClassName
@@ -6269,7 +6201,7 @@ function FooterAnimatedSocial({
6269
6201
  }
6270
6202
  );
6271
6203
  }
6272
- var DEFAULT_STYLE_RULES = {
6204
+ var DEFAULT_STYLE_RULES2 = {
6273
6205
  formContainer: "flex w-full items-end border-b border-b-foreground/10",
6274
6206
  fieldsContainer: "",
6275
6207
  fieldClassName: "",
@@ -6307,6 +6239,7 @@ function FooterNewsletterMinimal({
6307
6239
  socialLinksClassName,
6308
6240
  socialLinkClassName,
6309
6241
  newsletterSectionClassName,
6242
+ newsletterLabelClassName,
6310
6243
  newsletterFormClassName,
6311
6244
  bottomGridClassName,
6312
6245
  locationClassName,
@@ -6392,9 +6325,9 @@ function FooterNewsletterMinimal({
6392
6325
  },
6393
6326
  defaultFields: DEFAULT_FORM_FIELDS2,
6394
6327
  defaultStyleRules: {
6395
- ...DEFAULT_STYLE_RULES,
6328
+ ...DEFAULT_STYLE_RULES2,
6396
6329
  formContainer: cn(
6397
- DEFAULT_STYLE_RULES.formContainer,
6330
+ DEFAULT_STYLE_RULES2.formContainer,
6398
6331
  newsletterFormClassName
6399
6332
  )
6400
6333
  }
@@ -6420,29 +6353,41 @@ function FooterNewsletterMinimal({
6420
6353
  ),
6421
6354
  children: [
6422
6355
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-10", children: [
6423
- heading && /* @__PURE__ */ jsx(
6424
- "p",
6425
- {
6426
- className: cn(
6427
- "relative text-4xl font-medium tracking-tight lg:text-5xl",
6428
- headingClassName
6429
- ),
6430
- children: heading
6431
- }
6432
- ),
6433
- (supportLabel || supportEmail) && /* @__PURE__ */ jsxs(
6356
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
6357
+ heading && /* @__PURE__ */ jsx(
6358
+ "h2",
6359
+ {
6360
+ className: cn(
6361
+ "relative text-4xl font-semibold tracking-tight lg:text-5xl text-balance",
6362
+ headingClassName
6363
+ ),
6364
+ children: heading
6365
+ }
6366
+ ),
6367
+ location && /* @__PURE__ */ jsx(
6368
+ "div",
6369
+ {
6370
+ className: cn(
6371
+ "font-semibold text-lg opacity-75",
6372
+ locationClassName
6373
+ ),
6374
+ children: location
6375
+ }
6376
+ )
6377
+ ] }),
6378
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-4", children: (supportLabel || supportEmail) && /* @__PURE__ */ jsxs(
6434
6379
  "div",
6435
6380
  {
6436
6381
  className: cn(
6437
- "space-y-1 text-sm font-light tracking-tight lg:text-base",
6382
+ "space-y-1 text-sm tracking-tight lg:text-base",
6438
6383
  supportClassName
6439
6384
  ),
6440
6385
  children: [
6441
- supportLabel && /* @__PURE__ */ jsx("p", { children: supportLabel }),
6442
- supportEmail && /* @__PURE__ */ jsx(Pressable, { href: `mailto:${supportEmail}`, children: supportEmail })
6386
+ supportLabel && /* @__PURE__ */ jsx("p", { className: "font-light opacity-75", children: supportLabel }),
6387
+ supportEmail && /* @__PURE__ */ jsx(Pressable, { className: "font-semibold", href: supportEmail, children: supportEmail })
6443
6388
  ]
6444
6389
  }
6445
- )
6390
+ ) })
6446
6391
  ] }),
6447
6392
  /* @__PURE__ */ jsxs(
6448
6393
  "div",
@@ -6460,41 +6405,35 @@ function FooterNewsletterMinimal({
6460
6405
  ]
6461
6406
  }
6462
6407
  ),
6463
- /* @__PURE__ */ jsxs(
6408
+ /* @__PURE__ */ jsx(
6464
6409
  "div",
6465
6410
  {
6466
6411
  className: cn(
6467
6412
  "mt-20 flex flex-col justify-between gap-15 lg:flex-row",
6468
6413
  newsletterSectionClassName
6469
6414
  ),
6470
- children: [
6471
- formEngineSetup && /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
6472
- newsletterLabel && /* @__PURE__ */ jsx("p", { children: newsletterLabel }),
6473
- renderForm
6474
- ] }) }),
6475
- /* @__PURE__ */ jsxs(
6476
- "div",
6415
+ children: formEngineSetup && /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
6416
+ newsletterLabel && /* @__PURE__ */ jsx(
6417
+ "p",
6477
6418
  {
6478
6419
  className: cn(
6479
- "grid w-full max-w-xs grid-cols-2 gap-10 text-sm font-light lg:text-base",
6480
- bottomGridClassName
6420
+ "text-xl font-light tracking-tight",
6421
+ newsletterLabelClassName
6481
6422
  ),
6482
- children: [
6483
- location && /* @__PURE__ */ jsx("div", { className: cn("w-32", locationClassName), children: location }),
6484
- /* @__PURE__ */ jsx("ul", { className: cn("space-y-1", footerLinksClassName), children: footerLinksContent })
6485
- ]
6423
+ children: newsletterLabel
6486
6424
  }
6487
- )
6488
- ]
6425
+ ),
6426
+ renderForm
6427
+ ] }) })
6489
6428
  }
6490
6429
  ),
6491
6430
  brandText && /* @__PURE__ */ jsx("div", { className: cn("mt-20 w-full lg:mt-32", brandSectionClassName), children: /* @__PURE__ */ jsx(
6492
6431
  motion.div,
6493
6432
  {
6494
- initial: { opacity: 0, y: 20 },
6433
+ initial: { opacity: 0, y: 80 },
6495
6434
  whileInView: { opacity: 1, y: 0 },
6496
- viewport: { once: true },
6497
- transition: { duration: 0.6 },
6435
+ viewport: { once: true, amount: 0.5 },
6436
+ transition: { duration: 0.9, ease: [0.16, 1, 0.3, 1] },
6498
6437
  className: "text-center",
6499
6438
  children: /* @__PURE__ */ jsx(
6500
6439
  "span",
@@ -6512,19 +6451,51 @@ function FooterNewsletterMinimal({
6512
6451
  "div",
6513
6452
  {
6514
6453
  className: cn(
6515
- "mt-8 text-center text-sm opacity-80",
6454
+ "flex flex-col items-center space-y-6",
6455
+ brandText ? "mb-24" : "mt-8",
6516
6456
  copyrightClassName
6517
6457
  ),
6518
6458
  children: [
6519
- /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
6520
6459
  /* @__PURE__ */ jsx(
6521
- BrandAttribution,
6460
+ "div",
6461
+ {
6462
+ className: cn(
6463
+ "flex items-center justify-center",
6464
+ bottomGridClassName
6465
+ ),
6466
+ children: /* @__PURE__ */ jsx(
6467
+ "div",
6468
+ {
6469
+ className: cn(
6470
+ "flex gap-4 md:gap-6 text-sm font-light lg:text-base",
6471
+ "text-center items-center justify-center flex-wrap",
6472
+ footerLinksClassName
6473
+ ),
6474
+ children: footerLinksContent
6475
+ }
6476
+ )
6477
+ }
6478
+ ),
6479
+ /* @__PURE__ */ jsxs(
6480
+ "div",
6522
6481
  {
6523
- internalBrandSlug: "open_site_ai",
6524
- optionIndex: 4,
6525
- variant: "div",
6526
- containerClassName: "mt-2",
6527
- linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
6482
+ className: cn(
6483
+ "mt-8 text-center text-sm opacity-50",
6484
+ copyrightClassName
6485
+ ),
6486
+ children: [
6487
+ /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
6488
+ /* @__PURE__ */ jsx(
6489
+ BrandAttribution,
6490
+ {
6491
+ internalBrandSlug: "open_site_ai",
6492
+ optionIndex: 4,
6493
+ variant: "div",
6494
+ containerClassName: "mt-2",
6495
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
6496
+ }
6497
+ )
6498
+ ]
6528
6499
  }
6529
6500
  )
6530
6501
  ]
@@ -6,10 +6,10 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
- var img = require('@page-speed/img');
10
9
  var icon = require('@page-speed/icon');
11
10
  var usePlatformFromUrl = require('@opensite/hooks/usePlatformFromUrl');
12
11
  var integration = require('@page-speed/forms/integration');
12
+ var img = require('@page-speed/img');
13
13
 
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule) return e;
@@ -453,77 +453,6 @@ var Pressable = React__namespace.forwardRef(
453
453
  }
454
454
  );
455
455
  Pressable.displayName = "Pressable";
456
- function isThemedLogo(logo) {
457
- return "light" in logo || "dark" in logo;
458
- }
459
- var FooterLogo = ({
460
- logo,
461
- logoSlot,
462
- logoClassName,
463
- logoImageClassName,
464
- logoTitleClassName,
465
- optixFlowConfig
466
- }) => {
467
- if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
468
- if (!logo) return null;
469
- const hasThemedSources = isThemedLogo(logo) && (logo.light || logo.dark);
470
- const hasStandardSource = !isThemedLogo(logo) && logo.src;
471
- const logoContent = hasThemedSources ? (
472
- // Themed logo with light/dark mode sources
473
- /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
474
- logo.light && /* @__PURE__ */ jsxRuntime.jsx(
475
- img.Img,
476
- {
477
- src: logo.light,
478
- alt: logo.alt || "Logo",
479
- className: cn(
480
- "h-8 w-auto object-contain dark:hidden md:h-10",
481
- logoImageClassName
482
- ),
483
- optixFlowConfig
484
- }
485
- ),
486
- logo.dark && /* @__PURE__ */ jsxRuntime.jsx(
487
- img.Img,
488
- {
489
- src: logo.dark,
490
- alt: logo.alt || "Logo",
491
- className: cn(
492
- "hidden h-8 w-auto object-contain dark:block md:h-10",
493
- logoImageClassName
494
- ),
495
- optixFlowConfig
496
- }
497
- )
498
- ] })
499
- ) : hasStandardSource ? (
500
- // Standard single logo image
501
- /* @__PURE__ */ jsxRuntime.jsx(
502
- img.Img,
503
- {
504
- src: logo.src,
505
- alt: logo.alt || "Logo",
506
- className: cn("h-8 w-auto object-contain md:h-10", logoImageClassName),
507
- optixFlowConfig
508
- }
509
- )
510
- ) : logo.title ? (
511
- // Text-based logo fallback
512
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-lg font-semibold md:text-xl", logoTitleClassName), children: logo.title })
513
- ) : null;
514
- if (!logoContent) return null;
515
- if (logo.url) {
516
- return /* @__PURE__ */ jsxRuntime.jsx(
517
- Pressable,
518
- {
519
- href: logo.url,
520
- className: cn("inline-flex items-center", logoClassName),
521
- children: logoContent
522
- }
523
- );
524
- }
525
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("inline-flex items-center", logoClassName), children: logoContent });
526
- };
527
456
  function FooterCopyright({
528
457
  copyright,
529
458
  className
@@ -1551,20 +1480,15 @@ function FooterAccordionSocial({
1551
1480
  pattern,
1552
1481
  patternOpacity,
1553
1482
  patternClassName,
1554
- formEngineSetup,
1555
- buttonAction,
1556
- formSlot,
1557
- newsletterFormClassName
1483
+ formEngineSetup
1558
1484
  }) {
1559
1485
  const renderForm = React__namespace.useMemo(() => {
1560
- if (formSlot) return formSlot;
1561
1486
  if (!formEngineSetup) return null;
1562
- const defaultButtonAction = {
1487
+ const action = {
1563
1488
  label: "",
1564
1489
  variant: "default",
1565
1490
  icon: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
1566
1491
  };
1567
- const action = buttonAction || defaultButtonAction;
1568
1492
  return /* @__PURE__ */ jsxRuntime.jsx(
1569
1493
  integration.FormEngine,
1570
1494
  {
@@ -1577,21 +1501,18 @@ function FooterAccordionSocial({
1577
1501
  ...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
1578
1502
  size: "default",
1579
1503
  submitLabel: action.icon || action.label,
1580
- submitVariant: action.variant || "default"
1504
+ submitVariant: action.variant
1581
1505
  }
1582
1506
  }
1583
1507
  },
1584
1508
  defaultFields: DEFAULT_FORM_FIELDS,
1585
1509
  defaultStyleRules: {
1586
1510
  ...DEFAULT_STYLE_RULES,
1587
- formContainer: cn(
1588
- DEFAULT_STYLE_RULES.formContainer,
1589
- newsletterFormClassName
1590
- )
1511
+ formContainer: cn(DEFAULT_STYLE_RULES.formContainer)
1591
1512
  }
1592
1513
  }
1593
1514
  );
1594
- }, [formSlot, formEngineSetup, buttonAction, newsletterFormClassName]);
1515
+ }, [formEngineSetup]);
1595
1516
  return /* @__PURE__ */ jsxRuntime.jsx(
1596
1517
  Section,
1597
1518
  {
@@ -1605,19 +1526,19 @@ function FooterAccordionSocial({
1605
1526
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-10", children: [
1606
1527
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-2 lg:gap-20", children: [
1607
1528
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
1608
- logo && /* @__PURE__ */ jsxRuntime.jsx(
1609
- FooterLogo,
1529
+ logo && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: logo.url || "/", className: "block mb-8 md:mb-12", children: /* @__PURE__ */ jsxRuntime.jsx(
1530
+ img.Img,
1610
1531
  {
1611
- logo,
1612
- logoClassName: "inline-block max-w-48",
1532
+ src: logo.src,
1533
+ className: "h-16 object-contain w-auto max-w-full",
1613
1534
  optixFlowConfig
1614
1535
  }
1615
- ),
1616
- formEngineSetup && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1617
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
1618
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-semibold", children: newsletterTitle }),
1619
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-80", children: newsletterDescription })
1620
- ] }),
1536
+ ) }),
1537
+ formEngineSetup && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1538
+ newsletterTitle || newsletterDescription ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
1539
+ newsletterTitle ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-semibold", children: newsletterTitle }) : null,
1540
+ newsletterDescription ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-70", children: newsletterDescription }) : null
1541
+ ] }) : null,
1621
1542
  renderForm
1622
1543
  ] })
1623
1544
  ] }),
@@ -1635,27 +1556,24 @@ function FooterAccordionSocial({
1635
1556
  ] }),
1636
1557
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-6 border-t pt-8", children: [
1637
1558
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", children: [
1638
- /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1559
+ /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright, className: "opacity-50" }),
1639
1560
  /* @__PURE__ */ jsxRuntime.jsx(
1640
1561
  BrandAttribution,
1641
1562
  {
1642
1563
  internalBrandSlug: "open_site_ai",
1643
1564
  optionIndex: 1,
1644
1565
  variant: "span",
1645
- linkClassName: "hover:opacity-100"
1566
+ linkClassName: "opacity-50 hover:opacity-100"
1646
1567
  }
1647
1568
  )
1648
1569
  ] }),
1649
1570
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-wrap gap-4", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1650
1571
  SocialLinkIcon,
1651
1572
  {
1652
- href: social.href,
1653
- label: social.label,
1654
- iconNameOverride: social.iconNameOverride,
1655
- variant: "outline",
1656
- size: "icon",
1657
- asButton: true,
1658
- className: "rounded-full"
1573
+ ...social,
1574
+ variant: "ghost",
1575
+ size: "icon-lg",
1576
+ asButton: true
1659
1577
  }
1660
1578
  ) }, idx)) })
1661
1579
  ] })