@opensite/ui 1.3.7 → 1.3.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/components.cjs +159 -83
  2. package/dist/components.js +159 -83
  3. package/dist/feature-showcase.cjs +3 -3
  4. package/dist/feature-showcase.js +3 -3
  5. package/dist/footer-accordion-social.cjs +18 -0
  6. package/dist/footer-accordion-social.js +18 -0
  7. package/dist/footer-animated-social.cjs +18 -0
  8. package/dist/footer-animated-social.js +18 -0
  9. package/dist/footer-brand-description.cjs +18 -0
  10. package/dist/footer-brand-description.js +18 -0
  11. package/dist/footer-brand-links-contact.cjs +18 -0
  12. package/dist/footer-brand-links-contact.js +18 -0
  13. package/dist/footer-comprehensive-links.cjs +18 -0
  14. package/dist/footer-comprehensive-links.js +18 -0
  15. package/dist/footer-contact-card.cjs +18 -0
  16. package/dist/footer-contact-card.js +18 -0
  17. package/dist/footer-cta-banner.cjs +18 -0
  18. package/dist/footer-cta-banner.js +18 -0
  19. package/dist/footer-cta-social.cjs +18 -0
  20. package/dist/footer-cta-social.js +18 -0
  21. package/dist/footer-info-cards-accordion.cjs +18 -0
  22. package/dist/footer-info-cards-accordion.js +18 -0
  23. package/dist/footer-links-grid.cjs +9 -14
  24. package/dist/footer-links-grid.d.cts +5 -1
  25. package/dist/footer-links-grid.d.ts +5 -1
  26. package/dist/footer-links-grid.js +9 -14
  27. package/dist/footer-nav-social.cjs +18 -0
  28. package/dist/footer-nav-social.js +18 -0
  29. package/dist/footer-newsletter-contact.cjs +18 -0
  30. package/dist/footer-newsletter-contact.js +18 -0
  31. package/dist/footer-newsletter-grid.cjs +18 -0
  32. package/dist/footer-newsletter-grid.js +18 -0
  33. package/dist/footer-newsletter-minimal.cjs +18 -0
  34. package/dist/footer-newsletter-minimal.js +18 -0
  35. package/dist/footer-social-apps.cjs +18 -0
  36. package/dist/footer-social-apps.js +18 -0
  37. package/dist/footer-social-newsletter.cjs +150 -99
  38. package/dist/footer-social-newsletter.d.cts +5 -1
  39. package/dist/footer-social-newsletter.d.ts +5 -1
  40. package/dist/footer-social-newsletter.js +150 -99
  41. package/dist/footer-split-image-accordion.cjs +18 -0
  42. package/dist/footer-split-image-accordion.js +18 -0
  43. package/dist/index.cjs +159 -83
  44. package/dist/index.js +159 -83
  45. package/dist/navbar-fullscreen-menu.cjs +18 -0
  46. package/dist/navbar-fullscreen-menu.js +18 -0
  47. package/dist/navbar-transparent-overlay.cjs +18 -0
  48. package/dist/navbar-transparent-overlay.js +18 -0
  49. package/dist/registry.cjs +162 -86
  50. package/dist/registry.js +162 -86
  51. package/dist/social-link-icon.cjs +18 -0
  52. package/dist/social-link-icon.js +18 -0
  53. package/package.json +2 -2
