@opensite/ui 1.7.0 → 1.7.2

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 (33) hide show
  1. package/dist/hero-architecture-fullscreen.cjs +65 -29
  2. package/dist/hero-architecture-fullscreen.d.cts +8 -1
  3. package/dist/hero-architecture-fullscreen.d.ts +8 -1
  4. package/dist/hero-architecture-fullscreen.js +65 -29
  5. package/dist/hero-billing-platform-logos.cjs +5 -5
  6. package/dist/hero-billing-platform-logos.js +5 -5
  7. package/dist/hero-centered-gradient-cta.cjs +114 -31
  8. package/dist/hero-centered-gradient-cta.js +114 -31
  9. package/dist/hero-conversion-video-play.cjs +5 -5
  10. package/dist/hero-conversion-video-play.js +5 -5
  11. package/dist/hero-design-showcase-logos.cjs +4 -4
  12. package/dist/hero-design-showcase-logos.js +4 -4
  13. package/dist/hero-grid-pattern-solutions.cjs +4 -4
  14. package/dist/hero-grid-pattern-solutions.js +4 -4
  15. package/dist/hero-hiring-animated-text.cjs +87 -34
  16. package/dist/hero-hiring-animated-text.js +88 -35
  17. package/dist/hero-premium-split-avatars.cjs +1 -1
  18. package/dist/hero-premium-split-avatars.js +1 -1
  19. package/dist/hero-productivity-launcher-video.cjs +3 -3
  20. package/dist/hero-productivity-launcher-video.js +3 -3
  21. package/dist/hero-split-spiral-shapes.cjs +2 -2
  22. package/dist/hero-split-spiral-shapes.js +2 -2
  23. package/dist/hero-task-timer-animated.cjs +1 -1
  24. package/dist/hero-task-timer-animated.js +1 -1
  25. package/dist/hero-testimonial-image-grid.cjs +62 -56
  26. package/dist/hero-testimonial-image-grid.js +62 -56
  27. package/dist/hero-therapy-testimonial-grid.cjs +72 -17
  28. package/dist/hero-therapy-testimonial-grid.js +72 -17
  29. package/dist/process-roadmap-timeline.cjs +12 -8
  30. package/dist/process-roadmap-timeline.js +12 -8
  31. package/dist/registry.cjs +403 -200
  32. package/dist/registry.js +403 -200
  33. package/package.json +1 -1
package/dist/registry.cjs CHANGED
@@ -51912,7 +51912,7 @@ function HeroSplitSpiralShapes({
51912
51912
  optixFlowConfig
51913
51913
  }
51914
51914
  ) }) }),
51915
- images[1] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-square", children: /* @__PURE__ */ jsxRuntime.jsx(
51915
+ images[1] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:top-[12%] md:right-[5%] md:w-[35%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsxRuntime.jsx(
51916
51916
  img.Img,
51917
51917
  {
51918
51918
  src: images[1].src,
@@ -51924,7 +51924,7 @@ function HeroSplitSpiralShapes({
51924
51924
  optixFlowConfig
51925
51925
  }
51926
51926
  ) }) }),
