@opensite/ui 0.8.4 → 0.8.5

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 (51) hide show
  1. package/dist/article-breadcrumb-social.cjs +57 -73
  2. package/dist/article-breadcrumb-social.d.cts +2 -24
  3. package/dist/article-breadcrumb-social.d.ts +2 -24
  4. package/dist/article-breadcrumb-social.js +57 -73
  5. package/dist/article-compact-toc.cjs +1 -1
  6. package/dist/article-compact-toc.js +1 -1
  7. package/dist/article-sidebar-sticky.cjs +73 -26
  8. package/dist/article-sidebar-sticky.js +73 -26
  9. package/dist/blog-horizontal-timeline.cjs +7 -4
  10. package/dist/blog-horizontal-timeline.js +7 -4
  11. package/dist/faq-split-hero.cjs +704 -0
  12. package/dist/faq-split-hero.d.cts +118 -0
  13. package/dist/faq-split-hero.d.ts +118 -0
  14. package/dist/faq-split-hero.js +682 -0
  15. package/dist/feature-badge-grid-six.cjs +1 -1
  16. package/dist/feature-badge-grid-six.js +1 -1
  17. package/dist/feature-card-grid-linked.cjs +92 -22
  18. package/dist/feature-card-grid-linked.js +92 -22
  19. package/dist/feature-carousel-progress.cjs +1 -1
  20. package/dist/feature-carousel-progress.js +1 -1
  21. package/dist/feature-checklist-image.cjs +88 -15
  22. package/dist/feature-checklist-image.js +88 -15
  23. package/dist/feature-checklist-three-column.cjs +1 -1
  24. package/dist/feature-checklist-three-column.js +1 -1
  25. package/dist/feature-icon-grid-accent.cjs +50 -8
  26. package/dist/feature-icon-grid-accent.js +50 -8
  27. package/dist/feature-icon-grid-bordered.cjs +84 -14
  28. package/dist/feature-icon-grid-bordered.js +84 -14
  29. package/dist/feature-icon-tabs-content.cjs +217 -84
  30. package/dist/feature-icon-tabs-content.js +217 -84
  31. package/dist/feature-image-overlay-badge.cjs +106 -33
  32. package/dist/feature-image-overlay-badge.js +106 -33
  33. package/dist/feature-numbered-cards.cjs +154 -35
  34. package/dist/feature-numbered-cards.js +154 -35
  35. package/dist/feature-showcase.cjs +67 -71
  36. package/dist/feature-showcase.d.cts +1 -5
  37. package/dist/feature-showcase.d.ts +1 -5
  38. package/dist/feature-showcase.js +68 -72
  39. package/dist/feature-split-image-reverse.cjs +90 -15
  40. package/dist/feature-split-image-reverse.js +90 -15
  41. package/dist/feature-split-image.cjs +87 -15
  42. package/dist/feature-split-image.js +87 -15
  43. package/dist/feature-stats-highlight.cjs +2 -2
  44. package/dist/feature-stats-highlight.js +2 -2
  45. package/dist/feature-tabbed-content-image.cjs +207 -72
  46. package/dist/feature-tabbed-content-image.js +207 -72
  47. package/dist/feature-three-column-values.cjs +107 -14
  48. package/dist/feature-three-column-values.js +107 -14
  49. package/dist/registry.cjs +1460 -461
  50. package/dist/registry.js +1460 -461
  51. package/package.json +1 -1
package/dist/registry.js CHANGED
@@ -20291,7 +20291,6 @@ function FeatureShowcase({
20291
20291
  slideClassName,
20292
20292
  contentClassName,
20293
20293
  mediaClassName,
20294
- arrowClassName,
20295
20294
  equalizeOnMobile,
20296
20295
  stretchMediaOnMobile,
20297
20296
  background,
@@ -20300,10 +20299,21 @@ function FeatureShowcase({
20300
20299
  patternOpacity,
20301
20300
  patternClassName
20302
20301
  }) {
20303
- const baseArrowClassName = useMemo$1(
20304
- () => "bottom-4 top-auto size-12 translate-y-0 rounded-full border border-current bg-transparent text-current shadow-sm focus:ring-current focus:ring-offset-2 focus:ring-offset-transparent hover:bg-current/10 md:bottom-6",
20305
- []
20306
- );
20302
+ const [api, setApi] = React52.useState();
20303
+ const [canScrollPrevious, setCanScrollPrevious] = React52.useState(false);
20304
+ const [canScrollNext, setCanScrollNext] = React52.useState(false);
20305
+ React52.useEffect(() => {
20306
+ if (!api) return;
20307
+ const updateScrollState = () => {
20308
+ setCanScrollPrevious(api.canScrollPrev());
20309
+ setCanScrollNext(api.canScrollNext());
20310
+ };
20311
+ updateScrollState();
20312
+ api.on("select", updateScrollState);
20313
+ return () => {
20314
+ api.off("select", updateScrollState);
20315
+ };
20316
+ }, [api]);
20307
20317
  const [mobileSlideHeight, setMobileSlideHeight] = useState(
20308
20318
  null
20309
20319
  );
@@ -20346,7 +20356,7 @@ function FeatureShowcase({
20346
20356
  }, [equalizeOnMobile, items]);
20347
20357
  const carouselContent = useMemo$1(() => {
20348
20358
  if (!items || items.length === 0) return null;
20349
- return /* @__PURE__ */ jsxs(Carousel, { className: carouselClassName, children: [
20359
+ return /* @__PURE__ */ jsxs(Carousel, { className: carouselClassName, setApi, children: [
20350
20360
  /* @__PURE__ */ jsx("div", { className: "pb-18 md:pb-24", children: /* @__PURE__ */ jsx(CarouselContent, { className: "ease-in", children: items.map((item, itemIndex) => /* @__PURE__ */ jsx(CarouselItem, { children: /* @__PURE__ */ jsxs(
20351
20361
  "div",
20352
20362
  {
@@ -20375,15 +20385,14 @@ function FeatureShowcase({
20375
20385
  }
20376
20386
  ) }, `slide-${itemIndex}`)) }) }),
20377
20387
  /* @__PURE__ */ jsx(
20378
- CarouselPrevious,
20388
+ CarouselPagination,
20379
20389
  {
20380
- className: cn(baseArrowClassName, "right-16", arrowClassName)
20381
- }
20382
- ),
20383
- /* @__PURE__ */ jsx(
20384
- CarouselNext,
20385
- {
20386
- className: cn(baseArrowClassName, "right-0", arrowClassName)
20390
+ onPrevious: () => api?.scrollPrev(),
20391
+ onNext: () => api?.scrollNext(),
20392
+ canScrollPrevious,
20393
+ canScrollNext,
20394
+ className: "absolute bottom-4 right-0 md:bottom-6",
20395
+ buttonClassName: "size-12 rounded-full border border-current bg-transparent text-current shadow-sm hover:bg-current/10"
20387
20396
  }
20388
20397
  )
20389
20398
  ] });
@@ -20396,8 +20405,9 @@ function FeatureShowcase({
20396
20405
  contentClassName,
20397
20406
  mediaWrapperClassName,
20398
20407
  mediaClassName,
20399
- baseArrowClassName,
20400
- arrowClassName
20408
+ api,
20409
+ canScrollPrevious,
20410
+ canScrollNext
20401
20411
  ]);
20402
20412
  return /* @__PURE__ */ jsxs(
20403
20413
  Section,
@@ -20433,7 +20443,7 @@ function FeatureSplitImage({
20433
20443
  imageClassName,
20434
20444
  optixFlowConfig,
20435
20445
  background,
20436
- spacing,
20446
+ spacing = "py-6 md:py-32",
20437
20447
  pattern,
20438
20448
  patternOpacity,
20439
20449
  patternClassName
@@ -20450,11 +20460,20 @@ function FeatureSplitImage({
20450
20460
  className: actionClassName,
20451
20461
  ...pressableProps
20452
20462
  } = action;
20453
- return /* @__PURE__ */ jsx(Pressable, { className: actionClassName, asButton: true, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
20454
- icon,
20455
- label,
20456
- iconAfter
20457
- ] }) }, index);
20463
+ return /* @__PURE__ */ jsx(
20464
+ Pressable,
20465
+ {
20466
+ className: actionClassName,
20467
+ asButton: true,
20468
+ ...pressableProps,
20469
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
20470
+ icon,
20471
+ label,
20472
+ iconAfter
20473
+ ] })
20474
+ },
20475
+ index
20476
+ );
20458
20477
  });
20459
20478
  }, [actionsSlot, actions]);
20460
20479
  const imageContent = useMemo$1(() => {
@@ -20465,7 +20484,10 @@ function FeatureSplitImage({
20465
20484
  {
20466
20485
  src: imageSrc,
20467
20486
  alt: imageAlt || "",
20468
- className: cn("max-h-96 w-full rounded-md object-cover", imageClassName),
20487
+ className: cn(
20488
+ "max-h-96 w-full rounded-md object-cover",
20489
+ imageClassName
20490
+ ),
20469
20491
  loading: "lazy",
20470
20492
  optixFlowConfig
20471
20493
  }
@@ -20481,14 +20503,74 @@ function FeatureSplitImage({
20481
20503
  patternClassName,
20482
20504
  className,
20483
20505
  containerClassName,
20484
- children: /* @__PURE__ */ jsxs("div", { className: cn("grid items-center gap-8 lg:grid-cols-2", gridClassName), children: [
20485
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center text-center lg:items-start lg:text-left", contentClassName), children: [
20486
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title })),
20487
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
20488
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", actionsClassName), children: actionsContent })
20489
- ] }),
20490
- imageContent
20491
- ] })
20506
+ children: /* @__PURE__ */ jsxs(
20507
+ "div",
20508
+ {
20509
+ className: cn("grid items-center gap-8 lg:grid-cols-2", gridClassName),
20510
+ children: [
20511
+ /* @__PURE__ */ jsxs(
20512
+ "div",
20513
+ {
20514
+ className: cn(
20515
+ "flex flex-col items-center text-center lg:items-start lg:text-left",
20516
+ contentClassName
20517
+ ),
20518
+ children: [
20519
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
20520
+ "h2",
20521
+ {
20522
+ className: cn(
20523
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20524
+ titleClassName
20525
+ ),
20526
+ children: title
20527
+ }
20528
+ ) : /* @__PURE__ */ jsx(
20529
+ "div",
20530
+ {
20531
+ className: cn(
20532
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20533
+ titleClassName
20534
+ ),
20535
+ children: title
20536
+ }
20537
+ )),
20538
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
20539
+ "p",
20540
+ {
20541
+ className: cn(
20542
+ "mb-8 max-w-xl text-muted-foreground lg:text-lg",
20543
+ descriptionClassName
20544
+ ),
20545
+ children: description
20546
+ }
20547
+ ) : /* @__PURE__ */ jsx(
20548
+ "div",
20549
+ {
20550
+ className: cn(
20551
+ "mb-8 max-w-xl text-muted-foreground lg:text-lg",
20552
+ descriptionClassName
20553
+ ),
20554
+ children: description
20555
+ }
20556
+ )),
20557
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx(
20558
+ "div",
20559
+ {
20560
+ className: cn(
20561
+ "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start",
20562
+ actionsClassName
20563
+ ),
20564
+ children: actionsContent
20565
+ }
20566
+ )
20567
+ ]
20568
+ }
20569
+ ),
20570
+ imageContent
20571
+ ]
20572
+ }
20573
+ )
20492
20574
  }
20493
20575
  );
20494
20576
  }
@@ -20510,7 +20592,7 @@ function FeatureSplitImageReverse({
20510
20592
  actionsClassName,
20511
20593
  optixFlowConfig,
20512
20594
  background,
20513
- spacing,
20595
+ spacing = "py-6 md:py-32",
20514
20596
  pattern,
20515
20597
  patternOpacity,
20516
20598
  patternClassName
@@ -20527,11 +20609,20 @@ function FeatureSplitImageReverse({
20527
20609
  className: actionClassName,
20528
20610
  ...pressableProps
20529
20611
  } = action;
20530
- return /* @__PURE__ */ jsx(Pressable, { className: actionClassName, asButton: true, ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
20531
- icon,
20532
- label,
20533
- iconAfter
20534
- ] }) }, index);
20612
+ return /* @__PURE__ */ jsx(
20613
+ Pressable,
20614
+ {
20615
+ className: actionClassName,
20616
+ asButton: true,
20617
+ ...pressableProps,
20618
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
20619
+ icon,
20620
+ label,
20621
+ iconAfter
20622
+ ] })
20623
+ },
20624
+ index
20625
+ );
20535
20626
  });
20536
20627
  }, [actionsSlot, actions]);
