@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
@@ -473,7 +473,8 @@ function TestimonialsMinimalNumbered({
473
473
  authorClassName,
474
474
  navigationClassName,
475
475
  background,
476
- spacing,
476
+ spacing = "py-8 md:py-12",
477
+ 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",
477
478
  pattern,
478
479
  patternOpacity
479
480
  }) {
@@ -526,19 +527,19 @@ function TestimonialsMinimalNumbered({
526
527
  if (!current) return null;
527
528
  const authorName = getAuthorName(current);
528
529
  const avatarSrc = getAvatarSrc(current);
529
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-8", contentClassName), children: [
530
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-4 md:gap-8", contentClassName), children: [
530
531
  /* @__PURE__ */ jsxRuntime.jsx(
531
532
  "span",
532
533
  {
533
534
  className: cn(
534
- "text-8xl font-light leading-none select-none transition-all duration-500 md:text-9xl",
535
+ "text-4xl md:text-8xl font-light leading-none select-none transition-all duration-500",
535
536
  numberClassName
536
537
  ),
537
538
  style: { fontFeatureSettings: '"tnum"' },
538
539
  children: String(active + 1).padStart(2, "0")
539
540
  }
540
541
  ),
541
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 pt-6", children: [
542
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 pt-0 md:pt-6", children: [
542
543
  current.quote && (typeof current.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
543
544
  "blockquote",
544
545
  {
@@ -609,6 +610,7 @@ function TestimonialsMinimalNumbered({
609
610
  pattern,
610
611
  patternOpacity,
611
612
  className,
613
+ containerClassName,
612
614
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-4xl mx-auto", children: [
613
615
  renderedTestimonial,
614
616
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -644,13 +646,13 @@ function TestimonialsMinimalNumbered({
644
646
  String(testimonials.length).padStart(2, "0")
645
647
  ] })
646
648
  ] }) }),
647
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
649
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
648
650
  /* @__PURE__ */ jsxRuntime.jsx(
649
651
  "button",
650
652
  {
651
653
  onClick: handlePrev,
652
654
  className: "rounded-full p-2 transition-all duration-300 ",
653
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
655
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 24 })
654
656
  }
655
657
  ),
656
658
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -658,7 +660,7 @@ function TestimonialsMinimalNumbered({
658
660
  {
659
661
  onClick: handleNext,
660
662
  className: "rounded-full p-2 transition-all duration-300 ",
661
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 20 })
663
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
662
664
  }
663
665
  )
664
666
  ] })
@@ -60,6 +60,10 @@ interface TestimonialsMinimalNumberedProps {
60
60
  * Pattern overlay opacity (0-1)
61
61
  */
62
62
  patternOpacity?: number;
63
+ /**
64
+ * Additional CSS classes for the container
65
+ */
66
+ containerClassName?: string;
63
67
  }
64
68
  /**
65
69
  * TestimonialsMinimalNumbered - A minimal testimonial slider featuring large numbered
@@ -86,6 +90,6 @@ interface TestimonialsMinimalNumberedProps {
86
90
  * />
87
91
  * ```
88
92
  */
89
- declare function TestimonialsMinimalNumbered({ testimonials, testimonialsSlot, autoPlayInterval, className, contentClassName, numberClassName, quoteClassName, authorClassName, navigationClassName, background, spacing, pattern, patternOpacity, }: TestimonialsMinimalNumberedProps): React.JSX.Element;
93
+ declare function TestimonialsMinimalNumbered({ testimonials, testimonialsSlot, autoPlayInterval, className, contentClassName, numberClassName, quoteClassName, authorClassName, navigationClassName, background, spacing, containerClassName, pattern, patternOpacity, }: TestimonialsMinimalNumberedProps): React.JSX.Element;
90
94
 
91
95
  export { TestimonialsMinimalNumbered, type TestimonialsMinimalNumberedProps };
@@ -60,6 +60,10 @@ interface TestimonialsMinimalNumberedProps {
60
60
  * Pattern overlay opacity (0-1)
61
61
  */
62
62
  patternOpacity?: number;
63
+ /**
64
+ * Additional CSS classes for the container
65
+ */
66
+ containerClassName?: string;
63
67
  }
64
68
  /**
65
69
  * TestimonialsMinimalNumbered - A minimal testimonial slider featuring large numbered
@@ -86,6 +90,6 @@ interface TestimonialsMinimalNumberedProps {
86
90
  * />
87
91
  * ```
88
92
  */
