@opensite/ui 0.1.3 → 0.1.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 (101) hide show
  1. package/dist/components.cjs +1501 -0
  2. package/dist/components.cjs.map +1 -1
  3. package/dist/components.d.cts +13 -0
  4. package/dist/components.d.ts +13 -0
  5. package/dist/components.js +1489 -1
  6. package/dist/components.js.map +1 -1
  7. package/dist/footer-animated-social.cjs +272 -0
  8. package/dist/footer-animated-social.cjs.map +1 -0
  9. package/dist/footer-animated-social.d.cts +41 -0
  10. package/dist/footer-animated-social.d.ts +41 -0
  11. package/dist/footer-animated-social.js +250 -0
  12. package/dist/footer-animated-social.js.map +1 -0
  13. package/dist/footer-background-card.cjs +149 -0
  14. package/dist/footer-background-card.cjs.map +1 -0
  15. package/dist/footer-background-card.d.cts +74 -0
  16. package/dist/footer-background-card.d.ts +74 -0
  17. package/dist/footer-background-card.js +147 -0
  18. package/dist/footer-background-card.js.map +1 -0
  19. package/dist/footer-brand-description.cjs +244 -0
  20. package/dist/footer-brand-description.cjs.map +1 -0
  21. package/dist/footer-brand-description.d.cts +65 -0
  22. package/dist/footer-brand-description.d.ts +65 -0
  23. package/dist/footer-brand-description.js +222 -0
  24. package/dist/footer-brand-description.js.map +1 -0
  25. package/dist/footer-contact-card.cjs +238 -0
  26. package/dist/footer-contact-card.cjs.map +1 -0
  27. package/dist/footer-contact-card.d.cts +65 -0
  28. package/dist/footer-contact-card.d.ts +65 -0
  29. package/dist/footer-contact-card.js +216 -0
  30. package/dist/footer-contact-card.js.map +1 -0
  31. package/dist/footer-cta-banner.cjs +282 -0
  32. package/dist/footer-cta-banner.cjs.map +1 -0
  33. package/dist/footer-cta-banner.d.cts +77 -0
  34. package/dist/footer-cta-banner.d.ts +77 -0
  35. package/dist/footer-cta-banner.js +260 -0
  36. package/dist/footer-cta-banner.js.map +1 -0
  37. package/dist/footer-cta-social.cjs +221 -0
  38. package/dist/footer-cta-social.cjs.map +1 -0
  39. package/dist/footer-cta-social.d.cts +45 -0
  40. package/dist/footer-cta-social.d.ts +45 -0
  41. package/dist/footer-cta-social.js +199 -0
  42. package/dist/footer-cta-social.js.map +1 -0
  43. package/dist/footer-links-grid.cjs +119 -0
  44. package/dist/footer-links-grid.cjs.map +1 -0
  45. package/dist/footer-links-grid.d.cts +54 -0
  46. package/dist/footer-links-grid.d.ts +54 -0
  47. package/dist/footer-links-grid.js +117 -0
  48. package/dist/footer-links-grid.js.map +1 -0
  49. package/dist/footer-nav-social.cjs +273 -0
  50. package/dist/footer-nav-social.cjs.map +1 -0
  51. package/dist/footer-nav-social.d.cts +72 -0
  52. package/dist/footer-nav-social.d.ts +72 -0
  53. package/dist/footer-nav-social.js +251 -0
  54. package/dist/footer-nav-social.js.map +1 -0
  55. package/dist/footer-newsletter-grid.cjs +271 -0
  56. package/dist/footer-newsletter-grid.cjs.map +1 -0
  57. package/dist/footer-newsletter-grid.d.cts +74 -0
  58. package/dist/footer-newsletter-grid.d.ts +74 -0
  59. package/dist/footer-newsletter-grid.js +249 -0
  60. package/dist/footer-newsletter-grid.js.map +1 -0
  61. package/dist/footer-newsletter-minimal.cjs +271 -0
  62. package/dist/footer-newsletter-minimal.cjs.map +1 -0
  63. package/dist/footer-newsletter-minimal.d.cts +57 -0
  64. package/dist/footer-newsletter-minimal.d.ts +57 -0
  65. package/dist/footer-newsletter-minimal.js +249 -0
  66. package/dist/footer-newsletter-minimal.js.map +1 -0
  67. package/dist/footer-simple-centered.cjs +101 -0
  68. package/dist/footer-simple-centered.cjs.map +1 -0
  69. package/dist/footer-simple-centered.d.cts +52 -0
  70. package/dist/footer-simple-centered.d.ts +52 -0
  71. package/dist/footer-simple-centered.js +99 -0
  72. package/dist/footer-simple-centered.js.map +1 -0
  73. package/dist/footer-social-apps.cjs +247 -0
  74. package/dist/footer-social-apps.cjs.map +1 -0
  75. package/dist/footer-social-apps.d.cts +75 -0
  76. package/dist/footer-social-apps.d.ts +75 -0
  77. package/dist/footer-social-apps.js +225 -0
  78. package/dist/footer-social-apps.js.map +1 -0
  79. package/dist/footer-social-newsletter.cjs +267 -0
  80. package/dist/footer-social-newsletter.cjs.map +1 -0
  81. package/dist/footer-social-newsletter.d.cts +68 -0
  82. package/dist/footer-social-newsletter.d.ts +68 -0
  83. package/dist/footer-social-newsletter.js +245 -0
  84. package/dist/footer-social-newsletter.js.map +1 -0
  85. package/dist/index.cjs +1501 -0
  86. package/dist/index.cjs.map +1 -1
  87. package/dist/index.d.cts +13 -0
  88. package/dist/index.d.ts +13 -0
  89. package/dist/index.js +1489 -1
  90. package/dist/index.js.map +1 -1
  91. package/dist/registry.cjs +1971 -1
  92. package/dist/registry.cjs.map +1 -1
  93. package/dist/registry.js +1971 -1
  94. package/dist/registry.js.map +1 -1
  95. package/dist/team-media-showcase.cjs +182 -0
  96. package/dist/team-media-showcase.cjs.map +1 -0
  97. package/dist/team-media-showcase.d.cts +145 -0
  98. package/dist/team-media-showcase.d.ts +145 -0
  99. package/dist/team-media-showcase.js +160 -0
  100. package/dist/team-media-showcase.js.map +1 -0
  101. package/package.json +71 -1
package/dist/registry.js CHANGED
@@ -7,6 +7,7 @@ import { Img } from '@page-speed/img';
7
7
  import useEmblaCarousel from 'embla-carousel-react';
8
8
  import { Slot } from '@radix-ui/react-slot';
9
9
  import { cva } from 'class-variance-authority';
10
+ import { motion } from 'framer-motion';
10
11
 
11
12
  // lib/utils.ts
12
13
  function cn(...inputs) {
@@ -739,6 +740,1559 @@ function FeatureShowcase({
739
740
  ] })
740
741
  ] });
741
742
  }
