@opensite/ui 2.4.8 → 2.4.9

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 (91) hide show
  1. package/dist/about-developer-profile.cjs +1 -1
  2. package/dist/about-developer-profile.js +1 -1
  3. package/dist/about-stats-sidebar.cjs +5 -3
  4. package/dist/about-stats-sidebar.js +5 -3
  5. package/dist/about-story-hero.cjs +119 -105
  6. package/dist/about-story-hero.js +101 -102
  7. package/dist/components.cjs +1 -1
  8. package/dist/components.js +1 -1
  9. package/dist/cta-accent-background.cjs +8 -69
  10. package/dist/cta-accent-background.d.cts +1 -1
  11. package/dist/cta-accent-background.d.ts +1 -1
  12. package/dist/cta-accent-background.js +8 -69
  13. package/dist/cta-app-download-newsletter.cjs +4 -81
  14. package/dist/cta-app-download-newsletter.js +4 -81
  15. package/dist/faq-badge-support.cjs +97 -84
  16. package/dist/faq-badge-support.d.cts +1 -1
  17. package/dist/faq-badge-support.d.ts +1 -1
  18. package/dist/faq-badge-support.js +97 -83
  19. package/dist/faq-sidebar-navigation.cjs +106 -72
  20. package/dist/faq-sidebar-navigation.d.cts +1 -1
  21. package/dist/faq-sidebar-navigation.d.ts +1 -1
  22. package/dist/faq-sidebar-navigation.js +104 -70
  23. package/dist/faq-simple-accordion.cjs +83 -50
  24. package/dist/faq-simple-accordion.d.cts +13 -1
  25. package/dist/faq-simple-accordion.d.ts +13 -1
  26. package/dist/faq-simple-accordion.js +82 -46
  27. package/dist/feature-accordion-image.cjs +115 -85
  28. package/dist/feature-accordion-image.js +113 -83
  29. package/dist/feature-animated-carousel.cjs +2 -2
  30. package/dist/feature-animated-carousel.js +2 -2
  31. package/dist/feature-image-cards-three-column.cjs +2 -2
  32. package/dist/feature-image-cards-three-column.js +2 -2
  33. package/dist/footer-accordion-social.cjs +1 -1
  34. package/dist/footer-accordion-social.js +1 -1
  35. package/dist/footer-animated-social.cjs +1 -1
  36. package/dist/footer-animated-social.js +1 -1
  37. package/dist/footer-brand-description.cjs +1 -1
  38. package/dist/footer-brand-description.js +1 -1
  39. package/dist/footer-brand-links-contact.cjs +1 -1
  40. package/dist/footer-brand-links-contact.js +1 -1
  41. package/dist/footer-comprehensive-links.cjs +1 -1
  42. package/dist/footer-comprehensive-links.js +1 -1
  43. package/dist/footer-contact-card.cjs +1 -1
  44. package/dist/footer-contact-card.js +1 -1
  45. package/dist/footer-cta-banner.cjs +1 -1
  46. package/dist/footer-cta-banner.js +1 -1
  47. package/dist/footer-cta-social.cjs +1 -1
  48. package/dist/footer-cta-social.js +1 -1
  49. package/dist/footer-info-cards-accordion.cjs +1 -1
  50. package/dist/footer-info-cards-accordion.js +1 -1
  51. package/dist/footer-nav-social.cjs +1 -1
  52. package/dist/footer-nav-social.js +1 -1
  53. package/dist/footer-newsletter-contact.cjs +1 -1
  54. package/dist/footer-newsletter-contact.js +1 -1
  55. package/dist/footer-newsletter-grid.cjs +1 -1
  56. package/dist/footer-newsletter-grid.js +1 -1
  57. package/dist/footer-newsletter-minimal.cjs +1 -1
  58. package/dist/footer-newsletter-minimal.js +1 -1
  59. package/dist/footer-social-apps.cjs +1 -1
  60. package/dist/footer-social-apps.js +1 -1
  61. package/dist/footer-social-newsletter.cjs +1 -1
  62. package/dist/footer-social-newsletter.js +1 -1
  63. package/dist/footer-split-image-accordion.cjs +1 -1
  64. package/dist/footer-split-image-accordion.js +1 -1
  65. package/dist/hero-coming-soon-countdown.cjs +1 -1
  66. package/dist/hero-coming-soon-countdown.js +1 -1
  67. package/dist/hero-product-showcase-floating.cjs +120 -90
  68. package/dist/hero-product-showcase-floating.d.cts +5 -1
  69. package/dist/hero-product-showcase-floating.d.ts +5 -1
  70. package/dist/hero-product-showcase-floating.js +120 -90
  71. package/dist/index.cjs +1 -1
  72. package/dist/index.js +1 -1
  73. package/dist/link-page-bento-layout.cjs +1 -1
  74. package/dist/link-page-bento-layout.js +1 -1
  75. package/dist/link-page-grid-cards.cjs +1 -1
  76. package/dist/link-page-grid-cards.js +1 -1
  77. package/dist/link-page-minimal-profile.cjs +1 -1
  78. package/dist/link-page-minimal-profile.js +1 -1
  79. package/dist/link-page-newsletter-social.cjs +1 -1
  80. package/dist/link-page-newsletter-social.js +1 -1
  81. package/dist/link-tree-block.cjs +1 -1
  82. package/dist/link-tree-block.js +1 -1
  83. package/dist/navbar-fullscreen-menu.cjs +1 -1
  84. package/dist/navbar-fullscreen-menu.js +1 -1
  85. package/dist/navbar-transparent-overlay.cjs +1 -1
  86. package/dist/navbar-transparent-overlay.js +1 -1
  87. package/dist/registry.cjs +396 -289
  88. package/dist/registry.js +396 -289
  89. package/dist/social-link-icon.cjs +1 -1
  90. package/dist/social-link-icon.js +1 -1
  91. package/package.json +2 -2