package/dist/index.cjs CHANGED
@@ -1689,6 +1689,24 @@ var platformIconMap = {
1689
1689
  spotify: "cib/spotify",
1690
1690
  apple: "cib/apple",
1691
1691
  x: "line-md/twitter-x",
1692
+ github: "cib/github",
1693
+ snapchat: "cib/snapchat",
1694
+ discord: "cib/discord",
1695
+ dev: "simple-icons/devdotto",
1696
+ substack: "simple-icons/substack",
1697
+ reddit: "cib/reddit",
1698
+ pinterest: "cib/pinterest",
1699
+ threads: "simple-icons/threads",
1700
+ twitch: "cib/twitch",
1701
+ whatsapp: "cib/whatsapp",
1702
+ telegram: "cib/telegram",
1703
+ medium: "simple-icons/medium",
1704
+ patreon: "cib/patreon",
1705
+ onlyfans: "simple-icons/onlyfans",
1706
+ eventbrite: "cib/eventbrite",
1707
+ npmjs: "simple-icons/npm",
1708
+ crates: "cib/rust",
1709
+ rubygems: "cib/rubygems",
1692
1710
  unknown: "icon-park-solid/circular-connection"
1693
1711
  };
1694
1712
  var SocialLinkIcon = React4__namespace.forwardRef(
@@ -2984,10 +3002,11 @@ function FooterLinksGrid({
2984
3002
  attributionHref,
2985
3003
  bottomLinks,
2986
3004
  background,
2987
- spacing,
2988
3005
  pattern,
2989
3006
  patternOpacity,
2990
- optixFlowConfig
3007
+ optixFlowConfig,
3008
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
3009
+ spacing = "py-6 md:py-32"
2991
3010
  }) {
2992
3011
  const currentYear = React4.useMemo(() => (/* @__PURE__ */ new Date()).getFullYear(), []);
2993
3012
  const copyrightText = copyright ?? `\xA9 ${currentYear}`;
@@ -2999,9 +3018,10 @@ function FooterLinksGrid({
2999
3018
  pattern,
3000
3019
  patternOpacity,
3001
3020
  className: cn(className),
3021
+ containerClassName,
3002
3022
  children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
3003
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-8 lg:grid-cols-6", children: [
3004
- (logo || tagline) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-2 mb-8 lg:mb-0", children: [
3023
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4 md:gap-8 md:grid-cols-6", children: [
3024
+ (logo || tagline) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex space-y-2 col-span-2 flex-col mb-6 md:mb-0 pr-0 md:pr-6", children: [
3005
3025
  logo && /* @__PURE__ */ jsxRuntime.jsx(
3006
3026
  FooterLogo,
3007
3027
  {
@@ -3014,17 +3034,10 @@ function FooterLinksGrid({
3014
3034
  ] }),
3015
3035
  menuItems && menuItems.length > 0 && menuItems.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
3016
3036
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 font-bold", children: section.title }),
3017
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-4 text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx(
3018
- "li",
3019
- {
3020
- className: "font-medium hover:text-primary",
3021
- children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, children: link.text })
3022
- },
3023
- linkIdx
3024
- )) })
3037
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-4", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-sm font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3025
3038
  ] }, sectionIdx))
3026
3039
  ] }),
3027
- /* @__PURE__ */ jsxRuntime.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: [
3040
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-24 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium md:flex-row md:items-center", children: [
3028
3041
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
3029
3042
  /* @__PURE__ */ jsxRuntime.jsx("p", { children: copyrightText }),
3030
3043
  attributionText && /* @__PURE__ */ jsxRuntime.jsx(
@@ -3036,7 +3049,7 @@ function FooterLinksGrid({
3036
3049
  }
3037
3050
  )
3038
3051
  ] }),
3039
- bottomLinks && bottomLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex gap-4", children: bottomLinks.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "underline hover:text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3052
+ bottomLinks && bottomLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex gap-4", children: bottomLinks.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "underline", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3040
3053
  ] })
3041
3054
  ] })
3042
3055
  }
