@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.js CHANGED
@@ -1446,7 +1446,7 @@ var platformIconMap = {
1446
1446
  yelp: "cib/yelp",
1447
1447
  spotify: "cib/spotify",
1448
1448
  apple: "cib/apple",
1449
- x: "line-md/twitter-x-alt",
1449
+ x: "prime/twitter",
1450
1450
  github: "cib/github",
1451
1451
  snapchat: "cib/snapchat",
1452
1452
  discord: "cib/discord",
@@ -8496,18 +8496,68 @@ function AboutStoryHero({
8496
8496
  "div",
8497
8497
  {
8498
8498
  className: cn(
8499
- "mt-6 md:mt-8 rounded-2xl p-6",
8500
- getNestedCardBg(background),
8501
- getNestedCardTextColor(background),
8499
+ "rounded-2xl bg-muted text-muted-foreground",
8500
+ "flex flex-col items-start gap-2",
8502
8501
  teamInfoClassName
8503
8502
  ),
8504
8503
  children: [
8505
- typeof teamInfo.title === "string" ? /* @__PURE__ */ jsx("p", { className: "text-2xl font-bold", children: teamInfo.title }) : teamInfo.title,
8506
- typeof teamInfo.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1", getTextColor(background, "muted")), children: teamInfo.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: teamInfo.description })
8504
+ teamInfo.title ? typeof teamInfo.title === "string" ? /* @__PURE__ */ jsx("h2", { className: "text-xl md:text-2xl font-bold", children: teamInfo.title }) : teamInfo.title : null,
8505
+ teamInfo.description ? typeof teamInfo.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-lg", children: teamInfo.description }) : teamInfo.description : null
8507
8506
  ]
8508
8507
  }
8509
8508
  );
8510
8509
  }, [teamInfoSlot, teamInfo, teamInfoClassName, background]);