package/dist/registry.cjs CHANGED
@@ -1486,7 +1486,7 @@ var platformIconMap = {
1486
1486
  yelp: "cib/yelp",
1487
1487
  spotify: "cib/spotify",
1488
1488
  apple: "cib/apple",
1489
- x: "line-md/twitter-x-alt",
1489
+ x: "prime/twitter",
1490
1490
  github: "cib/github",
1491
1491
  snapchat: "cib/snapchat",
1492
1492
  discord: "cib/discord",
@@ -8536,18 +8536,68 @@ function AboutStoryHero({
8536
8536
  "div",
8537
8537
  {
8538
8538
  className: cn(
8539
- "mt-6 md:mt-8 rounded-2xl p-6",
8540
- getNestedCardBg(background),
8541
- getNestedCardTextColor(background),
8539
+ "rounded-2xl bg-muted text-muted-foreground",
8540
+ "flex flex-col items-start gap-2",
8542
8541
  teamInfoClassName
8543
8542
  ),
8544
8543
  children: [
8545
- typeof teamInfo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-2xl font-bold", children: teamInfo.title }) : teamInfo.title,
8546
- typeof teamInfo.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-1", getTextColor(background, "muted")), children: teamInfo.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: teamInfo.description })
8544
+ teamInfo.title ? typeof teamInfo.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-xl md:text-2xl font-bold", children: teamInfo.title }) : teamInfo.title : null,
8545
+ teamInfo.description ? typeof teamInfo.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg", children: teamInfo.description }) : teamInfo.description : null
8547
8546
  ]
8548
8547
  }
8549
8548
  );
8550
8549
  }, [teamInfoSlot, teamInfo, teamInfoClassName, background]);
8550
+ const contentItems = React27.useMemo(() => {
8551
+ const items = [];
8552
+ if (subtitle) {
8553
+ if (typeof subtitle === "string") {
8554
+ items.push({
8555
+ _type: "text",
8556
+ as: "p",
8557
+ className: cn(
8558
+ "text-sm font-semibold",
8559
+ "uppercase tracking-wider opacity-65",
8560
+ subtitleClassName
8561
+ ),
8562
+ children: subtitle
8563
+ });
8564
+ } else {
8565
+ items.push(subtitle);
8566
+ }
8567
+ }
8568
+ if (title) {
8569
+ if (typeof title === "string") {
8570
+ items.push({
8571
+ _type: "text",
8572
+ as: "h1",
8573
+ className: cn("text-4xl font-bold tracking-tight md:text-5xl", title),
8574
+ children: title
8575
+ });
8576
+ } else {
8577
+ items.push(title);
8578
+ }
8579
+ }
8580
+ if (content) {
8581
+ if (typeof content === "string") {
8582
+ items.push({
8583
+ _type: "text",
8584
+ as: "p",
8585
+ className: cn("text-lg whitespace-pre-line", bodyClassName),
8586
+ children: content
8587
+ });
8588
+ } else {
8589
+ items.push(content);
8590
+ }
8591
+ }
8592
+ return items;
8593
+ }, [
8594
+ subtitle,
8595
+ subtitleClassName,
8596
+ title,
8597
+ titleClassName,
8598
+ content,
8599
+ bodyClassName
8600
+ ]);
8551
8601
  return /* @__PURE__ */ jsxRuntime.jsx(
8552
8602
  Section,
8553
8603
  {
@@ -8555,49 +8605,24 @@ function AboutStoryHero({
8555
8605
  spacing,
8556
8606
  pattern,
8557
8607
  patternOpacity,
8558
- className: cn(className),
8608
+ className,
8559
8609
  containerClassName,
8560
8610
  children: /* @__PURE__ */ jsxRuntime.jsxs(
8561
8611
  "div",
8562
8612
  {
8563
8613
  className: cn(
8564
- "grid gap:6 md:gap-12 lg:grid-cols-2 lg:items-center",
8614
+ "grid gap-6 md:gap-12 grid-cols-1 lg:grid-cols-2 items-center",
8565
8615
  contentClassName
8566
8616
  ),
8567
8617
  children: [
8568
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
8569
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
8570
- "p",
8571
- {
8572
- className: cn(
8573
- "text-sm font-semibold uppercase tracking-wider",
8574
- getAccentColor(background),
8575
- subtitleClassName
8576
- ),
8577
- children: subtitle
8578
- }
8579
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subtitleClassName, children: subtitle })),
8580
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
8581
- "h1",
8582
- {
8583
- className: cn(
8584
- "mt-4 text-4xl font-bold tracking-tight md:text-5xl",
8585
- titleClassName
8586
- ),
8587
- children: title
8588
- }
8589
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", titleClassName), children: title })),
8590
- content && (typeof content === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
8591
- "p",
8618
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6 md:space-y-8", children: [
8619
+ /* @__PURE__ */ jsxRuntime.jsx(
8620
+ ContentGroup,
8592
8621
  {
8593
- className: cn(
8594
- "mt-6 text-lg whitespace-pre-line",
8595
- getTextColor(background, "muted"),
8596
- bodyClassName
8597
- ),
8598
- children: content
8622
+ items: contentItems,
8623
+ className: "space-y-4 md:space-y-6"
8599
8624
  }
8600
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6", bodyClassName), children: content })),
8625
+ ),
8601
8626
  (teamInfoSlot || teamInfo) && teamInfoContent
8602
8627
  ] }),
8603
8628
  heroImage && /* @__PURE__ */ jsxRuntime.jsx(
@@ -8606,7 +8631,8 @@ function AboutStoryHero({
8606
8631
  src: heroImage.src,
8607
8632
  alt: heroImage.alt,
8608
8633
  className: cn(
8609
- "mt-6 md:mt-0 w-full h-auto rounded-2xl object-cover sm:h-full",
8634
+ "w-full h-auto sm:h-full",
8635
+ "rounded-2xl object-cover shadow-xl",
8610
8636
  imageClassName
8611
8637
  ),
8612
8638
  optixFlowConfig
@@ -8676,7 +8702,9 @@ function AboutStatsSidebar({
8676
8702
  "div",
8677
8703
  {
8678
8704
  className: cn(
8679
- "mt-8 space-y-6 p-6 bg-card text-card-foreground rounded-xl shadow-xl",
8705
+ "bg-card text-card-foreground",
8706
+ "mt-4 md:mt-6 space-y-6 p-6",
8707
+ "rounded-xl shadow-xl",
8680
8708
  featuresClassName
8681
8709
  ),
8682
8710
  children: features.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex gap-4", children: [
@@ -8724,8 +8752,8 @@ function AboutStatsSidebar({
8724
8752
  ),
8725
8753
  children: title
8726
8754
  }
8727
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
8728
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
8755
+ ) : title),
8756
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description)
8729
8757
  ]
8730
8758
  }
8731
8759
  ),
@@ -10785,14 +10813,14 @@ function CtaAccentBackground({
10785
10813
  actions,
10786
10814
  actionsSlot,
10787
10815
  className,
10788
- containerClassName,
10789
10816
  contentClassName,
10790
10817
  headingClassName,
10791
10818
  descriptionClassName,
10792
10819
  actionsClassName,
10793
10820
  cardClassName,
10794
10821
  background,
10795
- spacing,
10822
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
10823
+ spacing = "lg",
10796
10824
  pattern,
10797
10825
  patternOpacity
10798
10826
  }) {
@@ -10832,18 +10860,14 @@ function CtaAccentBackground({
10832
10860
  {
10833
10861
  background,
10834
10862
  spacing,
10835
- className: cn(className),
10863
+ className,
10836
10864
  pattern,
10837
10865
  patternOpacity,
10838
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
10866
+ containerClassName,
10867
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(
10839
10868
  "div",
10840
10869
  {
10841
- className: cn(
10842
- "rounded-lg p-8 md:rounded-xl lg:p-12",
10843
- getNestedCardBg(background, "accent"),
10844
- getNestedCardTextColor(background),
10845
- cardClassName
10846
- ),
10870
+ className: cn("rounded-lg p-8 md:rounded-xl lg:p-12", cardClassName),
10847
10871
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-4xl", contentClassName), children: [
10848
10872
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
10849
10873
  "h3",
@@ -10854,18 +10878,17 @@ function CtaAccentBackground({
10854
10878
  ),
10855
10879
  children: heading
10856
10880
  }
10857
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 lg:mb-6", headingClassName), children: heading })),
10881
+ ) : heading),
10858
10882
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
10859
10883
  "p",
10860
10884
  {
10861
10885
  className: cn(
10862
10886
  "mb-8 text-lg font-medium lg:text-xl",
10863
- getTextColor(background, "muted"),
10864
10887
  descriptionClassName
10865
10888
  ),
10866
10889
  children: description
10867
10890
  }
10868
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", descriptionClassName), children: description })),
10891
+ ) : description),
10869
10892
  actionsContent
10870
10893
  ] })
10871
10894
  }