51927
- images[2] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video", children: /* @__PURE__ */ jsxRuntime.jsx(
51927
+ images[2] && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl md:absolute md:right-[10%] md:bottom-[15%] md:w-[55%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-5/6", children: /* @__PURE__ */ jsxRuntime.jsx(
51928
51928
  img.Img,
51929
51929
  {
51930
51930
  src: images[2].src,
@@ -53217,7 +53217,7 @@ function HeroPremiumSplitAvatars({
53217
53217
  image,
53218
53218
  imageSlot,
53219
53219
  background,
53220
- spacing = "py-32 md:py-32",
53220
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
53221
53221
  pattern,
53222
53222
  patternOpacity,
53223
53223
  className,
@@ -53704,7 +53704,7 @@ function HeroTaskTimerAnimated({
53704
53704
  images,
53705
53705
  imagesSlot,
53706
53706
  background,
53707
- spacing = "py-32 md:py-32",
53707
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
53708
53708
  pattern,
53709
53709
  patternOpacity,
53710
53710
  className,
@@ -54226,7 +54226,7 @@ function HeroGridPatternSolutions({
54226
54226
  images,
54227
54227
  imagesSlot,
54228
54228
  background,
54229
- spacing = "py-32 md:py-32",
54229
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
54230
54230
  pattern,
54231
54231
  patternOpacity,
54232
54232
  className,
@@ -54261,9 +54261,9 @@ function HeroGridPatternSolutions({
54261
54261
  const renderBadge = React52.useMemo(() => {
54262
54262
  if (badgeSlot) return badgeSlot;
54263
54263
  if (!badgeText) return null;
54264
- return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: badgeHref, children: /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: "px-2", children: [
54264
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: badgeHref, children: /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: "px-4", children: [
54265
54265
  badgeText,
54266
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right" })
54266
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 16 })
54267
54267
  ] }) });
54268
54268
  }, [badgeSlot, badgeHref, badgeText]);
54269
54269
  const renderActions = React52.useMemo(() => {
@@ -54356,7 +54356,7 @@ function HeroGridPatternSolutions({
54356
54356
  containerClassName,
54357
54357
  children: [
54358
54358
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
54359
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl", contentClassName), children: [
54359
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center", contentClassName), children: [
54360
54360
  renderBadge,
54361
54361
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
54362
54362
  "h1",
@@ -54498,7 +54498,7 @@ function HeroBillingPlatformLogos({
54498
54498
  logos,
54499
54499
  logosSlot,
54500
54500
  background,
54501
- spacing = "py-32 md:py-32",
54501
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
54502
54502
  pattern,
54503
54503
  patternOpacity,
54504
54504
  className,
@@ -54572,15 +54572,15 @@ function HeroBillingPlatformLogos({
54572
54572
  "div",
54573
54573
  {
54574
54574
  className: cn(
54575
- "flex flex-col items-center gap-4 lg:flex-row",
54575
+ "flex flex-col items-start md:items-center gap-4 lg:flex-row",
54576
54576
  actionsClassName
54577
54577
  ),
54578
54578
  children: renderActions
54579
54579
  }
54580
54580
  ) })
54581
54581
  ] }) }),
54582
- imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mr-auto ml-auto aspect-[1.28581291/1] w-full max-w-149 lg:mr-0 lg:ml-auto", children: [
54583
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mx-auto aspect-[1.020365896/1] h-full w-[79.35%] max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsxRuntime.jsx(
54582
+ imagesSlot ? imagesSlot : mainImage ? /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mr-auto ml-auto md:aspect-[1.28581291/1] w-full max-w-full md:max-w-149 lg:mr-0 lg:ml-auto", children: [
54583
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative mx-auto md:aspect-[1.020365896/1] h-full w-full md:w-[79.35%] max-w-full md:max-w-118.25 overflow-hidden rounded-3xl", children: /* @__PURE__ */ jsxRuntime.jsx(
54584
54584
  img.Img,
54585
54585
  {
54586
54586
  src: mainImage.src,
@@ -54634,7 +54634,7 @@ function HeroBillingPlatformLogos({
54634
54634
  "div",
54635
54635
  {
54636
54636
  className: cn(
54637
- "flex flex-col items-center justify-center gap-8 pt-28",
54637
+ "flex flex-col items-center justify-center gap-8 pt-8 md:pt-28",
54638
54638
  logosClassName
54639
54639
  ),
54640
54640
  children: [
@@ -54906,7 +54906,7 @@ function HeroConversionVideoPlay({
54906
54906
  description,
54907
54907
  primaryAction,
54908
54908
  videoButtonLabel = "Play Video",
54909
- videoUrl = "https://www.youtube.com/embed/your-video-id",
54909
+ videoUrl,
54910
54910
  videoDialogTitle = "Presentation Video",
54911
54911
  actionsSlot,
54912
54912
  image,
@@ -54915,7 +54915,7 @@ function HeroConversionVideoPlay({
54915
54915
  logos,
54916
54916
  logosSlot,
54917
54917
  background,
54918
- spacing = "py-32 md:py-32",
54918
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
54919
54919
  pattern,
54920
54920
  patternOpacity,
54921
54921
  className,
@@ -54962,7 +54962,7 @@ function HeroConversionVideoPlay({
54962
54962
  asButton: true,
54963
54963
  variant: "link",
54964
54964
  children: [
54965
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 rounded-full bg-primary text-primary-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/play" }) }),
54965
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 rounded-full bg-primary text-primary-foreground justify-center items-center", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/play" }) }),
54966
54966
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: videoButtonLabel })
54967
54967
  ]
54968
54968
  }
@@ -55015,7 +55015,7 @@ function HeroConversionVideoPlay({
55015
55015
  "div",
55016
55016
  {
55017
55017
  className: cn(
55018
- "flex flex-wrap items-center justify-center gap-8",
55018
+ "flex flex-wrap items-center justify-center gap-4",
55019
55019
  actionsClassName
55020
55020
  ),
55021
55021
  children: renderActions
@@ -55038,7 +55038,7 @@ function HeroConversionVideoPlay({
55038
55038
  ) }) }) }) : null })
55039
55039
  ] }) }),
55040
55040
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-16 py-20", children: [
55041
- logosTagline && (typeof logosTagline === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl font-medium "), children: logosTagline }) : logosTagline),
55041
+ logosTagline && (typeof logosTagline === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center font-medium "), children: logosTagline }) : logosTagline),
55042
55042
  logosSlot ? logosSlot : logos && logos.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(
55043
55043
  Carousel,
55044
55044
  {
@@ -55080,7 +55080,7 @@ function HeroDesignShowcaseLogos({
55080
55080
  showcaseImage,
55081
55081
  showcaseSlot,
55082
55082
  background,
55083
- spacing = "py-32 md:py-32",
55083
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
55084
55084
  pattern,
55085
55085
  patternOpacity,
55086
55086
  className,
@@ -55100,7 +55100,7 @@ function HeroDesignShowcaseLogos({
55100
55100
  "div",
55101
55101
  {
55102
55102
  className: cn(
55103
- "mt-6 md:mt-12 flex items-center justify-center gap-3",
55103
+ "mt-6 md:mt-12 flex flex-col md:flex-row items-center justify-center gap-4",
55104
55104
  actionsClassName
55105
55105
  ),
55106
55106
  children: actions.map((action, index) => {
@@ -55133,7 +55133,7 @@ function HeroDesignShowcaseLogos({
55133
55133
  const renderLogos = React52.useMemo(() => {
55134
55134
  if (logosSlot) return logosSlot;
55135
55135
  if (!logos || logos.length === 0) return null;
55136
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-10 md:py-16", children: [
55136
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "py-0 md:py-16", children: [
55137
55137
  logosLabel && (typeof logosLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-center text-sm text-foreground/60", children: logosLabel }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-center text-sm text-foreground/60", children: logosLabel })),
55138
55138
  /* @__PURE__ */ jsxRuntime.jsx(
55139
55139
  "div",
@@ -55150,7 +55150,7 @@ function HeroDesignShowcaseLogos({
55150
55150
  src: logoSrc,
55151
55151
  alt: logo.alt,
55152
55152
  className: cn(
55153
- "block h-3.5 w-auto opacity-50 md:h-5",
55153
+ "block w-auto opacity-50 h-5 object-contain",
55154
55154
  logo.className
55155
55155
  ),
55156
55156
  optixFlowConfig
@@ -55337,7 +55337,7 @@ function HeroProductivityLauncherVideo({
55337
55337
  const renderActions = React52.useMemo(() => {
55338
55338
  if (actionsSlot) return actionsSlot;
55339
55339
  if (!actions || actions.length === 0) return null;
55340
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: actions.map((action, index) => {
55340
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col md:flex-row items-center justify-center gap-4", children: actions.map((action, index) => {
55341
55341
  const {
55342
55342
  label,
55343
55343
  icon,
@@ -55395,8 +55395,8 @@ function HeroProductivityLauncherVideo({
55395
55395
  className,
55396
55396
  containerClassName,
55397
55397
  children: [
55398
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center", children: [
55399
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 px-4 pt-52 pb-32 md:pb-52", children: [
55398
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-20 max-w-204.5", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center pb-8", children: [
55399
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 pb-16 pt-16", children: [
55400
55400
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-100 sm:max-w-135", children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55401
55401
  "h1",
55402
55402
  {
@@ -55448,7 +55448,7 @@ function HeroHiringAnimatedText({
55448
55448
  scrollActionSlot,
55449
55449
  backgroundImage,
55450
55450
  background,
55451
- spacing = "py-32 md:py-32",
55451
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
55452
55452
  pattern,
55453
55453
  patternOpacity,
55454
55454
  className,
@@ -55458,32 +55458,60 @@ function HeroHiringAnimatedText({
55458
55458
  descriptionClassName,
55459
55459
  actionsClassName
55460
55460
  }) {
55461
+ const [activeIndex, setActiveIndex] = React52.useState(0);
55462
+ const cycleText = React52.useCallback(() => {
55463
+ if (!animatedTexts || animatedTexts.length <= 1) return;
55464
+ setActiveIndex((prev) => (prev + 1) % animatedTexts.length);
55465
+ }, [animatedTexts]);
55466
+ React52.useEffect(() => {
55467
+ if (!animatedTexts || animatedTexts.length <= 1) return;
55468
+ const interval = setInterval(cycleText, 2e3);
55469
+ return () => clearInterval(interval);
55470
+ }, [animatedTexts, cycleText]);
55461
55471
  const renderHeading = React52.useMemo(() => {
55462
55472
  if (headingSlot) return headingSlot;
55463
- return /* @__PURE__ */ jsxRuntime.jsxs("h1", { className: cn("text-4xl leading-9 font-bold lg:text-5xl lg:leading-12! xl:text-7xl xl:leading-22!", headingClassName), children: [
55464
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2", children: headingPrefix }),
55465
- animatedTexts && animatedTexts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-[calc(2.25rem*3)] md:h-9 lg:h-12 xl:h-22", children: animatedTexts.map((text, index) => /* @__PURE__ */ jsxRuntime.jsx(
55466
- "div",
55467
- {
55468
- className: cn(
55469
- "absolute top-0 left-0 will-change-[opacity]",
55470
- index === 0 ? `animate-[show-text_${animatedTexts.length * 2}s_ease-in-out_infinite_0s]` : `animate-[show-text_${animatedTexts.length * 2}s_ease-in-out_infinite_${index * 2}s] opacity-0`
55471
- ),
55472
- style: {
55473
- animation: `show-text ${animatedTexts.length * 2}s ease-in-out infinite ${index * 2}s`,
55474
- opacity: index === 0 ? 1 : 0
55475
- },
55476
- children: text
55477
- },
55478
- index
55479
- )) })
55480
- ] });
55481
- }, [headingSlot, headingPrefix, animatedTexts, headingClassName]);
55473
+ return /* @__PURE__ */ jsxRuntime.jsxs(
55474
+ "h1",
55475
+ {
55476
+ className: cn(
55477
+ "text-4xl leading-9 font-bold lg:text-5xl lg:leading-12! xl:text-7xl xl:leading-22! text-white text-shadow-xl",
55478
+ headingClassName
55479
+ ),
55480
+ children: [
55481
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2", children: headingPrefix }),
55482
+ animatedTexts && animatedTexts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-9 lg:h-12 xl:h-22", children: animatedTexts.map((text, index) => /* @__PURE__ */ jsxRuntime.jsx(
55483
+ "div",
55484
+ {
55485
+ className: "absolute top-0 left-0 text-white transition-opacity duration-1000 ease-in-out",
55486
+ style: {
55487
+ opacity: index === activeIndex ? 1 : 0
55488
+ },
55489
+ children: text
55490
+ },
55491
+ index
55492
+ )) })
55493
+ ]
55494
+ }
55495
+ );
55496
+ }, [
55497
+ headingSlot,
55498
+ headingPrefix,
55499
+ animatedTexts,
55500
+ headingClassName,
55501
+ activeIndex
55502
+ ]);
55482
55503
  const renderActions = React52.useMemo(() => {
55483
55504
  if (actionsSlot) return actionsSlot;
55484
55505
  if (!actions || actions.length === 0) return null;
55485
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-wrap items-center gap-5", actionsClassName), children: actions.map((action, index) => {
55486
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
55506
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
55507
+ const {
55508
+ label,
55509
+ icon,
55510
+ iconAfter,
55511
+ children,
55512
+ className: actionClassName,
55513
+ ...pressableProps
55514
+ } = action;
55487
55515
  return /* @__PURE__ */ jsxRuntime.jsx(
55488
55516
  Pressable,
55489
55517
  {
@@ -55503,7 +55531,14 @@ function HeroHiringAnimatedText({
55503
55531
  const renderScrollAction = React52.useMemo(() => {
55504
55532
  if (scrollActionSlot) return scrollActionSlot;
55505
55533
  if (!scrollAction) return null;
55506
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = scrollAction;
55534
+ const {
55535
+ label,
55536
+ icon,
55537
+ iconAfter,
55538
+ children,
55539
+ className: actionClassName,
55540
+ ...pressableProps
55541
+ } = scrollAction;
55507
55542
  return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
55508
55543
  icon,
55509
55544
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: label }),
@@ -55518,21 +55553,39 @@ function HeroHiringAnimatedText({
55518
55553
  pattern,
55519
55554
  patternOpacity,
55520
55555
  className: cn(
55521
- "relative flex items-center justify-center dark h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
55556
+ "relative flex items-center justify-center h-svh max-h-[1400px] w-full bg-cover bg-position-[100%] bg-no-repeat before:absolute before:top-0 before:left-0 before:size-full before:bg-[radial-gradient(circle_at_100%_-100%,transparent_40%,rgba(0,0,0,.75)_85%)] before:content-['']",
55522
55557
  className
55523
55558
  ),
55524
55559
  containerClassName,
55525
55560
  style: { backgroundImage: `url('${backgroundImage}')` },
55526
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex h-full flex-col justify-between gap-6 md:justify-end", contentClassName), children: [
55527
- renderHeading,
55528
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-8", children: [
55529
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg lg:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
55530
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-5", children: [
55531
- renderActions,
55532
- renderScrollAction
55533
- ] })
55534
- ] })
55535
- ] }) })
55561
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 flex size-full max-w-412.5 flex-col justify-between pt-24 pb-14 md:justify-end", children: /* @__PURE__ */ jsxRuntime.jsxs(
55562
+ "div",
55563
+ {
55564
+ className: cn(
55565
+ "flex h-full flex-col justify-between gap-6 md:justify-end max-w-full md:max-w-md",
55566
+ contentClassName
55567
+ ),
55568
+ children: [
55569
+ renderHeading,
55570
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-8", children: [
55571
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55572
+ "p",
55573
+ {
55574
+ className: cn(
55575
+ "text-lg lg:text-2xl text-white text-balance",
55576
+ descriptionClassName
55577
+ ),
55578
+ children: description
55579
+ }
55580
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
55581
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center justify-between gap-4", children: [
55582
+ renderActions,
55583
+ renderScrollAction
55584
+ ] })
55585
+ ] })
55586
+ ]
55587
+ }
55588
+ ) })
55536
55589
  }
55537
55590
  );
55538
55591
  }
@@ -55627,7 +55680,7 @@ function HeroCenteredGradientCta({
55627
55680
  features,
55628
55681
  featuresSlot,
55629
55682
  background,
55630
- spacing = "py-32 md:py-32",
55683
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
55631
55684
  pattern,
55632
55685
  patternOpacity,
55633
55686
  className,
@@ -55642,8 +55695,15 @@ function HeroCenteredGradientCta({
55642
55695
  const renderActions = React52.useMemo(() => {
55643
55696
  if (actionsSlot) return actionsSlot;
55644
55697
  if (!actions || actions.length === 0) return null;
55645
- return actions.map((action, index) => {
55646
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
55698
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-start mt-6 md:mt-8 gap-4 sm:flex-row sm:items-center", children: actions.map((action, index) => {
55699
+ const {
55700
+ label,
55701
+ icon,
55702
+ iconAfter,
55703
+ children,
55704
+ className: actionClassName,
55705
+ ...pressableProps
55706
+ } = action;
55647
55707
  return /* @__PURE__ */ jsxRuntime.jsx(
55648
55708
  Pressable,
55649
55709
  {
@@ -55652,51 +55712,94 @@ function HeroCenteredGradientCta({
55652
55712
  ...pressableProps,
55653
55713
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
55654
55714
  icon,
55655
- label,
55715
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
55656
55716
  iconAfter
55657
55717
  ] })
55658
55718
  },
55659
55719
  index
55660
55720
  );
55661
- });
55721
+ }) });
55662
55722
  }, [actionsSlot, actions]);
55663
55723
  const renderFeatures = React52.useMemo(() => {
55664
55724
  if (featuresSlot) return featuresSlot;
55665
55725
  if (!features || features.length === 0) return null;
55666
- return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", feature.className), children: [
55667
- feature.icon,
55668
- /* @__PURE__ */ jsxRuntime.jsx("span", { children: feature.title })
55669
- ] }, index));
55726
+ return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
55727
+ Pressable,
55728
+ {
55729
+ href: feature.href,
55730
+ className: cn("flex items-center gap-2", feature.className),
55731
+ children: [
55732
+ feature.icon,
55733
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: feature.title })
55734
+ ]
55735
+ },
55736
+ index
55737
+ ));
55670
55738
  }, [featuresSlot, features]);
