@opensite/ui 2.0.2 → 2.0.4

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 (75) hide show
  1. package/dist/hero-ai-powered-carousel.cjs +152 -77
  2. package/dist/hero-ai-powered-carousel.d.cts +5 -13
  3. package/dist/hero-ai-powered-carousel.d.ts +5 -13
  4. package/dist/hero-ai-powered-carousel.js +152 -77
  5. package/dist/hero-announcement-badge.cjs +679 -665
  6. package/dist/hero-announcement-badge.d.cts +1 -1
  7. package/dist/hero-announcement-badge.d.ts +1 -1
  8. package/dist/hero-announcement-badge.js +689 -675
  9. package/dist/hero-badge-shadow-overlay.cjs +79 -32
  10. package/dist/hero-badge-shadow-overlay.js +80 -33
  11. package/dist/hero-centered-image-grid.cjs +106 -95
  12. package/dist/hero-centered-image-grid.d.cts +2 -14
  13. package/dist/hero-centered-image-grid.d.ts +2 -14
  14. package/dist/hero-centered-image-grid.js +106 -95
  15. package/dist/hero-community-survey-cta.cjs +149 -58
  16. package/dist/hero-community-survey-cta.d.cts +1 -1
  17. package/dist/hero-community-survey-cta.d.ts +1 -1
  18. package/dist/hero-community-survey-cta.js +149 -58
  19. package/dist/hero-design-carousel-portfolio.cjs +158 -66
  20. package/dist/hero-design-carousel-portfolio.d.cts +7 -11
  21. package/dist/hero-design-carousel-portfolio.d.ts +7 -11
  22. package/dist/hero-design-carousel-portfolio.js +158 -66
  23. package/dist/hero-event-registration.cjs +765 -718
  24. package/dist/hero-event-registration.js +761 -714
  25. package/dist/hero-fullscreen-background-image.cjs +746 -649
  26. package/dist/hero-fullscreen-background-image.d.cts +12 -4
  27. package/dist/hero-fullscreen-background-image.d.ts +12 -4
  28. package/dist/hero-fullscreen-background-image.js +746 -649
  29. package/dist/hero-fullscreen-logo-cta.cjs +89 -31
  30. package/dist/hero-fullscreen-logo-cta.js +89 -31
  31. package/dist/hero-gradient-avatars-rating.cjs +847 -816
  32. package/dist/hero-gradient-avatars-rating.d.cts +1 -13
  33. package/dist/hero-gradient-avatars-rating.d.ts +1 -13
  34. package/dist/hero-gradient-avatars-rating.js +844 -813
  35. package/dist/hero-gradient-client-focused.cjs +690 -629
  36. package/dist/hero-gradient-client-focused.d.cts +1 -1
  37. package/dist/hero-gradient-client-focused.d.ts +1 -1
  38. package/dist/hero-gradient-client-focused.js +689 -628
  39. package/dist/hero-grid-pattern-efficiency.cjs +59 -47
  40. package/dist/hero-grid-pattern-efficiency.d.cts +1 -8
  41. package/dist/hero-grid-pattern-efficiency.d.ts +1 -8
  42. package/dist/hero-grid-pattern-efficiency.js +59 -47
  43. package/dist/hero-logo-centered-screenshot.cjs +1 -1
  44. package/dist/hero-logo-centered-screenshot.js +1 -1
  45. package/dist/hero-marketplace-scattered-images.cjs +2 -6
  46. package/dist/hero-marketplace-scattered-images.d.cts +1 -4
  47. package/dist/hero-marketplace-scattered-images.d.ts +1 -4
  48. package/dist/hero-marketplace-scattered-images.js +2 -6
  49. package/dist/hero-pattern-logo-tech-stack.cjs +1 -1
  50. package/dist/hero-pattern-logo-tech-stack.js +1 -1
  51. package/dist/hero-platform-features-grid.cjs +5 -5
  52. package/dist/hero-platform-features-grid.js +5 -5
  53. package/dist/hero-simple-centered-image.cjs +140 -44
  54. package/dist/hero-simple-centered-image.d.cts +1 -1
  55. package/dist/hero-simple-centered-image.d.ts +1 -1
  56. package/dist/hero-simple-centered-image.js +140 -44
  57. package/dist/hero-spiral-pattern-cards.cjs +857 -809
  58. package/dist/hero-spiral-pattern-cards.d.cts +5 -1
  59. package/dist/hero-spiral-pattern-cards.d.ts +5 -1
  60. package/dist/hero-spiral-pattern-cards.js +856 -808
  61. package/dist/hero-split-geometric-shapes.cjs +754 -723
  62. package/dist/hero-split-geometric-shapes.d.cts +5 -1
  63. package/dist/hero-split-geometric-shapes.d.ts +5 -1
  64. package/dist/hero-split-geometric-shapes.js +748 -717
  65. package/dist/hero-task-timer-animated.cjs +698 -650
  66. package/dist/hero-task-timer-animated.d.cts +5 -1
  67. package/dist/hero-task-timer-animated.d.ts +5 -1
  68. package/dist/hero-task-timer-animated.js +697 -649
  69. package/dist/hero-ui-library-showcase.cjs +734 -719
  70. package/dist/hero-ui-library-showcase.d.cts +5 -1
  71. package/dist/hero-ui-library-showcase.d.ts +5 -1
  72. package/dist/hero-ui-library-showcase.js +732 -717
  73. package/dist/registry.cjs +1035 -788
  74. package/dist/registry.js +1035 -788
  75. package/package.json +1 -1