@@ -11744,7 +11767,8 @@ function CtaAppDownloadNewsletter({
11744
11767
  className: cn(className),
11745
11768
  pattern,
11746
11769
  patternOpacity,
11747
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: [
11770
+ containerClassName,
11771
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: [
11748
11772
  /* @__PURE__ */ jsxRuntime.jsxs(
11749
11773
  "div",
11750
11774
  {
@@ -11764,17 +11788,7 @@ function CtaAppDownloadNewsletter({
11764
11788
  children: appHeading
11765
11789
  }
11766
11790
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", appHeadingClassName), children: appHeading })),
11767
- appDescription && (typeof appDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
11768
- "p",
11769
- {
11770
- className: cn(
11771
- "mb-8",
11772
- getTextColor(background, "muted"),
11773
- appDescriptionClassName
11774
- ),
11775
- children: appDescription
11776
- }
11777
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", appDescriptionClassName), children: appDescription })),
11791
+ appDescription && (typeof appDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8", appDescriptionClassName), children: appDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", appDescriptionClassName), children: appDescription })),
11778
11792
  appActionsContent
11779
11793
  ] }),
11780
11794
  phoneMockupImage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -right-16 -bottom-16 h-64 w-48 rotate-12 opacity-20 lg:h-80 lg:w-60", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -11794,8 +11808,6 @@ function CtaAppDownloadNewsletter({
11794
11808
  {
11795
11809
  className: cn(
11796
11810
  "flex flex-col justify-center rounded-2xl border p-8 lg:p-12",
11797
- getNestedCardBg(background, "card"),
11798
- getNestedCardTextColor(background),
11799
11811
  newsletterCardClassName
11800
11812
  ),
11801
11813
  children: [
@@ -11809,17 +11821,7 @@ function CtaAppDownloadNewsletter({
11809
11821
  children: newsletterHeading
11810
11822
  }
11811
11823
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", newsletterHeadingClassName), children: newsletterHeading })),
11812
- newsletterDescription && (typeof newsletterDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
11813
- "p",
11814
- {
11815
- className: cn(
11816
- "mb-8",
11817
- getTextColor(background, "muted"),
11818
- newsletterDescriptionClassName
11819
- ),
11820
- children: newsletterDescription
11821
- }
11822
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription })),
11824
+ newsletterDescription && (typeof newsletterDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription })),
11823
11825
  /* @__PURE__ */ jsxRuntime.jsxs(
11824
11826
  forms.Form,
11825
11827
  {
@@ -26427,7 +26429,7 @@ function FeatureImageCardsThreeColumn({
26427
26429
  style: aspectRatioStyle,
26428
26430
  className: cn(
26429
26431
  "group relative overflow-hidden rounded-2xl shadow-xl",
26430
- "aspect-[var(--aspect-mobile)] md:aspect-[var(--aspect-desktop)]",
26432
+ "aspect-(--aspect-mobile) `md:aspect-(--aspect-desktop)",
26431
26433
  cardClassName,
26432
26434
  card.className
26433
26435
  ),
@@ -26458,7 +26460,7 @@ function FeatureImageCardsThreeColumn({
26458
26460
  as: "h2",
26459
26461
  className: cn(
26460
26462
  "text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
26461
- title
26463
+ titleClassName
26462
26464
  ),
26463
26465
  children: title
26464
26466
  });
@@ -26814,7 +26816,6 @@ function FeatureAccordionImage({
26814
26816
  }) {
26815
26817
  const [activeItem, setActiveItem] = React27__namespace.useState(defaultValue || "item-0");
26816
26818
  const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
26817
- const currentImage = items?.[activeIndex] || items?.[0];
26818
26819
  const accordionItemsContent = React27.useMemo(() => {
26819
26820
  if (itemsSlot) return itemsSlot;
26820
26821
  if (!items || items.length === 0) return null;
@@ -26828,44 +26829,90 @@ function FeatureAccordionImage({
26828
26829
  AccordionTrigger,
26829
26830
  {
26830
26831
  className: cn(
26831
- "text-left text-md md:text-lg font-medium",
26832
+ "text-left md:text-lg font-medium",
26832
26833
  item.triggerClassName
26833
26834
  ),
26834
26835
  children: item.title
26835
26836
  }
26836
26837
  ),
26837
- item.content && /* @__PURE__ */ jsxRuntime.jsx(
26838
- AccordionContent,
26839
- {
26840
- className: cn(
26841
- getTextColor(background, "muted"),
26842
- item.contentClassName
26843
- ),
26844
- children: item.content
26845
- }
26846
- )
26838
+ item.content && /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: cn(item.contentClassName), children: item.content })
26847
26839
  ]
26848
26840
  },
26849
26841
  index
26850
26842
  ));
26851
26843
  }, [itemsSlot, items]);
26852
26844
  const imageContent = React27.useMemo(() => {
26853
- if (currentImage?.imageSlot) return currentImage.imageSlot;
26854
- if (!currentImage?.imageSrc) return null;
26855
- return /* @__PURE__ */ jsxRuntime.jsx(
26856
- img.Img,
26857
- {
26858
- src: currentImage.imageSrc,
26859
- alt: currentImage.imageAlt || "",
26860
- className: cn(
26861
- "h-full w-full object-cover transition-opacity duration-300",
26862
- imageClassName
26863
- ),
26864
- loading: "lazy",
26865
- optixFlowConfig
26845
+ if (!items || items.length === 0) return null;
26846
+ const hasImageSlot = items.some((item) => item.imageSlot);
26847
+ if (hasImageSlot) {
26848
+ const current = items[activeIndex] || items[0];
26849
+ if (current?.imageSlot) return current.imageSlot;
26850
+ if (!current?.imageSrc) return null;
26851
+ return /* @__PURE__ */ jsxRuntime.jsx(
26852
+ img.Img,
26853
+ {
26854
+ src: current.imageSrc,
26855
+ alt: current.imageAlt || "Feature Image",
26856
+ className: cn(
26857
+ "h-full w-full object-cover transition-opacity duration-500",
26858
+ imageClassName
26859
+ ),
26860
+ loading: "eager",
26861
+ optixFlowConfig
26862
+ }
26863
+ );
26864
+ }
26865
+ return items.map((item, index) => {
26866
+ if (!item.imageSrc) return null;
26867
+ const isActive = index === activeIndex;
26868
+ return /* @__PURE__ */ jsxRuntime.jsx(
26869
+ img.Img,
26870
+ {
26871
+ src: item.imageSrc,
26872
+ alt: item.imageAlt || "Feature Image",
26873
+ className: cn(
26874
+ "absolute inset-0 h-full w-full object-cover transition-opacity duration-500 ease-in-out",
26875
+ isActive ? "opacity-100" : "opacity-0",
26876
+ imageClassName
26877
+ ),
26878
+ loading: "eager",
26879
+ optixFlowConfig
26880
+ },
26881
+ index
26882
+ );
26883
+ });
26884
+ }, [items, activeIndex, imageClassName, optixFlowConfig]);
26885
+ const contentItems = React27.useMemo(() => {
26886
+ const items2 = [];
26887
+ if (title) {
26888
+ if (typeof title === "string") {
26889
+ items2.push({
26890
+ _type: "text",
26891
+ as: "h2",
26892
+ className: cn(
26893
+ "text-2xl font-semibold md:text-3xl lg:text-4xl",
26894
+ titleClassName
26895
+ ),
26896
+ children: title
26897
+ });
26898
+ } else {
26899
+ items2.push(title);
26866
26900
  }
26867
- );
26868
- }, [currentImage, imageClassName, optixFlowConfig]);
26901
+ }
26902
+ if (description) {
26903
+ if (typeof description === "string") {
26904
+ items2.push({
26905
+ _type: "text",
26906
+ as: "p",
26907
+ className: cn("text-lg opacity-70", descriptionClassName),
26908
+ children: description
26909
+ });
26910
+ } else {
26911
+ items2.push(description);
26912
+ }
26913
+ }
26914
+ return items2;
26915
+ }, [title, titleClassName, description, descriptionClassName]);
26869
26916
  return /* @__PURE__ */ jsxRuntime.jsx(
26870
26917
  Section,
26871
26918
  {
@@ -26877,35 +26924,14 @@ function FeatureAccordionImage({
26877
26924
  className,
26878
26925
  containerClassName,
26879
26926
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center space-y-6 md:space-y-16", children: [
26880
- (title || description) && /* @__PURE__ */ jsxRuntime.jsxs(
26881
- "div",
26927
+ /* @__PURE__ */ jsxRuntime.jsx(
26928
+ ContentGroup,
26882
26929
  {
26930
+ items: contentItems,
26883
26931
  className: cn(
26884
26932
  "text-left md:text-center max-w-full md:max-w-md text-balance",
26885
26933
  headerClassName
26886
- ),
26887
- children: [
26888
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
26889
- "h2",
26890
- {
26891
- className: cn(
26892
- "text-2xl font-semibold md:text-3xl lg:text-4xl",
26893
- titleClassName
26894
- ),
26895
- children: title
26896
- }
26897
- ) : /* @__PURE__ */ jsxRuntime.jsx(
26898
- "div",
26899
- {
26900
- className: cn(
26901
- "text-xl font-semibold md:text-2xl lg:text-3xl",
26902
- titleClassName
26903
- ),
26904
- children: title
26905
- }
26906
- )),
26907
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }))
26908
- ]
26934
+ )
26909
26935
  }