743
+ var TeamMemberBackgroundImageCard = React4.forwardRef(({ className, imageUrl, imageAlt, children, optixFlowConfig, ...props }, ref) => {
744
+ return /* @__PURE__ */ jsxs(
745
+ "div",
746
+ {
747
+ ref,
748
+ className: cn(
749
+ "group h-[400px] relative w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-lg",
750
+ "transition-all duration-300 ease-in-out",
751
+ className
752
+ ),
753
+ ...props,
754
+ children: [
755
+ /* @__PURE__ */ jsx(
756
+ Img,
757
+ {
758
+ src: imageUrl,
759
+ alt: imageAlt,
760
+ className: "absolute inset-0 h-full w-full object-cover transition-transform duration-500 ease-in-out group-hover:scale-110",
761
+ optixFlowConfig
762
+ }
763
+ ),
764
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent" }),
765
+ children
766
+ ]
767
+ }
768
+ );
769
+ });
770
+ TeamMemberBackgroundImageCard.displayName = "TeamMemberBackgroundImageCard";
771
+ function TeamMediaShowcase({
772
+ items,
773
+ children,
774
+ listEyebrow,
775
+ background = "white",
776
+ verticalMargin = "lg",
777
+ gridClassName = "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6",
778
+ className,
779
+ optixFlowConfig
780
+ }) {
781
+ return /* @__PURE__ */ jsx(Section, { background, spacing: verticalMargin, className, children: /* @__PURE__ */ jsxs(Container, { children: [
782
+ children,
783
+ /* @__PURE__ */ jsx("div", { className: "space-y-12", children: /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
784
+ listEyebrow && typeof listEyebrow === "string" && listEyebrow.trim() !== "" && /* @__PURE__ */ jsx("div", { className: "text-md pt-8 uppercase text-dark-charcoal/70 tracking-[0.2em] font-semibold", children: listEyebrow }),
785
+ /* @__PURE__ */ jsx("div", { className: gridClassName, children: items.map((member, idx) => {
786
+ const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
787
+ return /* @__PURE__ */ jsx(
788
+ TeamMemberBackgroundImageCard,
789
+ {
790
+ imageUrl: member.imageSrc,
791
+ imageAlt,
792
+ className: member.cardClassName,
793
+ optixFlowConfig,
794
+ children: /* @__PURE__ */ jsxs("div", { className: "relative flex h-full flex-col justify-end p-6 text-card-foreground", children: [
795
+ /* @__PURE__ */ jsx("div", { className: "space-y-4 transition-transform duration-500 ease-in-out group-hover:-translate-y-12", children: /* @__PURE__ */ jsxs("div", { children: [
796
+ member.name && typeof member.name === "string" && member.name.trim() !== "" && /* @__PURE__ */ jsx("h4", { className: "text-3xl font-bold text-white", children: member.name }),
797
+ member.role && typeof member.role === "string" && member.role.trim() !== "" && /* @__PURE__ */ jsx("p", { className: "text-sm text-white/80", children: member.role })
798
+ ] }) }),
799
+ member.action ? /* @__PURE__ */ jsx("div", { className: "absolute -bottom-20 left-0 w-full pt-2 p-6 opacity-0 transition-all duration-500 ease-in-out group-hover:bottom-0 group-hover:opacity-100", children: member.action }) : null
800
+ ] })
801
+ },
802
+ idx
803
+ );
804
+ }) })
805
+ ] }) })
806
+ ] }) });
807
+ }
808
+ var defaultMenuItems = [
809
+ {
810
+ title: "Product",
811
+ links: [
812
+ { text: "Overview", url: "#" },
813
+ { text: "Pricing", url: "#" },
814
+ { text: "Marketplace", url: "#" },
815
+ { text: "Features", url: "#" },
816
+ { text: "Integrations", url: "#" }
817
+ ]
818
+ },
819
+ {
820
+ title: "Company",
821
+ links: [
822
+ { text: "About", url: "#" },
823
+ { text: "Team", url: "#" },
824
+ { text: "Blog", url: "#" },
825
+ { text: "Careers", url: "#" },
826
+ { text: "Contact", url: "#" }
827
+ ]
828
+ },
829
+ {
830
+ title: "Resources",
831
+ links: [
832
+ { text: "Help", url: "#" },
833
+ { text: "Sales", url: "#" },
834
+ { text: "Advertise", url: "#" }
835
+ ]
836
+ },
837
+ {
838
+ title: "Social",
839
+ links: [
840
+ { text: "Twitter", url: "#" },
841
+ { text: "Instagram", url: "#" },
842
+ { text: "LinkedIn", url: "#" }
843
+ ]
844
+ }
845
+ ];
846
+ var defaultBottomLinks = [
847
+ { text: "Terms and Conditions", url: "#" },
848
+ { text: "Privacy Policy", url: "#" }
849
+ ];
850
+ function FooterLinksGrid({
851
+ logo = {
852
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
853
+ alt: "Opensite AI",
854
+ title: "Opensite AI",
855
+ url: "https://opensite.ai"
856
+ },
857
+ className,
858
+ tagline = "Components made easy.",
859
+ menuItems = defaultMenuItems,
860
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
861
+ bottomLinks = defaultBottomLinks,
862
+ optixFlowConfig
863
+ }) {
864
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
865
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8 lg:grid-cols-6", children: [
866
+ /* @__PURE__ */ jsxs("div", { className: "col-span-2 mb-8 lg:mb-0", children: [
867
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-2 lg:justify-start", children: /* @__PURE__ */ jsxs("a", { href: logo.url, className: "flex items-center gap-2", children: [
868
+ /* @__PURE__ */ jsx(
869
+ Img,
870
+ {
871
+ src: logo.src,
872
+ alt: logo.alt,
873
+ className: "h-10 dark:invert",
874
+ optixFlowConfig
875
+ }
876
+ ),
877
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
878
+ ] }) }),
879
+ /* @__PURE__ */ jsx("p", { className: "mt-4 font-bold", children: tagline })
880
+ ] }),
881
+ menuItems.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
882
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-bold", children: section.title }),
883
+ /* @__PURE__ */ jsx("ul", { className: "space-y-4 text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
884
+ "li",
885
+ {
886
+ className: "font-medium hover:text-primary",
887
+ children: /* @__PURE__ */ jsx("a", { href: link.url, children: link.text })
888
+ },
889
+ linkIdx
890
+ )) })
891
+ ] }, sectionIdx))
892
+ ] }),
893
+ /* @__PURE__ */ jsxs("div", { className: "mt-24 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium text-muted-foreground md:flex-row md:items-center", children: [
894
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
895
+ /* @__PURE__ */ jsx("p", { children: copyright }),
896
+ /* @__PURE__ */ jsx(
897
+ "a",
898
+ {
899
+ href: "https://opensite.ai",
900
+ className: "hover:text-primary",
901
+ target: "_blank",
902
+ rel: "noopener noreferrer",
903
+ children: "AI Website and Automation Platform by Opensite"
904
+ }
905
+ )
906
+ ] }),
907
+ /* @__PURE__ */ jsx("ul", { className: "flex gap-4", children: bottomLinks.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { className: "underline hover:text-primary", children: /* @__PURE__ */ jsx("a", { href: link.url, children: link.text }) }, linkIdx)) })
908
+ ] })
909
+ ] }) }) });
910
+ }
911
+ var defaultSections = [
912
+ {
913
+ title: "Product",
914
+ links: [
915
+ { name: "Overview", href: "#" },
916
+ { name: "Pricing", href: "#" },
917
+ { name: "Marketplace", href: "#" },
918
+ { name: "Features", href: "#" },
919
+ { name: "Integrations", href: "#" }
920
+ ]
921
+ },
922
+ {
923
+ title: "Company",
924
+ links: [
925
+ { name: "About", href: "#" },
926
+ { name: "Team", href: "#" },
927
+ { name: "Blog", href: "#" },
928
+ { name: "Careers", href: "#" },
929
+ { name: "Contact", href: "#" }
930
+ ]
931
+ },
932
+ {
933
+ title: "Resources",
934
+ links: [
935
+ { name: "Help", href: "#" },
936
+ { name: "Sales", href: "#" },
937
+ { name: "Advertise", href: "#" }
938
+ ]
939
+ }
940
+ ];
941
+ var defaultSocialLinks = [
942
+ { icon: "simple-icons/discord", href: "#", label: "Discord" },
943
+ { icon: "simple-icons/reddit", href: "#", label: "Reddit" },
944
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
945
+ { icon: "simple-icons/telegram", href: "#", label: "Telegram" },
946
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
947
+ ];
948
+ function FooterSocialNewsletter({
949
+ logo = {
950
+ url: "https://opensite.ai",
951
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
952
+ alt: "Opensite AI",
953
+ title: "Opensite AI"
954
+ },
955
+ className,
956
+ sections = defaultSections,
957
+ socialLinks = defaultSocialLinks,
958
+ newsletterLabel = "Subscribe to our newsletter",
959
+ newsletterPlaceholder = "Email",
960
+ newsletterButtonText = "Subscribe",
961
+ privacyLinkText = "Privacy Policy",
962
+ privacyLinkUrl = "#",
963
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
964
+ optixFlowConfig
965
+ }) {
966
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
967
+ /* @__PURE__ */ jsxs("a", { href: logo.url, className: "flex items-center gap-2", children: [
968
+ /* @__PURE__ */ jsx(
969
+ Img,
970
+ {
971
+ src: logo.src,
972
+ alt: logo.alt,
973
+ className: "h-10",
974
+ optixFlowConfig
975
+ }
976
+ ),
977
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
978
+ ] }),
979
+ /* @__PURE__ */ jsxs("div", { className: "mt-14 grid gap-8 md:grid-cols-2 lg:grid-cols-5 xl:grid-cols-4", children: [
980
+ sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
981
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-bold", children: section.title }),
982
+ /* @__PURE__ */ jsx("ul", { className: "space-y-4 text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
983
+ "li",
984
+ {
985
+ className: "font-medium hover:text-primary",
986
+ children: /* @__PURE__ */ jsx("a", { href: link.href, children: link.name })
987
+ },
988
+ linkIdx
989
+ )) })
990
+ ] }, sectionIdx)),
991
+ /* @__PURE__ */ jsxs("div", { className: "lg:col-span-2 xl:col-span-1", children: [
992
+ /* @__PURE__ */ jsx("ul", { className: "mb-10 flex items-center gap-2 text-muted-foreground", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsx("a", { href: social.href, "aria-label": social.label, children: /* @__PURE__ */ jsx("span", { className: "flex size-12 items-center justify-center rounded-full bg-muted transition-colors hover:text-primary", children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 24 }) }) }) }, idx)) }),
993
+ /* @__PURE__ */ jsxs("div", { className: "grid w-full max-w-sm items-center gap-1.5", children: [
994
+ /* @__PURE__ */ jsx("label", { htmlFor: "newsletter-email", className: "text-sm font-medium", children: newsletterLabel }),
995
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-sm items-center space-x-2", children: [
996
+ /* @__PURE__ */ jsx(
997
+ "input",
998
+ {
999
+ type: "email",
1000
+ id: "newsletter-email",
1001
+ placeholder: newsletterPlaceholder,
1002
+ className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
1003
+ }
1004
+ ),
1005
+ /* @__PURE__ */ jsx(
1006
+ "button",
1007
+ {
1008
+ type: "submit",
1009
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1010
+ children: newsletterButtonText
1011
+ }
1012
+ )
1013
+ ] }),
1014
+ /* @__PURE__ */ jsxs("p", { className: "mt-1 text-xs text-muted-foreground", children: [
1015
+ "By submitting, you agree to our",
1016
+ /* @__PURE__ */ jsx("a", { href: privacyLinkUrl, className: "ml-1 text-primary hover:underline", children: privacyLinkText })
1017
+ ] })
1018
+ ] })
1019
+ ] })
1020
+ ] }),
1021
+ /* @__PURE__ */ jsx("div", { className: "mt-20 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium text-muted-foreground md:flex-row md:items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
1022
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1023
+ /* @__PURE__ */ jsx(
1024
+ "a",
1025
+ {
1026
+ href: "https://opensite.ai",
1027
+ className: "hover:text-primary",
1028
+ target: "_blank",
1029
+ rel: "noopener noreferrer",
1030
+ children: "AI Website and Automation Platform by Opensite"
1031
+ }
1032
+ )
1033
+ ] }) })
1034
+ ] }) }) });
1035
+ }
1036
+ var defaultSections2 = [
1037
+ {
1038
+ title: "Product",
1039
+ links: [
1040
+ { name: "Overview", href: "#" },
1041
+ { name: "Pricing", href: "#" },
1042
+ { name: "Marketplace", href: "#" },
1043
+ { name: "Features", href: "#" }
1044
+ ]
1045
+ },
1046
+ {
1047
+ title: "Company",
1048
+ links: [
1049
+ { name: "About", href: "#" },
1050
+ { name: "Team", href: "#" },
1051
+ { name: "Blog", href: "#" },
1052
+ { name: "Careers", href: "#" }
1053
+ ]
1054
+ },
1055
+ {
1056
+ title: "Resources",
1057
+ links: [
1058
+ { name: "Help", href: "#" },
1059
+ { name: "Sales", href: "#" },
1060
+ { name: "Advertise", href: "#" }
1061
+ ]
1062
+ }
1063
+ ];
1064
+ var defaultSocialLinks2 = [
1065
+ { icon: "simple-icons/discord", href: "#", label: "Discord" },
1066
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
1067
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
1068
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
1069
+ ];
1070
+ var defaultAppLinks = [
1071
+ { icon: "mdi/android", href: "#", label: "Android" },
1072
+ { icon: "mdi/apple", href: "#", label: "iOS" }
1073
+ ];
1074
+ function FooterSocialApps({
1075
+ logo = {
1076
+ url: "https://opensite.ai",
1077
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1078
+ alt: "Opensite AI",
1079
+ title: "Opensite AI"
1080
+ },
1081
+ className,
1082
+ sections = defaultSections2,
1083
+ socialLinks = defaultSocialLinks2,
1084
+ appLinks = defaultAppLinks,
1085
+ socialLabel = "Follow Us",
1086
+ appLabel = "Mobile App",
1087
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1088
+ optixFlowConfig
1089
+ }) {
1090
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
1091
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between gap-10 lg:flex-row lg:gap-20", children: [
1092
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-6", children: /* @__PURE__ */ jsxs("a", { href: logo.url, className: "flex items-center gap-2", children: [
1093
+ /* @__PURE__ */ jsx(
1094
+ Img,
1095
+ {
1096
+ src: logo.src,
1097
+ alt: logo.alt,
1098
+ className: "h-10",
1099
+ optixFlowConfig
1100
+ }
1101
+ ),
1102
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
1103
+ ] }) }),
1104
+ /* @__PURE__ */ jsx("div", { className: "grid flex-1 gap-8 sm:grid-cols-2 md:grid-cols-3", children: sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
1105
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-bold", children: section.title }),
1106
+ /* @__PURE__ */ jsx("ul", { className: "space-y-4 text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
1107
+ "li",
1108
+ {
1109
+ className: "font-medium hover:text-primary",
1110
+ children: /* @__PURE__ */ jsx("a", { href: link.href, children: link.name })
1111
+ },
1112
+ linkIdx
1113
+ )) })
1114
+ ] }, sectionIdx)) }),
1115
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
1116
+ /* @__PURE__ */ jsxs("div", { children: [
1117
+ /* @__PURE__ */ jsx("p", { className: "mb-3 font-bold", children: socialLabel }),
1118
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center gap-2 text-muted-foreground", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsx("a", { href: social.href, "aria-label": social.label, children: /* @__PURE__ */ jsx("span", { className: "flex size-12 items-center justify-center rounded-full bg-muted transition-colors hover:text-primary", children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 24 }) }) }) }, idx)) })
1119
+ ] }),
1120
+ /* @__PURE__ */ jsxs("div", { children: [
1121
+ /* @__PURE__ */ jsx("p", { className: "mb-3 font-bold", children: appLabel }),
1122
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center gap-2 text-muted-foreground", children: appLinks.map((app, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsx("a", { href: app.href, "aria-label": app.label, children: /* @__PURE__ */ jsx("span", { className: "flex size-12 items-center justify-center rounded-full bg-muted transition-colors hover:text-primary", children: /* @__PURE__ */ jsx(DynamicIcon, { name: app.icon, size: 24 }) }) }) }, idx)) })
1123
+ ] })
1124
+ ] })
1125
+ ] }),
1126
+ /* @__PURE__ */ jsx("div", { className: "mt-24 border-t pt-8", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between gap-4 text-center text-sm font-medium text-muted-foreground md:flex-row md:text-left", children: [
1127
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1128
+ /* @__PURE__ */ jsx(
1129
+ "a",
1130
+ {
1131
+ href: "https://opensite.ai",
1132
+ className: "hover:text-primary",
1133
+ target: "_blank",
1134
+ rel: "noopener noreferrer",
1135
+ children: "AI Website and Automation Platform by Opensite"
1136
+ }
1137
+ )
1138
+ ] }) })
1139
+ ] }) }) });
1140
+ }
1141
+ var defaultSitemap = [
1142
+ {
1143
+ title: "Company",
1144
+ links: [
1145
+ { title: "About Us", href: "#" },
1146
+ { title: "Careers", href: "#" },
1147
+ { title: "Contact", href: "#" },
1148
+ { title: "Press", href: "#" }
1149
+ ]
1150
+ },
1151
+ {
1152
+ title: "Support",
1153
+ links: [
1154
+ { title: "Help Center", href: "#" },
1155
+ { title: "Community", href: "#" },
1156
+ { title: "Status", href: "#" },
1157
+ { title: "API Docs", href: "#" }
1158
+ ]
1159
+ }
1160
+ ];
1161
+ var defaultBottomLinks2 = [
1162
+ { text: "Terms & Conditions", href: "#" },
1163
+ { text: "Privacy Policy", href: "#" }
1164
+ ];
1165
+ function FooterSimpleCentered({
1166
+ logo = {
1167
+ url: "https://opensite.ai",
1168
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1169
+ alt: "Opensite AI",
1170
+ title: "Opensite AI"
1171
+ },
1172
+ className,
1173
+ tagline = "Components made easy.",
1174
+ sitemap = defaultSitemap,
1175
+ copyright = `\xA9 Opensite AI ${(/* @__PURE__ */ new Date()).getFullYear()}`,
1176
+ bottomLinks = defaultBottomLinks2,
1177
+ optixFlowConfig
1178
+ }) {
1179
+ return /* @__PURE__ */ jsx("section", { className: cn("py-16", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
1180
+ /* @__PURE__ */ jsxs("div", { className: "relative mb-8 flex w-full flex-col gap-x-28 gap-y-8 md:flex-row md:justify-between md:gap-y-0", children: [
1181
+ /* @__PURE__ */ jsxs("div", { className: "max-w-96", children: [
1182
+ /* @__PURE__ */ jsxs("div", { className: "mb-6 flex items-center gap-3", children: [
1183
+ /* @__PURE__ */ jsx("div", { className: "flex size-12 items-center justify-center rounded-lg border border-border bg-accent p-2", children: /* @__PURE__ */ jsx(
1184
+ Img,
1185
+ {
1186
+ src: logo.src,
1187
+ alt: logo.alt,
1188
+ className: "size-12 h-full w-full object-contain object-center",
1189
+ optixFlowConfig
1190
+ }
1191
+ ) }),
1192
+ /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold", children: logo.title })
1193
+ ] }),
1194
+ /* @__PURE__ */ jsx("p", { className: "text-base font-medium text-muted-foreground", children: tagline })
1195
+ ] }),
1196
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col items-start gap-x-20 gap-y-14 xl:flex-row", children: /* @__PURE__ */ jsx("div", { className: "inline-grid w-fit grid-cols-1 gap-x-20 gap-y-14 sm:grid-cols-2", children: sitemap.map((section) => /* @__PURE__ */ jsxs("div", { className: "h-fit w-min", children: [
1197
+ /* @__PURE__ */ jsx("h4", { className: "mb-6 text-base font-semibold whitespace-nowrap", children: section.title }),
1198
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-base font-medium text-muted-foreground", children: section.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1199
+ "a",
1200
+ {
1201
+ href: link.href,
1202
+ className: "text-base whitespace-nowrap hover:text-accent-foreground",
1203
+ children: link.title
1204
+ }
1205
+ ) }, link.title)) })
1206
+ ] }, section.title)) }) })
1207
+ ] }),
1208
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-baseline justify-between gap-8 border-t border-border pt-8 md:flex-row md:gap-16", children: [
1209
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 text-xs text-muted-foreground sm:flex-row sm:items-center sm:gap-4 sm:text-sm", children: [
1210
+ /* @__PURE__ */ jsx("span", { children: copyright }),
1211
+ /* @__PURE__ */ jsx(
1212
+ "a",
1213
+ {
1214
+ href: "https://opensite.ai",
1215
+ className: "hover:text-accent-foreground",
1216
+ target: "_blank",
1217
+ rel: "noopener noreferrer",
1218
+ children: "AI Website and Automation Platform by Opensite"
1219
+ }
1220
+ )
1221
+ ] }),
1222
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col items-start gap-4 text-xs text-muted-foreground sm:text-sm md:flex-row lg:items-center", children: bottomLinks.map((link, idx) => /* @__PURE__ */ jsx("a", { href: link.href, className: "hover:text-accent-foreground", children: link.text }, idx)) })
1223
+ ] })
1224
+ ] }) }) });
1225
+ }
1226
+ var defaultSections3 = [
1227
+ {
1228
+ title: "Product",
1229
+ links: [
1230
+ { name: "Overview", href: "#" },
1231
+ { name: "Pricing", href: "#" },
1232
+ { name: "Marketplace", href: "#" },
1233
+ { name: "Features", href: "#" }
1234
+ ]
1235
+ },
1236
+ {
1237
+ title: "Company",
1238
+ links: [
1239
+ { name: "About", href: "#" },
1240
+ { name: "Team", href: "#" },
1241
+ { name: "Blog", href: "#" },
1242
+ { name: "Careers", href: "#" }
1243
+ ]
1244
+ },
1245
+ {
1246
+ title: "Resources",
1247
+ links: [
1248
+ { name: "Help", href: "#" },
1249
+ { name: "Sales", href: "#" },
1250
+ { name: "Advertise", href: "#" },
1251
+ { name: "Privacy", href: "#" }
1252
+ ]
1253
+ }
1254
+ ];
1255
+ var defaultSocialLinks3 = [
1256
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
1257
+ { icon: "simple-icons/facebook", href: "#", label: "Facebook" },
1258
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
1259
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
1260
+ ];
1261
+ var defaultLegalLinks = [
1262
+ { name: "Terms and Conditions", href: "#" },
1263
+ { name: "Privacy Policy", href: "#" }
1264
+ ];
1265
+ function FooterBrandDescription({
1266
+ logo = {
1267
+ url: "https://opensite.ai",
1268
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1269
+ alt: "Opensite AI",
1270
+ title: "Opensite AI"
1271
+ },
1272
+ className,
1273
+ sections = defaultSections3,
1274
+ description = "A collection of components for your startup business or side project.",
1275
+ socialLinks = defaultSocialLinks3,
1276
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1277
+ legalLinks = defaultLegalLinks,
1278
+ optixFlowConfig
1279
+ }) {
1280
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: "container", children: [
1281
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col justify-between gap-10 lg:flex-row lg:items-start lg:text-left", children: [
1282
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col justify-between gap-6 lg:items-start", children: [
1283
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 lg:justify-start", children: [
1284
+ /* @__PURE__ */ jsx("a", { href: logo.url, children: /* @__PURE__ */ jsx(
1285
+ Img,
1286
+ {
1287
+ src: logo.src,
1288
+ alt: logo.alt,
1289
+ className: "h-8",
1290
+ optixFlowConfig
1291
+ }
1292
+ ) }),
1293
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold", children: logo.title })
1294
+ ] }),
1295
+ /* @__PURE__ */ jsx("p", { className: "max-w-[70%] text-sm text-muted-foreground", children: description }),
1296
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center space-x-6 text-muted-foreground", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium hover:text-primary", children: /* @__PURE__ */ jsx("a", { href: social.href, "aria-label": social.label, children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 20 }) }) }, idx)) })
1297
+ ] }),
1298
+ /* @__PURE__ */ jsx("div", { className: "grid w-full gap-6 md:grid-cols-3 lg:gap-20", children: sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
1299
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-bold", children: section.title }),
1300
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-sm text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
1301
+ "li",
1302
+ {
1303
+ className: "font-medium hover:text-primary",
1304
+ children: /* @__PURE__ */ jsx("a", { href: link.href, children: link.name })
1305
+ },
1306
+ linkIdx
1307
+ )) })
1308
+ ] }, sectionIdx)) })
1309
+ ] }),
1310
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 flex flex-col justify-between gap-4 border-t py-8 text-xs font-medium text-muted-foreground md:flex-row md:items-center md:text-left", children: [
1311
+ /* @__PURE__ */ jsxs("div", { className: "order-2 flex flex-col gap-2 lg:order-1 lg:flex-row lg:items-center lg:gap-4", children: [
1312
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1313
+ /* @__PURE__ */ jsx(
1314
+ "a",
1315
+ {
1316
+ href: "https://opensite.ai",
1317
+ className: "hover:text-primary",
1318
+ target: "_blank",
1319
+ rel: "noopener noreferrer",
1320
+ children: "AI Website and Automation Platform by Opensite"
1321
+ }
1322
+ )
1323
+ ] }),
1324
+ /* @__PURE__ */ jsx("ul", { className: "order-1 flex flex-col gap-2 md:order-2 md:flex-row", children: legalLinks.map((link, idx) => /* @__PURE__ */ jsx("li", { className: "hover:text-primary", children: /* @__PURE__ */ jsx("a", { href: link.href, children: link.name }) }, idx)) })
1325
+ ] })
1326
+ ] }) });
1327
+ }
1328
+ var defaultSections4 = [
1329
+ {
1330
+ title: "Product",
1331
+ links: [
1332
+ { name: "Overview", href: "#" },
1333
+ { name: "Pricing", href: "#" },
1334
+ { name: "Marketplace", href: "#" },
1335
+ { name: "Features", href: "#" },
1336
+ { name: "Integrations", href: "#" },
1337
+ { name: "Marketing", href: "#" }
1338
+ ]
1339
+ },
1340
+ {
1341
+ title: "Company",
1342
+ links: [
1343
+ { name: "About", href: "#" },
1344
+ { name: "Team", href: "#" },
1345
+ { name: "Blog", href: "#" },
1346
+ { name: "Careers", href: "#" },
1347
+ { name: "Contact", href: "#" }
1348
+ ]
1349
+ }
1350
+ ];
1351
+ var defaultSocialLinks4 = [
1352
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
1353
+ { icon: "simple-icons/facebook", href: "#", label: "Facebook" },
1354
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
1355
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
1356
+ ];
1357
+ function FooterNewsletterGrid({
1358
+ logo = {
1359
+ url: "https://opensite.ai",
1360
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1361
+ alt: "Opensite AI",
1362
+ title: "Opensite AI"
1363
+ },
1364
+ className,
1365
+ description = "A collection of 100+ responsive HTML templates for your startup business or side project.",
1366
+ sections = defaultSections4,
1367
+ socialLinks = defaultSocialLinks4,
1368
+ newsletterTitle = "Newsletter",
1369
+ newsletterPlaceholder = "Email",
1370
+ newsletterButtonText = "Subscribe",
1371
+ privacyText = "By submitting, you agree to our",
1372
+ privacyLinkText = "Privacy Policy",
1373
+ privacyLinkUrl = "#",
1374
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1375
+ optixFlowConfig
1376
+ }) {
1377
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
1378
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-4 justify-between gap-10 lg:grid-cols-6 lg:text-left", children: [
1379
+ /* @__PURE__ */ jsxs("div", { className: "col-span-4 flex w-full flex-col gap-6 lg:col-span-2", children: [
1380
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 lg:justify-start", children: [
1381
+ /* @__PURE__ */ jsx("a", { href: logo.url, children: /* @__PURE__ */ jsx(
1382
+ Img,
1383
+ {
1384
+ src: logo.src,
1385
+ alt: logo.alt,
1386
+ className: "h-8",
1387
+ optixFlowConfig
1388
+ }
1389
+ ) }),
1390
+ /* @__PURE__ */ jsx("h2", { className: "text-xl font-semibold", children: logo.title })
1391
+ ] }),
1392
+ /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: description }),
1393
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center space-x-6", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx(
1394
+ "li",
1395
+ {
1396
+ className: "font-medium duration-200 hover:scale-110 hover:text-muted-foreground",
1397
+ children: /* @__PURE__ */ jsx("a", { href: social.href, "aria-label": social.label, children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 24 }) })
1398
+ },
1399
+ idx
1400
+ )) })
1401
+ ] }),
1402
+ sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: "col-span-2 md:col-span-1", children: [
1403
+ /* @__PURE__ */ jsx("h3", { className: "mb-5 font-medium", children: section.title }),
1404
+ /* @__PURE__ */ jsx("ul", { className: "space-y-4 text-sm text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
1405
+ "li",
1406
+ {
1407
+ className: "font-medium hover:text-primary",
1408
+ children: /* @__PURE__ */ jsx("a", { href: link.href, children: link.name })
1409
+ },
1410
+ linkIdx
1411
+ )) })
1412
+ ] }, sectionIdx)),
1413
+ /* @__PURE__ */ jsxs("div", { className: "col-span-4 md:col-span-2", children: [
1414
+ /* @__PURE__ */ jsx("h3", { className: "mb-5 font-medium", children: newsletterTitle }),
1415
+ /* @__PURE__ */ jsx("div", { className: "grid gap-1.5", children: /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center space-x-2", children: [
1416
+ /* @__PURE__ */ jsx(
1417
+ "input",
1418
+ {
1419
+ type: "email",
1420
+ placeholder: newsletterPlaceholder,
1421
+ className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
1422
+ }
1423
+ ),
1424
+ /* @__PURE__ */ jsx(
1425
+ "button",
1426
+ {
1427
+ type: "submit",
1428
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1429
+ children: newsletterButtonText
1430
+ }
1431
+ )
1432
+ ] }) }),
1433
+ /* @__PURE__ */ jsxs("p", { className: "mt-1 text-xs font-medium text-muted-foreground", children: [
1434
+ privacyText,
1435
+ /* @__PURE__ */ jsx("a", { href: privacyLinkUrl, className: "ml-1 text-primary hover:underline", children: privacyLinkText })
1436
+ ] })
1437
+ ] })
1438
+ ] }),
1439
+ /* @__PURE__ */ jsxs("div", { className: "mt-20 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium text-muted-foreground lg:flex-row lg:items-center lg:text-left", children: [
1440
+ /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 lg:flex-row lg:items-center lg:gap-4", children: /* @__PURE__ */ jsxs("p", { children: [
1441
+ /* @__PURE__ */ jsx("span", { className: "mr-1 font-bold text-primary", children: "Opensite AI" }),
1442
+ copyright
1443
+ ] }) }),
1444
+ /* @__PURE__ */ jsx(
1445
+ "a",
1446
+ {
1447
+ href: "https://opensite.ai",
1448
+ className: "hover:text-primary",
1449
+ target: "_blank",
1450
+ rel: "noopener noreferrer",
1451
+ children: "AI Website and Automation Platform by Opensite"
1452
+ }
1453
+ )
1454
+ ] })
1455
+ ] }) }) });
1456
+ }
1457
+ var defaultSections5 = [
1458
+ {
1459
+ title: "Product",
1460
+ links: [
1461
+ { name: "Overview", href: "#" },
1462
+ { name: "Pricing", href: "#" },
1463
+ { name: "Marketplace", href: "#" },
1464
+ { name: "Features", href: "#" }
1465
+ ]
1466
+ },
1467
+ {
1468
+ title: "Company",
1469
+ links: [
1470
+ { name: "About", href: "#" },
1471
+ { name: "Team", href: "#" },
1472
+ { name: "Blog", href: "#" },
1473
+ { name: "Careers", href: "#" }
1474
+ ]
1475
+ },
1476
+ {
1477
+ title: "Resources",
1478
+ links: [
1479
+ { name: "Help", href: "#" },
1480
+ { name: "Sales", href: "#" },
1481
+ { name: "Advertise", href: "#" }
1482
+ ]
1483
+ }
1484
+ ];
1485
+ var defaultSocialLinks5 = [
1486
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
1487
+ { icon: "simple-icons/facebook", href: "#", label: "Facebook" },
1488
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
1489
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
1490
+ ];
1491
+ var defaultLegalLinks2 = [
1492
+ { name: "Terms and Conditions", href: "#" },
1493
+ { name: "Privacy Policy", href: "#" }
1494
+ ];
1495
+ function FooterCtaBanner({
1496
+ logo = {
1497
+ url: "https://opensite.ai",
1498
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1499
+ alt: "Opensite AI",
1500
+ title: "Opensite AI"
1501
+ },
1502
+ className,
1503
+ ctaHeading = "Ready to get started?",
1504
+ ctaDescription = "Join thousands of satisfied customers using our platform to build amazing websites.",
1505
+ ctaButtonText = "Get Started",
1506
+ ctaButtonUrl = "#",
1507
+ sections = defaultSections5,
1508
+ socialLinks = defaultSocialLinks5,
1509
+ newsletterLabel = "Subscribe to our newsletter",
1510
+ newsletterPlaceholder = "Enter your email",
1511
+ newsletterButtonText = "Subscribe",
1512
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1513
+ legalLinks = defaultLegalLinks2,
1514
+ optixFlowConfig
1515
+ }) {
1516
+ return /* @__PURE__ */ jsx("section", { className: cn("dark bg-background py-16 text-foreground", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
1517
+ /* @__PURE__ */ jsxs("div", { className: "mb-16 rounded-lg bg-primary/10 p-8 text-center md:p-12", children: [
1518
+ /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-bold md:text-4xl", children: ctaHeading }),
1519
+ /* @__PURE__ */ jsx("p", { className: "mx-auto mb-6 max-w-2xl text-muted-foreground", children: ctaDescription }),
1520
+ /* @__PURE__ */ jsx(
1521
+ "a",
1522
+ {
1523
+ href: ctaButtonUrl,
1524
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 px-8",
1525
+ children: ctaButtonText
1526
+ }
1527
+ )
1528
+ ] }),
1529
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-5", children: [
1530
+ /* @__PURE__ */ jsxs("div", { className: "lg:col-span-2", children: [
1531
+ /* @__PURE__ */ jsxs("a", { href: logo.url, className: "mb-6 flex items-center gap-2", children: [
1532
+ /* @__PURE__ */ jsx(
1533
+ Img,
1534
+ {
1535
+ src: logo.src,
1536
+ alt: logo.alt,
1537
+ className: "h-8 invert",
1538
+ optixFlowConfig
1539
+ }
1540
+ ),
1541
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
1542
+ ] }),
1543
+ /* @__PURE__ */ jsxs("div", { className: "mb-6", children: [
1544
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-medium", children: newsletterLabel }),
1545
+ /* @__PURE__ */ jsxs("div", { className: "flex max-w-sm gap-2", children: [
1546
+ /* @__PURE__ */ jsx(
1547
+ "input",
1548
+ {
1549
+ type: "email",
1550
+ placeholder: newsletterPlaceholder,
1551
+ className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
1552
+ }
1553
+ ),
1554
+ /* @__PURE__ */ jsx(
1555
+ "button",
1556
+ {
1557
+ type: "submit",
1558
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1559
+ children: newsletterButtonText
1560
+ }
1561
+ )
1562
+ ] })
1563
+ ] }),
1564
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center gap-4", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1565
+ "a",
1566
+ {
1567
+ href: social.href,
1568
+ "aria-label": social.label,
1569
+ className: "text-muted-foreground transition-colors hover:text-foreground",
1570
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 20 })
1571
+ }
1572
+ ) }, idx)) })
1573
+ ] }),
1574
+ sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
1575
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-semibold", children: section.title }),
1576
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-sm text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: "hover:text-foreground", children: link.name }) }, linkIdx)) })
1577
+ ] }, sectionIdx))
1578
+ ] }),
1579
+ /* @__PURE__ */ jsxs("div", { className: "mt-16 flex flex-col justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground md:flex-row md:items-center", children: [
1580
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
1581
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1582
+ /* @__PURE__ */ jsx(
1583
+ "a",
1584
+ {
1585
+ href: "https://opensite.ai",
1586
+ className: "hover:text-foreground",
1587
+ target: "_blank",
1588
+ rel: "noopener noreferrer",
1589
+ children: "AI Website and Automation Platform by Opensite"
1590
+ }
1591
+ )
1592
+ ] }),
1593
+ /* @__PURE__ */ jsx("ul", { className: "flex gap-4", children: legalLinks.map((link, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: "hover:text-foreground", children: link.name }) }, idx)) })
1594
+ ] })
1595
+ ] }) }) });
1596
+ }
1597
+ var defaultSocialLinks6 = [
1598
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
1599
+ { icon: "simple-icons/facebook", href: "#", label: "Facebook" },
1600
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
1601
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
1602
+ ];
1603
+ var defaultNavLinks = [
1604
+ { name: "Home", href: "#" },
1605
+ { name: "About", href: "#" },
1606
+ { name: "Services", href: "#" },
1607
+ { name: "Contact", href: "#" }
1608
+ ];
1609
+ function FooterContactCard({
1610
+ logo = {
1611
+ url: "https://opensite.ai",
1612
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1613
+ alt: "Opensite AI",
1614
+ title: "Opensite AI"
1615
+ },
1616
+ className,
1617
+ heading = "Let's work together",
1618
+ email = "hello@opensite.ai",
1619
+ phone = "+1 (555) 123-4567",
1620
+ address = "123 Main Street, San Francisco, CA 94102",
1621
+ socialLinks = defaultSocialLinks6,
1622
+ navLinks = defaultNavLinks,
1623
+ location = "San Francisco",
1624
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1625
+ optixFlowConfig
1626
+ }) {
1627
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
1628
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-12 lg:grid-cols-2", children: [
1629
+ /* @__PURE__ */ jsxs("div", { children: [
1630
+ /* @__PURE__ */ jsxs("a", { href: logo.url, className: "mb-8 flex items-center gap-2", children: [
1631
+ /* @__PURE__ */ jsx(
1632
+ Img,
1633
+ {
1634
+ src: logo.src,
1635
+ alt: logo.alt,
1636
+ className: "h-10",
1637
+ optixFlowConfig
1638
+ }
1639
+ ),
1640
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
1641
+ ] }),
1642
+ /* @__PURE__ */ jsx("h2", { className: "mb-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", children: heading }),
1643
+ /* @__PURE__ */ jsxs("div", { className: "space-y-4 text-muted-foreground", children: [
1644
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("a", { href: `mailto:${email}`, className: "hover:text-primary", children: email }) }),
1645
+ /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx("a", { href: `tel:${phone}`, className: "hover:text-primary", children: phone }) }),
1646
+ /* @__PURE__ */ jsx("p", { children: address })
1647
+ ] })
1648
+ ] }),
1649
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between", children: [
1650
+ /* @__PURE__ */ jsxs("div", { children: [
1651
+ /* @__PURE__ */ jsx("p", { className: "mb-4 font-medium", children: "Follow Us" }),
1652
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center gap-4", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1653
+ "a",
1654
+ {
1655
+ href: social.href,
1656
+ "aria-label": social.label,
1657
+ className: "flex size-12 items-center justify-center rounded-full bg-muted text-muted-foreground transition-colors hover:bg-primary hover:text-primary-foreground",
1658
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 20 })
1659
+ }
1660
+ ) }, idx)) })
1661
+ ] }),
1662
+ /* @__PURE__ */ jsx("nav", { className: "mt-8", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-wrap gap-6", children: navLinks.map((link, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1663
+ "a",
1664
+ {
1665
+ href: link.href,
1666
+ className: "text-muted-foreground hover:text-primary",
1667
+ children: link.name
1668
+ }
1669
+ ) }, idx)) }) })
1670
+ ] })
1671
+ ] }),
1672
+ /* @__PURE__ */ jsxs("div", { className: "mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm text-muted-foreground md:flex-row md:items-center", children: [
1673
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
1674
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1675
+ /* @__PURE__ */ jsx(
1676
+ "a",
1677
+ {
1678
+ href: "https://opensite.ai",
1679
+ className: "hover:text-primary",
1680
+ target: "_blank",
1681
+ rel: "noopener noreferrer",
1682
+ children: "AI Website and Automation Platform by Opensite"
1683
+ }
1684
+ )
1685
+ ] }),
1686
+ /* @__PURE__ */ jsxs("p", { children: [
1687
+ "Designed in ",
1688
+ /* @__PURE__ */ jsx("strong", { children: location })
1689
+ ] })
1690
+ ] })
1691
+ ] }) }) });
1692
+ }
1693
+ var defaultMenuItems2 = [
1694
+ {
1695
+ title: "Portfolio",
1696
+ links: [
1697
+ { text: "Overview", url: "#" },
1698
+ { text: "Projects", url: "#" },
1699
+ { text: "Pricing", url: "#" },
1700
+ { text: "About", url: "#" }
1701
+ ]
1702
+ },
1703
+ {
1704
+ title: "Social",
1705
+ links: [
1706
+ { text: "Twitter", url: "#" },
1707
+ { text: "Instagram", url: "#" },
1708
+ { text: "LinkedIn", url: "#" }
1709
+ ]
1710
+ }
1711
+ ];
1712
+ var defaultContact = {
1713
+ phone: "+1 (555) 123-4567",
1714
+ email: "hello@opensite.ai",
1715
+ location: "NYC",
1716
+ timezone: "EST"
1717
+ };
1718
+ var defaultBottomLinks3 = [
1719
+ { text: "Terms and Conditions", url: "#" },
1720
+ { text: "Privacy Policy", url: "#" }
1721
+ ];
1722
+ function FooterBackgroundCard({
1723
+ logo = {
1724
+ url: "https://opensite.ai",
1725
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
1726
+ alt: "Opensite AI",
1727
+ title: "Opensite AI"
1728
+ },
1729
+ className,
1730
+ backgroundImage = "https://images.unsplash.com/photo-1506905925346-21bda4d32df4?w=1920&q=80",
1731
+ profileImage = "https://images.unsplash.com/photo-1472099645785-5658abf4ff4e?w=200&q=80",
1732
+ tagline = "Let's Connect",
1733
+ personalMessage = "I'm passionate about creating beautiful, functional components that make your projects shine. Let's work together to bring your vision to life.",
1734
+ ctaText = "Schedule a call",
1735
+ ctaUrl = "#",
1736
+ contact = defaultContact,
1737
+ menuItems = defaultMenuItems2,
1738
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
1739
+ bottomLinks = defaultBottomLinks3,
1740
+ optixFlowConfig
1741
+ }) {
1742
+ return /* @__PURE__ */ jsx(
1743
+ "section",
1744
+ {
1745
+ className: cn("bg-cover bg-center bg-no-repeat py-32", className),
1746
+ style: {
1747
+ backgroundImage: `url('${backgroundImage}')`
1748
+ },
1749
+ children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-7xl rounded-lg bg-background p-8 shadow-lg md:p-12", children: [
1750
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4 lg:gap-12", children: [
1751
+ /* @__PURE__ */ jsxs("div", { className: "lg:col-span-1", children: [
1752
+ /* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center gap-4", children: [
1753
+ /* @__PURE__ */ jsx(
1754
+ Img,
1755
+ {
1756
+ src: profileImage,
1757
+ alt: "Profile",
1758
+ className: "h-16 w-16 rounded-full object-cover",
1759
+ optixFlowConfig
1760
+ }
1761
+ ),
1762
+ /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: tagline })
1763
+ ] }),
1764
+ /* @__PURE__ */ jsx("p", { className: "mb-6 text-sm leading-relaxed text-muted-foreground", children: personalMessage }),
1765
+ /* @__PURE__ */ jsx(
1766
+ "a",
1767
+ {
1768
+ href: ctaUrl,
1769
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1770
+ children: ctaText
1771
+ }
1772
+ )
1773
+ ] }),
1774
+ menuItems.map((menu, idx) => /* @__PURE__ */ jsxs("div", { children: [
1775
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-medium tracking-wider text-primary uppercase", children: menu.title }),
1776
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3", children: menu.links.map((link, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1777
+ "a",
1778
+ {
1779
+ href: link.url,
1780
+ className: "border-b border-transparent text-muted-foreground transition-all duration-300 ease-in-out hover:border-primary hover:text-primary",
1781
+ children: link.text
1782
+ }
1783
+ ) }, index)) })
1784
+ ] }, idx)),
1785
+ /* @__PURE__ */ jsxs("div", { children: [
1786
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-medium tracking-wider text-primary uppercase", children: "Contact" }),
1787
+ /* @__PURE__ */ jsxs("ul", { className: "space-y-3", children: [
1788
+ /* @__PURE__ */ jsx("li", { className: "text-muted-foreground", children: contact.phone }),
1789
+ /* @__PURE__ */ jsx("li", { className: "text-muted-foreground", children: contact.email }),
1790
+ /* @__PURE__ */ jsxs("li", { className: "text-muted-foreground", children: [
1791
+ contact.location,
1792
+ " \u2022 ",
1793
+ contact.timezone
1794
+ ] })
1795
+ ] })
1796
+ ] })
1797
+ ] }),
1798
+ /* @__PURE__ */ jsxs("div", { className: "mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 md:flex-row", children: [
1799
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 text-sm text-muted-foreground md:flex-row md:items-center md:gap-4", children: [
1800
+ /* @__PURE__ */ jsx("p", { children: copyright }),
1801
+ /* @__PURE__ */ jsx(
1802
+ "a",
1803
+ {
1804
+ href: "https://opensite.ai",
1805
+ className: "hover:text-primary",
1806
+ target: "_blank",
1807
+ rel: "noopener noreferrer",
1808
+ children: "AI Website and Automation Platform by Opensite"
1809
+ }
1810
+ )
1811
+ ] }),
1812
+ /* @__PURE__ */ jsx("div", { className: "flex gap-4", children: bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
1813
+ "a",
1814
+ {
1815
+ href: link.url,
1816
+ className: "text-sm text-muted-foreground transition-colors hover:text-primary",
1817
+ children: link.text
1818
+ },
1819
+ idx
1820
+ )) })
1821
+ ] })
1822
+ ] }) })
1823
+ }
1824
+ );
1825
+ }
1826
+ var defaultSocialLinks7 = [
1827
+ { name: "Instagram", href: "#" },
1828
+ { name: "X (Twitter)", href: "#" }
1829
+ ];
1830
+ var containerVariants = {
1831
+ hidden: { opacity: 0 },
1832
+ visible: {
1833
+ opacity: 1,
1834
+ transition: {
1835
+ duration: 0.6,
1836
+ staggerChildren: 0.1
1837
+ }
1838
+ }
1839
+ };
1840
+ var itemVariants = {
1841
+ hidden: { opacity: 0, y: 20 },
1842
+ visible: {
1843
+ opacity: 1,
1844
+ y: 0,
1845
+ transition: { duration: 0.5 }
1846
+ }
1847
+ };
1848
+ function FooterAnimatedSocial({
1849
+ className,
1850
+ heading = "Connect with Me",
1851
+ description = "No commitments. Just a quick chat to see if we click.",
1852
+ ctaText = "Get in Touch",
1853
+ ctaUrl = "#",
1854
+ socialLinks = defaultSocialLinks7,
1855
+ copyright = `\xA9 Copyright ${(/* @__PURE__ */ new Date()).getFullYear()}. All rights Reserved.`
1856
+ }) {
1857
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsx("footer", { children: /* @__PURE__ */ jsxs("div", { children: [
1858
+ /* @__PURE__ */ jsxs(
1859
+ motion.div,
1860
+ {
1861
+ variants: containerVariants,
1862
+ initial: "hidden",
1863
+ whileInView: "visible",
1864
+ viewport: { once: true },
1865
+ className: "flex flex-col justify-between md:flex-row md:items-center",
1866
+ children: [
1867
+ /* @__PURE__ */ jsxs("div", { className: "space-y-8", children: [
1868
+ /* @__PURE__ */ jsxs(motion.div, { variants: itemVariants, className: "space-y-6", children: [
1869
+ /* @__PURE__ */ jsx("h2", { className: "text-4xl leading-tight font-bold text-foreground lg:text-5xl", children: heading }),
1870
+ /* @__PURE__ */ jsx("p", { className: "max-w-md text-lg leading-relaxed text-muted-foreground", children: description })
1871
+ ] }),
1872
+ /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx(
1873
+ "a",
1874
+ {
1875
+ href: ctaUrl,
1876
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-11 px-8",
1877
+ children: ctaText
1878
+ }
1879
+ ) })
1880
+ ] }),
1881
+ /* @__PURE__ */ jsx("div", { className: "mt-5 space-y-8 md:mt-0", children: /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx("div", { className: "space-y-6", children: socialLinks.map((link) => /* @__PURE__ */ jsx(
1882
+ motion.div,
1883
+ {
1884
+ variants: itemVariants,
1885
+ whileHover: { x: 4 },
1886
+ transition: {
1887
+ type: "spring",
1888
+ stiffness: 300,
1889
+ damping: 20
1890
+ },
1891
+ children: /* @__PURE__ */ jsxs(
1892
+ "a",
1893
+ {
1894
+ href: link.href,
1895
+ className: "group flex items-center gap-2 py-2 text-foreground transition-colors hover:text-foreground/80",
1896
+ children: [
1897
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-medium", children: link.name }),
1898
+ /* @__PURE__ */ jsx(
1899
+ DynamicIcon,
1900
+ {
1901
+ name: "lucide/arrow-up-right",
1902
+ size: 24,
1903
+ className: "transition-transform group-hover:translate-x-0.5 group-hover:-translate-y-0.5"
1904
+ }
1905
+ )
1906
+ ]
1907
+ }
1908
+ )
1909
+ },
1910
+ link.name
1911
+ )) }) }) })
1912
+ ]
1913
+ }
1914
+ ),
1915
+ /* @__PURE__ */ jsxs(
1916
+ motion.div,
1917
+ {
1918
+ variants: containerVariants,
1919
+ initial: "hidden",
1920
+ whileInView: "visible",
1921
+ viewport: { once: true },
1922
+ className: "mt-16",
1923
+ children: [
1924
+ /* @__PURE__ */ jsx(motion.div, { variants: itemVariants, children: /* @__PURE__ */ jsx("div", { className: "mb-8 h-px w-full bg-border" }) }),
1925
+ /* @__PURE__ */ jsxs(
1926
+ motion.div,
1927
+ {
1928
+ variants: itemVariants,
1929
+ className: "flex flex-col items-start justify-between gap-4 sm:flex-row sm:items-center",
1930
+ children: [
1931
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: copyright }),
1932
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-6 text-sm", children: /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: /* @__PURE__ */ jsx(
1933
+ motion.a,
1934
+ {
1935
+ href: "https://opensite.ai",
1936
+ className: "underline underline-offset-4 transition-colors hover:text-foreground",
1937
+ whileHover: { scale: 1.05 },
1938
+ transition: {
1939
+ type: "spring",
1940
+ stiffness: 300,
1941
+ damping: 20
1942
+ },
1943
+ target: "_blank",
1944
+ rel: "noopener noreferrer",
1945
+ children: "AI Website and Automation Platform by Opensite"
1946
+ }
1947
+ ) }) })
1948
+ ]
1949
+ }
1950
+ )
1951
+ ]
1952
+ }
1953
+ )
1954
+ ] }) }) }) });
1955
+ }
1956
+ var defaultNavLinks2 = [
1957
+ { label: "Home", href: "#" },
1958
+ { label: "Collection", href: "#" },
1959
+ { label: "Projects", href: "#" },
1960
+ { label: "Pricing", href: "#" },
1961
+ { label: "Login", href: "#" }
1962
+ ];
1963
+ var defaultSocialLinks8 = [
1964
+ { label: "Linkedin", href: "#" },
1965
+ { label: "Twitter", href: "#" },
1966
+ { label: "Facebook", href: "#" }
1967
+ ];
1968
+ var defaultFooterLinks = [
1969
+ { label: "Privacy Policy", href: "#" },
1970
+ { label: "Terms & Conditions", href: "#" }
1971
+ ];
1972
+ function FooterNewsletterMinimal({
1973
+ className,
1974
+ heading = "Unlock 800+ blocks now",
1975
+ supportEmail = "hi@opensite.ai",
1976
+ navLinks = defaultNavLinks2,
1977
+ socialLinks = defaultSocialLinks8,
1978
+ footerLinks = defaultFooterLinks,
1979
+ newsletterLabel = "Sign up for newsletter :",
1980
+ newsletterPlaceholder = "Name*",
1981
+ location = "San Francisco, CA"
1982
+ }) {
1983
+ return /* @__PURE__ */ jsx(
1984
+ "section",
1985
+ {
1986
+ className: cn("dark bg-background py-32 text-foreground", className),
1987
+ children: /* @__PURE__ */ jsxs("div", { className: "container", children: [
1988
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between gap-15 lg:flex-row", children: [
1989
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-10", children: [
1990
+ /* @__PURE__ */ jsx("p", { className: "relative text-4xl font-medium tracking-tight lg:text-5xl", children: heading }),
1991
+ /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
1992
+ /* @__PURE__ */ jsx("p", { children: "Get Support : " }),
1993
+ /* @__PURE__ */ jsx("a", { href: `mailto:${supportEmail}`, children: supportEmail })
1994
+ ] })
1995
+ ] }),
1996
+ /* @__PURE__ */ jsxs("div", { className: "grid w-full max-w-xs grid-cols-2 gap-10 text-sm font-light lg:text-base", children: [
1997
+ /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: navLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1998
+ "a",
1999
+ {
2000
+ href: item.href,
2001
+ className: "tracking-tight text-foreground hover:text-foreground/30",
2002
+ children: item.label
2003
+ }
2004
+ ) }, item.label)) }),
2005
+ /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: socialLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
2006
+ "a",
2007
+ {
2008
+ href: item.href,
2009
+ className: "group flex items-center gap-1 tracking-tight text-foreground hover:text-foreground/30",
2010
+ children: [
2011
+ item.label,
2012
+ " ",
2013
+ /* @__PURE__ */ jsx(
2014
+ DynamicIcon,
2015
+ {
2016
+ name: "lucide/arrow-up-right",
2017
+ size: 14,
2018
+ className: "text-foreground group-hover:text-muted-foreground/50"
2019
+ }
2020
+ )
2021
+ ]
2022
+ }
2023
+ ) }, item.label)) })
2024
+ ] })
2025
+ ] }),
2026
+ /* @__PURE__ */ jsxs("div", { className: "mt-20 flex flex-col justify-between gap-15 lg:flex-row", children: [
2027
+ /* @__PURE__ */ jsx("div", { className: "flex w-full max-w-md flex-col gap-10", children: /* @__PURE__ */ jsxs("div", { className: "space-y-1 text-sm font-light tracking-tight lg:text-base", children: [
2028
+ /* @__PURE__ */ jsx("p", { children: newsletterLabel }),
2029
+ /* @__PURE__ */ jsxs("form", { className: "flex w-full items-end border-b border-b-foreground/10", children: [
2030
+ /* @__PURE__ */ jsx(
2031
+ "input",
2032
+ {
2033
+ type: "text",
2034
+ placeholder: newsletterPlaceholder,
2035
+ className: "mt-10 w-full rounded-none border-0 bg-transparent p-0 uppercase shadow-none placeholder:text-foreground/20 focus:outline-none focus:ring-0 lg:text-base"
2036
+ }
2037
+ ),
2038
+ /* @__PURE__ */ jsx("button", { type: "submit", className: "p-2 hover:bg-muted/20", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 20 }) })
2039
+ ] })
2040
+ ] }) }),
2041
+ /* @__PURE__ */ jsxs("div", { className: "grid w-full max-w-xs grid-cols-2 gap-10 text-sm font-light lg:text-base", children: [
2042
+ /* @__PURE__ */ jsx("div", { className: "w-32", children: location }),
2043
+ /* @__PURE__ */ jsx("ul", { className: "space-y-1", children: footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2044
+ "a",
2045
+ {
2046
+ href: item.href,
2047
+ className: "group flex items-center gap-1 tracking-tight text-foreground hover:text-foreground/30",
2048
+ children: item.label
2049
+ }
2050
+ ) }, item.label)) })
2051
+ ] })
2052
+ ] }),
2053
+ /* @__PURE__ */ jsx("div", { className: "mt-20 w-full lg:mt-32", children: /* @__PURE__ */ jsx(
2054
+ motion.div,
2055
+ {
2056
+ initial: { opacity: 0, y: 20 },
2057
+ whileInView: { opacity: 1, y: 0 },
2058
+ viewport: { once: true },
2059
+ transition: { duration: 0.6 },
2060
+ className: "text-center",
2061
+ children: /* @__PURE__ */ jsx("span", { className: "text-6xl font-bold tracking-tighter md:text-8xl lg:text-9xl", children: "OPENSITE" })
2062
+ }
2063
+ ) }),
2064
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 text-center text-sm text-muted-foreground", children: [
2065
+ /* @__PURE__ */ jsxs("p", { children: [
2066
+ "\xA9 ",
2067
+ (/* @__PURE__ */ new Date()).getFullYear(),
2068
+ " Opensite AI. All rights reserved."
2069
+ ] }),
2070
+ /* @__PURE__ */ jsx(
2071
+ "a",
2072
+ {
2073
+ href: "https://opensite.ai",
2074
+ className: "mt-2 inline-block hover:text-foreground",
2075
+ target: "_blank",
2076
+ rel: "noopener noreferrer",
2077
+ children: "AI Website and Automation Platform by Opensite"
2078
+ }
2079
+ )
2080
+ ] })
2081
+ ] })
2082
+ }
2083
+ );
2084
+ }
2085
+ var defaultSocialLinks9 = [
2086
+ { icon: "lucide/twitter", url: "#", label: "Twitter" },
2087
+ { icon: "lucide/instagram", url: "#", label: "Instagram" },
2088
+ { icon: "lucide/facebook", url: "#", label: "Facebook" }
2089
+ ];
2090
+ function FooterCtaSocial({
2091
+ className,
2092
+ preHeading = "Let's connect",
2093
+ heading = "You want to scale faster? Try Opensite today.",
2094
+ description = "Join thousands of companies already using our platform to scale their operations",
2095
+ buttonText = "Get Started Now",
2096
+ buttonUrl = "#",
2097
+ email = "hello@opensite.ai",
2098
+ socialLinks = defaultSocialLinks9
2099
+ }) {
2100
+ return /* @__PURE__ */ jsx("section", { className: cn("relative py-32", className), children: /* @__PURE__ */ jsx("div", { className: "relative z-10 container", children: /* @__PURE__ */ jsxs("div", { className: "mx-auto flex max-w-3xl flex-col items-center gap-2 text-center", children: [
2101
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center gap-4", children: [
2102
+ /* @__PURE__ */ jsx("div", { className: "h-px flex-1 bg-[linear-gradient(270deg,var(--primary,rgb(255,255,255))_0%,var(--secondary,rgb(0,0,0))_100%)] opacity-50" }),
2103
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground italic md:text-base", children: preHeading }),
2104
+ /* @__PURE__ */ jsx("div", { className: "h-px flex-1 bg-[linear-gradient(270deg,var(--secondary,rgb(0,0,0))_0%,var(--primary,rgb(255,255,255))_100%)] opacity-50" })
2105
+ ] }),
2106
+ /* @__PURE__ */ jsx("h2", { className: "py-6 text-5xl font-bold md:text-6xl", children: heading }),
2107
+ /* @__PURE__ */ jsx("p", { className: "max-w-2xl text-base text-muted-foreground md:text-lg", children: description }),
2108
+ /* @__PURE__ */ jsxs(
2109
+ "a",
2110
+ {
2111
+ href: buttonUrl,
2112
+ className: "group relative mt-4 inline-flex items-center gap-2 rounded-lg border bg-background px-8 py-4 text-base font-medium transition-all hover:bg-muted",
2113
+ children: [
2114
+ /* @__PURE__ */ jsx("span", { children: buttonText }),
2115
+ /* @__PURE__ */ jsx(
2116
+ DynamicIcon,
2117
+ {
2118
+ name: "lucide/arrow-up-right",
2119
+ size: 16,
2120
+ className: "transition-transform group-hover:translate-x-1 group-hover:-translate-y-1"
2121
+ }
2122
+ )
2123
+ ]
2124
+ }
2125
+ ),
2126
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-6 pt-8", children: socialLinks.map((link, idx) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
2127
+ /* @__PURE__ */ jsx(
2128
+ "a",
2129
+ {
2130
+ href: link.url,
2131
+ className: "text-muted-foreground transition-colors hover:text-foreground",
2132
+ "aria-label": link.label,
2133
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon, size: 20 })
2134
+ }
2135
+ ),
2136
+ idx < socialLinks.length - 1 && /* @__PURE__ */ jsx("div", { className: "h-4 w-px bg-border" })
2137
+ ] }, idx)) }),
2138
+ /* @__PURE__ */ jsx("p", { className: "pt-2 text-sm text-muted-foreground md:text-base", children: /* @__PURE__ */ jsx(
2139
+ "a",
2140
+ {
2141
+ href: `mailto:${email}`,
2142
+ className: "transition-colors hover:text-foreground",
2143
+ children: email
2144
+ }
2145
+ ) }),
2146
+ /* @__PURE__ */ jsxs("div", { className: "mt-8 border-t pt-8 text-sm text-muted-foreground", children: [
2147
+ /* @__PURE__ */ jsxs("p", { children: [
2148
+ "\xA9 ",
2149
+ (/* @__PURE__ */ new Date()).getFullYear(),
2150
+ " Opensite AI. All rights reserved."
2151
+ ] }),
2152
+ /* @__PURE__ */ jsx(
2153
+ "a",
2154
+ {
2155
+ href: "https://opensite.ai",
2156
+ className: "mt-2 inline-block hover:text-foreground",
2157
+ target: "_blank",
2158
+ rel: "noopener noreferrer",
2159
+ children: "AI Website and Automation Platform by Opensite"
2160
+ }
2161
+ )
2162
+ ] })
2163
+ ] }) }) });
2164
+ }
2165
+ var defaultSections6 = [
2166
+ {
2167
+ title: "Product",
2168
+ links: [
2169
+ { name: "Overview", href: "#" },
2170
+ { name: "Pricing", href: "#" },
2171
+ { name: "Marketplace", href: "#" },
2172
+ { name: "Features", href: "#" }
2173
+ ]
2174
+ },
2175
+ {
2176
+ title: "Company",
2177
+ links: [
2178
+ { name: "About", href: "#" },
2179
+ { name: "Team", href: "#" },
2180
+ { name: "Blog", href: "#" },
2181
+ { name: "Careers", href: "#" }
2182
+ ]
2183
+ },
2184
+ {
2185
+ title: "Resources",
2186
+ links: [
2187
+ { name: "Help", href: "#" },
2188
+ { name: "Sales", href: "#" },
2189
+ { name: "Advertise", href: "#" }
2190
+ ]
2191
+ }
2192
+ ];
2193
+ var defaultSocialLinks10 = [
2194
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" },
2195
+ { icon: "simple-icons/facebook", href: "#", label: "Facebook" },
2196
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" },
2197
+ { icon: "simple-icons/linkedin", href: "#", label: "LinkedIn" }
2198
+ ];
2199
+ var defaultLegalLinks3 = [
2200
+ { name: "Terms and Conditions", href: "#" },
2201
+ { name: "Privacy Policy", href: "#" }
2202
+ ];
2203
+ function FooterNavSocial({
2204
+ logo = {
2205
+ url: "https://opensite.ai",
2206
+ src: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/os-suircle-black-white.png",
2207
+ alt: "Opensite AI",
2208
+ title: "Opensite AI"
2209
+ },
2210
+ className,
2211
+ sections = defaultSections6,
2212
+ socialLinks = defaultSocialLinks10,
2213
+ newsletterHeading = "Stay Updated",
2214
+ newsletterDescription = "Subscribe to our newsletter for the latest updates and news.",
2215
+ newsletterPlaceholder = "Enter your email",
2216
+ newsletterButtonText = "Subscribe",
2217
+ copyright = `\xA9 ${(/* @__PURE__ */ new Date()).getFullYear()} Opensite AI. All rights reserved.`,
2218
+ legalLinks = defaultLegalLinks3,
2219
+ optixFlowConfig
2220
+ }) {
2221
+ return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsx("div", { className: "container", children: /* @__PURE__ */ jsxs("footer", { children: [
2222
+ /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-2", children: [
2223
+ /* @__PURE__ */ jsxs("div", { children: [
2224
+ /* @__PURE__ */ jsxs("a", { href: logo.url, className: "mb-8 flex items-center gap-2", children: [
2225
+ /* @__PURE__ */ jsx(
2226
+ Img,
2227
+ {
2228
+ src: logo.src,
2229
+ alt: logo.alt,
2230
+ className: "h-10",
2231
+ optixFlowConfig
2232
+ }
2233
+ ),
2234
+ /* @__PURE__ */ jsx("span", { className: "text-xl font-semibold", children: logo.title })
2235
+ ] }),
2236
+ /* @__PURE__ */ jsx("div", { className: "grid gap-8 sm:grid-cols-3", children: sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
2237
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 font-semibold", children: section.title }),
2238
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-sm text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: "hover:text-primary", children: link.name }) }, linkIdx)) })
2239
+ ] }, sectionIdx)) })
2240
+ ] }),
2241
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between", children: [
2242
+ /* @__PURE__ */ jsxs("div", { className: "mb-8", children: [
2243
+ /* @__PURE__ */ jsx("h3", { className: "mb-2 text-lg font-semibold", children: newsletterHeading }),
2244
+ /* @__PURE__ */ jsx("p", { className: "mb-4 text-sm text-muted-foreground", children: newsletterDescription }),
2245
+ /* @__PURE__ */ jsxs("div", { className: "flex max-w-md gap-2", children: [
2246
+ /* @__PURE__ */ jsx(
2247
+ "input",
2248
+ {
2249
+ type: "email",
2250
+ placeholder: newsletterPlaceholder,
2251
+ className: "flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50"
2252
+ }
2253
+ ),
2254
+ /* @__PURE__ */ jsx(
2255
+ "button",
2256
+ {
2257
+ type: "submit",
2258
+ className: "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
2259
+ children: newsletterButtonText
2260
+ }
2261
+ )
2262
+ ] })
2263
+ ] }),
2264
+ /* @__PURE__ */ jsxs("div", { children: [
2265
+ /* @__PURE__ */ jsx("p", { className: "mb-4 font-medium", children: "Follow Us" }),
2266
+ /* @__PURE__ */ jsx("ul", { className: "flex items-center gap-4", children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
2267
+ "a",
2268
+ {
2269
+ href: social.href,
2270
+ "aria-label": social.label,
2271
+ className: "text-muted-foreground transition-colors hover:text-primary",
2272
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: social.icon, size: 20 })
2273
+ }
2274
+ ) }, idx)) })
2275
+ ] })
2276
+ ] })
2277
+ ] }),
2278
+ /* @__PURE__ */ jsxs("div", { className: "mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm text-muted-foreground md:flex-row md:items-center", children: [
2279
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
2280
+ /* @__PURE__ */ jsx("p", { children: copyright }),
2281
+ /* @__PURE__ */ jsx(
2282
+ "a",
2283
+ {
2284
+ href: "https://opensite.ai",
2285
+ className: "hover:text-primary",
2286
+ target: "_blank",
2287
+ rel: "noopener noreferrer",
2288
+ children: "AI Website and Automation Platform by Opensite"
2289
+ }
2290
+ )
2291
+ ] }),
2292
+ /* @__PURE__ */ jsx("ul", { className: "flex gap-4", children: legalLinks.map((link, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", { href: link.href, className: "hover:text-primary", children: link.name }) }, idx)) })
2293
+ ] })
2294
+ ] }) }) });
2295
+ }
742
2296
 