55671
- return /* @__PURE__ */ jsxRuntime.jsxs(
55739
+ return /* @__PURE__ */ jsxRuntime.jsx(
55672
55740
  Section,
55673
55741
  {
55674
55742
  background,
55675
55743
  spacing,
55676
55744
  pattern,
55677
55745
  patternOpacity,
55678
- className: cn("relative flex items-center justify-center min-h-screen overflow-hidden bg-background py-32", className),
55746
+ className,
55679
55747
  containerClassName,
55680
- children: [
55681
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pointer-events-none absolute inset-0 bg-[radial-gradient(ellipse_80%_50%_at_50%_-20%,rgba(120,119,198,0.3),transparent)]", gradientClassName) }),
55682
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex flex-col items-center text-center", children: [
55683
- badge && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(
55684
- "inline-flex items-center gap-2 rounded-full border border-border/50 bg-accent px-4 py-2 text-sm",
55685
- badgeClassName
55686
- ), children: [
55687
- badgeIcon,
55688
- typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
55689
- ] }),
55690
- (heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mt-8 max-w-4xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl", headingClassName), children: heading }) : heading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }) : headingHighlight ? /* @__PURE__ */ jsxRuntime.jsxs("h1", { className: cn("mt-8 max-w-4xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl", headingClassName), children: [
55691
- "Build something",
55692
- " ",
55693
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-linear-to-r from-primary to-purple-600 bg-clip-text text-transparent", children: headingHighlight })
55694
- ] }) : null),
55695
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 max-w-2xl text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
55696
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-10 flex flex-col gap-4 sm:flex-row", actionsClassName), children: renderActions }),
55697
- (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-16 flex items-center gap-8 text-sm text-muted-foreground", featuresClassName), children: renderFeatures })
55698
- ] })
55699
- ]
55748
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative gap-6 z-10 flex flex-col items-center text-center", children: [
55749
+ badge && /* @__PURE__ */ jsxRuntime.jsxs(Badge, { className: "px-3", children: [
55750
+ badgeIcon,
55751
+ typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
55752
+ ] }),
55753
+ (heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55754
+ "h1",
55755
+ {
55756
+ className: cn(
55757
+ "max-w-full md:max-w-md text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-balance",
55758
+ headingClassName
55759
+ ),
55760
+ children: heading
55761
+ }
55762
+ ) : heading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }) : headingHighlight ? /* @__PURE__ */ jsxRuntime.jsx(
55763
+ "h1",
55764
+ {
55765
+ className: cn(
55766
+ "max-w-full md:max-w-md text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl text-balance",
55767
+ headingClassName
55768
+ ),
55769
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "bg-linear-to-r from-primary to-purple-600 bg-clip-text text-transparent", children: headingHighlight })
55770
+ }
55771
+ ) : null),
55772
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
55773
+ "p",
55774
+ {
55775
+ className: cn(
55776
+ "max-w-full md:max-w-md text-md md:text-xl text-balance",
55777
+ descriptionClassName
55778
+ ),
55779
+ children: description
55780
+ }
55781
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
55782
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
55783
+ "div",
55784
+ {
55785
+ className: cn(
55786
+ "mt-0 md:mt-6 flex flex-col gap-4 sm:flex-row",
55787
+ actionsClassName
55788
+ ),
55789
+ children: renderActions
55790
+ }
55791
+ ),
55792
+ (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
55793
+ "div",
55794
+ {
55795
+ className: cn(
55796
+ "mt-4 md:mt-6 flex flex-col md:flex-row items-center gap-4 md:gap-8 text-sm",
55797
+ featuresClassName
55798
+ ),
55799
+ children: renderFeatures
55800
+ }
55801
+ )
55802
+ ] })
55700
55803
  }