26910
26936
  ),
26911
26937
  (itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(
@@ -39115,13 +39141,16 @@ function FaqSimpleAccordion({
39115
39141
  items,
39116
39142
  itemsSlot,
39117
39143
  background,
39118
- spacing = "py-6 md:py-32",
39144
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
39145
+ spacing = "lg",
39119
39146
  pattern,
39120
39147
  patternOpacity,
39121
39148
  patternClassName,
39122
39149
  className,
39123
- containerClassName,
39150
+ description,
39151
+ descriptionClassName,
39124
39152
  headingClassName,
39153
+ headerClassName,
39125
39154
  accordionClassName,
39126
39155
  accordionItemClassName,
39127
39156
  accordionTriggerClassName,
@@ -39146,13 +39175,7 @@ function FaqSimpleAccordion({
39146
39175
  children: item.question
39147
39176
  }
39148
39177
  ),
39149
- /* @__PURE__ */ jsxRuntime.jsx(
39150
- AccordionContent,
39151
- {
39152
- className: cn(getTextColor(background, "muted"), accordionContentClassName),
39153
- children: item.answer
39154
- }
39155
- )
39178
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: cn(accordionContentClassName), children: item.answer })
39156
39179
  ]
39157
39180
  },
39158
39181
  item.id || index
@@ -39166,6 +39189,37 @@ function FaqSimpleAccordion({
39166
39189
  accordionContentClassName,
39167
39190
  background
39168
39191
  ]);