@@ -11,32 +11,6 @@ import { Img } from '@page-speed/img';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getTextColor(parentBg, variant = "default", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "default":
19
- return "text-foreground";
20
- case "muted":
21
- return "text-foreground/80";
22
- case "subtle":
23
- return "text-foreground/60";
24
- case "accent":
25
- return "text-accent-foreground";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "default":
30
- return "text-foreground";
31
- case "muted":
32
- return "text-muted-foreground";
33
- case "subtle":
34
- return "text-muted-foreground/70";
35
- case "accent":
36
- return "text-primary";
37
- }
38
- }
39
- }
40
14
  function normalizePhoneNumber(input) {
41
15
  const trimmed = input.trim();
42
16
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -838,27 +812,31 @@ function HeroCenteredImageGrid({
838
812
  gridImages,
839
813
  gridImagesSlot,
840
814
  imageOverlayAction,
841
- logos,
842
- logosSlot,
843
815
  background,
844
- spacing,
845
816
  pattern,
846
817
  patternOpacity,
847
818
  className,
848
- containerClassName,
819
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
820
+ spacing = "xl",
849
821
  contentClassName,
850
822
  headingClassName,
851
823
  descriptionClassName,
852
824
  actionsClassName,
853
825
  imageGridClassName,
854
- logosClassName,
855
826
  optixFlowConfig
856
827
  }) {
857
828
  const renderActions = useMemo(() => {
858
829
  if (actionsSlot) return actionsSlot;
859
830
  if (!actions || actions.length === 0) return null;
860
831
  return actions.map((action, index) => {
861
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
832
+ const {
833
+ label,
834
+ icon,
835
+ iconAfter,
836
+ children,
837
+ className: actionClassName,
838
+ ...pressableProps
839
+ } = action;
862
840
  return /* @__PURE__ */ jsx(
863
841
  Pressable,
864
842
  {
@@ -877,38 +855,20 @@ function HeroCenteredImageGrid({
877
855
  }, [actionsSlot, actions]);
878
856
  const renderImageOverlayAction = useMemo(() => {
879
857
  if (!imageOverlayAction) return null;
880
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = imageOverlayAction;
881
- return /* @__PURE__ */ jsx(
882
- Pressable,
883
- {
884
- asButton: true,
885
- className: actionClassName,
886
- ...pressableProps,
887
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
888
- icon,
889
- label,
890
- iconAfter
891
- ] })
892
- }
893
- );
858
+ const {
859
+ label,
860
+ icon,
861
+ iconAfter,
862
+ children,
863
+ className: actionClassName,
864
+ ...pressableProps
865
+ } = imageOverlayAction;
866
+ return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
867
+ icon,
868
+ label,
869
+ iconAfter
870
+ ] }) });
894
871
  }, [imageOverlayAction]);