20537
20628
  const imageContent = useMemo$1(() => {
@@ -20542,7 +20633,10 @@ function FeatureSplitImageReverse({
20542
20633
  {
20543
20634
  src: imageSrc,
20544
20635
  alt: imageAlt || "",
20545
- className: cn("max-h-96 w-full rounded-md object-cover", imageClassName),
20636
+ className: cn(
20637
+ "max-h-96 w-full rounded-md object-cover",
20638
+ imageClassName
20639
+ ),
20546
20640
  loading: "lazy",
20547
20641
  optixFlowConfig
20548
20642
  }
@@ -20558,14 +20652,77 @@ function FeatureSplitImageReverse({
20558
20652
  patternClassName,
20559
20653
  className,
20560
20654
  containerClassName,
20561
- children: /* @__PURE__ */ jsxs("div", { className: cn("grid items-center gap-8 md:gap-16 lg:grid-cols-2", gridClassName), children: [
20562
- imageContent,
20563
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center text-center lg:items-start lg:text-left", contentClassName), children: [
20564
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title })),
20565
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
20566
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", actionsClassName), children: actionsContent })
20567
- ] })
20568
- ] })
20655
+ children: /* @__PURE__ */ jsxs(
20656
+ "div",
20657
+ {
20658
+ className: cn(
20659
+ "grid items-center gap-8 md:gap-16 lg:grid-cols-2",
20660
+ gridClassName
20661
+ ),
20662
+ children: [
20663
+ imageContent,
20664
+ /* @__PURE__ */ jsxs(
20665
+ "div",
20666
+ {
20667
+ className: cn(
20668
+ "flex flex-col items-center text-center lg:items-start lg:text-left",
20669
+ contentClassName
20670
+ ),
20671
+ children: [
20672
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
20673
+ "h2",
20674
+ {
20675
+ className: cn(
20676
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20677
+ titleClassName
20678
+ ),
20679
+ children: title
20680
+ }
20681
+ ) : /* @__PURE__ */ jsx(
20682
+ "div",
20683
+ {
20684
+ className: cn(
20685
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20686
+ titleClassName
20687
+ ),
20688
+ children: title
20689
+ }
20690
+ )),
20691
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
20692
+ "p",
20693
+ {
20694
+ className: cn(
20695
+ "mb-8 max-w-xl text-muted-foreground lg:text-lg",
20696
+ descriptionClassName
20697
+ ),
20698
+ children: description
20699
+ }
20700
+ ) : /* @__PURE__ */ jsx(
20701
+ "div",
20702
+ {
20703
+ className: cn(
20704
+ "mb-8 max-w-xl text-muted-foreground lg:text-lg",
20705
+ descriptionClassName
20706
+ ),
20707
+ children: description
20708
+ }
20709
+ )),
20710
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx(
20711
+ "div",
20712
+ {
20713
+ className: cn(
20714
+ "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start",
20715
+ actionsClassName
20716
+ ),
20717
+ children: actionsContent
20718
+ }
20719
+ )
20720
+ ]
20721
+ }
20722
+ )
20723
+ ]
20724
+ }
20725
+ )
20569
20726
  }
20570
20727
  );
20571
20728
  }
@@ -20581,7 +20738,7 @@ function FeatureIconGridBordered({
20581
20738
  gridClassName,
20582
20739
  cardClassName,
20583
20740
  background,
20584
- spacing,
20741
+ spacing = "py-6 md:py-32",
20585
20742
  pattern,
20586
20743
  patternOpacity,
20587
20744
  patternClassName
@@ -20599,18 +20756,67 @@ function FeatureIconGridBordered({
20599
20756
  return features.map((feature, index) => /* @__PURE__ */ jsxs(
20600
20757
  "div",
20601
20758
  {
20602
- className: cn("relative flex gap-3 rounded-lg border-dashed md:block md:border-l md:p-5", cardClassName, feature.className),
20759
+ className: cn(
20760
+ "relative flex gap-3 rounded-lg border-dashed md:block md:border-l md:p-5",
20761
+ cardClassName,
20762
+ feature.className
20763
+ ),
20603
20764
  children: [
20604
- (feature.icon || feature.iconName) && /* @__PURE__ */ jsx("span", { className: cn("mb-8 flex size-10 shrink-0 items-center justify-center rounded-full bg-accent md:size-12", feature.iconClassName), children: renderIcon(feature) }),
20765
+ (feature.icon || feature.iconName) && /* @__PURE__ */ jsx(
20766
+ "span",
20767
+ {
20768
+ className: cn(
20769
+ "mb-8 flex size-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground md:size-12",
20770
+ feature.iconClassName
20771
+ ),
20772
+ children: renderIcon(feature)
20773
+ }
20774
+ ),
20605
20775
  /* @__PURE__ */ jsxs("div", { children: [
20606
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxs("h3", { className: cn("font-medium md:mb-2 md:text-xl", feature.titleClassName), children: [
20607
- feature.title,
20608
- /* @__PURE__ */ jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20609
- ] }) : /* @__PURE__ */ jsxs("div", { className: cn("font-medium md:mb-2 md:text-xl", feature.titleClassName), children: [
20610
- feature.title,
20611
- /* @__PURE__ */ jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20612
- ] })),
20613
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsx("div", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }))
20776
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxs(
20777
+ "h3",
20778
+ {
20779
+ className: cn(
20780
+ "font-medium md:mb-2 md:text-xl",
20781
+ feature.titleClassName
20782
+ ),
20783
+ children: [
20784
+ feature.title,
20785
+ /* @__PURE__ */ jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20786
+ ]
20787
+ }
20788
+ ) : /* @__PURE__ */ jsxs(
20789
+ "div",
20790
+ {
20791
+ className: cn(
20792
+ "font-medium md:mb-2 md:text-xl",
20793
+ feature.titleClassName
20794
+ ),
20795
+ children: [
20796
+ feature.title,
20797
+ /* @__PURE__ */ jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20798
+ ]
20799
+ }
20800
+ )),
20801
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx(
20802
+ "p",
20803
+ {
20804
+ className: cn(
20805
+ "text-sm md:text-base",
20806
+ feature.descriptionClassName
20807
+ ),
20808
+ children: feature.description
20809
+ }
20810
+ ) : /* @__PURE__ */ jsx(
20811
+ "div",
20812
+ {
20813
+ className: cn(
20814
+ "text-sm md:text-base",
20815
+ feature.descriptionClassName
20816
+ ),
20817
+ children: feature.description
20818
+ }
20819
+ ))
20614
20820
  ] })
20615
20821
  ]
20616
20822
  },
@@ -20628,9 +20834,30 @@ function FeatureIconGridBordered({
20628
20834
  className,
20629
20835
  containerClassName,
20630
20836
  children: [
20631
- label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-xs text-muted-foreground", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 text-xs text-muted-foreground", labelClassName), children: label })),
20632
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title })),
20633
- (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-14 grid gap-6 md:grid-cols-2 lg:mt-20 lg:grid-cols-4", gridClassName), children: featuresContent })
20837
+ label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-xs ", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 text-xs ", labelClassName), children: label })),
20838
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
20839
+ "h2",
20840
+ {
20841
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
20842
+ children: title
20843
+ }
20844
+ ) : /* @__PURE__ */ jsx(
20845
+ "div",
20846
+ {
20847
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
20848
+ children: title
20849
+ }
20850
+ )),
20851
+ (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsx(
20852
+ "div",
20853
+ {
20854
+ className: cn(
20855
+ "mt-14 grid gap-6 md:grid-cols-2 lg:mt-20 lg:grid-cols-4",
20856
+ gridClassName
20857
+ ),
20858
+ children: featuresContent
20859
+ }
20860
+ )
20634
20861
  ]
20635
20862
  }
20636
20863
  );
@@ -20656,7 +20883,7 @@ function FeatureChecklistImage({
20656
20883
  checklistClassName,
20657
20884
  optixFlowConfig,
20658
20885
  background,
20659
- spacing,
20886
+ spacing = "py-6 md:py-32",
20660
20887
  pattern,
20661
20888
  patternOpacity,
20662
20889
  patternClassName
@@ -20709,7 +20936,10 @@ function FeatureChecklistImage({
20709
20936
  {
20710
20937
  src: imageSrc,
20711
20938
  alt: imageAlt || "Feature illustration",
20712
- className: cn("max-h-96 w-full rounded-lg object-cover md:max-h-[500px] md:w-1/2", imageClassName),
20939
+ className: cn(
20940
+ "max-h-96 w-full rounded-lg object-cover md:max-h-[500px] md:w-1/2",
20941
+ imageClassName
20942
+ ),
20713
20943
  loading: "lazy",
20714
20944
  optixFlowConfig
20715
20945
  }
@@ -20723,10 +20953,17 @@ function FeatureChecklistImage({
20723
20953
  const content = isString ? item : item.content;
20724
20954
  const iconElement = isString ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 16 }) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 16 }));
20725
20955
  const itemClassName = isString ? void 0 : item.className;
20726
- return /* @__PURE__ */ jsxs("li", { className: cn("flex items-center gap-3", itemClassName), children: [
20727
- iconElement,
20728
- content
20729
- ] }, index);
20956
+ return /* @__PURE__ */ jsxs(
20957
+ "li",
20958
+ {
20959
+ className: cn("flex items-center gap-3", itemClassName),
20960
+ children: [
20961
+ iconElement,
20962
+ content
20963
+ ]
20964
+ },
20965
+ index
20966
+ );
20730
20967
  });
20731
20968
  }, [checklistSlot, checklistItems]);
20732
20969
  return /* @__PURE__ */ jsx(
@@ -20739,15 +20976,78 @@ function FeatureChecklistImage({
20739
20976
  patternClassName,
20740
20977
  className,
20741
20978
  containerClassName: cn("max-w-6xl", containerClassName),
20742
- children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-12 md:flex-row", contentWrapperClassName), children: [
20743
- imageContent,
20744
- /* @__PURE__ */ jsxs("div", { className: cn("lg:p-10", contentClassName), children: [
20745
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium text-balance md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-medium text-balance md:text-5xl", titleClassName), children: title })),
20746
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-muted-foreground md:mt-6", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-1 text-muted-foreground md:mt-6", descriptionClassName), children: description })),
20747
- actionsContent && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent }),
20748
- checklistContent && /* @__PURE__ */ jsx("ul", { className: cn("mt-10 flex-wrap items-center gap-6 space-y-6 md:flex md:space-y-0", checklistClassName), children: checklistContent })
20749
- ] })
20750
- ] })
20979
+ children: /* @__PURE__ */ jsxs(
20980
+ "div",
20981
+ {
20982
+ className: cn(
20983
+ "flex flex-col gap-12 md:flex-row",
20984
+ contentWrapperClassName
20985
+ ),
20986
+ children: [
20987
+ imageContent,
20988
+ /* @__PURE__ */ jsxs("div", { className: cn("lg:p-10", contentClassName), children: [
20989
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
20990
+ "h2",
20991
+ {
20992
+ className: cn(
20993
+ "text-3xl font-medium text-balance md:text-5xl",
20994
+ titleClassName
20995
+ ),
20996
+ children: title
20997
+ }
20998
+ ) : /* @__PURE__ */ jsx(
20999
+ "div",
21000
+ {
21001
+ className: cn(
21002
+ "text-3xl font-medium text-balance md:text-5xl",
21003
+ titleClassName
21004
+ ),
21005
+ children: title
21006
+ }
21007
+ )),
21008
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
21009
+ "p",
21010
+ {
21011
+ className: cn(
21012
+ "mt-1 text-muted-foreground md:mt-6",
21013
+ descriptionClassName
21014
+ ),
21015
+ children: description
21016
+ }
21017
+ ) : /* @__PURE__ */ jsx(
21018
+ "div",
21019
+ {
21020
+ className: cn(
21021
+ "mt-1 text-muted-foreground md:mt-6",
21022
+ descriptionClassName
21023
+ ),
21024
+ children: description
21025
+ }
21026
+ )),
21027
+ actionsContent && /* @__PURE__ */ jsx(
21028
+ "div",
21029
+ {
21030
+ className: cn(
21031
+ "flex flex-wrap items-center gap-2",
21032
+ actionsClassName
21033
+ ),
21034
+ children: actionsContent
21035
+ }
21036
+ ),
21037
+ checklistContent && /* @__PURE__ */ jsx(
21038
+ "ul",
21039
+ {
21040
+ className: cn(
21041
+ "mt-10 flex-wrap items-center gap-6 space-y-6 md:flex md:space-y-0",
21042
+ checklistClassName
21043
+ ),
21044
+ children: checklistContent
21045
+ }
21046
+ )
21047
+ ] })
21048
+ ]
21049
+ }
21050
+ )
20751
21051
  }
20752
21052
  );
20753
21053
  }
