@opensite/ui 2.5.0 → 2.5.1
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/components.cjs +52 -120
- package/dist/components.js +53 -121
- package/dist/footer-accordion-social.cjs +22 -104
- package/dist/footer-accordion-social.d.cts +8 -18
- package/dist/footer-accordion-social.d.ts +8 -18
- package/dist/footer-accordion-social.js +23 -105
- package/dist/footer-newsletter-contact.cjs +8 -8
- package/dist/footer-newsletter-contact.d.cts +2 -2
- package/dist/footer-newsletter-contact.d.ts +2 -2
- package/dist/footer-newsletter-contact.js +8 -8
- package/dist/footer-social-newsletter.cjs +619 -758
- package/dist/footer-social-newsletter.d.cts +17 -54
- package/dist/footer-social-newsletter.d.ts +17 -54
- package/dist/footer-social-newsletter.js +620 -759
- package/dist/index.cjs +52 -120
- package/dist/index.js +53 -121
- package/dist/registry.cjs +191 -269
- package/dist/registry.js +192 -270
- package/package.json +2 -2
|
@@ -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
|
|
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
|
|
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
|
-
}, [
|
|
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
|
-
|
|
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
|
-
|
|
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(
|
|
1617
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-
|
|
1618
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-
|
|
1619
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-
|
|
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
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
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
|
] })
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as React from 'react';
|
|
3
2
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-B658AD6n.cjs';
|
|
4
3
|
import { F as FooterSocialLink } from './types-Cs1jk79n.cjs';
|
|
5
4
|
import { FormEngineProps } from '@page-speed/forms/integration';
|
|
6
|
-
import
|
|
5
|
+
import 'react';
|
|
6
|
+
import './blocks-DUr75v0S.cjs';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.cjs';
|
|
9
9
|
import 'class-variance-authority/types';
|
|
@@ -54,9 +54,11 @@ interface FooterAccordionSocialProps {
|
|
|
54
54
|
* Logo configuration
|
|
55
55
|
*/
|
|
56
56
|
logo?: {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
url
|
|
57
|
+
src: string;
|
|
58
|
+
/** Logo link URL */
|
|
59
|
+
url?: string;
|
|
60
|
+
/** Brand title */
|
|
61
|
+
alt?: string;
|
|
60
62
|
};
|
|
61
63
|
/**
|
|
62
64
|
* Brand/company name for the copyright notice
|
|
@@ -101,18 +103,6 @@ interface FooterAccordionSocialProps {
|
|
|
101
103
|
* Full form engine setup and props
|
|
102
104
|
*/
|
|
103
105
|
formEngineSetup?: FormEngineProps;
|
|
104
|
-
/**
|
|
105
|
-
* Submit button configuration
|
|
106
|
-
*/
|
|
107
|
-
buttonAction?: ActionConfig;
|
|
108
|
-
/**
|
|
109
|
-
* Custom slot for the form (overrides form props)
|
|
110
|
-
*/
|
|
111
|
-
formSlot?: React.ReactNode;
|
|
112
|
-
/**
|
|
113
|
-
* Additional CSS classes for the newsletter form
|
|
114
|
-
*/
|
|
115
|
-
newsletterFormClassName?: string;
|
|
116
106
|
}
|
|
117
107
|
/**
|
|
118
108
|
* Footer Accordion Social - A footer with newsletter, navigation links,
|
|
@@ -139,6 +129,6 @@ interface FooterAccordionSocialProps {
|
|
|
139
129
|
* />
|
|
140
130
|
* ```
|
|
141
131
|
*/
|
|
142
|
-
declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, formEngineSetup,
|
|
132
|
+
declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, formEngineSetup, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
|
|
143
133
|
|
|
144
134
|
export { FooterAccordionSocial, type FooterAccordionSocialNavLink, type FooterAccordionSocialProps, type FooterAccordionSocialSection };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import * as React from 'react';
|
|
3
2
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-BphRfrhZ.js';
|
|
4
3
|
import { F as FooterSocialLink } from './types-Cs1jk79n.js';
|
|
5
4
|
import { FormEngineProps } from '@page-speed/forms/integration';
|
|
6
|
-
import
|
|
5
|
+
import 'react';
|
|
6
|
+
import './blocks-BzFuQGP0.js';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.js';
|
|
9
9
|
import 'class-variance-authority/types';
|
|
@@ -54,9 +54,11 @@ interface FooterAccordionSocialProps {
|
|
|
54
54
|
* Logo configuration
|
|
55
55
|
*/
|
|
56
56
|
logo?: {
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
url
|
|
57
|
+
src: string;
|
|
58
|
+
/** Logo link URL */
|
|
59
|
+
url?: string;
|
|
60
|
+
/** Brand title */
|
|
61
|
+
alt?: string;
|
|
60
62
|
};
|
|
61
63
|
/**
|
|
62
64
|
* Brand/company name for the copyright notice
|
|
@@ -101,18 +103,6 @@ interface FooterAccordionSocialProps {
|
|
|
101
103
|
* Full form engine setup and props
|
|
102
104
|
*/
|
|
103
105
|
formEngineSetup?: FormEngineProps;
|
|
104
|
-
/**
|
|
105
|
-
* Submit button configuration
|
|
106
|
-
*/
|
|
107
|
-
buttonAction?: ActionConfig;
|
|
108
|
-
/**
|
|
109
|
-
* Custom slot for the form (overrides form props)
|
|
110
|
-
*/
|
|
111
|
-
formSlot?: React.ReactNode;
|
|
112
|
-
/**
|
|
113
|
-
* Additional CSS classes for the newsletter form
|
|
114
|
-
*/
|
|
115
|
-
newsletterFormClassName?: string;
|
|
116
106
|
}
|
|
117
107
|
/**
|
|
118
108
|
* Footer Accordion Social - A footer with newsletter, navigation links,
|
|
@@ -139,6 +129,6 @@ interface FooterAccordionSocialProps {
|
|
|
139
129
|
* />
|
|
140
130
|
* ```
|
|
141
131
|
*/
|
|
142
|
-
declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, formEngineSetup,
|
|
132
|
+
declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, formEngineSetup, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
|
|
143
133
|
|
|
144
134
|
export { FooterAccordionSocial, type FooterAccordionSocialNavLink, type FooterAccordionSocialProps, type FooterAccordionSocialSection };
|
|
@@ -4,11 +4,11 @@ import React__default, { useMemo } from 'react';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
7
|
-
import { jsx, jsxs
|
|
8
|
-
import { Img } from '@page-speed/img';
|
|
7
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
9
8
|
import { Icon } from '@page-speed/icon';
|
|
10
9
|
import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
|
|
11
10
|
import { FormEngine } from '@page-speed/forms/integration';
|
|
11
|
+
import { Img } from '@page-speed/img';
|
|
12
12
|
|
|
13
13
|
// components/blocks/footers/footer-accordion-social.tsx
|
|
14
14
|
function cn(...inputs) {
|
|
@@ -432,77 +432,6 @@ var Pressable = React.forwardRef(
|
|
|
432
432
|
}
|
|
433
433
|
);
|
|
434
434
|
Pressable.displayName = "Pressable";
|
|
435
|
-
function isThemedLogo(logo) {
|
|
436
|
-
return "light" in logo || "dark" in logo;
|
|
437
|
-
}
|
|
438
|
-
var FooterLogo = ({
|
|
439
|
-
logo,
|
|
440
|
-
logoSlot,
|
|
441
|
-
logoClassName,
|
|
442
|
-
logoImageClassName,
|
|
443
|
-
logoTitleClassName,
|
|
444
|
-
optixFlowConfig
|
|
445
|
-
}) => {
|
|
446
|
-
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
447
|
-
if (!logo) return null;
|
|
448
|
-
const hasThemedSources = isThemedLogo(logo) && (logo.light || logo.dark);
|
|
449
|
-
const hasStandardSource = !isThemedLogo(logo) && logo.src;
|
|
450
|
-
const logoContent = hasThemedSources ? (
|
|
451
|
-
// Themed logo with light/dark mode sources
|
|
452
|
-
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
453
|
-
logo.light && /* @__PURE__ */ jsx(
|
|
454
|
-
Img,
|
|
455
|
-
{
|
|
456
|
-
src: logo.light,
|
|
457
|
-
alt: logo.alt || "Logo",
|
|
458
|
-
className: cn(
|
|
459
|
-
"h-8 w-auto object-contain dark:hidden md:h-10",
|
|
460
|
-
logoImageClassName
|
|
461
|
-
),
|
|
462
|
-
optixFlowConfig
|
|
463
|
-
}
|
|
464
|
-
),
|
|
465
|
-
logo.dark && /* @__PURE__ */ jsx(
|
|
466
|
-
Img,
|
|
467
|
-
{
|
|
468
|
-
src: logo.dark,
|
|
469
|
-
alt: logo.alt || "Logo",
|
|
470
|
-
className: cn(
|
|
471
|
-
"hidden h-8 w-auto object-contain dark:block md:h-10",
|
|
472
|
-
logoImageClassName
|
|
473
|
-
),
|
|
474
|
-
optixFlowConfig
|
|
475
|
-
}
|
|
476
|
-
)
|
|
477
|
-
] })
|
|
478
|
-
) : hasStandardSource ? (
|
|
479
|
-
// Standard single logo image
|
|
480
|
-
/* @__PURE__ */ jsx(
|
|
481
|
-
Img,
|
|
482
|
-
{
|
|
483
|
-
src: logo.src,
|
|
484
|
-
alt: logo.alt || "Logo",
|
|
485
|
-
className: cn("h-8 w-auto object-contain md:h-10", logoImageClassName),
|
|
486
|
-
optixFlowConfig
|
|
487
|
-
}
|
|
488
|
-
)
|
|
489
|
-
) : logo.title ? (
|
|
490
|
-
// Text-based logo fallback
|
|
491
|
-
/* @__PURE__ */ jsx("span", { className: cn("text-lg font-semibold md:text-xl", logoTitleClassName), children: logo.title })
|
|
492
|
-
) : null;
|
|
493
|
-
if (!logoContent) return null;
|
|
494
|
-
if (logo.url) {
|
|
495
|
-
return /* @__PURE__ */ jsx(
|
|
496
|
-
Pressable,
|
|
497
|
-
{
|
|
498
|
-
href: logo.url,
|
|
499
|
-
className: cn("inline-flex items-center", logoClassName),
|
|
500
|
-
children: logoContent
|
|
501
|
-
}
|
|
502
|
-
);
|
|
503
|
-
}
|
|
504
|
-
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center", logoClassName), children: logoContent });
|
|
505
|
-
};
|
|
506
435
|
function FooterCopyright({
|
|
507
436
|
copyright,
|
|
508
437
|
className
|
|
@@ -1530,20 +1459,15 @@ function FooterAccordionSocial({
|
|
|
1530
1459
|
pattern,
|
|
1531
1460
|
patternOpacity,
|
|
1532
1461
|
patternClassName,
|
|
1533
|
-
formEngineSetup
|
|
1534
|
-
buttonAction,
|
|
1535
|
-
formSlot,
|
|
1536
|
-
newsletterFormClassName
|
|
1462
|
+
formEngineSetup
|
|
1537
1463
|
}) {
|
|
1538
1464
|
const renderForm = React.useMemo(() => {
|
|
1539
|
-
if (formSlot) return formSlot;
|
|
1540
1465
|
if (!formEngineSetup) return null;
|
|
1541
|
-
const
|
|
1466
|
+
const action = {
|
|
1542
1467
|
label: "",
|
|
1543
1468
|
variant: "default",
|
|
1544
1469
|
icon: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
1545
1470
|
};
|
|
1546
|
-
const action = buttonAction || defaultButtonAction;
|
|
1547
1471
|
return /* @__PURE__ */ jsx(
|
|
1548
1472
|
FormEngine,
|
|
1549
1473
|
{
|
|
@@ -1556,21 +1480,18 @@ function FooterAccordionSocial({
|
|
|
1556
1480
|
...formEngineSetup.formLayoutSettings?.buttonGroupSetup,
|
|
1557
1481
|
size: "default",
|
|
1558
1482
|
submitLabel: action.icon || action.label,
|
|
1559
|
-
submitVariant: action.variant
|
|
1483
|
+
submitVariant: action.variant
|
|
1560
1484
|
}
|
|
1561
1485
|
}
|
|
1562
1486
|
},
|
|
1563
1487
|
defaultFields: DEFAULT_FORM_FIELDS,
|
|
1564
1488
|
defaultStyleRules: {
|
|
1565
1489
|
...DEFAULT_STYLE_RULES,
|
|
1566
|
-
formContainer: cn(
|
|
1567
|
-
DEFAULT_STYLE_RULES.formContainer,
|
|
1568
|
-
newsletterFormClassName
|
|
1569
|
-
)
|
|
1490
|
+
formContainer: cn(DEFAULT_STYLE_RULES.formContainer)
|
|
1570
1491
|
}
|
|
1571
1492
|
}
|
|
1572
1493
|
);
|
|
1573
|
-
}, [
|
|
1494
|
+
}, [formEngineSetup]);
|
|
1574
1495
|
return /* @__PURE__ */ jsx(
|
|
1575
1496
|
Section,
|
|
1576
1497
|
{
|
|
@@ -1584,19 +1505,19 @@ function FooterAccordionSocial({
|
|
|
1584
1505
|
children: /* @__PURE__ */ jsxs("div", { className: "space-y-10", children: [
|
|
1585
1506
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-2 lg:gap-20", children: [
|
|
1586
1507
|
/* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
|
|
1587
|
-
logo && /* @__PURE__ */ jsx(
|
|
1588
|
-
|
|
1508
|
+
logo && /* @__PURE__ */ jsx(Pressable, { href: logo.url || "/", className: "block mb-8 md:mb-12", children: /* @__PURE__ */ jsx(
|
|
1509
|
+
Img,
|
|
1589
1510
|
{
|
|
1590
|
-
logo,
|
|
1591
|
-
|
|
1511
|
+
src: logo.src,
|
|
1512
|
+
className: "h-16 object-contain w-auto max-w-full",
|
|
1592
1513
|
optixFlowConfig
|
|
1593
1514
|
}
|
|
1594
|
-
),
|
|
1595
|
-
formEngineSetup && /* @__PURE__ */ jsxs(
|
|
1596
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-
|
|
1597
|
-
/* @__PURE__ */ jsx("h3", { className: "text-
|
|
1598
|
-
/* @__PURE__ */ jsx("p", { className: "opacity-
|
|
1599
|
-
] }),
|
|
1515
|
+
) }),
|
|
1516
|
+
formEngineSetup && /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
1517
|
+
newsletterTitle || newsletterDescription ? /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
1518
|
+
newsletterTitle ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-semibold", children: newsletterTitle }) : null,
|
|
1519
|
+
newsletterDescription ? /* @__PURE__ */ jsx("p", { className: "opacity-70", children: newsletterDescription }) : null
|
|
1520
|
+
] }) : null,
|
|
1600
1521
|
renderForm
|
|
1601
1522
|
] })
|
|
1602
1523
|
] }),
|
|
@@ -1614,27 +1535,24 @@ function FooterAccordionSocial({
|
|
|
1614
1535
|
] }),
|
|
1615
1536
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-wrap items-center justify-between gap-6 border-t pt-8", children: [
|
|
1616
1537
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", children: [
|
|
1617
|
-
/* @__PURE__ */ jsx(FooterCopyright, { copyright }),
|
|
1538
|
+
/* @__PURE__ */ jsx(FooterCopyright, { copyright, className: "opacity-50" }),
|
|
1618
1539
|
/* @__PURE__ */ jsx(
|
|
1619
1540
|
BrandAttribution,
|
|
1620
1541
|
{
|
|
1621
1542
|
internalBrandSlug: "open_site_ai",
|
|
1622
1543
|
optionIndex: 1,
|
|
1623
1544
|
variant: "span",
|
|
1624
|
-
linkClassName: "hover:opacity-100"
|
|
1545
|
+
linkClassName: "opacity-50 hover:opacity-100"
|
|
1625
1546
|
}
|
|
1626
1547
|
)
|
|
1627
1548
|
] }),
|
|
1628
1549
|
socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-4", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1629
1550
|
SocialLinkIcon,
|
|
1630
1551
|
{
|
|
1631
|
-
|
|
1632
|
-
|
|
1633
|
-
|
|
1634
|
-
|
|
1635
|
-
size: "icon",
|
|
1636
|
-
asButton: true,
|
|
1637
|
-
className: "rounded-full"
|
|
1552
|
+
...social,
|
|
1553
|
+
variant: "ghost",
|
|
1554
|
+
size: "icon-lg",
|
|
1555
|
+
asButton: true
|
|
1638
1556
|
}
|
|
1639
1557
|
) }, idx)) })
|
|
1640
1558
|
] })
|
|
@@ -1594,14 +1594,14 @@ function FooterNewsletterContact({
|
|
|
1594
1594
|
}, [footerLinks]);
|
|
1595
1595
|
const contactDetailsContent = React__namespace.useMemo(() => {
|
|
1596
1596
|
if (!contactDetails || contactDetails.length === 0) return null;
|
|
1597
|
-
return contactDetails.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-
|
|
1598
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 16
|
|
1599
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children:
|
|
1597
|
+
return contactDetails.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-3", children: [
|
|
1598
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-center shrink-0 mt-1", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 16 }) }),
|
|
1599
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1600
1600
|
Pressable,
|
|
1601
1601
|
{
|
|
1602
|
-
href: item.
|
|
1602
|
+
href: item.link,
|
|
1603
1603
|
className: "underline-offset-4 hover:underline",
|
|
1604
|
-
children: item.
|
|
1604
|
+
children: item.label
|
|
1605
1605
|
}
|
|
1606
1606
|
) })
|
|
1607
1607
|
] }, idx));
|
|
@@ -1666,9 +1666,9 @@ function FooterNewsletterContact({
|
|
|
1666
1666
|
className,
|
|
1667
1667
|
containerClassName,
|
|
1668
1668
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-10", children: [
|
|
1669
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-x-16 gap-y-8 md:grid-cols-2
|
|
1670
|
-
formEngineSetup &&
|
|
1671
|
-
newsletterTitle && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-3xl font-medium
|
|
1669
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-x-6 md:gap-x-8 lg:gap-x-12 xl:gap-x-16 gap-y-8 md:grid-cols-2 lg:grid-cols-4", children: [
|
|
1670
|
+
formEngineSetup && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4 md:space-y-6 col-span-2 md:col-span-1", children: [
|
|
1671
|
+
newsletterTitle && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl md:text-3xl font-medium leading-none", children: newsletterTitle }),
|
|
1672
1672
|
newsletterDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-light leading-normal", children: newsletterDescription }),
|
|
1673
1673
|
renderForm
|
|
1674
1674
|
] }),
|
|
@@ -37,11 +37,11 @@ interface FooterNewsletterContactDetail {
|
|
|
37
37
|
/**
|
|
38
38
|
* Display text
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
label: React.ReactNode;
|
|
41
41
|
/**
|
|
42
42
|
* Link type: "none" | "email" | "phone"
|
|
43
43
|
*/
|
|
44
|
-
type
|
|
44
|
+
type?: "none" | "email" | "phone";
|
|
45
45
|
/**
|
|
46
46
|
* Link value (email address or phone number)
|
|
47
47
|
*/
|
|
@@ -37,11 +37,11 @@ interface FooterNewsletterContactDetail {
|
|
|
37
37
|
/**
|
|
38
38
|
* Display text
|
|
39
39
|
*/
|
|
40
|
-
|
|
40
|
+
label: React.ReactNode;
|
|
41
41
|
/**
|
|
42
42
|
* Link type: "none" | "email" | "phone"
|
|
43
43
|
*/
|
|
44
|
-
type
|
|
44
|
+
type?: "none" | "email" | "phone";
|
|
45
45
|
/**
|
|
46
46
|
* Link value (email address or phone number)
|
|
47
47
|
*/
|
|
@@ -1572,14 +1572,14 @@ function FooterNewsletterContact({
|
|
|
1572
1572
|
}, [footerLinks]);
|
|
1573
1573
|
const contactDetailsContent = React.useMemo(() => {
|
|
1574
1574
|
if (!contactDetails || contactDetails.length === 0) return null;
|
|
1575
|
-
return contactDetails.map((item, idx) => /* @__PURE__ */ jsxs("li", { className: "flex items-
|
|
1576
|
-
/* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 16
|
|
1577
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1", children:
|
|
1575
|
+
return contactDetails.map((item, idx) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
|
|
1576
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center shrink-0 mt-1", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 16 }) }),
|
|
1577
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsx(
|
|
1578
1578
|
Pressable,
|
|
1579
1579
|
{
|
|
1580
|
-
href: item.
|
|
1580
|
+
href: item.link,
|
|
1581
1581
|
className: "underline-offset-4 hover:underline",
|
|
1582
|
-
children: item.
|
|
1582
|
+
children: item.label
|
|
1583
1583
|
}
|
|
1584
1584
|
) })
|
|
1585
1585
|
] }, idx));
|
|
@@ -1644,9 +1644,9 @@ function FooterNewsletterContact({
|
|
|
1644
1644
|
className,
|
|
1645
1645
|
containerClassName,
|
|
1646
1646
|
children: /* @__PURE__ */ jsxs("div", { className: "space-y-10", children: [
|
|
1647
|
-
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-x-16 gap-y-8 md:grid-cols-2
|
|
1648
|
-
formEngineSetup &&
|
|
1649
|
-
newsletterTitle && /* @__PURE__ */ jsx("h3", { className: "text-3xl font-medium
|
|
1647
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-x-6 md:gap-x-8 lg:gap-x-12 xl:gap-x-16 gap-y-8 md:grid-cols-2 lg:grid-cols-4", children: [
|
|
1648
|
+
formEngineSetup && /* @__PURE__ */ jsxs("div", { className: "space-y-4 md:space-y-6 col-span-2 md:col-span-1", children: [
|
|
1649
|
+
newsletterTitle && /* @__PURE__ */ jsx("h3", { className: "text-2xl md:text-3xl font-medium leading-none", children: newsletterTitle }),
|
|
1650
1650
|
newsletterDescription && /* @__PURE__ */ jsx("p", { className: "font-light leading-normal", children: newsletterDescription }),
|
|
1651
1651
|
renderForm
|
|
1652
1652
|
] }),
|