743
2297
  // src/registry/blocks.ts
744
2298
  var BLOCK_REGISTRY = {
@@ -902,10 +2456,426 @@ var BLOCK_REGISTRY = {
902
2456
  mediaComponent: <img src="..." alt="Integrations" className="rounded-lg" />
903
2457
  }
904
2458
  ]}
2459
+ />
2460
+ `.trim()
2461
+ },
2462
+ "team-media-showcase": {
2463
+ id: "team-media-showcase",
2464
+ name: "Team Media Showcase",
2465
+ description: "Display team members in a responsive grid with full-bleed background images and hover effects. Each card shows the member's name and role with an optional action element that appears on hover. Ideal for team pages, about sections, or leadership showcases.",
2466
+ semanticTags: [
2467
+ "team",
2468
+ "members",
2469
+ "staff",
2470
+ "people",
2471
+ "leadership",
2472
+ "about",
2473
+ "grid",
2474
+ "cards",
2475
+ "hover",
2476
+ "image-background",
2477
+ "profiles"
2478
+ ],
2479
+ category: "team",
2480
+ component: TeamMediaShowcase,
2481
+ props: "TeamMediaShowcaseProps",
2482
+ exampleUsage: `
2483
+ <TeamMediaShowcase
2484
+ listEyebrow="Our Team"
2485
+ background="white"
2486
+ verticalMargin="lg"
2487
+ items={[
2488
+ {
2489
+ imageSrc: "/team/john-doe.jpg",
2490
+ name: "John Doe",
2491
+ role: "CEO & Founder",
2492
+ action: (
2493
+ <Button variant="outline" className="text-white border-white">
2494
+ View Profile
2495
+ </Button>
2496
+ )
2497
+ },
2498
+ {
2499
+ imageSrc: "/team/jane-smith.jpg",
2500
+ name: "Jane Smith",
2501
+ role: "CTO"
2502
+ },
2503
+ {
2504
+ imageSrc: "/team/bob-wilson.jpg",
2505
+ name: "Bob Wilson",
2506
+ role: "Head of Design"
2507
+ }
2508
+ ]}
2509
+ />
2510
+ `.trim()
2511
+ },
2512
+ // Footer blocks
2513
+ "footer-links-grid": {
2514
+ id: "footer-links-grid",
2515
+ name: "Footer Links Grid",
2516
+ description: "A multi-column footer with logo, navigation links, and legal information. Features a responsive grid layout with customizable navigation sections, company branding, and bottom legal links. Ideal for corporate websites, SaaS products, and marketing sites that need organized footer navigation.",
2517
+ semanticTags: [
2518
+ "footer",
2519
+ "navigation",
2520
+ "links",
2521
+ "multi-column",
2522
+ "grid",
2523
+ "corporate",
2524
+ "legal",
2525
+ "sitemap",
2526
+ "branding"
2527
+ ],
2528
+ category: "footer",
2529
+ component: FooterLinksGrid,
2530
+ props: "FooterLinksGridProps",
2531
+ exampleUsage: `
2532
+ <FooterLinksGrid
2533
+ logo={{
2534
+ src: "https://example.com/logo.png",
2535
+ alt: "Company Logo",
2536
+ title: "Company Name",
2537
+ url: "/"
2538
+ }}
2539
+ tagline="Components made easy."
2540
+ menuItems={[
2541
+ {
2542
+ title: "Product",
2543
+ links: [
2544
+ { text: "Overview", url: "#" },
2545
+ { text: "Pricing", url: "#" }
2546
+ ]
2547
+ }
2548
+ ]}
2549
+ />
2550
+ `.trim()
2551
+ },
2552
+ "footer-social-newsletter": {
2553
+ id: "footer-social-newsletter",
2554
+ name: "Footer Social Newsletter",
2555
+ description: "A footer with social icons, navigation links, and newsletter signup. Features prominent social media icons in circular buttons, multi-column navigation, and an email newsletter subscription form. Ideal for community-focused products, SaaS platforms, and businesses that prioritize social engagement and email marketing.",
2556
+ semanticTags: [
2557
+ "footer",
2558
+ "social",
2559
+ "newsletter",
2560
+ "subscription",
2561
+ "email",
2562
+ "community",
2563
+ "icons",
2564
+ "navigation"
2565
+ ],
2566
+ category: "footer",
2567
+ component: FooterSocialNewsletter,
2568
+ props: "FooterSocialNewsletterProps",
2569
+ exampleUsage: `
2570
+ <FooterSocialNewsletter
2571
+ socialLinks={[
2572
+ { icon: "simple-icons/discord", href: "#", label: "Discord" },
2573
+ { icon: "simple-icons/x", href: "#", label: "X (Twitter)" }
2574
+ ]}
2575
+ newsletterLabel="Subscribe to our newsletter"
2576
+ />
2577
+ `.trim()
2578
+ },
2579
+ "footer-social-apps": {
2580
+ id: "footer-social-apps",
2581
+ name: "Footer Social Apps",
2582
+ description: "A footer with social icons, navigation links, and mobile app download links. Features prominent social media icons and mobile app store links in circular buttons, along with multi-column navigation. Ideal for products with mobile apps, community-focused platforms, and businesses that want to highlight their cross-platform presence.",
2583
+ semanticTags: [
2584
+ "footer",
2585
+ "social",
2586
+ "mobile",
2587
+ "apps",
2588
+ "download",
2589
+ "android",
2590
+ "ios",
2591
+ "app-store",
2592
+ "navigation"
2593
+ ],
2594
+ category: "footer",
2595
+ component: FooterSocialApps,
2596
+ props: "FooterSocialAppsProps",
2597
+ exampleUsage: `
2598
+ <FooterSocialApps
2599
+ socialLinks={[
2600
+ { icon: "simple-icons/discord", href: "#", label: "Discord" }
2601
+ ]}
2602
+ appLinks={[
2603
+ { icon: "mdi/android", href: "#", label: "Android" },
2604
+ { icon: "mdi/apple", href: "#", label: "iOS" }
2605
+ ]}
2606
+ />
2607
+ `.trim()
2608
+ },
2609
+ "footer-simple-centered": {
2610
+ id: "footer-simple-centered",
2611
+ name: "Footer Simple Centered",
2612
+ description: "A clean, minimal footer with logo, sitemap, and legal links. Features a simple two-column sitemap layout with company branding and bottom legal links. Ideal for corporate websites, landing pages, and products that prefer a clean, uncluttered footer design without social media or newsletter elements.",
2613
+ semanticTags: [
2614
+ "footer",
2615
+ "minimal",
2616
+ "simple",
2617
+ "clean",
2618
+ "sitemap",
2619
+ "corporate",
2620
+ "legal",
2621
+ "centered"
2622
+ ],
2623
+ category: "footer",
2624
+ component: FooterSimpleCentered,
2625
+ props: "FooterSimpleCenteredProps",
2626
+ exampleUsage: `
2627
+ <FooterSimpleCentered
2628
+ tagline="Components made easy."
2629
+ sitemap={[
2630
+ {
2631
+ title: "Company",
2632
+ links: [
2633
+ { title: "About Us", href: "#" },
2634
+ { title: "Careers", href: "#" }
2635
+ ]
2636
+ }
2637
+ ]}
2638
+ />
2639
+ `.trim()
2640
+ },
2641
+ "footer-brand-description": {
2642
+ id: "footer-brand-description",
2643
+ name: "Footer Brand Description",
2644
+ description: "A footer with logo, description, social icons, and navigation. Features a prominent brand section with logo, description, and social links on the left, with multi-column navigation on the right. Ideal for brand-focused websites, startups, and businesses that want to emphasize their identity and social presence in the footer.",
2645
+ semanticTags: [
2646
+ "footer",
2647
+ "brand",
2648
+ "description",
2649
+ "social",
2650
+ "identity",
2651
+ "startup",
2652
+ "navigation",
2653
+ "about"
2654
+ ],
2655
+ category: "footer",
2656
+ component: FooterBrandDescription,
2657
+ props: "FooterBrandDescriptionProps",
2658
+ exampleUsage: `
2659
+ <FooterBrandDescription
2660
+ description="A collection of components for your startup business or side project."
2661
+ socialLinks={[
2662
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" }
2663
+ ]}
2664
+ />
2665
+ `.trim()
2666
+ },
2667
+ "footer-newsletter-grid": {
2668
+ id: "footer-newsletter-grid",
2669
+ name: "Footer Newsletter Grid",
2670
+ description: "A comprehensive footer with logo, social icons, navigation, and newsletter. Features a full-width grid layout with brand section (logo, description, social icons), multi-column navigation, and a prominent newsletter signup form. Ideal for content-heavy websites, SaaS products, and businesses that prioritize email marketing and social engagement.",
2671
+ semanticTags: [
2672
+ "footer",
2673
+ "newsletter",
2674
+ "grid",
2675
+ "social",
2676
+ "comprehensive",
2677
+ "email",
2678
+ "marketing",
2679
+ "subscription"
2680
+ ],
2681
+ category: "footer",
2682
+ component: FooterNewsletterGrid,
2683
+ props: "FooterNewsletterGridProps",
2684
+ exampleUsage: `
2685
+ <FooterNewsletterGrid
2686
+ description="A collection of 100+ responsive HTML templates."
2687
+ newsletterTitle="Newsletter"
2688
+ newsletterPlaceholder="Email"
2689
+ />
2690
+ `.trim()
2691
+ },
2692
+ "footer-cta-banner": {
2693
+ id: "footer-cta-banner",
2694
+ name: "Footer CTA Banner",
2695
+ description: "A dark-themed footer with prominent CTA banner, navigation, and newsletter. Features a full-width call-to-action banner at the top with heading, description, and button, followed by multi-column navigation, newsletter signup, and social links. Ideal for SaaS products, marketing sites, and businesses that want to drive conversions directly from the footer.",
2696
+ semanticTags: [
2697
+ "footer",
2698
+ "cta",
2699
+ "banner",
2700
+ "dark",
2701
+ "conversion",
2702
+ "marketing",
2703
+ "newsletter",
2704
+ "call-to-action"
2705
+ ],
2706
+ category: "footer",
2707
+ component: FooterCtaBanner,
2708
+ props: "FooterCtaBannerProps",
2709
+ exampleUsage: `
2710
+ <FooterCtaBanner
2711
+ ctaHeading="Ready to get started?"
2712
+ ctaDescription="Join thousands of satisfied customers."
2713
+ ctaButtonText="Get Started"
2714
+ />
2715
+ `.trim()
2716
+ },
2717
+ "footer-contact-card": {
2718
+ id: "footer-contact-card",
2719
+ name: "Footer Contact Card",
2720
+ description: "A footer with large heading, contact information, and social links. Features a prominent heading, contact details (email, phone, address), social media icons, and horizontal navigation. Ideal for service businesses, agencies, and professional websites that want to emphasize contact information and make it easy for visitors to get in touch.",
2721
+ semanticTags: [
2722
+ "footer",
2723
+ "contact",
2724
+ "card",
2725
+ "email",
2726
+ "phone",
2727
+ "address",
2728
+ "social",
2729
+ "professional",
2730
+ "agency"
2731
+ ],
2732
+ category: "footer",
2733
+ component: FooterContactCard,
2734
+ props: "FooterContactCardProps",
2735
+ exampleUsage: `
2736
+ <FooterContactCard
2737
+ heading="Let's work together"
2738
+ email="hello@example.com"
2739
+ phone="+1 (555) 123-4567"
2740
+ address="123 Main Street, San Francisco, CA"
2741
+ />
2742
+ `.trim()
2743
+ },
2744
+ "footer-background-card": {
2745
+ id: "footer-background-card",
2746
+ name: "Footer Background Card",
2747
+ description: "A footer with background image and floating contact card. Features a full-width background image with a floating card containing profile image, personal message, CTA button, navigation links, and contact information. Ideal for creative professionals, agencies, portfolios, and businesses that want a visually striking footer with a personal touch.",
2748
+ semanticTags: [
2749
+ "footer",
2750
+ "background",
2751
+ "image",
2752
+ "card",
2753
+ "creative",
2754
+ "portfolio",
2755
+ "agency",
2756
+ "personal",
2757
+ "visual"
2758
+ ],
2759
+ category: "footer",
2760
+ component: FooterBackgroundCard,
2761
+ props: "FooterBackgroundCardProps",
2762
+ exampleUsage: `
2763
+ <FooterBackgroundCard
2764
+ backgroundImage="https://example.com/bg.jpg"
2765
+ profileImage="https://example.com/profile.jpg"
2766
+ tagline="Let's Connect"
2767
+ personalMessage="I'm passionate about creating beautiful components."
2768
+ ctaText="Schedule a call"
2769
+ />
2770
+ `.trim()
2771
+ },
2772
+ "footer-animated-social": {
2773
+ id: "footer-animated-social",
2774
+ name: "Footer Animated Social",
2775
+ description: "An animated footer with Framer Motion effects and social links. Features smooth entrance animations, a prominent heading with CTA button, animated social links with hover effects, and a clean separator. Ideal for modern websites, portfolios, and creative projects that want to add visual polish and interactivity to their footer.",
2776
+ semanticTags: [
2777
+ "footer",
2778
+ "animated",
2779
+ "motion",
2780
+ "social",
2781
+ "modern",
2782
+ "interactive",
2783
+ "creative",
2784
+ "portfolio"
2785
+ ],
2786
+ category: "footer",
2787
+ component: FooterAnimatedSocial,
2788
+ props: "FooterAnimatedSocialProps",
2789
+ exampleUsage: `
2790
+ <FooterAnimatedSocial
2791
+ heading="Connect with Me"
2792
+ description="No commitments. Just a quick chat to see if we click."
2793
+ ctaText="Get in Touch"
2794
+ socialLinks={[
2795
+ { name: "Instagram", href: "#" },
2796
+ { name: "X (Twitter)", href: "#" }
2797
+ ]}
2798
+ />
2799
+ `.trim()
2800
+ },
2801
+ "footer-newsletter-minimal": {
2802
+ id: "footer-newsletter-minimal",
2803
+ name: "Footer Newsletter Minimal",
2804
+ description: "A dark-themed minimal footer with newsletter and animated logo. Features a clean layout with main heading, support email, navigation columns, newsletter signup form, and a large animated brand logo. Ideal for modern SaaS products, creative agencies, and businesses that want a sophisticated, dark-themed footer with strong visual branding.",
2805
+ semanticTags: [
2806
+ "footer",
2807
+ "newsletter",
2808
+ "minimal",
2809
+ "dark",
2810
+ "animated",
2811
+ "logo",
2812
+ "saas",
2813
+ "sophisticated"
2814
+ ],
2815
+ category: "footer",
2816
+ component: FooterNewsletterMinimal,
2817
+ props: "FooterNewsletterMinimalProps",
2818
+ exampleUsage: `
2819
+ <FooterNewsletterMinimal
2820
+ heading="Unlock 800+ blocks now"
2821
+ supportEmail="hi@example.com"
2822
+ newsletterLabel="Sign up for newsletter :"
2823
+ />
2824
+ `.trim()
2825
+ },
2826
+ "footer-cta-social": {
2827
+ id: "footer-cta-social",
2828
+ name: "Footer CTA Social",
2829
+ description: "A centered CTA footer with decorative lines and social icons. Features a centered layout with decorative gradient lines, pre-heading text, large heading, description, prominent CTA button, social media icons, and contact email. Ideal for landing pages, marketing sites, and businesses that want a conversion-focused footer with strong visual appeal.",
2830
+ semanticTags: [
2831
+ "footer",
2832
+ "cta",
2833
+ "social",
2834
+ "centered",
2835
+ "conversion",
2836
+ "landing",
2837
+ "marketing",
2838
+ "decorative"
2839
+ ],
2840
+ category: "footer",
2841
+ component: FooterCtaSocial,
2842
+ props: "FooterCtaSocialProps",
2843
+ exampleUsage: `
2844
+ <FooterCtaSocial
2845
+ preHeading="Let's connect"
2846
+ heading="You want to scale faster? Try Opensite today."
2847
+ description="Join thousands of companies already using our platform."
2848
+ buttonText="Get Started Now"
2849
+ />
2850
+ `.trim()
2851
+ },
2852
+ "footer-nav-social": {
2853
+ id: "footer-nav-social",
2854
+ name: "Footer Nav Social",
2855
+ description: "A comprehensive footer with logo, navigation, newsletter, and social links. Features a logo with navigation sections, a newsletter signup form with heading and description, social media icons, and legal links. Ideal for SaaS products, corporate websites, and businesses that want a complete footer with all essential elements organized in a clean, professional layout.",
2856
+ semanticTags: [
2857
+ "footer",
2858
+ "navigation",
2859
+ "social",
2860
+ "newsletter",
2861
+ "comprehensive",
2862
+ "professional",
2863
+ "corporate",
2864
+ "complete"
2865
+ ],
2866
+ category: "footer",
2867
+ component: FooterNavSocial,
2868
+ props: "FooterNavSocialProps",
2869
+ exampleUsage: `
2870
+ <FooterNavSocial
2871
+ newsletterHeading="Stay Updated"
2872
+ newsletterDescription="Subscribe to our newsletter for the latest updates."
2873
+ socialLinks={[
2874
+ { icon: "simple-icons/instagram", href: "#", label: "Instagram" }
2875
+ ]}
905
2876
  />
906
2877
  `.trim()
907
2878
  }
908
- // Add more blocks here following this pattern
909
2879
  };
910
2880
  function getBlocksBySemanticTag(tag) {
911
2881
  return Object.values(BLOCK_REGISTRY).filter(