895
- const renderLogos = useMemo(() => {
896
- if (logosSlot) return logosSlot;
897
- if (!logos || logos.length === 0) return null;
898
- return logos.map((logo, index) => {
899
- const src = typeof logo.src === "string" ? logo.src : logo.src.light;
900
- typeof logo.src === "string" ? logo.src : logo.src.dark;
901
- return /* @__PURE__ */ jsx(React.Fragment, { children: /* @__PURE__ */ jsx(
902
- Img,
903
- {
904
- src,
905
- alt: logo.alt,
906
- className: cn(logo.className, "dark:invert"),
907
- optixFlowConfig
908
- }
909
- ) }, index);
910
- });
911
- }, [logosSlot, logos, optixFlowConfig]);
912
872
  return /* @__PURE__ */ jsx(
913
873
  Section,
914
874
  {
@@ -916,39 +876,90 @@ function HeroCenteredImageGrid({
916
876
  spacing,
917
877
  pattern,
918
878
  patternOpacity,
919
- className: cn(className),
920
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
921
- /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs("div", { className: cn("z-10 flex flex-col items-center gap-8 text-center", contentClassName), children: [
922
- /* @__PURE__ */ jsxs("div", { className: "max-w-3xl", children: [
923
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-4 text-4xl font-semibold text-pretty lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
924
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
925
- ] }),
926
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
927
- ] }) }),
928
- gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxs("div", { className: cn("mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5", imageGridClassName), children: [
929
- gridImages?.[0] && /* @__PURE__ */ jsx(
930
- Img,
931
- {
932
- src: gridImages[0].src,
933
- alt: gridImages[0].alt,
934
- className: cn("h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert", gridImages[0].className),
935
- optixFlowConfig
936
- }
937
- ),
938
- gridImages?.[1] && /* @__PURE__ */ jsxs("div", { className: "relative md:col-span-2", children: [
939
- /* @__PURE__ */ jsx(
940
- Img,
941
- {
942
- src: gridImages[1].src,
943
- alt: gridImages[1].alt,
944
- className: cn("h-full max-h-[500px] w-full object-cover dark:invert", gridImages[1].className),
945
- optixFlowConfig
946
- }
879
+ className,
880
+ containerClassName,
881
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
882
+ /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
883
+ "div",
884
+ {
885
+ className: cn(
886
+ "z-10 flex flex-col items-center gap-8 text-center",
887
+ contentClassName
947
888
  ),
948
- renderImageOverlayAction
949
- ] })
950
- ] }),
951
- (logosSlot || logos && logos.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mx-auto mt-12 grid max-w-7xl grid-cols-2 place-items-center gap-6 md:grid-cols-4", logosClassName), children: renderLogos })
889
+ children: [
890
+ /* @__PURE__ */ jsxs("div", { className: "max-w-3xl", children: [
891
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
892
+ "h1",
893
+ {
894
+ className: cn(
895
+ "mb-4 text-4xl font-semibold text-balance lg:text-6xl",
896
+ headingClassName
897
+ ),
898
+ children: heading
899
+ }
900
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
901
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
902
+ "p",
903
+ {
904
+ className: cn(
905
+ "lg:text-xl text-balance",
906
+ descriptionClassName
907
+ ),
908
+ children: description
909
+ }
910
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
911
+ ] }),
912
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx(
913
+ "div",
914
+ {
915
+ className: cn(
916
+ "flex w-full flex-col justify-center gap-2 sm:flex-row",
917
+ actionsClassName
918
+ ),
919
+ children: renderActions
920
+ }
921
+ )
922
+ ]
923
+ }
924
+ ) }),
925
+ gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxs(
926
+ "div",
927
+ {
928
+ className: cn(
929
+ "mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5",
930
+ imageGridClassName
931
+ ),
932
+ children: [
933
+ gridImages?.[0] && /* @__PURE__ */ jsx(
934
+ Img,
935
+ {
936
+ src: gridImages[0].src,
937
+ alt: gridImages[0].alt,
938
+ className: cn(
939
+ "h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert",
940
+ gridImages[0].className
941
+ ),
942
+ optixFlowConfig
943
+ }
944
+ ),
945
+ gridImages?.[1] && /* @__PURE__ */ jsxs("div", { className: "relative md:col-span-2", children: [
946
+ /* @__PURE__ */ jsx(
947
+ Img,
948
+ {
949
+ src: gridImages[1].src,
950
+ alt: gridImages[1].alt,
951
+ className: cn(
952
+ "h-full max-h-[500px] w-full object-cover dark:invert",
953
+ gridImages[1].className
954
+ ),
955
+ optixFlowConfig
956
+ }
957
+ ),
958
+ renderImageOverlayAction
959
+ ] })
960
+ ]
961
+ }
962
+ )
952
963
  ] })