39192
+ const contentItems = React27.useMemo(() => {
39193
+ const items2 = [];
39194
+ if (heading) {
39195
+ if (typeof heading === "string") {
39196
+ items2.push({
39197
+ _type: "text",
39198
+ as: "h2",
39199
+ className: cn(
39200
+ "font-semibold text-4xl md:text-5xl lg:text-6xl",
39201
+ headingClassName
39202
+ ),
39203
+ children: heading
39204
+ });
39205
+ } else {
39206
+ items2.push(heading);
39207
+ }
39208
+ }
39209
+ if (description) {
39210
+ if (typeof description === "string") {
39211
+ items2.push({
39212
+ _type: "text",
39213
+ as: "p",
39214
+ className: cn("text-lg opacity-70", descriptionClassName),
39215
+ children: description
39216
+ });
39217
+ } else {
39218
+ items2.push(description);
39219
+ }
39220
+ }
39221
+ return items2;
39222
+ }, [heading, headingClassName, description, descriptionClassName]);
39169
39223
  return /* @__PURE__ */ jsxRuntime.jsx(
39170
39224
  Section,
39171
39225
  {
@@ -39175,17 +39229,18 @@ function FaqSimpleAccordion({
39175
39229
  patternOpacity,
39176
39230
  patternClassName,
39177
39231
  className,
39178
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-3xl", containerClassName), children: [
39179
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
39180
- "h1",
39232
+ containerClassName,
39233
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-full md:max-w-3xl space-y-4 md:space-y-8", children: [
39234
+ /* @__PURE__ */ jsxRuntime.jsx(
39235
+ ContentGroup,
39181
39236
  {
39237
+ items: contentItems,
39182
39238
  className: cn(
39183
- "mb-4 text-3xl font-semibold md:mb-11 md:text-4xl",
39184
- headingClassName
39185
- ),
39186
- children: heading
39239
+ "flex flex-col gap-2 text-left items-start",
39240
+ headerClassName
39241
+ )
39187
39242
  }
39188
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
39243
+ ),
39189
39244
  itemsContent
39190
39245
  ] })
39191
39246
  }
@@ -39372,12 +39427,12 @@ function FaqBadgeSupport({
39372
39427
  supportAction,
39373
39428
  supportSlot,
39374
39429
  background,
39375
- spacing = "py-6 md:py-32",
39430
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
39431
+ spacing = "py-12 md:py-32",
39376
39432
  pattern,
39377
39433
  patternOpacity,
39378
39434
  patternClassName,
39379
39435
  className,
39380
- containerClassName,
39381
39436
  headerClassName,
39382
39437
  badgeClassName,
39383
39438
  headingClassName,
@@ -39410,14 +39465,14 @@ function FaqBadgeSupport({
39410
39465
  "transition-opacity duration-200 hover:no-underline hover:opacity-60",
39411
39466
  accordionTriggerClassName
39412
39467
  ),
39413
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium sm:py-1 lg:py-2 lg:text-lg", children: item.question })
39468
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold py-1 lg:py-2 text-lg leading-tight", children: item.question })
39414
39469
  }
39415
39470
  ),
39416
39471
  /* @__PURE__ */ jsxRuntime.jsx(
39417
39472
  AccordionContent,
39418
39473
  {
39419
39474
  className: cn("sm:mb-1 lg:mb-2", accordionContentClassName),
39420
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(getTextColor(background, "muted"), "lg:text-lg"), children: item.answer })
39475
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg", children: item.answer })
39421
39476
  }
39422
39477
  )
39423
39478
  ]