8510
+ const contentItems = useMemo(() => {
8511
+ const items = [];
8512
+ if (subtitle) {
8513
+ if (typeof subtitle === "string") {
8514
+ items.push({
8515
+ _type: "text",
8516
+ as: "p",
8517
+ className: cn(
8518
+ "text-sm font-semibold",
8519
+ "uppercase tracking-wider opacity-65",
8520
+ subtitleClassName
8521
+ ),
8522
+ children: subtitle
8523
+ });
8524
+ } else {
8525
+ items.push(subtitle);
8526
+ }
8527
+ }
8528
+ if (title) {
8529
+ if (typeof title === "string") {
8530
+ items.push({
8531
+ _type: "text",
8532
+ as: "h1",
8533
+ className: cn("text-4xl font-bold tracking-tight md:text-5xl", title),
8534
+ children: title
8535
+ });
8536
+ } else {
8537
+ items.push(title);
8538
+ }
8539
+ }
8540
+ if (content) {
8541
+ if (typeof content === "string") {
8542
+ items.push({
8543
+ _type: "text",
8544
+ as: "p",
8545
+ className: cn("text-lg whitespace-pre-line", bodyClassName),
8546
+ children: content
8547
+ });
8548
+ } else {
8549
+ items.push(content);
8550
+ }
8551
+ }
8552
+ return items;
8553
+ }, [
8554
+ subtitle,
8555
+ subtitleClassName,
8556
+ title,
8557
+ titleClassName,
8558
+ content,
8559
+ bodyClassName
8560
+ ]);
8511
8561
  return /* @__PURE__ */ jsx(
8512
8562
  Section,
8513
8563
  {
@@ -8515,49 +8565,24 @@ function AboutStoryHero({
8515
8565
  spacing,
8516
8566
  pattern,
8517
8567
  patternOpacity,
8518
- className: cn(className),
8568
+ className,
8519
8569
  containerClassName,
8520
8570
  children: /* @__PURE__ */ jsxs(
8521
8571
  "div",
8522
8572
  {
8523
8573
  className: cn(
8524
- "grid gap:6 md:gap-12 lg:grid-cols-2 lg:items-center",
8574
+ "grid gap-6 md:gap-12 grid-cols-1 lg:grid-cols-2 items-center",
8525
8575
  contentClassName
8526
8576
  ),
8527
8577
  children: [
8528
- /* @__PURE__ */ jsxs("div", { children: [
8529
- subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsx(
8530
- "p",
8531
- {
8532
- className: cn(
8533
- "text-sm font-semibold uppercase tracking-wider",
8534
- getAccentColor(background),
8535
- subtitleClassName
8536
- ),
8537
- children: subtitle
8538
- }
8539
- ) : /* @__PURE__ */ jsx("div", { className: subtitleClassName, children: subtitle })),
8540
- title && (typeof title === "string" ? /* @__PURE__ */ jsx(
8541
- "h1",
8542
- {
8543
- className: cn(
8544
- "mt-4 text-4xl font-bold tracking-tight md:text-5xl",
8545
- titleClassName
8546
- ),
8547
- children: title
8548
- }
8549
- ) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", titleClassName), children: title })),
8550
- content && (typeof content === "string" ? /* @__PURE__ */ jsx(
8551
- "p",
8578
+ /* @__PURE__ */ jsxs("div", { className: "space-y-6 md:space-y-8", children: [
8579
+ /* @__PURE__ */ jsx(
8580
+ ContentGroup,
8552
8581
  {
8553
- className: cn(
8554
- "mt-6 text-lg whitespace-pre-line",
8555
- getTextColor(background, "muted"),
8556
- bodyClassName
8557
- ),
8558
- children: content
8582
+ items: contentItems,
8583
+ className: "space-y-4 md:space-y-6"
8559
8584
  }
8560
- ) : /* @__PURE__ */ jsx("div", { className: cn("mt-6", bodyClassName), children: content })),
8585
+ ),
8561
8586
  (teamInfoSlot || teamInfo) && teamInfoContent
8562
8587
  ] }),
8563
8588
  heroImage && /* @__PURE__ */ jsx(
@@ -8566,7 +8591,8 @@ function AboutStoryHero({
8566
8591
  src: heroImage.src,
8567
8592
  alt: heroImage.alt,
8568
8593
  className: cn(
8569
- "mt-6 md:mt-0 w-full h-auto rounded-2xl object-cover sm:h-full",
8594
+ "w-full h-auto sm:h-full",
8595
+ "rounded-2xl object-cover shadow-xl",
8570
8596
  imageClassName
8571
8597
  ),
8572
8598
  optixFlowConfig
@@ -8636,7 +8662,9 @@ function AboutStatsSidebar({
8636
8662
  "div",
8637
8663
  {
8638
8664
  className: cn(
8639
- "mt-8 space-y-6 p-6 bg-card text-card-foreground rounded-xl shadow-xl",
8665
+ "bg-card text-card-foreground",
8666
+ "mt-4 md:mt-6 space-y-6 p-6",
8667
+ "rounded-xl shadow-xl",
8640
8668
  featuresClassName
8641
8669
  ),
8642
8670
  children: features.map((feature, idx) => /* @__PURE__ */ jsxs("div", { className: "flex gap-4", children: [
@@ -8684,8 +8712,8 @@ function AboutStatsSidebar({
8684
8712
  ),
8685
8713
  children: title
8686
8714
  }
8687
- ) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
8688
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
8715
+ ) : title),
8716
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", descriptionClassName), children: description }) : description)
8689
8717
  ]
8690
8718
  }
8691
8719
  ),
@@ -10745,14 +10773,14 @@ function CtaAccentBackground({
10745
10773
  actions,
10746
10774
  actionsSlot,
10747
10775
  className,
10748
- containerClassName,
10749
10776
  contentClassName,
10750
10777
  headingClassName,
10751
10778
  descriptionClassName,
10752
10779
  actionsClassName,
10753
10780
  cardClassName,
10754
10781
  background,
10755
- spacing,
10782
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
10783
+ spacing = "lg",
10756
10784
  pattern,
10757
10785
  patternOpacity
10758
10786
  }) {
@@ -10792,18 +10820,14 @@ function CtaAccentBackground({
10792
10820
  {
10793
10821
  background,
10794
10822
  spacing,
10795
- className: cn(className),
10823
+ className,
10796
10824
  pattern,
10797
10825
  patternOpacity,
10798
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsx(
10826
+ containerClassName,
10827
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
10799
10828
  "div",
10800
10829
  {
10801
- className: cn(
10802
- "rounded-lg p-8 md:rounded-xl lg:p-12",
10803
- getNestedCardBg(background, "accent"),
10804
- getNestedCardTextColor(background),
10805
- cardClassName
10806
- ),
10830
+ className: cn("rounded-lg p-8 md:rounded-xl lg:p-12", cardClassName),
10807
10831
  children: /* @__PURE__ */ jsxs("div", { className: cn("max-w-4xl", contentClassName), children: [
10808
10832
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
10809
10833
  "h3",
@@ -10814,18 +10838,17 @@ function CtaAccentBackground({
10814
10838
  ),
10815
10839
  children: heading
10816
10840
  }
10817
- ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 lg:mb-6", headingClassName), children: heading })),
10841
+ ) : heading),
10818
10842
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
10819
10843
  "p",
10820
10844
  {
10821
10845
  className: cn(
10822
10846
  "mb-8 text-lg font-medium lg:text-xl",
10823
- getTextColor(background, "muted"),
10824
10847
  descriptionClassName
10825
10848
  ),
10826
10849
  children: description
10827
10850
  }
10828
- ) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", descriptionClassName), children: description })),
10851
+ ) : description),
10829
10852
  actionsContent
10830
10853
  ] })
10831
10854
  }
@@ -11704,7 +11727,8 @@ function CtaAppDownloadNewsletter({
11704
11727
  className: cn(className),
11705
11728
  pattern,
11706
11729
  patternOpacity,
11707
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: [
11730
+ containerClassName,
11731
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: [
11708
11732
  /* @__PURE__ */ jsxs(
11709
11733
  "div",
11710
11734
  {
@@ -11724,17 +11748,7 @@ function CtaAppDownloadNewsletter({
11724
11748
  children: appHeading
11725
11749
  }
11726
11750
  ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", appHeadingClassName), children: appHeading })),
11727
- appDescription && (typeof appDescription === "string" ? /* @__PURE__ */ jsx(
11728
- "p",
11729
- {
11730
- className: cn(
11731
- "mb-8",
11732
- getTextColor(background, "muted"),
11733
- appDescriptionClassName
11734
- ),
11735
- children: appDescription
11736
- }
11737
- ) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", appDescriptionClassName), children: appDescription })),
11751
+ appDescription && (typeof appDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8", appDescriptionClassName), children: appDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", appDescriptionClassName), children: appDescription })),
11738
11752
  appActionsContent
11739
11753
  ] }),
11740
11754
  phoneMockupImage && /* @__PURE__ */ jsx("div", { className: "absolute -right-16 -bottom-16 h-64 w-48 rotate-12 opacity-20 lg:h-80 lg:w-60", children: /* @__PURE__ */ jsx(
@@ -11754,8 +11768,6 @@ function CtaAppDownloadNewsletter({
11754
11768
  {
11755
11769
  className: cn(
11756
11770
  "flex flex-col justify-center rounded-2xl border p-8 lg:p-12",
11757
- getNestedCardBg(background, "card"),
11758
- getNestedCardTextColor(background),
11759
11771
  newsletterCardClassName
11760
11772
  ),
11761
11773
  children: [
@@ -11769,17 +11781,7 @@ function CtaAppDownloadNewsletter({
11769
11781
  children: newsletterHeading
11770
11782
  }
11771
11783
  ) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", newsletterHeadingClassName), children: newsletterHeading })),
11772
- newsletterDescription && (typeof newsletterDescription === "string" ? /* @__PURE__ */ jsx(
11773
- "p",
11774
- {
11775
- className: cn(
11776
- "mb-8",
11777
- getTextColor(background, "muted"),
11778
- newsletterDescriptionClassName
11779
- ),
11780
- children: newsletterDescription
11781
- }
11782
- ) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription })),
11784
+ newsletterDescription && (typeof newsletterDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8", newsletterDescriptionClassName), children: newsletterDescription })),
11783
11785
  /* @__PURE__ */ jsxs(
11784
11786
  Form,
11785
11787
  {
@@ -26387,7 +26389,7 @@ function FeatureImageCardsThreeColumn({
26387
26389
  style: aspectRatioStyle,
26388
26390
  className: cn(
26389
26391
  "group relative overflow-hidden rounded-2xl shadow-xl",
26390
- "aspect-[var(--aspect-mobile)] md:aspect-[var(--aspect-desktop)]",
26392
+ "aspect-(--aspect-mobile) `md:aspect-(--aspect-desktop)",
26391
26393
  cardClassName,
26392
26394
  card.className
26393
26395
  ),
@@ -26418,7 +26420,7 @@ function FeatureImageCardsThreeColumn({
26418
26420
  as: "h2",
26419
26421
  className: cn(
26420
26422
  "text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
26421
- title
26423
+ titleClassName
26422
26424
  ),
26423
26425
  children: title
26424
26426
  });
@@ -26774,7 +26776,6 @@ function FeatureAccordionImage({
26774
26776
  }) {
26775
26777
  const [activeItem, setActiveItem] = React27.useState(defaultValue || "item-0");
26776
26778
  const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
26777
- const currentImage = items?.[activeIndex] || items?.[0];
26778
26779
  const accordionItemsContent = useMemo(() => {
26779
26780
  if (itemsSlot) return itemsSlot;
26780
26781
  if (!items || items.length === 0) return null;
@@ -26788,44 +26789,90 @@ function FeatureAccordionImage({
26788
26789
  AccordionTrigger,
26789
26790
  {
26790
26791
  className: cn(
26791
- "text-left text-md md:text-lg font-medium",
26792
+ "text-left md:text-lg font-medium",
26792
26793
  item.triggerClassName
26793
26794
  ),
26794
26795
  children: item.title
26795
26796
  }
26796
26797
  ),
26797
- item.content && /* @__PURE__ */ jsx(
26798
- AccordionContent,
26799
- {
26800
- className: cn(
26801
- getTextColor(background, "muted"),
26802
- item.contentClassName
26803
- ),
26804
- children: item.content
26805
- }
26806
- )
26798
+ item.content && /* @__PURE__ */ jsx(AccordionContent, { className: cn(item.contentClassName), children: item.content })
26807
26799
  ]
26808
26800
  },
26809
26801
  index
26810
26802
  ));
26811
26803
  }, [itemsSlot, items]);
26812
26804
  const imageContent = useMemo(() => {
26813
- if (currentImage?.imageSlot) return currentImage.imageSlot;
26814
- if (!currentImage?.imageSrc) return null;
26815
- return /* @__PURE__ */ jsx(
26816
- Img,
26817
- {
26818
- src: currentImage.imageSrc,
26819
- alt: currentImage.imageAlt || "",
26820
- className: cn(
26821
- "h-full w-full object-cover transition-opacity duration-300",
26822
- imageClassName
26823
- ),
26824
- loading: "lazy",
26825
- optixFlowConfig
26805
+ if (!items || items.length === 0) return null;
26806
+ const hasImageSlot = items.some((item) => item.imageSlot);
26807
+ if (hasImageSlot) {
26808
+ const current = items[activeIndex] || items[0];
26809
+ if (current?.imageSlot) return current.imageSlot;
26810
+ if (!current?.imageSrc) return null;
26811
+ return /* @__PURE__ */ jsx(
26812
+ Img,
26813
+ {
26814
+ src: current.imageSrc,
26815
+ alt: current.imageAlt || "Feature Image",
26816
+ className: cn(
26817
+ "h-full w-full object-cover transition-opacity duration-500",
26818
+ imageClassName
26819
+ ),
26820
+ loading: "eager",
26821
+ optixFlowConfig
26822
+ }
26823
+ );
26824
+ }
26825
+ return items.map((item, index) => {
26826
+ if (!item.imageSrc) return null;
26827
+ const isActive = index === activeIndex;
26828
+ return /* @__PURE__ */ jsx(
26829
+ Img,
26830
+ {
26831
+ src: item.imageSrc,
26832
+ alt: item.imageAlt || "Feature Image",
26833
+ className: cn(
26834
+ "absolute inset-0 h-full w-full object-cover transition-opacity duration-500 ease-in-out",
26835
+ isActive ? "opacity-100" : "opacity-0",
26836
+ imageClassName
26837
+ ),
26838
+ loading: "eager",
26839
+ optixFlowConfig
26840
+ },
26841
+ index
26842
+ );
26843
+ });
26844
+ }, [items, activeIndex, imageClassName, optixFlowConfig]);
26845
+ const contentItems = useMemo(() => {
26846
+ const items2 = [];
26847
+ if (title) {
26848
+ if (typeof title === "string") {
26849
+ items2.push({
26850
+ _type: "text",
26851
+ as: "h2",
26852
+ className: cn(
26853
+ "text-2xl font-semibold md:text-3xl lg:text-4xl",
26854
+ titleClassName
26855
+ ),
26856
+ children: title
26857
+ });
26858
+ } else {
26859
+ items2.push(title);
26826
26860
  }
26827
- );
26828
- }, [currentImage, imageClassName, optixFlowConfig]);
26861
+ }
26862
+ if (description) {
26863
+ if (typeof description === "string") {
26864
+ items2.push({
26865
+ _type: "text",
26866
+ as: "p",
26867
+ className: cn("text-lg opacity-70", descriptionClassName),
26868
+ children: description
26869
+ });
26870
+ } else {
26871
+ items2.push(description);
26872
+ }
26873
+ }
26874
+ return items2;
26875
+ }, [title, titleClassName, description, descriptionClassName]);
26829
26876
  return /* @__PURE__ */ jsx(
26830
26877
  Section,
26831
26878
  {
@@ -26837,35 +26884,14 @@ function FeatureAccordionImage({
26837
26884
  className,
26838
26885
  containerClassName,
26839
26886
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center space-y-6 md:space-y-16", children: [
26840
- (title || description) && /* @__PURE__ */ jsxs(
26841
- "div",
26887
+ /* @__PURE__ */ jsx(
26888
+ ContentGroup,
26842
26889
  {
26890
+ items: contentItems,
26843
26891
  className: cn(
26844
26892
  "text-left md:text-center max-w-full md:max-w-md text-balance",
26845
26893
  headerClassName
26846
- ),
26847
- children: [
26848
- title && (typeof title === "string" ? /* @__PURE__ */ jsx(
26849
- "h2",
26850
- {
26851
- className: cn(
26852
- "text-2xl font-semibold md:text-3xl lg:text-4xl",
26853
- titleClassName
26854
- ),
26855
- children: title
26856
- }
26857
- ) : /* @__PURE__ */ jsx(
26858
- "div",
26859
- {
26860
- className: cn(
26861
- "text-xl font-semibold md:text-2xl lg:text-3xl",
26862
- titleClassName
26863
- ),
26864
- children: title
26865
- }
26866
- )),
26867
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4 lg:text-lg", descriptionClassName), children: description }))
26868
- ]
26894
+ )
26869
26895
  }
26870
26896
  ),
26871
26897
  (itemsSlot || items && items.length > 0) && /* @__PURE__ */ jsxs(
@@ -39075,13 +39101,16 @@ function FaqSimpleAccordion({
39075
39101
  items,
39076
39102
  itemsSlot,
39077
39103
  background,
39078
- spacing = "py-6 md:py-32",
39104
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
39105
+ spacing = "lg",
39079
39106
  pattern,
39080
39107
  patternOpacity,
39081
39108
  patternClassName,
39082
39109
  className,
39083
- containerClassName,
39110
+ description,
39111
+ descriptionClassName,
39084
39112
  headingClassName,
39113
+ headerClassName,
39085
39114
  accordionClassName,
39086
39115
  accordionItemClassName,
39087
39116
  accordionTriggerClassName,
@@ -39106,13 +39135,7 @@ function FaqSimpleAccordion({
39106
39135
  children: item.question
39107
39136
  }
39108
39137
  ),
39109
- /* @__PURE__ */ jsx(
39110
- AccordionContent,
39111
- {
39112
- className: cn(getTextColor(background, "muted"), accordionContentClassName),
39113
- children: item.answer
39114
- }
39115
- )
39138
+ /* @__PURE__ */ jsx(AccordionContent, { className: cn(accordionContentClassName), children: item.answer })
39116
39139
  ]
39117
39140
  },
39118
39141
  item.id || index
@@ -39126,6 +39149,37 @@ function FaqSimpleAccordion({
39126
39149
  accordionContentClassName,
39127
39150
  background
39128
39151
  ]);
39152
+ const contentItems = useMemo(() => {
39153
+ const items2 = [];
39154
+ if (heading) {
39155
+ if (typeof heading === "string") {
39156
+ items2.push({
39157
+ _type: "text",
39158
+ as: "h2",
39159
+ className: cn(
39160
+ "font-semibold text-4xl md:text-5xl lg:text-6xl",
39161
+ headingClassName
39162
+ ),
39163
+ children: heading
39164
+ });
39165
+ } else {
39166
+ items2.push(heading);
39167
+ }
39168
+ }
39169
+ if (description) {
39170
+ if (typeof description === "string") {
39171
+ items2.push({
39172
+ _type: "text",
39173
+ as: "p",
39174
+ className: cn("text-lg opacity-70", descriptionClassName),
39175
+ children: description
39176
+ });
39177
+ } else {
39178
+ items2.push(description);
39179
+ }
39180
+ }
39181
+ return items2;
39182
+ }, [heading, headingClassName, description, descriptionClassName]);
39129
39183
  return /* @__PURE__ */ jsx(
39130
39184
  Section,
39131
39185
  {
@@ -39135,17 +39189,18 @@ function FaqSimpleAccordion({
39135
39189
  patternOpacity,
39136
39190
  patternClassName,
39137
39191
  className,
39138
- children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl", containerClassName), children: [
39139
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
39140
- "h1",
39192
+ containerClassName,
39193
+ children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-full md:max-w-3xl space-y-4 md:space-y-8", children: [
39194
+ /* @__PURE__ */ jsx(
39195
+ ContentGroup,
39141
39196
  {
39197
+ items: contentItems,
39142
39198
  className: cn(
39143
- "mb-4 text-3xl font-semibold md:mb-11 md:text-4xl",
39144
- headingClassName
39145
- ),
39146
- children: heading
39199
+ "flex flex-col gap-2 text-left items-start",
39200
+ headerClassName
39201
+ )
39147
39202
  }
39148
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
39203
+ ),
39149
39204
  itemsContent
39150
39205
  ] })
39151
39206
  }
@@ -39332,12 +39387,12 @@ function FaqBadgeSupport({
39332
39387
  supportAction,
39333
39388
  supportSlot,
39334
39389
  background,
39335
- spacing = "py-6 md:py-32",
39390
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
39391
+ spacing = "py-12 md:py-32",
39336
39392
  pattern,
39337
39393
  patternOpacity,
39338
39394
  patternClassName,
39339
39395
  className,
39340
- containerClassName,
39341
39396
  headerClassName,
39342
39397
  badgeClassName,
39343
39398
  headingClassName,
@@ -39370,14 +39425,14 @@ function FaqBadgeSupport({
39370
39425
  "transition-opacity duration-200 hover:no-underline hover:opacity-60",
39371
39426
  accordionTriggerClassName
39372
39427
  ),
39373
- children: /* @__PURE__ */ jsx("div", { className: "font-medium sm:py-1 lg:py-2 lg:text-lg", children: item.question })
39428
+ children: /* @__PURE__ */ jsx("div", { className: "font-semibold py-1 lg:py-2 text-lg leading-tight", children: item.question })
39374
39429
  }
39375
39430
  ),
39376
39431
  /* @__PURE__ */ jsx(
39377
39432
  AccordionContent,
39378
39433
  {
39379
39434
  className: cn("sm:mb-1 lg:mb-2", accordionContentClassName),
39380
- children: /* @__PURE__ */ jsx("div", { className: cn(getTextColor(background, "muted"), "lg:text-lg"), children: item.answer })
39435
+ children: /* @__PURE__ */ jsx("div", { className: "text-lg", children: item.answer })
39381
39436
  }
39382
39437
  )
39383
39438
  ]
@@ -39401,11 +39456,16 @@ function FaqBadgeSupport({
39401
39456
  "div",
39402
39457
  {
39403
39458
  className: cn(
39404
- "mx-auto flex max-w-3xl flex-col items-center gap-4 text-center md:flex-row md:justify-between md:text-left",
39459
+ "mx-auto max-w-full md:max-w-3xl",
39460
+ "flex flex-col items-center md:flex-row md:justify-between",
39461
+ "bg-card text-card-foreground",
39462
+ "text-center md:text-left",
39463
+ "gap-4 p-6 md:p-12",
39464
+ "rounded-lg shadow-lg ring-2",
39405
39465
  supportSectionClassName
39406
39466
  ),
39407
39467
  children: [
39408
- supportText && (typeof supportText === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: supportText }) : supportText),
39468
+ supportText && (typeof supportText === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-semibold", children: supportText }) : supportText),
39409
39469
  supportAction && /* @__PURE__ */ jsxs(
39410
39470
  Pressable,
39411
39471
  {
@@ -39425,7 +39485,49 @@ function FaqBadgeSupport({
39425
39485
  ]
39426
39486
  }
39427
39487
  );
39428
- }, [supportSlot, supportText, supportAction, supportSectionClassName, background]);
39488
+ }, [
39489
+ supportSlot,
39490
+ supportText,
39491
+ supportAction,
39492
+ supportSectionClassName,
39493
+ background
39494
+ ]);
39495
+ const contentItems = useMemo(() => {
39496
+ const items2 = [];
39497
+ if (heading) {
39498
+ if (typeof heading === "string") {
39499
+ items2.push({
39500
+ _type: "text",
39501
+ as: "h2",
39502
+ className: cn(
39503
+ "max-w-full md:max-w-md",
39504
+ "text-3xl md:text-4xl lg:text-5xl",
39505
+ "font-semibold text-balance",
39506
+ headingClassName
39507
+ ),
39508
+ children: heading
39509
+ });
39510
+ } else {
39511
+ items2.push(heading);
39512
+ }
39513
+ }
39514
+ if (description) {
39515
+ if (typeof description === "string") {
39516
+ items2.push({
39517
+ _type: "text",
39518
+ as: "p",
39519
+ className: cn(
39520
+ "text-base md:text-lg max-w-full md:max-w-md text-balance",
39521
+ descriptionClassName
39522
+ ),
39523
+ children: description
39524
+ });
39525
+ } else {
39526
+ items2.push(description);
39527
+ }
39528
+ }
39529
+ return items2;
39530
+ }, [heading, headingClassName, description, descriptionClassName]);
39429
39531
  return /* @__PURE__ */ jsx(
39430
39532
  Section,
39431
39533
  {
@@ -39435,49 +39537,31 @@ function FaqBadgeSupport({
39435
39537
  patternOpacity,
39436
39538
  patternClassName,
39437
39539
  className,
39438
- children: /* @__PURE__ */ jsxs("div", { className: cn("space-y-8 md:space-y-16", containerClassName), children: [
39540
+ containerClassName,
39541
+ children: /* @__PURE__ */ jsxs("div", { className: "space-y-8 md:space-y-16", children: [
39439
39542
  /* @__PURE__ */ jsxs(
39440
39543
  "div",
39441
39544
  {
39442
39545
  className: cn(
39443
- "mx-auto flex max-w-3xl flex-col text-left md:text-center",
39546
+ "mx-auto flex max-w-full md:max-w-3xl flex-col text-left md:text-center",
39444
39547
  headerClassName
39445
39548
  ),
39446
39549
  children: [
39447
- badge && /* @__PURE__ */ jsx(
39448
- Badge,
39449
- {
39450
- variant: "outline",
39451
- className: cn("w-fit md:mx-auto", badgeClassName),
39452
- children: badge
39453
- }
39454
- ),
39455
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
39456
- "h2",
39457
- {
39458
- className: cn(
39459
- "mt-4 text-3xl font-semibold md:text-4xl",
39460
- headingClassName
39461
- ),
39462
- children: heading
39463
- }
39464
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
39465
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
39466
- "p",
39550
+ badge && /* @__PURE__ */ jsx(Badge, { className: cn("px-2", badgeClassName), children: badge }),
39551
+ /* @__PURE__ */ jsx(
39552
+ ContentGroup,
39467
39553
  {
39554
+ items: contentItems,
39468
39555
  className: cn(
39469
- getTextColor(background, "muted"),
39470
- "mt-6 text-base md:text-lg",
39471
- descriptionClassName
39472
- ),
39473
- children: description
39556
+ "flex flex-col gap-2 text-left md:text-center items-start",
39557
+ headerClassName
39558
+ )
39474
39559
  }
39475
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
39560
+ )
39476
39561
  ]
39477
39562
  }
39478
39563
  ),
39479
39564
  itemsContent,
39480
- /* @__PURE__ */ jsx(Separator, {}),
39481
39565
  supportSectionContent
39482
39566
  ] })
39483
39567
  }
@@ -40431,18 +40515,18 @@ function FaqGradientCategories({
40431
40515
  function FaqSidebarNavigation({
40432
40516
  heading,
40433
40517
  description,
40518
+ descriptionClassName,
40434
40519
  categories,
40435
40520
  categoriesSlot,
40436
40521
  background,
40437
- spacing,
40522
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
40523
+ spacing = "xl",
40438
40524
  pattern,
40439
40525
  patternOpacity,
40440
40526
  patternClassName,
40441
40527
  className,
40442
- containerClassName,
40443
40528
  headerClassName,
40444
40529
  headingClassName,
40445
- descriptionClassName,
40446
40530
  contentWrapperClassName,
40447
40531
  navClassName,
40448
40532
  navButtonClassName,
@@ -40501,7 +40585,7 @@ function FaqSidebarNavigation({
40501
40585
  AccordionContent,
40502
40586
  {
40503
40587
  className: cn("sm:mb-1 lg:mb-2", accordionContentClassName),
40504
- children: /* @__PURE__ */ jsx("div", { className: cn(getTextColor(background, "muted"), "lg:text-lg"), children: item.answer })
40588
+ children: /* @__PURE__ */ jsx("div", { className: cn("lg:text-lg"), children: item.answer })
40505
40589
  }
40506
40590
  )
40507
40591
  ]
@@ -40512,7 +40596,48 @@ function FaqSidebarNavigation({
40512
40596
  },
40513
40597
  category.id
40514
40598
  )) });
40515
- }, [categoriesSlot, filteredCategories, categoriesWrapperClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName, background]);
40599
+ }, [
40600
+ categoriesSlot,
40601
+ filteredCategories,
40602
+ categoriesWrapperClassName,
40603
+ categoryTitleClassName,
40604
+ accordionClassName,
40605
+ accordionItemClassName,
40606
+ accordionTriggerClassName,
40607
+ accordionContentClassName,
40608
+ background
40609
+ ]);
40610
+ const contentItems = useMemo(() => {
40611
+ const items = [];
40612
+ if (heading) {
40613
+ if (typeof heading === "string") {
40614
+ items.push({
40615
+ _type: "text",
40616
+ as: "h2",
40617
+ className: cn(
40618
+ "font-semibold text-4xl md:text-5xl lg:text-6xl",
40619
+ headingClassName
40620
+ ),
40621
+ children: heading
40622
+ });
40623
+ } else {
40624
+ items.push(heading);
40625
+ }
40626
+ }
40627
+ if (description) {
40628
+ if (typeof description === "string") {
40629
+ items.push({
40630
+ _type: "text",
40631
+ as: "p",
40632
+ className: cn("text-lg opacity-70", descriptionClassName),
40633
+ children: description
40634
+ });
40635
+ } else {
40636
+ items.push(description);
40637
+ }
40638
+ }
40639
+ return items;
40640
+ }, [heading, headingClassName, description, descriptionClassName]);
40516
40641
  return /* @__PURE__ */ jsx(
40517
40642
  Section,
40518
40643
  {
@@ -40521,38 +40646,17 @@ function FaqSidebarNavigation({
40521
40646
  pattern,
40522
40647
  patternOpacity,
40523
40648
  patternClassName,
40524
- className,
40525
- children: /* @__PURE__ */ jsxs("div", { className: containerClassName, children: [
40526
- /* @__PURE__ */ jsxs(
40527
- "div",
40649
+ className: cn(pattern && "overflow-visible", className),
40650
+ containerClassName,
40651
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
40652
+ /* @__PURE__ */ jsx(
40653
+ ContentGroup,
40528
40654
  {
40655
+ items: contentItems,
40529
40656
  className: cn(
40530
- "mx-auto flex max-w-3xl flex-col text-left md:text-center",
40657
+ "flex flex-col text-left mb-12 md:mb-24 gap-0 text-balance items-start max-w-full md:max-w-md",
40531
40658
  headerClassName
40532
- ),
40533
- children: [
40534
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
40535
- "h2",
40536
- {
40537
- className: cn(
40538
- "mb-3 text-3xl font-semibold md:mb-4 lg:mb-6 lg:text-4xl",
40539
- headingClassName
40540
- ),
40541
- children: heading
40542
- }
40543
- ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
40544
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
40545
- "p",
40546
- {
40547
- className: cn(
40548
- getTextColor(background, "muted"),
40549
- "lg:text-lg",
40550
- descriptionClassName
40551
- ),
40552
- children: description
40553
- }
40554
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
40555
- ]
40659
+ )
40556
40660
  }
40557
40661
  ),
40558
40662
  /* @__PURE__ */ jsxs(
@@ -40563,17 +40667,21 @@ function FaqSidebarNavigation({
40563
40667
  contentWrapperClassName
40564
40668
  ),
40565
40669
  children: [
40566
- /* @__PURE__ */ jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ 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: [
40670
+ /* @__PURE__ */ jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ 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: [
40567
40671
  categories && categories.length > 1 && /* @__PURE__ */ jsx(
40568
40672
  "button",
40569
40673
  {
40570
40674
  onClick: () => setActiveCategory("all"),
40571
40675
  className: cn(
40572
- "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40676
+ "cursor-pointer",
40677
+ "shrink-0 whitespace-nowrap rounded-md px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40573
40678
  activeCategory === "all" ? cn(
40574
40679
  "bg-primary text-primary-foreground",
40575
40680
  navButtonActiveClassName
40576
- ) : cn("hover:bg-muted", navButtonClassName)
40681
+ ) : cn(
40682
+ "hover:bg-muted hover:text-muted-foreground",
40683
+ navButtonClassName
40684
+ )
40577
40685
  ),
40578
40686
  children: "All"
40579
40687
  }
@@ -40583,11 +40691,15 @@ function FaqSidebarNavigation({
40583
40691
  {
40584
40692
  onClick: () => setActiveCategory(category.id),
40585
40693
  className: cn(
40586
- "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40694
+ "cursor-pointer",
40695
+ "shrink-0 whitespace-nowrap rounded-md px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
40587
40696
  activeCategory === category.id ? cn(
40588
40697
  "bg-primary text-primary-foreground",
40589
40698
  navButtonActiveClassName
40590
- ) : cn("hover:bg-muted", navButtonClassName)
40699
+ ) : cn(
40700
+ "hover:bg-muted hover:text-muted-foreground",
40701
+ navButtonClassName
40702
+ )
40591
40703
  ),
40592
40704
  children: category.title
40593
40705
  },
@@ -41431,7 +41543,7 @@ var FeatureCard = React27.memo(
41431
41543
  delay: 0.3,
41432
41544
  ease: "easeOut"
41433
41545
  },
41434
- className: "p-6 text-sm md:p-8 md:text-base",
41546
+ className: "p-6 text-sm md:p-8 md:text-base text-balance",
41435
41547
  children: (feature.title || feature.description) && /* @__PURE__ */ jsxs("p", { children: [
41436
41548
  feature.title && /* @__PURE__ */ jsxs("span", { className: "font-semibold", children: [
41437
41549
  feature.title,
@@ -41679,7 +41791,7 @@ function FeatureAnimatedCarousel({
41679
41791
  as: "h2",
41680
41792
  className: cn(
41681
41793
  "text-3xl font-semibold text-balance md:text-4xl lg:text-5xl max-w-full md:max-w-md",
41682
- title
41794
+ titleClassName
41683
41795
  ),
41684
41796
  children: title
41685
41797
  });
@@ -54961,56 +55073,40 @@ function HeroProductShowcaseFloating({
54961
55073
  spacing = "xl",
54962
55074
  contentClassName,
54963
55075
  headingClassName,
55076
+ headerClassName,
54964
55077
  descriptionClassName,
54965
55078
  showcaseClassName,
54966
55079
  optixFlowConfig
54967
55080
  }) {
54968
55081
  const renderBadge = useMemo(() => {
54969
55082
  if (badgeSlot) return badgeSlot;
54970
- return /* @__PURE__ */ jsxs(
54971
- "div",
54972
- {
54973
- className: cn(
54974
- "inline-flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm font-medium",
54975
- `${getAccentColor(background)}/10`,
54976
- getAccentColor(background)
54977
- ),
54978
- children: [
54979
- badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
54980
- badgeText && /* @__PURE__ */ jsx("span", { children: badgeText })
54981
- ]
54982
- }
54983
- );
55083
+ return /* @__PURE__ */ jsxs(Badge, { className: cn("px-2"), children: [
55084
+ badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
55085
+ badgeText && /* @__PURE__ */ jsx("span", { children: badgeText })
55086
+ ] });
54984
55087
  }, [badgeSlot, badgeIcon, badgeText]);
54985
55088
  const renderFloatingStat = useMemo(() => {
54986
55089
  if (floatingStatSlot) return floatingStatSlot;
54987
55090
  if (!floatingStat) return null;
54988
- return /* @__PURE__ */ jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-background p-4 shadow-lg", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
54989
- floatingStat.icon && /* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-full bg-success/10", children: /* @__PURE__ */ jsx(
54990
- DynamicIcon,
54991
- {
54992
- name: floatingStat.icon,
54993
- size: 20,
54994
- className: "text-success"
54995
- }
54996
- ) }),
54997
- /* @__PURE__ */ jsxs("div", { children: [
54998
- /* @__PURE__ */ jsx("div", { className: "text-2xl font-bold ", children: floatingStat.value }),
54999
- /* @__PURE__ */ jsx("div", { className: cn("text-xs", getTextColor(background, "muted")), children: floatingStat.label })
55091
+ return /* @__PURE__ */ jsx("div", { className: "absolute -top-4 -right-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
55092
+ floatingStat.icon && /* @__PURE__ */ jsx("div", { className: "flex shrink-0 size-10 items-center justify-center rounded-full bg-primary text-primary-foreground shadow-lg", children: /* @__PURE__ */ jsx(DynamicIcon, { name: floatingStat.icon }) }),
55093
+ /* @__PURE__ */ jsxs("div", { className: "text-sm", children: [
55094
+ /* @__PURE__ */ jsx("div", { className: "font-semibold", children: floatingStat.value }),
55095
+ /* @__PURE__ */ jsx("div", { className: "font-normal opacity-70", children: floatingStat.label })
55000
55096
  ] })
55001
55097
  ] }) });
55002
55098
  }, [floatingStatSlot, floatingStat]);
55003
55099
  const renderUserCount = useMemo(() => {
55004
55100
  if (userCountSlot) return userCountSlot;
55005
55101
  if (!userCount) return null;
55006
- return /* @__PURE__ */ jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-background p-4 shadow-lg", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
55102
+ return /* @__PURE__ */ jsx("div", { className: "absolute -bottom-4 -left-4 rounded-xl bg-card text-card-foreground p-4 shadow-lg border", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
55007
55103
  userCount.avatars && userCount.avatars.length > 0 && /* @__PURE__ */ jsx("div", { className: "flex -space-x-2", children: userCount.avatars.map((avatar, idx) => /* @__PURE__ */ jsx(
55008
55104
  Img,
55009
55105
  {
55010
55106
  src: avatar.src,
55011
55107
  alt: avatar.alt,
55012
55108
  className: cn(
55013
- "h-8 w-8 rounded-full border-2 border-background object-cover",
55109
+ "size-8 rounded-full border-2 border-background object-cover",
55014
55110
  avatar.className
55015
55111
  ),
55016
55112
  optixFlowConfig
@@ -55018,8 +55114,8 @@ function HeroProductShowcaseFloating({
55018
55114
  idx
55019
55115
  )) }),
55020
55116
  /* @__PURE__ */ jsxs("div", { className: "text-sm", children: [
55021
- /* @__PURE__ */ jsx("div", { className: "font-semibold ", children: userCount.count }),
55022
- /* @__PURE__ */ jsx("div", { className: getTextColor(background, "muted"), children: userCount.label })
55117
+ /* @__PURE__ */ jsx("div", { className: "font-semibold", children: userCount.count }),
55118
+ /* @__PURE__ */ jsx("div", { className: "font-normal opacity-70", children: userCount.label })
55023
55119
  ] })
55024
55120
  ] }) });
55025
55121
  }, [userCountSlot, userCount, optixFlowConfig]);
@@ -55027,7 +55123,7 @@ function HeroProductShowcaseFloating({
55027
55123
  if (productImageSlot) return productImageSlot;
55028
55124
  if (!productImage) return null;
55029
55125
  return /* @__PURE__ */ jsx("div", { className: cn("order-1", showcaseClassName), children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
55030
- /* @__PURE__ */ 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__ */ jsx(
55126
+ /* @__PURE__ */ jsx("div", { className: "aspect-square overflow-hidden rounded-2xl bg-linear-to-br from-primary/20 to-primary/80 p-8", children: /* @__PURE__ */ jsx(
55031
55127
  Img,
55032
55128
  {
55033
55129
  src: productImage.src,
@@ -55050,6 +55146,37 @@ function HeroProductShowcaseFloating({
55050
55146
  renderFloatingStat,
55051
55147
  renderUserCount
55052
55148
  ]);
55149
+ const contentItems = useMemo(() => {
55150
+ const items = [];
55151
+ if (heading) {
55152
+ if (typeof heading === "string") {
55153
+ items.push({
55154
+ _type: "text",
55155
+ as: "h2",
55156
+ className: cn(
55157
+ "text-2xl font-semibold md:text-3xl lg:text-4xl",
55158
+ headingClassName
55159
+ ),
55160
+ children: heading
55161
+ });
55162
+ } else {
55163
+ items.push(heading);
55164
+ }
55165
+ }
55166
+ if (description) {
55167
+ if (typeof description === "string") {
55168
+ items.push({
55169
+ _type: "text",
55170
+ as: "p",
55171
+ className: cn("text-lg opacity-70", descriptionClassName),
55172
+ children: description
55173
+ });
55174
+ } else {
55175
+ items.push(description);
55176
+ }
55177
+ }
55178
+ return items;
55179
+ }, [heading, headingClassName, description, descriptionClassName]);
55053
55180
  return /* @__PURE__ */ jsx(
55054
55181
  Section,
55055
55182
  {
@@ -55057,42 +55184,22 @@ function HeroProductShowcaseFloating({
55057
55184
  spacing,
55058
55185
  pattern,
55059
55186
  patternOpacity,
55060
- className: cn(className),
55187
+ className,
55061
55188
  containerClassName,
55062
- children: /* @__PURE__ */ jsx("div", { className: "pt-10 md:pt-0", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
55189
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 lg:gap-20", children: [
55063
55190
  renderProductShowcase,
55064
55191
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-8 order-2", contentClassName), children: [
55065
55192
  renderBadge,
55066
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
55067
- "h1",
55068
- {
55069
- className: cn(
55070
- "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
55071
- headingClassName
55072
- ),
55073
- children: heading
55074
- }
55075
- ) : /* @__PURE__ */ jsx(
55076
- "h1",
55077
- {
55078
- className: cn(
55079
- "text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl",
55080
- headingClassName
55081
- ),
55082
- children: heading
55083
- }
55084
- )),
55085
- description && (typeof description === "string" ? /* @__PURE__ */ jsx(
55086
- "p",
55193
+ /* @__PURE__ */ jsx(
55194
+ ContentGroup,
55087
55195
  {
55196
+ items: contentItems,
55088
55197
  className: cn(
55089
- "text-lg",
55090
- getTextColor(background, "muted"),
55091
- descriptionClassName
55092
- ),
55093
- children: description
55198
+ "text-left text-balance space-y-0 md:space-y-2",
55199
+ headerClassName
55200
+ )
55094
55201
  }
55095
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
55202
+ ),
55096
55203
  /* @__PURE__ */ jsx(
55097
55204
  BlockActions,
55098
55205
  {