@@ -3074,7 +3087,8 @@ function FooterSocialNewsletter({
3074
3087
  bottomClassName,
3075
3088
  copyrightClassName,
3076
3089
  background,
3077
- spacing,
3090
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
3091
+ spacing = "py-6 md:py-32",
3078
3092
  pattern,
3079
3093
  patternOpacity,
3080
3094
  optixFlowConfig
@@ -3089,88 +3103,150 @@ function FooterSocialNewsletter({
3089
3103
  pattern,
3090
3104
  patternOpacity,
3091
3105
  className: cn(className),
3106
+ containerClassName,
3092
3107
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
3093
3108
  logo && /* @__PURE__ */ jsxRuntime.jsx(
3094
3109
  FooterLogo,
3095
3110
  {
3096
3111
  logo,
3097
- logoClassName: cn("flex items-center gap-2", logoWrapperClassName),
3112
+ logoClassName: cn(
3113
+ "flex items-center gap-2",
3114
+ logoWrapperClassName
3115
+ ),
3098
3116
  logoImageClassName: cn("h-10", logoClassName),
3099
3117
  optixFlowConfig
3100
3118
  }
3101
3119
  ),
3102
- (sections && sections.length > 0 || socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-14 grid gap-8 md:grid-cols-2 lg:grid-cols-5 xl:grid-cols-4", gridClassName), children: [
3103
- sections && sections.length > 0 && sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
3104
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-bold", navTitleClassName), children: section.title }),
3105
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-4 text-muted-foreground", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx(
3106
- "li",
3107
- {
3108
- className: cn("font-medium hover:text-primary", navLinkClassName),
3109
- children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, children: link.name })
3110
- },
3111
- linkIdx
3112
- )) })
3113
- ] }, sectionIdx)),
3114
- (socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:col-span-2 xl:col-span-1", socialColumnClassName), children: [
3115
- socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("mb-10 flex items-center gap-2 text-muted-foreground", socialLinksClassName), children: socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(
3116
- SocialLinkIcon,
3117
- {
3118
- href: social.href,
3119
- label: social.label,
3120
- iconNameOverride: social.iconNameOverride,
3121
- iconSize: 24,
3122
- className: cn(
3123
- "flex size-12 items-center justify-center rounded-full transition-colors hover:text-primary",
3124
- getNestedCardBg(background),
3125
- getNestedCardTextColor(background),
3126
- socialLinkClassName
3127
- )
3128
- }
3129
- ) }, idx)) }),
3130
- (newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid w-full max-w-sm items-center gap-1.5", newsletterClassName), children: [
3131
- newsletterLabel && /* @__PURE__ */ jsxRuntime.jsx("label", { htmlFor: "newsletter-email", className: "text-sm font-medium", children: newsletterLabel }),
3132
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-sm items-center space-x-2", children: [
3133
- /* @__PURE__ */ jsxRuntime.jsx(
3134
- "input",
3120
+ sections && sections.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
3121
+ "div",
3122
+ {
3123
+ className: cn(
3124
+ "mt-14 grid gap-8 md:grid-cols-2 lg:grid-cols-5 xl:grid-cols-4",
3125
+ gridClassName
3126
+ ),
3127
+ children: sections && sections.length > 0 && sections.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
3128
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-bold", navTitleClassName), children: section.title }),
3129
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-4", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx(
3130
+ "li",
3131
+ {
3132
+ className: cn("font-medium", navLinkClassName),
3133
+ children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, children: link.name })
3134
+ },
3135
+ linkIdx
3136
+ )) })
3137
+ ] }, sectionIdx))
3138
+ }
3139
+ ) : null,
3140
+ (socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:col-span-2 xl:col-span-1"), children: [
3141
+ (newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxRuntime.jsxs(
3142
+ "div",
3143
+ {
3144
+ className: cn(
3145
+ "grid w-full max-w-sm items-center gap-1.5",
3146
+ newsletterClassName
3147
+ ),
3148
+ children: [
3149
+ newsletterLabel && /* @__PURE__ */ jsxRuntime.jsx(
3150
+ "label",
3135
3151
  {
3136
- type: "email",
3137
- id: "newsletter-email",
3138
- placeholder: newsletterPlaceholder || "Email",
3139
- className: cn("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", newsletterInputClassName)
3152
+ htmlFor: "newsletter-email",
3153
+ className: "text-sm font-medium",
3154
+ children: newsletterLabel
3140
3155
  }
3141
3156
  ),
3142
- newsletterButtonText && /* @__PURE__ */ jsxRuntime.jsx(
3143
- Pressable,
3144
- {
3145
- onClick: (e) => {
3146
- e.preventDefault();
3147
- },
3148
- variant: "default",
3149
- size: "default",
3150
- asButton: true,
3151
- className: cn(newsletterButtonClassName),
3152
- children: newsletterButtonText
3153
- }
3154
- )
3155
- ] }),
3156
- (privacyConsentText || privacyLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("mt-1 text-xs text-muted-foreground", privacyClassName), children: [
3157
- privacyConsentText,
3158
- privacyLinkText && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: privacyLinkUrl || "#", className: "ml-1 text-primary hover:underline", children: privacyLinkText })
3159
- ] })
3160
- ] })
3161
- ] })
3162
- ] }),
3163
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("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", bottomClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
3164
- /* @__PURE__ */ jsxRuntime.jsx("p", { children: copyrightText }),
3165
- attributionText && /* @__PURE__ */ jsxRuntime.jsx(
3166
- Pressable,
3157
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full max-w-sm items-center space-x-2", children: [
3158
+ /* @__PURE__ */ jsxRuntime.jsx(
3159
+ "input",
3160
+ {
3161
+ type: "email",
3162
+ id: "newsletter-email",
3163
+ placeholder: newsletterPlaceholder || "Email",
3164
+ className: cn(
3165
+ "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
3166
+ newsletterInputClassName
3167
+ )
3168
+ }
3169
+ ),
3170
+ newsletterButtonText && /* @__PURE__ */ jsxRuntime.jsx(
3171
+ Pressable,
3172
+ {
3173
+ onClick: (e) => {
3174
+ e.preventDefault();
3175
+ },
3176
+ variant: "default",
3177
+ size: "default",
3178
+ asButton: true,
3179
+ className: cn(newsletterButtonClassName),
3180
+ children: newsletterButtonText
3181
+ }
3182
+ )
3183
+ ] }),
3184
+ (privacyConsentText || privacyLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("mt-1 text-xs ", privacyClassName), children: [
3185
+ privacyConsentText,
3186
+ privacyLinkText && /* @__PURE__ */ jsxRuntime.jsx(
3187
+ Pressable,
3188
+ {
3189
+ href: privacyLinkUrl || "#",
3190
+ className: "ml-1 hover:underline",
3191
+ children: privacyLinkText
3192
+ }
3193
+ )
3194
+ ] })
3195
+ ]
3196
+ }
3197
+ ),
3198
+ socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("", socialColumnClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
3199
+ "ul",
3167
3200
  {
3168
- href: attributionHref || "https://opensite.ai",
3169
- className: "hover:text-primary",
3170
- children: attributionText
3201
+ className: cn(
3202
+ "mb-10 flex items-center gap-2",
3203
+ socialLinksClassName
3204
+ ),
3205
+ children: socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsxRuntime.jsx(
3206
+ SocialLinkIcon,
3207
+ {
3208
+ href: social.href,
3209
+ label: social.label,
3210
+ iconNameOverride: social.iconNameOverride,
3211
+ iconSize: 24,
3212
+ className: cn(
3213
+ "flex size-12 items-center justify-center rounded-full transition-colors",
3214
+ socialLinkClassName
3215
+ )
3216
+ }
3217
+ ) }, idx))
3171
3218
  }