@@ -20823,7 +21123,7 @@ function FeatureCarouselProgress({
20823
21123
  {
20824
21124
  className: "basis-full md:basis-1/2 lg:basis-1/3",
20825
21125
  children: /* @__PURE__ */ jsx("div", { className: "p-1", children: /* @__PURE__ */ jsx(Card, { className: cn(cardClassName, slide.className), children: /* @__PURE__ */ jsx(CardContent, { className: "flex flex-col justify-center p-6", children: /* @__PURE__ */ jsxs("div", { children: [
20826
- (slide.icon || slide.iconName) && /* @__PURE__ */ jsx("span", { className: cn("mb-5 flex size-8 items-center justify-center rounded-full bg-accent lg:size-10", slide.iconClassName), children: renderSlideIcon(slide) }),
21126
+ (slide.icon || slide.iconName) && /* @__PURE__ */ jsx("span", { className: cn("mb-5 flex size-8 items-center justify-center rounded-full bg-primary text-primary-foreground lg:size-10", slide.iconClassName), children: renderSlideIcon(slide) }),
20827
21127
  slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsx("div", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title })),
20828
21128
  slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("pt-2 text-muted-foreground", slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsx("div", { className: cn("pt-2 text-muted-foreground", slide.descriptionClassName), children: slide.description }))
20829
21129
  ] }) }) }) })
@@ -20880,27 +21180,30 @@ function FeatureCardGridLinked({
20880
21180
  cardClassName,
20881
21181
  optixFlowConfig,
20882
21182
  background,
20883
- spacing,
21183
+ spacing = "py-6 md:py-32",
20884
21184
  pattern,
20885
21185
  patternOpacity,
20886
21186
  patternClassName
20887
21187
  }) {
20888
- const renderImage = useCallback((feature, imageAlt) => {
20889
- if (feature.imageSlot) return feature.imageSlot;
20890
- if (feature.image) {
20891
- return /* @__PURE__ */ jsx(
20892
- Img,
20893
- {
20894
- src: feature.image,
20895
- alt: imageAlt,
20896
- className: "h-full w-full rounded-t-lg object-cover transition-opacity hover:opacity-80",
20897
- loading: "lazy",
20898
- optixFlowConfig
20899
- }
20900
- );
20901
- }
20902
- return null;
20903
- }, [optixFlowConfig]);
21188
+ const renderImage = useCallback(
21189
+ (feature, imageAlt) => {
21190
+ if (feature.imageSlot) return feature.imageSlot;
21191
+ if (feature.image) {
21192
+ return /* @__PURE__ */ jsx(
21193
+ Img,
21194
+ {
21195
+ src: feature.image,
21196
+ alt: imageAlt,
21197
+ className: "h-full w-full rounded-t-lg object-cover transition-opacity hover:opacity-80",
21198
+ loading: "lazy",
21199
+ optixFlowConfig
21200
+ }
21201
+ );
21202
+ }
21203
+ return null;
21204
+ },
21205
+ [optixFlowConfig]
21206
+ );
20904
21207
  const featuresContent = useMemo$1(() => {
20905
21208
  if (featuresSlot) return featuresSlot;
20906
21209
  if (!features || features.length === 0) return null;
@@ -20910,16 +21213,56 @@ function FeatureCardGridLinked({
20910
21213
  return /* @__PURE__ */ jsxs(
20911
21214
  "div",
20912
21215
  {
20913
- className: cn("flex flex-col justify-between rounded-lg bg-muted", cardClassName, feature.className),
21216
+ className: cn(
21217
+ "flex flex-col justify-between rounded-lg bg-muted border",
21218
+ cardClassName,
21219
+ feature.className
21220
+ ),
20914
21221
  children: [
20915
21222
  /* @__PURE__ */ jsxs("div", { className: "flex justify-between gap-10 border-b", children: [
20916
21223
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-between gap-8 py-6 pl-4 md:gap-14 md:py-10 md:pl-8 lg:justify-normal", children: [
20917
- feature.label && /* @__PURE__ */ jsx("span", { className: cn("font-mono text-xs text-muted-foreground", feature.labelClassName), children: feature.label }),
20918
- feature.heading && /* @__PURE__ */ jsx(Pressable, { href: feature.url, children: typeof feature.heading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-2xl transition-all hover:text-primary hover:opacity-80 sm:text-3xl lg:text-4xl", feature.headingClassName), children: feature.heading }) : /* @__PURE__ */ jsx("div", { className: cn("text-2xl transition-all hover:text-primary hover:opacity-80 sm:text-3xl lg:text-4xl", feature.headingClassName), children: feature.heading }) })
21224
+ feature.label && /* @__PURE__ */ jsx(
21225
+ "span",
21226
+ {
21227
+ className: cn(
21228
+ "font-bold text-xs uppercase opacity-75",
21229
+ feature.labelClassName
21230
+ ),
21231
+ children: feature.label
21232
+ }
21233
+ ),
21234
+ feature.heading && /* @__PURE__ */ jsx(Pressable, { href: feature.url, children: typeof feature.heading === "string" ? /* @__PURE__ */ jsx(
21235
+ "h3",
21236
+ {
21237
+ className: cn(
21238
+ "text-xl transition-all hover:opacity-80 md:text-2xl font-semibold leading-snug tracking-tighter",
21239
+ feature.headingClassName
21240
+ ),
21241
+ children: feature.heading
21242
+ }
21243
+ ) : /* @__PURE__ */ jsx(
21244
+ "div",
21245
+ {
21246
+ className: cn(
21247
+ "text-xl transition-all hover:opacity-80 md:text-2xl font-semibold leading-snug tracking-tighter",
21248
+ feature.headingClassName
21249
+ ),
21250
+ children: feature.heading
21251
+ }
21252
+ ) })
20919
21253
  ] }),
20920
21254
  /* @__PURE__ */ jsx("div", { className: "md:1/3 w-2/5 shrink-0 rounded-r-lg border-l", children: /* @__PURE__ */ jsx(Pressable, { href: feature.url, children: renderImage(feature, imageAlt) }) })
20921
21255
  ] }),
20922
- feature.description && /* @__PURE__ */ jsx("p", { className: cn("p-4 text-muted-foreground md:p-8", feature.descriptionClassName), children: feature.description })
21256
+ feature.description && /* @__PURE__ */ jsx(
21257
+ "p",
21258
+ {
21259
+ className: cn(
21260
+ "p-4 text-muted-foreground md:p-8",
21261
+ feature.descriptionClassName
21262
+ ),
21263
+ children: feature.description
21264
+ }
21265
+ )
20923
21266
  ]
20924
21267
  },
20925
21268
  featureKey
@@ -20937,7 +21280,34 @@ function FeatureCardGridLinked({
20937
21280
  className,
20938
21281
  containerClassName,
20939
21282
  children: [
20940
- title && /* @__PURE__ */ jsx("div", { className: cn("mx-auto mb-16 max-w-3xl text-center", titleWrapperClassName), children: typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-4xl font-medium text-pretty lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-4xl font-medium text-pretty lg:text-5xl", titleClassName), children: title }) }),
21283
+ title && /* @__PURE__ */ jsx(
21284
+ "div",
21285
+ {
21286
+ className: cn(
21287
+ "mx-auto mb-16 max-w-3xl text-center",
21288
+ titleWrapperClassName
21289
+ ),
21290
+ children: typeof title === "string" ? /* @__PURE__ */ jsx(
21291
+ "h2",
21292
+ {
21293
+ className: cn(
21294
+ "text-4xl font-medium text-pretty lg:text-5xl",
21295
+ titleClassName
21296
+ ),
21297
+ children: title
21298
+ }
21299
+ ) : /* @__PURE__ */ jsx(
21300
+ "div",
21301
+ {
21302
+ className: cn(
21303
+ "text-4xl font-medium text-pretty lg:text-5xl",
21304
+ titleClassName
21305
+ ),
21306
+ children: title
21307
+ }
21308
+ )
21309
+ }
21310
+ ),
20941
21311
  /* @__PURE__ */ jsx("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: featuresContent })
20942
21312
  ]
20943
21313
  }
@@ -20961,27 +21331,45 @@ function FeatureNumberedCards({
20961
21331
  patternOpacity,
20962
21332
  patternClassName
20963
21333
  }) {
20964
- const renderChecklistItems = useCallback((feature) => {
20965
- if (feature.checklistSlot) return feature.checklistSlot;
20966
- if (!feature.checklistItems || feature.checklistItems.length === 0) return null;
20967
- return feature.checklistItems.map((item, itemIndex) => {
20968
- const isString = typeof item === "string";
20969
- const content = isString ? item : item.content;
20970
- const iconElement = isString ? /* @__PURE__ */ jsx(
20971
- DynamicIcon,
20972
- {
20973
- name: "lucide/check-circle",
20974
- size: 16,
20975
- className: "mt-0.5 shrink-0 sm:mt-1"
20976
- }
20977
- ) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16, className: "mt-0.5 shrink-0 sm:mt-1" }) : /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle", size: 16, className: "mt-0.5 shrink-0 sm:mt-1" }));
20978
- const itemClassName = isString ? void 0 : item.className;
20979
- return /* @__PURE__ */ jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
20980
- iconElement,
20981
- /* @__PURE__ */ jsx("p", { className: "text-sm md:text-base", children: content })
20982
- ] }, itemIndex);
20983
- });
20984
- }, []);
21334
+ const renderChecklistItems = useCallback(
21335
+ (feature) => {
21336
+ if (feature.checklistSlot) return feature.checklistSlot;
21337
+ if (!feature.checklistItems || feature.checklistItems.length === 0)
21338
+ return null;
21339
+ return feature.checklistItems.map((item, itemIndex) => {
21340
+ const isString = typeof item === "string";
21341
+ const content = isString ? item : item.content;
21342
+ const iconElement = isString ? /* @__PURE__ */ jsx(
21343
+ DynamicIcon,
21344
+ {
21345
+ name: "lucide/check-circle",
21346
+ size: 16,
21347
+ className: "mt-0.5 shrink-0 sm:mt-1"
21348
+ }
21349
+ ) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsx(
21350
+ DynamicIcon,
21351
+ {
21352
+ name: item.iconName,
21353
+ size: 16,
21354
+ className: "mt-0.5 shrink-0 sm:mt-1"
21355
+ }
21356
+ ) : /* @__PURE__ */ jsx(
21357
+ DynamicIcon,
21358
+ {
21359
+ name: "lucide/check-circle",
21360
+ size: 16,
21361
+ className: "mt-0.5 shrink-0 sm:mt-1"
21362
+ }
21363
+ ));
21364
+ const itemClassName = isString ? void 0 : item.className;
21365
+ return /* @__PURE__ */ jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
21366
+ iconElement,
21367
+ /* @__PURE__ */ jsx("p", { className: "text-sm md:text-base", children: content })
21368
+ ] }, itemIndex);
21369
+ });
21370
+ },
21371
+ []
21372
+ );
20985
21373
  const featuresContent = useMemo$1(() => {
20986
21374
  if (featuresSlot) return featuresSlot;
20987
21375
  if (!features || features.length === 0) return null;
@@ -20995,7 +21383,7 @@ function FeatureNumberedCards({
20995
21383
  {
20996
21384
  src: feature.image,
20997
21385
  alt: imageAlt,
20998
- className: "h-full w-full object-cover",
21386
+ className: "h-full w-full object-cover rounded-tr-lg rounded-tl-lg md:rounded-tl-0 rounded-br-0 md:rounded-br-lg",
20999
21387
  loading: "lazy",
21000
21388
  optixFlowConfig
21001
21389
  }
@@ -21003,19 +21391,111 @@ function FeatureNumberedCards({
21003
21391
  }
21004
21392
  return null;
21005
21393
  };
21006
- return /* @__PURE__ */ jsxs("div", { className: cn("grid rounded-lg border md:grid-cols-2", cardClassName, feature.className), children: [
21007
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col px-6 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20", feature.contentClassName), children: [
21008
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl", titleClassName), children: feature.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl", titleClassName), children: feature.title })),
21009
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("div", { className: cn("mb-8 text-sm text-muted-foreground sm:mb-10 md:text-base", descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-8 text-sm text-muted-foreground sm:mb-10 md:text-base", descriptionClassName), children: feature.description })),
21010
- feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsx("ul", { className: cn("mt-auto space-y-2 sm:space-y-3", checklistClassName), children: renderChecklistItems(feature) }) : null
21011
- ] }),
21012
- /* @__PURE__ */ jsxs("div", { className: cn("relative order-first max-h-80 md:order-last md:max-h-[500px]", feature.imageWrapperClassName), children: [
21013
- renderImage(),
21014
- /* @__PURE__ */ jsx("span", { className: cn("absolute top-5 left-5 flex size-6 items-center justify-center rounded-sm bg-primary font-mono text-xs text-primary-foreground md:top-10 md:left-10", badgeClassName), children: String(index + 1).padStart(2, "0") })
21015
- ] })
21016
- ] }, index);
21394
+ return /* @__PURE__ */ jsxs(
21395
+ "div",
21396
+ {
21397
+ className: cn(
21398
+ "grid rounded-lg border md:grid-cols-2",
21399
+ cardClassName,
21400
+ feature.className
21401
+ ),
21402
+ children: [
21403
+ /* @__PURE__ */ jsxs(
21404
+ "div",
21405
+ {
21406
+ className: cn(
21407
+ "flex flex-col px-6 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20",
21408
+ feature.contentClassName
21409
+ ),
21410
+ children: [
21411
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(
21412
+ "h3",
21413
+ {
21414
+ className: cn(
21415
+ "mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
21416
+ titleClassName
21417
+ ),
21418
+ children: feature.title
21419
+ }
21420
+ ) : /* @__PURE__ */ jsx(
21421
+ "div",
21422
+ {
21423
+ className: cn(
21424
+ "mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
21425
+ titleClassName
21426
+ ),
21427
+ children: feature.title
21428
+ }
21429
+ )),
21430
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx(
21431
+ "div",
21432
+ {
21433
+ className: cn(
21434
+ "mb-8 text-sm sm:mb-10 md:text-base",
21435
+ descriptionClassName
21436
+ ),
21437
+ children: feature.description
21438
+ }
21439
+ ) : /* @__PURE__ */ jsx(
21440
+ "div",
21441
+ {
21442
+ className: cn(
21443
+ "mb-8 text-sm sm:mb-10 md:text-base",
21444
+ descriptionClassName
21445
+ ),
21446
+ children: feature.description
21447
+ }
21448
+ )),
21449
+ feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsx(
21450
+ "ul",
21451
+ {
21452
+ className: cn(
21453
+ "mt-auto space-y-2 sm:space-y-3",
21454
+ checklistClassName
21455
+ ),
21456
+ children: renderChecklistItems(feature)
21457
+ }
21458
+ ) : null
21459
+ ]
21460
+ }
21461
+ ),
21462
+ /* @__PURE__ */ jsxs(
21463
+ "div",
21464
+ {
21465
+ className: cn(
21466
+ "relative order-first max-h-80 md:order-last md:max-h-[500px]",
21467
+ feature.imageWrapperClassName
21468
+ ),
21469
+ children: [
21470
+ renderImage(),
21471
+ /* @__PURE__ */ jsx(
21472
+ "span",
21473
+ {
21474
+ className: cn(
21475
+ "absolute top-5 left-5 flex size-6 items-center justify-center rounded-sm bg-primary font-mono text-xs text-primary-foreground md:top-10 md:left-10",
21476
+ badgeClassName
21477
+ ),
21478
+ children: String(index + 1).padStart(2, "0")
21479
+ }
21480
+ )
21481
+ ]
21482
+ }
21483
+ )
21484
+ ]
21485
+ },
21486
+ index
21487
+ );
21017
21488
  });
