@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.
Files changed (143) hide show
  1. package/dist/about-developer-profile.cjs +17 -10
  2. package/dist/about-developer-profile.js +17 -10
  3. package/dist/article-chapters-author.cjs +17 -10
  4. package/dist/article-chapters-author.js +17 -10
  5. package/dist/carousel-animated-sections.cjs +79 -25
  6. package/dist/carousel-animated-sections.d.cts +7 -2
  7. package/dist/carousel-animated-sections.d.ts +7 -2
  8. package/dist/carousel-animated-sections.js +79 -25
  9. package/dist/carousel-gallery-thumbnails.cjs +79 -25
  10. package/dist/carousel-gallery-thumbnails.d.cts +7 -2
  11. package/dist/carousel-gallery-thumbnails.d.ts +7 -2
  12. package/dist/carousel-gallery-thumbnails.js +79 -25
  13. package/dist/carousel-icon-sidebar.cjs +5 -4
  14. package/dist/carousel-icon-sidebar.js +5 -4
  15. package/dist/carousel-portfolio-hero.cjs +79 -25
  16. package/dist/carousel-portfolio-hero.d.cts +7 -2
  17. package/dist/carousel-portfolio-hero.d.ts +7 -2
  18. package/dist/carousel-portfolio-hero.js +79 -25
  19. package/dist/components.cjs +81 -42
  20. package/dist/components.d.cts +29 -2
  21. package/dist/components.d.ts +29 -2
  22. package/dist/components.js +81 -43
  23. package/dist/contact-map.cjs +46 -32
  24. package/dist/contact-map.js +46 -32
  25. package/dist/footer-accordion-social.cjs +17 -10
  26. package/dist/footer-accordion-social.js +17 -10
  27. package/dist/footer-animated-social.cjs +17 -10
  28. package/dist/footer-animated-social.js +17 -10
  29. package/dist/footer-brand-description.cjs +17 -10
  30. package/dist/footer-brand-description.js +17 -10
  31. package/dist/footer-brand-links-contact.cjs +17 -10
  32. package/dist/footer-brand-links-contact.js +17 -10
  33. package/dist/footer-comprehensive-links.cjs +17 -10
  34. package/dist/footer-comprehensive-links.js +17 -10
  35. package/dist/footer-contact-card.cjs +17 -10
  36. package/dist/footer-contact-card.js +17 -10
  37. package/dist/footer-cta-banner.cjs +17 -10
  38. package/dist/footer-cta-banner.js +17 -10
  39. package/dist/footer-cta-social.cjs +17 -10
  40. package/dist/footer-cta-social.js +17 -10
  41. package/dist/footer-info-cards-accordion.cjs +17 -10
  42. package/dist/footer-info-cards-accordion.js +17 -10
  43. package/dist/footer-nav-social.cjs +17 -10
  44. package/dist/footer-nav-social.js +17 -10
  45. package/dist/footer-newsletter-contact.cjs +17 -10
  46. package/dist/footer-newsletter-contact.js +17 -10
  47. package/dist/footer-newsletter-grid.cjs +17 -10
  48. package/dist/footer-newsletter-grid.js +17 -10
  49. package/dist/footer-newsletter-minimal.cjs +17 -10
  50. package/dist/footer-newsletter-minimal.js +17 -10
  51. package/dist/footer-social-apps.cjs +17 -10
  52. package/dist/footer-social-apps.js +17 -10
  53. package/dist/footer-social-newsletter.cjs +17 -10
  54. package/dist/footer-social-newsletter.js +17 -10
  55. package/dist/footer-split-image-accordion.cjs +17 -10
  56. package/dist/footer-split-image-accordion.js +17 -10
  57. package/dist/geo-map.cjs +46 -32
  58. package/dist/geo-map.js +46 -32
  59. package/dist/hero-coming-soon-countdown.cjs +17 -10
  60. package/dist/hero-coming-soon-countdown.js +17 -10
  61. package/dist/hero-video-background-dark.cjs +78 -16
  62. package/dist/hero-video-background-dark.d.cts +7 -2
  63. package/dist/hero-video-background-dark.d.ts +7 -2
  64. package/dist/hero-video-background-dark.js +78 -16
  65. package/dist/index.cjs +81 -42
  66. package/dist/index.d.cts +1 -0
  67. package/dist/index.d.ts +1 -0
  68. package/dist/index.js +81 -43
  69. package/dist/link-page-bento-layout.cjs +17 -10
  70. package/dist/link-page-bento-layout.js +17 -10
  71. package/dist/link-page-grid-cards.cjs +17 -10
  72. package/dist/link-page-grid-cards.js +17 -10
  73. package/dist/link-page-minimal-profile.cjs +17 -10
  74. package/dist/link-page-minimal-profile.js +17 -10
  75. package/dist/link-page-newsletter-social.cjs +17 -10
  76. package/dist/link-page-newsletter-social.js +17 -10
  77. package/dist/link-tree-block.cjs +17 -10
  78. package/dist/link-tree-block.js +17 -10
  79. package/dist/navbar-fullscreen-menu.cjs +17 -10
  80. package/dist/navbar-fullscreen-menu.js +17 -10
  81. package/dist/navbar-transparent-overlay.cjs +17 -10
  82. package/dist/navbar-transparent-overlay.js +17 -10
  83. package/dist/registry.cjs +967 -620
  84. package/dist/registry.js +967 -620
  85. package/dist/social-link-icon.cjs +17 -10
  86. package/dist/social-link-icon.d.cts +5 -0
  87. package/dist/social-link-icon.d.ts +5 -0
  88. package/dist/social-link-icon.js +17 -10
  89. package/dist/testimonials-bento-grid.cjs +1 -1
  90. package/dist/testimonials-bento-grid.js +1 -1
  91. package/dist/testimonials-carousel-image.cjs +16 -2
  92. package/dist/testimonials-carousel-image.d.cts +5 -1
  93. package/dist/testimonials-carousel-image.d.ts +5 -1
  94. package/dist/testimonials-carousel-image.js +16 -2
  95. package/dist/testimonials-centered-avatars.cjs +1 -1
  96. package/dist/testimonials-centered-avatars.js +1 -1
  97. package/dist/testimonials-grid-add-review.cjs +51 -29
  98. package/dist/testimonials-grid-add-review.js +51 -29
  99. package/dist/testimonials-images-helpful.cjs +181 -160
  100. package/dist/testimonials-images-helpful.d.cts +9 -1
  101. package/dist/testimonials-images-helpful.d.ts +9 -1
  102. package/dist/testimonials-images-helpful.js +181 -159
  103. package/dist/testimonials-large-quote.cjs +74 -43
  104. package/dist/testimonials-large-quote.d.cts +5 -1
  105. package/dist/testimonials-large-quote.d.ts +5 -1
  106. package/dist/testimonials-large-quote.js +74 -43
  107. package/dist/testimonials-list-verified.cjs +63 -44
  108. package/dist/testimonials-list-verified.d.cts +5 -1
  109. package/dist/testimonials-list-verified.d.ts +5 -1
  110. package/dist/testimonials-list-verified.js +64 -45
  111. package/dist/testimonials-logo-cards.cjs +55 -25
  112. package/dist/testimonials-logo-cards.d.cts +5 -1
  113. package/dist/testimonials-logo-cards.d.ts +5 -1
  114. package/dist/testimonials-logo-cards.js +55 -25
  115. package/dist/testimonials-marquee.cjs +440 -28
  116. package/dist/testimonials-marquee.js +441 -26
  117. package/dist/testimonials-masonry-grid.cjs +486 -69
  118. package/dist/testimonials-masonry-grid.d.cts +5 -1
  119. package/dist/testimonials-masonry-grid.d.ts +5 -1
  120. package/dist/testimonials-masonry-grid.js +483 -63
  121. package/dist/testimonials-mini-dividers.cjs +119 -83
  122. package/dist/testimonials-mini-dividers.d.cts +10 -6
  123. package/dist/testimonials-mini-dividers.d.ts +10 -6
  124. package/dist/testimonials-mini-dividers.js +119 -83
  125. package/dist/testimonials-minimal-numbered.cjs +9 -7
  126. package/dist/testimonials-minimal-numbered.d.cts +5 -1
  127. package/dist/testimonials-minimal-numbered.d.ts +5 -1
  128. package/dist/testimonials-minimal-numbered.js +9 -7
  129. package/dist/testimonials-parallax-number.cjs +14 -9
  130. package/dist/testimonials-parallax-number.js +14 -9
  131. package/dist/testimonials-scrolling-columns.cjs +100 -21
  132. package/dist/testimonials-scrolling-columns.js +100 -21
  133. package/dist/testimonials-simple-grid.cjs +22 -5
  134. package/dist/testimonials-simple-grid.js +22 -5
  135. package/dist/testimonials-slider-minimal.cjs +1 -1
  136. package/dist/testimonials-slider-minimal.js +1 -1
  137. package/dist/testimonials-stats-header.cjs +528 -87
  138. package/dist/testimonials-stats-header.d.cts +39 -3
  139. package/dist/testimonials-stats-header.d.ts +39 -3
  140. package/dist/testimonials-stats-header.js +523 -82
  141. package/dist/testimonials-twitter-cards.cjs +20 -12
  142. package/dist/testimonials-twitter-cards.js +20 -12
  143. package/package.json +11 -1