3172
- )
3173
- ] }) })
3219
+ ) })
3220
+ ] }),
3221
+ /* @__PURE__ */ jsxRuntime.jsx(
3222
+ "div",
3223
+ {
3224
+ className: cn(
3225
+ "mt-20 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium md:flex-row md:items-center",
3226
+ bottomClassName
3227
+ ),
3228
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
3229
+ "div",
3230
+ {
3231
+ className: cn(
3232
+ "flex flex-col gap-2 md:flex-row md:items-center md:gap-4",
3233
+ copyrightClassName
3234
+ ),
3235
+ children: [
3236
+ /* @__PURE__ */ jsxRuntime.jsx("p", { children: copyrightText }),
3237
+ attributionText && /* @__PURE__ */ jsxRuntime.jsx(
3238
+ Pressable,
3239
+ {
3240
+ href: attributionHref || "https://opensite.ai",
3241
+ className: "hover:text-primary",
3242
+ children: attributionText
3243
+ }
3244
+ )
3245
+ ]
3246
+ }
3247
+ )
3248
+ }
3249
+ )
3174
3250
  ] }) })
3175
3251
  }
3176
3252
  );
package/dist/index.js CHANGED
@@ -1666,6 +1666,24 @@ var platformIconMap = {
1666
1666
  spotify: "cib/spotify",
1667
1667
  apple: "cib/apple",
1668
1668
  x: "line-md/twitter-x",
1669
+ github: "cib/github",
1670
+ snapchat: "cib/snapchat",
1671
+ discord: "cib/discord",
1672
+ dev: "simple-icons/devdotto",
1673
+ substack: "simple-icons/substack",
1674
+ reddit: "cib/reddit",
1675
+ pinterest: "cib/pinterest",
1676
+ threads: "simple-icons/threads",
1677
+ twitch: "cib/twitch",
1678
+ whatsapp: "cib/whatsapp",
1679
+ telegram: "cib/telegram",
1680
+ medium: "simple-icons/medium",
1681
+ patreon: "cib/patreon",
1682
+ onlyfans: "simple-icons/onlyfans",
1683
+ eventbrite: "cib/eventbrite",
1684
+ npmjs: "simple-icons/npm",
1685
+ crates: "cib/rust",
1686
+ rubygems: "cib/rubygems",
1669
1687
  unknown: "icon-park-solid/circular-connection"
1670
1688
  };
