@opensite/ui 1.6.7 → 1.6.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 (69) hide show
  1. package/dist/hero-architecture-fullscreen.cjs +7 -54
  2. package/dist/hero-architecture-fullscreen.js +7 -54
  3. package/dist/hero-badge-shadow-overlay.cjs +42 -45
  4. package/dist/hero-badge-shadow-overlay.d.cts +14 -2
  5. package/dist/hero-badge-shadow-overlay.d.ts +14 -2
  6. package/dist/hero-badge-shadow-overlay.js +42 -45
  7. package/dist/hero-billing-platform-logos.cjs +5 -9
  8. package/dist/hero-billing-platform-logos.d.cts +1 -5
  9. package/dist/hero-billing-platform-logos.d.ts +1 -5
  10. package/dist/hero-billing-platform-logos.js +5 -9
  11. package/dist/hero-centered-gradient-cta.cjs +12 -68
  12. package/dist/hero-centered-gradient-cta.js +12 -68
  13. package/dist/hero-conversion-video-play.cjs +13 -64
  14. package/dist/hero-conversion-video-play.js +13 -64
  15. package/dist/hero-customer-support-layered.cjs +1 -1
  16. package/dist/hero-customer-support-layered.js +1 -1
  17. package/dist/hero-dashed-border-features.cjs +8 -71
  18. package/dist/hero-dashed-border-features.js +8 -71
  19. package/dist/hero-design-showcase-logos.cjs +7 -32
  20. package/dist/hero-design-showcase-logos.js +7 -32
  21. package/dist/hero-floating-images.cjs +1 -1
  22. package/dist/hero-floating-images.js +1 -1
  23. package/dist/hero-grid-pattern-solutions.cjs +7 -66
  24. package/dist/hero-grid-pattern-solutions.js +7 -66
  25. package/dist/hero-hiring-animated-text.cjs +10 -5
  26. package/dist/hero-hiring-animated-text.js +10 -5
  27. package/dist/hero-marketplace-scattered-images.cjs +7 -32
  28. package/dist/hero-marketplace-scattered-images.js +7 -32
  29. package/dist/hero-mentorship-video-split.cjs +11 -14
  30. package/dist/hero-mentorship-video-split.js +11 -14
  31. package/dist/hero-mobile-app-download.cjs +2 -2
  32. package/dist/hero-mobile-app-download.d.cts +1 -1
  33. package/dist/hero-mobile-app-download.d.ts +1 -1
  34. package/dist/hero-mobile-app-download.js +2 -2
  35. package/dist/hero-premium-split-avatars.cjs +11 -9
  36. package/dist/hero-premium-split-avatars.d.cts +5 -1
  37. package/dist/hero-premium-split-avatars.d.ts +5 -1
  38. package/dist/hero-premium-split-avatars.js +11 -9
  39. package/dist/hero-presentation-platform-video.cjs +12 -9
  40. package/dist/hero-presentation-platform-video.d.cts +5 -1
  41. package/dist/hero-presentation-platform-video.d.ts +5 -1
  42. package/dist/hero-presentation-platform-video.js +12 -9
  43. package/dist/hero-productivity-launcher-video.cjs +11 -35
  44. package/dist/hero-productivity-launcher-video.js +11 -35
  45. package/dist/hero-spiral-pattern-cards.cjs +49 -92
  46. package/dist/hero-spiral-pattern-cards.d.cts +20 -3
  47. package/dist/hero-spiral-pattern-cards.d.ts +20 -3
  48. package/dist/hero-spiral-pattern-cards.js +49 -92
  49. package/dist/hero-split-spiral-shapes.cjs +43 -90
  50. package/dist/hero-split-spiral-shapes.d.cts +17 -4
  51. package/dist/hero-split-spiral-shapes.d.ts +17 -4
  52. package/dist/hero-split-spiral-shapes.js +43 -90
  53. package/dist/hero-startup-launch-cta.cjs +2 -2
  54. package/dist/hero-startup-launch-cta.js +2 -2
  55. package/dist/hero-task-timer-animated.cjs +64 -156
  56. package/dist/hero-task-timer-animated.d.cts +13 -1
  57. package/dist/hero-task-timer-animated.d.ts +13 -1
  58. package/dist/hero-task-timer-animated.js +64 -156
  59. package/dist/hero-testimonial-image-grid.cjs +10 -38
  60. package/dist/hero-testimonial-image-grid.js +10 -38
  61. package/dist/hero-therapy-testimonial-grid.cjs +11 -40
  62. package/dist/hero-therapy-testimonial-grid.js +11 -40
  63. package/dist/hero-video-background-dark.cjs +10 -34
  64. package/dist/hero-video-background-dark.d.cts +5 -1
  65. package/dist/hero-video-background-dark.d.ts +5 -1
  66. package/dist/hero-video-background-dark.js +10 -34
  67. package/dist/registry.cjs +353 -302
  68. package/dist/registry.js +353 -302
  69. package/package.json +1 -1