89
- declare function TestimonialsMinimalNumbered({ testimonials, testimonialsSlot, autoPlayInterval, className, contentClassName, numberClassName, quoteClassName, authorClassName, navigationClassName, background, spacing, pattern, patternOpacity, }: TestimonialsMinimalNumberedProps): React.JSX.Element;
93
+ declare function TestimonialsMinimalNumbered({ testimonials, testimonialsSlot, autoPlayInterval, className, contentClassName, numberClassName, quoteClassName, authorClassName, navigationClassName, background, spacing, containerClassName, pattern, patternOpacity, }: TestimonialsMinimalNumberedProps): React.JSX.Element;
90
94
 
91
95
  export { TestimonialsMinimalNumbered, type TestimonialsMinimalNumberedProps };
@@ -451,7 +451,8 @@ function TestimonialsMinimalNumbered({
451
451
  authorClassName,
452
452
  navigationClassName,
453
453
  background,
454
- spacing,
454
+ spacing = "py-8 md:py-12",
455
+ 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",
455
456
  pattern,
456
457
  patternOpacity
457
458
  }) {
@@ -504,19 +505,19 @@ function TestimonialsMinimalNumbered({
504
505
  if (!current) return null;
505
506
  const authorName = getAuthorName(current);
506
507
  const avatarSrc = getAvatarSrc(current);
507
- return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-8", contentClassName), children: [
508
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex items-start gap-4 md:gap-8", contentClassName), children: [
508
509
  /* @__PURE__ */ jsx(
509
510
  "span",
510
511
  {
511
512
  className: cn(
512
- "text-8xl font-light leading-none select-none transition-all duration-500 md:text-9xl",
513
+ "text-4xl md:text-8xl font-light leading-none select-none transition-all duration-500",
513
514
  numberClassName
514
515
  ),
515
516
  style: { fontFeatureSettings: '"tnum"' },
516
517
  children: String(active + 1).padStart(2, "0")
517
518
  }
518
519
  ),
519
- /* @__PURE__ */ jsxs("div", { className: "flex-1 pt-6", children: [
520
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 pt-0 md:pt-6", children: [
520
521
  current.quote && (typeof current.quote === "string" ? /* @__PURE__ */ jsx(
521
522
  "blockquote",
522
523
  {
@@ -587,6 +588,7 @@ function TestimonialsMinimalNumbered({
587
588
  pattern,
588
589
  patternOpacity,
589
590
  className,
591
+ containerClassName,
590
592
  children: /* @__PURE__ */ jsxs("div", { className: "max-w-4xl mx-auto", children: [
591
593
  renderedTestimonial,
592
594
  /* @__PURE__ */ jsxs(
@@ -622,13 +624,13 @@ function TestimonialsMinimalNumbered({
622
624
  String(testimonials.length).padStart(2, "0")
623
625
  ] })
624
626
  ] }) }),
625
- /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-1", children: [
627
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
626
628
  /* @__PURE__ */ jsx(
627
629
  "button",
628
630
  {
629
631
  onClick: handlePrev,
630
632
  className: "rounded-full p-2 transition-all duration-300 ",
631
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
633
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 24 })
632
634
  }
633
635
  ),
634
636
  /* @__PURE__ */ jsx(
@@ -636,7 +638,7 @@ function TestimonialsMinimalNumbered({
636
638
  {
637
639
  onClick: handleNext,
638
640
  className: "rounded-full p-2 transition-all duration-300 ",
639
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 20 })
641
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
640
642
  }
641
643
  )
642
644
  ] })
@@ -945,10 +945,11 @@ function TestimonialsParallaxNumber({
945
945
  framerMotion.motion.div,
946
946
  {
947
947
  className: cn(
948
- "pointer-events-none absolute -left-8 top-1/2 -translate-y-1/2 select-none text-[20rem] font-bold leading-none tracking-tighter ",
948
+ "opacity-15",
949
+ "pointer-events-none absolute -left-8 top-1/2 -translate-y-1/2 select-none text-[20rem] font-bold leading-none tracking-tighter",
949
950
  numberClassName
950
951
  ),
951
- style: { x: numberX, y: numberY },
952
+ style: { x: numberX, y: numberY, opacity: 0.1 },
952
953
  children: /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
953
954
  framerMotion.motion.span,
954
955
  {
@@ -957,14 +958,14 @@ function TestimonialsParallaxNumber({
957
958
  exit: { opacity: 0, scale: 1.1, filter: "blur(10px)" },
958
959
  transition: { duration: 0.6, ease: [0.22, 1, 0.36, 1] },
959
960
  className: "block",
960
- children: current.backgroundIcon ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: current.backgroundIcon }) : current.backgroundLabel != null ? current.backgroundLabel : null
961
+ children: current.backgroundIcon ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: current.backgroundIcon, size: 320 }) : current.backgroundLabel != null ? current.backgroundLabel : null
961
962
  },
962
963
  activeIndex
963
964
  ) })
964
965
  }
965
966
  ),