1671
1689
  var SocialLinkIcon = React4.forwardRef(
@@ -2961,10 +2979,11 @@ function FooterLinksGrid({
2961
2979
  attributionHref,
2962
2980
  bottomLinks,
2963
2981
  background,
2964
- spacing,
2965
2982
  pattern,
2966
2983
  patternOpacity,
2967
- optixFlowConfig
2984
+ optixFlowConfig,
2985
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
2986
+ spacing = "py-6 md:py-32"
2968
2987
  }) {
2969
2988
  const currentYear = useMemo(() => (/* @__PURE__ */ new Date()).getFullYear(), []);
2970
2989
  const copyrightText = copyright ?? `\xA9 ${currentYear}`;
@@ -2976,9 +2995,10 @@ function FooterLinksGrid({
2976
2995
  pattern,
2977
2996
  patternOpacity,
2978
2997
  className: cn(className),
2998
+ containerClassName,
2979
2999
  children: /* @__PURE__ */ jsxs("footer", { children: [
2980
- /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8 lg:grid-cols-6", children: [
2981
- (logo || tagline) && /* @__PURE__ */ jsxs("div", { className: "col-span-2 mb-8 lg:mb-0", children: [
3000
+ /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4 md:gap-8 md:grid-cols-6", children: [
3001
+ (logo || tagline) && /* @__PURE__ */ jsxs("div", { className: "flex space-y-2 col-span-2 flex-col mb-6 md:mb-0 pr-0 md:pr-6", children: [
2982
3002
  logo && /* @__PURE__ */ jsx(
2983
3003
  FooterLogo,
2984
3004
  {
@@ -2991,17 +3011,10 @@ function FooterLinksGrid({
2991
3011
  ] }),
2992
3012
  menuItems && menuItems.length > 0 && menuItems.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { children: [
2993
3013
  /* @__PURE__ */ jsx("h3", { className: "mb-4 font-bold", children: section.title }),
2994
- /* @__PURE__ */ jsx("ul", { className: "space-y-4 text-muted-foreground", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
2995
- "li",
2996
- {
2997
- className: "font-medium hover:text-primary",
2998
- children: /* @__PURE__ */ jsx(Pressable, { href: link.url, children: link.text })
2999
- },
3000
- linkIdx
3001
- )) })
3014
+ /* @__PURE__ */ jsx("ul", { className: "space-y-4", children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { className: "text-sm font-medium", children: /* @__PURE__ */ jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3002
3015
  ] }, sectionIdx))
3003
3016
  ] }),
3004
- /* @__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: [
3017
+ /* @__PURE__ */ jsxs("div", { className: "mt-24 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium md:flex-row md:items-center", children: [
3005
3018
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-2 md:flex-row md:items-center md:gap-4", children: [
3006
3019
  /* @__PURE__ */ jsx("p", { children: copyrightText }),
3007
3020
  attributionText && /* @__PURE__ */ jsx(
@@ -3013,7 +3026,7 @@ function FooterLinksGrid({
3013
3026
  }
3014
3027
  )
3015
3028
  ] }),
3016
- bottomLinks && bottomLinks.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex gap-4", children: bottomLinks.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { className: "underline hover:text-primary", children: /* @__PURE__ */ jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3029
+ bottomLinks && bottomLinks.length > 0 && /* @__PURE__ */ jsx("ul", { className: "flex gap-4", children: bottomLinks.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { className: "underline", children: /* @__PURE__ */ jsx(Pressable, { href: link.url, children: link.text }) }, linkIdx)) })
3017
3030
  ] })
3018
3031
  ] })
3019
3032
  }
@@ -3051,7 +3064,8 @@ function FooterSocialNewsletter({
3051
3064
  bottomClassName,
3052
3065
  copyrightClassName,
3053
3066
  background,
3054
- spacing,
3067
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
3068
+ spacing = "py-6 md:py-32",
3055
3069
  pattern,
3056
3070
  patternOpacity,
3057
3071
  optixFlowConfig
@@ -3066,88 +3080,150 @@ function FooterSocialNewsletter({
3066
3080
  pattern,
3067
3081
  patternOpacity,
3068
3082
  className: cn(className),
3083
+ containerClassName,
3069
3084
  children: /* @__PURE__ */ jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxs("footer", { children: [
3070
3085
  logo && /* @__PURE__ */ jsx(
3071
3086
  FooterLogo,
3072
3087
  {
3073
3088
  logo,
3074
- logoClassName: cn("flex items-center gap-2", logoWrapperClassName),
3089
+ logoClassName: cn(
3090
+ "flex items-center gap-2",
3091
+ logoWrapperClassName
3092
+ ),
3075
3093
  logoImageClassName: cn("h-10", logoClassName),
3076
3094
  optixFlowConfig
3077
3095
  }
3078
3096
  ),
3079
- (sections && sections.length > 0 || socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: cn("mt-14 grid gap-8 md:grid-cols-2 lg:grid-cols-5 xl:grid-cols-4", gridClassName), children: [
3080
- sections && sections.length > 0 && sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: cn(navSectionClassName), children: [
3081
- /* @__PURE__ */ jsx("h3", { className: cn("mb-4 font-bold", navTitleClassName), children: section.title }),
3082
- /* @__PURE__ */ jsx("ul", { className: cn("space-y-4 text-muted-foreground", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
3083
- "li",
3084
- {
3085
- className: cn("font-medium hover:text-primary", navLinkClassName),
3086
- children: /* @__PURE__ */ jsx(Pressable, { href: link.href, children: link.name })
3087
- },
3088
- linkIdx
3089
- )) })
3090
- ] }, sectionIdx)),
3091
- (socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: cn("lg:col-span-2 xl:col-span-1", socialColumnClassName), children: [
3092
- socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx("ul", { className: cn("mb-10 flex items-center gap-2 text-muted-foreground", socialLinksClassName), children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsx(
3093
- SocialLinkIcon,
3094
- {
3095
- href: social.href,
3096
- label: social.label,
3097
- iconNameOverride: social.iconNameOverride,
3098
- iconSize: 24,
3099
- className: cn(
3100
- "flex size-12 items-center justify-center rounded-full transition-colors hover:text-primary",
3101
- getNestedCardBg(background),
3102
- getNestedCardTextColor(background),
3103
- socialLinkClassName
3104
- )
3105
- }
3106
- ) }, idx)) }),
3107
- (newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: cn("grid w-full max-w-sm items-center gap-1.5", newsletterClassName), children: [
3108
- newsletterLabel && /* @__PURE__ */ jsx("label", { htmlFor: "newsletter-email", className: "text-sm font-medium", children: newsletterLabel }),
3109
- /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-sm items-center space-x-2", children: [
3110
- /* @__PURE__ */ jsx(
3111
- "input",
3097
+ sections && sections.length > 0 ? /* @__PURE__ */ jsx(
3098
+ "div",
3099
+ {
3100
+ className: cn(
3101
+ "mt-14 grid gap-8 md:grid-cols-2 lg:grid-cols-5 xl:grid-cols-4",
3102
+ gridClassName
3103
+ ),
3104
+ children: sections && sections.length > 0 && sections.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: cn(navSectionClassName), children: [
3105
+ /* @__PURE__ */ jsx("h3", { className: cn("mb-4 font-bold", navTitleClassName), children: section.title }),
3106
+ /* @__PURE__ */ jsx("ul", { className: cn("space-y-4", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
3107
+ "li",
3108
+ {
3109
+ className: cn("font-medium", navLinkClassName),
3110
+ children: /* @__PURE__ */ jsx(Pressable, { href: link.href, children: link.name })
3111
+ },
3112
+ linkIdx
3113
+ )) })
3114
+ ] }, sectionIdx))
3115
+ }
3116
+ ) : null,
3117
+ (socialLinks && socialLinks.length > 0 || newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxs("div", { className: cn("lg:col-span-2 xl:col-span-1"), children: [
3118
+ (newsletterLabel || newsletterButtonText) && /* @__PURE__ */ jsxs(
3119
+ "div",
3120
+ {
3121
+ className: cn(
3122
+ "grid w-full max-w-sm items-center gap-1.5",
3123
+ newsletterClassName
3124
+ ),
3125
+ children: [
3126
+ newsletterLabel && /* @__PURE__ */ jsx(
3127
+ "label",
3112
3128
  {
3113
- type: "email",
3114
- id: "newsletter-email",
3115
- placeholder: newsletterPlaceholder || "Email",
3116
- className: cn("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", newsletterInputClassName)
3129
+ htmlFor: "newsletter-email",
3130
+ className: "text-sm font-medium",
3131
+ children: newsletterLabel
3117
3132
  }
3118
3133
  ),
3119
- newsletterButtonText && /* @__PURE__ */ jsx(
3120
- Pressable,
3121
- {
3122
- onClick: (e) => {
3123
- e.preventDefault();
3124
- },
3125
- variant: "default",
3126
- size: "default",
3127
- asButton: true,
3128
- className: cn(newsletterButtonClassName),
3129
- children: newsletterButtonText
3130
- }
3131
- )
3132
- ] }),
3133
- (privacyConsentText || privacyLinkText) && /* @__PURE__ */ jsxs("p", { className: cn("mt-1 text-xs text-muted-foreground", privacyClassName), children: [
3134
- privacyConsentText,
3135
- privacyLinkText && /* @__PURE__ */ jsx(Pressable, { href: privacyLinkUrl || "#", className: "ml-1 text-primary hover:underline", children: privacyLinkText })
3136
- ] })
3137
- ] })
3138
- ] })
3139
- ] }),
3140
- /* @__PURE__ */ jsx("div", { className: cn("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", bottomClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
3141
- /* @__PURE__ */ jsx("p", { children: copyrightText }),
3142
- attributionText && /* @__PURE__ */ jsx(
3143
- Pressable,
3134
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full max-w-sm items-center space-x-2", children: [
3135
+ /* @__PURE__ */ jsx(
3136
+ "input",
3137
+ {
3138
+ type: "email",
3139
+ id: "newsletter-email",
3140
+ placeholder: newsletterPlaceholder || "Email",
3141
+ className: cn(
3142
+ "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
3143
+ newsletterInputClassName
3144
+ )
3145
+ }
3146
+ ),
3147
+ newsletterButtonText && /* @__PURE__ */ jsx(
3148
+ Pressable,
3149
+ {
3150
+ onClick: (e) => {
3151
+ e.preventDefault();
3152
+ },
3153
+ variant: "default",
3154
+ size: "default",
3155
+ asButton: true,
3156
+ className: cn(newsletterButtonClassName),
3157
+ children: newsletterButtonText
3158
+ }
3159
+ )
3160
+ ] }),
3161
+ (privacyConsentText || privacyLinkText) && /* @__PURE__ */ jsxs("p", { className: cn("mt-1 text-xs ", privacyClassName), children: [
3162
+ privacyConsentText,
3163
+ privacyLinkText && /* @__PURE__ */ jsx(
3164
+ Pressable,
3165
+ {
3166
+ href: privacyLinkUrl || "#",
3167
+ className: "ml-1 hover:underline",
3168
+ children: privacyLinkText
3169
+ }
3170
+ )
3171
+ ] })
3172
+ ]
3173
+ }
3174
+ ),
3175
+ socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("", socialColumnClassName), children: /* @__PURE__ */ jsx(
3176
+ "ul",
3144
3177
  {
3145
- href: attributionHref || "https://opensite.ai",
3146
- className: "hover:text-primary",
3147
- children: attributionText
3178
+ className: cn(
3179
+ "mb-10 flex items-center gap-2",
3180
+ socialLinksClassName
3181
+ ),
3182
+ children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { className: "font-medium", children: /* @__PURE__ */ jsx(
3183
+ SocialLinkIcon,
3184
+ {
3185
+ href: social.href,
3186
+ label: social.label,
3187
+ iconNameOverride: social.iconNameOverride,
3188
+ iconSize: 24,
3189
+ className: cn(
3190
+ "flex size-12 items-center justify-center rounded-full transition-colors",
3191
+ socialLinkClassName
3192
+ )
3193
+ }
3194
+ ) }, idx))
3148
3195
  }
3149
- )
3150
- ] }) })
3196
+ ) })
3197
+ ] }),
3198
+ /* @__PURE__ */ jsx(
3199
+ "div",
3200
+ {
3201
+ className: cn(
3202
+ "mt-20 flex flex-col justify-between gap-4 border-t pt-8 text-sm font-medium md:flex-row md:items-center",
3203
+ bottomClassName
3204
+ ),
3205
+ children: /* @__PURE__ */ jsxs(
3206
+ "div",
3207
+ {
3208
+ className: cn(
3209
+ "flex flex-col gap-2 md:flex-row md:items-center md:gap-4",
3210
+ copyrightClassName
3211
+ ),
3212
+ children: [
3213
+ /* @__PURE__ */ jsx("p", { children: copyrightText }),
3214
+ attributionText && /* @__PURE__ */ jsx(
3215
+ Pressable,
3216
+ {
3217
+ href: attributionHref || "https://opensite.ai",
3218
+ className: "hover:text-primary",
3219
+ children: attributionText
3220
+ }
3221
+ )
3222
+ ]
3223
+ }
3224
+ )
3225
+ }
3226
+ )
3151
3227
  ] }) })
3152
3228
  }
3153
3229
  );