@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
@@ -32,32 +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 getTextColor(parentBg, variant = "default", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "default":
40
- return "text-foreground";
41
- case "muted":
42
- return "text-foreground/80";
43
- case "subtle":
44
- return "text-foreground/60";
45
- case "accent":
46
- return "text-accent-foreground";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "default":
51
- return "text-foreground";
52
- case "muted":
53
- return "text-muted-foreground";
54
- case "subtle":
55
- return "text-muted-foreground/70";
56
- case "accent":
57
- return "text-primary";
58
- }
59
- }
60
- }
61
35
  function normalizePhoneNumber(input) {
62
36
  const trimmed = input.trim();
63
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -851,19 +825,87 @@ var Section = React__namespace.default.forwardRef(
851
825
  }
852
826
  );
853
827
  Section.displayName = "Section";
828
+ var MOBILE_CLASSES = {
829
+ "fit-left": "items-start md:items-center",
830
+ "fit-center": "items-center",
831
+ "fit-right": "items-end md:items-center",
832
+ "full-left": "items-stretch md:items-center",
833
+ "full-center": "items-stretch md:items-center",
834
+ "full-right": "items-stretch md:items-center"
835
+ };
836
+ function BlockActions({
837
+ mobileConfig,
838
+ actionsClassName,
839
+ verticalSpacing = "mt-4 md:mt-8",
840
+ actions,
841
+ actionsSlot
842
+ }) {
843
+ const renderAction = React__namespace.useCallback(
844
+ (action, idx) => {
845
+ const {
846
+ label,
847
+ icon,
848
+ iconAfter,
849
+ children,
850
+ href,
851
+ onClick,
852
+ className: actionClassName,
853
+ ...pressableProps
854
+ } = action;
855
+ return /* @__PURE__ */ jsxRuntime.jsx(
856
+ Pressable,
857
+ {
858
+ href,
859
+ onClick,
860
+ asButton: action.asButton || true,
861
+ className: actionClassName,
862
+ ...pressableProps,
863
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
864
+ icon,
865
+ label,
866
+ iconAfter
867
+ ] })
868
+ },
869
+ idx
870
+ );
871
+ },
872
+ []
873
+ );
874
+ const width = mobileConfig?.width ?? "full";
875
+ const position = mobileConfig?.position ?? "center";
876
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
877
+ if (actionsSlot) {
878
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
879
+ } else if (actions && actions?.length > 0) {
880
+ return /* @__PURE__ */ jsxRuntime.jsx(
881
+ "div",
882
+ {
883
+ className: cn(
884
+ "flex flex-col md:flex-row flex-wrap gap-4",
885
+ mobileLayoutClass,
886
+ actionsClassName,
887
+ verticalSpacing
888
+ ),
889
+ children: actions.map((action, index) => renderAction(action, index))
890
+ }
891
+ );
892
+ } else {
893
+ return null;
894
+ }
895
+ }
854
896
  function HeroSimpleCenteredImage({
855
897
  heading,
856
898
  description,
857
899
  actions,
858
900
  actionsSlot,
859
901
  imageSrc,
860
- imageAlt = "placeholder hero",
902
+ imageAlt,
861
903
  background,
862
- spacing,
863
904
  pattern,
864
905
  patternOpacity,
865
906
  className,
866
- containerClassName,
907
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
908
+ spacing = "xl",
867
909
  contentClassName,
868
910
  headingClassName,
869
911
  descriptionClassName,
@@ -872,11 +914,18 @@ function HeroSimpleCenteredImage({
872
914
  imageClassName,
873
915
  optixFlowConfig
874
916
  }) {
875
- const renderActions = React.useMemo(() => {
917
+ React.useMemo(() => {
876
918
  if (actionsSlot) return actionsSlot;
877
919
  if (!actions || actions.length === 0) return null;
878
920
  return actions.map((action, index) => {
879
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
921
+ const {
922
+ label,
923
+ icon,
924
+ iconAfter,
925
+ children,
926
+ className: actionClassName,
927
+ ...pressableProps
928
+ } = action;
880
929
  return /* @__PURE__ */ jsxRuntime.jsx(
881
930
  Pressable,
882
931
  {
@@ -900,22 +949,69 @@ function HeroSimpleCenteredImage({
900
949
  spacing,
901
950
  pattern,
902
951
  patternOpacity,
903
- className: cn(className),
952
+ className,
953
+ containerClassName,
904
954
  children: [
905
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container flex flex-col items-center text-center", containerClassName, contentClassName), children: [
906
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-3 text-3xl font-bold text-pretty sm:text-4xl md:my-6 lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
907
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6 max-w-xl lg:mb-12 lg:text-2xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
908
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6 flex gap-2 lg:mb-12", actionsClassName), children: renderActions })
909
- ] }),
910
- imageSrc && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("aspect-video mask-[linear-gradient(#000_80%,transparent_100%)]", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
911
- img.Img,
955
+ /* @__PURE__ */ jsxRuntime.jsxs(
956
+ "div",
957
+ {
958
+ className: cn(
959
+ "flex flex-col items-center text-center",
960
+ contentClassName
961
+ ),
962
+ children: [
963
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
964
+ "h1",
965
+ {
966
+ className: cn(
967
+ "my-3 text-3xl font-bold text-balance sm:text-4xl md:my-6 lg:text-6xl",
968
+ headingClassName
969
+ ),
970
+ children: heading
971
+ }
972
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
973
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
974
+ "p",
975
+ {
976
+ className: cn(
977
+ "max-w-xl md:max-w-md lg:text-2xl text-balance",
978
+ descriptionClassName
979
+ ),
980
+ children: description
981
+ }
982
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
983
+ /* @__PURE__ */ jsxRuntime.jsx(
984
+ BlockActions,
985
+ {
986
+ actions,
987
+ actionsSlot,
988
+ actionsClassName
989
+ }
990
+ )
991
+ ]
992
+ }
993
+ ),
994
+ imageSrc && /* @__PURE__ */ jsxRuntime.jsx(
995
+ "div",
912
996
  {
913
- src: imageSrc,
914
- alt: imageAlt,
915
- className: cn("h-full w-full rounded-md object-cover", imageClassName),
916
- optixFlowConfig
997
+ className: cn(
998
+ "aspect-video mask-[linear-gradient(#000_80%,transparent_100%)] mt-8 md:mt-16",
999
+ imageWrapperClassName
1000
+ ),
1001
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1002
+ img.Img,
1003
+ {
1004
+ src: imageSrc,
1005
+ alt: imageAlt,
1006
+ className: cn(
1007
+ "h-full w-full rounded-t-2xl object-cover",
1008
+ imageClassName
1009
+ ),
1010
+ optixFlowConfig
1011
+ }
1012
+ )
917
1013
  }
918
- ) }) })
1014
+ )
919
1015
  ]
920
1016
  }
921
1017
  );
@@ -84,6 +84,6 @@ interface HeroSimpleCenteredImageProps {
84
84
  */
85
85
  optixFlowConfig?: OptixFlowConfig;
86
86
  }
87
- declare function HeroSimpleCenteredImage({ heading, description, actions, actionsSlot, imageSrc, imageAlt, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
87
+ declare function HeroSimpleCenteredImage({ heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
88
88
 
89
89
  export { HeroSimpleCenteredImage, type HeroSimpleCenteredImageProps };
@@ -84,6 +84,6 @@ interface HeroSimpleCenteredImageProps {
84
84
  */
85
85
  optixFlowConfig?: OptixFlowConfig;
86
86
  }
87
- declare function HeroSimpleCenteredImage({ heading, description, actions, actionsSlot, imageSrc, imageAlt, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
87
+ declare function HeroSimpleCenteredImage({ heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
88
88
 
89
89
  export { HeroSimpleCenteredImage, type HeroSimpleCenteredImageProps };
@@ -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:")) {
@@ -830,19 +804,87 @@ var Section = React__default.forwardRef(
830
804
  }
831
805
  );
832
806
  Section.displayName = "Section";
807
+ var MOBILE_CLASSES = {
808
+ "fit-left": "items-start md:items-center",
809
+ "fit-center": "items-center",
810
+ "fit-right": "items-end md:items-center",
811
+ "full-left": "items-stretch md:items-center",
812
+ "full-center": "items-stretch md:items-center",
813
+ "full-right": "items-stretch md:items-center"
814
+ };
815
+ function BlockActions({
816
+ mobileConfig,
817
+ actionsClassName,
818
+ verticalSpacing = "mt-4 md:mt-8",
819
+ actions,
820
+ actionsSlot
821
+ }) {
822
+ const renderAction = React.useCallback(
823
+ (action, idx) => {
824
+ const {
825
+ label,
826
+ icon,
827
+ iconAfter,
828
+ children,
829
+ href,
830
+ onClick,
831
+ className: actionClassName,
832
+ ...pressableProps
833
+ } = action;
834
+ return /* @__PURE__ */ jsx(
835
+ Pressable,
836
+ {
837
+ href,
838
+ onClick,
839
+ asButton: action.asButton || true,
840
+ className: actionClassName,
841
+ ...pressableProps,
842
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
843
+ icon,
844
+ label,
845
+ iconAfter
846
+ ] })
847
+ },
848
+ idx
849
+ );
850
+ },
851
+ []
852
+ );
853
+ const width = mobileConfig?.width ?? "full";
854
+ const position = mobileConfig?.position ?? "center";
855
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
856
+ if (actionsSlot) {
857
+ return /* @__PURE__ */ jsx("div", { children: actionsSlot });
858
+ } else if (actions && actions?.length > 0) {
859
+ return /* @__PURE__ */ jsx(
860
+ "div",
861
+ {
862
+ className: cn(
863
+ "flex flex-col md:flex-row flex-wrap gap-4",
864
+ mobileLayoutClass,
865
+ actionsClassName,
866
+ verticalSpacing
867
+ ),
868
+ children: actions.map((action, index) => renderAction(action, index))
869
+ }
870
+ );
871
+ } else {
872
+ return null;
873
+ }
874
+ }
833
875
  function HeroSimpleCenteredImage({
834
876
  heading,
835
877
  description,
836
878
  actions,
837
879
  actionsSlot,
838
880
  imageSrc,
839
- imageAlt = "placeholder hero",
881
+ imageAlt,
840
882
  background,
841
- spacing,
842
883
  pattern,
843
884
  patternOpacity,
844
885
  className,
845
- containerClassName,
886
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
887
+ spacing = "xl",
846
888
  contentClassName,
847
889
  headingClassName,
848
890
  descriptionClassName,
@@ -851,11 +893,18 @@ function HeroSimpleCenteredImage({
851
893
  imageClassName,
852
894
  optixFlowConfig
853
895
  }) {
854
- const renderActions = useMemo(() => {
896
+ useMemo(() => {
855
897
  if (actionsSlot) return actionsSlot;
856
898
  if (!actions || actions.length === 0) return null;
857
899
  return actions.map((action, index) => {
858
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
900
+ const {
901
+ label,
902
+ icon,
903
+ iconAfter,
904
+ children,
905
+ className: actionClassName,
906
+ ...pressableProps
907
+ } = action;
859
908
  return /* @__PURE__ */ jsx(
860
909
  Pressable,
861
910
  {
@@ -879,22 +928,69 @@ function HeroSimpleCenteredImage({
879
928
  spacing,
880
929
  pattern,
881
930
  patternOpacity,
882
- className: cn(className),
931
+ className,
932
+ containerClassName,
883
933
  children: [
884
- /* @__PURE__ */ jsxs("div", { className: cn("container flex flex-col items-center text-center", containerClassName, contentClassName), children: [
885
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-3 text-3xl font-bold text-pretty sm:text-4xl md:my-6 lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
886
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6 max-w-xl lg:mb-12 lg:text-2xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
887
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mb-6 flex gap-2 lg:mb-12", actionsClassName), children: renderActions })
888
- ] }),
889
- imageSrc && /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsx("div", { className: cn("aspect-video mask-[linear-gradient(#000_80%,transparent_100%)]", imageWrapperClassName), children: /* @__PURE__ */ jsx(
890
- Img,
934
+ /* @__PURE__ */ jsxs(
935
+ "div",
936
+ {
937
+ className: cn(
938
+ "flex flex-col items-center text-center",
939
+ contentClassName
940
+ ),
941
+ children: [
942
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
943
+ "h1",
944
+ {
945
+ className: cn(
946
+ "my-3 text-3xl font-bold text-balance sm:text-4xl md:my-6 lg:text-6xl",
947
+ headingClassName
948
+ ),
949
+ children: heading
950
+ }
951
+ ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
952
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
953
+ "p",
954
+ {
955
+ className: cn(
956
+ "max-w-xl md:max-w-md lg:text-2xl text-balance",
957
+ descriptionClassName
958
+ ),
959
+ children: description
960
+ }
961
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
962
+ /* @__PURE__ */ jsx(
963
+ BlockActions,
964
+ {
965
+ actions,
966
+ actionsSlot,
967
+ actionsClassName
968
+ }
969
+ )
970
+ ]
971
+ }
972
+ ),
973
+ imageSrc && /* @__PURE__ */ jsx(
974
+ "div",
891
975
  {
892
- src: imageSrc,
893
- alt: imageAlt,
894
- className: cn("h-full w-full rounded-md object-cover", imageClassName),
895
- optixFlowConfig
976
+ className: cn(
977
+ "aspect-video mask-[linear-gradient(#000_80%,transparent_100%)] mt-8 md:mt-16",
978
+ imageWrapperClassName
979
+ ),
980
+ children: /* @__PURE__ */ jsx(
981
+ Img,
982
+ {
983
+ src: imageSrc,
984
+ alt: imageAlt,
985
+ className: cn(
986
+ "h-full w-full rounded-t-2xl object-cover",
987
+ imageClassName
988
+ ),
989
+ optixFlowConfig
990
+ }
991
+ )
896
992
  }
897
- ) }) })
993
+ )
898
994
  ]
899
995
  }
900
996
  );