21018
- }, [featuresSlot, features, cardClassName, titleClassName, descriptionClassName, checklistClassName, badgeClassName, optixFlowConfig]);
21489
+ }, [
21490
+ featuresSlot,
21491
+ features,
21492
+ cardClassName,
21493
+ titleClassName,
21494
+ descriptionClassName,
21495
+ checklistClassName,
21496
+ badgeClassName,
21497
+ optixFlowConfig
21498
+ ]);
21019
21499
  return /* @__PURE__ */ jsx(
21020
21500
  Section,
21021
21501
  {
@@ -21026,7 +21506,16 @@ function FeatureNumberedCards({
21026
21506
  patternClassName,
21027
21507
  className,
21028
21508
  containerClassName,
21029
- children: /* @__PURE__ */ jsx("div", { className: cn("space-y-10 rounded-lg border py-10 md:px-4", cardsWrapperClassName), children: featuresContent })
21509
+ children: /* @__PURE__ */ jsx(
21510
+ "div",
21511
+ {
21512
+ className: cn(
21513
+ "space-y-4 md:space-y-10 rounded-lg border-none md:border md:bg-background p-0 md:p-10",
21514
+ cardsWrapperClassName
21515
+ ),
21516
+ children: featuresContent
21517
+ }
21518
+ )
21030
21519
  }
21031
21520
  );
21032
21521
  }
@@ -21059,12 +21548,21 @@ function FeatureIconGridAccent({
21059
21548
  "div",
21060
21549
  {
21061
21550
  className: cn(
21062
- "flex flex-col justify-between rounded-lg bg-accent p-6 md:min-h-[300px] md:p-8",
21551
+ "flex flex-col justify-between rounded-lg p-6 md:min-h-[300px] md:p-8",
21063
21552
  cardClassName,
21064
21553
  feature.className
21065
21554
  ),
21066
21555
  children: [
21067
- iconElement && /* @__PURE__ */ jsx("span", { className: cn("mb-6 flex size-11 items-center justify-center rounded-full bg-background", feature.iconClassName), children: iconElement }),
21556
+ iconElement && /* @__PURE__ */ jsx(
21557
+ "span",
21558
+ {
21559
+ className: cn(
21560
+ "mb-6 flex size-11 items-center justify-center rounded-full",
21561
+ feature.iconClassName
21562
+ ),
21563
+ children: iconElement
21564
+ }
21565
+ ),
21068
21566
  /* @__PURE__ */ jsxs("div", { children: [
21069
21567
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-medium md:text-2xl", children: feature.title }) : /* @__PURE__ */ jsx("div", { className: "text-lg font-medium md:text-2xl", children: feature.title })),
21070
21568
  feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-2 text-muted-foreground", children: feature.description }) : /* @__PURE__ */ jsx("div", { className: "mt-2 text-muted-foreground", children: feature.description }))
@@ -21086,12 +21584,45 @@ function FeatureIconGridAccent({
21086
21584
  className,
21087
21585
  containerClassName,
21088
21586
  children: [
21089
- (label || title || description) && /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col items-center", headerClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center space-y-4 text-center sm:space-y-6 md:max-w-3xl md:text-center", children: [
21090
- label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: labelClassName, children: label })),
21091
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
21092
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:max-w-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
21093
- ] }) }),
21094
- featuresContent && /* @__PURE__ */ jsx("div", { className: cn("mx-auto mt-20 grid max-w-5xl gap-6 md:grid-cols-2", gridClassName), children: featuresContent })
21587
+ (label || title || description) && /* @__PURE__ */ jsx(
21588
+ "div",
21589
+ {
21590
+ className: cn("flex w-full flex-col items-center", headerClassName),
21591
+ children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center space-y-4 text-center sm:space-y-6 md:max-w-3xl md:text-center", children: [
21592
+ label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: labelClassName, children: label })),
21593
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
21594
+ "h2",
21595
+ {
21596
+ className: cn(
21597
+ "text-3xl font-medium md:text-5xl text-balance",
21598
+ titleClassName
21599
+ ),
21600
+ children: title
21601
+ }
21602
+ ) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
21603
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
21604
+ "p",
21605
+ {
21606
+ className: cn(
21607
+ "md:max-w-2xl text-balance",
21608
+ descriptionClassName
21609
+ ),
21610
+ children: description
21611
+ }
21612
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
21613
+ ] })
21614
+ }
21615
+ ),
21616
+ featuresContent && /* @__PURE__ */ jsx(
21617
+ "div",
21618
+ {
21619
+ className: cn(
21620
+ "mx-auto mt-20 grid max-w-5xl gap-6 md:grid-cols-2",
21621
+ gridClassName
21622
+ ),
21623
+ children: featuresContent
21624
+ }
21625
+ )
21095
21626
  ]
21096
21627
  }
21097
21628
  );
@@ -21108,24 +21639,78 @@ function FeatureThreeColumnValues({
21108
21639
  gridClassName,
21109
21640
  cardClassName,
21110
21641
  background,
21111
- spacing,
21642
+ spacing = "py-6 md:py-32",
21112
21643
  pattern,
21113
21644
  patternOpacity,
21114
21645
  patternClassName
21115
21646
  }) {
21116
- const renderValueIcon = React52.useCallback((value) => {
21117
- if (value.icon) return value.icon;
21118
- if (value.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: value.iconName, size: 24 });
21119
- return null;
21120
- }, []);
21647
+ const renderValueIcon = React52.useCallback(
21648
+ (value) => {
21649
+ if (value.icon) return value.icon;
21650
+ if (value.iconName)
21651
+ return /* @__PURE__ */ jsx(DynamicIcon, { name: value.iconName, size: 24 });
21652
+ return null;
21653
+ },
21654
+ []
21655
+ );
21121
21656
  const valuesContent = useMemo$1(() => {
21122
21657
  if (valuesSlot) return valuesSlot;
21123
21658
  if (!values || values.length === 0) return null;
21124
- return values.map((value, index) => /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg bg-accent p-5", cardClassName, value.className), children: [
21125
- (value.icon || value.iconName) && /* @__PURE__ */ jsx("span", { className: cn("mb-8 flex size-12 items-center justify-center rounded-full bg-background", value.iconClassName), children: renderValueIcon(value) }),
21126
- value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-2 text-xl font-medium", value.titleClassName), children: value.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-2 text-xl font-medium", value.titleClassName), children: value.title })),
21127
- value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-7 text-muted-foreground", value.descriptionClassName), children: value.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-7 text-muted-foreground", value.descriptionClassName), children: value.description }))
21128
- ] }, index));
21659
+ return values.map((value, index) => /* @__PURE__ */ jsxs(
21660
+ "div",
21661
+ {
21662
+ className: cn(
21663
+ "rounded-lg bg-accent p-5",
21664
+ cardClassName,
21665
+ value.className
21666
+ ),
21667
+ children: [
21668
+ (value.icon || value.iconName) && /* @__PURE__ */ jsx(
21669
+ "span",
21670
+ {
21671
+ className: cn(
21672
+ "mb-8 flex size-12 items-center justify-center rounded-full bg-background",
21673
+ value.iconClassName
21674
+ ),
21675
+ children: renderValueIcon(value)
21676
+ }
21677
+ ),
21678
+ value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsx(
21679
+ "h3",
21680
+ {
21681
+ className: cn("mb-2 text-xl font-medium", value.titleClassName),
21682
+ children: value.title
21683
+ }
21684
+ ) : /* @__PURE__ */ jsx(
21685
+ "div",
21686
+ {
21687
+ className: cn("mb-2 text-xl font-medium", value.titleClassName),
21688
+ children: value.title
21689
+ }
21690
+ )),
21691
+ value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsx(
21692
+ "p",
21693
+ {
21694
+ className: cn(
21695
+ "leading-7 text-muted-foreground",
21696
+ value.descriptionClassName
21697
+ ),
21698
+ children: value.description
21699
+ }
21700
+ ) : /* @__PURE__ */ jsx(
21701
+ "div",
21702
+ {
21703
+ className: cn(
21704
+ "leading-7 text-muted-foreground",
21705
+ value.descriptionClassName
21706
+ ),
21707
+ children: value.description
21708
+ }
21709
+ ))
21710
+ ]
21711
+ },
21712
+ index
21713
+ ));
21129
21714
  }, [valuesSlot, values, cardClassName, renderValueIcon]);
21130
21715
  return /* @__PURE__ */ jsxs(
21131
21716
  Section,
@@ -21138,9 +21723,48 @@ function FeatureThreeColumnValues({
21138
21723
  className,
21139
21724
  containerClassName,
21140
21725
  children: [
21141
- label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4 text-sm text-muted-foreground lg:text-base", labelClassName), children: label }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 text-sm text-muted-foreground lg:text-base", labelClassName), children: label })),
21142
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title })),
21143
- (valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3", gridClassName), children: valuesContent })
21726
+ label && (typeof label === "string" ? /* @__PURE__ */ jsx(
21727
+ "p",
21728
+ {
21729
+ className: cn(
21730
+ "mb-4 text-sm text-muted-foreground lg:text-base",
21731
+ labelClassName
21732
+ ),
21733
+ children: label
21734
+ }
21735
+ ) : /* @__PURE__ */ jsx(
21736
+ "div",
21737
+ {
21738
+ className: cn(
21739
+ "mb-4 text-sm text-muted-foreground lg:text-base",
21740
+ labelClassName
21741
+ ),
21742
+ children: label
21743
+ }
21744
+ )),
21745
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
21746
+ "h2",
21747
+ {
21748
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
21749
+ children: title
21750
+ }
21751
+ ) : /* @__PURE__ */ jsx(
21752
+ "div",
21753
+ {
21754
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
21755
+ children: title
21756
+ }
21757
+ )),
21758
+ (valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsx(
21759
+ "div",
21760
+ {
21761
+ className: cn(
21762
+ "mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3",
21763
+ gridClassName
21764
+ ),
21765
+ children: valuesContent
21766
+ }
21767
+ )
21144
21768
  ]
21145
21769
  }
21146
21770
  );
