@opensite/ui 2.8.6 → 2.8.8
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 +17 -10
- package/dist/about-developer-profile.js +17 -10
- package/dist/article-chapters-author.cjs +17 -10
- package/dist/article-chapters-author.js +17 -10
- package/dist/carousel-animated-sections.cjs +79 -25
- package/dist/carousel-animated-sections.d.cts +7 -2
- package/dist/carousel-animated-sections.d.ts +7 -2
- package/dist/carousel-animated-sections.js +79 -25
- package/dist/carousel-gallery-thumbnails.cjs +79 -25
- package/dist/carousel-gallery-thumbnails.d.cts +7 -2
- package/dist/carousel-gallery-thumbnails.d.ts +7 -2
- package/dist/carousel-gallery-thumbnails.js +79 -25
- package/dist/carousel-icon-sidebar.cjs +5 -4
- package/dist/carousel-icon-sidebar.js +5 -4
- package/dist/carousel-portfolio-hero.cjs +79 -25
- package/dist/carousel-portfolio-hero.d.cts +7 -2
- package/dist/carousel-portfolio-hero.d.ts +7 -2
- package/dist/carousel-portfolio-hero.js +79 -25
- package/dist/components.cjs +81 -42
- package/dist/components.d.cts +29 -2
- package/dist/components.d.ts +29 -2
- package/dist/components.js +81 -43
- package/dist/contact-map.cjs +46 -32
- package/dist/contact-map.js +46 -32
- package/dist/footer-accordion-social.cjs +17 -10
- package/dist/footer-accordion-social.js +17 -10
- package/dist/footer-animated-social.cjs +17 -10
- package/dist/footer-animated-social.js +17 -10
- package/dist/footer-brand-description.cjs +17 -10
- package/dist/footer-brand-description.js +17 -10
- package/dist/footer-brand-links-contact.cjs +17 -10
- package/dist/footer-brand-links-contact.js +17 -10
- package/dist/footer-comprehensive-links.cjs +17 -10
- package/dist/footer-comprehensive-links.js +17 -10
- package/dist/footer-contact-card.cjs +17 -10
- package/dist/footer-contact-card.js +17 -10
- package/dist/footer-cta-banner.cjs +17 -10
- package/dist/footer-cta-banner.js +17 -10
- package/dist/footer-cta-social.cjs +17 -10
- package/dist/footer-cta-social.js +17 -10
- package/dist/footer-info-cards-accordion.cjs +17 -10
- package/dist/footer-info-cards-accordion.js +17 -10
- package/dist/footer-nav-social.cjs +17 -10
- package/dist/footer-nav-social.js +17 -10
- package/dist/footer-newsletter-contact.cjs +17 -10
- package/dist/footer-newsletter-contact.js +17 -10
- package/dist/footer-newsletter-grid.cjs +17 -10
- package/dist/footer-newsletter-grid.js +17 -10
- package/dist/footer-newsletter-minimal.cjs +17 -10
- package/dist/footer-newsletter-minimal.js +17 -10
- package/dist/footer-social-apps.cjs +17 -10
- package/dist/footer-social-apps.js +17 -10
- package/dist/footer-social-newsletter.cjs +17 -10
- package/dist/footer-social-newsletter.js +17 -10
- package/dist/footer-split-image-accordion.cjs +17 -10
- package/dist/footer-split-image-accordion.js +17 -10
- package/dist/geo-map.cjs +46 -32
- package/dist/geo-map.js +46 -32
- package/dist/hero-coming-soon-countdown.cjs +17 -10
- package/dist/hero-coming-soon-countdown.js +17 -10
- package/dist/hero-video-background-dark.cjs +78 -16
- package/dist/hero-video-background-dark.d.cts +7 -2
- package/dist/hero-video-background-dark.d.ts +7 -2
- package/dist/hero-video-background-dark.js +78 -16
- package/dist/index.cjs +81 -42
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +81 -43
- package/dist/link-page-bento-layout.cjs +17 -10
- package/dist/link-page-bento-layout.js +17 -10
- package/dist/link-page-grid-cards.cjs +17 -10
- package/dist/link-page-grid-cards.js +17 -10
- package/dist/link-page-minimal-profile.cjs +17 -10
- package/dist/link-page-minimal-profile.js +17 -10
- package/dist/link-page-newsletter-social.cjs +17 -10
- package/dist/link-page-newsletter-social.js +17 -10
- package/dist/link-tree-block.cjs +17 -10
- package/dist/link-tree-block.js +17 -10
- package/dist/navbar-fullscreen-menu.cjs +17 -10
- package/dist/navbar-fullscreen-menu.js +17 -10
- package/dist/navbar-transparent-overlay.cjs +17 -10
- package/dist/navbar-transparent-overlay.js +17 -10
- package/dist/registry.cjs +967 -620
- package/dist/registry.js +967 -620
- package/dist/social-link-icon.cjs +17 -10
- package/dist/social-link-icon.d.cts +5 -0
- package/dist/social-link-icon.d.ts +5 -0
- package/dist/social-link-icon.js +17 -10
- package/dist/testimonials-bento-grid.cjs +1 -1
- package/dist/testimonials-bento-grid.js +1 -1
- package/dist/testimonials-carousel-image.cjs +16 -2
- package/dist/testimonials-carousel-image.d.cts +5 -1
- package/dist/testimonials-carousel-image.d.ts +5 -1
- package/dist/testimonials-carousel-image.js +16 -2
- package/dist/testimonials-centered-avatars.cjs +1 -1
- package/dist/testimonials-centered-avatars.js +1 -1
- package/dist/testimonials-grid-add-review.cjs +51 -29
- package/dist/testimonials-grid-add-review.js +51 -29
- package/dist/testimonials-images-helpful.cjs +181 -160
- package/dist/testimonials-images-helpful.d.cts +9 -1
- package/dist/testimonials-images-helpful.d.ts +9 -1
- package/dist/testimonials-images-helpful.js +181 -159
- package/dist/testimonials-large-quote.cjs +74 -43
- package/dist/testimonials-large-quote.d.cts +5 -1
- package/dist/testimonials-large-quote.d.ts +5 -1
- package/dist/testimonials-large-quote.js +74 -43
- package/dist/testimonials-list-verified.cjs +63 -44
- package/dist/testimonials-list-verified.d.cts +5 -1
- package/dist/testimonials-list-verified.d.ts +5 -1
- package/dist/testimonials-list-verified.js +64 -45
- package/dist/testimonials-logo-cards.cjs +55 -25
- package/dist/testimonials-logo-cards.d.cts +5 -1
- package/dist/testimonials-logo-cards.d.ts +5 -1
- package/dist/testimonials-logo-cards.js +55 -25
- package/dist/testimonials-marquee.cjs +440 -28
- package/dist/testimonials-marquee.js +441 -26
- package/dist/testimonials-masonry-grid.cjs +486 -69
- package/dist/testimonials-masonry-grid.d.cts +5 -1
- package/dist/testimonials-masonry-grid.d.ts +5 -1
- package/dist/testimonials-masonry-grid.js +483 -63
- package/dist/testimonials-mini-dividers.cjs +119 -83
- package/dist/testimonials-mini-dividers.d.cts +10 -6
- package/dist/testimonials-mini-dividers.d.ts +10 -6
- package/dist/testimonials-mini-dividers.js +119 -83
- package/dist/testimonials-minimal-numbered.cjs +9 -7
- package/dist/testimonials-minimal-numbered.d.cts +5 -1
- package/dist/testimonials-minimal-numbered.d.ts +5 -1
- package/dist/testimonials-minimal-numbered.js +9 -7
- package/dist/testimonials-parallax-number.cjs +14 -9
- package/dist/testimonials-parallax-number.js +14 -9
- package/dist/testimonials-scrolling-columns.cjs +100 -21
- package/dist/testimonials-scrolling-columns.js +100 -21
- package/dist/testimonials-simple-grid.cjs +22 -5
- package/dist/testimonials-simple-grid.js +22 -5
- package/dist/testimonials-slider-minimal.cjs +1 -1
- package/dist/testimonials-slider-minimal.js +1 -1
- package/dist/testimonials-stats-header.cjs +528 -87
- package/dist/testimonials-stats-header.d.cts +39 -3
- package/dist/testimonials-stats-header.d.ts +39 -3
- package/dist/testimonials-stats-header.js +523 -82
- package/dist/testimonials-twitter-cards.cjs +20 -12
- package/dist/testimonials-twitter-cards.js +20 -12
- package/package.json +11 -1
package/dist/registry.cjs
CHANGED
|
@@ -80,16 +80,6 @@ var DropdownMenuPrimitive__namespace = /*#__PURE__*/_interopNamespace(DropdownMe
|
|
|
80
80
|
function cn(...inputs) {
|
|
81
81
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
82
82
|
}
|
|
83
|
-
var BRIGHTNESS_CLASS_MAP = {
|
|
84
|
-
"10": "brightness-[.1]",
|
|
85
|
-
"20": "brightness-[.2]",
|
|
86
|
-
"25": "brightness-[.25]",
|
|
87
|
-
"30": "brightness-[.3]",
|
|
88
|
-
"40": "brightness-[.4]",
|
|
89
|
-
"50": "brightness-50",
|
|
90
|
-
"75": "brightness-75",
|
|
91
|
-
"100": "brightness-100"
|
|
92
|
-
};
|
|
93
83
|
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
94
84
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
95
85
|
if (isDark) {
|
|
@@ -1224,41 +1214,55 @@ function MarkerMediaCarousel({
|
|
|
1224
1214
|
React8__namespace.useEffect(() => {
|
|
1225
1215
|
setActiveIndex(0);
|
|
1226
1216
|
}, [mediaResetKey]);
|
|
1227
|
-
const activeMediaItem = mediaItems[activeItemIndex];
|
|
1228
|
-
const mediaType = resolveMediaType(activeMediaItem);
|
|
1229
1217
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
|
|
1230
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1218
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: mediaItems.map((item, index) => {
|
|
1219
|
+
const isActive = index === activeItemIndex;
|
|
1220
|
+
const mediaType = resolveMediaType(item);
|
|
1221
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1222
|
+
"div",
|
|
1223
|
+
{
|
|
1224
|
+
"aria-hidden": !isActive,
|
|
1225
|
+
className: cn(
|
|
1226
|
+
"absolute inset-0 transition-opacity duration-500 ease-in-out",
|
|
1227
|
+
isActive ? "opacity-100 z-[1]" : "opacity-0 z-0 pointer-events-none"
|
|
1228
|
+
),
|
|
1229
|
+
children: mediaType === "video" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1230
|
+
"video",
|
|
1231
|
+
{
|
|
1232
|
+
className: "h-full w-full object-cover",
|
|
1233
|
+
controls: isActive,
|
|
1234
|
+
preload: "metadata",
|
|
1235
|
+
poster: item.poster,
|
|
1236
|
+
tabIndex: isActive ? 0 : -1,
|
|
1237
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: item.src })
|
|
1238
|
+
}
|
|
1239
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1240
|
+
img.Img,
|
|
1241
|
+
{
|
|
1242
|
+
src: item.src,
|
|
1243
|
+
alt: item.alt ?? "Map marker media",
|
|
1244
|
+
className: "h-full w-full object-cover",
|
|
1245
|
+
loading: "eager",
|
|
1246
|
+
optixFlowConfig
|
|
1247
|
+
}
|
|
1248
|
+
)
|
|
1249
|
+
},
|
|
1250
|
+
normalizeId(item.id, `media-slide-${index}`)
|
|
1251
|
+
);
|
|
1252
|
+
}) }),
|
|
1249
1253
|
totalItems > 1 ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1250
1254
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1251
1255
|
"button",
|
|
1252
1256
|
{
|
|
1253
1257
|
type: "button",
|
|
1254
1258
|
"aria-label": "Show previous media",
|
|
1255
|
-
className: "absolute left-
|
|
1259
|
+
className: "absolute left-4 top-1/2 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-2xl bg-card text-card-foreground shadow-lg border-4 border-black hover:border-white hover:bg-black hover:text-white transition-all duration-500 z-[2]",
|
|
1256
1260
|
onClick: () => {
|
|
1257
1261
|
setActiveIndex(
|
|
1258
1262
|
(current) => (current - 1 + totalItems) % totalItems
|
|
1259
1263
|
);
|
|
1260
1264
|
},
|
|
1261
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-left", size:
|
|
1265
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-left", size: 18 })
|
|
1262
1266
|
}
|
|
1263
1267
|
),
|
|
1264
1268
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1266,20 +1270,20 @@ function MarkerMediaCarousel({
|
|
|
1266
1270
|
{
|
|
1267
1271
|
type: "button",
|
|
1268
1272
|
"aria-label": "Show next media",
|
|
1269
|
-
className: "absolute right-
|
|
1273
|
+
className: "absolute right-4 top-1/2 inline-flex size-10 -translate-y-1/2 items-center justify-center rounded-2xl bg-card text-card-foreground shadow-lg border-4 border-black hover:border-white hover:bg-black hover:text-white transition-all duration-500 z-[2]",
|
|
1270
1274
|
onClick: () => {
|
|
1271
1275
|
setActiveIndex((current) => (current + 1) % totalItems);
|
|
1272
1276
|
},
|
|
1273
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size:
|
|
1277
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 18 })
|
|
1274
1278
|
}
|
|
1275
1279
|
),
|
|
1276
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5", children: mediaItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1280
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5 z-[2]", children: mediaItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1277
1281
|
"button",
|
|
1278
1282
|
{
|
|
1279
1283
|
type: "button",
|
|
1280
1284
|
"aria-label": `Show media item ${index + 1}`,
|
|
1281
1285
|
className: cn(
|
|
1282
|
-
"h-2 rounded-full transition-all",
|
|
1286
|
+
"h-2 rounded-full transition-all duration-300",
|
|
1283
1287
|
index === activeItemIndex ? "w-6 bg-card" : "w-2 bg-card opacity-50 hover:opacity-100"
|
|
1284
1288
|
),
|
|
1285
1289
|
onClick: () => setActiveIndex(index)
|
|
@@ -1610,9 +1614,9 @@ function GeoMap({
|
|
|
1610
1614
|
{
|
|
1611
1615
|
type: "button",
|
|
1612
1616
|
"aria-label": "Close marker details",
|
|
1613
|
-
className: "flex size-
|
|
1617
|
+
className: "\n flex size-12 items-center justify-center rounded-bl-lg rounded-br-0 rounded-t-0 bg-black text-white transition-all duration-500 absolute top-0 right-0 z-10 cursor-pointer ring-4 ring-white\n",
|
|
1614
1618
|
onClick: clearSelection,
|
|
1615
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size:
|
|
1619
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 20 })
|
|
1616
1620
|
}
|
|
1617
1621
|
),
|
|
1618
1622
|
markerMediaItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1634,7 +1638,7 @@ function GeoMap({
|
|
|
1634
1638
|
{
|
|
1635
1639
|
name: "lucide:map-pin",
|
|
1636
1640
|
className: "opacity-50",
|
|
1637
|
-
size:
|
|
1641
|
+
size: 18
|
|
1638
1642
|
}
|
|
1639
1643
|
),
|
|
1640
1644
|
typeof selectedMarker.locationLine === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1656,7 +1660,7 @@ function GeoMap({
|
|
|
1656
1660
|
{
|
|
1657
1661
|
name: "lucide:clock",
|
|
1658
1662
|
className: "opacity-50",
|
|
1659
|
-
size:
|
|
1663
|
+
size: 18
|
|
1660
1664
|
}
|
|
1661
1665
|
),
|
|
1662
1666
|
typeof selectedMarker.hoursLine === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: selectedMarker.hoursLine }) : selectedMarker.hoursLine
|
|
@@ -1684,7 +1688,7 @@ function GeoMap({
|
|
|
1684
1688
|
"aria-label": "Close cluster details",
|
|
1685
1689
|
className: "flex size-8 items-center justify-center rounded-full border border-border bg-card text-card-foreground transition hover:bg-muted hover:text-foreground absolute top-2 right-2 z-10",
|
|
1686
1690
|
onClick: clearSelection,
|
|
1687
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size:
|
|
1691
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 20 })
|
|
1688
1692
|
}
|
|
1689
1693
|
),
|
|
1690
1694
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 flex items-start justify-between gap-3", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
@@ -2070,6 +2074,23 @@ function PopoverContent({
|
|
|
2070
2074
|
}
|
|
2071
2075
|
) });
|
|
2072
2076
|
}
|
|
2077
|
+
function StarRating({
|
|
2078
|
+
rating,
|
|
2079
|
+
size = 18,
|
|
2080
|
+
className
|
|
2081
|
+
}) {
|
|
2082
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center gap-0.5", className), children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
2083
|
+
DynamicIcon,
|
|
2084
|
+
{
|
|
2085
|
+
name: "icon-park-solid/star",
|
|
2086
|
+
size,
|
|
2087
|
+
className: cn(
|
|
2088
|
+
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
2089
|
+
)
|
|
2090
|
+
},
|
|
2091
|
+
star
|
|
2092
|
+
)) });
|
|
2093
|
+
}
|
|
2073
2094
|
var BUTTON_SIZES = {
|
|
2074
2095
|
sm: { buttonSize: "size-8", iconSize: 16 },
|
|
2075
2096
|
md: { buttonSize: "size-10", iconSize: 20 },
|
|
@@ -2171,6 +2192,7 @@ var SocialLinkIcon = React8__namespace.forwardRef(
|
|
|
2171
2192
|
iconClassName,
|
|
2172
2193
|
className,
|
|
2173
2194
|
iconNameOverride,
|
|
2195
|
+
iconOnly = false,
|
|
2174
2196
|
...pressableProps
|
|
2175
2197
|
}, ref) => {
|
|
2176
2198
|
const platform = usePlatformFromUrl.usePlatformFromUrl(href);
|
|
@@ -2183,6 +2205,21 @@ var SocialLinkIcon = React8__namespace.forwardRef(
|
|
|
2183
2205
|
const accessibleLabel = React8__namespace.useMemo(() => {
|
|
2184
2206
|
return label || platformName;
|
|
2185
2207
|
}, [label, platformName]);
|
|
2208
|
+
const icon = React8__namespace.useMemo(() => {
|
|
2209
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2210
|
+
DynamicIcon,
|
|
2211
|
+
{
|
|
2212
|
+
name: iconName,
|
|
2213
|
+
size: iconSize,
|
|
2214
|
+
color: iconColor,
|
|
2215
|
+
className: iconClassName,
|
|
2216
|
+
alt: accessibleLabel
|
|
2217
|
+
}
|
|
2218
|
+
);
|
|
2219
|
+
}, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
|
|
2220
|
+
if (iconOnly) {
|
|
2221
|
+
return icon;
|
|
2222
|
+
}
|
|
2186
2223
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2187
2224
|
Pressable,
|
|
2188
2225
|
{
|
|
@@ -2194,16 +2231,7 @@ var SocialLinkIcon = React8__namespace.forwardRef(
|
|
|
2194
2231
|
className
|
|
2195
2232
|
),
|
|
2196
2233
|
...pressableProps,
|
|
2197
|
-
children:
|
|
2198
|
-
DynamicIcon,
|
|
2199
|
-
{
|
|
2200
|
-
name: iconName,
|
|
2201
|
-
size: iconSize,
|
|
2202
|
-
color: iconColor,
|
|
2203
|
-
className: iconClassName,
|
|
2204
|
-
alt: accessibleLabel
|
|
2205
|
-
}
|
|
2206
|
-
)
|
|
2234
|
+
children: icon
|
|
2207
2235
|
}
|
|
2208
2236
|
);
|
|
2209
2237
|
}
|
|
@@ -19761,6 +19789,67 @@ function ContactHelpCenter({
|
|
|
19761
19789
|
}
|
|
19762
19790
|
);
|
|
19763
19791
|
}
|
|
19792
|
+
var DIRECTION_STYLES = {
|
|
19793
|
+
"bottom-to-top": "bg-linear-to-t",
|
|
19794
|
+
"top-to-bottom": "bg-linear-to-b",
|
|
19795
|
+
"left-to-right": "bg-linear-to-r",
|
|
19796
|
+
"right-to-left": "bg-linear-to-l",
|
|
19797
|
+
"bottom-left-to-top-right": "bg-linear-to-tr",
|
|
19798
|
+
"bottom-right-to-top-left": "bg-linear-to-tl",
|
|
19799
|
+
"top-left-to-bottom-right": "bg-linear-to-br",
|
|
19800
|
+
"top-right-to-bottom-left": "bg-linear-to-bl"
|
|
19801
|
+
};
|
|
19802
|
+
var INTENSITY_STOPS = {
|
|
19803
|
+
low: "from-black/40 via-black/20 to-transparent",
|
|
19804
|
+
default: "from-black/70 via-black/35 to-transparent",
|
|
19805
|
+
high: "from-black/85 via-black/50 to-transparent",
|
|
19806
|
+
"very-high": "from-black/95 via-black/60 to-black/20"
|
|
19807
|
+
};
|
|
19808
|
+
var RADIAL_INTENSITY = {
|
|
19809
|
+
low: {
|
|
19810
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
|
|
19811
|
+
},
|
|
19812
|
+
default: {
|
|
19813
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
|
|
19814
|
+
},
|
|
19815
|
+
high: {
|
|
19816
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
|
|
19817
|
+
},
|
|
19818
|
+
"very-high": {
|
|
19819
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.60) 50%, rgba(0,0,0,0.20) 100%)"
|
|
19820
|
+
}
|
|
19821
|
+
};
|
|
19822
|
+
function GradientOverlay({
|
|
19823
|
+
direction = "bottom-to-top",
|
|
19824
|
+
intensity = "default",
|
|
19825
|
+
className,
|
|
19826
|
+
style,
|
|
19827
|
+
...props
|
|
19828
|
+
}) {
|
|
19829
|
+
if (direction === "radial-center") {
|
|
19830
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19831
|
+
"div",
|
|
19832
|
+
{
|
|
19833
|
+
className: cn("absolute inset-0", className),
|
|
19834
|
+
style: { ...RADIAL_INTENSITY[intensity], ...style },
|
|
19835
|
+
...props
|
|
19836
|
+
}
|
|
19837
|
+
);
|
|
19838
|
+
}
|
|
19839
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
19840
|
+
"div",
|
|
19841
|
+
{
|
|
19842
|
+
className: cn(
|
|
19843
|
+
"absolute inset-0",
|
|
19844
|
+
DIRECTION_STYLES[direction],
|
|
19845
|
+
INTENSITY_STOPS[intensity],
|
|
19846
|
+
className
|
|
19847
|
+
),
|
|
19848
|
+
style,
|
|
19849
|
+
...props
|
|
19850
|
+
}
|
|
19851
|
+
);
|
|
19852
|
+
}
|
|
19764
19853
|
function CarouselAnimatedSections({
|
|
19765
19854
|
sections,
|
|
19766
19855
|
sectionsSlot,
|
|
@@ -19776,7 +19865,8 @@ function CarouselAnimatedSections({
|
|
|
19776
19865
|
navigationClassName,
|
|
19777
19866
|
arrowsClassName,
|
|
19778
19867
|
counterClassName,
|
|
19779
|
-
slideMediaBrightness
|
|
19868
|
+
slideMediaBrightness,
|
|
19869
|
+
slideMediaOverlayIntensity = "high",
|
|
19780
19870
|
optixFlowConfig,
|
|
19781
19871
|
background = "dark",
|
|
19782
19872
|
spacing = "py-0",
|
|
@@ -19865,7 +19955,7 @@ function CarouselAnimatedSections({
|
|
|
19865
19955
|
containerMaxWidth,
|
|
19866
19956
|
containerClassName,
|
|
19867
19957
|
children: [
|
|
19868
|
-
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.
|
|
19958
|
+
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
19869
19959
|
framerMotion.motion.div,
|
|
19870
19960
|
{
|
|
19871
19961
|
custom: direction,
|
|
@@ -19876,19 +19966,21 @@ function CarouselAnimatedSections({
|
|
|
19876
19966
|
transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
|
|
19877
19967
|
onAnimationComplete: () => setIsAnimating(false),
|
|
19878
19968
|
className: cn("absolute inset-0", currentSection?.className),
|
|
19879
|
-
children:
|
|
19880
|
-
|
|
19881
|
-
|
|
19882
|
-
|
|
19883
|
-
|
|
19884
|
-
|
|
19885
|
-
|
|
19886
|
-
|
|
19887
|
-
|
|
19888
|
-
|
|
19889
|
-
|
|
19890
|
-
|
|
19891
|
-
|
|
19969
|
+
children: [
|
|
19970
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
19971
|
+
img.Img,
|
|
19972
|
+
{
|
|
19973
|
+
src: currentSection?.image,
|
|
19974
|
+
alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
|
|
19975
|
+
className: cn(
|
|
19976
|
+
"h-full w-full object-cover",
|
|
19977
|
+
currentSection?.imageClassName
|
|
19978
|
+
),
|
|
19979
|
+
optixFlowConfig
|
|
19980
|
+
}
|
|
19981
|
+
),
|
|
19982
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
19983
|
+
]
|
|
19892
19984
|
},
|
|
19893
19985
|
currentIndex
|
|
19894
19986
|
) }) : null,
|
|
@@ -20853,7 +20945,8 @@ function CarouselGalleryThumbnails({
|
|
|
20853
20945
|
spacing = "sm",
|
|
20854
20946
|
pattern,
|
|
20855
20947
|
patternOpacity,
|
|
20856
|
-
slideMediaBrightness
|
|
20948
|
+
slideMediaBrightness,
|
|
20949
|
+
slideMediaOverlayIntensity = "default"
|
|
20857
20950
|
}) {
|
|
20858
20951
|
const [currentIndex, setCurrentIndex] = React8__namespace.useState(0);
|
|
20859
20952
|
const prevSlide = React8__namespace.useCallback(() => {
|
|
@@ -20902,7 +20995,7 @@ function CarouselGalleryThumbnails({
|
|
|
20902
20995
|
"relative aspect-video w-full overflow-hidden",
|
|
20903
20996
|
slideClassName
|
|
20904
20997
|
),
|
|
20905
|
-
children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsxRuntime.
|
|
20998
|
+
children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
20906
20999
|
"div",
|
|
20907
21000
|
{
|
|
20908
21001
|
className: cn(
|
|
@@ -20910,19 +21003,21 @@ function CarouselGalleryThumbnails({
|
|
|
20910
21003
|
index === currentIndex ? "translate-x-0 opacity-100" : index < currentIndex ? "-translate-x-full opacity-0" : "translate-x-full opacity-0",
|
|
20911
21004
|
image.className
|
|
20912
21005
|
),
|
|
20913
|
-
children:
|
|
20914
|
-
|
|
20915
|
-
|
|
20916
|
-
|
|
20917
|
-
|
|
20918
|
-
|
|
20919
|
-
|
|
20920
|
-
|
|
20921
|
-
|
|
20922
|
-
|
|
20923
|
-
|
|
20924
|
-
|
|
20925
|
-
|
|
21006
|
+
children: [
|
|
21007
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21008
|
+
img.Img,
|
|
21009
|
+
{
|
|
21010
|
+
src: image.src,
|
|
21011
|
+
alt: typeof image.alt === "string" ? image.alt : `Image ${index + 1}`,
|
|
21012
|
+
className: cn(
|
|
21013
|
+
"h-full w-full object-cover",
|
|
21014
|
+
image.imageClassName
|
|
21015
|
+
),
|
|
21016
|
+
optixFlowConfig
|
|
21017
|
+
}
|
|
21018
|
+
),
|
|
21019
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
21020
|
+
]
|
|
20926
21021
|
},
|
|
20927
21022
|
`slide-${index}`
|
|
20928
21023
|
))
|
|
@@ -21739,7 +21834,8 @@ function CarouselPortfolioHero({
|
|
|
21739
21834
|
spacing = "none",
|
|
21740
21835
|
pattern,
|
|
21741
21836
|
patternOpacity,
|
|
21742
|
-
slideMediaBrightness
|
|
21837
|
+
slideMediaBrightness,
|
|
21838
|
+
slideMediaOverlayIntensity = "high"
|
|
21743
21839
|
}) {
|
|
21744
21840
|
const [currentIndex, setCurrentIndex] = React8__namespace.useState(0);
|
|
21745
21841
|
const intervalRef = React8__namespace.useRef(null);
|
|
@@ -21780,7 +21876,7 @@ function CarouselPortfolioHero({
|
|
|
21780
21876
|
patternOpacity,
|
|
21781
21877
|
containerClassName,
|
|
21782
21878
|
children: [
|
|
21783
|
-
slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.
|
|
21879
|
+
slidesSlot ? slidesSlot : slides?.map((slide, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
21784
21880
|
"div",
|
|
21785
21881
|
{
|
|
21786
21882
|
className: cn(
|
|
@@ -21788,19 +21884,21 @@ function CarouselPortfolioHero({
|
|
|
21788
21884
|
index === currentIndex ? "opacity-100" : "opacity-0",
|
|
21789
21885
|
slide.className
|
|
21790
21886
|
),
|
|
21791
|
-
children:
|
|
21792
|
-
|
|
21793
|
-
|
|
21794
|
-
|
|
21795
|
-
|
|
21796
|
-
|
|
21797
|
-
|
|
21798
|
-
|
|
21799
|
-
|
|
21800
|
-
|
|
21801
|
-
|
|
21802
|
-
|
|
21803
|
-
|
|
21887
|
+
children: [
|
|
21888
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
21889
|
+
img.Img,
|
|
21890
|
+
{
|
|
21891
|
+
src: slide.image,
|
|
21892
|
+
alt: typeof slide.title === "string" ? slide.title : `Slide ${index + 1}`,
|
|
21893
|
+
className: cn(
|
|
21894
|
+
"h-full w-full object-cover",
|
|
21895
|
+
slide.imageClassName
|
|
21896
|
+
),
|
|
21897
|
+
optixFlowConfig
|
|
21898
|
+
}
|
|
21899
|
+
),
|
|
21900
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
21901
|
+
]
|
|
21804
21902
|
},
|
|
21805
21903
|
slide.id
|
|
21806
21904
|
)),
|
|
@@ -33577,7 +33675,8 @@ function CarouselIconSidebar({
|
|
|
33577
33675
|
src: image.src,
|
|
33578
33676
|
alt: typeof image.title === "string" ? image.title : image.alt || "Carousel image",
|
|
33579
33677
|
className: cn(
|
|
33580
|
-
"
|
|
33678
|
+
"aspect-4/3",
|
|
33679
|
+
"h-full w-full object-cover cursor-pointer aspect-4/3",
|
|
33581
33680
|
imageClassName
|
|
33582
33681
|
),
|
|
33583
33682
|
loading: "lazy",
|
|
@@ -33637,13 +33736,13 @@ function CarouselIconSidebar({
|
|
|
33637
33736
|
/* @__PURE__ */ jsxRuntime.jsx(Carousel, { setApi, className: cn("w-full", carouselClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-4 md:gap-6 md:grid-cols-5", children: [
|
|
33638
33737
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:col-span-2", children: sidebarContent }),
|
|
33639
33738
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full md:col-span-3", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
33640
|
-
|
|
33739
|
+
"div",
|
|
33641
33740
|
{
|
|
33642
33741
|
className: cn(
|
|
33643
|
-
"overflow-hidden rounded-2xl shadow-lg
|
|
33742
|
+
"overflow-hidden rounded-2xl shadow-lg",
|
|
33644
33743
|
carouselContentClassName
|
|
33645
33744
|
),
|
|
33646
|
-
children: itemsContent
|
|
33745
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CarouselContent, { children: itemsContent })
|
|
33647
33746
|
}
|
|
33648
33747
|
) })
|
|
33649
33748
|
] }) }),
|
|
@@ -43849,19 +43948,6 @@ function CaseStudiesTestimonialStats({
|
|
|
43849
43948
|
}
|
|
43850
43949
|
);
|
|
43851
43950
|
}
|
|
43852
|
-
function StarRating({ rating, size = 16 }) {
|
|
43853
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
43854
|
-
DynamicIcon,
|
|
43855
|
-
{
|
|
43856
|
-
name: "lucide/star",
|
|
43857
|
-
size,
|
|
43858
|
-
className: cn(
|
|
43859
|
-
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
43860
|
-
)
|
|
43861
|
-
},
|
|
43862
|
-
star
|
|
43863
|
-
)) });
|
|
43864
|
-
}
|
|
43865
43951
|
function TestimonialsListVerified({
|
|
43866
43952
|
reviews,
|
|
43867
43953
|
reviewsSlot,
|
|
@@ -43874,7 +43960,8 @@ function TestimonialsListVerified({
|
|
|
43874
43960
|
contentClassName,
|
|
43875
43961
|
authorClassName,
|
|
43876
43962
|
background,
|
|
43877
|
-
spacing,
|
|
43963
|
+
spacing = "lg",
|
|
43964
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
43878
43965
|
pattern,
|
|
43879
43966
|
patternOpacity
|
|
43880
43967
|
}) {
|
|
@@ -43893,35 +43980,49 @@ function TestimonialsListVerified({
|
|
|
43893
43980
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0", children: reviews.map((review, index) => {
|
|
43894
43981
|
const authorName = getAuthorName(review);
|
|
43895
43982
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: reviewClassName, children: [
|
|
43896
|
-
index > 0 && /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-
|
|
43897
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-
|
|
43898
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
43899
|
-
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating, size:
|
|
43900
|
-
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "
|
|
43983
|
+
index > 0 && /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "bg-border/50 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px my-12 md:my-16" }),
|
|
43984
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-6 md:space-y-12", contentClassName), children: [
|
|
43985
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
43986
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating, size: 22 }),
|
|
43987
|
+
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium", children: review.title }) : review.title)
|
|
43901
43988
|
] }),
|
|
43902
|
-
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
43903
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center
|
|
43904
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
43905
|
-
|
|
43906
|
-
|
|
43907
|
-
|
|
43908
|
-
|
|
43909
|
-
|
|
43910
|
-
|
|
43911
|
-
|
|
43912
|
-
|
|
43913
|
-
|
|
43914
|
-
|
|
43915
|
-
|
|
43916
|
-
|
|
43917
|
-
|
|
43918
|
-
|
|
43919
|
-
|
|
43989
|
+
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base md:text-lg leading-relaxed font-light", children: review.content }) : review.content),
|
|
43990
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center justify-between w-full"), children: [
|
|
43991
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
43992
|
+
"div",
|
|
43993
|
+
{
|
|
43994
|
+
className: cn("flex items-center gap-5", authorClassName),
|
|
43995
|
+
children: [
|
|
43996
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-12 ring-4 ring-primary shadow-lg", children: [
|
|
43997
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: review.avatarSrc, alt: authorName }),
|
|
43998
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "text-md", children: getInitials(authorName) })
|
|
43999
|
+
] }),
|
|
44000
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1 text-base flex-col items-start", children: [
|
|
44001
|
+
review.author && (typeof review.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: review.author }) : review.author),
|
|
44002
|
+
review.verified && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1", children: [
|
|
44003
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/badge-check", size: 18 }),
|
|
44004
|
+
verifiedPurchaseLabel && (typeof verifiedPurchaseLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: verifiedPurchaseLabel }) : verifiedPurchaseLabel),
|
|
44005
|
+
!verifiedPurchaseLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Verified Purchase" })
|
|
44006
|
+
] })
|
|
44007
|
+
] })
|
|
44008
|
+
]
|
|
44009
|
+
}
|
|
44010
|
+
),
|
|
44011
|
+
review.date && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "relative", children: review.date })
|
|
43920
44012
|
] })
|
|
43921
44013
|
] })
|
|
43922
44014
|
] }, index);
|
|
43923
44015
|
}) });
|
|
43924
|
-
}, [
|
|
44016
|
+
}, [
|
|
44017
|
+
reviewsSlot,
|
|
44018
|
+
reviews,
|
|
44019
|
+
reviewClassName,
|
|
44020
|
+
contentClassName,
|
|
44021
|
+
authorClassName,
|
|
44022
|
+
verifiedPurchaseLabel,
|
|
44023
|
+
getAuthorName,
|
|
44024
|
+
getInitials
|
|
44025
|
+
]);
|
|
43925
44026
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
43926
44027
|
Section,
|
|
43927
44028
|
{
|
|
@@ -43930,21 +44031,21 @@ function TestimonialsListVerified({
|
|
|
43930
44031
|
pattern,
|
|
43931
44032
|
patternOpacity,
|
|
43932
44033
|
className,
|
|
43933
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
43934
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-
|
|
44034
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-full md:max-w-3xl", children: [
|
|
44035
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 md:mb-24 space-y-6", headerClassName), children: [
|
|
43935
44036
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
43936
44037
|
"h2",
|
|
43937
44038
|
{
|
|
43938
44039
|
className: cn(
|
|
43939
|
-
"text-2xl font-semibold tracking-tight md:text-3xl",
|
|
44040
|
+
"text-2xl font-semibold tracking-tight md:text-3xl lg:text-4xl",
|
|
43940
44041
|
headingClassName
|
|
43941
44042
|
),
|
|
43942
44043
|
children: heading
|
|
43943
44044
|
}
|
|
43944
|
-
) :
|
|
44045
|
+
) : heading),
|
|
43945
44046
|
totalReviews > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center gap-3", children: [
|
|
43946
|
-
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: Math.round(averageRating), size:
|
|
43947
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm
|
|
44047
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: Math.round(averageRating), size: 22 }),
|
|
44048
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm", children: [
|
|
43948
44049
|
averageRating.toFixed(1),
|
|
43949
44050
|
" out of 5 \xB7 ",
|
|
43950
44051
|
totalReviews,
|
|
@@ -43957,23 +44058,11 @@ function TestimonialsListVerified({
|
|
|
43957
44058
|
}
|
|
43958
44059
|
);
|
|
43959
44060
|
}
|
|
43960
|
-
function StarRating2({ rating, size = 16 }) {
|
|
43961
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
43962
|
-
DynamicIcon,
|
|
43963
|
-
{
|
|
43964
|
-
name: "lucide/star",
|
|
43965
|
-
size,
|
|
43966
|
-
className: cn(
|
|
43967
|
-
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
43968
|
-
)
|
|
43969
|
-
},
|
|
43970
|
-
star
|
|
43971
|
-
)) });
|
|
43972
|
-
}
|
|
43973
44061
|
function TestimonialsImagesHelpful({
|
|
43974
44062
|
reviews,
|
|
43975
44063
|
reviewsSlot,
|
|
43976
44064
|
heading,
|
|
44065
|
+
verifiedPurchaseLabel,
|
|
43977
44066
|
writeReviewLabel,
|
|
43978
44067
|
reportButtonLabel,
|
|
43979
44068
|
className,
|
|
@@ -43985,12 +44074,16 @@ function TestimonialsImagesHelpful({
|
|
|
43985
44074
|
imagesClassName,
|
|
43986
44075
|
onWriteReview,
|
|
43987
44076
|
background,
|
|
43988
|
-
spacing = "
|
|
44077
|
+
spacing = "lg",
|
|
44078
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
43989
44079
|
pattern,
|
|
43990
44080
|
patternOpacity,
|
|
43991
44081
|
optixFlowConfig
|
|
43992
44082
|
}) {
|
|
43993
44083
|
const [helpfulClicked, setHelpfulClicked] = React8.useState(/* @__PURE__ */ new Set());
|
|
44084
|
+
const [lightboxOpen, setLightboxOpen] = React8.useState(false);
|
|
44085
|
+
const [lightboxItems, setLightboxItems] = React8.useState([]);
|
|
44086
|
+
const [lightboxIndex, setLightboxIndex] = React8.useState(0);
|
|
43994
44087
|
const totalReviews = reviews?.length ?? 0;
|
|
43995
44088
|
const averageRating = totalReviews > 0 ? (reviews?.reduce((sum, review) => sum + review.rating, 0) ?? 0) / totalReviews : 0;
|
|
43996
44089
|
const handleHelpful = React8.useCallback((reviewIndex) => {
|
|
@@ -44004,6 +44097,25 @@ function TestimonialsImagesHelpful({
|
|
|
44004
44097
|
return newSet;
|
|
44005
44098
|
});
|
|
44006
44099
|
}, []);
|
|
44100
|
+
const handleImageClick = React8.useCallback(
|
|
44101
|
+
(reviewImages, imageIndex) => {
|
|
44102
|
+
const items = reviewImages.map((src, i) => ({
|
|
44103
|
+
id: `review-image-${i}`,
|
|
44104
|
+
type: "image",
|
|
44105
|
+
src,
|
|
44106
|
+
alt: `Review image ${i + 1}`,
|
|
44107
|
+
download: true,
|
|
44108
|
+
share: true
|
|
44109
|
+
}));
|
|
44110
|
+
setLightboxItems(items);
|
|
44111
|
+
setLightboxIndex(imageIndex);
|
|
44112
|
+
setLightboxOpen(true);
|
|
44113
|
+
},
|
|
44114
|
+
[]
|
|
44115
|
+
);
|
|
44116
|
+
const handleLightboxClose = React8.useCallback(() => {
|
|
44117
|
+
setLightboxOpen(false);
|
|
44118
|
+
}, []);
|
|
44007
44119
|
const getAuthorName = React8.useCallback((review) => {
|
|
44008
44120
|
if (typeof review.author === "string") return review.author;
|
|
44009
44121
|
return "";
|
|
@@ -44017,54 +44129,28 @@ function TestimonialsImagesHelpful({
|
|
|
44017
44129
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-0", children: reviews.map((review, index) => {
|
|
44018
44130
|
const authorName = getAuthorName(review);
|
|
44019
44131
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: reviewClassName, children: [
|
|
44020
|
-
index > 0 && /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-
|
|
44021
|
-
/* @__PURE__ */ jsxRuntime.
|
|
44022
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
44023
|
-
|
|
44024
|
-
{
|
|
44025
|
-
className: cn(
|
|
44026
|
-
"flex items-start justify-between gap-4",
|
|
44027
|
-
authorClassName
|
|
44028
|
-
),
|
|
44029
|
-
children: [
|
|
44030
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
|
|
44031
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-10", children: [
|
|
44032
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: review.avatarSrc, alt: authorName }),
|
|
44033
|
-
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
44034
|
-
] }),
|
|
44035
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
44036
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
44037
|
-
review.author && (typeof review.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: review.author }) : review.author),
|
|
44038
|
-
review.verified && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex items-center gap-1 text-emerald-600", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
44039
|
-
DynamicIcon,
|
|
44040
|
-
{
|
|
44041
|
-
name: "lucide/badge-check",
|
|
44042
|
-
size: 16
|
|
44043
|
-
}
|
|
44044
|
-
) })
|
|
44045
|
-
] }),
|
|
44046
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [
|
|
44047
|
-
review.date && /* @__PURE__ */ jsxRuntime.jsx("span", { children: review.date }),
|
|
44048
|
-
review.variant && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
44049
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\xB7" }),
|
|
44050
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { children: review.variant })
|
|
44051
|
-
] })
|
|
44052
|
-
] })
|
|
44053
|
-
] })
|
|
44054
|
-
] }),
|
|
44055
|
-
/* @__PURE__ */ jsxRuntime.jsx(StarRating2, { rating: review.rating, size: 16 })
|
|
44056
|
-
]
|
|
44057
|
-
}
|
|
44058
|
-
),
|
|
44059
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
44060
|
-
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium", children: review.title }) : review.title),
|
|
44061
|
-
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-muted-foreground", children: review.content }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: review.content }))
|
|
44132
|
+
index > 0 && /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "bg-border/50 shrink-0 data-[orientation=horizontal]:h-px data-[orientation=horizontal]:w-full data-[orientation=vertical]:h-full data-[orientation=vertical]:w-px my-12 md:my-16" }),
|
|
44133
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-6 md:space-y-12", contentClassName), children: [
|
|
44134
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
44135
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating, size: 22 }),
|
|
44136
|
+
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-medium", children: review.title }) : review.title)
|
|
44062
44137
|
] }),
|
|
44063
|
-
review.
|
|
44138
|
+
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base md:text-lg leading-relaxed font-light", children: review.content }) : review.content),
|
|
44139
|
+
review.images && review.images.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-3", imagesClassName), children: review.images.map((image, imgIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
44064
44140
|
"div",
|
|
44065
44141
|
{
|
|
44066
|
-
className: "size-20 overflow-hidden rounded-lg sm:size-24",
|
|
44067
|
-
|
|
44142
|
+
className: "size-20 cursor-pointer overflow-hidden rounded-lg sm:size-24 transition-transform duration-300 hover:scale-[1.03] shadow-sm hover:shadow-lg",
|
|
44143
|
+
onClick: () => handleImageClick(review.images, imgIndex),
|
|
44144
|
+
role: "button",
|
|
44145
|
+
tabIndex: 0,
|
|
44146
|
+
onKeyDown: (e) => {
|
|
44147
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
44148
|
+
e.preventDefault();
|
|
44149
|
+
handleImageClick(review.images, imgIndex);
|
|
44150
|
+
}
|
|
44151
|
+
},
|
|
44152
|
+
"aria-label": `View review image ${imgIndex + 1} in lightbox`,
|
|
44153
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
44068
44154
|
img.Img,
|
|
44069
44155
|
{
|
|
44070
44156
|
src: image,
|
|
@@ -44072,54 +44158,85 @@ function TestimonialsImagesHelpful({
|
|
|
44072
44158
|
className: "size-full object-cover",
|
|
44073
44159
|
optixFlowConfig
|
|
44074
44160
|
}
|
|
44075
|
-
)
|
|
44161
|
+
)
|
|
44076
44162
|
},
|
|
44077
44163
|
imgIndex
|
|
44078
44164
|
)) }),
|
|
44079
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center
|
|
44165
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center justify-between w-full"), children: [
|
|
44080
44166
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
44081
|
-
|
|
44167
|
+
"div",
|
|
44082
44168
|
{
|
|
44083
|
-
|
|
44084
|
-
variant: "ghost",
|
|
44085
|
-
size: "sm",
|
|
44086
|
-
className: cn(
|
|
44087
|
-
"h-8 gap-1.5 text-muted-foreground",
|
|
44088
|
-
helpfulClicked.has(index) && "text-foreground"
|
|
44089
|
-
),
|
|
44090
|
-
onClick: () => handleHelpful(index),
|
|
44169
|
+
className: cn("flex items-center gap-5", authorClassName),
|
|
44091
44170
|
children: [
|
|
44092
|
-
/* @__PURE__ */ jsxRuntime.
|
|
44093
|
-
|
|
44094
|
-
{
|
|
44095
|
-
|
|
44096
|
-
|
|
44097
|
-
|
|
44098
|
-
|
|
44099
|
-
|
|
44100
|
-
|
|
44101
|
-
|
|
44102
|
-
|
|
44103
|
-
|
|
44104
|
-
|
|
44105
|
-
|
|
44106
|
-
|
|
44171
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-12 ring-4 ring-primary shadow-lg", children: [
|
|
44172
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: review.avatarSrc, alt: authorName }),
|
|
44173
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "text-md", children: getInitials(authorName) })
|
|
44174
|
+
] }),
|
|
44175
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-0", children: [
|
|
44176
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
44177
|
+
review.author && (typeof review.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: review.author }) : review.author),
|
|
44178
|
+
review.verified && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-1", children: [
|
|
44179
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/badge-check", size: 18 }),
|
|
44180
|
+
verifiedPurchaseLabel && (typeof verifiedPurchaseLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: verifiedPurchaseLabel }) : verifiedPurchaseLabel),
|
|
44181
|
+
!verifiedPurchaseLabel && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm", children: "Verified Purchase" })
|
|
44182
|
+
] })
|
|
44183
|
+
] }),
|
|
44184
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2 text-sm", children: [
|
|
44185
|
+
review.date && /* @__PURE__ */ jsxRuntime.jsx("span", { children: review.date }),
|
|
44186
|
+
review.variant && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
44187
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "\xB7" }),
|
|
44188
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: review.variant })
|
|
44189
|
+
] })
|
|
44190
|
+
] })
|
|
44107
44191
|
] })
|
|
44108
44192
|
]
|
|
44109
44193
|
}
|
|
44110
44194
|
),
|
|
44111
|
-
/* @__PURE__ */ jsxRuntime.
|
|
44112
|
-
|
|
44113
|
-
|
|
44114
|
-
|
|
44115
|
-
|
|
44116
|
-
|
|
44117
|
-
|
|
44118
|
-
|
|
44119
|
-
|
|
44120
|
-
|
|
44195
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
|
|
44196
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
44197
|
+
Pressable,
|
|
44198
|
+
{
|
|
44199
|
+
asButton: true,
|
|
44200
|
+
variant: "ghost",
|
|
44201
|
+
size: "sm",
|
|
44202
|
+
className: cn(
|
|
44203
|
+
"h-8 gap-1.5",
|
|
44204
|
+
helpfulClicked.has(index) ? "text-foreground" : "text-muted-foreground"
|
|
44205
|
+
),
|
|
44206
|
+
onClick: () => handleHelpful(index),
|
|
44207
|
+
children: [
|
|
44208
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44209
|
+
DynamicIcon,
|
|
44210
|
+
{
|
|
44211
|
+
name: "lucide/thumbs-up",
|
|
44212
|
+
size: 16,
|
|
44213
|
+
className: cn(
|
|
44214
|
+
helpfulClicked.has(index) && "fill-current"
|
|
44215
|
+
)
|
|
44216
|
+
}
|
|
44217
|
+
),
|
|
44218
|
+
"Helpful",
|
|
44219
|
+
review.helpful !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
44220
|
+
"(",
|
|
44221
|
+
review.helpful + (helpfulClicked.has(index) ? 1 : 0),
|
|
44222
|
+
")"
|
|
44223
|
+
] })
|
|
44224
|
+
]
|
|
44225
|
+
}
|
|
44226
|
+
),
|
|
44227
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44228
|
+
Pressable,
|
|
44229
|
+
{
|
|
44230
|
+
asButton: true,
|
|
44231
|
+
variant: "ghost",
|
|
44232
|
+
size: "sm",
|
|
44233
|
+
className: "h-8 text-muted-foreground",
|
|
44234
|
+
children: reportButtonLabel ?? "Report"
|
|
44235
|
+
}
|
|
44236
|
+
)
|
|
44237
|
+
] })
|
|
44121
44238
|
] })
|
|
44122
|
-
] })
|
|
44239
|
+
] })
|
|
44123
44240
|
] }, index);
|
|
44124
44241
|
}) });
|
|
44125
44242
|
}, [
|
|
@@ -44132,11 +44249,13 @@ function TestimonialsImagesHelpful({
|
|
|
44132
44249
|
helpfulClicked,
|
|
44133
44250
|
optixFlowConfig,
|
|
44134
44251
|
reportButtonLabel,
|
|
44252
|
+
verifiedPurchaseLabel,
|
|
44135
44253
|
getAuthorName,
|
|
44136
44254
|
getInitials,
|
|
44137
|
-
handleHelpful
|
|
44255
|
+
handleHelpful,
|
|
44256
|
+
handleImageClick
|
|
44138
44257
|
]);
|
|
44139
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
44258
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
44140
44259
|
Section,
|
|
44141
44260
|
{
|
|
44142
44261
|
background,
|
|
@@ -44144,42 +44263,57 @@ function TestimonialsImagesHelpful({
|
|
|
44144
44263
|
pattern,
|
|
44145
44264
|
patternOpacity,
|
|
44146
44265
|
className,
|
|
44147
|
-
|
|
44148
|
-
|
|
44149
|
-
|
|
44150
|
-
{
|
|
44151
|
-
className:
|
|
44152
|
-
"
|
|
44153
|
-
|
|
44154
|
-
|
|
44155
|
-
|
|
44156
|
-
|
|
44157
|
-
|
|
44158
|
-
|
|
44159
|
-
|
|
44160
|
-
|
|
44161
|
-
|
|
44162
|
-
headingClassName
|
|
44163
|
-
),
|
|
44164
|
-
children: heading
|
|
44165
|
-
}
|
|
44166
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
44167
|
-
totalReviews > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center gap-2", children: [
|
|
44168
|
-
/* @__PURE__ */ jsxRuntime.jsx(StarRating2, { rating: Math.round(averageRating), size: 20 }),
|
|
44169
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg font-semibold", children: averageRating.toFixed(1) }),
|
|
44170
|
-
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm text-muted-foreground", children: [
|
|
44171
|
-
"(",
|
|
44172
|
-
totalReviews,
|
|
44173
|
-
" reviews)"
|
|
44174
|
-
] })
|
|
44175
|
-
] })
|
|
44176
|
-
] }),
|
|
44266
|
+
containerClassName,
|
|
44267
|
+
children: [
|
|
44268
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-full md:max-w-3xl", children: [
|
|
44269
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 md:mb-24 space-y-6", headerClassName), children: [
|
|
44270
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 sm:flex-row sm:items-end sm:justify-between", children: [
|
|
44271
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
44272
|
+
"h2",
|
|
44273
|
+
{
|
|
44274
|
+
className: cn(
|
|
44275
|
+
"text-2xl font-semibold tracking-tight md:text-3xl lg:text-4xl",
|
|
44276
|
+
headingClassName
|
|
44277
|
+
),
|
|
44278
|
+
children: heading
|
|
44279
|
+
}
|
|
44280
|
+
) : heading),
|
|
44177
44281
|
(writeReviewLabel || onWriteReview) && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, variant: "outline", onClick: onWriteReview, children: writeReviewLabel })
|
|
44178
|
-
]
|
|
44282
|
+
] }),
|
|
44283
|
+
totalReviews > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center gap-3", children: [
|
|
44284
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: Math.round(averageRating), size: 22 }),
|
|
44285
|
+
/* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-sm", children: [
|
|
44286
|
+
averageRating.toFixed(1),
|
|
44287
|
+
" out of 5 \xB7 ",
|
|
44288
|
+
totalReviews,
|
|
44289
|
+
" reviews"
|
|
44290
|
+
] })
|
|
44291
|
+
] })
|
|
44292
|
+
] }),
|
|
44293
|
+
renderedReviews
|
|
44294
|
+
] }),
|
|
44295
|
+
lightboxOpen && /* @__PURE__ */ jsxRuntime.jsx(
|
|
44296
|
+
lightbox.Lightbox,
|
|
44297
|
+
{
|
|
44298
|
+
items: lightboxItems,
|
|
44299
|
+
initialIndex: lightboxIndex,
|
|
44300
|
+
layout: "horizontal",
|
|
44301
|
+
controls: {
|
|
44302
|
+
navigation: true,
|
|
44303
|
+
thumbnails: true,
|
|
44304
|
+
download: true,
|
|
44305
|
+
share: true,
|
|
44306
|
+
fullscreen: true,
|
|
44307
|
+
captions: true,
|
|
44308
|
+
counter: true
|
|
44309
|
+
},
|
|
44310
|
+
onClose: handleLightboxClose,
|
|
44311
|
+
enableKeyboardShortcuts: true,
|
|
44312
|
+
closeOnEscape: true,
|
|
44313
|
+
closeOnBackdropClick: true
|
|
44179
44314
|
}
|
|
44180
|
-
)
|
|
44181
|
-
|
|
44182
|
-
] })
|
|
44315
|
+
)
|
|
44316
|
+
]
|
|
44183
44317
|
}
|
|
44184
44318
|
);
|
|
44185
44319
|
}
|
|
@@ -44323,7 +44457,7 @@ function TestimonialsBentoGrid({
|
|
|
44323
44457
|
] }),
|
|
44324
44458
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0 leading-tight", children: [
|
|
44325
44459
|
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: testimonial.author }) : testimonial.author),
|
|
44326
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs
|
|
44460
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: testimonial.role }) : testimonial.role),
|
|
44327
44461
|
testimonial.linkConfig?.href && /* @__PURE__ */ jsxRuntime.jsx(
|
|
44328
44462
|
Pressable,
|
|
44329
44463
|
{
|
|
@@ -44438,7 +44572,7 @@ function TestimonialsTwitterCards({
|
|
|
44438
44572
|
"div",
|
|
44439
44573
|
{
|
|
44440
44574
|
className: cn(
|
|
44441
|
-
"grid gap-
|
|
44575
|
+
"grid gap-6 lg:gap-8 md:grid-cols-2 lg:grid-cols-3",
|
|
44442
44576
|
gridClassName
|
|
44443
44577
|
),
|
|
44444
44578
|
children: testimonials.map((testimonial, index) => {
|
|
@@ -44491,7 +44625,8 @@ function TestimonialsTwitterCards({
|
|
|
44491
44625
|
SocialLinkIcon,
|
|
44492
44626
|
{
|
|
44493
44627
|
href: testimonial.linkConfig.href,
|
|
44494
|
-
iconSize: 24
|
|
44628
|
+
iconSize: 24,
|
|
44629
|
+
iconOnly: true
|
|
44495
44630
|
}
|
|
44496
44631
|
)
|
|
44497
44632
|
]
|
|
@@ -44572,6 +44707,7 @@ function TestimonialsCarouselImage({
|
|
|
44572
44707
|
className,
|
|
44573
44708
|
contentClassName,
|
|
44574
44709
|
quoteIconClassName,
|
|
44710
|
+
logoClassName,
|
|
44575
44711
|
quoteClassName,
|
|
44576
44712
|
authorClassName,
|
|
44577
44713
|
navigationClassName,
|
|
@@ -44579,7 +44715,7 @@ function TestimonialsCarouselImage({
|
|
|
44579
44715
|
dotsClassName,
|
|
44580
44716
|
optixFlowConfig,
|
|
44581
44717
|
background,
|
|
44582
|
-
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10",
|
|
44718
|
+
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 h-full",
|
|
44583
44719
|
spacing = "none",
|
|
44584
44720
|
pattern,
|
|
44585
44721
|
patternOpacity
|
|
@@ -44637,7 +44773,18 @@ function TestimonialsCarouselImage({
|
|
|
44637
44773
|
contentClassName
|
|
44638
44774
|
),
|
|
44639
44775
|
children: [
|
|
44640
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
44776
|
+
current?.logoSrc ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
44777
|
+
img.Img,
|
|
44778
|
+
{
|
|
44779
|
+
src: current.logoSrc,
|
|
44780
|
+
alt: typeof current.company === "string" ? `${current.company} logo` : typeof current.author === "string" ? `${current.author} company logo` : "Company logo",
|
|
44781
|
+
className: cn(
|
|
44782
|
+
"mx-auto mb-6 max-h-12 max-w-32 object-contain md:max-h-16 md:max-w-48",
|
|
44783
|
+
logoClassName
|
|
44784
|
+
),
|
|
44785
|
+
optixFlowConfig
|
|
44786
|
+
}
|
|
44787
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
44641
44788
|
DynamicIcon,
|
|
44642
44789
|
{
|
|
44643
44790
|
name: "mdi/comment-quote-outline",
|
|
@@ -44695,6 +44842,8 @@ function TestimonialsCarouselImage({
|
|
|
44695
44842
|
testimonialsSlot,
|
|
44696
44843
|
contentClassName,
|
|
44697
44844
|
quoteIconClassName,
|
|
44845
|
+
logoClassName,
|
|
44846
|
+
optixFlowConfig,
|
|
44698
44847
|
current,
|
|
44699
44848
|
quoteClassName,
|
|
44700
44849
|
authorClassName
|
|
@@ -44895,7 +45044,7 @@ function TestimonialsCenteredAvatars({
|
|
|
44895
45044
|
"div",
|
|
44896
45045
|
{
|
|
44897
45046
|
className: cn(
|
|
44898
|
-
"mx-auto max-w-full md:max-w-md text-center flex flex-col items-center gap-6",
|
|
45047
|
+
"mx-auto max-w-full md:max-w-md text-center flex flex-col items-center gap-6 bg-card/50 px-10 py-20 shadow-xl border border-border/50 rounded-3xl backdrop-blur-md",
|
|
44899
45048
|
contentClassName
|
|
44900
45049
|
),
|
|
44901
45050
|
children: [
|
|
@@ -45051,19 +45200,6 @@ function TestimonialsCompanyLogo({
|
|
|
45051
45200
|
}
|
|
45052
45201
|
);
|
|
45053
45202
|
}
|
|
45054
|
-
function StarRating3({ rating, size = 16 }) {
|
|
45055
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
45056
|
-
DynamicIcon,
|
|
45057
|
-
{
|
|
45058
|
-
name: "lucide/star",
|
|
45059
|
-
size,
|
|
45060
|
-
className: cn(
|
|
45061
|
-
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
45062
|
-
)
|
|
45063
|
-
},
|
|
45064
|
-
star
|
|
45065
|
-
)) });
|
|
45066
|
-
}
|
|
45067
45203
|
function TestimonialsGridAddReview({
|
|
45068
45204
|
reviews,
|
|
45069
45205
|
reviewsSlot,
|
|
@@ -45110,27 +45246,33 @@ function TestimonialsGridAddReview({
|
|
|
45110
45246
|
addReviewCardClassName
|
|
45111
45247
|
),
|
|
45112
45248
|
onClick: onAddReview,
|
|
45113
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
45114
|
-
|
|
45115
|
-
|
|
45116
|
-
|
|
45117
|
-
|
|
45118
|
-
|
|
45119
|
-
|
|
45120
|
-
|
|
45121
|
-
size:
|
|
45122
|
-
|
|
45123
|
-
|
|
45124
|
-
|
|
45125
|
-
|
|
45126
|
-
|
|
45127
|
-
|
|
45249
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
45250
|
+
CardContent,
|
|
45251
|
+
{
|
|
45252
|
+
className: cn(
|
|
45253
|
+
"flex flex-col items-center gap-3 py-12 text-center",
|
|
45254
|
+
getNestedCardTextColor(background)
|
|
45255
|
+
),
|
|
45256
|
+
children: [
|
|
45257
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
45258
|
+
DynamicIcon,
|
|
45259
|
+
{
|
|
45260
|
+
name: "lucide/plus",
|
|
45261
|
+
size: 24,
|
|
45262
|
+
className: "text-primary"
|
|
45263
|
+
}
|
|
45264
|
+
) }),
|
|
45265
|
+
addReviewText && (typeof addReviewText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: addReviewText }) : addReviewText),
|
|
45266
|
+
addReviewSubtext && (typeof addReviewSubtext === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: addReviewSubtext }) : addReviewSubtext)
|
|
45267
|
+
]
|
|
45268
|
+
}
|
|
45269
|
+
)
|
|
45128
45270
|
}
|
|
45129
45271
|
),
|
|
45130
45272
|
reviews?.map((review, index) => {
|
|
45131
45273
|
const authorName = getAuthorName(review);
|
|
45132
45274
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "space-y-4 p-6", children: [
|
|
45133
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45275
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: review.rating }),
|
|
45134
45276
|
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm leading-relaxed", children: review.content }) : review.content),
|
|
45135
45277
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
|
|
45136
45278
|
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-8", children: [
|
|
@@ -45144,7 +45286,19 @@ function TestimonialsGridAddReview({
|
|
|
45144
45286
|
]
|
|
45145
45287
|
}
|
|
45146
45288
|
);
|
|
45147
|
-
}, [
|
|
45289
|
+
}, [
|
|
45290
|
+
reviewsSlot,
|
|
45291
|
+
gridClassName,
|
|
45292
|
+
addReviewCardClassName,
|
|
45293
|
+
onAddReview,
|
|
45294
|
+
addReviewText,
|
|
45295
|
+
addReviewSubtext,
|
|
45296
|
+
reviews,
|
|
45297
|
+
cardClassName,
|
|
45298
|
+
authorClassName,
|
|
45299
|
+
getAuthorName,
|
|
45300
|
+
getInitials
|
|
45301
|
+
]);
|
|
45148
45302
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
45149
45303
|
Section,
|
|
45150
45304
|
{
|
|
@@ -45250,10 +45404,18 @@ function TestimonialsMarquee({
|
|
|
45250
45404
|
const authorName = getAuthorName(testimonial);
|
|
45251
45405
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
45252
45406
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
45253
|
-
|
|
45407
|
+
Pressable,
|
|
45254
45408
|
{
|
|
45255
|
-
|
|
45256
|
-
|
|
45409
|
+
href: testimonial?.linkConfig?.href,
|
|
45410
|
+
className: cn(
|
|
45411
|
+
"bg-card text-card-foreground",
|
|
45412
|
+
"rounded-2xl border shadow-xl",
|
|
45413
|
+
"cursor-pointer transition-all duration-500",
|
|
45414
|
+
"hover:bg-primary hover:text-primary-foreground",
|
|
45415
|
+
"flex flex-col gap-6 w-80 shrink-0",
|
|
45416
|
+
cardClassName
|
|
45417
|
+
),
|
|
45418
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "p-6 h-full flex flex-col justify-between gap-12", children: [
|
|
45257
45419
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
45258
45420
|
"p",
|
|
45259
45421
|
{
|
|
@@ -45271,15 +45433,15 @@ function TestimonialsMarquee({
|
|
|
45271
45433
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
45272
45434
|
"div",
|
|
45273
45435
|
{
|
|
45274
|
-
className: cn("flex items-center gap-
|
|
45436
|
+
className: cn("flex items-center gap-4", authorClassName),
|
|
45275
45437
|
children: [
|
|
45276
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-
|
|
45438
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "relative flex shrink-0 overflow-hidden rounded-full size-10 ring-4 ring-primary shadow-lg", children: [
|
|
45277
45439
|
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
45278
45440
|
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "text-xs", children: getInitials(authorName) })
|
|
45279
45441
|
] }),
|
|
45280
45442
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
45281
|
-
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
45282
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-
|
|
45443
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base font-medium", children: testimonial.author }) : testimonial.author),
|
|
45444
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: testimonial.role }) : testimonial.role)
|
|
45283
45445
|
] })
|
|
45284
45446
|
]
|
|
45285
45447
|
}
|
|
@@ -45317,18 +45479,18 @@ function TestimonialsMarquee({
|
|
|
45317
45479
|
className: cn("overflow-hidden", className),
|
|
45318
45480
|
containerClassName,
|
|
45319
45481
|
children: [
|
|
45320
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-12", headerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-2xl text-center", children: [
|
|
45482
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-12", headerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-full md:max-w-2xl text-center space-y-2", children: [
|
|
45321
45483
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
45322
45484
|
"h2",
|
|
45323
45485
|
{
|
|
45324
45486
|
className: cn(
|
|
45325
|
-
"text-3xl font-semibold tracking-tight md:text-4xl",
|
|
45487
|
+
"text-3xl font-semibold tracking-tight md:text-4xl lg:text-6xl text-pretty",
|
|
45326
45488
|
headingClassName
|
|
45327
45489
|
),
|
|
45328
45490
|
children: heading
|
|
45329
45491
|
}
|
|
45330
45492
|
) : heading),
|
|
45331
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("
|
|
45493
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg text-balance", descriptionClassName), children: description }) : description)
|
|
45332
45494
|
] }) }),
|
|
45333
45495
|
renderedTestimonials,
|
|
45334
45496
|
/* @__PURE__ */ jsxRuntime.jsx("style", { children: `
|
|
@@ -45409,7 +45571,7 @@ function TestimonialsSimpleGrid({
|
|
|
45409
45571
|
"bg-card text-card-foreground",
|
|
45410
45572
|
"flex flex-col gap-6",
|
|
45411
45573
|
testimonial.linkConfig?.href ? "cursor-pointer hover:bg-black hover:text-white transition-all duration-500" : "",
|
|
45412
|
-
"rounded-2xl py-
|
|
45574
|
+
"rounded-2xl py-0 shadow-xl group",
|
|
45413
45575
|
"ring-4 ring-ring",
|
|
45414
45576
|
cardClassName
|
|
45415
45577
|
),
|
|
@@ -45417,7 +45579,7 @@ function TestimonialsSimpleGrid({
|
|
|
45417
45579
|
CardContent,
|
|
45418
45580
|
{
|
|
45419
45581
|
className: cn(
|
|
45420
|
-
"px-
|
|
45582
|
+
"px-0 h-full flex flex-col-reverse items-stretch justify-between gap-12",
|
|
45421
45583
|
cardContentClassName
|
|
45422
45584
|
),
|
|
45423
45585
|
children: [
|
|
@@ -45429,7 +45591,7 @@ function TestimonialsSimpleGrid({
|
|
|
45429
45591
|
authorClassName
|
|
45430
45592
|
),
|
|
45431
45593
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
|
|
45432
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "relative flex shrink-0
|
|
45594
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "relative flex shrink-0 size-24 border-t-4 border-r-4 border-primary rounded-tr-xl rounded-tl-none rounded-br-none rounded-bl-none shadow-xl", children: [
|
|
45433
45595
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
45434
45596
|
AvatarImage,
|
|
45435
45597
|
{
|
|
@@ -45439,11 +45601,28 @@ function TestimonialsSimpleGrid({
|
|
|
45439
45601
|
),
|
|
45440
45602
|
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
45441
45603
|
] }),
|
|
45442
|
-
/* @__PURE__ */ jsxRuntime.
|
|
45604
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1 pt-2 pr-6 pb-2", children: [
|
|
45605
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0", children: [
|
|
45606
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold leading-relaxed", children: testimonial.author }) : testimonial.author),
|
|
45607
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base", children: testimonial.role }) : testimonial.role)
|
|
45608
|
+
] }),
|
|
45609
|
+
testimonial.linkConfig?.href && /* @__PURE__ */ jsxRuntime.jsx(
|
|
45610
|
+
Pressable,
|
|
45611
|
+
{
|
|
45612
|
+
href: testimonial.linkConfig.href,
|
|
45613
|
+
className: cn(
|
|
45614
|
+
"text-base transition-all duration-300",
|
|
45615
|
+
"underline underline-offset-4",
|
|
45616
|
+
testimonial.linkConfig.className
|
|
45617
|
+
),
|
|
45618
|
+
children: testimonial.linkConfig.label
|
|
45619
|
+
}
|
|
45620
|
+
)
|
|
45621
|
+
] })
|
|
45443
45622
|
] })
|
|
45444
45623
|
}
|
|
45445
45624
|
),
|
|
45446
|
-
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm leading-relaxed", children: testimonial.quote }) : testimonial.quote)
|
|
45625
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-6 md: pt-8 px-6 md:px-8", children: testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm leading-relaxed", children: testimonial.quote }) : testimonial.quote) })
|
|
45447
45626
|
]
|
|
45448
45627
|
}
|
|
45449
45628
|
)
|
|
@@ -45614,7 +45793,7 @@ function TestimonialsSliderMinimal({
|
|
|
45614
45793
|
Avatar,
|
|
45615
45794
|
{
|
|
45616
45795
|
className: cn(
|
|
45617
|
-
"relative flex shrink-0 overflow-hidden rounded-
|
|
45796
|
+
"relative flex shrink-0 overflow-hidden rounded-full ring-4 ring-primary shadow-xl size-12",
|
|
45618
45797
|
avatarClassName
|
|
45619
45798
|
),
|
|
45620
45799
|
children: [
|
|
@@ -45896,6 +46075,7 @@ function TestimonialsStatsHeader({
|
|
|
45896
46075
|
statItemClassName,
|
|
45897
46076
|
testimonialsGridClassName,
|
|
45898
46077
|
cardClassName,
|
|
46078
|
+
statCardClassName,
|
|
45899
46079
|
quoteClassName,
|
|
45900
46080
|
authorClassName,
|
|
45901
46081
|
background,
|
|
@@ -45914,6 +46094,11 @@ function TestimonialsStatsHeader({
|
|
|
45914
46094
|
},
|
|
45915
46095
|
[]
|
|
45916
46096
|
);
|
|
46097
|
+
const renderStatIcon = React8.useCallback((stat) => {
|
|
46098
|
+
if (stat.iconSlot) return stat.iconSlot;
|
|
46099
|
+
if (!stat.icon) return null;
|
|
46100
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 32, className: stat.iconColor }) });
|
|
46101
|
+
}, []);
|
|
45917
46102
|
const getInitials = React8.useCallback((name) => {
|
|
45918
46103
|
return name.split(" ").map((n) => n[0]).join("");
|
|
45919
46104
|
}, []);
|
|
@@ -45924,24 +46109,29 @@ function TestimonialsStatsHeader({
|
|
|
45924
46109
|
"div",
|
|
45925
46110
|
{
|
|
45926
46111
|
className: cn(
|
|
45927
|
-
"mb-12 grid grid-cols-2
|
|
46112
|
+
"mb-12 grid gap-6 md:grid-cols-2 lg:grid-cols-3",
|
|
45928
46113
|
statsGridClassName
|
|
45929
46114
|
),
|
|
45930
|
-
children: stats.map((stat
|
|
45931
|
-
|
|
46115
|
+
children: stats.map((stat) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
46116
|
+
Card,
|
|
45932
46117
|
{
|
|
45933
46118
|
className: cn(
|
|
45934
|
-
"
|
|
45935
|
-
|
|
45936
|
-
|
|
45937
|
-
statItemClassName
|
|
46119
|
+
"overflow-hidden border p-0",
|
|
46120
|
+
stat.className,
|
|
46121
|
+
statCardClassName
|
|
45938
46122
|
),
|
|
45939
|
-
children: [
|
|
45940
|
-
|
|
45941
|
-
|
|
45942
|
-
|
|
46123
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "p-6 md:p-8", children: [
|
|
46124
|
+
renderStatIcon(stat),
|
|
46125
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-end", children: [
|
|
46126
|
+
stat.prefix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-1 mr-1 text-2xl font-bold", children: stat.prefix }),
|
|
46127
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-4xl font-bold tracking-tight leading-tight md:text-5xl", children: stat.value }),
|
|
46128
|
+
stat.suffix && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-1 ml-1 text-2xl font-bold", children: stat.suffix })
|
|
46129
|
+
] }),
|
|
46130
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xl font-semibold", children: stat.label }),
|
|
46131
|
+
stat.description && (typeof stat.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-75", children: stat.description }) : stat.description)
|
|
46132
|
+
] })
|
|
45943
46133
|
},
|
|
45944
|
-
|
|
46134
|
+
stat.id
|
|
45945
46135
|
))
|
|
45946
46136
|
}
|
|
45947
46137
|
);
|
|
@@ -45956,41 +46146,65 @@ function TestimonialsStatsHeader({
|
|
|
45956
46146
|
children: testimonials.map((testimonial, index) => {
|
|
45957
46147
|
const authorName = getAuthorName(testimonial);
|
|
45958
46148
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
45959
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
45960
|
-
|
|
45961
|
-
|
|
45962
|
-
|
|
45963
|
-
|
|
45964
|
-
|
|
45965
|
-
|
|
45966
|
-
|
|
45967
|
-
|
|
45968
|
-
|
|
45969
|
-
|
|
45970
|
-
|
|
45971
|
-
|
|
45972
|
-
|
|
45973
|
-
|
|
45974
|
-
|
|
45975
|
-
|
|
45976
|
-
|
|
45977
|
-
|
|
45978
|
-
|
|
45979
|
-
|
|
45980
|
-
|
|
45981
|
-
|
|
45982
|
-
|
|
45983
|
-
|
|
45984
|
-
|
|
45985
|
-
|
|
45986
|
-
|
|
45987
|
-
|
|
45988
|
-
|
|
45989
|
-
|
|
45990
|
-
|
|
45991
|
-
|
|
45992
|
-
|
|
45993
|
-
|
|
46149
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
46150
|
+
"div",
|
|
46151
|
+
{
|
|
46152
|
+
className: cn(
|
|
46153
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded-2xl border py-0 shadow-xl",
|
|
46154
|
+
cardClassName
|
|
46155
|
+
),
|
|
46156
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-12 justify-between", children: [
|
|
46157
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-4", children: [
|
|
46158
|
+
/* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: 5, size: 20 }),
|
|
46159
|
+
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46160
|
+
"p",
|
|
46161
|
+
{
|
|
46162
|
+
className: cn(
|
|
46163
|
+
"mb-6 text-sm leading-relaxed",
|
|
46164
|
+
quoteClassName
|
|
46165
|
+
),
|
|
46166
|
+
children: [
|
|
46167
|
+
"\u201C",
|
|
46168
|
+
testimonial.quote,
|
|
46169
|
+
"\u201D"
|
|
46170
|
+
]
|
|
46171
|
+
}
|
|
46172
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", quoteClassName), children: testimonial.quote }))
|
|
46173
|
+
] }),
|
|
46174
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
46175
|
+
"div",
|
|
46176
|
+
{
|
|
46177
|
+
className: cn("flex items-center gap-3", authorClassName),
|
|
46178
|
+
children: [
|
|
46179
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-10", children: [
|
|
46180
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
46181
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
46182
|
+
] }),
|
|
46183
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
46184
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
46185
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base font-medium", children: testimonial.author }) : testimonial.author),
|
|
46186
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm opacity-75", children: testimonial.role }) : testimonial.role)
|
|
46187
|
+
] }),
|
|
46188
|
+
testimonial.linkConfig?.href && /* @__PURE__ */ jsxRuntime.jsx(
|
|
46189
|
+
Pressable,
|
|
46190
|
+
{
|
|
46191
|
+
href: testimonial.linkConfig.href,
|
|
46192
|
+
className: cn(
|
|
46193
|
+
"text-sm transition-all duration-300",
|
|
46194
|
+
"hover:underline hover:underline-offset-4",
|
|
46195
|
+
testimonial.linkConfig.className
|
|
46196
|
+
),
|
|
46197
|
+
children: testimonial.linkConfig.label
|
|
46198
|
+
}
|
|
46199
|
+
)
|
|
46200
|
+
] })
|
|
46201
|
+
]
|
|
46202
|
+
}
|
|
46203
|
+
)
|
|
46204
|
+
] }) })
|
|
46205
|
+
},
|
|
46206
|
+
index
|
|
46207
|
+
);
|
|
45994
46208
|
})
|
|
45995
46209
|
}
|
|
45996
46210
|
);
|
|
@@ -46182,19 +46396,6 @@ function TestimonialsWallCompact({
|
|
|
46182
46396
|
}
|
|
46183
46397
|
);
|
|
46184
46398
|
}
|
|
46185
|
-
function StarRating4({ rating, size = 14 }) {
|
|
46186
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
46187
|
-
DynamicIcon,
|
|
46188
|
-
{
|
|
46189
|
-
name: "lucide/star",
|
|
46190
|
-
size,
|
|
46191
|
-
className: cn(
|
|
46192
|
-
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
46193
|
-
)
|
|
46194
|
-
},
|
|
46195
|
-
star
|
|
46196
|
-
)) });
|
|
46197
|
-
}
|
|
46198
46399
|
function TestimonialsMiniDividers({
|
|
46199
46400
|
testimonials,
|
|
46200
46401
|
testimonialsSlot,
|
|
@@ -46209,101 +46410,133 @@ function TestimonialsMiniDividers({
|
|
|
46209
46410
|
quoteClassName,
|
|
46210
46411
|
authorClassName,
|
|
46211
46412
|
background,
|
|
46212
|
-
spacing,
|
|
46413
|
+
spacing = "lg",
|
|
46414
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
46213
46415
|
pattern,
|
|
46214
46416
|
patternOpacity
|
|
46215
46417
|
}) {
|
|
46216
|
-
const getAuthorName = React8.useCallback(
|
|
46217
|
-
|
|
46218
|
-
|
|
46219
|
-
|
|
46220
|
-
|
|
46221
|
-
|
|
46222
|
-
|
|
46418
|
+
const getAuthorName = React8.useCallback(
|
|
46419
|
+
(testimonial) => {
|
|
46420
|
+
if (typeof testimonial.author === "string") return testimonial.author;
|
|
46421
|
+
return "";
|
|
46422
|
+
},
|
|
46423
|
+
[]
|
|
46424
|
+
);
|
|
46425
|
+
const getAvatarSrc = React8.useCallback(
|
|
46426
|
+
(testimonial) => {
|
|
46427
|
+
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
46428
|
+
},
|
|
46429
|
+
[]
|
|
46430
|
+
);
|
|
46223
46431
|
const getInitials = React8.useCallback((name) => {
|
|
46224
46432
|
return name.split(" ").map((n) => n[0]).join("");
|
|
46225
46433
|
}, []);
|
|
46226
46434
|
const renderedTestimonials = React8.useMemo(() => {
|
|
46227
46435
|
if (testimonialsSlot) return testimonialsSlot;
|
|
46228
46436
|
if (!testimonials || testimonials.length === 0) return null;
|
|
46229
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
46437
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46230
46438
|
"div",
|
|
46231
46439
|
{
|
|
46232
46440
|
className: cn(
|
|
46233
|
-
"
|
|
46441
|
+
"relative grid border-x border-b border-dashed md:grid-cols-3",
|
|
46234
46442
|
gridClassName
|
|
46235
46443
|
),
|
|
46236
|
-
children:
|
|
46237
|
-
|
|
46238
|
-
|
|
46239
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46240
|
-
"div",
|
|
46444
|
+
children: [
|
|
46445
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46446
|
+
DynamicIcon,
|
|
46241
46447
|
{
|
|
46242
|
-
|
|
46243
|
-
|
|
46244
|
-
|
|
46245
|
-
|
|
46246
|
-
|
|
46247
|
-
|
|
46248
|
-
|
|
46249
|
-
|
|
46250
|
-
|
|
46251
|
-
|
|
46252
|
-
|
|
46253
|
-
|
|
46254
|
-
|
|
46255
|
-
|
|
46256
|
-
|
|
46257
|
-
|
|
46258
|
-
|
|
46259
|
-
|
|
46260
|
-
|
|
46261
|
-
|
|
46262
|
-
|
|
46263
|
-
|
|
46264
|
-
|
|
46265
|
-
|
|
46266
|
-
|
|
46267
|
-
|
|
46268
|
-
children: [
|
|
46269
|
-
/* @__PURE__ */ jsxRuntime.
|
|
46270
|
-
|
|
46271
|
-
|
|
46272
|
-
|
|
46273
|
-
/* @__PURE__ */ jsxRuntime.
|
|
46274
|
-
|
|
46275
|
-
|
|
46276
|
-
|
|
46277
|
-
|
|
46278
|
-
|
|
46279
|
-
|
|
46280
|
-
|
|
46281
|
-
|
|
46282
|
-
|
|
46283
|
-
|
|
46284
|
-
|
|
46448
|
+
name: "lucide/sparkle",
|
|
46449
|
+
size: 20,
|
|
46450
|
+
className: "absolute top-0 right-0 translate-x-2.5 -translate-y-2.5 fill-primary"
|
|
46451
|
+
}
|
|
46452
|
+
),
|
|
46453
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46454
|
+
DynamicIcon,
|
|
46455
|
+
{
|
|
46456
|
+
name: "lucide/sparkle",
|
|
46457
|
+
size: 20,
|
|
46458
|
+
className: "absolute top-0 left-0 -translate-x-2.5 -translate-y-2.5 fill-primary"
|
|
46459
|
+
}
|
|
46460
|
+
),
|
|
46461
|
+
testimonials.map((testimonial, index) => {
|
|
46462
|
+
const authorName = getAuthorName(testimonial);
|
|
46463
|
+
const avatarSrc = getAvatarSrc(testimonial);
|
|
46464
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46465
|
+
"div",
|
|
46466
|
+
{
|
|
46467
|
+
className: cn(
|
|
46468
|
+
"group flex flex-col gap-4 border-t border-dashed p-4 transition-colors duration-300 hover:bg-muted/50 lg:p-8",
|
|
46469
|
+
index % 3 === 1 && "md:border-x md:border-dashed",
|
|
46470
|
+
itemClassName
|
|
46471
|
+
),
|
|
46472
|
+
children: [
|
|
46473
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
|
|
46474
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-10 shrink-0 rounded-md bg-card shadow-sm lg:size-12", children: [
|
|
46475
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
46476
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "rounded-md bg-card text-card-foreground text-sm", children: getInitials(authorName) })
|
|
46477
|
+
] }),
|
|
46478
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("min-w-0", authorClassName), children: [
|
|
46479
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate font-medium", children: testimonial.author }) : testimonial.author),
|
|
46480
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-sm text-muted-foreground", children: testimonial.role }) : testimonial.role)
|
|
46481
|
+
] })
|
|
46482
|
+
] }),
|
|
46483
|
+
testimonial.rating != null && /* @__PURE__ */ jsxRuntime.jsx(StarRating, { rating: testimonial.rating }),
|
|
46484
|
+
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46485
|
+
"p",
|
|
46486
|
+
{
|
|
46487
|
+
className: cn(
|
|
46488
|
+
"text-sm leading-relaxed text-muted-foreground",
|
|
46489
|
+
quoteClassName
|
|
46490
|
+
),
|
|
46491
|
+
children: [
|
|
46492
|
+
"\u201C",
|
|
46493
|
+
testimonial.quote,
|
|
46494
|
+
"\u201D"
|
|
46495
|
+
]
|
|
46496
|
+
}
|
|
46497
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm", quoteClassName), children: testimonial.quote }))
|
|
46498
|
+
]
|
|
46499
|
+
},
|
|
46500
|
+
index
|
|
46501
|
+
);
|
|
46502
|
+
})
|
|
46503
|
+
]
|
|
46285
46504
|
}
|
|
46286
46505
|
);
|
|
46287
|
-
}, [
|
|
46288
|
-
|
|
46506
|
+
}, [
|
|
46507
|
+
testimonialsSlot,
|
|
46508
|
+
gridClassName,
|
|
46509
|
+
testimonials,
|
|
46510
|
+
itemClassName,
|
|
46511
|
+
quoteClassName,
|
|
46512
|
+
authorClassName,
|
|
46513
|
+
getAuthorName,
|
|
46514
|
+
getAvatarSrc,
|
|
46515
|
+
getInitials
|
|
46516
|
+
]);
|
|
46517
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
46289
46518
|
Section,
|
|
46290
46519
|
{
|
|
46291
46520
|
background,
|
|
46292
46521
|
spacing,
|
|
46293
46522
|
pattern,
|
|
46294
46523
|
patternOpacity,
|
|
46295
|
-
className,
|
|
46296
|
-
|
|
46297
|
-
|
|
46524
|
+
className: cn("relative flex items-center justify-center", className),
|
|
46525
|
+
containerClassName,
|
|
46526
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
46527
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
46298
46528
|
"div",
|
|
46299
46529
|
{
|
|
46300
|
-
className: cn(
|
|
46301
|
-
|
|
46530
|
+
className: cn(
|
|
46531
|
+
"border-x border-t border-dashed px-4 py-6 md:py-16 md:px-16",
|
|
46532
|
+
headerClassName
|
|
46533
|
+
),
|
|
46534
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
46302
46535
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
46303
46536
|
"h2",
|
|
46304
46537
|
{
|
|
46305
46538
|
className: cn(
|
|
46306
|
-
"text-3xl font-semibold tracking-tight md:text-4xl",
|
|
46539
|
+
"text-center text-3xl font-semibold tracking-tight md:text-4xl",
|
|
46307
46540
|
headingClassName
|
|
46308
46541
|
),
|
|
46309
46542
|
children: heading
|
|
@@ -46313,17 +46546,17 @@ function TestimonialsMiniDividers({
|
|
|
46313
46546
|
"p",
|
|
46314
46547
|
{
|
|
46315
46548
|
className: cn(
|
|
46316
|
-
"mt-4 text-lg text-
|
|
46549
|
+
"mx-auto mt-4 max-w-2xl text-center text-lg text-balance",
|
|
46317
46550
|
descriptionClassName
|
|
46318
46551
|
),
|
|
46319
46552
|
children: description
|
|
46320
46553
|
}
|
|
46321
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
46322
|
-
]
|
|
46554
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
46555
|
+
] })
|
|
46323
46556
|
}
|
|
46324
46557
|
),
|
|
46325
46558
|
renderedTestimonials
|
|
46326
|
-
]
|
|
46559
|
+
] })
|
|
46327
46560
|
}
|
|
46328
46561
|
);
|
|
46329
46562
|
}
|
|
@@ -46343,18 +46576,25 @@ function TestimonialsLogoCards({
|
|
|
46343
46576
|
quoteClassName,
|
|
46344
46577
|
authorClassName,
|
|
46345
46578
|
background,
|
|
46346
|
-
spacing,
|
|
46579
|
+
spacing = "lg",
|
|
46580
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
46347
46581
|
pattern,
|
|
46348
46582
|
patternOpacity,
|
|
46349
46583
|
optixFlowConfig
|
|
46350
46584
|
}) {
|
|
46351
|
-
const getAuthorName = React8.useCallback(
|
|
46352
|
-
|
|
46353
|
-
|
|
46354
|
-
|
|
46355
|
-
|
|
46356
|
-
|
|
46357
|
-
|
|
46585
|
+
const getAuthorName = React8.useCallback(
|
|
46586
|
+
(testimonial) => {
|
|
46587
|
+
if (typeof testimonial.author === "string") return testimonial.author;
|
|
46588
|
+
return "";
|
|
46589
|
+
},
|
|
46590
|
+
[]
|
|
46591
|
+
);
|
|
46592
|
+
const getAvatarSrc = React8.useCallback(
|
|
46593
|
+
(testimonial) => {
|
|
46594
|
+
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
46595
|
+
},
|
|
46596
|
+
[]
|
|
46597
|
+
);
|
|
46358
46598
|
const getInitials = React8.useCallback((name) => {
|
|
46359
46599
|
return name.split(" ").map((n) => n[0]).join("");
|
|
46360
46600
|
}, []);
|
|
@@ -46385,7 +46625,10 @@ function TestimonialsLogoCards({
|
|
|
46385
46625
|
{
|
|
46386
46626
|
src: testimonial.companyLogo,
|
|
46387
46627
|
alt: testimonial.companyLogoAlt || "Company logo",
|
|
46388
|
-
className:
|
|
46628
|
+
className: cn(
|
|
46629
|
+
index === 0 ? "h-10" : "h-5",
|
|
46630
|
+
"w-auto object-contain"
|
|
46631
|
+
),
|
|
46389
46632
|
optixFlowConfig
|
|
46390
46633
|
}
|
|
46391
46634
|
) }),
|
|
@@ -46402,20 +46645,29 @@ function TestimonialsLogoCards({
|
|
|
46402
46645
|
{
|
|
46403
46646
|
className: cn(
|
|
46404
46647
|
"leading-relaxed",
|
|
46405
|
-
index === 0 ? "text-xl font-
|
|
46648
|
+
index === 0 ? "text-lg md:text-xl font-light" : "text-sm md:text-base",
|
|
46406
46649
|
quoteClassName
|
|
46407
46650
|
),
|
|
46408
46651
|
children: testimonial.quote
|
|
46409
46652
|
}
|
|
46410
|
-
) :
|
|
46653
|
+
) : testimonial.quote),
|
|
46411
46654
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
|
|
46412
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
46413
|
-
|
|
46414
|
-
|
|
46415
|
-
|
|
46655
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
46656
|
+
Avatar,
|
|
46657
|
+
{
|
|
46658
|
+
className: cn(
|
|
46659
|
+
index === 0 ? "size-12" : "size-10",
|
|
46660
|
+
"ring-4 ring-primary"
|
|
46661
|
+
),
|
|
46662
|
+
children: [
|
|
46663
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
46664
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
46665
|
+
]
|
|
46666
|
+
}
|
|
46667
|
+
),
|
|
46416
46668
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
46417
|
-
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "text-sm font-medium
|
|
46418
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
46669
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "text-sm md:text-base font-medium", children: testimonial.author }) : testimonial.author),
|
|
46670
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs md:text-sm", children: testimonial.role }) : testimonial.role)
|
|
46419
46671
|
] })
|
|
46420
46672
|
] })
|
|
46421
46673
|
]
|
|
@@ -46428,7 +46680,20 @@ function TestimonialsLogoCards({
|
|
|
46428
46680
|
})
|
|
46429
46681
|
}
|
|
46430
46682
|
);
|
|
46431
|
-
}, [
|
|
46683
|
+
}, [
|
|
46684
|
+
testimonialsSlot,
|
|
46685
|
+
gridClassName,
|
|
46686
|
+
testimonials,
|
|
46687
|
+
cardClassName,
|
|
46688
|
+
cardHeaderClassName,
|
|
46689
|
+
optixFlowConfig,
|
|
46690
|
+
cardContentClassName,
|
|
46691
|
+
quoteClassName,
|
|
46692
|
+
authorClassName,
|
|
46693
|
+
getAuthorName,
|
|
46694
|
+
getAvatarSrc,
|
|
46695
|
+
getInitials
|
|
46696
|
+
]);
|
|
46432
46697
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
46433
46698
|
Section,
|
|
46434
46699
|
{
|
|
@@ -46437,6 +46702,7 @@ function TestimonialsLogoCards({
|
|
|
46437
46702
|
pattern,
|
|
46438
46703
|
patternOpacity,
|
|
46439
46704
|
className,
|
|
46705
|
+
containerClassName,
|
|
46440
46706
|
children: [
|
|
46441
46707
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
46442
46708
|
"div",
|
|
@@ -46447,22 +46713,19 @@ function TestimonialsLogoCards({
|
|
|
46447
46713
|
"h2",
|
|
46448
46714
|
{
|
|
46449
46715
|
className: cn(
|
|
46450
|
-
"text-3xl font-semibold tracking-tight md:text-4xl",
|
|
46716
|
+
"text-3xl font-semibold tracking-tight md:text-4xl text-balance",
|
|
46451
46717
|
headingClassName
|
|
46452
46718
|
),
|
|
46453
46719
|
children: heading
|
|
46454
46720
|
}
|
|
46455
|
-
) :
|
|
46721
|
+
) : heading),
|
|
46456
46722
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
46457
46723
|
"p",
|
|
46458
46724
|
{
|
|
46459
|
-
className: cn(
|
|
46460
|
-
"mt-4 text-lg text-muted-foreground",
|
|
46461
|
-
descriptionClassName
|
|
46462
|
-
),
|
|
46725
|
+
className: cn("mt-4 text-lg text-balance", descriptionClassName),
|
|
46463
46726
|
children: description
|
|
46464
46727
|
}
|
|
46465
|
-
) :
|
|
46728
|
+
) : description)
|
|
46466
46729
|
]
|
|
46467
46730
|
}
|
|
46468
46731
|
),
|
|
@@ -46932,7 +47195,7 @@ function TestimonialsScrollingColumns({
|
|
|
46932
47195
|
framerMotion.motion.div,
|
|
46933
47196
|
{
|
|
46934
47197
|
className: cn(
|
|
46935
|
-
"relative overflow-hidden rounded-
|
|
47198
|
+
"relative overflow-hidden rounded-2xl shadow-sm",
|
|
46936
47199
|
cardClassName
|
|
46937
47200
|
),
|
|
46938
47201
|
variants: itemVariants2,
|
|
@@ -46947,35 +47210,40 @@ function TestimonialsScrollingColumns({
|
|
|
46947
47210
|
optixFlowConfig
|
|
46948
47211
|
}
|
|
46949
47212
|
),
|
|
46950
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47213
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, {})
|
|
46951
47214
|
] }),
|
|
46952
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 p-6 text-left
|
|
46953
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47215
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 p-6 text-left", children: [
|
|
47216
|
+
testimonial?.logoSrc ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47217
|
+
img.Img,
|
|
47218
|
+
{
|
|
47219
|
+
src: testimonial.logoSrc,
|
|
47220
|
+
alt: typeof testimonial.company === "string" ? `${testimonial.company} logo` : typeof testimonial.author === "string" ? `${testimonial.author} company logo` : "Company logo",
|
|
47221
|
+
className: cn(
|
|
47222
|
+
"flex justify-start items-start mb-6 max-h-10 max-w-32 object-contain md:max-h-10 md:max-w-48"
|
|
47223
|
+
),
|
|
47224
|
+
optixFlowConfig
|
|
47225
|
+
}
|
|
47226
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
46954
47227
|
DynamicIcon,
|
|
46955
47228
|
{
|
|
46956
|
-
name: "
|
|
46957
|
-
size:
|
|
46958
|
-
className: "
|
|
47229
|
+
name: "mdi/comment-quote-outline",
|
|
47230
|
+
size: 42,
|
|
47231
|
+
className: cn("opacity-50")
|
|
46959
47232
|
}
|
|
46960
47233
|
),
|
|
46961
47234
|
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
46962
47235
|
"blockquote",
|
|
46963
47236
|
{
|
|
46964
47237
|
className: cn(
|
|
46965
|
-
"text-base font-
|
|
47238
|
+
"text-base font-base leading-relaxed",
|
|
46966
47239
|
quoteClassName
|
|
46967
47240
|
),
|
|
46968
47241
|
children: testimonial.quote
|
|
46969
47242
|
}
|
|
46970
|
-
) :
|
|
46971
|
-
/* @__PURE__ */ jsxRuntime.jsx("figcaption", { className: cn("mt-4", authorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("
|
|
46972
|
-
"
|
|
46973
|
-
" ",
|
|
46974
|
-
testimonial.author && (typeof testimonial.author === "string" ? testimonial.author : null),
|
|
46975
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1 text-background/60", children: [
|
|
46976
|
-
", ",
|
|
46977
|
-
testimonial.role
|
|
46978
|
-
] }) : null)
|
|
47243
|
+
) : testimonial.quote),
|
|
47244
|
+
/* @__PURE__ */ jsxRuntime.jsx("figcaption", { className: cn("mt-4", authorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
|
|
47245
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "uppercase text-base font-semibold", children: testimonial.author }) : null),
|
|
47246
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-thin", children: testimonial.role }) : null)
|
|
46979
47247
|
] }) })
|
|
46980
47248
|
] })
|
|
46981
47249
|
]
|
|
@@ -47008,19 +47276,32 @@ function TestimonialsScrollingColumns({
|
|
|
47008
47276
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47009
47277
|
"div",
|
|
47010
47278
|
{
|
|
47011
|
-
className: cn(
|
|
47279
|
+
className: cn(
|
|
47280
|
+
"mx-auto mb-12 max-w-full md:max-w-2xl space-y-4 text-center",
|
|
47281
|
+
headerClassName
|
|
47282
|
+
),
|
|
47012
47283
|
children: [
|
|
47013
47284
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47014
47285
|
"h2",
|
|
47015
47286
|
{
|
|
47016
47287
|
className: cn(
|
|
47017
|
-
"text-
|
|
47288
|
+
"text-pretty text-3xl md:text-4xl lg:text-6xl",
|
|
47289
|
+
"font-semibold tracking-tight",
|
|
47018
47290
|
headingClassName
|
|
47019
47291
|
),
|
|
47020
47292
|
children: heading
|
|
47021
47293
|
}
|
|
47022
|
-
) :
|
|
47023
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47294
|
+
) : heading),
|
|
47295
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47296
|
+
"p",
|
|
47297
|
+
{
|
|
47298
|
+
className: cn(
|
|
47299
|
+
"text-base md:text-lg text-balance",
|
|
47300
|
+
descriptionClassName
|
|
47301
|
+
),
|
|
47302
|
+
children: description
|
|
47303
|
+
}
|
|
47304
|
+
) : description)
|
|
47024
47305
|
]
|
|
47025
47306
|
}
|
|
47026
47307
|
),
|
|
@@ -47040,7 +47321,8 @@ function TestimonialsMinimalNumbered({
|
|
|
47040
47321
|
authorClassName,
|
|
47041
47322
|
navigationClassName,
|
|
47042
47323
|
background,
|
|
47043
|
-
spacing,
|
|
47324
|
+
spacing = "py-8 md:py-12",
|
|
47325
|
+
containerClassName = "w-full px-6 sm:px-6 md:px-8 lg:px-0 max-w-full md:max-w-lg min-h-70dvh h-70dvh flex flex-col items-center justify-center",
|
|
47044
47326
|
pattern,
|
|
47045
47327
|
patternOpacity
|
|
47046
47328
|
}) {
|
|
@@ -47093,19 +47375,19 @@ function TestimonialsMinimalNumbered({
|
|
|
47093
47375
|
if (!current) return null;
|
|
47094
47376
|
const authorName = getAuthorName(current);
|
|
47095
47377
|
const avatarSrc = getAvatarSrc(current);
|
|
47096
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-8", contentClassName), children: [
|
|
47378
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-4 md:gap-8", contentClassName), children: [
|
|
47097
47379
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47098
47380
|
"span",
|
|
47099
47381
|
{
|
|
47100
47382
|
className: cn(
|
|
47101
|
-
"text-8xl font-light leading-none select-none transition-all duration-500
|
|
47383
|
+
"text-4xl md:text-8xl font-light leading-none select-none transition-all duration-500",
|
|
47102
47384
|
numberClassName
|
|
47103
47385
|
),
|
|
47104
47386
|
style: { fontFeatureSettings: '"tnum"' },
|
|
47105
47387
|
children: String(active + 1).padStart(2, "0")
|
|
47106
47388
|
}
|
|
47107
47389
|
),
|
|
47108
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 pt-6", children: [
|
|
47390
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 pt-0 md:pt-6", children: [
|
|
47109
47391
|
current.quote && (typeof current.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47110
47392
|
"blockquote",
|
|
47111
47393
|
{
|
|
@@ -47176,6 +47458,7 @@ function TestimonialsMinimalNumbered({
|
|
|
47176
47458
|
pattern,
|
|
47177
47459
|
patternOpacity,
|
|
47178
47460
|
className,
|
|
47461
|
+
containerClassName,
|
|
47179
47462
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-4xl mx-auto", children: [
|
|
47180
47463
|
renderedTestimonial,
|
|
47181
47464
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -47211,13 +47494,13 @@ function TestimonialsMinimalNumbered({
|
|
|
47211
47494
|
String(testimonials.length).padStart(2, "0")
|
|
47212
47495
|
] })
|
|
47213
47496
|
] }) }),
|
|
47214
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-
|
|
47497
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
47215
47498
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47216
47499
|
"button",
|
|
47217
47500
|
{
|
|
47218
47501
|
onClick: handlePrev,
|
|
47219
47502
|
className: "rounded-full p-2 transition-all duration-300 ",
|
|
47220
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size:
|
|
47503
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 24 })
|
|
47221
47504
|
}
|
|
47222
47505
|
),
|
|
47223
47506
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -47225,7 +47508,7 @@ function TestimonialsMinimalNumbered({
|
|
|
47225
47508
|
{
|
|
47226
47509
|
onClick: handleNext,
|
|
47227
47510
|
className: "rounded-full p-2 transition-all duration-300 ",
|
|
47228
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size:
|
|
47511
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
|
|
47229
47512
|
}
|
|
47230
47513
|
)
|
|
47231
47514
|
] })
|
|
@@ -47346,10 +47629,11 @@ function TestimonialsParallaxNumber({
|
|
|
47346
47629
|
framerMotion.motion.div,
|
|
47347
47630
|
{
|
|
47348
47631
|
className: cn(
|
|
47349
|
-
"
|
|
47632
|
+
"opacity-15",
|
|
47633
|
+
"pointer-events-none absolute -left-8 top-1/2 -translate-y-1/2 select-none text-[20rem] font-bold leading-none tracking-tighter",
|
|
47350
47634
|
numberClassName
|
|
47351
47635
|
),
|
|
47352
|
-
style: { x: numberX, y: numberY },
|
|
47636
|
+
style: { x: numberX, y: numberY, opacity: 0.1 },
|
|
47353
47637
|
children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47354
47638
|
framerMotion.motion.span,
|
|
47355
47639
|
{
|
|
@@ -47358,14 +47642,14 @@ function TestimonialsParallaxNumber({
|
|
|
47358
47642
|
exit: { opacity: 0, scale: 1.1, filter: "blur(10px)" },
|
|
47359
47643
|
transition: { duration: 0.6, ease: [0.22, 1, 0.36, 1] },
|
|
47360
47644
|
className: "block",
|
|
47361
|
-
children: current.backgroundIcon ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: current.backgroundIcon }) : current.backgroundLabel != null ? current.backgroundLabel : null
|
|
47645
|
+
children: current.backgroundIcon ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: current.backgroundIcon, size: 320 }) : current.backgroundLabel != null ? current.backgroundLabel : null
|
|
47362
47646
|
},
|
|
47363
47647
|
activeIndex
|
|
47364
47648
|
) })
|
|
47365
47649
|
}
|
|
47366
47650
|
),
|
|
47367
47651
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex", children: [
|
|
47368
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center border-r border-border/
|
|
47652
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center border-r-0 md:border-r border-border/30 pr-4 md:pr-16", children: [
|
|
47369
47653
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47370
47654
|
framerMotion.motion.span,
|
|
47371
47655
|
{
|
|
@@ -47391,7 +47675,7 @@ function TestimonialsParallaxNumber({
|
|
|
47391
47675
|
}
|
|
47392
47676
|
) })
|
|
47393
47677
|
] }),
|
|
47394
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 py-12 pl-16", children: [
|
|
47678
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 py-6 md:py-12 pl-4 md:pl-16", children: [
|
|
47395
47679
|
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47396
47680
|
framerMotion.motion.div,
|
|
47397
47681
|
{
|
|
@@ -47400,7 +47684,7 @@ function TestimonialsParallaxNumber({
|
|
|
47400
47684
|
exit: { opacity: 0, x: 20 },
|
|
47401
47685
|
transition: { duration: 0.4 },
|
|
47402
47686
|
className: "mb-8",
|
|
47403
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-2 rounded-full border border-border px-
|
|
47687
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm", children: companyName })
|
|
47404
47688
|
},
|
|
47405
47689
|
activeIndex
|
|
47406
47690
|
) }),
|
|
@@ -47408,7 +47692,8 @@ function TestimonialsParallaxNumber({
|
|
|
47408
47692
|
framerMotion.motion.blockquote,
|
|
47409
47693
|
{
|
|
47410
47694
|
className: cn(
|
|
47411
|
-
"text-
|
|
47695
|
+
"text-2xl md:text-4xl lg:text-5xl",
|
|
47696
|
+
"font-light leading-[1.15] tracking-tight",
|
|
47412
47697
|
quoteClassName
|
|
47413
47698
|
),
|
|
47414
47699
|
initial: "hidden",
|
|
@@ -47443,7 +47728,7 @@ function TestimonialsParallaxNumber({
|
|
|
47443
47728
|
},
|
|
47444
47729
|
activeIndex
|
|
47445
47730
|
) }) }),
|
|
47446
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end justify-between", children: [
|
|
47731
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start md:items-end justify-between", children: [
|
|
47447
47732
|
/* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
47448
47733
|
framerMotion.motion.div,
|
|
47449
47734
|
{
|
|
@@ -47475,7 +47760,10 @@ function TestimonialsParallaxNumber({
|
|
|
47475
47760
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47476
47761
|
"div",
|
|
47477
47762
|
{
|
|
47478
|
-
className: cn(
|
|
47763
|
+
className: cn(
|
|
47764
|
+
"flex items-center gap-4 flex-col md:flex-row",
|
|
47765
|
+
navigationClassName
|
|
47766
|
+
),
|
|
47479
47767
|
children: [
|
|
47480
47768
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
47481
47769
|
framerMotion.motion.button,
|
|
@@ -47590,7 +47878,8 @@ function TestimonialsMasonryGrid({
|
|
|
47590
47878
|
quoteClassName,
|
|
47591
47879
|
authorClassName,
|
|
47592
47880
|
background,
|
|
47593
|
-
|
|
47881
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
47882
|
+
spacing = "xl",
|
|
47594
47883
|
pattern,
|
|
47595
47884
|
patternOpacity
|
|
47596
47885
|
}) {
|
|
@@ -47603,9 +47892,12 @@ function TestimonialsMasonryGrid({
|
|
|
47603
47892
|
if (typeof testimonial.author === "string") return testimonial.author;
|
|
47604
47893
|
return "";
|
|
47605
47894
|
}, []);
|
|
47606
|
-
const getAvatarSrc = React8.useCallback(
|
|
47607
|
-
|
|
47608
|
-
|
|
47895
|
+
const getAvatarSrc = React8.useCallback(
|
|
47896
|
+
(testimonial) => {
|
|
47897
|
+
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
47898
|
+
},
|
|
47899
|
+
[]
|
|
47900
|
+
);
|
|
47609
47901
|
const getInitials = React8.useCallback((name) => {
|
|
47610
47902
|
return name.split(" ").map((n) => n[0]).join("");
|
|
47611
47903
|
}, []);
|
|
@@ -47622,42 +47914,60 @@ function TestimonialsMasonryGrid({
|
|
|
47622
47914
|
children: columns.map((column, columnIndex) => /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: column.map((testimonial, index) => {
|
|
47623
47915
|
const authorName = getAuthorName(testimonial);
|
|
47624
47916
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
47625
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
47626
|
-
|
|
47627
|
-
|
|
47628
|
-
|
|
47629
|
-
|
|
47630
|
-
|
|
47631
|
-
|
|
47632
|
-
|
|
47633
|
-
children: [
|
|
47917
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
47918
|
+
"div",
|
|
47919
|
+
{
|
|
47920
|
+
className: cn(
|
|
47921
|
+
cardClassName,
|
|
47922
|
+
"bg-card text-card-foreground flex flex-col gap-6 rounded-xl border shadow-sm"
|
|
47923
|
+
),
|
|
47924
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between p-6 gap-8", children: [
|
|
47925
|
+
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("blockquote", { className: "text-sm leading-relaxed line-clamp-3", children: [
|
|
47634
47926
|
"\u201C",
|
|
47635
47927
|
testimonial.quote,
|
|
47636
47928
|
"\u201D"
|
|
47637
|
-
]
|
|
47638
|
-
|
|
47639
|
-
|
|
47640
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47641
|
-
"div",
|
|
47642
|
-
{
|
|
47643
|
-
className: cn("flex items-center gap-3", authorClassName),
|
|
47644
|
-
children: [
|
|
47645
|
-
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-9", children: [
|
|
47929
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "line-clamp-3", children: testimonial.quote })),
|
|
47930
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-4 flex items-center gap-3", children: [
|
|
47931
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "relative flex shrink-0 overflow-hidden rounded-full size-12 ring-4 ring-primary shadow-lg", children: [
|
|
47646
47932
|
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
47647
47933
|
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "text-xs", children: getInitials(authorName) })
|
|
47648
47934
|
] }),
|
|
47649
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
47935
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0 leading-tight", children: [
|
|
47650
47936
|
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: testimonial.author }) : testimonial.author),
|
|
47651
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs
|
|
47937
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: testimonial.role }) : testimonial.role),
|
|
47938
|
+
testimonial.linkConfig?.href && /* @__PURE__ */ jsxRuntime.jsx(
|
|
47939
|
+
Pressable,
|
|
47940
|
+
{
|
|
47941
|
+
href: testimonial.linkConfig.href,
|
|
47942
|
+
className: cn(
|
|
47943
|
+
"text-sm transition-all duration-300",
|
|
47944
|
+
"underline underline-offset-4",
|
|
47945
|
+
testimonial.linkConfig.className
|
|
47946
|
+
),
|
|
47947
|
+
children: testimonial.linkConfig.label
|
|
47948
|
+
}
|
|
47949
|
+
)
|
|
47652
47950
|
] })
|
|
47653
|
-
]
|
|
47654
|
-
}
|
|
47655
|
-
|
|
47656
|
-
|
|
47951
|
+
] })
|
|
47952
|
+
] })
|
|
47953
|
+
},
|
|
47954
|
+
index
|
|
47955
|
+
);
|
|
47657
47956
|
}) }, columnIndex))
|
|
47658
47957
|
}
|
|
47659
47958
|
);
|
|
47660
|
-
}, [
|
|
47959
|
+
}, [
|
|
47960
|
+
testimonialsSlot,
|
|
47961
|
+
gridClassName,
|
|
47962
|
+
columns,
|
|
47963
|
+
cardClassName,
|
|
47964
|
+
quoteClassName,
|
|
47965
|
+
authorClassName,
|
|
47966
|
+
testimonials,
|
|
47967
|
+
getAuthorName,
|
|
47968
|
+
getAvatarSrc,
|
|
47969
|
+
getInitials
|
|
47970
|
+
]);
|
|
47661
47971
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
47662
47972
|
Section,
|
|
47663
47973
|
{
|
|
@@ -47666,32 +47976,33 @@ function TestimonialsMasonryGrid({
|
|
|
47666
47976
|
pattern,
|
|
47667
47977
|
patternOpacity,
|
|
47668
47978
|
className,
|
|
47979
|
+
containerClassName,
|
|
47669
47980
|
children: [
|
|
47670
47981
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47671
47982
|
"div",
|
|
47672
47983
|
{
|
|
47673
|
-
className: cn(
|
|
47984
|
+
className: cn(
|
|
47985
|
+
"mx-auto mb-12 max-w-full md:max-w-2xl text-center",
|
|
47986
|
+
headerClassName
|
|
47987
|
+
),
|
|
47674
47988
|
children: [
|
|
47675
47989
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47676
47990
|
"h2",
|
|
47677
47991
|
{
|
|
47678
47992
|
className: cn(
|
|
47679
|
-
"text-3xl font-semibold tracking-tight md:text-4xl",
|
|
47993
|
+
"text-3xl font-semibold tracking-tight md:text-4xl lg:text-6xl text-balance",
|
|
47680
47994
|
headingClassName
|
|
47681
47995
|
),
|
|
47682
47996
|
children: heading
|
|
47683
47997
|
}
|
|
47684
|
-
) :
|
|
47998
|
+
) : heading),
|
|
47685
47999
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
47686
48000
|
"p",
|
|
47687
48001
|
{
|
|
47688
|
-
className: cn(
|
|
47689
|
-
"mt-4 text-lg text-muted-foreground",
|
|
47690
|
-
descriptionClassName
|
|
47691
|
-
),
|
|
48002
|
+
className: cn("mt-4 text-lg text-balance", descriptionClassName),
|
|
47692
48003
|
children: description
|
|
47693
48004
|
}
|
|
47694
|
-
) :
|
|
48005
|
+
) : description)
|
|
47695
48006
|
]
|
|
47696
48007
|
}
|
|
47697
48008
|
),
|
|
@@ -47710,7 +48021,8 @@ function TestimonialsLargeQuote({
|
|
|
47710
48021
|
authorClassName,
|
|
47711
48022
|
avatarClassName,
|
|
47712
48023
|
background,
|
|
47713
|
-
|
|
48024
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
48025
|
+
spacing = "xl",
|
|
47714
48026
|
pattern,
|
|
47715
48027
|
patternOpacity
|
|
47716
48028
|
}) {
|
|
@@ -47729,49 +48041,78 @@ function TestimonialsLargeQuote({
|
|
|
47729
48041
|
if (!testimonial) return null;
|
|
47730
48042
|
const authorName = getAuthorName();
|
|
47731
48043
|
const avatarSrc = getAvatarSrc();
|
|
47732
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
47733
|
-
|
|
47734
|
-
|
|
47735
|
-
|
|
47736
|
-
|
|
47737
|
-
|
|
47738
|
-
|
|
47739
|
-
|
|
47740
|
-
|
|
47741
|
-
|
|
47742
|
-
|
|
47743
|
-
|
|
47744
|
-
|
|
47745
|
-
|
|
47746
|
-
|
|
47747
|
-
),
|
|
47748
|
-
children: testimonial.quote
|
|
47749
|
-
}
|
|
47750
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: quoteClassName, children: testimonial.quote })),
|
|
47751
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
47752
|
-
"div",
|
|
47753
|
-
{
|
|
47754
|
-
className: cn(
|
|
47755
|
-
"mt-10 flex flex-col items-center gap-4",
|
|
47756
|
-
authorClassName
|
|
48044
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
48045
|
+
"div",
|
|
48046
|
+
{
|
|
48047
|
+
className: cn(
|
|
48048
|
+
"mx-auto max-full md:max-w-lg text-center",
|
|
48049
|
+
contentClassName
|
|
48050
|
+
),
|
|
48051
|
+
children: [
|
|
48052
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
48053
|
+
DynamicIcon,
|
|
48054
|
+
{
|
|
48055
|
+
name: "mdi/comment-quote-outline",
|
|
48056
|
+
size: 48,
|
|
48057
|
+
className: cn("mx-auto mb-8 ", quoteIconClassName)
|
|
48058
|
+
}
|
|
47757
48059
|
),
|
|
47758
|
-
|
|
47759
|
-
|
|
47760
|
-
|
|
47761
|
-
|
|
47762
|
-
|
|
47763
|
-
|
|
47764
|
-
|
|
47765
|
-
|
|
47766
|
-
|
|
47767
|
-
|
|
47768
|
-
|
|
47769
|
-
|
|
47770
|
-
|
|
47771
|
-
|
|
47772
|
-
|
|
47773
|
-
|
|
47774
|
-
|
|
48060
|
+
testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
48061
|
+
"blockquote",
|
|
48062
|
+
{
|
|
48063
|
+
className: cn(
|
|
48064
|
+
"text-2xl font-light leading-relaxed md:text-3xl lg:text-4xl text-balance",
|
|
48065
|
+
quoteClassName
|
|
48066
|
+
),
|
|
48067
|
+
children: testimonial.quote
|
|
48068
|
+
}
|
|
48069
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: quoteClassName, children: testimonial.quote })),
|
|
48070
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
48071
|
+
"div",
|
|
48072
|
+
{
|
|
48073
|
+
className: cn(
|
|
48074
|
+
"mt-10 md:mt-16 flex flex-col items-center gap-4 md:gap-8",
|
|
48075
|
+
authorClassName
|
|
48076
|
+
),
|
|
48077
|
+
children: [
|
|
48078
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
48079
|
+
Avatar,
|
|
48080
|
+
{
|
|
48081
|
+
className: cn(
|
|
48082
|
+
"relative flex shrink-0 overflow-hidden rounded-full size-16 ring-4 ring-primary shadow-lg",
|
|
48083
|
+
avatarClassName
|
|
48084
|
+
),
|
|
48085
|
+
children: [
|
|
48086
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
48087
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { className: "text-lg", children: getInitials(authorName) })
|
|
48088
|
+
]
|
|
48089
|
+
}
|
|
48090
|
+
),
|
|
48091
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-4", children: [
|
|
48092
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-semibold", children: testimonial.author }) : testimonial.author),
|
|
48093
|
+
(testimonial.role || testimonial.company) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-2", children: [
|
|
48094
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base font-normal opacity-75", children: testimonial.role && (typeof testimonial.role === "string" ? testimonial.role : testimonial.role) }),
|
|
48095
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm uppercase font-semibold opacity-75", children: testimonial.company && (typeof testimonial.company === "string" ? ` at ${testimonial.company}` : testimonial.company) })
|
|
48096
|
+
] })
|
|
48097
|
+
] })
|
|
48098
|
+
]
|
|
48099
|
+
}
|
|
48100
|
+
)
|
|
48101
|
+
]
|
|
48102
|
+
}
|
|
48103
|
+
);
|
|
48104
|
+
}, [
|
|
48105
|
+
testimonialSlot,
|
|
48106
|
+
contentClassName,
|
|
48107
|
+
quoteIconClassName,
|
|
48108
|
+
testimonial,
|
|
48109
|
+
quoteClassName,
|
|
48110
|
+
authorClassName,
|
|
48111
|
+
avatarClassName,
|
|
48112
|
+
getAuthorName,
|
|
48113
|
+
getAvatarSrc,
|
|
48114
|
+
getInitials
|
|
48115
|
+
]);
|
|
47775
48116
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
47776
48117
|
Section,
|
|
47777
48118
|
{
|
|
@@ -47780,6 +48121,7 @@ function TestimonialsLargeQuote({
|
|
|
47780
48121
|
pattern,
|
|
47781
48122
|
patternOpacity,
|
|
47782
48123
|
className,
|
|
48124
|
+
containerClassName,
|
|
47783
48125
|
children: renderedTestimonial
|
|
47784
48126
|
}
|
|
47785
48127
|
);
|
|
@@ -52078,7 +52420,8 @@ function HeroVideoBackgroundDark({
|
|
|
52078
52420
|
videoSrc,
|
|
52079
52421
|
videoSlot,
|
|
52080
52422
|
background,
|
|
52081
|
-
videoBrightness
|
|
52423
|
+
videoBrightness,
|
|
52424
|
+
videoOverlayIntensity = "high",
|
|
52082
52425
|
spacing = "py-0 md:py-0",
|
|
52083
52426
|
pattern,
|
|
52084
52427
|
patternOpacity,
|
|
@@ -52090,21 +52433,21 @@ function HeroVideoBackgroundDark({
|
|
|
52090
52433
|
}) {
|
|
52091
52434
|
const renderVideo = React8.useMemo(() => {
|
|
52092
52435
|
if (videoSlot) return videoSlot;
|
|
52093
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
52094
|
-
|
|
52095
|
-
|
|
52096
|
-
|
|
52097
|
-
|
|
52098
|
-
|
|
52099
|
-
|
|
52100
|
-
"absolute top-0 left-0 size-full object-cover",
|
|
52101
|
-
|
|
52102
|
-
|
|
52103
|
-
|
|
52104
|
-
|
|
52105
|
-
}
|
|
52106
|
-
);
|
|
52107
|
-
}, [videoSlot, videoSrc,
|
|
52436
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
52437
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
52438
|
+
"video",
|
|
52439
|
+
{
|
|
52440
|
+
loop: true,
|
|
52441
|
+
playsInline: true,
|
|
52442
|
+
src: videoSrc,
|
|
52443
|
+
className: "absolute top-0 left-0 size-full object-cover",
|
|
52444
|
+
autoPlay: true,
|
|
52445
|
+
muted: true
|
|
52446
|
+
}
|
|
52447
|
+
),
|
|
52448
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: videoOverlayIntensity })
|
|
52449
|
+
] });
|
|
52450
|
+
}, [videoSlot, videoSrc, videoOverlayIntensity]);
|
|
52108
52451
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
52109
52452
|
Section,
|
|
52110
52453
|
{
|
|
@@ -115675,8 +116018,8 @@ var BLOCK_REGISTRY = {
|
|
|
115675
116018
|
},
|
|
115676
116019
|
"testimonials-centered-avatars": {
|
|
115677
116020
|
id: "testimonials-centered-avatars",
|
|
115678
|
-
name: "Testimonials Centered with
|
|
115679
|
-
description: "A
|
|
116021
|
+
name: "Testimonials Centered with Glassmorphism Card",
|
|
116022
|
+
description: "A modern testimonial section featuring a glassmorphism card with frosted glass effect as the primary focal point. Displays an overlapping avatar stack at the top, creating a community feel, with rotating testimonials including quote, author name, role, and navigation dots. The translucent card design creates visual depth and sophistication. Perfect for SaaS landing pages and premium marketing sites.",
|
|
115680
116023
|
semanticTags: [
|
|
115681
116024
|
"testimonials",
|
|
115682
116025
|
"centered",
|
|
@@ -115684,7 +116027,11 @@ var BLOCK_REGISTRY = {
|
|
|
115684
116027
|
"stack",
|
|
115685
116028
|
"community",
|
|
115686
116029
|
"social-proof",
|
|
115687
|
-
"
|
|
116030
|
+
"glassmorphism",
|
|
116031
|
+
"glass",
|
|
116032
|
+
"frosted",
|
|
116033
|
+
"modern",
|
|
116034
|
+
"premium",
|
|
115688
116035
|
"rotating"
|
|
115689
116036
|
],
|
|
115690
116037
|
category: "testimonials",
|