55701
55804
  );
55702
55805
  }
@@ -55910,29 +56013,21 @@ function HeroTestimonialImageGrid({
55910
56013
  if (testimonialSlot) return testimonialSlot;
55911
56014
  if (!testimonial || !testimonial.avatars) return null;
55912
56015
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-wrap items-center gap-3", children: [
55913
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsxs(
55914
- Avatar,
55915
- {
55916
- className: "size-10 border-2 border-border",
55917
- children: [
55918
- /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatar.image, alt: "" }),
55919
- /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: avatar.fallback })
55920
- ]
55921
- },
55922
- index
55923
- )) }),
56016
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex -space-x-2", children: testimonial.avatars.map((avatar, index) => /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-10 border-2 border-border", children: [
56017
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatar.image, alt: testimonial.author }),
56018
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: avatar.fallback })
56019
+ ] }, index)) }),
55924
56020
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
55925
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mb-1 text-sm text-foreground/60 italic", children: [
56021
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "mb-1 text-sm italic", children: [
55926
56022
  '"',
55927
56023
  testimonial.quote,
55928
56024
  '"'
55929
56025
  ] }),
55930
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium text-foreground/60", children: [
56026
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm font-medium ", children: [
55931
56027
  testimonial.author,
55932
56028
  ", ",