953
964
  }
954
965
  );
@@ -6,8 +6,8 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
- var icon = require('@page-speed/icon');
10
9
  var img = require('@page-speed/img');
10
+ var reactSlot = require('@radix-ui/react-slot');
11
11
 
12
12
  function _interopNamespace(e) {
13
13
  if (e && e.__esModule) return e;
@@ -451,10 +451,6 @@ var Pressable = React__namespace.forwardRef(
451
451
  }
452
452
  );
453
453
  Pressable.displayName = "Pressable";
454
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
455
- function DynamicIcon({ apiKey, ...props }) {
456
- return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
457
- }
458
454
  var maxWidthStyles = {
459
455
  sm: "max-w-screen-sm",
460
456
  md: "max-w-screen-md",
@@ -830,6 +826,38 @@ var Section = React__namespace.default.forwardRef(
830
826
  }
831
827
  );
832
828
  Section.displayName = "Section";
829
+ var badgeVariants = classVarianceAuthority.cva(
830
+ "inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
831
+ {
832
+ variants: {
833
+ variant: {
834
+ default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
835
+ secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
836
+ destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
837
+ outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
838
+ }
839
+ },
840
+ defaultVariants: {
841
+ variant: "default"
842
+ }
843
+ }
844
+ );
845
+ function Badge({
846
+ className,
847
+ variant,
848
+ asChild = false,
849
+ ...props
850
+ }) {
851
+ const Comp = asChild ? reactSlot.Slot : "span";
852
+ return /* @__PURE__ */ jsxRuntime.jsx(
853
+ Comp,
854
+ {
855
+ "data-slot": "badge",
856
+ className: cn(badgeVariants({ variant }), className),
857
+ ...props
858
+ }
859
+ );
860
+ }
833
861
  var MOBILE_CLASSES = {
834
862
  "fit-left": "items-start md:items-center",
835
863
  "fit-center": "items-center",
@@ -913,11 +941,11 @@ function HeroCommunitySurveyCta({
913
941
  rightOverlayImage,
914
942
  imagesSlot,
915
943
  background,
916
- spacing,
944
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
945
+ spacing = "pt-32 pb-8 md:pt-32 md:pb-32",
917
946
  pattern,
918
947
  patternOpacity,
919
948
  className,
920
- containerClassName,
921
949
  announcementClassName,
922
950
  headingClassName,
923
951
  descriptionClassName,
@@ -927,29 +955,22 @@ function HeroCommunitySurveyCta({
927
955
  }) {
928
956
  const renderAnnouncement = React.useMemo(() => {
929
957
  if (announcementSlot) return announcementSlot;
930
- return /* @__PURE__ */ jsxRuntime.jsxs(
931
- Pressable,
958
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: announcementHref, children: /* @__PURE__ */ jsxRuntime.jsxs(
959
+ Badge,
932
960
  {
933
- href: announcementHref,
934
961
  className: cn(
935
- "group mx-auto mb-3 w-fit gap-3 rounded-full border px-5 py-2 text-sm",
962
+ "group mx-auto w-fit gap-3 px-5 py-2 text-sm h-fit",
936
963
  announcementClassName
937
964
  ),
938
965
  children: [
939
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mr-1 font-medium", children: announcementPrimary }),
940
- announcementSecondary,
941
- /* @__PURE__ */ jsxRuntime.jsx(
942
- DynamicIcon,
943
- {
944
- name: "lucide/minus",
945
- size: 16,
946
- className: "mx-1 inline-block"
947
- }
948
- ),
949
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold group-hover:underline", children: announcementLinkText })
966
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
967
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: announcementPrimary }),
968
+ announcementSecondary
969
+ ] }),
970
+ announcementLinkText ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-semibold pl-4 ml-4 border-l", children: announcementLinkText }) : null
950
971
  ]
951
972
  }
952
- );
973
+ ) });
953
974
  }, [
954
975
  announcementSlot,
955
976
  announcementHref,
@@ -958,46 +979,119 @@ function HeroCommunitySurveyCta({
958
979
  announcementSecondary,
959
980
  announcementLinkText
960
981
  ]);
982
+ const imageCount = React.useMemo(() => {
983
+ let count = 0;
984
+ if (mainImage) count++;
985
+ if (leftOverlayImage) count++;
986
+ if (rightOverlayImage) count++;
987
+ return count;
988
+ }, [mainImage, leftOverlayImage, rightOverlayImage]);
961
989
  const renderImages = React.useMemo(() => {
962
990
  if (imagesSlot) return imagesSlot;
963
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative mx-auto max-w-5xl", imagesClassName), children: [
964
- mainImage && /* @__PURE__ */ jsxRuntime.jsx(
965
- img.Img,
966
- {
967
- src: mainImage.src,
968
- alt: mainImage.alt,
969
- className: mainImage.className,
970
- optixFlowConfig
971
- }
972
- ),
973
- leftOverlayImage && /* @__PURE__ */ jsxRuntime.jsx(
974
- img.Img,
991
+ if (imageCount === 0) return null;
992
+ if (imageCount === 1) {
993
+ const img$1 = mainImage || leftOverlayImage || rightOverlayImage;
994
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
995
+ "div",
975
996
  {
976
- src: leftOverlayImage.src,
977
- alt: leftOverlayImage.alt,
978
- className: leftOverlayImage.className,
979
- optixFlowConfig
997
+ className: cn(
998
+ "relative aspect-4/3 w-full max-w-lg overflow-hidden rounded-lg shadow-2xl",
999
+ imagesClassName
1000
+ ),
1001
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1002
+ img.Img,
1003
+ {
1004
+ src: img$1.src,
1005
+ alt: img$1.alt,
1006
+ className: "h-full w-full object-cover",
1007
+ optixFlowConfig
1008
+ }
1009
+ )
980
1010
  }
981
- ),
982
- rightOverlayImage && /* @__PURE__ */ jsxRuntime.jsx(
983
- img.Img,
1011
+ ) });
1012
+ }
1013
+ if (imageCount === 2) {
1014
+ const imgs = [mainImage, leftOverlayImage, rightOverlayImage].filter(
1015
+ Boolean
1016
+ );
1017
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1018
+ "div",
984
1019
  {
985
- src: rightOverlayImage.src,
986
- alt: rightOverlayImage.alt,
987
- className: rightOverlayImage.className,
988
- optixFlowConfig
1020
+ className: cn(
1021
+ "relative min-h-[350px] md:min-h-[400px] lg:min-h-[450px]",
1022
+ imagesClassName
1023
+ ),
1024
+ children: [
1025
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 top-0 z-10 aspect-4/3 w-[70%] overflow-hidden rounded-lg shadow-2xl md:w-[65%]", children: /* @__PURE__ */ jsxRuntime.jsx(
1026
+ img.Img,
1027
+ {
1028
+ src: imgs[0].src,
1029
+ alt: imgs[0].alt,
1030
+ className: "h-full w-full object-cover",
1031
+ optixFlowConfig
1032
+ }
1033
+ ) }),
1034
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-0 right-0 z-20 aspect-3/4 w-[55%] overflow-hidden rounded-lg shadow-2xl md:w-[50%]", children: /* @__PURE__ */ jsxRuntime.jsx(
1035
+ img.Img,
1036
+ {
1037
+ src: imgs[1].src,
1038
+ alt: imgs[1].alt,
1039
+ className: "h-full w-full object-cover",
1040
+ optixFlowConfig
1041
+ }
1042
+ ) })
1043
+ ]
989
1044
  }