@@ -501,6 +501,7 @@ var SocialLinkIcon = React__namespace.forwardRef(
501
501
  iconClassName,
502
502
  className,
503
503
  iconNameOverride,
504
+ iconOnly = false,
504
505
  ...pressableProps
505
506
  }, ref) => {
506
507
  const platform = usePlatformFromUrl.usePlatformFromUrl(href);
@@ -513,6 +514,21 @@ var SocialLinkIcon = React__namespace.forwardRef(
513
514
  const accessibleLabel = React__namespace.useMemo(() => {
514
515
  return label || platformName;
515
516
  }, [label, platformName]);
517
+ const icon = React__namespace.useMemo(() => {
518
+ return /* @__PURE__ */ jsxRuntime.jsx(
519
+ DynamicIcon,
520
+ {
521
+ name: iconName,
522
+ size: iconSize,
523
+ color: iconColor,
524
+ className: iconClassName,
525
+ alt: accessibleLabel
526
+ }
527
+ );
528
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
529
+ if (iconOnly) {
530
+ return icon;
531
+ }
516
532
  return /* @__PURE__ */ jsxRuntime.jsx(
517
533
  Pressable,
518
534
  {
@@ -524,16 +540,7 @@ var SocialLinkIcon = React__namespace.forwardRef(
524
540
  className
525
541
  ),
526
542
  ...pressableProps,
527
- children: /* @__PURE__ */ jsxRuntime.jsx(
528
- DynamicIcon,
529
- {
530
- name: iconName,
531
- size: iconSize,
532
- color: iconColor,
533
- className: iconClassName,
534
- alt: accessibleLabel
535
- }
536
- )
543
+ children: icon
537
544
  }
538
545
  );
539
546
  }
@@ -45,6 +45,11 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
45
45
  * Required href for the link
46
46
  */
47
47
  href: string;
48
+ /**
49
+ * Return icon only
50
+ * @default false
51
+ */
52
+ iconOnly?: boolean;
48
53
  }
49
54
  /**
50
55
  * SocialLinkIcon - A reusable social media link icon component.
@@ -45,6 +45,11 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
45
45
  * Required href for the link
46
46
  */
47
47
  href: string;
48
+ /**
49
+ * Return icon only
50
+ * @default false
51
+ */
52
+ iconOnly?: boolean;
48
53
  }
49
54
  /**
50
55
  * SocialLinkIcon - A reusable social media link icon component.
@@ -479,6 +479,7 @@ var SocialLinkIcon = React.forwardRef(
479
479
  iconClassName,
480
480
  className,
481
481
  iconNameOverride,
482
+ iconOnly = false,
482
483
  ...pressableProps
483
484
  }, ref) => {
484
485
  const platform = usePlatformFromUrl(href);
@@ -491,6 +492,21 @@ var SocialLinkIcon = React.forwardRef(
491
492
  const accessibleLabel = React.useMemo(() => {
492
493
  return label || platformName;
493
494
  }, [label, platformName]);
495
+ const icon = React.useMemo(() => {
496
+ return /* @__PURE__ */ jsx(
497
+ DynamicIcon,
498
+ {
499
+ name: iconName,
500
+ size: iconSize,
501
+ color: iconColor,
502
+ className: iconClassName,
503
+ alt: accessibleLabel
504
+ }
505
+ );
506
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
507
+ if (iconOnly) {
508
+ return icon;
509
+ }
494
510
  return /* @__PURE__ */ jsx(
495
511
  Pressable,
496
512
  {
@@ -502,16 +518,7 @@ var SocialLinkIcon = React.forwardRef(
502
518
  className
503
519
  ),
504
520
  ...pressableProps,
505
- children: /* @__PURE__ */ jsx(
506
- DynamicIcon,
507
- {
508
- name: iconName,
509
- size: iconSize,
510
- color: iconColor,
511
- className: iconClassName,
512
- alt: accessibleLabel
513
- }
514
- )
521
+ children: icon
515
522
  }
516
523
  );
517
524
  }