55933
56029
  testimonial.role,
55934
- " @",
55935
- testimonial.company
56030
+ testimonial.company?.length ? ` | ${testimonial.company}` : ""
55936
56031
  ] })
55937
56032
  ] })
55938
56033
  ] });
@@ -55941,44 +56036,22 @@ function HeroTestimonialImageGrid({
55941
56036
  if (imagesSlot) return imagesSlot;
55942
56037
  if (!gridImages || gridImages.length < 4) return null;
55943
56038
  const images = gridImages;
55944
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-200", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-[3.5%]", children: [
55945
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx(
55946
- img.Img,
55947
- {
55948
- src: images[0].src,
55949
- alt: images[0].alt || "",
55950
- className: "object-fit h-full w-full object-center",
55951
- optixFlowConfig
55952
- }
55953
- ) }),
55954
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-1/2 left-[5%] w-[110%] max-w-100 -translate-y-1/2 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.739130435 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
55955
- img.Img,
55956
- {
55957
- src: images[1].src,
55958
- alt: images[1].alt || "",
55959
- className: "size-full object-cover object-center",
55960
- optixFlowConfig
55961
- }
55962
- ) }) }) }),
55963
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[9%] left-[9%] w-[200%] max-w-150 overflow-hidden rounded-md", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.6 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
55964
- img.Img,
55965
- {
55966
- src: images[2].src,
55967
- alt: images[2].alt || "",
55968
- className: "size-full object-cover object-center",
55969
- optixFlowConfig
55970
- }
55971
- ) }) }) }),
55972
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative overflow-hidden rounded-[5.2%] border border-border bg-card", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative top-[12%] left-[50%] w-[70%] max-w-70 -translate-x-[50%]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 0.52 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
55973
- img.Img,
55974
- {
55975
- src: images[3].src,
55976
- alt: images[3].alt || "",
55977
- className: "absolute z-10 w-full rounded-[16%]",
55978
- optixFlowConfig
55979
- }
55980
- ) }) }) })
55981
- ] }) }) }) });
56039
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full flex-1", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-full max-w-full md:max-w-200", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1 / 1, className: "h-full w-full", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid h-full w-full grid-cols-2 grid-rows-2 gap-4", children: images.slice(0, 4).map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
56040
+ "div",
56041
+ {
56042
+ className: "overflow-hidden rounded-lg shadow-xl",
56043
+ children: /* @__PURE__ */ jsxRuntime.jsx(
56044
+ img.Img,
56045
+ {
56046
+ src: image.src,
56047
+ alt: image.alt || "",
56048
+ className: "size-full object-cover object-center",
56049
+ optixFlowConfig
56050
+ }
56051
+ )
56052
+ },
56053
+ index
56054
+ )) }) }) }) });
55982
56055
  }, [imagesSlot, gridImages, optixFlowConfig]);
