@opensite/ui 1.5.2 → 1.5.3
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/about-location-info-hero.cjs +26 -48
- package/dist/about-location-info-hero.d.cts +1 -1
- package/dist/about-location-info-hero.d.ts +1 -1
- package/dist/about-location-info-hero.js +26 -48
- package/dist/components.cjs +335 -132
- package/dist/components.js +335 -132
- package/dist/footer-animated-social.cjs +10 -1
- package/dist/footer-animated-social.js +10 -1
- package/dist/footer-background-card.cjs +239 -69
- package/dist/footer-background-card.d.cts +9 -1
- package/dist/footer-background-card.d.ts +9 -1
- package/dist/footer-background-card.js +240 -70
- package/dist/footer-nav-social.cjs +156 -61
- package/dist/footer-nav-social.d.cts +9 -1
- package/dist/footer-nav-social.d.ts +9 -1
- package/dist/footer-nav-social.js +156 -61
- package/dist/footer-simple-centered.cjs +1 -1
- package/dist/footer-simple-centered.d.cts +1 -1
- package/dist/footer-simple-centered.d.ts +1 -1
- package/dist/footer-simple-centered.js +1 -1
- package/dist/hero-centered-screenshot.cjs +46 -59
- package/dist/hero-centered-screenshot.d.cts +1 -1
- package/dist/hero-centered-screenshot.d.ts +1 -1
- package/dist/hero-centered-screenshot.js +46 -59
- package/dist/index.cjs +335 -132
- package/dist/index.js +335 -132
- package/dist/registry.cjs +407 -165
- package/dist/registry.js +407 -165
- package/package.json +1 -1
|
@@ -5,7 +5,7 @@ import { clsx } from 'clsx';
|
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Img } from '@page-speed/img';
|
|
7
7
|
import { cva } from 'class-variance-authority';
|
|
8
|
-
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
9
9
|
|
|
10
10
|
// components/blocks/footers/footer-background-card.tsx
|
|
11
11
|
function cn(...inputs) {
|
|
@@ -1336,6 +1336,78 @@ var Section = React__default.forwardRef(
|
|
|
1336
1336
|
}
|
|
1337
1337
|
);
|
|
1338
1338
|
Section.displayName = "Section";
|
|
1339
|
+
function isThemedLogo(logo) {
|
|
1340
|
+
return "light" in logo || "dark" in logo;
|
|
1341
|
+
}
|
|
1342
|
+
var FooterLogo = ({
|
|
1343
|
+
logo,
|
|
1344
|
+
logoSlot,
|
|
1345
|
+
logoClassName,
|
|
1346
|
+
logoImageClassName,
|
|
1347
|
+
logoTitleClassName,
|
|
1348
|
+
optixFlowConfig
|
|
1349
|
+
}) => {
|
|
1350
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
1351
|
+
if (!logo) return null;
|
|
1352
|
+
const hasThemedSources = isThemedLogo(logo) && (logo.light || logo.dark);
|
|
1353
|
+
const hasStandardSource = !isThemedLogo(logo) && logo.src;
|
|
1354
|
+
const logoContent = hasThemedSources ? (
|
|
1355
|
+
// Themed logo with light/dark mode sources
|
|
1356
|
+
/* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1357
|
+
logo.light && /* @__PURE__ */ jsx(
|
|
1358
|
+
Img,
|
|
1359
|
+
{
|
|
1360
|
+
src: logo.light,
|
|
1361
|
+
alt: logo.alt || "Logo",
|
|
1362
|
+
className: cn(
|
|
1363
|
+
"h-8 w-auto object-contain dark:hidden md:h-10",
|
|
1364
|
+
logoImageClassName
|
|
1365
|
+
),
|
|
1366
|
+
optixFlowConfig
|
|
1367
|
+
}
|
|
1368
|
+
),
|
|
1369
|
+
logo.dark && /* @__PURE__ */ jsx(
|
|
1370
|
+
Img,
|
|
1371
|
+
{
|
|
1372
|
+
src: logo.dark,
|
|
1373
|
+
alt: logo.alt || "Logo",
|
|
1374
|
+
className: cn(
|
|
1375
|
+
"hidden h-8 w-auto object-contain dark:block md:h-10",
|
|
1376
|
+
logoImageClassName
|
|
1377
|
+
),
|
|
1378
|
+
optixFlowConfig
|
|
1379
|
+
}
|
|
1380
|
+
)
|
|
1381
|
+
] })
|
|
1382
|
+
) : hasStandardSource ? (
|
|
1383
|
+
// Standard single logo image
|
|
1384
|
+
/* @__PURE__ */ jsx(
|
|
1385
|
+
Img,
|
|
1386
|
+
{
|
|
1387
|
+
src: logo.src,
|
|
1388
|
+
alt: logo.alt || "Logo",
|
|
1389
|
+
className: cn("h-8 w-auto object-contain md:h-10", logoImageClassName),
|
|
1390
|
+
optixFlowConfig
|
|
1391
|
+
}
|
|
1392
|
+
)
|
|
1393
|
+
) : logo.title ? (
|
|
1394
|
+
// Text-based logo fallback
|
|
1395
|
+
/* @__PURE__ */ jsx("span", { className: cn("text-lg font-semibold md:text-xl", logoTitleClassName), children: logo.title })
|
|
1396
|
+
) : null;
|
|
1397
|
+
if (!logoContent) return null;
|
|
1398
|
+
if (logo.url) {
|
|
1399
|
+
return /* @__PURE__ */ jsx(
|
|
1400
|
+
Pressable,
|
|
1401
|
+
{
|
|
1402
|
+
href: logo.url,
|
|
1403
|
+
className: cn("inline-flex items-center", logoClassName),
|
|
1404
|
+
children: logoContent
|
|
1405
|
+
}
|
|
1406
|
+
);
|
|
1407
|
+
}
|
|
1408
|
+
return /* @__PURE__ */ jsx("div", { className: cn("inline-flex items-center", logoClassName), children: logoContent });
|
|
1409
|
+
};
|
|
1410
|
+
var footer_logo_default = FooterLogo;
|
|
1339
1411
|
function FooterBackgroundCard({
|
|
1340
1412
|
logo,
|
|
1341
1413
|
backgroundImage,
|
|
@@ -1349,6 +1421,8 @@ function FooterBackgroundCard({
|
|
|
1349
1421
|
menuItems,
|
|
1350
1422
|
copyright,
|
|
1351
1423
|
bottomLinks,
|
|
1424
|
+
logoWrapperClassName,
|
|
1425
|
+
logoClassName,
|
|
1352
1426
|
className,
|
|
1353
1427
|
cardClassName,
|
|
1354
1428
|
gridClassName,
|
|
@@ -1367,7 +1441,8 @@ function FooterBackgroundCard({
|
|
|
1367
1441
|
copyrightClassName,
|
|
1368
1442
|
bottomLinksClassName,
|
|
1369
1443
|
background,
|
|
1370
|
-
|
|
1444
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
1445
|
+
spacing = "py-6 md:py-32",
|
|
1371
1446
|
pattern,
|
|
1372
1447
|
patternOpacity,
|
|
1373
1448
|
optixFlowConfig
|
|
@@ -1385,79 +1460,174 @@ function FooterBackgroundCard({
|
|
|
1385
1460
|
patternOpacity,
|
|
1386
1461
|
className: cn("bg-cover bg-center bg-no-repeat", className),
|
|
1387
1462
|
style: sectionStyle,
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
}
|
|
1400
|
-
),
|
|
1401
|
-
tagline && /* @__PURE__ */ jsx("h3", { className: cn("text-2xl font-medium", taglineClassName), children: tagline })
|
|
1402
|
-
] }),
|
|
1403
|
-
personalMessage && /* @__PURE__ */ jsx("p", { className: cn("mb-6 text-sm leading-relaxed opacity-80", messageClassName), children: personalMessage }),
|
|
1404
|
-
ctaText && /* @__PURE__ */ jsx(
|
|
1405
|
-
Pressable,
|
|
1406
|
-
{
|
|
1407
|
-
href: ctaUrl || "#",
|
|
1408
|
-
className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:opacity-80 h-10 px-4 py-2", ctaClassName),
|
|
1409
|
-
children: ctaText
|
|
1410
|
-
}
|
|
1411
|
-
)
|
|
1412
|
-
] }),
|
|
1413
|
-
menuItems && menuItems.length > 0 && menuItems.map((menu, idx) => /* @__PURE__ */ jsxs("div", { className: cn(menuSectionClassName), children: [
|
|
1414
|
-
/* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", menuTitleClassName), children: menu.title }),
|
|
1415
|
-
/* @__PURE__ */ jsx("ul", { className: "space-y-3", children: menu.links.map((link, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1416
|
-
Pressable,
|
|
1463
|
+
containerClassName,
|
|
1464
|
+
children: /* @__PURE__ */ jsxs(
|
|
1465
|
+
"div",
|
|
1466
|
+
{
|
|
1467
|
+
className: cn(
|
|
1468
|
+
"mx-auto max-w-7xl rounded-2xl p-12 shadow-xl md:p-16 bg-card text-card-foreground",
|
|
1469
|
+
cardClassName
|
|
1470
|
+
),
|
|
1471
|
+
children: [
|
|
1472
|
+
/* @__PURE__ */ jsxs(
|
|
1473
|
+
"div",
|
|
1417
1474
|
{
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1475
|
+
className: cn(
|
|
1476
|
+
"grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4 lg:gap-12",
|
|
1477
|
+
gridClassName
|
|
1478
|
+
),
|
|
1479
|
+
children: [
|
|
1480
|
+
(profileImage || tagline || personalMessage || ctaText || logo) && /* @__PURE__ */ jsxs("div", { className: cn("lg:col-span-1", profileSectionClassName), children: [
|
|
1481
|
+
/* @__PURE__ */ jsx(
|
|
1482
|
+
footer_logo_default,
|
|
1483
|
+
{
|
|
1484
|
+
logo,
|
|
1485
|
+
logoClassName: cn("mb-12", logoWrapperClassName),
|
|
1486
|
+
logoImageClassName: logoClassName,
|
|
1487
|
+
optixFlowConfig
|
|
1488
|
+
}
|
|
1489
|
+
),
|
|
1490
|
+
(profileImage || tagline) && /* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center gap-4", children: [
|
|
1491
|
+
profileImage && /* @__PURE__ */ jsx(
|
|
1492
|
+
Img,
|
|
1493
|
+
{
|
|
1494
|
+
src: profileImage,
|
|
1495
|
+
alt: "Profile",
|
|
1496
|
+
className: cn(
|
|
1497
|
+
"h-16 w-16 rounded-full object-cover",
|
|
1498
|
+
profileImageClassName
|
|
1499
|
+
),
|
|
1500
|
+
optixFlowConfig
|
|
1501
|
+
}
|
|
1502
|
+
),
|
|
1503
|
+
tagline && /* @__PURE__ */ jsx(
|
|
1504
|
+
"h3",
|
|
1505
|
+
{
|
|
1506
|
+
className: cn("text-2xl font-medium", taglineClassName),
|
|
1507
|
+
children: tagline
|
|
1508
|
+
}
|
|
1509
|
+
)
|
|
1510
|
+
] }),
|
|
1511
|
+
personalMessage && /* @__PURE__ */ jsx(
|
|
1512
|
+
"p",
|
|
1513
|
+
{
|
|
1514
|
+
className: cn(
|
|
1515
|
+
"mb-6 text-sm leading-relaxed opacity-80",
|
|
1516
|
+
messageClassName
|
|
1517
|
+
),
|
|
1518
|
+
children: personalMessage
|
|
1519
|
+
}
|
|
1520
|
+
),
|
|
1521
|
+
ctaText && /* @__PURE__ */ jsx(
|
|
1522
|
+
Pressable,
|
|
1523
|
+
{
|
|
1524
|
+
href: ctaUrl || "#",
|
|
1525
|
+
className: cn(
|
|
1526
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:opacity-80 h-10 px-4 py-2",
|
|
1527
|
+
ctaClassName
|
|
1528
|
+
),
|
|
1529
|
+
children: ctaText
|
|
1530
|
+
}
|
|
1531
|
+
)
|
|
1532
|
+
] }),
|
|
1533
|
+
menuItems && menuItems.length > 0 && menuItems.map((menu, idx) => /* @__PURE__ */ jsxs(
|
|
1534
|
+
"div",
|
|
1535
|
+
{
|
|
1536
|
+
className: cn("pl-0 md:pl-8", menuSectionClassName),
|
|
1537
|
+
children: [
|
|
1538
|
+
/* @__PURE__ */ jsx(
|
|
1539
|
+
"h3",
|
|
1540
|
+
{
|
|
1541
|
+
className: cn(
|
|
1542
|
+
"mb-4 text-sm font-medium tracking-wider uppercase",
|
|
1543
|
+
menuTitleClassName
|
|
1544
|
+
),
|
|
1545
|
+
children: menu.title
|
|
1546
|
+
}
|
|
1547
|
+
),
|
|
1548
|
+
/* @__PURE__ */ jsx("ul", { className: "space-y-3", children: menu.links.map((link, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1549
|
+
Pressable,
|
|
1550
|
+
{
|
|
1551
|
+
href: link.url,
|
|
1552
|
+
className: cn(
|
|
1553
|
+
"border-b border-transparent opacity-80 transition-all duration-300 ease-in-out hover:opacity-100",
|
|
1554
|
+
menuLinkClassName
|
|
1555
|
+
),
|
|
1556
|
+
children: link.text
|
|
1557
|
+
}
|
|
1558
|
+
) }, index)) })
|
|
1559
|
+
]
|
|
1560
|
+
},
|
|
1561
|
+
idx
|
|
1562
|
+
)),
|
|
1563
|
+
(contactTitle || contact) && /* @__PURE__ */ jsxs("div", { className: cn("pl-0 md:pl-8", contactSectionClassName), children: [
|
|
1564
|
+
contactTitle && /* @__PURE__ */ jsx(
|
|
1565
|
+
"h3",
|
|
1566
|
+
{
|
|
1567
|
+
className: cn(
|
|
1568
|
+
"mb-4 text-sm font-medium tracking-wider uppercase",
|
|
1569
|
+
contactTitleClassName
|
|
1570
|
+
),
|
|
1571
|
+
children: contactTitle
|
|
1572
|
+
}
|
|
1573
|
+
),
|
|
1574
|
+
contact && /* @__PURE__ */ jsxs("ul", { className: "space-y-3", children: [
|
|
1575
|
+
contact.phone && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.phone }),
|
|
1576
|
+
contact.email && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.email }),
|
|
1577
|
+
(contact.location || contact.timezone) && /* @__PURE__ */ jsxs("li", { className: cn("opacity-80", contactItemClassName), children: [
|
|
1578
|
+
contact.location,
|
|
1579
|
+
contact.location && contact.timezone && " \u2022 ",
|
|
1580
|
+
contact.timezone
|
|
1581
|
+
] })
|
|
1582
|
+
] })
|
|
1583
|
+
] })
|
|
1584
|
+
]
|
|
1421
1585
|
}
|
|
1422
|
-
)
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
contactTitle && /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", contactTitleClassName), children: contactTitle }),
|
|
1426
|
-
contact && /* @__PURE__ */ jsxs("ul", { className: "space-y-3", children: [
|
|
1427
|
-
contact.phone && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.phone }),
|
|
1428
|
-
contact.email && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.email }),
|
|
1429
|
-
(contact.location || contact.timezone) && /* @__PURE__ */ jsxs("li", { className: cn("opacity-80", contactItemClassName), children: [
|
|
1430
|
-
contact.location,
|
|
1431
|
-
contact.location && contact.timezone && " \u2022 ",
|
|
1432
|
-
contact.timezone
|
|
1433
|
-
] })
|
|
1434
|
-
] })
|
|
1435
|
-
] })
|
|
1436
|
-
] }),
|
|
1437
|
-
/* @__PURE__ */ jsxs("div", { className: cn("mt-12 flex flex-col items-center justify-between gap-4 border-t pt-8 md:flex-row", bottomClassName), children: [
|
|
1438
|
-
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
|
|
1439
|
-
/* @__PURE__ */ jsx(FooterCopyright, { copyright }),
|
|
1440
|
-
/* @__PURE__ */ jsx(
|
|
1441
|
-
BrandAttribution,
|
|
1586
|
+
),
|
|
1587
|
+
/* @__PURE__ */ jsxs(
|
|
1588
|
+
"div",
|
|
1442
1589
|
{
|
|
1443
|
-
|
|
1444
|
-
|
|
1445
|
-
|
|
1446
|
-
|
|
1590
|
+
className: cn(
|
|
1591
|
+
"mt-12 flex flex-col items-center justify-between gap-4 border-t pt-8 md:flex-row",
|
|
1592
|
+
bottomClassName
|
|
1593
|
+
),
|
|
1594
|
+
children: [
|
|
1595
|
+
/* @__PURE__ */ jsxs(
|
|
1596
|
+
"div",
|
|
1597
|
+
{
|
|
1598
|
+
className: cn(
|
|
1599
|
+
"flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4",
|
|
1600
|
+
copyrightClassName
|
|
1601
|
+
),
|
|
1602
|
+
children: [
|
|
1603
|
+
/* @__PURE__ */ jsx(FooterCopyright, { copyright }),
|
|
1604
|
+
/* @__PURE__ */ jsx(
|
|
1605
|
+
BrandAttribution,
|
|
1606
|
+
{
|
|
1607
|
+
internalBrandSlug: "open_site_ai",
|
|
1608
|
+
optionIndex: 3,
|
|
1609
|
+
variant: "span",
|
|
1610
|
+
linkClassName: "hover:opacity-100"
|
|
1611
|
+
}
|
|
1612
|
+
)
|
|
1613
|
+
]
|
|
1614
|
+
}
|
|
1615
|
+
),
|
|
1616
|
+
bottomLinks && bottomLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("flex gap-4", bottomLinksClassName), children: bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
1617
|
+
Pressable,
|
|
1618
|
+
{
|
|
1619
|
+
href: link.url,
|
|
1620
|
+
className: "text-sm opacity-80 transition-colors hover:opacity-100",
|
|
1621
|
+
children: link.text
|
|
1622
|
+
},
|
|
1623
|
+
idx
|
|
1624
|
+
)) })
|
|
1625
|
+
]
|
|
1447
1626
|
}
|
|
1448
1627
|
)
|
|
1449
|
-
]
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
{
|
|
1453
|
-
href: link.url,
|
|
1454
|
-
className: "text-sm opacity-80 transition-colors hover:opacity-100",
|
|
1455
|
-
children: link.text
|
|
1456
|
-
},
|
|
1457
|
-
idx
|
|
1458
|
-
)) })
|
|
1459
|
-
] })
|
|
1460
|
-
] })
|
|
1628
|
+
]
|
|
1629
|
+
}
|
|
1630
|
+
)
|
|
1461
1631
|
}
|
|
1462
1632
|
);
|
|
1463
1633
|
}
|
|
@@ -1631,6 +1631,7 @@ function FooterNavSocial({
|
|
|
1631
1631
|
gridClassName,
|
|
1632
1632
|
leftColumnClassName,
|
|
1633
1633
|
logoWrapperClassName,
|
|
1634
|
+
formConfig,
|
|
1634
1635
|
logoClassName,
|
|
1635
1636
|
navGridClassName,
|
|
1636
1637
|
navSectionClassName,
|
|
@@ -1651,7 +1652,8 @@ function FooterNavSocial({
|
|
|
1651
1652
|
legalLinksClassName,
|
|
1652
1653
|
legalLinkClassName,
|
|
1653
1654
|
background,
|
|
1654
|
-
|
|
1655
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
1656
|
+
spacing = "py-12 md:py-40",
|
|
1655
1657
|
pattern,
|
|
1656
1658
|
patternOpacity,
|
|
1657
1659
|
optixFlowConfig
|
|
@@ -1660,16 +1662,15 @@ function FooterNavSocial({
|
|
|
1660
1662
|
if (!sections || sections.length === 0) return null;
|
|
1661
1663
|
return sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
|
|
1662
1664
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
|
|
1663
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-3 text-sm opacity-80", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn(navLinkClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1664
|
-
Pressable,
|
|
1665
|
-
{
|
|
1666
|
-
href: link.href,
|
|
1667
|
-
className: "hover:opacity-100",
|
|
1668
|
-
children: link.name
|
|
1669
|
-
}
|
|
1670
|
-
) }, linkIdx)) })
|
|
1665
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-3 text-sm opacity-80", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn(navLinkClassName), children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, className: "hover:opacity-100", children: link.name }) }, linkIdx)) })
|
|
1671
1666
|
] }, sectionIdx));
|
|
1672
|
-
}, [
|
|
1667
|
+
}, [
|
|
1668
|
+
sections,
|
|
1669
|
+
navSectionClassName,
|
|
1670
|
+
navTitleClassName,
|
|
1671
|
+
navLinksClassName,
|
|
1672
|
+
navLinkClassName
|
|
1673
|
+
]);
|
|
1673
1674
|
const socialLinksContent = React.useMemo(() => {
|
|
1674
1675
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
1675
1676
|
return socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1678,7 +1679,10 @@ function FooterNavSocial({
|
|
|
1678
1679
|
href: social.href,
|
|
1679
1680
|
label: social.label,
|
|
1680
1681
|
iconNameOverride: social.iconNameOverride,
|
|
1681
|
-
className: cn(
|
|
1682
|
+
className: cn(
|
|
1683
|
+
"opacity-80 transition-colors hover:opacity-100",
|
|
1684
|
+
socialLinkClassName
|
|
1685
|
+
)
|
|
1682
1686
|
}
|
|
1683
1687
|
) }, idx));
|
|
1684
1688
|
}, [socialLinks, socialLinkClassName]);
|
|
@@ -1694,64 +1698,155 @@ function FooterNavSocial({
|
|
|
1694
1698
|
pattern,
|
|
1695
1699
|
patternOpacity,
|
|
1696
1700
|
className: cn(className),
|
|
1701
|
+
containerClassName,
|
|
1697
1702
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
|
|
1698
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
logoClassName: cn("mb-8", logoWrapperClassName),
|
|
1705
|
-
logoImageClassName: logoClassName,
|
|
1706
|
-
optixFlowConfig
|
|
1707
|
-
}
|
|
1703
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1704
|
+
"div",
|
|
1705
|
+
{
|
|
1706
|
+
className: cn(
|
|
1707
|
+
"grid gap-12 md:gap-24 lg:grid-cols-2",
|
|
1708
|
+
gridClassName
|
|
1708
1709
|
),
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
newsletterHeading && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-2 text-lg font-semibold", newsletterHeadingClassName), children: newsletterHeading }),
|
|
1714
|
-
newsletterDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm opacity-80", newsletterDescriptionClassName), children: newsletterDescription }),
|
|
1715
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex max-w-md gap-2", newsletterFormClassName), children: [
|
|
1716
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1717
|
-
"input",
|
|
1710
|
+
children: [
|
|
1711
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(leftColumnClassName), children: [
|
|
1712
|
+
logo && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1713
|
+
FooterLogo,
|
|
1718
1714
|
{
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1715
|
+
logo,
|
|
1716
|
+
logoClassName: cn("mb-8", logoWrapperClassName),
|
|
1717
|
+
logoImageClassName: logoClassName,
|
|
1718
|
+
optixFlowConfig
|
|
1722
1719
|
}
|
|
1723
1720
|
),
|
|
1724
|
-
|
|
1725
|
-
"
|
|
1721
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1722
|
+
"div",
|
|
1726
1723
|
{
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1724
|
+
className: cn(
|
|
1725
|
+
"grid md:flex w-full gap-8 md:gap-6 lg:gap-12 md:flex-wrap md:justify-between grid-cols-2",
|
|
1726
|
+
navGridClassName
|
|
1727
|
+
),
|
|
1728
|
+
children: sectionsContent
|
|
1730
1729
|
}
|
|
1731
1730
|
)
|
|
1732
|
-
] })
|
|
1733
|
-
|
|
1734
|
-
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
1752
|
-
|
|
1753
|
-
|
|
1754
|
-
|
|
1731
|
+
] }),
|
|
1732
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1733
|
+
"div",
|
|
1734
|
+
{
|
|
1735
|
+
className: cn(
|
|
1736
|
+
"flex flex-col justify-between mt-0 md:mt-16 space-y-8 md:space-y-12",
|
|
1737
|
+
rightColumnClassName
|
|
1738
|
+
),
|
|
1739
|
+
children: [
|
|
1740
|
+
formConfig && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("", newsletterClassName), children: [
|
|
1741
|
+
newsletterHeading && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1742
|
+
"h3",
|
|
1743
|
+
{
|
|
1744
|
+
className: cn(
|
|
1745
|
+
"mb-4 font-medium",
|
|
1746
|
+
newsletterHeadingClassName
|
|
1747
|
+
),
|
|
1748
|
+
children: newsletterHeading
|
|
1749
|
+
}
|
|
1750
|
+
),
|
|
1751
|
+
newsletterDescription && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1752
|
+
"p",
|
|
1753
|
+
{
|
|
1754
|
+
className: cn(
|
|
1755
|
+
"mb-4 text-sm opacity-80",
|
|
1756
|
+
newsletterDescriptionClassName
|
|
1757
|
+
),
|
|
1758
|
+
children: newsletterDescription
|
|
1759
|
+
}
|
|
1760
|
+
),
|
|
1761
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1762
|
+
"div",
|
|
1763
|
+
{
|
|
1764
|
+
className: cn(
|
|
1765
|
+
"flex max-w-md gap-2",
|
|
1766
|
+
newsletterFormClassName
|
|
1767
|
+
),
|
|
1768
|
+
children: [
|
|
1769
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1770
|
+
"input",
|
|
1771
|
+
{
|
|
1772
|
+
type: "email",
|
|
1773
|
+
placeholder: newsletterPlaceholder,
|
|
1774
|
+
className: "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
|
|
1775
|
+
}
|
|
1776
|
+
),
|
|
1777
|
+
newsletterButtonText && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1778
|
+
"button",
|
|
1779
|
+
{
|
|
1780
|
+
type: "submit",
|
|
1781
|
+
className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
|
|
1782
|
+
children: newsletterButtonText
|
|
1783
|
+
}
|
|
1784
|
+
)
|
|
1785
|
+
]
|
|
1786
|
+
}
|
|
1787
|
+
)
|
|
1788
|
+
] }),
|
|
1789
|
+
(socialTitle || socialLinksContent) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(socialSectionClassName), children: [
|
|
1790
|
+
socialTitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 font-medium", socialTitleClassName), children: socialTitle }),
|
|
1791
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1792
|
+
"ul",
|
|
1793
|
+
{
|
|
1794
|
+
className: cn(
|
|
1795
|
+
"flex items-center gap-4",
|
|
1796
|
+
socialLinksClassName
|
|
1797
|
+
),
|
|
1798
|
+
children: socialLinksContent
|
|
1799
|
+
}
|
|
1800
|
+
)
|
|
1801
|
+
] })
|
|
1802
|
+
]
|
|
1803
|
+
}
|
|
1804
|
+
)
|
|
1805
|
+
]
|
|
1806
|
+
}
|
|
1807
|
+
),
|
|
1808
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1809
|
+
"div",
|
|
1810
|
+
{
|
|
1811
|
+
className: cn(
|
|
1812
|
+
"mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm opacity-80 md:flex-row md:items-center",
|
|
1813
|
+
bottomClassName
|
|
1814
|
+
),
|
|
1815
|
+
children: [
|
|
1816
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1817
|
+
"div",
|
|
1818
|
+
{
|
|
1819
|
+
className: cn(
|
|
1820
|
+
"flex flex-col gap-2 md:flex-row md:items-center md:gap-4",
|
|
1821
|
+
copyrightClassName
|
|
1822
|
+
),
|
|
1823
|
+
children: [
|
|
1824
|
+
/* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
|
|
1825
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1826
|
+
BrandAttribution,
|
|
1827
|
+
{
|
|
1828
|
+
internalBrandSlug: "open_site_ai",
|
|
1829
|
+
optionIndex: 1,
|
|
1830
|
+
variant: "span",
|
|
1831
|
+
linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
|
|
1832
|
+
}
|
|
1833
|
+
)
|
|
1834
|
+
]
|
|
1835
|
+
}
|
|
1836
|
+
),
|
|
1837
|
+
legalLinksContent && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1838
|
+
"ul",
|
|
1839
|
+
{
|
|
1840
|
+
className: cn(
|
|
1841
|
+
"pt-4 md:pt-0 gap-4 grid md:flex grid-cols-2 items-center w-full md:w-fit",
|
|
1842
|
+
legalLinksClassName
|
|
1843
|
+
),
|
|
1844
|
+
children: legalLinksContent
|
|
1845
|
+
}
|
|
1846
|
+
)
|
|
1847
|
+
]
|
|
1848
|
+
}
|
|
1849
|
+
)
|
|
1755
1850
|
] }) })
|
|
1756
1851
|
}
|
|
1757
1852
|
);
|
|
@@ -86,6 +86,10 @@ interface FooterNavSocialProps {
|
|
|
86
86
|
navLinkClassName?: string;
|
|
87
87
|
/** Additional CSS classes for the right column */
|
|
88
88
|
rightColumnClassName?: string;
|
|
89
|
+
/** Config for submitting forms to server */
|
|
90
|
+
formConfig?: {
|
|
91
|
+
token: string;
|
|
92
|
+
};
|
|
89
93
|
/** Additional CSS classes for the newsletter section */
|
|
90
94
|
newsletterClassName?: string;
|
|
91
95
|
/** Additional CSS classes for the newsletter heading */
|
|
@@ -112,6 +116,10 @@ interface FooterNavSocialProps {
|
|
|
112
116
|
legalLinkClassName?: string;
|
|
113
117
|
/** Section background variant */
|
|
114
118
|
background?: SectionBackground;
|
|
119
|
+
/**
|
|
120
|
+
* Additional CSS classes for the container
|
|
121
|
+
*/
|
|
122
|
+
containerClassName?: string;
|
|
115
123
|
/** Section spacing variant */
|
|
116
124
|
spacing?: SectionSpacing;
|
|
117
125
|
/** Optional background pattern */
|
|
@@ -129,6 +137,6 @@ interface FooterNavSocialProps {
|
|
|
129
137
|
* websites, and businesses that want a complete footer with all essential elements
|
|
130
138
|
* organized in a clean, professional layout.
|
|
131
139
|
*/
|
|
132
|
-
declare function FooterNavSocial({ logo, sections, socialLinks, newsletterHeading, newsletterDescription, newsletterPlaceholder, newsletterButtonText, socialTitle, copyright, legalLinks, className, contentClassName, gridClassName, leftColumnClassName, logoWrapperClassName, logoClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, rightColumnClassName, newsletterClassName, newsletterHeadingClassName, newsletterDescriptionClassName, newsletterFormClassName, socialSectionClassName, socialTitleClassName, socialLinksClassName, socialLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterNavSocialProps): React.JSX.Element;
|
|
140
|
+
declare function FooterNavSocial({ logo, sections, socialLinks, newsletterHeading, newsletterDescription, newsletterPlaceholder, newsletterButtonText, socialTitle, copyright, legalLinks, className, contentClassName, gridClassName, leftColumnClassName, logoWrapperClassName, formConfig, logoClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, rightColumnClassName, newsletterClassName, newsletterHeadingClassName, newsletterDescriptionClassName, newsletterFormClassName, socialSectionClassName, socialTitleClassName, socialLinksClassName, socialLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, containerClassName, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterNavSocialProps): React.JSX.Element;
|
|
133
141
|
|
|
134
142
|
export { FooterNavSocial, type FooterNavSocialProps, type FooterNavSocialSection };
|