990
- )
991
- ] });
1045
+ );
1046
+ }
1047
+ return /* @__PURE__ */ jsxRuntime.jsxs(
1048
+ "div",
1049
+ {
1050
+ className: cn(
1051
+ "relative min-h-[380px] md:min-h-[430px] lg:min-h-[480px]",
1052
+ imagesClassName
1053
+ ),
1054
+ children: [
1055
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute left-0 top-0 z-10 aspect-4/3 w-[65%] overflow-hidden rounded-lg shadow-2xl", children: /* @__PURE__ */ jsxRuntime.jsx(
1056
+ img.Img,
1057
+ {
1058
+ src: mainImage.src,
1059
+ alt: mainImage.alt,
1060
+ className: "h-full w-full object-cover",
1061
+ optixFlowConfig
1062
+ }
1063
+ ) }),
1064
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-0 right-0 z-20 aspect-3/4 w-[50%] overflow-hidden rounded-lg shadow-2xl", children: /* @__PURE__ */ jsxRuntime.jsx(
1065
+ img.Img,
1066
+ {
1067
+ src: rightOverlayImage.src,
1068
+ alt: rightOverlayImage.alt,
1069
+ className: "h-full w-full object-cover",
1070
+ optixFlowConfig
1071
+ }
1072
+ ) }),
1073
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-4 left-[10%] z-30 aspect-square w-[35%] overflow-hidden rounded-lg shadow-2xl md:bottom-6 md:left-[15%]", children: /* @__PURE__ */ jsxRuntime.jsx(
1074
+ img.Img,
1075
+ {
1076
+ src: leftOverlayImage.src,
1077
+ alt: leftOverlayImage.alt,
1078
+ className: "h-full w-full object-cover",
1079
+ optixFlowConfig
1080
+ }
1081
+ ) })
1082
+ ]
1083
+ }
1084
+ );
992
1085
  }, [
993
1086
  imagesSlot,
994
1087
  imagesClassName,
1088
+ imageCount,
995
1089
  mainImage,
996
1090
  leftOverlayImage,
997
1091
  rightOverlayImage,
998
1092
  optixFlowConfig
999
1093
  ]);