55983
56056
  return /* @__PURE__ */ jsxRuntime.jsx(
55984
56057
  Section,
@@ -55987,13 +56060,49 @@ function HeroTestimonialImageGrid({
55987
56060
  spacing,
55988
56061
  pattern,
55989
56062
  patternOpacity,
55990
- className: cn("relative flex items-center justify-center py-12 md:py-20", className),
56063
+ className,
55991
56064
  containerClassName,
55992
56065
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
55993
56066
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
55994
56067
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
55995
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl", headingClassName), children: heading })),
55996
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg leading-relaxed text-muted-foreground xl:text-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-lg leading-relaxed text-muted-foreground xl:text-2xl", descriptionClassName), children: description }))
56068
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
56069
+ "h1",
56070
+ {
56071
+ className: cn(
56072
+ "leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
56073
+ headingClassName
56074
+ ),
56075
+ children: heading
56076
+ }
56077
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
56078
+ "h1",
56079
+ {
56080
+ className: cn(
56081
+ "leading-tighter max-w-[80%] text-4xl font-semibold tracking-tight lg:text-5xl xl:text-7xl",
56082
+ headingClassName
56083
+ ),
56084
+ children: heading
56085
+ }
56086
+ )),
56087
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
56088
+ "p",
56089
+ {
56090
+ className: cn(
56091
+ "text-lg leading-relaxed text-balance xl:text-2xl",
56092
+ descriptionClassName
56093
+ ),
56094
+ children: description
56095
+ }
56096
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
56097
+ "div",
56098
+ {
56099
+ className: cn(
56100
+ "text-lg leading-relaxed text-balance xl:text-2xl",
56101
+ descriptionClassName
56102
+ ),
56103
+ children: description
56104
+ }
56105
+ ))
55997
56106
  ] }),
55998
56107
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "my-6 lg:my-10", children: renderButton }),
55999
56108
  renderTestimonial
@@ -56153,34 +56262,34 @@ function HeroArchitectureFullscreen({
56153
56262
  actionSlot,
56154
56263
  backgroundImage,
56155
56264
  background,
56156
- spacing = "py-32 md:py-32",
56265
+ spacing = "py-0 md:py-0",
56157
56266
  pattern,
56158
56267
  patternOpacity,
56159
56268
  className,
56160
- containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
56269
+ containerClassName = "mx-0 min-h-screen h-full w-screen max-w-full relative z-10 px-0 sm:px-0 md:px-0 lg:px-0 flex items-end",
56161
56270
  taglineClassName,
56162
56271
  headingClassName,
56163
- descriptionClassName
56272
+ descriptionClassName,
56273
+ optixFlowConfig
56164
56274
  }) {
56165
56275
  const renderAction = React52.useMemo(() => {
56166
56276
  if (actionSlot) return actionSlot;
56167
56277
  if (!action) return null;
56168
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
56169
- return /* @__PURE__ */ jsxRuntime.jsx(
56170
- Pressable,
56171
- {
56172
- asButton: true,
56173
- className: actionClassName,
56174
- ...pressableProps,
56175
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
56176
- icon,
56177
- typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "group-hover:underline", children: label }) : label,
56178
- iconAfter
56179
- ] })
56180
- }
56181
- );
56278
+ const {
56279
+ label,
56280
+ icon,
56281
+ iconAfter,
56282
+ children,
56283
+ className: actionClassName,
56284
+ ...pressableProps
56285
+ } = action;
56286
+ return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
56287
+ icon,
56288
+ typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "group-hover:underline", children: label }) : label,
56289
+ iconAfter
56290
+ ] }) });
56182
56291
  }, [actionSlot, action]);
