@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
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React = require('react');
5
4
  var clsx = require('clsx');
6
5
  var tailwindMerge = require('tailwind-merge');
7
6
  var reactSlot = require('@radix-ui/react-slot');
8
7
  var classVarianceAuthority = require('class-variance-authority');
9
8
  var jsxRuntime = require('react/jsx-runtime');
9
+ var React = require('react');
10
10
  var icon = require('@page-speed/icon');
11
11
  var img = require('@page-speed/img');
12
12
 
@@ -30,7 +30,7 @@ function _interopNamespace(e) {
30
30
 
31
31
  var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
 
33
- // components/blocks/hero/hero-badge-shadow-overlay.tsx
33
+ // lib/utils.ts
34
34
  function cn(...inputs) {
35
35
  return tailwindMerge.twMerge(clsx.clsx(inputs));
36
36
  }
@@ -863,43 +863,39 @@ var Section = React__namespace.default.forwardRef(
863
863
  }
864
864
  );
865
865
  Section.displayName = "Section";
866
- function HeroBadgeShadowOverlay({
867
- announcementBadge,
868
- announcementText,
869
- announcementHref,
870
- description,
871
- descriptionClassName,
872
- heading,
866
+ var MOBILE_CLASSES = {
867
+ "fit-left": "items-start md:items-center",
868
+ "fit-center": "items-center",
869
+ "fit-right": "items-end md:items-center",
870
+ "full-left": "items-stretch md:items-center",
871
+ "full-center": "items-stretch md:items-center",
872
+ "full-right": "items-stretch md:items-center"
873
+ };
874
+ function BlockActions({
875
+ mobileConfig,
876
+ actionsClassName,
877
+ verticalSpacing = "mt-4 md:mt-8",
873
878
  actions,
874
- actionsSlot,
875
- backgroundImageUrl,
876
- optixFlowConfig,
877
- background,
878
- spacing = "py-0 md:py-0",
879
- pattern,
880
- patternOpacity,
881
- className,
882
- containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
883
- announcementClassName,
884
- headingClassName,
885
- actionsClassName
879
+ actionsSlot
886
880
  }) {
887
- const renderActions = React.useMemo(() => {
888
- if (actionsSlot) return actionsSlot;
889
- if (!actions || actions.length === 0) return null;
890
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
881
+ const renderAction = React__namespace.useCallback(
882
+ (action, idx) => {
891
883
  const {
892
884
  label,
893
885
  icon,
894
886
  iconAfter,
895
887
  children,
888
+ href,
889
+ onClick,
896
890
  className: actionClassName,
897
891
  ...pressableProps
898
892
  } = action;
899
893
  return /* @__PURE__ */ jsxRuntime.jsx(
900
894
  Pressable,
901
895
  {
902
- asButton: true,
896
+ href,
897
+ onClick,
898
+ asButton: action.asButton || true,
903
899
  className: actionClassName,
904
900
  ...pressableProps,
905
901
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -908,10 +904,54 @@ function HeroBadgeShadowOverlay({
908
904
  iconAfter
909
905
  ] })
910
906
  },
911
- index
907
+ idx
912
908
  );
913
- }) });
914
- }, [actionsSlot, actions, actionsClassName]);
909
+ },
910
+ []
911
+ );
912
+ const width = mobileConfig?.width ?? "full";
913
+ const position = mobileConfig?.position ?? "center";
914
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
915
+ if (actionsSlot) {
916
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
917
+ } else if (actions && actions?.length > 0) {
918
+ return /* @__PURE__ */ jsxRuntime.jsx(
919
+ "div",
920
+ {
921
+ className: cn(
922
+ "flex flex-col md:flex-row flex-wrap gap-4",
923
+ mobileLayoutClass,
924
+ actionsClassName,
925
+ verticalSpacing
926
+ ),
927
+ children: actions.map((action, index) => renderAction(action, index))
928
+ }
929
+ );
930
+ } else {
931
+ return null;
932
+ }
933
+ }
934
+ function HeroBadgeShadowOverlay({
935
+ announcementBadge,
936
+ announcementText,
937
+ announcementHref,
938
+ description,
939
+ descriptionClassName,
940
+ heading,
941
+ actions,
942
+ actionsSlot,
943
+ backgroundImageUrl,
944
+ optixFlowConfig,
945
+ background,
946
+ spacing = "py-0 md:py-0",
947
+ pattern,
948
+ patternOpacity,
949
+ className,
950
+ containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
951
+ announcementClassName,
952
+ headingClassName,
953
+ actionsClassName
954
+ }) {
915
955
  return /* @__PURE__ */ jsxRuntime.jsxs(
916
956
  Section,
917
957
  {
@@ -922,7 +962,7 @@ function HeroBadgeShadowOverlay({
922
962
  className: cn("relative flex items-center justify-center", className),
923
963
  containerClassName,
924
964
  children: [
925
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-10 text-center px-6 max-full md:max-w-lg", children: [
965
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-4 text-center px-6 max-full md:max-w-lg", children: [
926
966
  (announcementBadge || announcementText) && /* @__PURE__ */ jsxRuntime.jsxs(
927
967
  Pressable,
928
968
  {
@@ -942,7 +982,7 @@ function HeroBadgeShadowOverlay({
942
982
  "h1",
943
983
  {
944
984
  className: cn(
945
- "text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-xl text-center",
985
+ "text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-2xl text-center",
946
986
  headingClassName
947
987
  ),
948
988
  children: heading
@@ -958,7 +998,14 @@ function HeroBadgeShadowOverlay({
958
998
  children: description
959
999
  }
960
1000
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
961
- renderActions
1001
+ /* @__PURE__ */ jsxRuntime.jsx(
1002
+ BlockActions,
1003
+ {
1004
+ actions,
1005
+ actionsSlot,
1006
+ actionsClassName
1007
+ }
1008
+ )
962
1009
  ] }) }),
963
1010
  backgroundImageUrl && /* @__PURE__ */ jsxRuntime.jsx(
964
1011
  img.Img,
@@ -1,15 +1,15 @@
1
1
  "use client";
2
- import * as React from 'react';
3
- import React__default, { useMemo } from 'react';
4
2
  import { clsx } from 'clsx';
5
3
  import { twMerge } from 'tailwind-merge';
6
4
  import { Slot } from '@radix-ui/react-slot';
7
5
  import { cva } from 'class-variance-authority';
8
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
+ import * as React from 'react';
8
+ import React__default from 'react';
9
9
  import { Icon } from '@page-speed/icon';
10
10
  import { Img } from '@page-speed/img';
11
11
 
12
- // components/blocks/hero/hero-badge-shadow-overlay.tsx
12
+ // lib/utils.ts
13
13
  function cn(...inputs) {
14
14
  return twMerge(clsx(inputs));
15
15
  }
@@ -842,43 +842,39 @@ var Section = React__default.forwardRef(
842
842
  }
843
843
  );
844
844
  Section.displayName = "Section";
845
- function HeroBadgeShadowOverlay({
846
- announcementBadge,
847
- announcementText,
848
- announcementHref,
849
- description,
850
- descriptionClassName,
851
- heading,
845
+ var MOBILE_CLASSES = {
846
+ "fit-left": "items-start md:items-center",
847
+ "fit-center": "items-center",
848
+ "fit-right": "items-end md:items-center",
849
+ "full-left": "items-stretch md:items-center",
850
+ "full-center": "items-stretch md:items-center",
851
+ "full-right": "items-stretch md:items-center"
852
+ };
853
+ function BlockActions({
854
+ mobileConfig,
855
+ actionsClassName,
856
+ verticalSpacing = "mt-4 md:mt-8",
852
857
  actions,
853
- actionsSlot,
854
- backgroundImageUrl,
855
- optixFlowConfig,
856
- background,
857
- spacing = "py-0 md:py-0",
858
- pattern,
859
- patternOpacity,
860
- className,
861
- containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
862
- announcementClassName,
863
- headingClassName,
864
- actionsClassName
858
+ actionsSlot
865
859
  }) {
866
- const renderActions = useMemo(() => {
867
- if (actionsSlot) return actionsSlot;
868
- if (!actions || actions.length === 0) return null;
869
- return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
860
+ const renderAction = React.useCallback(
861
+ (action, idx) => {
870
862
  const {
871
863
  label,
872
864
  icon,
873
865
  iconAfter,
874
866
  children,
867
+ href,
868
+ onClick,
875
869
  className: actionClassName,
876
870
  ...pressableProps
877
871
  } = action;
878
872
  return /* @__PURE__ */ jsx(
879
873
  Pressable,
880
874
  {
881
- asButton: true,
875
+ href,
876
+ onClick,
877
+ asButton: action.asButton || true,
882
878
  className: actionClassName,
883
879
  ...pressableProps,
884
880
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -887,10 +883,54 @@ function HeroBadgeShadowOverlay({
887
883
  iconAfter
888
884
  ] })
889
885
  },
890
- index
886
+ idx
891
887
  );
892
- }) });
893
- }, [actionsSlot, actions, actionsClassName]);
888
+ },
889
+ []
890
+ );
891
+ const width = mobileConfig?.width ?? "full";
892
+ const position = mobileConfig?.position ?? "center";
893
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
894
+ if (actionsSlot) {
895
+ return /* @__PURE__ */ jsx("div", { children: actionsSlot });
896
+ } else if (actions && actions?.length > 0) {
897
+ return /* @__PURE__ */ jsx(
898
+ "div",
899
+ {
900
+ className: cn(
901
+ "flex flex-col md:flex-row flex-wrap gap-4",
902
+ mobileLayoutClass,
903
+ actionsClassName,
904
+ verticalSpacing
905
+ ),
906
+ children: actions.map((action, index) => renderAction(action, index))
907
+ }
908
+ );
909
+ } else {
910
+ return null;
911
+ }
912
+ }
913
+ function HeroBadgeShadowOverlay({
914
+ announcementBadge,
915
+ announcementText,
916
+ announcementHref,
917
+ description,
918
+ descriptionClassName,
919
+ heading,
920
+ actions,
921
+ actionsSlot,
922
+ backgroundImageUrl,
923
+ optixFlowConfig,
924
+ background,
925
+ spacing = "py-0 md:py-0",
926
+ pattern,
927
+ patternOpacity,
928
+ className,
929
+ containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
930
+ announcementClassName,
931
+ headingClassName,
932
+ actionsClassName
933
+ }) {
894
934
  return /* @__PURE__ */ jsxs(
895
935
  Section,
896
936
  {
@@ -901,7 +941,7 @@ function HeroBadgeShadowOverlay({
901
941
  className: cn("relative flex items-center justify-center", className),
902
942
  containerClassName,
903
943
  children: [
904
- /* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-10 text-center px-6 max-full md:max-w-lg", children: [
944
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 text-center px-6 max-full md:max-w-lg", children: [
905
945
  (announcementBadge || announcementText) && /* @__PURE__ */ jsxs(
906
946
  Pressable,
907
947
  {
@@ -921,7 +961,7 @@ function HeroBadgeShadowOverlay({
921
961
  "h1",
922
962
  {
923
963
  className: cn(
924
- "text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-xl text-center",
964
+ "text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-2xl text-center",
925
965
  headingClassName
926
966
  ),
927
967
  children: heading
@@ -937,7 +977,14 @@ function HeroBadgeShadowOverlay({
937
977
  children: description
938
978
  }
939
979
  ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
940
- renderActions
980
+ /* @__PURE__ */ jsx(
981
+ BlockActions,
982
+ {
983
+ actions,
984
+ actionsSlot,
985
+ actionsClassName
986
+ }
987
+ )
941
988
  ] }) }),
942
989
  backgroundImageUrl && /* @__PURE__ */ jsx(
943
990
  Img,
@@ -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:")) {
@@ -859,27 +833,31 @@ function HeroCenteredImageGrid({
859
833
  gridImages,
860
834
  gridImagesSlot,
861
835
  imageOverlayAction,
862
- logos,
863
- logosSlot,
864
836
  background,
865
- spacing,
866
837
  pattern,
867
838
  patternOpacity,
868
839
  className,
869
- containerClassName,
840
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
841
+ spacing = "xl",
870
842
  contentClassName,
871
843
  headingClassName,
872
844
  descriptionClassName,
873
845
  actionsClassName,
874
846
  imageGridClassName,
875
- logosClassName,
876
847
  optixFlowConfig
877
848
  }) {
878
849
  const renderActions = React.useMemo(() => {
879
850
  if (actionsSlot) return actionsSlot;
880
851
  if (!actions || actions.length === 0) return null;
881
852
  return actions.map((action, index) => {
882
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
853
+ const {
854
+ label,
855
+ icon,
856
+ iconAfter,
857
+ children,
858
+ className: actionClassName,
859
+ ...pressableProps
860
+ } = action;
883
861
  return /* @__PURE__ */ jsxRuntime.jsx(
884
862
  Pressable,
885
863
  {
@@ -898,38 +876,20 @@ function HeroCenteredImageGrid({
898
876
  }, [actionsSlot, actions]);
899
877
  const renderImageOverlayAction = React.useMemo(() => {
900
878
  if (!imageOverlayAction) return null;
901
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = imageOverlayAction;
902
- return /* @__PURE__ */ jsxRuntime.jsx(
903
- Pressable,
904
- {
905
- asButton: true,
906
- className: actionClassName,
907
- ...pressableProps,
908
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
909
- icon,
910
- label,
911
- iconAfter
912
- ] })
913
- }
914
- );
879
+ const {
880
+ label,
881
+ icon,
882
+ iconAfter,
883
+ children,
884
+ className: actionClassName,
885
+ ...pressableProps
886
+ } = imageOverlayAction;
887
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
888
+ icon,
889
+ label,
890
+ iconAfter
891
+ ] }) });
915
892
  }, [imageOverlayAction]);
916
- const renderLogos = React.useMemo(() => {
917
- if (logosSlot) return logosSlot;
918
- if (!logos || logos.length === 0) return null;
919
- return logos.map((logo, index) => {
920
- const src = typeof logo.src === "string" ? logo.src : logo.src.light;
921
- typeof logo.src === "string" ? logo.src : logo.src.dark;
922
- return /* @__PURE__ */ jsxRuntime.jsx(React__namespace.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
923
- img.Img,
924
- {
925
- src,
926
- alt: logo.alt,
927
- className: cn(logo.className, "dark:invert"),
928
- optixFlowConfig
929
- }
930
- ) }, index);
931
- });
932
- }, [logosSlot, logos, optixFlowConfig]);
933
893
  return /* @__PURE__ */ jsxRuntime.jsx(
934
894
  Section,
935
895
  {
@@ -937,39 +897,90 @@ function HeroCenteredImageGrid({
937
897
  spacing,
938
898
  pattern,
939
899
  patternOpacity,
940
- className: cn(className),
941
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
942
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("z-10 flex flex-col items-center gap-8 text-center", contentClassName), children: [
943
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-3xl", children: [
944
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-4 text-4xl font-semibold text-pretty lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
945
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
946
- ] }),
947
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
948
- ] }) }),
949
- gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5", imageGridClassName), children: [
950
- gridImages?.[0] && /* @__PURE__ */ jsxRuntime.jsx(
951
- img.Img,
952
- {
953
- src: gridImages[0].src,
954
- alt: gridImages[0].alt,
955
- className: cn("h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert", gridImages[0].className),
956
- optixFlowConfig
957
- }
958
- ),
959
- gridImages?.[1] && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative md:col-span-2", children: [
960
- /* @__PURE__ */ jsxRuntime.jsx(
961
- img.Img,
962
- {
963
- src: gridImages[1].src,
964
- alt: gridImages[1].alt,
965
- className: cn("h-full max-h-[500px] w-full object-cover dark:invert", gridImages[1].className),
966
- optixFlowConfig
967
- }
900
+ className,
901
+ containerClassName,
902
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
903
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
904
+ "div",
905
+ {
906
+ className: cn(
907
+ "z-10 flex flex-col items-center gap-8 text-center",
908
+ contentClassName
968
909
  ),
969
- renderImageOverlayAction
970
- ] })
971
- ] }),
972
- (logosSlot || logos && logos.length > 0) && /* @__PURE__ */ jsxRuntime.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 })
910
+ children: [
911
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-3xl", children: [
912
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
913
+ "h1",
914
+ {
915
+ className: cn(
916
+ "mb-4 text-4xl font-semibold text-balance lg:text-6xl",
917
+ headingClassName
918
+ ),
919
+ children: heading
920
+ }
921
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
922
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
923
+ "p",
924
+ {
925
+ className: cn(
926
+ "lg:text-xl text-balance",
927
+ descriptionClassName
928
+ ),
929
+ children: description
930
+ }
931
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
932
+ ] }),
933
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
934
+ "div",
935
+ {
936
+ className: cn(
937
+ "flex w-full flex-col justify-center gap-2 sm:flex-row",
938
+ actionsClassName
939
+ ),
940
+ children: renderActions
941
+ }
942
+ )
943
+ ]
944
+ }
945
+ ) }),
946
+ gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxRuntime.jsxs(
947
+ "div",
948
+ {
949
+ className: cn(
950
+ "mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5",
951
+ imageGridClassName
952
+ ),
953
+ children: [
954
+ gridImages?.[0] && /* @__PURE__ */ jsxRuntime.jsx(
955
+ img.Img,
956
+ {
957
+ src: gridImages[0].src,
958
+ alt: gridImages[0].alt,
959
+ className: cn(
960
+ "h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert",
961
+ gridImages[0].className
962
+ ),
963
+ optixFlowConfig
964
+ }
965
+ ),
966
+ gridImages?.[1] && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative md:col-span-2", children: [
967
+ /* @__PURE__ */ jsxRuntime.jsx(
968
+ img.Img,
969
+ {
970
+ src: gridImages[1].src,
971
+ alt: gridImages[1].alt,
972
+ className: cn(
973
+ "h-full max-h-[500px] w-full object-cover dark:invert",
974
+ gridImages[1].className
975
+ ),
976
+ optixFlowConfig
977
+ }
978
+ ),
979
+ renderImageOverlayAction
980
+ ] })
981
+ ]
982
+ }
983
+ )
973
984
  ] })