966
967
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex", children: [
967
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center border-r border-border/50 pr-16", children: [
968
+ /* @__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: [
968
969
  /* @__PURE__ */ jsxRuntime.jsxs(
969
970
  framerMotion.motion.span,
970
971
  {
@@ -990,7 +991,7 @@ function TestimonialsParallaxNumber({
990
991
  }
991
992
  ) })
992
993
  ] }),
993
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 py-12 pl-16", children: [
994
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 py-6 md:py-12 pl-4 md:pl-16", children: [
994
995
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
995
996
  framerMotion.motion.div,
996
997
  {
@@ -999,7 +1000,7 @@ function TestimonialsParallaxNumber({
999
1000
  exit: { opacity: 0, x: 20 },
1000
1001
  transition: { duration: 0.4 },
1001
1002
  className: "mb-8",
1002
- children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "inline-flex items-center gap-2 rounded-full border border-border px-3 py-1 text-xs ", children: companyName })
1003
+ 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 })
1003
1004
  },
1004
1005
  activeIndex
1005
1006
  ) }),
@@ -1007,7 +1008,8 @@ function TestimonialsParallaxNumber({
1007
1008
  framerMotion.motion.blockquote,
1008
1009
  {
1009
1010
  className: cn(
1010
- "text-3xl font-light leading-[1.15] tracking-tight md:text-4xl lg:text-5xl",
1011
+ "text-2xl md:text-4xl lg:text-5xl",
1012
+ "font-light leading-[1.15] tracking-tight",
1011
1013
  quoteClassName
1012
1014
  ),
1013
1015
  initial: "hidden",
@@ -1042,7 +1044,7 @@ function TestimonialsParallaxNumber({
1042
1044
  },
1043
1045
  activeIndex
1044
1046
  ) }) }),