@@ -39441,11 +39496,16 @@ function FaqBadgeSupport({
39441
39496
  "div",
39442
39497
  {
39443
39498
  className: cn(
39444
- "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center md:flex-row md:justify-between md:text-left",
39499
+ "mx-auto max-w-full md:max-w-3xl",
39500
+ "flex flex-col items-center md:flex-row md:justify-between",
39501
+ "bg-card text-card-foreground",
39502
+ "text-center md:text-left",
39503
+ "gap-4 p-6 md:p-12",
39504
+ "rounded-lg shadow-lg ring-2",
39445
39505
  supportSectionClassName
39446
39506
  ),
39447
39507
  children: [
39448
- supportText && (typeof supportText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: supportText }) : supportText),
39508
+ supportText && (typeof supportText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold", children: supportText }) : supportText),
39449
39509
  supportAction && /* @__PURE__ */ jsxRuntime.jsxs(
39450
39510
  Pressable,
39451
39511
  {
@@ -39465,7 +39525,49 @@ function FaqBadgeSupport({
39465
39525
  ]
39466
39526
  }
39467
39527
  );
39468
- }, [supportSlot, supportText, supportAction, supportSectionClassName, background]);
39528
+ }, [
39529
+ supportSlot,
39530
+ supportText,
39531
+ supportAction,
39532
+ supportSectionClassName,
39533
+ background
39534
+ ]);
39535
+ const contentItems = React27.useMemo(() => {
39536
+ const items2 = [];
39537
+ if (heading) {
39538
+ if (typeof heading === "string") {
39539
+ items2.push({
39540
+ _type: "text",
39541
+ as: "h2",
39542
+ className: cn(
39543
+ "max-w-full md:max-w-md",
39544
+ "text-3xl md:text-4xl lg:text-5xl",
39545
+ "font-semibold text-balance",
39546
+ headingClassName
39547
+ ),
39548
+ children: heading
39549
+ });
39550
+ } else {
39551
+ items2.push(heading);
39552
+ }
39553
+ }
39554
+ if (description) {
39555
+ if (typeof description === "string") {
39556
+ items2.push({
39557
+ _type: "text",
39558
+ as: "p",
39559
+ className: cn(
39560
+ "text-base md:text-lg max-w-full md:max-w-md text-balance",
39561
+ descriptionClassName
39562
+ ),
39563
+ children: description
39564
+ });
39565
+ } else {
39566
+ items2.push(description);
39567
+ }
39568
+ }
39569
+ return items2;
39570
+ }, [heading, headingClassName, description, descriptionClassName]);
39469
39571
  return /* @__PURE__ */ jsxRuntime.jsx(
39470
39572
  Section,
39471
39573
  {
@@ -39475,49 +39577,31 @@ function FaqBadgeSupport({
39475
39577
  patternOpacity,
39476
39578
  patternClassName,
39477
39579
  className,
39478
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-8 md:space-y-16", containerClassName), children: [
39580
+ containerClassName,
39581
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-8 md:space-y-16", children: [
39479
39582
  /* @__PURE__ */ jsxRuntime.jsxs(
39480
39583
  "div",
39481
39584
  {
39482
39585
  className: cn(
39483
- "mx-auto flex max-w-3xl flex-col text-left md:text-center",
39586
+ "mx-auto flex max-w-full md:max-w-3xl flex-col text-left md:text-center",
39484
39587
  headerClassName
39485
39588
  ),
39486
39589
  children: [
39487
- badge && /* @__PURE__ */ jsxRuntime.jsx(
39488
- Badge,
39489
- {
39490
- variant: "outline",
39491
- className: cn("w-fit md:mx-auto", badgeClassName),
39492
- children: badge
39493
- }
39494
- ),
39495
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
39496
- "h2",
39497
- {
39498
- className: cn(
39499
- "mt-4 text-3xl font-semibold md:text-4xl",
39500
- headingClassName
39501
- ),
39502
- children: heading
39503
- }
39504
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
39505
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
39506
- "p",
39590
+ badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("px-2", badgeClassName), children: badge }),
39591
+ /* @__PURE__ */ jsxRuntime.jsx(
39592
+ ContentGroup,
39507
39593
  {
39594
+ items: contentItems,
39508
39595
  className: cn(
39509
- getTextColor(background, "muted"),
39510
- "mt-6 text-base md:text-lg",
39511
- descriptionClassName
39512
- ),
39513
- children: description
39596
+ "flex flex-col gap-2 text-left md:text-center items-start",
39597
+ headerClassName
39598
+ )
39514
39599
  }
39515
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
39600
+ )
39516
39601
  ]
39517
39602
  }
39518
39603
  ),
39519
39604
  itemsContent,
39520
- /* @__PURE__ */ jsxRuntime.jsx(Separator, {}),
39521
39605
  supportSectionContent
39522
39606
  ] })
39523
39607
  }
@@ -40471,18 +40555,18 @@ function FaqGradientCategories({
40471
40555
  function FaqSidebarNavigation({
40472
40556
  heading,
40473
40557
  description,
40558
+ descriptionClassName,
40474
40559
  categories,
40475
40560
  categoriesSlot,
40476
40561
  background,
40477
- spacing,
40562
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
40563
+ spacing = "xl",
40478
40564
  pattern,
40479
40565
  patternOpacity,
40480
40566
  patternClassName,
40481
40567
  className,
40482
- containerClassName,
40483
40568
  headerClassName,
40484
40569
  headingClassName,
40485
- descriptionClassName,
40486
40570
  contentWrapperClassName,
40487
40571
  navClassName,
40488
40572
  navButtonClassName,
@@ -40541,7 +40625,7 @@ function FaqSidebarNavigation({
40541
40625
  AccordionContent,
40542
40626
  {
40543
40627
  className: cn("sm:mb-1 lg:mb-2", accordionContentClassName),
40544
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(getTextColor(background, "muted"), "lg:text-lg"), children: item.answer })
40628
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("lg:text-lg"), children: item.answer })
40545
40629
  }
40546
40630
  )
40547
40631
  ]
@@ -40552,7 +40636,48 @@ function FaqSidebarNavigation({
40552
40636
  },
40553
40637
  category.id
40554
40638
  )) });