974
985
  }
975
986
  );
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-r_NhxVet.cjs';
3
- import { A as ActionConfig, I as ImageItem, L as LogoItem, O as OptixFlowConfig } from './blocks-DP3Vofl4.cjs';
3
+ import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DP3Vofl4.cjs';
4
4
  import 'react/jsx-runtime';
5
5
  import 'class-variance-authority';
6
6
  import './button-variants-CdNtNOuP.cjs';
@@ -35,14 +35,6 @@ interface HeroCenteredImageGridProps {
35
35
  * Image overlay action configuration
36
36
  */
37
37
  imageOverlayAction?: ActionConfig;
38
- /**
39
- * Array of logo items
40
- */
41
- logos?: LogoItem[];
42
- /**
43
- * Custom slot for logos (overrides logos array)
44
- */
45
- logosSlot?: React.ReactNode;
46
38
  /**
47
39
  * Background style for the section
48
40
  */
@@ -87,15 +79,11 @@ interface HeroCenteredImageGridProps {
87
79
  * Additional CSS classes for the image grid
88
80
  */
89
81
  imageGridClassName?: string;
90
- /**
91
- * Additional CSS classes for the logos container
92
- */
93
- logosClassName?: string;
94
82
  /**
95
83
  * OptixFlow image optimization configuration
96
84
  */
97
85
  optixFlowConfig?: OptixFlowConfig;
98
86
  }
99
- declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, logos, logosSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, logosClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
87
+ declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
100
88
 
101
89
  export { HeroCenteredImageGrid, type HeroCenteredImageGridProps };
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-DmVsuoHE.js';
3
- import { A as ActionConfig, I as ImageItem, L as LogoItem, O as OptixFlowConfig } from './blocks-XLPGq8A5.js';
3
+ import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-XLPGq8A5.js';
4
4
  import 'react/jsx-runtime';
5
5
  import 'class-variance-authority';
6
6
  import './button-variants-CdNtNOuP.js';
@@ -35,14 +35,6 @@ interface HeroCenteredImageGridProps {
35
35
  * Image overlay action configuration
36
36
  */
37
37
  imageOverlayAction?: ActionConfig;
38
- /**
39
- * Array of logo items
40
- */
41
- logos?: LogoItem[];
42
- /**
43
- * Custom slot for logos (overrides logos array)
44
- */
45
- logosSlot?: React.ReactNode;
46
38
  /**
47
39
  * Background style for the section
48
40
  */
@@ -87,15 +79,11 @@ interface HeroCenteredImageGridProps {
87
79
  * Additional CSS classes for the image grid
88
80
  */
89
81
  imageGridClassName?: string;
90
- /**
91
- * Additional CSS classes for the logos container
92
- */
93
- logosClassName?: string;
94
82
  /**
95
83
  * OptixFlow image optimization configuration
96
84
  */
97
85
  optixFlowConfig?: OptixFlowConfig;
98
86
  }
99
- declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, logos, logosSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, logosClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
87
+ declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
100
88
 
101
89
  export { HeroCenteredImageGrid, type HeroCenteredImageGridProps };