@@ -21196,7 +21820,7 @@ function FeatureBadgeGridSix({
21196
21820
  {
21197
21821
  className: cn("flex gap-6 space-y-4 rounded-lg md:block", cardClassName, feature.className),
21198
21822
  children: [
21199
- iconContent && /* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-accent md:size-12", children: iconContent }),
21823
+ iconContent && /* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground md:size-12", children: iconContent }),
21200
21824
  /* @__PURE__ */ jsxs("div", { children: [
21201
21825
  feature.heading && (typeof feature.heading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("font-medium md:mb-2 md:text-xl", feature.headingClassName), children: feature.heading }) : /* @__PURE__ */ jsx("div", { className: cn("font-medium md:mb-2 md:text-xl", feature.headingClassName), children: feature.heading })),
21202
21826
  feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsx("div", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }))
@@ -21409,31 +22033,57 @@ function FeatureTabbedContentImage({
21409
22033
  contentGridClassName,
21410
22034
  optixFlowConfig,
21411
22035
  background,
21412
- spacing,
22036
+ spacing = "py-6 md:py-32",
21413
22037
  pattern,
21414
22038
  patternOpacity,
21415
22039
  patternClassName
21416
22040
  }) {
21417
- const renderFeatures = React52.useCallback((slide) => {
21418
- if (slide.featuresSlot) return slide.featuresSlot;
21419
- if (!slide.features || slide.features.length === 0) return null;
21420
- return slide.features.map((feature, index) => {
21421
- const isString = typeof feature === "string";
21422
- const content = isString ? feature : feature.content;
21423
- const iconElement = isString ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }) : feature.icon ?? (feature.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName, size: 16 }) : /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }));
21424
- const itemClassName = isString ? void 0 : feature.className;
21425
- return /* @__PURE__ */ jsxs("li", { className: cn("flex items-center gap-2", itemClassName), children: [
21426
- iconElement,
21427
- /* @__PURE__ */ jsx("span", { className: "font-medium", children: content })
21428
- ] }, index);
21429
- });
21430
- }, []);
21431
- const renderActions = React52.useCallback((slide) => {
21432
- if (slide.actionsSlot) return slide.actionsSlot;
21433
- if (!slide.actions || slide.actions.length === 0) return null;
21434
- return slide.actions.map((action, index) => {
21435
- if (action.children) {
21436
- return /* @__PURE__ */ jsx(
22041
+ const renderFeatures = React52.useCallback(
22042
+ (slide) => {
22043
+ if (slide.featuresSlot) return slide.featuresSlot;
22044
+ if (!slide.features || slide.features.length === 0) return null;
22045
+ return slide.features.map((feature, index) => {
22046
+ const isString = typeof feature === "string";
22047
+ const content = isString ? feature : feature.content;
22048
+ const iconElement = isString ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }) : feature.icon ?? (feature.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: feature.iconName, size: 16 }) : /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }));
22049
+ const itemClassName = isString ? void 0 : feature.className;
22050
+ return /* @__PURE__ */ jsxs(
22051
+ "li",
22052
+ {
22053
+ className: cn("flex items-center gap-2", itemClassName),
22054
+ children: [
22055
+ iconElement,
22056
+ /* @__PURE__ */ jsx("span", { className: "font-medium", children: content })
22057
+ ]
22058
+ },
22059
+ index
22060
+ );
22061
+ });
22062
+ },
22063
+ []
22064
+ );
22065
+ const renderActions = React52.useCallback(
22066
+ (slide) => {
22067
+ if (slide.actionsSlot) return slide.actionsSlot;
22068
+ if (!slide.actions || slide.actions.length === 0) return null;
22069
+ return slide.actions.map((action, index) => {
22070
+ if (action.children) {
22071
+ return /* @__PURE__ */ jsx(
22072
+ Pressable,
22073
+ {
22074
+ href: action.href,
22075
+ onClick: action.onClick,
22076
+ variant: action.variant,
22077
+ size: action.size,
22078
+ className: cn("mt-8", action.className),
22079
+ "aria-label": action["aria-label"],
22080
+ asButton: true,
22081
+ children: action.children
22082
+ },
22083
+ index
22084
+ );
22085
+ }
22086
+ return /* @__PURE__ */ jsxs(
21437
22087
  Pressable,
21438
22088
  {
21439
22089
  href: action.href,
@@ -21443,46 +22093,39 @@ function FeatureTabbedContentImage({
21443
22093
  className: cn("mt-8", action.className),
21444
22094
  "aria-label": action["aria-label"],
21445
22095
  asButton: true,
21446
- children: action.children
22096
+ children: [
22097
+ action.icon,
22098
+ action.label,
22099
+ action.iconAfter
22100
+ ]
21447
22101
  },
21448
22102
  index
21449
22103
  );
21450
- }
21451
- return /* @__PURE__ */ jsxs(
21452
- Pressable,
22104
+ });
22105
+ },
22106
+ []
22107
+ );
22108
+ const renderImage = React52.useCallback(
22109
+ (slide) => {
22110
+ if (slide.imageSlot) return slide.imageSlot;
22111
+ if (!slide.image) return null;
22112
+ const imageAlt = slide.imageAlt || (typeof slide.title === "string" ? slide.title : "Tab content image");
22113
+ return /* @__PURE__ */ jsx(
22114
+ Img,
21453
22115
  {
21454
- href: action.href,
21455
- onClick: action.onClick,
21456
- variant: action.variant,
21457
- size: action.size,
21458
- className: cn("mt-8", action.className),
21459
- "aria-label": action["aria-label"],
21460
- asButton: true,
21461
- children: [
21462
- action.icon,
21463
- action.label,
21464
- action.iconAfter
21465
- ]
21466
- },
21467
- index
22116
+ src: slide.image,
22117
+ alt: imageAlt,
22118
+ className: cn(
22119
+ "order-first max-h-[400px] w-full rounded-lg object-cover md:order-last",
22120
+ slide.imageClassName
22121
+ ),
22122
+ loading: "lazy",
22123
+ optixFlowConfig
22124
+ }
21468
22125
  );
21469
- });
21470
- }, []);
21471
- const renderImage = React52.useCallback((slide) => {
21472
- if (slide.imageSlot) return slide.imageSlot;
21473
- if (!slide.image) return null;
21474
- const imageAlt = slide.imageAlt || (typeof slide.title === "string" ? slide.title : "Tab content image");
21475
- return /* @__PURE__ */ jsx(
21476
- Img,
21477
- {
21478
- src: slide.image,
21479
- alt: imageAlt,
21480
- className: cn("order-first max-h-[400px] w-full rounded-lg object-cover md:order-last", slide.imageClassName),
21481
- loading: "lazy",
21482
- optixFlowConfig
21483
- }
21484
- );
21485
- }, [optixFlowConfig]);
22126
+ },
22127
+ [optixFlowConfig]
22128
+ );
21486
22129
  const slidesContent = useMemo$1(() => {
21487
22130
  if (slidesSlot) return slidesSlot;
21488
22131
  if (!slides || slides.length === 0) return null;
@@ -21491,7 +22134,10 @@ function FeatureTabbedContentImage({
21491
22134
  TabsTrigger,
21492
22135
  {
21493
22136
  value: slide.id.toString(),
21494
- className: cn("text-sm hover:bg-background md:text-base", tabTriggerClassName),
22137
+ className: cn(
22138
+ "text-sm hover:bg-background md:text-base",
22139
+ tabTriggerClassName
22140
+ ),
21495
22141
  children: slide.tabName
21496
22142
  },
21497
22143
  slide.id
@@ -21501,20 +22147,85 @@ function FeatureTabbedContentImage({
21501
22147
  {
21502
22148
  value: slide.id.toString(),
21503
22149
  className: cn("max-w-5xl", tabContentClassName),
21504
- children: /* @__PURE__ */ jsxs("div", { className: cn("grid grid-cols-1 items-center gap-10 md:grid-cols-2", contentGridClassName, slide.className), children: [
21505
- /* @__PURE__ */ jsxs("div", { children: [
21506
- slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-2xl font-semibold lg:text-4xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4 text-2xl font-semibold lg:text-4xl", slide.titleClassName), children: slide.title })),
21507
- slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground lg:text-xl", slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground lg:text-xl", slide.descriptionClassName), children: slide.description })),
21508
- slide.features && slide.features.length > 0 || slide.featuresSlot ? /* @__PURE__ */ jsx("ul", { className: cn("mt-8 grid grid-cols-1 gap-2 lg:grid-cols-2", slide.featuresClassName), children: renderFeatures(slide) }) : null,
21509
- renderActions(slide)
21510
- ] }),
21511
- renderImage(slide)
21512
- ] })
22150
+ children: /* @__PURE__ */ jsxs(
22151
+ "div",
22152
+ {
22153
+ className: cn(
22154
+ "grid grid-cols-1 items-center gap-10 md:grid-cols-2",
22155
+ contentGridClassName,
22156
+ slide.className
22157
+ ),
22158
+ children: [
22159
+ /* @__PURE__ */ jsxs("div", { children: [
22160
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx(
22161
+ "h2",
22162
+ {
22163
+ className: cn(
22164
+ "mb-4 text-2xl font-semibold lg:text-4xl",
22165
+ slide.titleClassName
22166
+ ),
22167
+ children: slide.title
22168
+ }
22169
+ ) : /* @__PURE__ */ jsx(
22170
+ "div",
22171
+ {
22172
+ className: cn(
22173
+ "mb-4 text-2xl font-semibold lg:text-4xl",
22174
+ slide.titleClassName
22175
+ ),
22176
+ children: slide.title
22177
+ }
22178
+ )),
22179
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx(
22180
+ "p",
22181
+ {
22182
+ className: cn(
22183
+ "text-muted-foreground lg:text-xl",
22184
+ slide.descriptionClassName
22185
+ ),
22186
+ children: slide.description
22187
+ }
22188
+ ) : /* @__PURE__ */ jsx(
22189
+ "div",
22190
+ {
22191
+ className: cn(
22192
+ "text-muted-foreground lg:text-xl",
22193
+ slide.descriptionClassName
22194
+ ),
22195
+ children: slide.description
22196
+ }
22197
+ )),
22198
+ slide.features && slide.features.length > 0 || slide.featuresSlot ? /* @__PURE__ */ jsx(
22199
+ "ul",
22200
+ {
22201
+ className: cn(
22202
+ "mt-8 grid grid-cols-1 gap-2 lg:grid-cols-2",
22203
+ slide.featuresClassName
22204
+ ),
22205
+ children: renderFeatures(slide)
22206
+ }
22207
+ ) : null,
22208
+ renderActions(slide)
22209
+ ] }),
22210
+ renderImage(slide)
22211
+ ]
22212
+ }
22213
+ )
21513
22214
  },
21514
22215
  slide.id
21515
22216
  ))
21516
22217
  ] });
21517
- }, [slidesSlot, slides, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, renderFeatures, renderActions, renderImage]);
22218
+ }, [
22219
+ slidesSlot,
22220
+ slides,
22221
+ tabsListClassName,
22222
+ tabTriggerClassName,
22223
+ tabContentClassName,
22224
+ contentGridClassName,
22225
+ renderFeatures,
22226
+ renderActions,
22227
+ renderImage
22228
+ ]);
21518
22229
  const effectiveDefaultTab = useMemo$1(() => {
21519
22230
  if (defaultTab) return defaultTab;
21520
22231
  if (slides && slides.length > 0) return slides[0].id.toString();
@@ -21531,15 +22242,63 @@ function FeatureTabbedContentImage({
21531
22242
  className,
21532
22243
  containerClassName,
21533
22244
  children: [
21534
- /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-6", headerClassName), children: [
21535
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-center text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-center text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
21536
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-balance text-muted-foreground lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-center text-balance text-muted-foreground lg:text-xl", descriptionClassName), children: description }))
21537
- ] }),
22245
+ /* @__PURE__ */ jsxs(
22246
+ "div",
22247
+ {
22248
+ className: cn(
22249
+ "mx-auto flex max-w-3xl flex-col items-center gap-6",
22250
+ headerClassName
22251
+ ),
22252
+ children: [
22253
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
22254
+ "h2",
22255
+ {
22256
+ className: cn(
22257
+ "text-center text-3xl font-semibold lg:text-5xl",
22258
+ titleClassName
22259
+ ),
22260
+ children: title
22261
+ }
22262
+ ) : /* @__PURE__ */ jsx(
22263
+ "div",
22264
+ {
22265
+ className: cn(
22266
+ "text-center text-3xl font-semibold lg:text-5xl",
22267
+ titleClassName
22268
+ ),
22269
+ children: title
22270
+ }
22271
+ )),
22272
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
22273
+ "p",
22274
+ {
22275
+ className: cn(
22276
+ "text-center text-balance text-muted-foreground lg:text-xl",
22277
+ descriptionClassName
22278
+ ),
22279
+ children: description
22280
+ }
22281
+ ) : /* @__PURE__ */ jsx(
22282
+ "div",
22283
+ {
22284
+ className: cn(
22285
+ "text-center text-balance text-muted-foreground lg:text-xl",
22286
+ descriptionClassName
22287
+ ),
22288
+ children: description
22289
+ }
22290
+ ))
22291
+ ]
22292
+ }
22293
+ ),
21538
22294
  (slidesSlot || slides && slides.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-12", tabsWrapperClassName), children: /* @__PURE__ */ jsx(
21539
22295
  Tabs,
21540
22296
  {
21541
22297
  defaultValue: effectiveDefaultTab,
21542
- className: cn("mx-auto flex w-fit flex-col items-center gap-8 md:gap-12", tabsClassName),
22298
+ className: cn(
22299
+ "mx-auto flex w-fit flex-col items-center gap-8 md:gap-12",
22300
+ tabsClassName
22301
+ ),
21543
22302
  children: slidesContent
21544
22303
  }
21545
22304
  ) })