1000
- return /* @__PURE__ */ jsxRuntime.jsxs(
1094
+ return /* @__PURE__ */ jsxRuntime.jsx(
1001
1095
  Section,
1002
1096
  {
1003
1097
  background,
@@ -1006,14 +1100,14 @@ function HeroCommunitySurveyCta({
1006
1100
  patternOpacity,
1007
1101
  className,
1008
1102
  containerClassName,
1009
- children: [
1010
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
1103
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative grid grid-cols-1 items-center gap-8 lg:grid-cols-2 lg:gap-12", children: [
1104
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1011
1105
  renderAnnouncement,
1012
1106
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1013
1107
  "h1",
1014
1108
  {
1015
1109
  className: cn(
1016
- "mx-auto max-w-4xl text-4xl font-semibold text-balance lg:text-6xl",
1110
+ "max-w-4xl text-4xl font-semibold text-balance lg:text-6xl",
1017
1111
  headingClassName
1018
1112
  ),
1019
1113
  children: heading
@@ -1023,7 +1117,7 @@ function HeroCommunitySurveyCta({
1023
1117
  "p",
1024
1118
  {
1025
1119
  className: cn(
1026
- "mx-auto max-w-4xl lg:text-xl",
1120
+ "max-w-4xl lg:text-xl text-balance",
1027
1121
  descriptionClassName
1028
1122
  ),
1029
1123
  children: description
@@ -1038,11 +1132,8 @@ function HeroCommunitySurveyCta({
1038
1132
  }
1039
1133
  )
1040
1134
  ] }),
1041
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative px-8", children: [
1042
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 top-1/2 h-full w-full bg-linear-to-b from-muted to-transparent to-50%" }),
1043
- renderImages
1044
- ] })
1045
- ]
1135
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: renderImages })
1136
+ ] })
1046
1137
  }
1047
1138
  );
1048
1139
  }
@@ -108,6 +108,6 @@ interface HeroCommunitySurveyCtaProps {
108
108
  */
109
109
  optixFlowConfig?: OptixFlowConfig;
110
110
  }
111
- declare function HeroCommunitySurveyCta({ announcementPrimary, announcementSecondary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
111
+ declare function HeroCommunitySurveyCta({ announcementPrimary, announcementSecondary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
112
112
 
113
113
  export { HeroCommunitySurveyCta, type HeroCommunitySurveyCtaProps };
@@ -108,6 +108,6 @@ interface HeroCommunitySurveyCtaProps {
108
108
  */
109
109
  optixFlowConfig?: OptixFlowConfig;
110
110
  }
111
- declare function HeroCommunitySurveyCta({ announcementPrimary, announcementSecondary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
111
+ declare function HeroCommunitySurveyCta({ announcementPrimary, announcementSecondary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
112
112
 
113
113
  export { HeroCommunitySurveyCta, type HeroCommunitySurveyCtaProps };