@opensite/ui 2.8.4 → 2.8.5

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.
@@ -533,7 +533,8 @@ function TestimonialsStatsHeader({
533
533
  quoteClassName,
534
534
  authorClassName,
535
535
  background,
536
- spacing,
536
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
537
+ spacing = "xl",
537
538
  pattern,
538
539
  patternOpacity
539
540
  }) {
@@ -541,9 +542,12 @@ function TestimonialsStatsHeader({
541
542
  if (typeof testimonial.author === "string") return testimonial.author;
542
543
  return "";
543
544
  }, []);
544
- const getAvatarSrc = React.useCallback((testimonial) => {
545
- return testimonial.avatarSrc || testimonial.avatar?.src;
546
- }, []);
545
+ const getAvatarSrc = React.useCallback(
546
+ (testimonial) => {
547
+ return testimonial.avatarSrc || testimonial.avatar?.src;
548
+ },
549
+ []
550
+ );
547
551
  const getInitials = React.useCallback((name) => {
548
552
  return name.split(" ").map((n) => n[0]).join("");
549
553
  }, []);
@@ -624,7 +628,17 @@ function TestimonialsStatsHeader({
624
628
  })
625
629
  }
626
630
  );
627
- }, [testimonialsSlot, testimonialsGridClassName, testimonials, cardClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
631
+ }, [
632
+ testimonialsSlot,
633
+ testimonialsGridClassName,
634
+ testimonials,
635
+ cardClassName,
636
+ quoteClassName,
637
+ authorClassName,
638
+ getAuthorName,
639
+ getAvatarSrc,
640
+ getInitials
641
+ ]);
628
642
  return /* @__PURE__ */ jsxRuntime.jsxs(
629
643
  Section,
630
644
  {
@@ -633,6 +647,7 @@ function TestimonialsStatsHeader({
633
647
  pattern,
634
648
  patternOpacity,
635
649
  className,
650
+ containerClassName,
636
651
  children: [
637
652
  /* @__PURE__ */ jsxRuntime.jsxs(
638
653
  "div",
@@ -101,6 +101,10 @@ interface TestimonialsStatsHeaderProps {
101
101
  * Pattern overlay opacity (0-1)
102
102
  */
103
103
  patternOpacity?: number;
104
+ /**
105
+ * Additional CSS classes for the container
106
+ */
107
+ containerClassName?: string;
104
108
  }
105
109
  /**
106
110
  * TestimonialsStatsHeader - A testimonial section featuring a prominent statistics
@@ -131,6 +135,6 @@ interface TestimonialsStatsHeaderProps {
131
135
  * />
132
136
  * ```
133
137
  */
134
- declare function TestimonialsStatsHeader({ stats, statsSlot, testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, statsGridClassName, statItemClassName, testimonialsGridClassName, cardClassName, quoteClassName, authorClassName, background, spacing, pattern, patternOpacity, }: TestimonialsStatsHeaderProps): React.JSX.Element;
138
+ declare function TestimonialsStatsHeader({ stats, statsSlot, testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, statsGridClassName, statItemClassName, testimonialsGridClassName, cardClassName, quoteClassName, authorClassName, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsStatsHeaderProps): React.JSX.Element;
135
139
 
136
140
  export { type StatItem, TestimonialsStatsHeader, type TestimonialsStatsHeaderProps };
@@ -101,6 +101,10 @@ interface TestimonialsStatsHeaderProps {
101
101
  * Pattern overlay opacity (0-1)
102
102
  */
103
103
  patternOpacity?: number;
104
+ /**
105
+ * Additional CSS classes for the container
106
+ */
107
+ containerClassName?: string;
104
108
  }
105
109
  /**
106
110
  * TestimonialsStatsHeader - A testimonial section featuring a prominent statistics
@@ -131,6 +135,6 @@ interface TestimonialsStatsHeaderProps {
131
135
  * />
132
136
  * ```
133
137
  */
134
- declare function TestimonialsStatsHeader({ stats, statsSlot, testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, statsGridClassName, statItemClassName, testimonialsGridClassName, cardClassName, quoteClassName, authorClassName, background, spacing, pattern, patternOpacity, }: TestimonialsStatsHeaderProps): React.JSX.Element;
138
+ declare function TestimonialsStatsHeader({ stats, statsSlot, testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, statsGridClassName, statItemClassName, testimonialsGridClassName, cardClassName, quoteClassName, authorClassName, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsStatsHeaderProps): React.JSX.Element;
135
139
 
136
140
  export { type StatItem, TestimonialsStatsHeader, type TestimonialsStatsHeaderProps };
@@ -511,7 +511,8 @@ function TestimonialsStatsHeader({
511
511
  quoteClassName,
512
512
  authorClassName,
513
513
  background,
514
- spacing,
514
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
515
+ spacing = "xl",
515
516
  pattern,
516
517
  patternOpacity
517
518
  }) {
@@ -519,9 +520,12 @@ function TestimonialsStatsHeader({
519
520
  if (typeof testimonial.author === "string") return testimonial.author;
520
521
  return "";
521
522
  }, []);
522
- const getAvatarSrc = useCallback((testimonial) => {
523
- return testimonial.avatarSrc || testimonial.avatar?.src;
524
- }, []);
523
+ const getAvatarSrc = useCallback(
524
+ (testimonial) => {
525
+ return testimonial.avatarSrc || testimonial.avatar?.src;
526
+ },
527
+ []
528
+ );
525
529
  const getInitials = useCallback((name) => {
526
530
  return name.split(" ").map((n) => n[0]).join("");
527
531
  }, []);
@@ -602,7 +606,17 @@ function TestimonialsStatsHeader({
602
606
  })
603
607
  }
604
608
  );
605
- }, [testimonialsSlot, testimonialsGridClassName, testimonials, cardClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
609
+ }, [
610
+ testimonialsSlot,
611
+ testimonialsGridClassName,
612
+ testimonials,
613
+ cardClassName,
614
+ quoteClassName,
615
+ authorClassName,
616
+ getAuthorName,
617
+ getAvatarSrc,
618
+ getInitials
619
+ ]);
606
620
  return /* @__PURE__ */ jsxs(
607
621
  Section,
608
622
  {
@@ -611,6 +625,7 @@ function TestimonialsStatsHeader({
611
625
  pattern,
612
626
  patternOpacity,
613
627
  className,
628
+ containerClassName,
614
629
  children: [
615
630
  /* @__PURE__ */ jsxs(
616
631
  "div",
@@ -533,17 +533,24 @@ function TestimonialsWallCompact({
533
533
  authorClassName,
534
534
  quoteClassName,
535
535
  background,
536
- spacing,
536
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
537
+ spacing = "xl",
537
538
  pattern,
538
539
  patternOpacity
539
540
  }) {
540
- const getAuthorName = React.useCallback((testimonial) => {
541
- if (typeof testimonial.author === "string") return testimonial.author;
542
- return "";
543
- }, []);
544
- const getAvatarSrc = React.useCallback((testimonial) => {
545
- return testimonial.avatarSrc || testimonial.avatar?.src;
546
- }, []);
541
+ const getAuthorName = React.useCallback(
542
+ (testimonial) => {
543
+ if (typeof testimonial.author === "string") return testimonial.author;
544
+ return "";
545
+ },
546
+ []
547
+ );
548
+ const getAvatarSrc = React.useCallback(
549
+ (testimonial) => {
550
+ return testimonial.avatarSrc || testimonial.avatar?.src;
551
+ },
552
+ []
553
+ );
547
554
  const getInitials = React.useCallback((name) => {
548
555
  return name.split(" ").map((n) => n[0]).join("");
549
556
  }, []);
@@ -585,7 +592,7 @@ function TestimonialsWallCompact({
585
592
  ] }),
586
593
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
587
594
  testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-sm font-medium", children: testimonial.author }) : testimonial.author),
588
- testimonial.handle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs text-muted-foreground", children: testimonial.handle })
595
+ testimonial.handle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate text-xs ", children: testimonial.handle })
589
596
  ] })
590
597
  ] }),
591
598
  testimonial.badge && (typeof testimonial.badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: "shrink-0 text-xs", children: testimonial.badge }) : testimonial.badge)
@@ -600,7 +607,17 @@ function TestimonialsWallCompact({
600
607
  })
601
608
  }
602
609
  );
603
- }, [testimonialsSlot, gridClassName, testimonials, cardClassName, authorClassName, quoteClassName, getAuthorName, getAvatarSrc, getInitials]);
610
+ }, [
611
+ testimonialsSlot,
612
+ gridClassName,
613
+ testimonials,
614
+ cardClassName,
615
+ authorClassName,
616
+ quoteClassName,
617
+ getAuthorName,
618
+ getAvatarSrc,
619
+ getInitials
620
+ ]);
604
621
  return /* @__PURE__ */ jsxRuntime.jsxs(
605
622
  Section,
606
623
  {
@@ -609,6 +626,7 @@ function TestimonialsWallCompact({
609
626
  pattern,
610
627
  patternOpacity,
611
628
  className,
629
+ containerClassName,
612
630
  children: [
613
631
  /* @__PURE__ */ jsxRuntime.jsxs(
614
632
  "div",
@@ -625,16 +643,7 @@ function TestimonialsWallCompact({
625
643
  children: heading
626
644
  }
627
645
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
628
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
629
- "p",
630
- {
631
- className: cn(
632
- "mt-4 text-lg text-muted-foreground",
633
- descriptionClassName
634
- ),
635
- children: description
636
- }
637
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
646
+ 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 }))
638
647
  ]
639
648
  }
640
649
  ),
@@ -85,6 +85,10 @@ interface TestimonialsWallCompactProps {
85
85
  * Pattern overlay opacity (0-1)
86
86
  */
87
87
  patternOpacity?: number;
88
+ /**
89
+ * Additional CSS classes for the container
90
+ */
91
+ containerClassName?: string;
88
92
  }
89
93
  /**
90
94
  * TestimonialsWallCompact - A dense wall of compact testimonial cards arranged in
@@ -112,6 +116,6 @@ interface TestimonialsWallCompactProps {
112
116
  * />
113
117
  * ```
114
118
  */
115
- declare function TestimonialsWallCompact({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, authorClassName, quoteClassName, background, spacing, pattern, patternOpacity, }: TestimonialsWallCompactProps): React.JSX.Element;
119
+ declare function TestimonialsWallCompact({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, authorClassName, quoteClassName, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsWallCompactProps): React.JSX.Element;
116
120
 
117
121
  export { TestimonialsWallCompact, type TestimonialsWallCompactProps, type WallTestimonialItem };
@@ -85,6 +85,10 @@ interface TestimonialsWallCompactProps {
85
85
  * Pattern overlay opacity (0-1)
86
86
  */
87
87
  patternOpacity?: number;
88
+ /**
89
+ * Additional CSS classes for the container
90
+ */
91
+ containerClassName?: string;
88
92
  }
89
93
  /**
90
94
  * TestimonialsWallCompact - A dense wall of compact testimonial cards arranged in
@@ -112,6 +116,6 @@ interface TestimonialsWallCompactProps {
112
116
  * />
113
117
  * ```
114
118
  */
115
- declare function TestimonialsWallCompact({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, authorClassName, quoteClassName, background, spacing, pattern, patternOpacity, }: TestimonialsWallCompactProps): React.JSX.Element;
119
+ declare function TestimonialsWallCompact({ testimonials, testimonialsSlot, heading, description, className, headerClassName, headingClassName, descriptionClassName, gridClassName, cardClassName, authorClassName, quoteClassName, background, containerClassName, spacing, pattern, patternOpacity, }: TestimonialsWallCompactProps): React.JSX.Element;
116
120
 
117
121
  export { TestimonialsWallCompact, type TestimonialsWallCompactProps, type WallTestimonialItem };
@@ -508,17 +508,24 @@ function TestimonialsWallCompact({
508
508
  authorClassName,
509
509
  quoteClassName,
510
510
  background,
511
- spacing,
511
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
512
+ spacing = "xl",
512
513
  pattern,
513
514
  patternOpacity
514
515
  }) {
515
- const getAuthorName = useCallback((testimonial) => {
516
- if (typeof testimonial.author === "string") return testimonial.author;
517
- return "";
518
- }, []);
519
- const getAvatarSrc = useCallback((testimonial) => {
520
- return testimonial.avatarSrc || testimonial.avatar?.src;
521
- }, []);
516
+ const getAuthorName = useCallback(
517
+ (testimonial) => {
518
+ if (typeof testimonial.author === "string") return testimonial.author;
519
+ return "";
520
+ },
521
+ []
522
+ );
523
+ const getAvatarSrc = useCallback(
524
+ (testimonial) => {
525
+ return testimonial.avatarSrc || testimonial.avatar?.src;
526
+ },
527
+ []
528
+ );
522
529
  const getInitials = useCallback((name) => {
523
530
  return name.split(" ").map((n) => n[0]).join("");
524
531
  }, []);
@@ -560,7 +567,7 @@ function TestimonialsWallCompact({
560
567
  ] }),
561
568
  /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
562
569
  testimonial.author && (typeof testimonial.author === "string" ? /* @__PURE__ */ jsx("p", { className: "truncate text-sm font-medium", children: testimonial.author }) : testimonial.author),
563
- testimonial.handle && /* @__PURE__ */ jsx("p", { className: "truncate text-xs text-muted-foreground", children: testimonial.handle })
570
+ testimonial.handle && /* @__PURE__ */ jsx("p", { className: "truncate text-xs ", children: testimonial.handle })
564
571
  ] })