@@ -21852,7 +22611,7 @@ function FeatureChecklistThreeColumn({
21852
22611
  Badge,
21853
22612
  {
21854
22613
  variant: "outline",
21855
- className: cn("absolute top-5 left-5 bg-primary-foreground", card.badgeClassName),
22614
+ className: cn("absolute top-5 left-5 bg-background", card.badgeClassName),
21856
22615
  children: card.badge
21857
22616
  }
21858
22617
  )
@@ -22020,7 +22779,7 @@ function FeatureIconTabsContent({
22020
22779
  tabContentClassName,
22021
22780
  optixFlowConfig,
22022
22781
  background,
22023
- spacing,
22782
+ spacing = "py-6 md:py-32",
22024
22783
  pattern,
22025
22784
  patternOpacity,
22026
22785
  patternClassName
@@ -22030,12 +22789,28 @@ function FeatureIconTabsContent({
22030
22789
  if (tab.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: tab.iconName, size: 16 });
22031
22790
  return null;
22032
22791
  }, []);
22033
- const renderTabContentActions = useCallback((content) => {
22034
- if (content.actionsSlot) return content.actionsSlot;
22035
- if (!content.actions || content.actions.length === 0) return null;
22036
- return content.actions.map((action, index) => {
22037
- if (action.children) {
22038
- return /* @__PURE__ */ jsx(
22792
+ const renderTabContentActions = useCallback(
22793
+ (content) => {
22794
+ if (content.actionsSlot) return content.actionsSlot;
22795
+ if (!content.actions || content.actions.length === 0) return null;
22796
+ return content.actions.map((action, index) => {
22797
+ if (action.children) {
22798
+ return /* @__PURE__ */ jsx(
22799
+ Pressable,
22800
+ {
22801
+ href: action.href,
22802
+ onClick: action.onClick,
22803
+ variant: action.variant,
22804
+ size: action.size,
22805
+ className: cn("mt-2.5 w-fit gap-2", action.className),
22806
+ "aria-label": action["aria-label"],
22807
+ asButton: true,
22808
+ children: action.children
22809
+ },
22810
+ index
22811
+ );
22812
+ }
22813
+ return /* @__PURE__ */ jsxs(
22039
22814
  Pressable,
22040
22815
  {
22041
22816
  href: action.href,
@@ -22045,106 +22820,223 @@ function FeatureIconTabsContent({
22045
22820
  className: cn("mt-2.5 w-fit gap-2", action.className),
22046
22821
  "aria-label": action["aria-label"],
22047
22822
  asButton: true,
22048
- children: action.children
22823
+ children: [
22824
+ action.icon,
22825
+ action.label,
22826
+ action.iconAfter
22827
+ ]
22049
22828
  },
22050
22829
  index
22051
22830
  );
22831
+ });
22832
+ },
22833
+ []
22834
+ );
22835
+ const renderTabContentImage = useCallback(
22836
+ (content) => {
22837
+ if (content.imageSlot) return content.imageSlot;
22838
+ if (content.imageSrc) {
22839
+ return /* @__PURE__ */ jsx(
22840
+ Img,
22841
+ {
22842
+ src: content.imageSrc,
22843
+ alt: content.imageAlt || "Tab content image",
22844
+ className: cn(
22845
+ "h-full w-full rounded-xl object-cover",
22846
+ content.imageClassName
22847
+ ),
22848
+ loading: "lazy",
22849
+ optixFlowConfig
22850
+ }
22851
+ );
22052
22852
  }
22053
- return /* @__PURE__ */ jsxs(
22054
- Pressable,
22055
- {
22056
- href: action.href,
22057
- onClick: action.onClick,
22058
- variant: action.variant,
22059
- size: action.size,
22060
- className: cn("mt-2.5 w-fit gap-2", action.className),
22061
- "aria-label": action["aria-label"],
22062
- asButton: true,
22063
- children: [
22064
- action.icon,
22065
- action.label,
22066
- action.iconAfter
22067
- ]
22068
- },
22069
- index
22070
- );
22071
- });
22072
- }, []);
22073
- const renderTabContentImage = useCallback((content) => {
22074
- if (content.imageSlot) return content.imageSlot;
22075
- if (content.imageSrc) {
22076
- return /* @__PURE__ */ jsx(
22077
- Img,
22078
- {
22079
- src: content.imageSrc,
22080
- alt: content.imageAlt || "Tab content image",
22081
- className: cn("h-full w-full rounded-xl object-cover", content.imageClassName),
22082
- loading: "lazy",
22083
- optixFlowConfig
22084
- }
22085
- );
22086
- }
22087
- return null;
22088
- }, [optixFlowConfig]);
22853
+ return null;
22854
+ },
22855
+ [optixFlowConfig]
22856
+ );
22089
22857
  const tabsContent = useMemo$1(() => {
22090
22858
  if (tabsSlot) return tabsSlot;
22091
22859
  if (!tabs || tabs.length === 0) return null;
22092
22860
  const activeDefaultTab = defaultTab || tabs[0]?.value;
22093
22861
  return /* @__PURE__ */ jsxs(Tabs, { defaultValue: activeDefaultTab, className: "mt-8", children: [
22094
- /* @__PURE__ */ jsx(TabsList, { className: cn("container flex flex-col items-center justify-center gap-4 bg-transparent sm:flex-row md:gap-10", tabsListClassName), children: tabs.map((tab) => /* @__PURE__ */ jsxs(
22095
- TabsTrigger,
22862
+ /* @__PURE__ */ jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6", children: /* @__PURE__ */ jsx(
22863
+ TabsList,
22096
22864
  {
22097
- value: tab.value,
22098
- className: cn("flex items-center gap-2 rounded-xl px-4 py-3 text-sm font-semibold text-muted-foreground data-[state=active]:bg-muted data-[state=active]:text-primary", tabTriggerClassName, tab.className),
22099
- children: [
22100
- (tab.icon || tab.iconName) && renderTabIcon(tab),
22101
- tab.label
22102
- ]
22103
- },
22104
- tab.value
22105
- )) }),
22106
- /* @__PURE__ */ jsx("div", { className: cn("mx-auto mt-8 max-w-7xl rounded-2xl bg-muted/70 p-6 lg:p-16", contentWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "relative", children: tabs.map((tab) => {
22107
- if (tab.contentSlot) {
22108
- return /* @__PURE__ */ jsx(TabsContent, { value: tab.value, className: tabContentClassName, children: tab.contentSlot }, tab.value);
22865
+ className: cn(
22866
+ "inline-flex w-auto min-w-full items-center justify-start gap-2 bg-transparent md:justify-center md:gap-4",
22867
+ tabsListClassName
22868
+ ),
22869
+ children: tabs.map((tab) => /* @__PURE__ */ jsxs(
22870
+ TabsTrigger,
22871
+ {
22872
+ value: tab.value,
22873
+ className: cn(
22874
+ "flex shrink-0 items-center gap-2 rounded-lg border border-border bg-background px-4 py-2.5 text-sm font-medium transition-colors hover:bg-accent hover:text-accent-foreground data-[state=active]:border-primary data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
22875
+ tabTriggerClassName,
22876
+ tab.className
22877
+ ),
22878
+ children: [
22879
+ (tab.icon || tab.iconName) && renderTabIcon(tab),
22880
+ tab.label
22881
+ ]
22882
+ },
22883
+ tab.value
22884
+ ))
22109
22885
  }
22110
- const content = tab.content;
22111
- if (!content) return null;
22112
- return /* @__PURE__ */ jsxs(
22113
- TabsContent,
22886
+ ) }),
22887
+ /* @__PURE__ */ jsx(
22888
+ "div",
22889
+ {
22890
+ className: cn(
22891
+ "mx-auto mt-8 max-w-7xl rounded-2xl bg-muted/70 p-6 lg:p-16",
22892
+ contentWrapperClassName
22893
+ ),
22894
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: tabs.map((tab) => {
22895
+ if (tab.contentSlot) {
22896
+ return /* @__PURE__ */ jsx(
22897
+ TabsContent,
22898
+ {
22899
+ value: tab.value,
22900
+ className: tabContentClassName,
22901
+ children: tab.contentSlot
22902
+ },
22903
+ tab.value
22904
+ );
22905
+ }
22906
+ const content = tab.content;
22907
+ if (!content) return null;
22908
+ return /* @__PURE__ */ jsxs(
22909
+ TabsContent,
22910
+ {
22911
+ value: tab.value,
22912
+ className: cn(
22913
+ "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
22914
+ tabContentClassName,
22915
+ content.className
22916
+ ),
22917
+ children: [
22918
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
22919
+ content.badge && /* @__PURE__ */ jsx(
22920
+ Badge,
22921
+ {
22922
+ variant: "outline",
22923
+ className: cn(
22924
+ "w-fit bg-background",
22925
+ content.badgeClassName
22926
+ ),
22927
+ children: content.badge
22928
+ }
22929
+ ),
22930
+ content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsx(
22931
+ "h3",
22932
+ {
22933
+ className: cn(
22934
+ "text-3xl font-semibold lg:text-5xl",
22935
+ content.titleClassName
22936
+ ),
22937
+ children: content.title
22938
+ }
22939
+ ) : /* @__PURE__ */ jsx(
22940
+ "div",
22941
+ {
22942
+ className: cn(
22943
+ "text-3xl font-semibold lg:text-5xl",
22944
+ content.titleClassName
22945
+ ),
22946
+ children: content.title
22947
+ }
22948
+ )),
22949
+ content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsx(
22950
+ "p",
22951
+ {
22952
+ className: cn(
22953
+ "text-muted-foreground lg:text-lg",
22954
+ content.descriptionClassName
22955
+ ),
22956
+ children: content.description
22957
+ }
22958
+ ) : /* @__PURE__ */ jsx(
22959
+ "div",
22960
+ {
22961
+ className: cn(
22962
+ "text-muted-foreground lg:text-lg",
22963
+ content.descriptionClassName
22964
+ ),
22965
+ children: content.description
22966
+ }
22967
+ )),
22968
+ (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
22969
+ ] }),
22970
+ (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
22971
+ ]
22972
+ },
22973
+ tab.value
22974
+ );
22975
+ }) })
22976
+ }
22977
+ )
22978
+ ] });
22979
+ }, [
22980
+ tabsSlot,
22981
+ tabs,
22982
+ defaultTab,
22983
+ tabsListClassName,
22984
+ tabTriggerClassName,
22985
+ contentWrapperClassName,
22986
+ tabContentClassName,
22987
+ renderTabIcon,
22988
+ renderTabContentActions,
22989
+ renderTabContentImage
22990
+ ]);
22991
+ return /* @__PURE__ */ jsxs(
22992
+ Section,
22993
+ {
22994
+ background,
22995
+ spacing,
22996
+ pattern,
22997
+ patternOpacity,
22998
+ patternClassName,
22999
+ className,
23000
+ containerClassName: cn("mx-auto", containerClassName),
23001
+ children: [
23002
+ (badge || heading || description) && /* @__PURE__ */ jsxs(
23003
+ "div",
22114
23004
  {
22115
- value: tab.value,
22116
- className: cn("grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10", tabContentClassName, content.className),
23005
+ className: cn(
23006
+ "flex flex-col items-center gap-4 text-center",
23007
+ headerClassName
23008
+ ),
22117
23009
  children: [
22118
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
22119
- content.badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn("w-fit bg-background", content.badgeClassName), children: content.badge }),
22120
- content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-semibold lg:text-5xl", content.titleClassName), children: content.title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", content.titleClassName), children: content.title })),
22121
- content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground lg:text-lg", content.descriptionClassName), children: content.description }) : /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground lg:text-lg", content.descriptionClassName), children: content.description })),
22122
- (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
22123
- ] }),
22124
- (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
23010
+ badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
23011
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
23012
+ "h1",
23013
+ {
23014
+ className: cn(
23015
+ "max-w-2xl text-3xl font-semibold md:text-4xl",
23016
+ headingClassName
23017
+ ),
23018
+ children: heading
23019
+ }
23020
+ ) : /* @__PURE__ */ jsx(
23021
+ "div",
23022
+ {
23023
+ className: cn(
23024
+ "max-w-2xl text-3xl font-semibold md:text-4xl",
23025
+ headingClassName
23026
+ ),
23027
+ children: heading
23028
+ }
23029
+ )),
23030
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx(
23031
+ "div",
23032
+ {
23033
+ className: cn("text-muted-foreground", descriptionClassName),
23034
+ children: description
23035
+ }
23036
+ ))
22125
23037
  ]
