@opensite/ui 2.8.5 → 2.8.7
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-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 +35 -10
- package/dist/components.d.cts +29 -2
- package/dist/components.d.ts +29 -2
- package/dist/components.js +35 -11
- 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/hero-badge-shadow-overlay.cjs +1 -1
- package/dist/hero-badge-shadow-overlay.js +1 -1
- 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 +35 -10
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +35 -11
- 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 +1398 -851
- package/dist/registry.js +1398 -851
- 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-animated-split.cjs +5 -5
- package/dist/testimonials-animated-split.js +5 -5
- package/dist/testimonials-bento-grid.cjs +48 -56
- package/dist/testimonials-bento-grid.js +48 -56
- package/dist/testimonials-carousel-image.cjs +608 -96
- package/dist/testimonials-carousel-image.d.cts +26 -2
- package/dist/testimonials-carousel-image.d.ts +26 -2
- package/dist/testimonials-carousel-image.js +609 -97
- package/dist/testimonials-centered-avatars.cjs +89 -62
- package/dist/testimonials-centered-avatars.d.cts +5 -1
- package/dist/testimonials-centered-avatars.d.ts +5 -1
- package/dist/testimonials-centered-avatars.js +89 -62
- package/dist/testimonials-company-logo.cjs +6 -6
- package/dist/testimonials-company-logo.js +6 -6
- 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-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 +53 -29
- package/dist/testimonials-logo-cards.d.cts +5 -1
- package/dist/testimonials-logo-cards.d.ts +5 -1
- package/dist/testimonials-logo-cards.js +53 -29
- package/dist/testimonials-marquee.cjs +524 -102
- package/dist/testimonials-marquee.d.cts +5 -1
- package/dist/testimonials-marquee.d.ts +5 -1
- package/dist/testimonials-marquee.js +525 -100
- package/dist/testimonials-mini-dividers.cjs +120 -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 +120 -83
- package/dist/testimonials-minimal-numbered.cjs +7 -6
- package/dist/testimonials-minimal-numbered.d.cts +5 -1
- package/dist/testimonials-minimal-numbered.d.ts +5 -1
- package/dist/testimonials-minimal-numbered.js +7 -6
- package/dist/testimonials-parallax-number.cjs +14 -8
- package/dist/testimonials-parallax-number.js +14 -8
- package/dist/testimonials-scrolling-columns.cjs +97 -13
- package/dist/testimonials-scrolling-columns.js +97 -13
- package/dist/testimonials-simple-grid.cjs +513 -68
- package/dist/testimonials-simple-grid.d.cts +9 -5
- package/dist/testimonials-simple-grid.d.ts +9 -5
- package/dist/testimonials-simple-grid.js +510 -62
- package/dist/testimonials-slider-minimal.cjs +604 -90
- package/dist/testimonials-slider-minimal.d.cts +17 -1
- package/dist/testimonials-slider-minimal.d.ts +17 -1
- package/dist/testimonials-slider-minimal.js +598 -81
- package/dist/testimonials-split-image.cjs +452 -17
- package/dist/testimonials-split-image.js +448 -13
- package/dist/testimonials-twitter-cards.cjs +26 -14
- package/dist/testimonials-twitter-cards.js +26 -14
- package/package.json +11 -1
|
@@ -4,7 +4,7 @@ import React__default, { useCallback, useMemo } from 'react';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Icon } from '@page-speed/icon';
|
|
7
|
-
import { jsx, jsxs
|
|
7
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
8
8
|
import * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
9
9
|
import * as SeparatorPrimitive from '@radix-ui/react-separator';
|
|
10
10
|
|
|
@@ -20,6 +20,23 @@ var DynamicIcon = React.memo(function DynamicIcon2({
|
|
|
20
20
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
21
21
|
});
|
|
22
22
|
DynamicIcon.displayName = "DynamicIcon";
|
|
23
|
+
function StarRating({
|
|
24
|
+
rating,
|
|
25
|
+
size = 18,
|
|
26
|
+
className
|
|
27
|
+
}) {
|
|
28
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center gap-0.5", className), children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx(
|
|
29
|
+
DynamicIcon,
|
|
30
|
+
{
|
|
31
|
+
name: "icon-park-solid/star",
|
|
32
|
+
size,
|
|
33
|
+
className: cn(
|
|
34
|
+
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
35
|
+
)
|
|
36
|
+
},
|
|
37
|
+
star
|
|
38
|
+
)) });
|
|
39
|
+
}
|
|
23
40
|
function Avatar({
|
|
24
41
|
className,
|
|
25
42
|
...props
|
|
@@ -461,19 +478,6 @@ var Section = React__default.forwardRef(
|
|
|
461
478
|
}
|
|
462
479
|
);
|
|
463
480
|
Section.displayName = "Section";
|
|
464
|
-
function StarRating({ rating, size = 16 }) {
|
|
465
|
-
return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx(
|
|
466
|
-
DynamicIcon,
|
|
467
|
-
{
|
|
468
|
-
name: "lucide/star",
|
|
469
|
-
size,
|
|
470
|
-
className: cn(
|
|
471
|
-
star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
|
|
472
|
-
)
|
|
473
|
-
},
|
|
474
|
-
star
|
|
475
|
-
)) });
|
|
476
|
-
}
|
|
477
481
|
function TestimonialsListVerified({
|
|
478
482
|
reviews,
|
|
479
483
|
reviewsSlot,
|
|
@@ -486,7 +490,8 @@ function TestimonialsListVerified({
|
|
|
486
490
|
contentClassName,
|
|
487
491
|
authorClassName,
|
|
488
492
|
background,
|
|
489
|
-
spacing,
|
|
493
|
+
spacing = "lg",
|
|
494
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
490
495
|
pattern,
|
|
491
496
|
patternOpacity
|
|
492
497
|
}) {
|
|
@@ -505,35 +510,49 @@ function TestimonialsListVerified({
|
|
|
505
510
|
return /* @__PURE__ */ jsx("div", { className: "space-y-0", children: reviews.map((review, index) => {
|
|
506
511
|
const authorName = getAuthorName(review);
|
|
507
512
|
return /* @__PURE__ */ jsxs("div", { className: reviewClassName, children: [
|
|
508
|
-
index > 0 && /* @__PURE__ */ jsx(Separator, { className: "my-
|
|
509
|
-
/* @__PURE__ */ jsxs("div", { className: cn("space-y-
|
|
510
|
-
/* @__PURE__ */ jsxs("div", { children: [
|
|
511
|
-
/* @__PURE__ */ jsx(StarRating, { rating: review.rating, size:
|
|
512
|
-
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "
|
|
513
|
+
index > 0 && /* @__PURE__ */ 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" }),
|
|
514
|
+
/* @__PURE__ */ jsxs("div", { className: cn("space-y-6 md:space-y-12", contentClassName), children: [
|
|
515
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
516
|
+
/* @__PURE__ */ jsx(StarRating, { rating: review.rating, size: 22 }),
|
|
517
|
+
review.title && (typeof review.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "font-medium", children: review.title }) : review.title)
|
|
513
518
|
] }),
|
|
514
|
-
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsx("p", { className: "text-
|
|
515
|
-
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center
|
|
516
|
-
/* @__PURE__ */ jsxs(
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
519
|
+
review.content && (typeof review.content === "string" ? /* @__PURE__ */ jsx("p", { className: "text-base md:text-lg leading-relaxed font-light", children: review.content }) : review.content),
|
|
520
|
+
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center justify-between w-full"), children: [
|
|
521
|
+
/* @__PURE__ */ jsxs(
|
|
522
|
+
"div",
|
|
523
|
+
{
|
|
524
|
+
className: cn("flex items-center gap-5", authorClassName),
|
|
525
|
+
children: [
|
|
526
|
+
/* @__PURE__ */ jsxs(Avatar, { className: "size-12 ring-4 ring-primary shadow-lg", children: [
|
|
527
|
+
/* @__PURE__ */ jsx(AvatarImage, { src: review.avatarSrc, alt: authorName }),
|
|
528
|
+
/* @__PURE__ */ jsx(AvatarFallback, { className: "text-md", children: getInitials(authorName) })
|
|
529
|
+
] }),
|
|
530
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1 text-base flex-col items-start", children: [
|
|
531
|
+
review.author && (typeof review.author === "string" ? /* @__PURE__ */ jsx("span", { className: "font-medium", children: review.author }) : review.author),
|
|
532
|
+
review.verified && /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-1", children: [
|
|
533
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/badge-check", size: 18 }),
|
|
534
|
+
verifiedPurchaseLabel && (typeof verifiedPurchaseLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-sm", children: verifiedPurchaseLabel }) : verifiedPurchaseLabel),
|
|
535
|
+
!verifiedPurchaseLabel && /* @__PURE__ */ jsx("span", { className: "text-sm", children: "Verified Purchase" })
|
|
536
|
+
] })
|
|
537
|
+
] })
|
|
538
|
+
]
|
|
539
|
+
}
|
|
540
|
+
),
|
|
541
|
+
review.date && /* @__PURE__ */ jsx("span", { className: "relative", children: review.date })
|
|
532
542
|
] })
|
|
533
543
|
] })
|
|
534
544
|
] }, index);
|
|
535
545
|
}) });
|
|
536
|
-
}, [
|
|
546
|
+
}, [
|
|
547
|
+
reviewsSlot,
|
|
548
|
+
reviews,
|
|
549
|
+
reviewClassName,
|
|
550
|
+
contentClassName,
|
|
551
|
+
authorClassName,
|
|
552
|
+
verifiedPurchaseLabel,
|
|
553
|
+
getAuthorName,
|
|
554
|
+
getInitials
|
|
555
|
+
]);
|
|
537
556
|
return /* @__PURE__ */ jsx(
|
|
538
557
|
Section,
|
|
539
558
|
{
|
|
@@ -542,21 +561,21 @@ function TestimonialsListVerified({
|
|
|
542
561
|
pattern,
|
|
543
562
|
patternOpacity,
|
|
544
563
|
className,
|
|
545
|
-
children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
546
|
-
/* @__PURE__ */ jsxs("div", { className: cn("mb-
|
|
564
|
+
children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-full md:max-w-3xl", children: [
|
|
565
|
+
/* @__PURE__ */ jsxs("div", { className: cn("mb-12 md:mb-24 space-y-6", headerClassName), children: [
|
|
547
566
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
548
567
|
"h2",
|
|
549
568
|
{
|
|
550
569
|
className: cn(
|
|
551
|
-
"text-2xl font-semibold tracking-tight md:text-3xl",
|
|
570
|
+
"text-2xl font-semibold tracking-tight md:text-3xl lg:text-4xl",
|
|
552
571
|
headingClassName
|
|
553
572
|
),
|
|
554
573
|
children: heading
|
|
555
574
|
}
|
|
556
|
-
) :
|
|
575
|
+
) : heading),
|
|
557
576
|
totalReviews > 0 && /* @__PURE__ */ jsxs("div", { className: "mt-2 flex items-center gap-3", children: [
|
|
558
|
-
/* @__PURE__ */ jsx(StarRating, { rating: Math.round(averageRating), size:
|
|
559
|
-
/* @__PURE__ */ jsxs("span", { className: "text-sm
|
|
577
|
+
/* @__PURE__ */ jsx(StarRating, { rating: Math.round(averageRating), size: 22 }),
|
|
578
|
+
/* @__PURE__ */ jsxs("span", { className: "text-sm", children: [
|
|
560
579
|
averageRating.toFixed(1),
|
|
561
580
|
" out of 5 \xB7 ",
|
|
562
581
|
totalReviews,
|
|
@@ -508,18 +508,25 @@ function TestimonialsLogoCards({
|
|
|
508
508
|
quoteClassName,
|
|
509
509
|
authorClassName,
|
|
510
510
|
background,
|
|
511
|
-
spacing,
|
|
511
|
+
spacing = "lg",
|
|
512
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
512
513
|
pattern,
|
|
513
514
|
patternOpacity,
|
|
514
515
|
optixFlowConfig
|
|
515
516
|
}) {
|
|
516
|
-
const getAuthorName = React.useCallback(
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
517
|
+
const getAuthorName = React.useCallback(
|
|
518
|
+
(testimonial) => {
|
|
519
|
+
if (typeof testimonial.author === "string") return testimonial.author;
|
|
520
|
+
return "";
|
|
521
|
+
},
|
|
522
|
+
[]
|
|
523
|
+
);
|
|
524
|
+
const getAvatarSrc = React.useCallback(
|
|
525
|
+
(testimonial) => {
|
|
526
|
+
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
527
|
+
},
|
|
528
|
+
[]
|
|
529
|
+
);
|
|
523
530
|
const getInitials = React.useCallback((name) => {
|
|
524
531
|
return name.split(" ").map((n) => n[0]).join("");
|
|
525
532
|
}, []);
|
|
@@ -550,7 +557,10 @@ function TestimonialsLogoCards({
|
|
|
550
557
|
{
|
|
551
558
|
src: testimonial.companyLogo,
|
|
552
559
|
alt: testimonial.companyLogoAlt || "Company logo",
|
|
553
|
-
className:
|
|
560
|
+
className: cn(
|
|
561
|
+
index === 0 ? "h-10" : "h-5",
|
|
562
|
+
"w-auto object-contain"
|
|
563
|
+
),
|
|
554
564
|
optixFlowConfig
|
|
555
565
|
}
|
|
556
566
|
) }),
|
|
@@ -567,20 +577,29 @@ function TestimonialsLogoCards({
|
|
|
567
577
|
{
|
|
568
578
|
className: cn(
|
|
569
579
|
"leading-relaxed",
|
|
570
|
-
index === 0 ? "text-xl font-
|
|
580
|
+
index === 0 ? "text-lg md:text-xl font-light" : "text-sm md:text-base",
|
|
571
581
|
quoteClassName
|
|
572
582
|
),
|
|
573
583
|
children: testimonial.quote
|
|
574
584
|
}
|
|
575
|
-
) :
|
|
585
|
+
) : testimonial.quote),
|
|
576
586
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
|
|
577
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
587
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
588
|
+
Avatar,
|
|
589
|
+
{
|
|
590
|
+
className: cn(
|
|
591
|
+
index === 0 ? "size-12" : "size-10",
|
|
592
|
+
"ring-4 ring-primary"
|
|
593
|
+
),
|
|
594
|
+
children: [
|
|
595
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
596
|
+
/* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
597
|
+
]
|
|
598
|
+
}
|
|
599
|
+
),
|
|
581
600
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
582
|
-
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "text-sm font-medium
|
|
583
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-
|
|
601
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("cite", { className: "text-sm md:text-base font-medium", children: testimonial.author }) : testimonial.author),
|
|
602
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs md:text-sm", children: testimonial.role }) : testimonial.role)
|
|
584
603
|
] })
|
|
585
604
|
] })
|
|
586
605
|
]
|
|
@@ -593,7 +612,20 @@ function TestimonialsLogoCards({
|
|
|
593
612
|
})
|
|
594
613
|
}
|
|
595
614
|
);
|
|
596
|
-
}, [
|
|
615
|
+
}, [
|
|
616
|
+
testimonialsSlot,
|
|
617
|
+
gridClassName,
|
|
618
|
+
testimonials,
|
|
619
|
+
cardClassName,
|
|
620
|
+
cardHeaderClassName,
|
|
621
|
+
optixFlowConfig,
|
|
622
|
+
cardContentClassName,
|
|
623
|
+
quoteClassName,
|
|
624
|
+
authorClassName,
|
|
625
|
+
getAuthorName,
|
|
626
|
+
getAvatarSrc,
|
|
627
|
+
getInitials
|
|
628
|
+
]);
|
|
597
629
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
598
630
|
Section,
|
|
599
631
|
{
|
|
@@ -602,6 +634,7 @@ function TestimonialsLogoCards({
|
|
|
602
634
|
pattern,
|
|
603
635
|
patternOpacity,
|
|
604
636
|
className,
|
|
637
|
+
containerClassName,
|
|
605
638
|
children: [
|
|
606
639
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
607
640
|
"div",
|
|
@@ -617,17 +650,8 @@ function TestimonialsLogoCards({
|
|
|
617
650
|
),
|
|
618
651
|
children: heading
|
|
619
652
|
}
|
|
620
|
-
) :
|
|
621
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
622
|
-
"p",
|
|
623
|
-
{
|
|
624
|
-
className: cn(
|
|
625
|
-
"mt-4 text-lg text-muted-foreground",
|
|
626
|
-
descriptionClassName
|
|
627
|
-
),
|
|
628
|
-
children: description
|
|
629
|
-
}
|
|
630
|
-
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
|
|
653
|
+
) : heading),
|
|
654
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description)
|
|
631
655
|
]
|
|
632
656
|
}
|
|
633
657
|
),
|
|
@@ -97,6 +97,10 @@ interface TestimonialsLogoCardsProps {
|
|
|
97
97
|
* OptixFlow image optimization configuration
|
|
98
98
|
*/
|
|
99
99
|
optixFlowConfig?: OptixFlowConfig;
|
|
100
|
+
/**
|
|
101
|
+
* Additional CSS classes for the container
|
|
102
|
+
*/
|
|
103
|
+
containerClassName?: string;
|
|
100
104
|
}
|
|
101
105
|
/**
|
|
102
106
|
* TestimonialsLogoCards - A grid of testimonial cards featuring company logos in the
|
|
@@ -125,6 +129,6 @@ interface TestimonialsLogoCardsProps {
|
|
|
125
129
|
* />
|
|
126
130
|
* ```
|
|
127
131
|
*/
|
|
128
|
-
declare function TestimonialsLogoCards({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, cardHeaderClassName, cardContentClassName, quoteClassName, authorClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: TestimonialsLogoCardsProps): React.JSX.Element;
|
|
132
|
+
declare function TestimonialsLogoCards({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, cardHeaderClassName, cardContentClassName, quoteClassName, authorClassName, background, spacing, containerClassName, pattern, patternOpacity, optixFlowConfig, }: TestimonialsLogoCardsProps): React.JSX.Element;
|
|
129
133
|
|
|
130
134
|
export { type LogoTestimonialItem, TestimonialsLogoCards, type TestimonialsLogoCardsProps };
|
|
@@ -97,6 +97,10 @@ interface TestimonialsLogoCardsProps {
|
|
|
97
97
|
* OptixFlow image optimization configuration
|
|
98
98
|
*/
|
|
99
99
|
optixFlowConfig?: OptixFlowConfig;
|
|
100
|
+
/**
|
|
101
|
+
* Additional CSS classes for the container
|
|
102
|
+
*/
|
|
103
|
+
containerClassName?: string;
|
|
100
104
|
}
|
|
101
105
|
/**
|
|
102
106
|
* TestimonialsLogoCards - A grid of testimonial cards featuring company logos in the
|
|
@@ -125,6 +129,6 @@ interface TestimonialsLogoCardsProps {
|
|
|
125
129
|
* />
|
|
126
130
|
* ```
|
|
127
131
|
*/
|
|
128
|
-
declare function TestimonialsLogoCards({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, cardHeaderClassName, cardContentClassName, quoteClassName, authorClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: TestimonialsLogoCardsProps): React.JSX.Element;
|
|
132
|
+
declare function TestimonialsLogoCards({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, cardHeaderClassName, cardContentClassName, quoteClassName, authorClassName, background, spacing, containerClassName, pattern, patternOpacity, optixFlowConfig, }: TestimonialsLogoCardsProps): React.JSX.Element;
|
|
129
133
|
|
|
130
134
|
export { type LogoTestimonialItem, TestimonialsLogoCards, type TestimonialsLogoCardsProps };
|
|
@@ -483,18 +483,25 @@ function TestimonialsLogoCards({
|
|
|
483
483
|
quoteClassName,
|
|
484
484
|
authorClassName,
|
|
485
485
|
background,
|
|
486
|
-
spacing,
|
|
486
|
+
spacing = "lg",
|
|
487
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
487
488
|
pattern,
|
|
488
489
|
patternOpacity,
|
|
489
490
|
optixFlowConfig
|
|
490
491
|
}) {
|
|
491
|
-
const getAuthorName = useCallback(
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
492
|
+
const getAuthorName = useCallback(
|
|
493
|
+
(testimonial) => {
|
|
494
|
+
if (typeof testimonial.author === "string") return testimonial.author;
|
|
495
|
+
return "";
|
|
496
|
+
},
|
|
497
|
+
[]
|
|
498
|
+
);
|
|
499
|
+
const getAvatarSrc = useCallback(
|
|
500
|
+
(testimonial) => {
|
|
501
|
+
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
502
|
+
},
|
|
503
|
+
[]
|
|
504
|
+
);
|
|
498
505
|
const getInitials = useCallback((name) => {
|
|
499
506
|
return name.split(" ").map((n) => n[0]).join("");
|
|
500
507
|
}, []);
|
|
@@ -525,7 +532,10 @@ function TestimonialsLogoCards({
|
|
|
525
532
|
{
|
|
526
533
|
src: testimonial.companyLogo,
|
|
527
534
|
alt: testimonial.companyLogoAlt || "Company logo",
|
|
528
|
-
className:
|
|
535
|
+
className: cn(
|
|
536
|
+
index === 0 ? "h-10" : "h-5",
|
|
537
|
+
"w-auto object-contain"
|
|
538
|
+
),
|
|
529
539
|
optixFlowConfig
|
|
530
540
|
}
|
|
531
541
|
) }),
|
|
@@ -542,20 +552,29 @@ function TestimonialsLogoCards({
|
|
|
542
552
|
{
|
|
543
553
|
className: cn(
|
|
544
554
|
"leading-relaxed",
|
|
545
|
-
index === 0 ? "text-xl font-
|
|
555
|
+
index === 0 ? "text-lg md:text-xl font-light" : "text-sm md:text-base",
|
|
546
556
|
quoteClassName
|
|
547
557
|
),
|
|
548
558
|
children: testimonial.quote
|
|
549
559
|
}
|
|
550
|
-
) :
|
|
560
|
+
) : testimonial.quote),
|
|
551
561
|
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
|
|
552
|
-
/* @__PURE__ */ jsxs(
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
562
|
+
/* @__PURE__ */ jsxs(
|
|
563
|
+
Avatar,
|
|
564
|
+
{
|
|
565
|
+
className: cn(
|
|
566
|
+
index === 0 ? "size-12" : "size-10",
|
|
567
|
+
"ring-4 ring-primary"
|
|
568
|
+
),
|
|
569
|
+
children: [
|
|
570
|
+
/* @__PURE__ */ jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
|
|
571
|
+
/* @__PURE__ */ jsx(AvatarFallback, { children: getInitials(authorName) })
|
|
572
|
+
]
|
|
573
|
+
}
|
|
574
|
+
),
|
|
556
575
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
557
|
-
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsx("cite", { className: "text-sm font-medium
|
|
558
|
-
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs text-
|
|
576
|
+
testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsx("cite", { className: "text-sm md:text-base font-medium", children: testimonial.author }) : testimonial.author),
|
|
577
|
+
testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs md:text-sm", children: testimonial.role }) : testimonial.role)
|
|
559
578
|
] })
|
|
560
579
|
] })
|
|
561
580
|
]
|
|
@@ -568,7 +587,20 @@ function TestimonialsLogoCards({
|
|
|
568
587
|
})
|
|
569
588
|
}
|
|
570
589
|
);
|
|
571
|
-
}, [
|
|
590
|
+
}, [
|
|
591
|
+
testimonialsSlot,
|
|
592
|
+
gridClassName,
|
|
593
|
+
testimonials,
|
|
594
|
+
cardClassName,
|
|
595
|
+
cardHeaderClassName,
|
|
596
|
+
optixFlowConfig,
|
|
597
|
+
cardContentClassName,
|
|
598
|
+
quoteClassName,
|
|
599
|
+
authorClassName,
|
|
600
|
+
getAuthorName,
|
|
601
|
+
getAvatarSrc,
|
|
602
|
+
getInitials
|
|
603
|
+
]);
|
|
572
604
|
return /* @__PURE__ */ jsxs(
|
|
573
605
|
Section,
|
|
574
606
|
{
|
|
@@ -577,6 +609,7 @@ function TestimonialsLogoCards({
|
|
|
577
609
|
pattern,
|
|
578
610
|
patternOpacity,
|
|
579
611
|
className,
|
|
612
|
+
containerClassName,
|
|
580
613
|
children: [
|
|
581
614
|
/* @__PURE__ */ jsxs(
|
|
582
615
|
"div",
|
|
@@ -592,17 +625,8 @@ function TestimonialsLogoCards({
|
|
|
592
625
|
),
|
|
593
626
|
children: heading
|
|
594
627
|
}
|
|
595
|
-
) :
|
|
596
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
597
|
-
"p",
|
|
598
|
-
{
|
|
599
|
-
className: cn(
|
|
600
|
-
"mt-4 text-lg text-muted-foreground",
|
|
601
|
-
descriptionClassName
|
|
602
|
-
),
|
|
603
|
-
children: description
|
|
604
|
-
}
|
|
605
|
-
) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
|
|
628
|
+
) : heading),
|
|
629
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description)
|
|
606
630
|
]
|
|
607
631
|
}
|
|
608
632
|
),
|