40555
- }, [categoriesSlot, filteredCategories, categoriesWrapperClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName, background]);
40639
+ }, [
40640
+ categoriesSlot,
40641
+ filteredCategories,
40642
+ categoriesWrapperClassName,
40643
+ categoryTitleClassName,
40644
+ accordionClassName,
40645
+ accordionItemClassName,
40646
+ accordionTriggerClassName,
40647
+ accordionContentClassName,
40648
+ background
40649
+ ]);
40650
+ const contentItems = React27.useMemo(() => {
40651
+ const items = [];
40652
+ if (heading) {
40653
+ if (typeof heading === "string") {
40654
+ items.push({
40655
+ _type: "text",
40656
+ as: "h2",
40657
+ className: cn(
40658
+ "font-semibold text-4xl md:text-5xl lg:text-6xl",
40659
+ headingClassName
40660
+ ),
40661
+ children: heading
40662
+ });
40663
+ } else {
40664
+ items.push(heading);
40665
+ }
40666
+ }
40667
+ if (description) {
40668
+ if (typeof description === "string") {
40669
+ items.push({
40670
+ _type: "text",
40671
+ as: "p",
40672
+ className: cn("text-lg opacity-70", descriptionClassName),
40673
+ children: description
40674
+ });
40675
+ } else {
40676
+ items.push(description);
40677
+ }
40678
+ }
40679
+ return items;
40680
+ }, [heading, headingClassName, description, descriptionClassName]);
40556
40681
  return /* @__PURE__ */ jsxRuntime.jsx(
40557
40682
  Section,
40558
40683
  {
@@ -40561,38 +40686,17 @@ function FaqSidebarNavigation({
40561
40686
  pattern,
40562
40687
  patternOpacity,
40563
40688
  patternClassName,
40564
- className,
40565
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: containerClassName, children: [
40566
- /* @__PURE__ */ jsxRuntime.jsxs(
40567
- "div",
40689
+ className: cn(pattern && "overflow-visible", className),
40690
+ containerClassName,
40691
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
40692
+ /* @__PURE__ */ jsxRuntime.jsx(
40693
+ ContentGroup,
40568
40694
  {
40695
+ items: contentItems,
40569
40696
  className: cn(
40570
- "mx-auto flex max-w-3xl flex-col text-left md:text-center",
40697
+ "flex flex-col text-left mb-12 md:mb-24 gap-0 text-balance items-start max-w-full md:max-w-md",
40571
40698
  headerClassName
40572
- ),
40573
- children: [
40574
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
40575
- "h2",
40576
- {
40577
- className: cn(
40578
- "mb-3 text-3xl font-semibold md:mb-4 lg:mb-6 lg:text-4xl",
40579
- headingClassName
40580
- ),
40581
- children: heading
40582
- }
40583
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
40584
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
40585
- "p",
40586
- {
40587
- className: cn(
40588
- getTextColor(background, "muted"),
40589
- "lg:text-lg",
40590
- descriptionClassName
40591
- ),
40592
- children: description
40593
- }
40594
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
40595
- ]
40699
+ )
40596
40700
  }
40597
40701
  ),
40598
40702
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -40603,17 +40707,21 @@ function FaqSidebarNavigation({
40603
40707
  contentWrapperClassName
40604
40708
  ),
40605
40709
  children: [
40606
- /* @__PURE__ */ jsxRuntime.jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-24 flex gap-2 overflow-x-auto pb-2 lg:flex-col lg:gap-2 lg:overflow-visible lg:pb-0", children: [
40710
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-24 flex gap-1 overflow-x-auto lg:flex-col lg:gap-2 lg:overflow-visible p-2 ring-2 rounded-lg", children: [
40607
40711
  categories && categories.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
40608
40712
  "button",
40609
40713
  {
40610
40714
  onClick: () => setActiveCategory("all"),
40611
40715
  className: cn(
40612
- "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40716
+ "cursor-pointer",
40717
+ "shrink-0 whitespace-nowrap rounded-md px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40613
40718
  activeCategory === "all" ? cn(
40614
40719
  "bg-primary text-primary-foreground",
40615
40720
  navButtonActiveClassName
40616
- ) : cn("hover:bg-muted", navButtonClassName)
40721
+ ) : cn(
40722
+ "hover:bg-muted hover:text-muted-foreground",
40723
+ navButtonClassName
40724
+ )
40617
40725
  ),
40618
40726
  children: "All"
40619
40727
  }
@@ -40623,11 +40731,15 @@ function FaqSidebarNavigation({
40623
40731
  {
40624
40732
  onClick: () => setActiveCategory(category.id),
40625
40733
  className: cn(
40626
- "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40734
+ "cursor-pointer",
40735
+ "shrink-0 whitespace-nowrap rounded-md px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40627
40736
  activeCategory === category.id ? cn(
40628
40737
  "bg-primary text-primary-foreground",
40629
40738
  navButtonActiveClassName
40630
- ) : cn("hover:bg-muted", navButtonClassName)
40739
+ ) : cn(
40740
+ "hover:bg-muted hover:text-muted-foreground",
40741
+ navButtonClassName
40742
+ )
40631
40743
  ),
40632
40744
  children: category.title
40633
40745
  },
@@ -41471,7 +41583,7 @@ var FeatureCard = React27__namespace.memo(
41471
41583
  delay: 0.3,
41472
41584
  ease: "easeOut"
41473
41585
  },
41474
- className: "p-6 text-sm md:p-8 md:text-base",
41586
+ className: "p-6 text-sm md:p-8 md:text-base text-balance",
41475
41587
  children: (feature.title || feature.description) && /* @__PURE__ */ jsxRuntime.jsxs("p", { children: [
41476
41588
  feature.title && /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "font-semibold", children: [
41477
41589
  feature.title,
@@ -41719,7 +41831,7 @@ function FeatureAnimatedCarousel({
41719
41831
  as: "h2",
41720
41832
  className: cn(
41721
41833
  "text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
41722
- title
41834
+ titleClassName
41723
41835
  ),
41724
41836
  children: title
41725
41837
  });
@@ -55001,56 +55113,40 @@ function HeroProductShowcaseFloating({
55001
55113
  spacing = "xl",
55002
55114
  contentClassName,
55003
55115
  headingClassName,
55116
+ headerClassName,
55004
55117
  descriptionClassName,
55005
55118
  showcaseClassName,
55006
55119
  optixFlowConfig
55007
55120
  }) {
55008
55121
  const renderBadge = React27.useMemo(() => {
55009
55122
  if (badgeSlot) return badgeSlot;
55010
- return /* @__PURE__ */ jsxRuntime.jsxs(
55011
- "div",
55012
- {
55013
- className: cn(
55014
- "inline-flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm font-medium",
55015
- `${getAccentColor(background)}/10`,
55016
- getAccentColor(background)
55017
- ),
55018
- children: [
55019
- badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
55020
- badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
55021
- ]
55022
- }
55023
- );
55123
+ return /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: cn("px-2"), children: [
55124
+ badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
55125
+ badgeText && /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
55126
+ ] });
55024
55127
  }, [badgeSlot, badgeIcon, badgeText]);
55025
55128
  const renderFloatingStat = React27.useMemo(() => {
55026
55129
  if (floatingStatSlot) return floatingStatSlot;
55027
55130
  if (!floatingStat) return null;
55028
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-background p-4 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
55029
- floatingStat.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-success/10", children: /* @__PURE__ */ jsxRuntime.jsx(
55030
- DynamicIcon,
55031
- {
55032
- name: floatingStat.icon,
55033
- size: 20,
55034
- className: "text-success"
55035
- }
55036
- ) }),
55037
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
55038
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xl font-bold ", children: floatingStat.value }),
55039
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-xs", getTextColor(background, "muted")), children: floatingStat.label })
55131
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
55132
+ floatingStat.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex shrink-0 size-10 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: floatingStat.icon }) }),
55133
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
55134
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold", children: floatingStat.value }),
55135
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-normal opacity-70", children: floatingStat.label })
55040
55136
  ] })
55041
55137
  ] }) });