1045
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-end justify-between", children: [
1047
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start md:items-end justify-between", children: [
1046
1048
  /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsx(
1047
1049
  framerMotion.motion.div,
1048
1050
  {
@@ -1074,7 +1076,10 @@ function TestimonialsParallaxNumber({
1074
1076
  /* @__PURE__ */ jsxRuntime.jsxs(
1075
1077
  "div",
1076
1078
  {
1077
- className: cn("flex items-center gap-4", navigationClassName),
1079
+ className: cn(
1080
+ "flex items-center gap-4 flex-col md:flex-row",
1081
+ navigationClassName
1082
+ ),
1078
1083
  children: [
1079
1084
  /* @__PURE__ */ jsxRuntime.jsx(
1080
1085
  framerMotion.motion.button,
@@ -924,10 +924,11 @@ function TestimonialsParallaxNumber({
924
924
  motion.div,
925
925
  {
926
926
  className: cn(
927
- "pointer-events-none absolute -left-8 top-1/2 -translate-y-1/2 select-none text-[20rem] font-bold leading-none tracking-tighter ",
927
+ "opacity-15",
928
+ "pointer-events-none absolute -left-8 top-1/2 -translate-y-1/2 select-none text-[20rem] font-bold leading-none tracking-tighter",
928
929
  numberClassName
929
930
  ),
930
- style: { x: numberX, y: numberY },
931
+ style: { x: numberX, y: numberY, opacity: 0.1 },
931
932
  children: /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsx(
932
933
  motion.span,
933
934
  {
@@ -936,14 +937,14 @@ function TestimonialsParallaxNumber({
936
937
  exit: { opacity: 0, scale: 1.1, filter: "blur(10px)" },
937
938
  transition: { duration: 0.6, ease: [0.22, 1, 0.36, 1] },
938
939
  className: "block",
939
- children: current.backgroundIcon ? /* @__PURE__ */ jsx(DynamicIcon, { name: current.backgroundIcon }) : current.backgroundLabel != null ? current.backgroundLabel : null
940
+ children: current.backgroundIcon ? /* @__PURE__ */ jsx(DynamicIcon, { name: current.backgroundIcon, size: 320 }) : current.backgroundLabel != null ? current.backgroundLabel : null
940
941
  },
941
942
  activeIndex
942
943
  ) })
943
944
  }
944
945
  ),
945
946
  /* @__PURE__ */ jsxs("div", { className: "relative flex", children: [
946
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center border-r border-border/50 pr-16", children: [
947
+ /* @__PURE__ */ 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: [
947
948
  /* @__PURE__ */ jsxs(
948
949
  motion.span,
949
950
  {
@@ -969,7 +970,7 @@ function TestimonialsParallaxNumber({
969
970
  }
970
971
  ) })
971
972
  ] }),
972
- /* @__PURE__ */ jsxs("div", { className: "flex-1 py-12 pl-16", children: [
973
+ /* @__PURE__ */ jsxs("div", { className: "flex-1 py-6 md:py-12 pl-4 md:pl-16", children: [
973
974
  /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsx(
974
975
  motion.div,
975
976
  {
@@ -978,7 +979,7 @@ function TestimonialsParallaxNumber({
978
979
  exit: { opacity: 0, x: 20 },
979
980
  transition: { duration: 0.4 },
980
981
  className: "mb-8",
981
- children: /* @__PURE__ */ jsx("span", { className: "inline-flex items-center gap-2 rounded-full border border-border px-3 py-1 text-xs ", children: companyName })
982
+ children: /* @__PURE__ */ jsx("span", { className: "inline-flex items-center gap-2 rounded-full border border-border px-4 py-2 text-sm", children: companyName })
982
983
  },
983
984
  activeIndex
984
985
  ) }),
@@ -986,7 +987,8 @@ function TestimonialsParallaxNumber({
986
987
  motion.blockquote,
987
988
  {
988
989
  className: cn(
989
- "text-3xl font-light leading-[1.15] tracking-tight md:text-4xl lg:text-5xl",
990
+ "text-2xl md:text-4xl lg:text-5xl",
991
+ "font-light leading-[1.15] tracking-tight",
990
992
  quoteClassName
991
993
  ),
992
994
  initial: "hidden",
@@ -1021,7 +1023,7 @@ function TestimonialsParallaxNumber({
1021
1023
  },
1022
1024
  activeIndex
1023
1025
  ) }) }),
1024
- /* @__PURE__ */ jsxs("div", { className: "flex items-end justify-between", children: [
1026
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start md:items-end justify-between", children: [
1025
1027
  /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", children: /* @__PURE__ */ jsx(
1026
1028
  motion.div,
1027
1029
  {
@@ -1053,7 +1055,10 @@ function TestimonialsParallaxNumber({
1053
1055
  /* @__PURE__ */ jsxs(
1054
1056
  "div",
1055
1057
  {
1056
- className: cn("flex items-center gap-4", navigationClassName),
1058
+ className: cn(
1059
+ "flex items-center gap-4 flex-col md:flex-row",
1060
+ navigationClassName
1061
+ ),
1057
1062
  children: [
1058
1063
  /* @__PURE__ */ jsx(
1059
1064
  motion.button,
@@ -41,6 +41,67 @@ var DynamicIcon = React__namespace.memo(function DynamicIcon2({
41
41
  return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
42
42
  });
43
43
  DynamicIcon.displayName = "DynamicIcon";
44
+ var DIRECTION_STYLES = {
45
+ "bottom-to-top": "bg-linear-to-t",
46
+ "top-to-bottom": "bg-linear-to-b",
47
+ "left-to-right": "bg-linear-to-r",
48
+ "right-to-left": "bg-linear-to-l",
49
+ "bottom-left-to-top-right": "bg-linear-to-tr",
50
+ "bottom-right-to-top-left": "bg-linear-to-tl",
51
+ "top-left-to-bottom-right": "bg-linear-to-br",
52
+ "top-right-to-bottom-left": "bg-linear-to-bl"
53
+ };
54
+ var INTENSITY_STOPS = {
55
+ low: "from-black/40 via-black/20 to-transparent",
56
+ default: "from-black/70 via-black/35 to-transparent",
57
+ high: "from-black/85 via-black/50 to-transparent",
58
+ "very-high": "from-black/95 via-black/60 to-black/20"
59
+ };
60
+ var RADIAL_INTENSITY = {
61
+ low: {
62
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
63
+ },
64
+ default: {
65
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
66
+ },
67
+ high: {
68
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
69
+ },
70
+ "very-high": {
71
+ 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%)"
72
+ }
73
+ };
74
+ function GradientOverlay({
75
+ direction = "bottom-to-top",
76
+ intensity = "default",
77
+ className,
78
+ style,
79
+ ...props
80
+ }) {
81
+ if (direction === "radial-center") {
82
+ return /* @__PURE__ */ jsxRuntime.jsx(
83
+ "div",
84
+ {
85
+ className: cn("absolute inset-0", className),
86
+ style: { ...RADIAL_INTENSITY[intensity], ...style },
87
+ ...props
88
+ }
89
+ );
90
+ }
91
+ return /* @__PURE__ */ jsxRuntime.jsx(
92
+ "div",
93
+ {
94
+ className: cn(
95
+ "absolute inset-0",
96
+ DIRECTION_STYLES[direction],
97
+ INTENSITY_STOPS[intensity],
98
+ className
99
+ ),
100
+ style,
101
+ ...props
102
+ }
103
+ );
104
+ }
44
105
  var maxWidthStyles = {
45
106
  sm: "max-w-screen-sm",
46
107
  md: "max-w-screen-md",
@@ -483,7 +544,7 @@ function TestimonialsScrollingColumns({
483
544
  framerMotion.motion.div,
484
545
  {
485
546
  className: cn(
486
- "relative overflow-hidden rounded-lg bg-card shadow-sm",
547
+ "relative overflow-hidden rounded-2xl shadow-sm",
487
548
  cardClassName
488
549
  ),
489
550
  variants: itemVariants,
@@ -498,35 +559,40 @@ function TestimonialsScrollingColumns({
498
559
  optixFlowConfig
499
560
  }
500
561
  ),
501
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-foreground/70 via-foreground/40 to-transparent" })
562
+ /* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, {})
502
563
  ] }),
503
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 p-6 text-left text-background", children: [
504
- /* @__PURE__ */ jsxRuntime.jsx(
564
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute bottom-0 left-0 right-0 p-6 text-left", children: [
565
+ testimonial?.logoSrc ? /* @__PURE__ */ jsxRuntime.jsx(
566
+ img.Img,
567
+ {
568
+ src: testimonial.logoSrc,
569
+ alt: typeof testimonial.company === "string" ? `${testimonial.company} logo` : typeof testimonial.author === "string" ? `${testimonial.author} company logo` : "Company logo",
570
+ className: cn(
571
+ "flex justify-start items-start mb-6 max-h-10 max-w-32 object-contain md:max-h-10 md:max-w-48"
572
+ ),
573
+ optixFlowConfig
574
+ }
575
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
505
576
  DynamicIcon,
506
577
  {
507
- name: "lucide/quote",
508
- size: 32,
509
- className: "mb-4 text-background/40"
578
+ name: "mdi/comment-quote-outline",
579
+ size: 42,
580
+ className: cn("opacity-50")
510
581
  }
511
582
  ),
512
583
  testimonial.quote && (typeof testimonial.quote === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
513
584
  "blockquote",
514
585
  {
515
586
  className: cn(
516
- "text-base font-medium leading-relaxed",
587
+ "text-base font-base leading-relaxed",
517
588
  quoteClassName
518
589
  ),
519
590
  children: testimonial.quote
520
591
  }
521
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: quoteClassName, children: testimonial.quote })),
522
- /* @__PURE__ */ jsxRuntime.jsx("figcaption", { className: cn("mt-4", authorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "font-semibold", children: [
523
- "\u2014",
524
- " ",
525
- testimonial.author && (typeof testimonial.author === "string" ? testimonial.author : null),
526
- testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "ml-1 text-background/60", children: [
527
- ", ",
528
- testimonial.role
529
- ] }) : null)
592
+ ) : testimonial.quote),
593
+ /* @__PURE__ */ jsxRuntime.jsx("figcaption", { className: cn("mt-4", authorClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-1", children: [
594
+ testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "uppercase text-base font-semibold", children: testimonial.author }) : null),
595
+ testimonial.role && (typeof testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-thin", children: testimonial.role }) : null)
530
596
  ] }) })
531
597
  ] })
532
598
  ]
@@ -559,19 +625,32 @@ function TestimonialsScrollingColumns({
559
625
  /* @__PURE__ */ jsxRuntime.jsxs(
560
626
  "div",
561
627
  {
562
- className: cn("mx-auto mb-12 max-w-2xl text-center", headerClassName),
628
+ className: cn(
629
+ "mx-auto mb-12 max-w-full md:max-w-2xl space-y-4 text-center",
630
+ headerClassName
631
+ ),
563
632
  children: [
564
633
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
565
634
  "h2",
566
635
  {
567
636
  className: cn(
568
- "text-3xl font-semibold tracking-tight md:text-4xl",
637
+ "text-pretty text-3xl md:text-4xl lg:text-6xl",
638
+ "font-semibold tracking-tight",
569
639
  headingClassName
570
640
  ),
571
641
  children: heading
572
642
  }
573
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
574
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg ", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
643
+ ) : heading),
644
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
645
+ "p",
646
+ {
647
+ className: cn(
648
+ "text-base md:text-lg text-balance",
649
+ descriptionClassName
650
+ ),
651
+ children: description
652
+ }
653
+ ) : description)
575
654
  ]
576
655
  }
577
656
  ),