@opensite/ui 2.4.7 → 2.4.9
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-developer-profile.cjs +1 -1
- package/dist/about-developer-profile.js +1 -1
- package/dist/about-stats-sidebar.cjs +5 -3
- package/dist/about-stats-sidebar.js +5 -3
- package/dist/about-story-hero.cjs +119 -105
- package/dist/about-story-hero.js +101 -102
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/cta-accent-background.cjs +8 -69
- package/dist/cta-accent-background.d.cts +1 -1
- package/dist/cta-accent-background.d.ts +1 -1
- package/dist/cta-accent-background.js +8 -69
- package/dist/cta-app-download-newsletter.cjs +4 -81
- package/dist/cta-app-download-newsletter.js +4 -81
- package/dist/faq-badge-support.cjs +97 -84
- package/dist/faq-badge-support.d.cts +1 -1
- package/dist/faq-badge-support.d.ts +1 -1
- package/dist/faq-badge-support.js +97 -83
- package/dist/faq-sidebar-navigation.cjs +106 -72
- package/dist/faq-sidebar-navigation.d.cts +1 -1
- package/dist/faq-sidebar-navigation.d.ts +1 -1
- package/dist/faq-sidebar-navigation.js +104 -70
- package/dist/faq-simple-accordion.cjs +83 -50
- package/dist/faq-simple-accordion.d.cts +13 -1
- package/dist/faq-simple-accordion.d.ts +13 -1
- package/dist/faq-simple-accordion.js +82 -46
- package/dist/feature-accordion-image.cjs +115 -85
- package/dist/feature-accordion-image.js +113 -83
- package/dist/feature-animated-carousel.cjs +2 -2
- package/dist/feature-animated-carousel.js +2 -2
- package/dist/feature-image-cards-three-column.cjs +2 -2
- package/dist/feature-image-cards-three-column.js +2 -2
- package/dist/footer-accordion-social.cjs +1 -1
- package/dist/footer-accordion-social.js +1 -1
- package/dist/footer-animated-social.cjs +1 -1
- package/dist/footer-animated-social.js +1 -1
- package/dist/footer-brand-description.cjs +1 -1
- package/dist/footer-brand-description.js +1 -1
- package/dist/footer-brand-links-contact.cjs +1 -1
- package/dist/footer-brand-links-contact.js +1 -1
- package/dist/footer-comprehensive-links.cjs +1 -1
- package/dist/footer-comprehensive-links.js +1 -1
- package/dist/footer-contact-card.cjs +1 -1
- package/dist/footer-contact-card.js +1 -1
- package/dist/footer-cta-banner.cjs +1 -1
- package/dist/footer-cta-banner.js +1 -1
- package/dist/footer-cta-social.cjs +1 -1
- package/dist/footer-cta-social.js +1 -1
- package/dist/footer-info-cards-accordion.cjs +1 -1
- package/dist/footer-info-cards-accordion.js +1 -1
- package/dist/footer-nav-social.cjs +1 -1
- package/dist/footer-nav-social.js +1 -1
- package/dist/footer-newsletter-contact.cjs +1 -1
- package/dist/footer-newsletter-contact.js +1 -1
- package/dist/footer-newsletter-grid.cjs +1 -1
- package/dist/footer-newsletter-grid.js +1 -1
- package/dist/footer-newsletter-minimal.cjs +1 -1
- package/dist/footer-newsletter-minimal.js +1 -1
- package/dist/footer-social-apps.cjs +1 -1
- package/dist/footer-social-apps.js +1 -1
- package/dist/footer-social-newsletter.cjs +1 -1
- package/dist/footer-social-newsletter.js +1 -1
- package/dist/footer-split-image-accordion.cjs +1 -1
- package/dist/footer-split-image-accordion.js +1 -1
- package/dist/hero-coming-soon-countdown.cjs +1 -1
- package/dist/hero-coming-soon-countdown.js +1 -1
- package/dist/hero-event-registration.cjs +1 -1
- package/dist/hero-event-registration.js +1 -1
- package/dist/hero-product-showcase-floating.cjs +120 -90
- package/dist/hero-product-showcase-floating.d.cts +5 -1
- package/dist/hero-product-showcase-floating.d.ts +5 -1
- package/dist/hero-product-showcase-floating.js +120 -90
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/link-page-bento-layout.cjs +1 -1
- package/dist/link-page-bento-layout.js +1 -1
- package/dist/link-page-grid-cards.cjs +1 -1
- package/dist/link-page-grid-cards.js +1 -1
- package/dist/link-page-minimal-profile.cjs +1 -1
- package/dist/link-page-minimal-profile.js +1 -1
- package/dist/link-page-newsletter-social.cjs +1 -1
- package/dist/link-page-newsletter-social.js +1 -1
- package/dist/link-tree-block.cjs +1 -1
- package/dist/link-tree-block.js +1 -1
- package/dist/navbar-fullscreen-menu.cjs +1 -1
- package/dist/navbar-fullscreen-menu.js +1 -1
- package/dist/navbar-transparent-overlay.cjs +1 -1
- package/dist/navbar-transparent-overlay.js +1 -1
- package/dist/registry.cjs +397 -290
- package/dist/registry.js +397 -290
- package/dist/social-link-icon.cjs +1 -1
- package/dist/social-link-icon.js +1 -1
- package/package.json +2 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var img = require('@page-speed/img');
|
|
@@ -27,39 +27,13 @@ function _interopNamespace(e) {
|
|
|
27
27
|
return Object.freeze(n);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
31
31
|
var AccordionPrimitive__namespace = /*#__PURE__*/_interopNamespace(AccordionPrimitive);
|
|
32
32
|
|
|
33
33
|
// components/blocks/features/feature-accordion-image.tsx
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
37
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
38
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
39
|
-
if (isDark) {
|
|
40
|
-
switch (variant) {
|
|
41
|
-
case "default":
|
|
42
|
-
return "text-foreground";
|
|
43
|
-
case "muted":
|
|
44
|
-
return "text-foreground/80";
|
|
45
|
-
case "subtle":
|
|
46
|
-
return "text-foreground/60";
|
|
47
|
-
case "accent":
|
|
48
|
-
return "text-accent-foreground";
|
|
49
|
-
}
|
|
50
|
-
} else {
|
|
51
|
-
switch (variant) {
|
|
52
|
-
case "default":
|
|
53
|
-
return "text-foreground";
|
|
54
|
-
case "muted":
|
|
55
|
-
return "text-muted-foreground";
|
|
56
|
-
case "subtle":
|
|
57
|
-
return "text-muted-foreground/70";
|
|
58
|
-
case "accent":
|
|
59
|
-
return "text-primary";
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
37
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
64
38
|
function DynamicIcon({ apiKey, ...props }) {
|
|
65
39
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
@@ -133,7 +107,7 @@ var maxWidthStyles = {
|
|
|
133
107
|
"4xl": "max-w-[1536px]",
|
|
134
108
|
full: "max-w-full"
|
|
135
109
|
};
|
|
136
|
-
var Container =
|
|
110
|
+
var Container = React4__namespace.default.forwardRef(
|
|
137
111
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
138
112
|
const Component = as;
|
|
139
113
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -438,7 +412,7 @@ var spacingStyles = {
|
|
|
438
412
|
};
|
|
439
413
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
|
|
440
414
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
441
|
-
var Section =
|
|
415
|
+
var Section = React4__namespace.default.forwardRef(
|
|
442
416
|
({
|
|
443
417
|
id,
|
|
444
418
|
title,
|
|
@@ -499,6 +473,38 @@ var Section = React__namespace.default.forwardRef(
|
|
|
499
473
|
}
|
|
500
474
|
);
|
|
501
475
|
Section.displayName = "Section";
|
|
476
|
+
function TextInner({ as, className, children, ...props }, ref) {
|
|
477
|
+
const Component = as || "span";
|
|
478
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Component, { ref, className: cn(className), ...props, children });
|
|
479
|
+
}
|
|
480
|
+
var Text = React4__namespace.forwardRef(TextInner);
|
|
481
|
+
Text.displayName = "Text";
|
|
482
|
+
function isContentTextItem(item) {
|
|
483
|
+
return item !== null && typeof item === "object" && !React4__namespace.isValidElement(item) && "_type" in item && item._type === "text";
|
|
484
|
+
}
|
|
485
|
+
var ContentGroup = React4__namespace.forwardRef(
|
|
486
|
+
({ items, className, children, ...props }, ref) => {
|
|
487
|
+
const hasContent = items && items.length > 0;
|
|
488
|
+
if (!hasContent) {
|
|
489
|
+
return null;
|
|
490
|
+
}
|
|
491
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { ref, className: cn(className), ...props, children: [
|
|
492
|
+
items.map((item, idx) => {
|
|
493
|
+
if (isContentTextItem(item)) {
|
|
494
|
+
const { _type, ...textProps } = item;
|
|
495
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Text, { ...textProps }, idx);
|
|
496
|
+
}
|
|
497
|
+
const reactNode = item;
|
|
498
|
+
if (React4__namespace.isValidElement(reactNode)) {
|
|
499
|
+
return React4__namespace.cloneElement(reactNode, { key: reactNode.key ?? idx });
|
|
500
|
+
}
|
|
501
|
+
return /* @__PURE__ */ jsxRuntime.jsx(React4__namespace.Fragment, { children: reactNode }, idx);
|
|
502
|
+
}),
|
|
503
|
+
children
|
|
504
|
+
] });
|
|
505
|
+
}
|
|
506
|
+
);
|
|
507
|
+
ContentGroup.displayName = "ContentGroup";
|
|
502
508
|
function FeatureAccordionImage({
|
|
503
509
|
title,
|
|
504
510
|
description,
|
|
@@ -521,10 +527,9 @@ function FeatureAccordionImage({
|
|
|
521
527
|
patternOpacity,
|
|
522
528
|
patternClassName
|
|
523
529
|
}) {
|
|
524
|
-
const [activeItem, setActiveItem] =
|
|
530
|
+
const [activeItem, setActiveItem] = React4__namespace.useState(defaultValue || "item-0");
|
|
525
531
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
526
|
-
const
|
|
527
|
-
const accordionItemsContent = React.useMemo(() => {
|
|
532
|
+
const accordionItemsContent = React4.useMemo(() => {
|
|
528
533
|
if (itemsSlot) return itemsSlot;
|
|
529
534
|
if (!items || items.length === 0) return null;
|
|
530
535
|
return items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -537,44 +542,90 @@ function FeatureAccordionImage({
|
|
|
537
542
|
AccordionTrigger,
|
|
538
543
|
{
|
|
539
544
|
className: cn(
|
|
540
|
-
"text-left
|
|
545
|
+
"text-left md:text-lg font-medium",
|
|
541
546
|
item.triggerClassName
|
|
542
547
|
),
|
|
543
548
|
children: item.title
|
|
544
549
|
}
|
|
545
550
|
),
|
|
546
|
-
item.content && /* @__PURE__ */ jsxRuntime.jsx(
|
|
547
|
-
AccordionContent,
|
|
548
|
-
{
|
|
549
|
-
className: cn(
|
|
550
|
-
getTextColor(background, "muted"),
|
|
551
|
-
item.contentClassName
|
|
552
|
-
),
|
|
553
|
-
children: item.content
|
|
554
|
-
}
|
|
555
|
-
)
|
|
551
|
+
item.content && /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: cn(item.contentClassName), children: item.content })
|
|
556
552
|
]
|
|
557
553
|
},
|
|
558
554
|
index
|
|
559
555
|
));
|
|
560
556
|
}, [itemsSlot, items]);
|
|
561
|
-
const imageContent =
|
|
562
|
-
if (
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
557
|
+
const imageContent = React4.useMemo(() => {
|
|
558
|
+
if (!items || items.length === 0) return null;
|
|
559
|
+
const hasImageSlot = items.some((item) => item.imageSlot);
|
|
560
|
+
if (hasImageSlot) {
|
|
561
|
+
const current = items[activeIndex] || items[0];
|
|
562
|
+
if (current?.imageSlot) return current.imageSlot;
|
|
563
|
+
if (!current?.imageSrc) return null;
|
|
564
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
565
|
+
img.Img,
|
|
566
|
+
{
|
|
567
|
+
src: current.imageSrc,
|
|
568
|
+
alt: current.imageAlt || "Feature Image",
|
|
569
|
+
className: cn(
|
|
570
|
+
"h-full w-full object-cover transition-opacity duration-500",
|
|
571
|
+
imageClassName
|
|
572
|
+
),
|
|
573
|
+
loading: "eager",
|
|
574
|
+
optixFlowConfig
|
|
575
|
+
}
|
|
576
|
+
);
|
|
577
|
+
}
|
|
578
|
+
return items.map((item, index) => {
|
|
579
|
+
if (!item.imageSrc) return null;
|
|
580
|
+
const isActive = index === activeIndex;
|
|
581
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
582
|
+
img.Img,
|
|
583
|
+
{
|
|
584
|
+
src: item.imageSrc,
|
|
585
|
+
alt: item.imageAlt || "Feature Image",
|
|
586
|
+
className: cn(
|
|
587
|
+
"absolute inset-0 h-full w-full object-cover transition-opacity duration-500 ease-in-out",
|
|
588
|
+
isActive ? "opacity-100" : "opacity-0",
|
|
589
|
+
imageClassName
|
|
590
|
+
),
|
|
591
|
+
loading: "eager",
|
|
592
|
+
optixFlowConfig
|
|
593
|
+
},
|
|
594
|
+
index
|
|
595
|
+
);
|
|
596
|
+
});
|
|
597
|
+
}, [items, activeIndex, imageClassName, optixFlowConfig]);
|
|
598
|
+
const contentItems = React4.useMemo(() => {
|
|
599
|
+
const items2 = [];
|
|
600
|
+
if (title) {
|
|
601
|
+
if (typeof title === "string") {
|
|
602
|
+
items2.push({
|
|
603
|
+
_type: "text",
|
|
604
|
+
as: "h2",
|
|
605
|
+
className: cn(
|
|
606
|
+
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
607
|
+
titleClassName
|
|
608
|
+
),
|
|
609
|
+
children: title
|
|
610
|
+
});
|
|
611
|
+
} else {
|
|
612
|
+
items2.push(title);
|
|
575
613
|
}
|
|
576
|
-
|
|
577
|
-
|
|
614
|
+
}
|
|
615
|
+
if (description) {
|
|
616
|
+
if (typeof description === "string") {
|
|
617
|
+
items2.push({
|
|
618
|
+
_type: "text",
|
|
619
|
+
as: "p",
|
|
620
|
+
className: cn("text-lg opacity-70", descriptionClassName),
|
|
621
|
+
children: description
|
|
622
|
+
});
|
|
623
|
+
} else {
|
|
624
|
+
items2.push(description);
|
|
625
|
+
}
|
|
626
|
+
}
|
|
627
|
+
return items2;
|
|
628
|
+
}, [title, titleClassName, description, descriptionClassName]);
|
|
578
629
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
579
630
|
Section,
|
|
580
631
|
{
|
|
@@ -586,35 +637,14 @@ function FeatureAccordionImage({
|
|
|
586
637
|
className,
|
|
587
638
|
containerClassName,
|
|
588
639
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center space-y-6 md:space-y-16", children: [
|
|
589
|
-
|
|
590
|
-
|
|
640
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
641
|
+
ContentGroup,
|
|
591
642
|
{
|
|
643
|
+
items: contentItems,
|
|
592
644
|
className: cn(
|
|
593
645
|
"text-left md:text-center max-w-full md:max-w-md text-balance",
|
|
594
646
|
headerClassName
|
|
595
|
-
)
|
|
596
|
-
children: [
|
|
597
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
598
|
-
"h2",
|
|
599
|
-
{
|
|
600
|
-
className: cn(
|
|
601
|
-
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
602
|
-
titleClassName
|
|
603
|
-
),
|
|
604
|
-
children: title
|
|
605
|
-
}
|
|
606
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
607
|
-
"div",
|
|
608
|
-
{
|
|
609
|
-
className: cn(
|
|
610
|
-
"text-xl font-semibold md:text-2xl lg:text-3xl",
|
|
611
|
-
titleClassName
|
|
612
|
-
),
|
|
613
|
-
children: title
|
|
614
|
-
}
|
|
615
|
-
)),
|
|
616
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }))
|
|
617
|
-
]
|
|
647
|
+
)
|
|
618
648
|
}
|
|
619
649
|
),
|
|
620
650
|
(itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React4 from 'react';
|
|
3
|
+
import React4__default, { useMemo } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Img } from '@page-speed/img';
|
|
@@ -12,32 +12,6 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
12
12
|
function cn(...inputs) {
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
16
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
17
|
-
if (isDark) {
|
|
18
|
-
switch (variant) {
|
|
19
|
-
case "default":
|
|
20
|
-
return "text-foreground";
|
|
21
|
-
case "muted":
|
|
22
|
-
return "text-foreground/80";
|
|
23
|
-
case "subtle":
|
|
24
|
-
return "text-foreground/60";
|
|
25
|
-
case "accent":
|
|
26
|
-
return "text-accent-foreground";
|
|
27
|
-
}
|
|
28
|
-
} else {
|
|
29
|
-
switch (variant) {
|
|
30
|
-
case "default":
|
|
31
|
-
return "text-foreground";
|
|
32
|
-
case "muted":
|
|
33
|
-
return "text-muted-foreground";
|
|
34
|
-
case "subtle":
|
|
35
|
-
return "text-muted-foreground/70";
|
|
36
|
-
case "accent":
|
|
37
|
-
return "text-primary";
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
15
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
42
16
|
function DynamicIcon({ apiKey, ...props }) {
|
|
43
17
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
@@ -111,7 +85,7 @@ var maxWidthStyles = {
|
|
|
111
85
|
"4xl": "max-w-[1536px]",
|
|
112
86
|
full: "max-w-full"
|
|
113
87
|
};
|
|
114
|
-
var Container =
|
|
88
|
+
var Container = React4__default.forwardRef(
|
|
115
89
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
116
90
|
const Component = as;
|
|
117
91
|
return /* @__PURE__ */ jsx(
|
|
@@ -416,7 +390,7 @@ var spacingStyles = {
|
|
|
416
390
|
};
|
|
417
391
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
|
|
418
392
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
419
|
-
var Section =
|
|
393
|
+
var Section = React4__default.forwardRef(
|
|
420
394
|
({
|
|
421
395
|
id,
|
|
422
396
|
title,
|
|
@@ -477,6 +451,38 @@ var Section = React__default.forwardRef(
|
|
|
477
451
|
}
|
|
478
452
|
);
|
|
479
453
|
Section.displayName = "Section";
|
|
454
|
+
function TextInner({ as, className, children, ...props }, ref) {
|
|
455
|
+
const Component = as || "span";
|
|
456
|
+
return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
|
|
457
|
+
}
|
|
458
|
+
var Text = React4.forwardRef(TextInner);
|
|
459
|
+
Text.displayName = "Text";
|
|
460
|
+
function isContentTextItem(item) {
|
|
461
|
+
return item !== null && typeof item === "object" && !React4.isValidElement(item) && "_type" in item && item._type === "text";
|
|
462
|
+
}
|
|
463
|
+
var ContentGroup = React4.forwardRef(
|
|
464
|
+
({ items, className, children, ...props }, ref) => {
|
|
465
|
+
const hasContent = items && items.length > 0;
|
|
466
|
+
if (!hasContent) {
|
|
467
|
+
return null;
|
|
468
|
+
}
|
|
469
|
+
return /* @__PURE__ */ jsxs("div", { ref, className: cn(className), ...props, children: [
|
|
470
|
+
items.map((item, idx) => {
|
|
471
|
+
if (isContentTextItem(item)) {
|
|
472
|
+
const { _type, ...textProps } = item;
|
|
473
|
+
return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
|
|
474
|
+
}
|
|
475
|
+
const reactNode = item;
|
|
476
|
+
if (React4.isValidElement(reactNode)) {
|
|
477
|
+
return React4.cloneElement(reactNode, { key: reactNode.key ?? idx });
|
|
478
|
+
}
|
|
479
|
+
return /* @__PURE__ */ jsx(React4.Fragment, { children: reactNode }, idx);
|
|
480
|
+
}),
|
|
481
|
+
children
|
|
482
|
+
] });
|
|
483
|
+
}
|
|
484
|
+
);
|
|
485
|
+
ContentGroup.displayName = "ContentGroup";
|
|
480
486
|
function FeatureAccordionImage({
|
|
481
487
|
title,
|
|
482
488
|
description,
|
|
@@ -499,9 +505,8 @@ function FeatureAccordionImage({
|
|
|
499
505
|
patternOpacity,
|
|
500
506
|
patternClassName
|
|
501
507
|
}) {
|
|
502
|
-
const [activeItem, setActiveItem] =
|
|
508
|
+
const [activeItem, setActiveItem] = React4.useState(defaultValue || "item-0");
|
|
503
509
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
504
|
-
const currentImage = items?.[activeIndex] || items?.[0];
|
|
505
510
|
const accordionItemsContent = useMemo(() => {
|
|
506
511
|
if (itemsSlot) return itemsSlot;
|
|
507
512
|
if (!items || items.length === 0) return null;
|
|
@@ -515,44 +520,90 @@ function FeatureAccordionImage({
|
|
|
515
520
|
AccordionTrigger,
|
|
516
521
|
{
|
|
517
522
|
className: cn(
|
|
518
|
-
"text-left
|
|
523
|
+
"text-left md:text-lg font-medium",
|
|
519
524
|
item.triggerClassName
|
|
520
525
|
),
|
|
521
526
|
children: item.title
|
|
522
527
|
}
|
|
523
528
|
),
|
|
524
|
-
item.content && /* @__PURE__ */ jsx(
|
|
525
|
-
AccordionContent,
|
|
526
|
-
{
|
|
527
|
-
className: cn(
|
|
528
|
-
getTextColor(background, "muted"),
|
|
529
|
-
item.contentClassName
|
|
530
|
-
),
|
|
531
|
-
children: item.content
|
|
532
|
-
}
|
|
533
|
-
)
|
|
529
|
+
item.content && /* @__PURE__ */ jsx(AccordionContent, { className: cn(item.contentClassName), children: item.content })
|
|
534
530
|
]
|
|
535
531
|
},
|
|
536
532
|
index
|
|
537
533
|
));
|
|
538
534
|
}, [itemsSlot, items]);
|
|
539
535
|
const imageContent = useMemo(() => {
|
|
540
|
-
if (
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
536
|
+
if (!items || items.length === 0) return null;
|
|
537
|
+
const hasImageSlot = items.some((item) => item.imageSlot);
|
|
538
|
+
if (hasImageSlot) {
|
|
539
|
+
const current = items[activeIndex] || items[0];
|
|
540
|
+
if (current?.imageSlot) return current.imageSlot;
|
|
541
|
+
if (!current?.imageSrc) return null;
|
|
542
|
+
return /* @__PURE__ */ jsx(
|
|
543
|
+
Img,
|
|
544
|
+
{
|
|
545
|
+
src: current.imageSrc,
|
|
546
|
+
alt: current.imageAlt || "Feature Image",
|
|
547
|
+
className: cn(
|
|
548
|
+
"h-full w-full object-cover transition-opacity duration-500",
|
|
549
|
+
imageClassName
|
|
550
|
+
),
|
|
551
|
+
loading: "eager",
|
|
552
|
+
optixFlowConfig
|
|
553
|
+
}
|
|
554
|
+
);
|
|
555
|
+
}
|
|
556
|
+
return items.map((item, index) => {
|
|
557
|
+
if (!item.imageSrc) return null;
|
|
558
|
+
const isActive = index === activeIndex;
|
|
559
|
+
return /* @__PURE__ */ jsx(
|
|
560
|
+
Img,
|
|
561
|
+
{
|
|
562
|
+
src: item.imageSrc,
|
|
563
|
+
alt: item.imageAlt || "Feature Image",
|
|
564
|
+
className: cn(
|
|
565
|
+
"absolute inset-0 h-full w-full object-cover transition-opacity duration-500 ease-in-out",
|
|
566
|
+
isActive ? "opacity-100" : "opacity-0",
|
|
567
|
+
imageClassName
|
|
568
|
+
),
|
|
569
|
+
loading: "eager",
|
|
570
|
+
optixFlowConfig
|
|
571
|
+
},
|
|
572
|
+
index
|
|
573
|
+
);
|
|
574
|
+
});
|
|
575
|
+
}, [items, activeIndex, imageClassName, optixFlowConfig]);
|
|
576
|
+
const contentItems = useMemo(() => {
|
|
577
|
+
const items2 = [];
|
|
578
|
+
if (title) {
|
|
579
|
+
if (typeof title === "string") {
|
|
580
|
+
items2.push({
|
|
581
|
+
_type: "text",
|
|
582
|
+
as: "h2",
|
|
583
|
+
className: cn(
|
|
584
|
+
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
585
|
+
titleClassName
|
|
586
|
+
),
|
|
587
|
+
children: title
|
|
588
|
+
});
|
|
589
|
+
} else {
|
|
590
|
+
items2.push(title);
|
|
553
591
|
}
|
|
554
|
-
|
|
555
|
-
|
|
592
|
+
}
|
|
593
|
+
if (description) {
|
|
594
|
+
if (typeof description === "string") {
|
|
595
|
+
items2.push({
|
|
596
|
+
_type: "text",
|
|
597
|
+
as: "p",
|
|
598
|
+
className: cn("text-lg opacity-70", descriptionClassName),
|
|
599
|
+
children: description
|
|
600
|
+
});
|
|
601
|
+
} else {
|
|
602
|
+
items2.push(description);
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
return items2;
|
|
606
|
+
}, [title, titleClassName, description, descriptionClassName]);
|
|
556
607
|
return /* @__PURE__ */ jsx(
|
|
557
608
|
Section,
|
|
558
609
|
{
|
|
@@ -564,35 +615,14 @@ function FeatureAccordionImage({
|
|
|
564
615
|
className,
|
|
565
616
|
containerClassName,
|
|
566
617
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center space-y-6 md:space-y-16", children: [
|
|
567
|
-
|
|
568
|
-
|
|
618
|
+
/* @__PURE__ */ jsx(
|
|
619
|
+
ContentGroup,
|
|
569
620
|
{
|
|
621
|
+
items: contentItems,
|
|
570
622
|
className: cn(
|
|
571
623
|
"text-left md:text-center max-w-full md:max-w-md text-balance",
|
|
572
624
|
headerClassName
|
|
573
|
-
)
|
|
574
|
-
children: [
|
|
575
|
-
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
576
|
-
"h2",
|
|
577
|
-
{
|
|
578
|
-
className: cn(
|
|
579
|
-
"text-2xl font-semibold md:text-3xl lg:text-4xl",
|
|
580
|
-
titleClassName
|
|
581
|
-
),
|
|
582
|
-
children: title
|
|
583
|
-
}
|
|
584
|
-
) : /* @__PURE__ */ jsx(
|
|
585
|
-
"div",
|
|
586
|
-
{
|
|
587
|
-
className: cn(
|
|
588
|
-
"text-xl font-semibold md:text-2xl lg:text-3xl",
|
|
589
|
-
titleClassName
|
|
590
|
-
),
|
|
591
|
-
children: title
|
|
592
|
-
}
|
|
593
|
-
)),
|
|
594
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }))
|
|
595
|
-
]
|
|
625
|
+
)
|
|
596
626
|
}
|
|
597
627
|
),
|
|
598
628
|
(itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxs(
|
|
@@ -951,7 +951,7 @@ var FeatureCard = React7__namespace.memo(
|
|
|
951
951
|
delay: 0.3,
|
|
952
952
|
ease: "easeOut"
|
|
953
953
|
},
|
|
954
|
-
className: "p-6 text-sm md:p-8 md:text-base",
|
|
954
|
+
className: "p-6 text-sm md:p-8 md:text-base text-balance",
|
|
955
955
|
children: (feature.title || feature.description) && /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
|
|
956
956
|
feature.title && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-semibold", children: [
|
|
957
957
|
feature.title,
|
|
@@ -1199,7 +1199,7 @@ function FeatureAnimatedCarousel({
|
|
|
1199
1199
|
as: "h2",
|
|
1200
1200
|
className: cn(
|
|
1201
1201
|
"text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
|
|
1202
|
-
|
|
1202
|
+
titleClassName
|
|
1203
1203
|
),
|
|
1204
1204
|
children: title
|
|
1205
1205
|
});
|
|
@@ -930,7 +930,7 @@ var FeatureCard = React7.memo(
|
|
|
930
930
|
delay: 0.3,
|
|
931
931
|
ease: "easeOut"
|
|
932
932
|
},
|
|
933
|
-
className: "p-6 text-sm md:p-8 md:text-base",
|
|
933
|
+
className: "p-6 text-sm md:p-8 md:text-base text-balance",
|
|
934
934
|
children: (feature.title || feature.description) && /* @__PURE__ */ jsxs("p", { children: [
|
|
935
935
|
feature.title && /* @__PURE__ */ jsxs("span", { className: "font-semibold", children: [
|
|
936
936
|
feature.title,
|
|
@@ -1178,7 +1178,7 @@ function FeatureAnimatedCarousel({
|
|
|
1178
1178
|
as: "h2",
|
|
1179
1179
|
className: cn(
|
|
1180
1180
|
"text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
|
|
1181
|
-
|
|
1181
|
+
titleClassName
|
|
1182
1182
|
),
|
|
1183
1183
|
children: title
|
|
1184
1184
|
});
|
|
@@ -1068,7 +1068,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1068
1068
|
style: aspectRatioStyle,
|
|
1069
1069
|
className: cn(
|
|
1070
1070
|
"group relative overflow-hidden rounded-2xl shadow-xl",
|
|
1071
|
-
"aspect-
|
|
1071
|
+
"aspect-(--aspect-mobile) `md:aspect-(--aspect-desktop)",
|
|
1072
1072
|
cardClassName,
|
|
1073
1073
|
card.className
|
|
1074
1074
|
),
|
|
@@ -1099,7 +1099,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1099
1099
|
as: "h2",
|
|
1100
1100
|
className: cn(
|
|
1101
1101
|
"text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
|
|
1102
|
-
|
|
1102
|
+
titleClassName
|
|
1103
1103
|
),
|
|
1104
1104
|
children: title
|
|
1105
1105
|
});
|
|
@@ -1046,7 +1046,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1046
1046
|
style: aspectRatioStyle,
|
|
1047
1047
|
className: cn(
|
|
1048
1048
|
"group relative overflow-hidden rounded-2xl shadow-xl",
|
|
1049
|
-
"aspect-
|
|
1049
|
+
"aspect-(--aspect-mobile) `md:aspect-(--aspect-desktop)",
|
|
1050
1050
|
cardClassName,
|
|
1051
1051
|
card.className
|
|
1052
1052
|
),
|
|
@@ -1077,7 +1077,7 @@ function FeatureImageCardsThreeColumn({
|
|
|
1077
1077
|
as: "h2",
|
|
1078
1078
|
className: cn(
|
|
1079
1079
|
"text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
|
|
1080
|
-
|
|
1080
|
+
titleClassName
|
|
1081
1081
|
),
|
|
1082
1082
|
children: title
|
|
1083
1083
|
});
|
|
@@ -1451,7 +1451,7 @@ var platformIconMap = {
|
|
|
1451
1451
|
yelp: "cib/yelp",
|
|
1452
1452
|
spotify: "cib/spotify",
|
|
1453
1453
|
apple: "cib/apple",
|
|
1454
|
-
x: "
|
|
1454
|
+
x: "prime/twitter",
|
|
1455
1455
|
github: "cib/github",
|
|
1456
1456
|
snapchat: "cib/snapchat",
|
|
1457
1457
|
discord: "cib/discord",
|
|
@@ -1430,7 +1430,7 @@ var platformIconMap = {
|
|
|
1430
1430
|
yelp: "cib/yelp",
|
|
1431
1431
|
spotify: "cib/spotify",
|
|
1432
1432
|
apple: "cib/apple",
|
|
1433
|
-
x: "
|
|
1433
|
+
x: "prime/twitter",
|
|
1434
1434
|
github: "cib/github",
|
|
1435
1435
|
snapchat: "cib/snapchat",
|
|
1436
1436
|
discord: "cib/discord",
|
|
@@ -1001,7 +1001,7 @@ var platformIconMap = {
|
|
|
1001
1001
|
yelp: "cib/yelp",
|
|
1002
1002
|
spotify: "cib/spotify",
|
|
1003
1003
|
apple: "cib/apple",
|
|
1004
|
-
x: "
|
|
1004
|
+
x: "prime/twitter",
|
|
1005
1005
|
github: "cib/github",
|
|
1006
1006
|
snapchat: "cib/snapchat",
|
|
1007
1007
|
discord: "cib/discord",
|
|
@@ -1447,7 +1447,7 @@ var platformIconMap = {
|
|
|
1447
1447
|
yelp: "cib/yelp",
|
|
1448
1448
|
spotify: "cib/spotify",
|
|
1449
1449
|
apple: "cib/apple",
|
|
1450
|
-
x: "
|
|
1450
|
+
x: "prime/twitter",
|
|
1451
1451
|
github: "cib/github",
|
|
1452
1452
|
snapchat: "cib/snapchat",
|
|
1453
1453
|
discord: "cib/discord",
|
|
@@ -1426,7 +1426,7 @@ var platformIconMap = {
|
|
|
1426
1426
|
yelp: "cib/yelp",
|
|
1427
1427
|
spotify: "cib/spotify",
|
|
1428
1428
|
apple: "cib/apple",
|
|
1429
|
-
x: "
|
|
1429
|
+
x: "prime/twitter",
|
|
1430
1430
|
github: "cib/github",
|
|
1431
1431
|
snapchat: "cib/snapchat",
|
|
1432
1432
|
discord: "cib/discord",
|