55042
55138
  }, [floatingStatSlot, floatingStat]);
55043
55139
  const renderUserCount = React27.useMemo(() => {
55044
55140
  if (userCountSlot) return userCountSlot;
55045
55141
  if (!userCount) return null;
55046
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-background p-4 shadow-lg", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
55142
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
55047
55143
  userCount.avatars && userCount.avatars.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: userCount.avatars.map((avatar, idx) => /* @__PURE__ */ jsxRuntime.jsx(
55048
55144
  img.Img,
55049
55145
  {
55050
55146
  src: avatar.src,
55051
55147
  alt: avatar.alt,
55052
55148
  className: cn(
55053
- "h-8 w-8 rounded-full border-2 border-background object-cover",
55149
+ "size-8 rounded-full border-2 border-background object-cover",
55054
55150
  avatar.className
55055
55151
  ),
55056
55152
  optixFlowConfig
@@ -55058,8 +55154,8 @@ function HeroProductShowcaseFloating({
55058
55154
  idx
55059
55155
  )) }),
55060
55156
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-sm", children: [
55061
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold ", children: userCount.count }),
55062
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: getTextColor(background, "muted"), children: userCount.label })
55157
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold", children: userCount.count }),
55158
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-normal opacity-70", children: userCount.label })
55063
55159
  ] })
55064
55160
  ] }) });
55065
55161
  }, [userCountSlot, userCount, optixFlowConfig]);
@@ -55067,7 +55163,7 @@ function HeroProductShowcaseFloating({
55067
55163
  if (productImageSlot) return productImageSlot;
55068
55164
  if (!productImage) return null;
55069
55165
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("order-1", showcaseClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
55070
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-4/3 overflow-hidden rounded-2xl bg-linear-to-br from-primary/20 to-purple-500/20 p-8", children: /* @__PURE__ */ jsxRuntime.jsx(
55166
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-square overflow-hidden rounded-2xl bg-linear-to-br from-primary/20 to-primary/80 p-8", children: /* @__PURE__ */ jsxRuntime.jsx(
55071
55167
  img.Img,
55072
55168
  {
55073
55169
  src: productImage.src,
@@ -55090,6 +55186,37 @@ function HeroProductShowcaseFloating({
55090
55186
  renderFloatingStat,
55091
55187
  renderUserCount
55092
55188
  ]);
55189
+ const contentItems = React27.useMemo(() => {
55190
+ const items = [];
55191
+ if (heading) {
55192
+ if (typeof heading === "string") {
55193
+ items.push({
55194
+ _type: "text",
55195
+ as: "h2",
55196
+ className: cn(
55197
+ "text-2xl font-semibold md:text-3xl lg:text-4xl",
55198
+ headingClassName
55199
+ ),
55200
+ children: heading
55201
+ });
55202
+ } else {
55203
+ items.push(heading);
55204
+ }
55205
+ }
55206
+ if (description) {
55207
+ if (typeof description === "string") {
55208
+ items.push({
55209
+ _type: "text",
55210
+ as: "p",
55211
+ className: cn("text-lg opacity-70", descriptionClassName),
55212
+ children: description
55213
+ });
55214
+ } else {
55215
+ items.push(description);
55216
+ }
55217
+ }
55218
+ return items;
55219
+ }, [heading, headingClassName, description, descriptionClassName]);
55093
55220
  return /* @__PURE__ */ jsxRuntime.jsx(
55094
55221
  Section,
55095
55222
  {
@@ -55097,42 +55224,22 @@ function HeroProductShowcaseFloating({
55097
55224
  spacing,
55098
55225
  pattern,
55099
55226
  patternOpacity,
55100
- className: cn(className),
55227
+ className,
55101
55228
  containerClassName,
55102
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-10 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
55229
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 lg:gap-20", children: [
55103
55230
  renderProductShowcase,
55104
55231
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8 order-2", contentClassName), children: [
55105
55232
  renderBadge,
55106
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55107
- "h1",
55108
- {
55109
- className: cn(
55110
- "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
55111
- headingClassName
55112
- ),
55113
- children: heading
55114
- }
55115
- ) : /* @__PURE__ */ jsxRuntime.jsx(
55116
- "h1",
55117
- {
55118
- className: cn(
55119
- "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
55120
- headingClassName
55121
- ),
55122
- children: heading
55123
- }
55124
- )),
55125
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55126
- "p",
55233
+ /* @__PURE__ */ jsxRuntime.jsx(
55234
+ ContentGroup,
55127
55235
  {
55236
+ items: contentItems,
55128
55237
  className: cn(
55129
- "text-lg",
55130
- getTextColor(background, "muted"),
55131
- descriptionClassName
55132
- ),
55133
- children: description
55238
+ "text-left text-balance space-y-0 md:space-y-2",
55239
+ headerClassName
55240
+ )
55134
55241
  }
55135
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
55242
+ ),
55136
55243
  /* @__PURE__ */ jsxRuntime.jsx(
55137
55244
  BlockActions,
55138
55245
  {