22126
- },
22127
- tab.value
22128
- );
22129
- }) }) })
22130
- ] });
22131
- }, [tabsSlot, tabs, defaultTab, tabsListClassName, tabTriggerClassName, contentWrapperClassName, tabContentClassName, renderTabIcon, renderTabContentActions, renderTabContentImage]);
22132
- return /* @__PURE__ */ jsxs(
22133
- Section,
22134
- {
22135
- background,
22136
- spacing,
22137
- pattern,
22138
- patternOpacity,
22139
- patternClassName,
22140
- className,
22141
- containerClassName: cn("mx-auto", containerClassName),
22142
- children: [
22143
- (badge || heading || description) && /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-4 text-center", headerClassName), children: [
22144
- badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
22145
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("max-w-2xl text-3xl font-semibold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("max-w-2xl text-3xl font-semibold md:text-4xl", headingClassName), children: heading })),
22146
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground", descriptionClassName), children: description }))
22147
- ] }),
23038
+ }
23039
+ ),
22148
23040
  tabsContent
22149
23041
  ]
22150
23042
  }
@@ -22225,7 +23117,7 @@ function FeatureImageOverlayBadge({
22225
23117
  overlayTitleClassName,
22226
23118
  optixFlowConfig,
22227
23119
  background,
22228
- spacing,
23120
+ spacing = "py-6 md:py-32",
22229
23121
  pattern,
22230
23122
  patternOpacity,
22231
23123
  patternClassName
@@ -22278,7 +23170,10 @@ function FeatureImageOverlayBadge({
22278
23170
  {
22279
23171
  src: imageSrc,
22280
23172
  alt: imageAlt || "Feature illustration",
22281
- className: cn("rounded-xl object-cover md:aspect-video lg:aspect-auto", imageClassName),
23173
+ className: cn(
23174
+ "rounded-2xl object-cover md:aspect-video lg:aspect-auto w-full h-auto",
23175
+ imageClassName
23176
+ ),
22282
23177
  loading: "lazy",
22283
23178
  optixFlowConfig
22284
23179
  }
@@ -22296,41 +23191,111 @@ function FeatureImageOverlayBadge({
22296
23191
  patternClassName,
22297
23192
  className,
22298
23193
  containerClassName,
22299
- children: /* @__PURE__ */ jsxs("div", { className: cn("grid place-items-center gap-10 lg:grid-cols-2", gridClassName), children: [
22300
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
22301
- badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn("w-fit bg-background", badgeClassName), children: badge }),
22302
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
22303
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
22304
- /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent })
22305
- ] }),
22306
- imageContent && /* @__PURE__ */ jsxs("div", { className: cn("relative rounded-xl", imageWrapperClassName), children: [
22307
- imageContent,
22308
- (avatarSrc || avatarBadgeText || overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs(Fragment$1, { children: [
22309
- /* @__PURE__ */ jsx("div", { className: cn("absolute top-0 right-0 bottom-0 left-0 rounded-xl bg-linear-to-t from-primary via-transparent to-transparent", overlayClassName) }),
22310
- /* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
22311
- (avatarSrc || avatarBadgeText) && /* @__PURE__ */ jsxs("span", { className: cn("ml-auto flex w-fit items-center gap-2 rounded-full bg-background/30 px-4 py-2.5 text-sm font-semibold backdrop-blur-sm", avatarBadgeClassName), children: [
22312
- avatarSrc && /* @__PURE__ */ jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsx(AvatarImage, { src: avatarSrc, alt: "Avatar" }) }),
22313
- avatarBadgeText
22314
- ] }),
22315
- (overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5 text-background", children: [
22316
- overlayTitle && (typeof overlayTitle === "string" ? /* @__PURE__ */ jsx("h4", { className: cn("text-lg font-semibold lg:text-3xl", overlayTitleClassName), children: overlayTitle }) : /* @__PURE__ */ jsx("div", { className: cn("text-lg font-semibold lg:text-3xl", overlayTitleClassName), children: overlayTitle })),
22317
- overlayLinkText && /* @__PURE__ */ jsxs(
22318
- Pressable,
23194
+ children: /* @__PURE__ */ jsxs(
23195
+ "div",
23196
+ {
23197
+ className: cn(
23198
+ "grid place-items-center gap-10 lg:grid-cols-2",
23199
+ gridClassName
23200
+ ),
23201
+ children: [
23202
+ /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
23203
+ badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: cn("", badgeClassName), children: badge }),
23204
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
23205
+ "h3",
23206
+ {
23207
+ className: cn(
23208
+ "text-3xl font-semibold lg:text-4xl leading-snug text-balance",
23209
+ titleClassName
23210
+ ),
23211
+ children: title
23212
+ }
23213
+ ) : /* @__PURE__ */ jsx(
23214
+ "div",
23215
+ {
23216
+ className: cn(
23217
+ "text-3xl font-semibold lg:text-5xl",
23218
+ titleClassName
23219
+ ),
23220
+ children: title
23221
+ }
23222
+ )),
23223
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("lg:text-lg", descriptionClassName), children: description })),
23224
+ /* @__PURE__ */ jsx(
23225
+ "div",
23226
+ {
23227
+ className: cn(
23228
+ "flex items-center gap-4 flex-wrap",
23229
+ actionsClassName
23230
+ ),
23231
+ children: actionsContent
23232
+ }
23233
+ )
23234
+ ] }),
23235
+ imageContent && /* @__PURE__ */ jsxs("div", { className: cn("relative rounded-2xl", imageWrapperClassName), children: [
23236
+ imageContent,
23237
+ (avatarSrc || avatarBadgeText || overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs(Fragment$1, { children: [
23238
+ /* @__PURE__ */ jsx(
23239
+ "div",
22319
23240
  {
22320
- href: overlayLinkUrl,
22321
- onClick: overlayLinkOnClick,
22322
- className: "flex items-center gap-1 font-medium",
22323
- children: [
22324
- overlayLinkText,
22325
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
22326
- ]
23241
+ className: cn(
23242
+ "absolute top-0 right-0 bottom-0 left-0 rounded-2xl bg-linear-to-t from-black via-black/20 to-transparent",
23243
+ overlayClassName
23244
+ )
22327
23245
  }
22328
- )
23246
+ ),
23247
+ /* @__PURE__ */ jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between pt-4 pr-4 pl-4 pb-8 md:pt-7 md:bpr-7 md:pl-7 md:pb-7 rounded-2xl", children: [
23248
+ (avatarSrc || avatarBadgeText) && /* @__PURE__ */ jsxs(
23249
+ "span",
23250
+ {
23251
+ className: cn(
23252
+ "ml-auto flex w-fit items-center gap-2 rounded-full bg-background/30 px-4 py-2.5 text-sm font-semibold backdrop-blur-sm shadow-xl",
23253
+ avatarBadgeClassName
23254
+ ),
23255
+ children: [
23256
+ avatarSrc && /* @__PURE__ */ jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsx(AvatarImage, { src: avatarSrc, alt: "Avatar" }) }),
23257
+ avatarBadgeText
23258
+ ]
23259
+ }
23260
+ ),
23261
+ (overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-5", children: [
23262
+ overlayTitle && (typeof overlayTitle === "string" ? /* @__PURE__ */ jsx(
23263
+ "h4",
23264
+ {
23265
+ className: cn(
23266
+ "text-lg font-semibold lg:text-3xl",
23267
+ overlayTitleClassName
23268
+ ),
23269
+ children: overlayTitle
23270
+ }
23271
+ ) : /* @__PURE__ */ jsx(
23272
+ "div",
23273
+ {
23274
+ className: cn(
23275
+ "text-lg font-semibold lg:text-3xl",
23276
+ overlayTitleClassName
23277
+ ),
23278
+ children: overlayTitle
23279
+ }
23280
+ )),
23281
+ overlayLinkText && /* @__PURE__ */ jsxs(
23282
+ Pressable,
23283
+ {
23284
+ href: overlayLinkUrl,
23285
+ onClick: overlayLinkOnClick,
23286
+ children: [
23287
+ overlayLinkText,
23288
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-right", size: 18 })
23289
+ ]
23290
+ }
23291
+ )
23292
+ ] })
23293
+ ] })
22329
23294
  ] })
22330
23295
  ] })
22331
- ] })
22332
- ] })
22333
- ] })
23296
+ ]
23297
+ }
23298
+ )
22334
23299
  }
22335
23300
  );
22336
23301
  }
@@ -22774,9 +23739,9 @@ function FeatureStatsHighlight({
22774
23739
  return stats.map((stat, index) => /* @__PURE__ */ jsxs(
22775
23740
  "div",
22776
23741
  {
22777
- className: cn("flex flex-col gap-2 rounded-xl border bg-muted/30 p-6", statCardClassName, stat.className),
23742
+ className: cn("flex flex-col gap-2 rounded-xl border bg-card p-6", statCardClassName, stat.className),
22778
23743
  children: [
22779
- stat.value && /* @__PURE__ */ jsx("span", { className: cn("text-4xl font-bold text-primary lg:text-5xl", stat.valueClassName), children: stat.value }),
23744
+ stat.value && /* @__PURE__ */ jsx("span", { className: cn("text-4xl font-bold lg:text-5xl", stat.valueClassName), children: stat.value }),
22780
23745
  stat.label && /* @__PURE__ */ jsx("span", { className: cn("text-muted-foreground", stat.labelClassName), children: stat.label })
22781
23746
  ]
22782
23747
  },
@@ -34749,7 +35714,10 @@ function BlogHorizontalTimelineComponent({
34749
35714
  /* @__PURE__ */ jsx(
34750
35715
  Card,
34751
35716
  {
34752
- className: cn("w-full border-none shadow-none", postCardClassName),
35717
+ className: cn(
35718
+ "w-full border-none shadow-none pt-0 pb-6 md:pt-6 md:pb-6",
35719
+ postCardClassName
35720
+ ),
34753
35721
  children: /* @__PURE__ */ jsx(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxs(
34754
35722
  "div",
34755
35723
  {
@@ -34764,9 +35732,9 @@ function BlogHorizontalTimelineComponent({
34764
35732
  ] }),
34765
35733
  /* @__PURE__ */ jsxs("div", { className: "flex w-full flex-col items-start gap-4 md:h-full md:justify-between md:gap-6", children: [
34766
35734
  postDescription && /* @__PURE__ */ jsx("p", { className: "text-base leading-relaxed font-normal tracking-tight text-muted-foreground md:text-xl line-clamp-3", children: postDescription }),
34767
- readText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, asButton: true, variant: "link", children: [
35735
+ readText && /* @__PURE__ */ jsxs(Pressable, { href: postHref, asButton: true, variant: "ghost", children: [
34768
35736
  readText,
34769
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 20 })
35737
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 20 })
34770
35738
  ] })
34771
35739
  ] })
34772
35740
  ]
@@ -34807,7 +35775,7 @@ function BlogHorizontalTimelineComponent({
34807
35775
  children: heading
34808
35776
  }
34809
35777
  ) : /* @__PURE__ */ jsx("div", { className: cn("mb-12", headingClassName), children: heading })),
34810
- /* @__PURE__ */ jsx("div", { className: cn("flex flex-col", postsClassName), children: renderPosts })
35778
+ /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-0 md:gap-20", postsClassName), children: renderPosts })
34811
35779
  ] })
34812
35780
  }
34813
35781
  );