565
572
  ] }),
566
573
  testimonial.badge && (typeof testimonial.badge === "string" ? /* @__PURE__ */ jsx(Badge, { variant: "secondary", className: "shrink-0 text-xs", children: testimonial.badge }) : testimonial.badge)
@@ -575,7 +582,17 @@ function TestimonialsWallCompact({
575
582
  })
576
583
  }
577
584
  );
578
- }, [testimonialsSlot, gridClassName, testimonials, cardClassName, authorClassName, quoteClassName, getAuthorName, getAvatarSrc, getInitials]);
585
+ }, [
586
+ testimonialsSlot,
587
+ gridClassName,
588
+ testimonials,
589
+ cardClassName,
590
+ authorClassName,
591
+ quoteClassName,
592
+ getAuthorName,
593
+ getAvatarSrc,
594
+ getInitials
595
+ ]);
579
596
  return /* @__PURE__ */ jsxs(
580
597
  Section,
581
598
  {
@@ -584,6 +601,7 @@ function TestimonialsWallCompact({
584
601
  pattern,
585
602
  patternOpacity,
586
603
  className,
604
+ containerClassName,
587
605
  children: [
588
606
  /* @__PURE__ */ jsxs(
589
607
  "div",
@@ -600,16 +618,7 @@ function TestimonialsWallCompact({
600
618
  children: heading
601
619
  }
602
620
  ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
603
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
604
- "p",
605
- {
606
- className: cn(
607
- "mt-4 text-lg text-muted-foreground",
608
- descriptionClassName
609
- ),
610
- children: description
611
- }
612
- ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
621
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
613
622
  ]
614
623
  }
615
624
  ),
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "2.8.4",
3
+ "version": "2.8.5",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",