56183
- return /* @__PURE__ */ jsxRuntime.jsx(
56292
+ return /* @__PURE__ */ jsxRuntime.jsxs(
56184
56293
  Section,
56185
56294
  {
56186
56295
  background,
@@ -56188,21 +56297,56 @@ function HeroArchitectureFullscreen({
56188
56297
  pattern,
56189
56298
  patternOpacity,
56190
56299
  className: cn(
56191
- "relative flex items-center justify-center dark h-svh max-h-[1400px] w-full overflow-hidden bg-cover bg-center bg-no-repeat font-poppins after:absolute after:top-0 after:left-0 after:block after:h-full after:w-full after:bg-foreground/65 after:content-['']",
56300
+ "relative flex min-h-screen min-w-screen items-center justify-center dark w-full overflow-hidden font-poppins",
56192
56301
  className
56193
56302
  ),
56194
56303
  containerClassName,
56195
- style: { backgroundImage: backgroundImage ? `url('${backgroundImage}')` : void 0 },
56196
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-20 h-full w-full max-w-340", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full w-full flex-col justify-end gap-12", children: [
56197
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-245.5 flex-col gap-1", children: [
56198
- tagline && (typeof tagline === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm leading-none uppercase text-muted-foreground", taglineClassName), children: tagline }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
56199
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-3xl leading-snug! md:text-4xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }))
56200
- ] }),
56201
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full flex-col justify-between gap-5 sm:flex-row sm:items-center", children: [
56202
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-81 border-l border-border pl-6 text-base text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
56304
+ children: [
56305
+ backgroundImage && /* @__PURE__ */ jsxRuntime.jsx(
56306
+ img.Img,
56307
+ {
56308
+ src: backgroundImage,
56309
+ alt: "",
56310
+ className: "absolute inset-0 min-h-screen min-w-screen object-cover object-center brightness-50",
56311
+ optixFlowConfig
56312
+ }
56313
+ ),
56314
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-20 h-full w-full max-w-340 p-8 md:p-24", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-end gap-6 md:gap-12", children: [
56315
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-1", children: [
56316
+ tagline && (typeof tagline === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
56317
+ "p",
56318
+ {
56319
+ className: cn(
56320
+ "text-sm leading-none uppercase text-balance text-white text-shadow-xl",
56321
+ taglineClassName
56322
+ ),
56323
+ children: tagline
56324
+ }
56325
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
56326
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
56327
+ "h1",
56328
+ {
56329
+ className: cn(
56330
+ "text-3xl leading-snug! md:text-4xl lg:text-6xl text-white text-balance text-shadow-xl",
56331
+ headingClassName
56332
+ ),
56333
+ children: heading
56334
+ }
56335
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }))
56336
+ ] }),
56337
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col justify-between gap-5 sm:flex-row sm:items-center", children: description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
56338
+ "p",
56339
+ {
56340
+ className: cn(
56341
+ "text-base text-balance text-white text-shadow-xl",
56342
+ descriptionClassName
56343
+ ),
56344
+ children: description
56345
+ }
56346
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })) }),
56203
56347
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: renderAction })
56204
- ] })
56205
- ] }) })
56348
+ ] }) })
56349
+ ]
56206
56350
  }
56207
56351
  );
56208
56352
  }
@@ -56749,7 +56893,7 @@ function HeroTherapyTestimonialGrid({
56749
56893
  testimonial,
56750
56894
  testimonialSlot,
56751
56895
  background,
56752
- spacing = "py-32 md:py-32",
56896
+ spacing = "pt-28 pb-8 md:pt-32 md:pb-32",
56753
56897
  pattern,
56754
56898
  patternOpacity,
56755
56899
  className,
@@ -56762,8 +56906,15 @@ function HeroTherapyTestimonialGrid({
56762
56906
  const renderActions = React52.useMemo(() => {
56763
56907
  if (actionsSlot) return actionsSlot;
56764
56908
  if (!actions || actions.length === 0) return null;
56765
- return actions.map((action, index) => {
56766
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
56909
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col mt-6 md:mt-8 gap-4 sm:flex-row items-center", children: actions.map((action, index) => {
56910
+ const {
56911
+ label,
56912
+ icon,
56913
+ iconAfter,
56914
+ children,
56915
+ className: actionClassName,
56916
+ ...pressableProps
56917
+ } = action;
56767
56918
  return /* @__PURE__ */ jsxRuntime.jsx(
56768
56919
  Pressable,
56769
56920
  {
@@ -56772,28 +56923,31 @@ function HeroTherapyTestimonialGrid({
56772
56923
  ...pressableProps,
56773
56924
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
56774
56925
  icon,
56775
- label,
56926
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
56776
56927
  iconAfter
56777
56928
  ] })
56778
56929
  },
56779
56930
  index
56780
56931
  );
56781
- });
56932
+ }) });
56782
56933
  }, [actionsSlot, actions]);
56783
56934
  const renderTestimonial = React52.useMemo(() => {
56784
56935
  if (testimonialSlot) return testimonialSlot;
56785
56936
  if (!testimonial) return null;
56786
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-5 px-5 md:flex-row md:items-center md:gap-7 md:py-8", children: [
56937
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-[1/2] row-[3/4] md:col-[1/2] md:row-[2/3]", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full min-h-37.5 flex-col gap-3 overflow-hidden rounded-3xl bg-card p-6 md:p-8 md:flex-row md:items-start md:gap-7", children: [
56787
56938
  testimonial.avatar && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-xl md:h-30 md:w-30", children: /* @__PURE__ */ jsxRuntime.jsx(
56788
56939
  img.Img,
56789
56940
  {
56790
56941
  src: testimonial.avatar.src,
56791
56942
  alt: testimonial.avatar.alt,
56792
- className: cn("h-full w-full object-cover object-center", testimonial.avatar.className),
56943
+ className: cn(
56944
+ "h-full w-full object-cover object-center",
56945
+ testimonial.avatar.className
56946
+ ),
56793
56947
  optixFlowConfig
56794
56948
  }
56795
56949
  ) }),
56796
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full w-full flex-col justify-between gap-2", children: [
56950
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full w-full flex-col gap-2 justify-center", children: [
56797
56951
  /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-lg font-medium ", children: [
56798
56952
  '"',
56799
56953
  testimonial.quote,
@@ -56812,7 +56966,10 @@ function HeroTherapyTestimonialGrid({
56812
56966
  {
56813
56967
  src: images[0].src,
56814
56968
  alt: images[0].alt,
56815
- className: cn("block h-full w-full object-cover object-center", images[0].className),
56969
+ className: cn(
56970
+ "block h-full w-full object-cover object-center",
56971
+ images[0].className
56972
+ ),
56816
56973
  optixFlowConfig
56817
56974
  }
56818
56975
  ) }) }),