@@ -36,32 +36,6 @@ var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatio
36
36
  function cn(...inputs) {
37
37
  return tailwindMerge.twMerge(clsx.clsx(inputs));
38
38
  }
39
- function getNestedCardBg(parentBg, variant = "muted", options) {
40
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
41
- if (isDark) {
42
- switch (variant) {
43
- case "muted":
44
- return "bg-background";
45
- case "card":
46
- return "bg-card";
47
- case "accent":
48
- return "bg-accent";
49
- case "subtle":
50
- return "bg-background/50";
51
- }
52
- } else {
53
- switch (variant) {
54
- case "muted":
55
- return "bg-muted";
56
- case "card":
57
- return "bg-card";
58
- case "accent":
59
- return "bg-accent";
60
- case "subtle":
61
- return "bg-muted/50";
62
- }
63
- }
64
- }
65
39
  function normalizePhoneNumber(input) {
66
40
  const trimmed = input.trim();
67
41
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -908,21 +882,18 @@ Section.displayName = "Section";
908
882
  function HeroTestimonialImageGrid({
909
883
  heading,
910
884
  description,
911
- button = {
912
- text: "Get Started",
913
- url: "#"
914
- },
885
+ button,
915
886
  buttonSlot,
916
887
  testimonial,
917
888
  testimonialSlot,
918
889
  gridImages,
919
890
  imagesSlot,
920
891
  background,
921
- spacing,
892
+ spacing = "py-32 md:py-32",
922
893
  pattern,
923
894
  patternOpacity,
924
895
  className,
925
- containerClassName,
896
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
926
897
  headingClassName,
927
898
  descriptionClassName,
928
899
  optixFlowConfig
@@ -968,7 +939,7 @@ function HeroTestimonialImageGrid({
968
939
  if (!gridImages || gridImages.length < 4) return null;
969
940
  const images = gridImages;
970
941
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-200", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]", children: [
971
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsxRuntime.jsx(
942
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(
972
943
  img.Img,
973
944
  {
974
945
  src: images[0].src,
@@ -977,7 +948,7 @@ function HeroTestimonialImageGrid({
977
948
  optixFlowConfig
978
949
  }
979
950
  ) }),
980
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
951
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
981
952
  img.Img,
982
953
  {
983
954
  src: images[1].src,
@@ -986,7 +957,7 @@ function HeroTestimonialImageGrid({
986
957
  optixFlowConfig
987
958
  }
988
959
  ) }) }) }),
989
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
960
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
990
961
  img.Img,
991
962
  {
992
963
  src: images[2].src,
@@ -995,7 +966,7 @@ function HeroTestimonialImageGrid({
995
966
  optixFlowConfig
996
967
  }
997
968
  ) }) }) }),
998
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
969
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
999
970
  img.Img,