@@ -1021,7 +1021,7 @@ function TestimonialsBentoGrid({
1021
1021
  ] }),
1022
1022
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-0 leading-tight", children: [
1023
1023
  testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: testimonial.author }) : testimonial.author),
1024
- testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: testimonial.role }) : testimonial.role),
1024
+ testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs", children: testimonial.role }) : testimonial.role),
1025
1025
  testimonial.linkConfig?.href && /* @__PURE__ */ jsxRuntime.jsx(
1026
1026
  Pressable,
1027
1027
  {
@@ -999,7 +999,7 @@ function TestimonialsBentoGrid({
999
999
  ] }),
1000
1000
  /* @__PURE__ */ jsxs("div", { className: "space-y-0 leading-tight", children: [
1001
1001
  testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: testimonial.author }) : testimonial.author),
1002
- testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: testimonial.role }) : testimonial.role),
1002
+ testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs", children: testimonial.role }) : testimonial.role),
1003
1003
  testimonial.linkConfig?.href && /* @__PURE__ */ jsx(
1004
1004
  Pressable,
1005
1005
  {
@@ -847,6 +847,7 @@ function TestimonialsCarouselImage({
847
847
  className,
848
848
  contentClassName,
849
849
  quoteIconClassName,
850
+ logoClassName,
850
851
  quoteClassName,
851
852
  authorClassName,
852
853
  navigationClassName,
@@ -854,7 +855,7 @@ function TestimonialsCarouselImage({
854
855
  dotsClassName,
855
856
  optixFlowConfig,
856
857
  background,
857
- containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10",
858
+ containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 h-full",
858
859
  spacing = "none",
859
860
  pattern,
860
861
  patternOpacity
@@ -912,7 +913,18 @@ function TestimonialsCarouselImage({
912
913
  contentClassName
913
914
  ),
914
915
  children: [
915
- /* @__PURE__ */ jsxRuntime.jsx(
916
+ current?.logoSrc ? /* @__PURE__ */ jsxRuntime.jsx(
917
+ img.Img,
918
+ {
919
+ src: current.logoSrc,
920
+ alt: typeof current.company === "string" ? `${current.company} logo` : typeof current.author === "string" ? `${current.author} company logo` : "Company logo",
921
+ className: cn(
922
+ "mx-auto mb-6 max-h-12 max-w-32 object-contain md:max-h-16 md:max-w-48",
923
+ logoClassName
924
+ ),
925
+ optixFlowConfig
926
+ }
927
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
916
928
  DynamicIcon,
917
929
  {
918
930
  name: "mdi/comment-quote-outline",
@@ -970,6 +982,8 @@ function TestimonialsCarouselImage({
970
982
  testimonialsSlot,
971
983
  contentClassName,
972
984
  quoteIconClassName,
985
+ logoClassName,
986
+ optixFlowConfig,
973
987
  current,
974
988
  quoteClassName,
975
989
  authorClassName
@@ -53,6 +53,10 @@ interface TestimonialsCarouselImageProps {
53
53
  * Additional CSS classes for the quote icon
54
54
  */
55
55
  quoteIconClassName?: string;
56
+ /**
57
+ * Additional CSS classes for the company logo
58
+ */
59
+ logoClassName?: string;
56
60
  /**
57
61
  * Additional CSS classes for the quote text
58
62
  */
@@ -126,6 +130,6 @@ interface TestimonialsCarouselImageProps {
126
130
  * />
127
131
  * ```
128
132
  */
129
- declare function TestimonialsCarouselImage({ testimonials, testimonialsSlot, autoPlayInterval, height, overlayOpacity, previousButtonAriaLabel, nextButtonAriaLabel, className, contentClassName, quoteIconClassName, quoteClassName, authorClassName, navigationClassName, navButtonClassName, dotsClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsCarouselImageProps): React.JSX.Element;
133
+ declare function TestimonialsCarouselImage({ testimonials, testimonialsSlot, autoPlayInterval, height, overlayOpacity, previousButtonAriaLabel, nextButtonAriaLabel, className, contentClassName, quoteIconClassName, logoClassName, quoteClassName, authorClassName, navigationClassName, navButtonClassName, dotsClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsCarouselImageProps): React.JSX.Element;
130
134
 
131
135
  export { type CarouselTestimonialItem, TestimonialsCarouselImage, type TestimonialsCarouselImageProps };
@@ -53,6 +53,10 @@ interface TestimonialsCarouselImageProps {
53
53
  * Additional CSS classes for the quote icon
54
54
  */
55
55
  quoteIconClassName?: string;
56
+ /**
57
+ * Additional CSS classes for the company logo
58
+ */
59
+ logoClassName?: string;
56
60
  /**
57
61
  * Additional CSS classes for the quote text
58
62
  */
@@ -126,6 +130,6 @@ interface TestimonialsCarouselImageProps {
126
130
  * />
127
131
  * ```
128
132
  */
129
- declare function TestimonialsCarouselImage({ testimonials, testimonialsSlot, autoPlayInterval, height, overlayOpacity, previousButtonAriaLabel, nextButtonAriaLabel, className, contentClassName, quoteIconClassName, quoteClassName, authorClassName, navigationClassName, navButtonClassName, dotsClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsCarouselImageProps): React.JSX.Element;
133
+ declare function TestimonialsCarouselImage({ testimonials, testimonialsSlot, autoPlayInterval, height, overlayOpacity, previousButtonAriaLabel, nextButtonAriaLabel, className, contentClassName, quoteIconClassName, logoClassName, quoteClassName, authorClassName, navigationClassName, navButtonClassName, dotsClassName, optixFlowConfig, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsCarouselImageProps): React.JSX.Element;
130
134
 
131
135
  export { type CarouselTestimonialItem, TestimonialsCarouselImage, type TestimonialsCarouselImageProps };
@@ -826,6 +826,7 @@ function TestimonialsCarouselImage({
826
826
  className,
827
827
  contentClassName,
828
828
  quoteIconClassName,
829
+ logoClassName,
829
830
  quoteClassName,
830
831
  authorClassName,
831
832
  navigationClassName,
@@ -833,7 +834,7 @@ function TestimonialsCarouselImage({
833
834
  dotsClassName,
834
835
  optixFlowConfig,
835
836
  background,
836
- containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10",
837
+ containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 h-full",
837
838
  spacing = "none",
838
839
  pattern,
839
840
  patternOpacity
@@ -891,7 +892,18 @@ function TestimonialsCarouselImage({
891
892
  contentClassName
892
893
  ),
893
894
  children: [
894
- /* @__PURE__ */ jsx(
895
+ current?.logoSrc ? /* @__PURE__ */ jsx(
896
+ Img,
897
+ {
898
+ src: current.logoSrc,
899
+ alt: typeof current.company === "string" ? `${current.company} logo` : typeof current.author === "string" ? `${current.author} company logo` : "Company logo",
900
+ className: cn(
901
+ "mx-auto mb-6 max-h-12 max-w-32 object-contain md:max-h-16 md:max-w-48",
902
+ logoClassName
903
+ ),
904
+ optixFlowConfig
905
+ }
906
+ ) : /* @__PURE__ */ jsx(
895
907
  DynamicIcon,
896
908
  {
897
909
  name: "mdi/comment-quote-outline",
@@ -949,6 +961,8 @@ function TestimonialsCarouselImage({
949
961
  testimonialsSlot,
950
962
  contentClassName,
951
963
  quoteIconClassName,
964
+ logoClassName,
965
+ optixFlowConfig,
952
966
  current,
953
967
  quoteClassName,
954
968
  authorClassName
@@ -582,7 +582,7 @@ function TestimonialsCenteredAvatars({
582
582
  "div",
583
583
  {
584
584
  className: cn(
585
- "mx-auto max-w-full md:max-w-md text-center flex flex-col items-center gap-6",
585
+ "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",
586
586
  contentClassName
587
587
  ),
588
588
  children: [
@@ -557,7 +557,7 @@ function TestimonialsCenteredAvatars({
557
557
  "div",
558
558
  {
559
559
  className: cn(
560
- "mx-auto max-w-full md:max-w-md text-center flex flex-col items-center gap-6",
560
+ "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",
561
561
  contentClassName
562
562
  ),
563
563
  children: [
@@ -45,6 +45,23 @@ var DynamicIcon = React__namespace.memo(function DynamicIcon2({
45
45
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
46
46
  });
47
47
  DynamicIcon.displayName = "DynamicIcon";
48
+ function StarRating({
49
+ rating,
50
+ size = 18,
51
+ className
52
+ }) {
53
+ 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(
54
+ DynamicIcon,
55
+ {
56
+ name: "icon-park-solid/star",
57
+ size,
58
+ className: cn(
59
+ star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
60
+ )
61
+ },
62
+ star
63
+ )) });
64
+ }
48
65
  function Avatar({
49
66
  className,
50
67
  ...props
@@ -489,19 +506,6 @@ var Section = React__namespace.default.forwardRef(
489
506
  }
490
507
  );
491
508
  Section.displayName = "Section";
492
- function StarRating({ rating, size = 16 }) {
493
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
494
- DynamicIcon,
495
- {
496
- name: "lucide/star",
497
- size,
498
- className: cn(
499
- star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
500
- )
501
- },
502
- star
503
- )) });
504
- }
505
509
  function TestimonialsGridAddReview({
506
510
  reviews,
507
511
  reviewsSlot,
@@ -548,21 +552,27 @@ function TestimonialsGridAddReview({
548
552
  addReviewCardClassName
549
553
  ),
550
554
  onClick: onAddReview,
551
- children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: cn(
552
- "flex flex-col items-center gap-3 py-12 text-center",
553
- getNestedCardTextColor(background)
554
- ), children: [
555
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(
556
- DynamicIcon,
557
- {
558
- name: "lucide/plus",
559
- size: 24,
560
- className: "text-primary"
561
- }
562
- ) }),
563
- addReviewText && (typeof addReviewText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: addReviewText }) : addReviewText),
564
- addReviewSubtext && (typeof addReviewSubtext === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: addReviewSubtext }) : addReviewSubtext)
565
- ] })
555
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
556
+ CardContent,
557
+ {
558
+ className: cn(
559
+ "flex flex-col items-center gap-3 py-12 text-center",
560
+ getNestedCardTextColor(background)
561
+ ),
562
+ children: [
563
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(
564
+ DynamicIcon,
565
+ {
566
+ name: "lucide/plus",
567
+ size: 24,
568
+ className: "text-primary"
569
+ }
570
+ ) }),
571
+ addReviewText && (typeof addReviewText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: addReviewText }) : addReviewText),
572
+ addReviewSubtext && (typeof addReviewSubtext === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: addReviewSubtext }) : addReviewSubtext)
573
+ ]
574
+ }
575
+ )
566
576
  }
567
577
  ),
568
578
  reviews?.map((review, index) => {
@@ -582,7 +592,19 @@ function TestimonialsGridAddReview({
582
592
  ]
583
593
  }
584
594
  );
585
- }, [reviewsSlot, gridClassName, addReviewCardClassName, onAddReview, addReviewText, addReviewSubtext, reviews, cardClassName, authorClassName, getAuthorName, getInitials]);
595
+ }, [
596
+ reviewsSlot,
597
+ gridClassName,
598
+ addReviewCardClassName,
599
+ onAddReview,
600
+ addReviewText,
601
+ addReviewSubtext,
602
+ reviews,
603
+ cardClassName,
604
+ authorClassName,
605
+ getAuthorName,
606
+ getInitials
607
+ ]);
586
608
  return /* @__PURE__ */ jsxRuntime.jsxs(
587
609
  Section,
588
610
  {
@@ -23,6 +23,23 @@ var DynamicIcon = React.memo(function DynamicIcon2({
23
23
  return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
24
24
  });
25
25
  DynamicIcon.displayName = "DynamicIcon";
26
+ function StarRating({
27
+ rating,
28
+ size = 18,
29
+ className
30
+ }) {
31
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center gap-0.5", className), children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx(
32
+ DynamicIcon,
33
+ {
34
+ name: "icon-park-solid/star",
35
+ size,
36
+ className: cn(
37
+ star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
38
+ )
39
+ },
40
+ star
41
+ )) });
42
+ }
26
43
  function Avatar({
27
44
  className,
28
45
  ...props
@@ -467,19 +484,6 @@ var Section = React__default.forwardRef(
467
484
  }
468
485
  );
469
486
  Section.displayName = "Section";
470
- function StarRating({ rating, size = 16 }) {
471
- return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx(
472
- DynamicIcon,
473
- {
474
- name: "lucide/star",
475
- size,
476
- className: cn(
477
- star <= rating ? "fill-primary text-primary" : "fill-muted text-muted"
478
- )
479
- },
480
- star
481
- )) });
482
- }
483
487
  function TestimonialsGridAddReview({
484
488
  reviews,
485
489
  reviewsSlot,
@@ -526,21 +530,27 @@ function TestimonialsGridAddReview({
526
530
  addReviewCardClassName
527
531
  ),
528
532
  onClick: onAddReview,
529
- children: /* @__PURE__ */ jsxs(CardContent, { className: cn(
530
- "flex flex-col items-center gap-3 py-12 text-center",
531
- getNestedCardTextColor(background)
532
- ), children: [
533
- /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(
534
- DynamicIcon,
535
- {
536
- name: "lucide/plus",
537
- size: 24,
538
- className: "text-primary"
539
- }
540
- ) }),
541
- addReviewText && (typeof addReviewText === "string" ? /* @__PURE__ */ jsx("p", { className: "font-medium", children: addReviewText }) : addReviewText),
542
- addReviewSubtext && (typeof addReviewSubtext === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: addReviewSubtext }) : addReviewSubtext)
543
- ] })
533
+ children: /* @__PURE__ */ jsxs(
534
+ CardContent,
535
+ {
536
+ className: cn(
537
+ "flex flex-col items-center gap-3 py-12 text-center",
538
+ getNestedCardTextColor(background)
539
+ ),
540
+ children: [
541
+ /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(
542
+ DynamicIcon,
543
+ {
544
+ name: "lucide/plus",
545
+ size: 24,
546
+ className: "text-primary"
547
+ }
548
+ ) }),
549
+ addReviewText && (typeof addReviewText === "string" ? /* @__PURE__ */ jsx("p", { className: "font-medium", children: addReviewText }) : addReviewText),
550
+ addReviewSubtext && (typeof addReviewSubtext === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: addReviewSubtext }) : addReviewSubtext)
551
+ ]
552
+ }
553
+ )
544
554
  }
545
555
  ),
546
556
  reviews?.map((review, index) => {
@@ -560,7 +570,19 @@ function TestimonialsGridAddReview({
560
570
  ]
561
571
  }
562
572
  );
563
- }, [reviewsSlot, gridClassName, addReviewCardClassName, onAddReview, addReviewText, addReviewSubtext, reviews, cardClassName, authorClassName, getAuthorName, getInitials]);
573
+ }, [
574
+ reviewsSlot,
575
+ gridClassName,
576
+ addReviewCardClassName,
577
+ onAddReview,
578
+ addReviewText,
579
+ addReviewSubtext,
580
+ reviews,
581
+ cardClassName,
582
+ authorClassName,
583
+ getAuthorName,
584
+ getInitials
585
+ ]);
564
586
  return /* @__PURE__ */ jsxs(
565
587
  Section,
566
588
  {