@@ -35423,7 +36391,7 @@ function ArticleSidebarStickyComponent({
35423
36391
  children,
35424
36392
  optixFlowConfig,
35425
36393
  background,
35426
- spacing,
36394
+ spacing = "py-6 md:py-32",
35427
36395
  pattern,
35428
36396
  patternOpacity
35429
36397
  }) {
@@ -35434,7 +36402,10 @@ function ArticleSidebarStickyComponent({
35434
36402
  Pressable,
35435
36403
  {
35436
36404
  href: backHref,
35437
- className: cn("inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground", backLinkClassName),
36405
+ className: cn(
36406
+ "inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground",
36407
+ backLinkClassName
36408
+ ),
35438
36409
  children: [
35439
36410
  backIcon ?? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 }),
35440
36411
  backText
@@ -35442,21 +36413,38 @@ function ArticleSidebarStickyComponent({
35442
36413
  }
35443
36414
  );
35444
36415
  }, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
35445
- const renderAuthor = React52.useCallback((isMobile = false) => {
35446
- if (authorSlot) return authorSlot;
35447
- if (!authorName) return null;
35448
- const avatarSize = isMobile ? "h-8 w-8" : "h-10 w-10";
35449
- return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
35450
- /* @__PURE__ */ jsxs(Avatar, { className: avatarSize, children: [
35451
- /* @__PURE__ */ jsx(AvatarImage, { src: authorImage }),
35452
- /* @__PURE__ */ jsx(AvatarFallback, { children: authorName.charAt(0) })
35453
- ] }),
35454
- /* @__PURE__ */ jsxs("div", { children: [
35455
- authorHref ? /* @__PURE__ */ jsx(Pressable, { href: authorHref, className: "text-sm font-medium hover:underline", children: authorName }) : /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: authorName }),
35456
- publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
35457
- ] })
35458
- ] });
35459
- }, [authorSlot, authorName, authorImage, authorHref, publishDate, authorClassName]);
36416
+ const renderAuthor = React52.useCallback(
36417
+ (isMobile = false) => {
36418
+ if (authorSlot) return authorSlot;
36419
+ if (!authorName) return null;
36420
+ const avatarSize = isMobile ? "h-8 w-8" : "h-10 w-10";
36421
+ return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
36422
+ /* @__PURE__ */ jsxs(Avatar, { className: avatarSize, children: [
36423
+ /* @__PURE__ */ jsx(AvatarImage, { src: authorImage }),
36424
+ /* @__PURE__ */ jsx(AvatarFallback, { children: authorName.charAt(0) })
36425
+ ] }),
36426
+ /* @__PURE__ */ jsxs("div", { children: [
36427
+ authorHref ? /* @__PURE__ */ jsx(
36428
+ Pressable,
36429
+ {
36430
+ href: authorHref,
36431
+ className: "text-sm font-medium hover:underline",
36432
+ children: authorName
36433
+ }
36434
+ ) : /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: authorName }),
36435
+ publishDate && /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
36436
+ ] })
36437
+ ] });
36438
+ },
36439
+ [
36440
+ authorSlot,
36441
+ authorName,
36442
+ authorImage,
36443
+ authorHref,
36444
+ publishDate,
36445
+ authorClassName
36446
+ ]
36447
+ );
35460
36448
  const heroMediaContent = React52.useMemo(() => {
35461
36449
  if (heroMediaSlot) return heroMediaSlot;
35462
36450
  if (!heroImageSrc) return null;
@@ -35465,11 +36453,20 @@ function ArticleSidebarStickyComponent({
35465
36453
  {
35466
36454
  src: heroImageSrc,
35467
36455
  alt: heroImageAlt,
35468
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
36456
+ className: cn(
36457
+ "my-8 aspect-video w-full rounded-lg object-cover",
36458
+ heroImageClassName
36459
+ ),
35469
36460
  optixFlowConfig
35470
36461
  }
35471
36462
  );
35472
- }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
36463
+ }, [
36464
+ heroMediaSlot,
36465
+ heroImageSrc,
36466
+ heroImageAlt,
36467
+ heroImageClassName,
36468
+ optixFlowConfig
36469
+ ]);
35473
36470
  return /* @__PURE__ */ jsx(
35474
36471
  Section,
35475
36472
  {
@@ -35483,13 +36480,31 @@ function ArticleSidebarStickyComponent({
35483
36480
  backLinkContent,
35484
36481
  /* @__PURE__ */ jsx("div", { className: "space-y-4", children: renderAuthor(false) })
35485
36482
  ] }) }),
35486
- /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35487
- /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
35488
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
35489
- /* @__PURE__ */ jsx("div", { className: "not-prose mt-4 lg:hidden", children: renderAuthor(true) }),
35490
- heroMediaContent,
35491
- children
35492
- ] })
36483
+ /* @__PURE__ */ jsxs(
36484
+ "article",
36485
+ {
36486
+ className: cn(
36487
+ "prose max-w-none dark:prose-invert",
36488
+ articleClassName
36489
+ ),
36490
+ children: [
36491
+ /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
36492
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
36493
+ "h1",
36494
+ {
36495
+ className: cn(
36496
+ "text-4xl font-bold tracking-tight md:text-5xl",
36497
+ titleClassName
36498
+ ),
36499
+ children: title
36500
+ }
36501
+ ) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
36502
+ /* @__PURE__ */ jsx("div", { className: "not-prose mt-4 lg:hidden", children: renderAuthor(true) }),
36503
+ heroMediaContent,
36504
+ children
36505
+ ]
36506
+ }
36507
+ )
35493
36508
  ] }) })
35494
36509
  }
35495
36510
  );
@@ -35683,7 +36698,6 @@ function ArticleBreadcrumbSocialComponent({
35683
36698
  authorClassName,
35684
36699
  heroImageClassName,
35685
36700
  tocClassName,
35686
- shareClassName,
35687
36701
  breadcrumbs,
35688
36702
  breadcrumbsSlot,
35689
36703
  currentPage,
@@ -35698,9 +36712,6 @@ function ArticleBreadcrumbSocialComponent({
35698
36712
  sections,
35699
36713
  tocSlot,
35700
36714
  renderSectionLink,
35701
- socialLinks: socialLinksProp,
35702
- shareUrls,
35703
- shareSlot,
35704
36715
  heroImageSrc,
35705
36716
  heroImageAlt,
35706
36717
  heroMediaSlot,
@@ -35709,35 +36720,11 @@ function ArticleBreadcrumbSocialComponent({
35709
36720
  enableBackToTop,
35710
36721
  optixFlowConfig,
35711
36722
  background,
35712
- spacing,
36723
+ spacing = "py-6 md:py-32",
35713
36724
  pattern,
35714
36725
  patternOpacity
35715
36726
  }) {
35716
36727
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
35717
- const platformLabels = {
35718
- twitter: "Twitter",
35719
- x: "X",
35720
- facebook: "Facebook",
35721
- linkedin: "LinkedIn",
35722
- instagram: "Instagram",
35723
- github: "GitHub"
35724
- };
35725
- const socialIconMap2 = {
35726
- twitter: "simple-icons/x",
35727
- // Twitter is now X
35728
- x: "simple-icons/x",
35729
- facebook: "simple-icons/facebook",
35730
- linkedin: "simple-icons/linkedin",
35731
- instagram: "simple-icons/instagram",
35732
- github: "simple-icons/github"
35733
- };
35734
- const socialLinks = socialLinksProp ?? (shareUrls ? Object.entries(shareUrls).filter(([, href]) => href).map(([platform, href]) => ({
35735
- platform,
35736
- href,
35737
- icon: /* @__PURE__ */ jsx(DynamicIcon, { name: socialIconMap2[platform] || `simple-icons/${platform}`, size: 16 }),
35738
- "aria-label": `Share on ${platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1)}`,
35739
- className: void 0
35740
- })) : []);
35741
36728
  const [activeSection, setActiveSection] = React52.useState(
35742
36729
  sections?.[0]?.id || ""
35743
36730
  );
@@ -35789,16 +36776,25 @@ function ArticleBreadcrumbSocialComponent({
35789
36776
  const authorContent = React52.useMemo(() => {
35790
36777
  if (authorSlot) return authorSlot;
35791
36778
  if (!author) return null;
35792
- return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4 not-prose", authorClassName), children: [
35793
- /* @__PURE__ */ jsxs(Avatar, { className: "h-12 w-12", children: [
35794
- /* @__PURE__ */ jsx(AvatarImage, { src: author.image }),
35795
- /* @__PURE__ */ jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
35796
- ] }),
35797
- /* @__PURE__ */ jsxs("div", { children: [
35798
- author.name && /* @__PURE__ */ jsx("p", { className: "font-medium", children: author.name }),
35799
- (author.role || publishDate || readTime) && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
35800
- ] })
35801
- ] });
36779
+ return /* @__PURE__ */ jsxs(
36780
+ "div",
36781
+ {
36782
+ className: cn(
36783
+ "mt-6 flex items-center gap-4 not-prose",
36784
+ authorClassName
36785
+ ),
36786
+ children: [
36787
+ /* @__PURE__ */ jsxs(Avatar, { className: "h-12 w-12", children: [
36788
+ /* @__PURE__ */ jsx(AvatarImage, { src: author.image }),
36789
+ /* @__PURE__ */ jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
36790
+ ] }),
36791
+ /* @__PURE__ */ jsxs("div", { children: [
36792
+ author.name && /* @__PURE__ */ jsx("p", { className: "font-medium", children: author.name }),
36793
+ (author.role || publishDate || readTime) && /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
36794
+ ] })
36795
+ ]
36796
+ }
36797
+ );
35802
36798
  }, [authorSlot, author, publishDate, readTime, authorClassName]);
35803
36799
  const heroMediaContent = React52.useMemo(() => {
35804
36800
  if (heroMediaSlot) return heroMediaSlot;
@@ -35808,11 +36804,20 @@ function ArticleBreadcrumbSocialComponent({
35808
36804
  {
35809
36805
  src: heroImageSrc,
35810
36806
  alt: heroImageAlt,
35811
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
36807
+ className: cn(
36808
+ "my-8 aspect-video w-full rounded-lg object-cover",
36809
+ heroImageClassName
36810
+ ),
35812
36811
  optixFlowConfig
35813
36812
  }
35814
36813
  );
35815
- }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
36814
+ }, [
36815
+ heroMediaSlot,
36816
+ heroImageSrc,
36817
+ heroImageAlt,
36818
+ heroImageClassName,
36819
+ optixFlowConfig
36820
+ ]);
35816
36821
  const tocContent = React52.useMemo(() => {
35817
36822
  if (tocSlot) return tocSlot;
35818
36823
  if (!sections || sections.length === 0) return null;
@@ -35838,26 +36843,6 @@ function ArticleBreadcrumbSocialComponent({
35838
36843
  }) })
35839
36844
  ] });
35840
36845
  }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
35841
- const shareButtonsContent = React52.useMemo(() => {
35842
- if (shareSlot) return shareSlot;
35843
- if (!socialLinks || socialLinks.length === 0) return null;
35844
- return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", shareClassName), children: [
35845
- /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-semibold", children: "Share this article" }),
35846
- /* @__PURE__ */ jsx("div", { className: "flex gap-2", children: socialLinks.map((link, index) => /* @__PURE__ */ jsx(
35847
- Pressable,
35848
- {
35849
- href: link.href,
35850
- className: cn(
35851
- "flex h-9 w-9 items-center justify-center rounded-md border hover:bg-muted",
35852
- link.className
35853
- ),
35854
- "aria-label": link["aria-label"],
35855
- children: link.icon
35856
- },
35857
- index
35858
- )) })
35859
- ] });
35860
- }, [shareSlot, socialLinks, shareClassName]);
35861
36846
  return /* @__PURE__ */ jsxs(
35862
36847
  Section,
35863
36848
  {
@@ -35870,18 +36855,32 @@ function ArticleBreadcrumbSocialComponent({
35870
36855
  /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
35871
36856
  breadcrumbsContent,
35872
36857
  /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
35873
- children && /* @__PURE__ */ jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35874
- title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
35875
- authorContent,
35876
- /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
35877
- heroMediaContent,
35878
- children,
35879
- shareButtonsContent && /* @__PURE__ */ jsx("div", { className: "not-prose mt-8 lg:hidden", children: shareButtonsContent })
35880
- ] }),
35881
- /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: "sticky top-8 space-y-6", children: [
35882
- tocContent,
35883
- shareButtonsContent
35884
- ] }) })
36858
+ children && /* @__PURE__ */ jsxs(
36859
+ "article",
36860
+ {
36861
+ className: cn(
36862
+ "prose max-w-none dark:prose-invert",
36863
+ articleClassName
36864
+ ),
36865
+ children: [
36866
+ title && (typeof title === "string" ? /* @__PURE__ */ jsx(
36867
+ "h1",
36868
+ {
36869
+ className: cn(
36870
+ "text-4xl font-bold tracking-tight md:text-5xl",
36871
+ titleClassName
36872
+ ),
36873
+ children: title
36874
+ }
36875
+ ) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
36876
+ authorContent,
36877
+ /* @__PURE__ */ jsx(Separator, { className: "my-8" }),
36878
+ heroMediaContent,
36879
+ children
36880
+ ]
36881
+ }
36882
+ ),
36883
+ /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsx("div", { className: "sticky top-8 space-y-6", children: tocContent }) })
35885
36884
  ] })
35886
36885
  ] }),
35887
36886
  enableBackToTop && showBackToTop && /* @__PURE__ */ jsx(
@@ -35958,7 +36957,7 @@ function ArticleCompactTocComponent({
35958
36957
  enableTocTracking = true,
35959
36958
  optixFlowConfig,
35960
36959
  background,
35961
- spacing,
36960
+ spacing = "py-6 md:py-32",
35962
36961
  pattern,
35963
36962
  patternOpacity
35964
36963
  }) {