@@ -56821,7 +56978,10 @@ function HeroTherapyTestimonialGrid({
56821
56978
  {
56822
56979
  src: images[1].src,
56823
56980
  alt: images[1].alt,
56824
- className: cn("block h-full w-full object-cover object-center", images[1].className),
56981
+ className: cn(
56982
+ "block h-full w-full object-cover object-center",
56983
+ images[1].className
56984
+ ),
56825
56985
  optixFlowConfig
56826
56986
  }
56827
56987
  ) }) }),
@@ -56831,7 +56991,10 @@ function HeroTherapyTestimonialGrid({
56831
56991
  {
56832
56992
  src: images[2].src,
56833
56993
  alt: images[2].alt,
56834
- className: cn("h-full w-full object-cover object-center", images[2].className),
56994
+ className: cn(
56995
+ "h-full w-full object-cover object-center",
56996
+ images[2].className
56997
+ ),
56835
56998
  optixFlowConfig
56836
56999
  }
56837
57000
  ) }) })
@@ -56844,14 +57007,50 @@ function HeroTherapyTestimonialGrid({
56844
57007
  spacing,
56845
57008
  pattern,
56846
57009
  patternOpacity,
56847
- className: cn("relative flex items-center justify-center bg-background py-12 font-sans md:py-20", className),
57010
+ className,
56848
57011
  containerClassName,
56849
57012
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
56850
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6", headerClassName), children: [
56851
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl", headingClassName), children: heading })),
56852
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-lg text-muted-foreground md:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
56853
- renderActions
56854
- ] }),
57013
+ /* @__PURE__ */ jsxRuntime.jsxs(
57014
+ "div",
57015
+ {
57016
+ className: cn(
57017
+ "mx-auto mb-16 flex max-w-[900px] flex-col items-center gap-6",
57018
+ headerClassName
57019
+ ),
57020
+ children: [
57021
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57022
+ "h1",
57023
+ {
57024
+ className: cn(
57025
+ "text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl text-balance",
57026
+ headingClassName
57027
+ ),
57028
+ children: heading
57029
+ }
57030
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
57031
+ "h1",
57032
+ {
57033
+ className: cn(
57034
+ "text-center text-4xl leading-tight font-medium sm:text-5xl md:text-6xl text-balance",
57035
+ headingClassName
57036
+ ),
57037
+ children: heading
57038
+ }
57039
+ )),
57040
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
57041
+ "p",
57042
+ {
57043
+ className: cn(
57044
+ "text-center text-lg md:text-xl",
57045
+ descriptionClassName
57046
+ ),
57047
+ children: description
57048
+ }
57049
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
57050
+ renderActions
57051
+ ]
57052
+ }
57053
+ ),
56855
57054
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-full auto-cols-auto grid-cols-1 grid-rows-[auto_auto_auto] justify-center gap-5 md:grid-cols-2", children: renderImagesGrid })
56856
57055
  ] })
56857
57056
  }
@@ -77204,8 +77403,9 @@ function ProcessRoadmapTimeline({
77204
77403
  "div",
77205
77404
  {
77206
77405
  className: cn(
77207
- "relative flex items-start gap-8",
77208
- index % 2 === 0 ? "flex-row" : "flex-row-reverse",
77406
+ "relative flex items-start gap-4 md:gap-8",
77407
+ "flex-col md:flex-row",
77408
+ index % 2 !== 0 && "md:flex-row-reverse",
77209
77409
  milestone.className
77210
77410
  ),
77211
77411
  children: [
@@ -77213,8 +77413,9 @@ function ProcessRoadmapTimeline({
77213
77413
  "div",
77214
77414
  {
77215
77415
  className: cn(
77216
- "flex-1",
77217
- index % 2 === 0 ? "text-right pr-8" : "text-left pl-8"
77416
+ "w-full md:flex-1",
77417
+ "text-left md:pr-0",
77418
+ index % 2 === 0 ? "md:text-right md:pr-8" : "md:text-left md:pl-8"
77218
77419
  ),
77219
77420
  children: /* @__PURE__ */ jsxRuntime.jsxs(
77220
77421
  "div",
@@ -77230,7 +77431,8 @@ function ProcessRoadmapTimeline({
77230
77431
  {
77231
77432
  className: cn(
77232
77433
  "mb-3 flex items-center gap-3",
77233
- index % 2 === 0 ? "justify-end" : "justify-start"
77434
+ "justify-start",
77435
+ index % 2 === 0 ? "md:justify-end" : "md:justify-start"
77234
77436
  ),
77235
77437
  children: [
77236
77438
  milestone.date && (typeof milestone.date === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-medium"), children: milestone.date }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm font-medium"), children: milestone.date })),
@@ -77251,7 +77453,8 @@ function ProcessRoadmapTimeline({
77251
77453
  {
77252
77454
  className: cn(
77253
77455
  "flex flex-wrap gap-2",
77254
- index % 2 === 0 ? "justify-end" : "justify-start"
77456
+ "justify-start",
77457
+ index % 2 === 0 ? "md:justify-end" : "md:justify-start"
77255
77458
  ),
77256
77459
  children: milestone.features.map((feature, fIndex) => /* @__PURE__ */ jsxRuntime.jsx(
77257
77460
  "span",
@@ -77270,7 +77473,7 @@ function ProcessRoadmapTimeline({
77270
77473
  )
77271
77474
  }
77272
77475
  ),
77273
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1" })
77476
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden md:block md:flex-1" })
77274
77477
  ]
77275
77478
  },
77276
77479
  index
@@ -77320,7 +77523,7 @@ function ProcessRoadmapTimeline({
77320
77523
  "div",
77321
77524
  {
77322
77525
  className: cn(
77323
- "absolute left-1/2 top-0 bottom-0 w-px -translate-x-1/2 bg-border/50",
77526
+ "absolute left-4 md:left-1/2 top-0 bottom-0 w-px md:-translate-x-1/2 bg-border/50",
77324
77527
  timelineLineClassName
77325
77528
  )
77326
77529
  }