1000
971
  {
1001
972
  src: images[3].src,
@@ -1013,8 +984,9 @@ function HeroTestimonialImageGrid({
1013
984
  spacing,
1014
985
  pattern,
1015
986
  patternOpacity,
1016
- className: cn("py-12 md:py-20", className),
1017
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
987
+ className: cn("relative flex items-center justify-center py-12 md:py-20", className),
988
+ containerClassName,
989
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
1018
990
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
1019
991
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
1020
992
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading })),
@@ -13,32 +13,6 @@ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
13
13
  function cn(...inputs) {
14
14
  return twMerge(clsx(inputs));
15
15
  }
16
- function getNestedCardBg(parentBg, variant = "muted", options) {
17
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
18
- if (isDark) {
19
- switch (variant) {
20
- case "muted":
21
- return "bg-background";
22
- case "card":
23
- return "bg-card";
24
- case "accent":
25
- return "bg-accent";
26
- case "subtle":
27
- return "bg-background/50";
28
- }
29
- } else {
30
- switch (variant) {
31
- case "muted":
32
- return "bg-muted";
33
- case "card":
34
- return "bg-card";
35
- case "accent":
36
- return "bg-accent";
37
- case "subtle":
38
- return "bg-muted/50";
39
- }
40
- }
41
- }
42
16
  function normalizePhoneNumber(input) {
43
17
  const trimmed = input.trim();
44
18
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -885,21 +859,18 @@ Section.displayName = "Section";
885
859
  function HeroTestimonialImageGrid({
886
860
  heading,
887
861
  description,
888
- button = {
889
- text: "Get Started",
890
- url: "#"
891
- },
862
+ button,
892
863
  buttonSlot,
893
864
  testimonial,
894
865
  testimonialSlot,
895
866
  gridImages,
896
867
  imagesSlot,
897
868
  background,
898
- spacing,
869
+ spacing = "py-32 md:py-32",
899
870
  pattern,
900
871
  patternOpacity,
901
872
  className,
902
- containerClassName,
873
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
903
874
  headingClassName,
904
875
  descriptionClassName,
905
876
  optixFlowConfig
@@ -945,7 +916,7 @@ function HeroTestimonialImageGrid({
945
916
  if (!gridImages || gridImages.length < 4) return null;
946
917
  const images = gridImages;
947
918
  return /* @__PURE__ */ jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsx("div", { className: "w-full max-w-200", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxs("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]", children: [
948
- /* @__PURE__ */ jsx("div", { className: cn("overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsx(
919
+ /* @__PURE__ */ jsx("div", { className: "overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx(
949
920
  Img,
950
921
  {
951
922
  src: images[0].src,
@@ -954,7 +925,7 @@ function HeroTestimonialImageGrid({
954
925
  optixFlowConfig
955
926
  }
956
927
  ) }),
957
- /* @__PURE__ */ jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsx(
928
+ /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsx(
958
929
  Img,
959
930
  {
960
931
  src: images[1].src,
@@ -963,7 +934,7 @@ function HeroTestimonialImageGrid({
963
934
  optixFlowConfig
964
935
  }
965
936
  ) }) }) }),
966
- /* @__PURE__ */ jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsx(
937
+ /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsx(
967
938
  Img,
968
939
  {
969
940
  src: images[2].src,
@@ -972,7 +943,7 @@ function HeroTestimonialImageGrid({
972
943
  optixFlowConfig
973
944
  }
974
945
  ) }) }) }),
975
- /* @__PURE__ */ jsx("div", { className: cn("relative overflow-hidden rounded-[5.2%] border border-muted", getNestedCardBg(background)), children: /* @__PURE__ */ jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsx(
946
+ /* @__PURE__ */ jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsx(
976
947
  Img,
977
948
  {
978
949
  src: images[3].src,
@@ -990,8 +961,9 @@ function HeroTestimonialImageGrid({
990
961
  spacing,
991
962
  pattern,
992
963
  patternOpacity,
993
- className: cn("py-12 md:py-20", className),
994
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
964
+ className: cn("relative flex items-center justify-center py-12 md:py-20", className),
965
+ containerClassName,
966
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
995
967
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
996
968
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
997
969
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading })),
@@ -32,36 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getNestedCardBg(parentBg, variant = "muted", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "muted":
40
- return "bg-background";
41
- case "card":
42
- return "bg-card";
43
- case "accent":
44
- return "bg-accent";
45
- case "subtle":
46
- return "bg-background/50";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "muted":
51
- return "bg-muted";
52
- case "card":
53
- return "bg-card";
54
- case "accent":
55
- return "bg-accent";
56
- case "subtle":
57
- return "bg-muted/50";
58
- }
59
- }
60
- }
61
- function getNestedCardTextColor(parentBg, options) {
62
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
63
- return isDark ? "text-foreground" : "";
64
- }
65
35
  function normalizePhoneNumber(input) {
66
36
  const trimmed = input.trim();
67
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -865,11 +835,11 @@ function HeroTherapyTestimonialGrid({
865
835
  testimonial,
866
836
  testimonialSlot,
867
837
  background,
868
- spacing,
838
+ spacing = "py-32 md:py-32",
869
839
  pattern,
870
840
  patternOpacity,
871
841
  className,
872
- containerClassName,
842
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
873
843
  headerClassName,
874
844
  headingClassName,
875
845
  descriptionClassName,
@@ -899,11 +869,7 @@ function HeroTherapyTestimonialGrid({
899
869
  const renderTestimonial = React.useMemo(() => {
900
870
  if (testimonialSlot) return testimonialSlot;
901
871
  if (!testimonial) return null;
902
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
903
- "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8",
904
- getNestedCardBg(background),
905
- getNestedCardTextColor(background)
906
- ), children: [
872
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8", children: [
907
873
  testimonial.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-xl md:h-30 md:w-30", children: /* @__PURE__ */ jsxRuntime.jsx(
908
874
  img.Img,
909
875
  {
@@ -946,7 +912,7 @@ function HeroTherapyTestimonialGrid({
946
912
  }
947
913
  ) }) }),
948
914
  renderTestimonial,
949
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-full w-full overflow-hidden rounded-2xl", getNestedCardBg(background)), children: /* @__PURE__ */ jsxRuntime.jsx(
915
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full w-full overflow-hidden rounded-2xl bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(
950
916
  img.Img,
951
917
  {
952
918
  src: images[2].src,
@@ -960,8 +926,13 @@ function HeroTherapyTestimonialGrid({
960
926
  return /* @__PURE__ */ jsxRuntime.jsx(
961
927
  Section,
962
928
  {
963
- className: cn("bg-background py-12 font-sans md:py-20", className),
964
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
929
+ background,
930
+ spacing,
931
+ pattern,
932
+ patternOpacity,
933
+ className: cn("relative flex items-center justify-center bg-background py-12 font-sans md:py-20", className),
934
+ containerClassName,
935
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
965
936
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6", headerClassName), children: [
966
937
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading })),
967
938
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
@@ -11,36 +11,6 @@ import { Img } from '@page-speed/img';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getNestedCardBg(parentBg, variant = "muted", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "muted":
19
- return "bg-background";
20
- case "card":
21
- return "bg-card";
22
- case "accent":
23
- return "bg-accent";
24
- case "subtle":
25
- return "bg-background/50";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "muted":
30
- return "bg-muted";
31
- case "card":
32
- return "bg-card";
33
- case "accent":
34
- return "bg-accent";
35
- case "subtle":
36
- return "bg-muted/50";
37
- }
38
- }
39
- }
40
- function getNestedCardTextColor(parentBg, options) {
41
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
- return isDark ? "text-foreground" : "";
43
- }
44
14
  function normalizePhoneNumber(input) {
45
15
  const trimmed = input.trim();
46
16
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -844,11 +814,11 @@ function HeroTherapyTestimonialGrid({
844
814
  testimonial,
845
815
  testimonialSlot,
846
816
  background,
847
- spacing,
817
+ spacing = "py-32 md:py-32",
848
818
  pattern,
849
819
  patternOpacity,
850
820
  className,
851
- containerClassName,
821
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
852
822
  headerClassName,
853
823
  headingClassName,
854
824
  descriptionClassName,
@@ -878,11 +848,7 @@ function HeroTherapyTestimonialGrid({
878
848
  const renderTestimonial = useMemo(() => {
879
849
  if (testimonialSlot) return testimonialSlot;
880
850
  if (!testimonial) return null;
881
- return /* @__PURE__ */ jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxs("div", { className: cn(
882
- "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8",
883
- getNestedCardBg(background),
884
- getNestedCardTextColor(background)
885
- ), children: [
851
+ return /* @__PURE__ */ jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8", children: [
886
852
  testimonial.avatar && /* @__PURE__ */ jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-xl md:h-30 md:w-30", children: /* @__PURE__ */ jsx(
887
853
  Img,
888
854
  {
@@ -925,7 +891,7 @@ function HeroTherapyTestimonialGrid({
925
891
  }
926
892
  ) }) }),
927
893
  renderTestimonial,
928
- /* @__PURE__ */ jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsx("div", { className: cn("h-full w-full overflow-hidden rounded-2xl", getNestedCardBg(background)), children: /* @__PURE__ */ jsx(
894
+ /* @__PURE__ */ jsx("div", { className: "row-[4/5] md:col-[2/3] md:row-[2/3]", children: /* @__PURE__ */ jsx("div", { className: "h-full w-full overflow-hidden rounded-2xl bg-card", children: /* @__PURE__ */ jsx(
929
895
  Img,
930
896
  {
931
897
  src: images[2].src,
@@ -939,8 +905,13 @@ function HeroTherapyTestimonialGrid({
939
905
  return /* @__PURE__ */ jsx(
940
906
  Section,
941
907
  {
942
- className: cn("bg-background py-12 font-sans md:py-20", className),
943
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
908
+ background,
909
+ spacing,
910
+ pattern,
911
+ patternOpacity,
912
+ className: cn("relative flex items-center justify-center bg-background py-12 font-sans md:py-20", className),
913
+ containerClassName,
914
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
944
915
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6", headerClassName), children: [
945
916
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading })),
946
917
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
@@ -31,32 +31,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
31
  function cn(...inputs) {
32
32
  return tailwindMerge.twMerge(clsx.clsx(inputs));
33
33
  }
34
- function getTextColor(parentBg, variant = "default", options) {
35
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
36
- if (isDark) {
37
- switch (variant) {
38
- case "default":
39
- return "text-foreground";
40
- case "muted":
41
- return "text-foreground/80";
42
- case "subtle":
43
- return "text-foreground/60";
44
- case "accent":
45
- return "text-accent-foreground";
46
- }
47
- } else {
48
- switch (variant) {
49
- case "default":
50
- return "text-foreground";
51
- case "muted":
52
- return "text-muted-foreground";
53
- case "subtle":
54
- return "text-muted-foreground/70";
55
- case "accent":
56
- return "text-primary";
57
- }
58
- }
59
- }
60
34
  function normalizePhoneNumber(input) {
61
35
  const trimmed = input.trim();
62
36
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -859,10 +833,11 @@ function HeroVideoBackgroundDark({
859
833
  videoSrc,
860
834
  videoSlot,
861
835
  background,
862
- spacing,
836
+ spacing = "py-32 md:py-32",
863
837
  pattern,
864
838
  patternOpacity,
865
839
  className,
840
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
866
841
  contentClassName,
867
842
  headingClassName,
868
843
  descriptionClassName
@@ -902,23 +877,24 @@ function HeroVideoBackgroundDark({
902
877
  }
903
878
  );
904
879
  }, [videoSlot, videoSrc]);
905
- return /* @__PURE__ */ jsxRuntime.jsxs(
880
+ return /* @__PURE__ */ jsxRuntime.jsx(
906
881
  Section,
907
882
  {
908
883
  background,
909
884
  spacing,
910
885
  pattern,
911
886
  patternOpacity,
912
- className: cn(className),
913
- children: [
914
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative z-10 container mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
915
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-xs", getTextColor(background, "muted")), children: badgeText }) : badgeText),
887
+ className: cn("relative flex items-center justify-center", className),
888
+ containerClassName,
889
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
890
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative z-10 mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
891
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: badgeText }) : badgeText),
916
892
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
917
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
893
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
918
894
  renderActions
919
895
  ] }),
920
896
  renderVideo
921
- ]
897
+ ] })
922
898
  }
923
899
  );
924
900
  }
@@ -54,6 +54,10 @@ interface HeroVideoBackgroundDarkProps {
54
54
  * Additional CSS classes for the section
55
55
  */
56
56
  className?: string;
57
+ /**
58
+ * Additional CSS classes for the container
59
+ */
60
+ containerClassName?: string;
57
61
  /**
58
62
  * Additional CSS classes for the content area
59
63
  */
@@ -67,6 +71,6 @@ interface HeroVideoBackgroundDarkProps {
67
71
  */
68
72
  descriptionClassName?: string;
69
73
  }
70
- declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
74
+ declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
71
75
 
72
76
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -54,6 +54,10 @@ interface HeroVideoBackgroundDarkProps {
54
54
  * Additional CSS classes for the section
55
55
  */
56
56
  className?: string;
57
+ /**
58
+ * Additional CSS classes for the container
59
+ */
60
+ containerClassName?: string;
57
61
  /**
58
62
  * Additional CSS classes for the content area
59
63
  */
@@ -67,6 +71,6 @@ interface HeroVideoBackgroundDarkProps {
67
71
  */
68
72
  descriptionClassName?: string;
69
73
  }
70
- declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
74
+ declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
71
75
 
72
76
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -10,32 +10,6 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
10
10
  function cn(...inputs) {
11
11
  return twMerge(clsx(inputs));
12
12
  }
13
- function getTextColor(parentBg, variant = "default", options) {
14
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
15
- if (isDark) {
16
- switch (variant) {
17
- case "default":
18
- return "text-foreground";
19
- case "muted":
20
- return "text-foreground/80";
21
- case "subtle":
22
- return "text-foreground/60";
23
- case "accent":
24
- return "text-accent-foreground";
25
- }
26
- } else {
27
- switch (variant) {
28
- case "default":
29
- return "text-foreground";
30
- case "muted":
31
- return "text-muted-foreground";
32
- case "subtle":
33
- return "text-muted-foreground/70";
34
- case "accent":
35
- return "text-primary";
36
- }
37
- }
38
- }
39
13
  function normalizePhoneNumber(input) {
40
14
  const trimmed = input.trim();
41
15
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -838,10 +812,11 @@ function HeroVideoBackgroundDark({
838
812
  videoSrc,
839
813
  videoSlot,
840
814
  background,
841
- spacing,
815
+ spacing = "py-32 md:py-32",
842
816
  pattern,
843
817
  patternOpacity,
844
818
  className,
819
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
845
820
  contentClassName,
846
821
  headingClassName,
847
822
  descriptionClassName
@@ -881,23 +856,24 @@ function HeroVideoBackgroundDark({
881
856
  }
882
857
  );
883
858
  }, [videoSlot, videoSrc]);
884
- return /* @__PURE__ */ jsxs(
859
+ return /* @__PURE__ */ jsx(
885
860
  Section,
886
861
  {
887
862
  background,
888
863
  spacing,
889
864
  pattern,
890
865
  patternOpacity,
891
- className: cn(className),
892
- children: [
893
- /* @__PURE__ */ jsxs("div", { className: cn("relative z-10 container mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
894
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-xs", getTextColor(background, "muted")), children: badgeText }) : badgeText),
866
+ className: cn("relative flex items-center justify-center", className),
867
+ containerClassName,
868
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
869
+ /* @__PURE__ */ jsxs("div", { className: cn("relative z-10 mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
870
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("span", { className: "text-xs text-muted-foreground", children: badgeText }) : badgeText),
895
871
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
896
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
872
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
897
873
  renderActions
898
874
  ] }),
899
875
  renderVideo
900
- ]
876
+ ] })
901
877
  }
902
878
  );
903
879
  }