@opensite/ui 0.8.4 → 0.8.6

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 (107) 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-badge-support.cjs +18 -5
  12. package/dist/faq-badge-support.js +18 -5
  13. package/dist/faq-bordered-badge.cjs +23 -7
  14. package/dist/faq-bordered-badge.js +23 -7
  15. package/dist/faq-card-categories.cjs +20 -4
  16. package/dist/faq-card-categories.js +20 -4
  17. package/dist/faq-categorized-sections.cjs +19 -4
  18. package/dist/faq-categorized-sections.js +19 -4
  19. package/dist/faq-centered-accordion.cjs +18 -5
  20. package/dist/faq-centered-accordion.js +18 -5
  21. package/dist/faq-gradient-categories.cjs +19 -4
  22. package/dist/faq-gradient-categories.js +19 -4
  23. package/dist/faq-icon-benefits.cjs +11 -2
  24. package/dist/faq-icon-benefits.js +11 -2
  25. package/dist/faq-muted-cards.cjs +19 -6
  26. package/dist/faq-muted-cards.js +19 -6
  27. package/dist/faq-numbered-grid.cjs +11 -3
  28. package/dist/faq-numbered-grid.js +11 -3
  29. package/dist/faq-numbered-list.cjs +11 -3
  30. package/dist/faq-numbered-list.js +11 -3
  31. package/dist/faq-profile-sidebar.cjs +57 -20
  32. package/dist/faq-profile-sidebar.js +57 -20
  33. package/dist/faq-rounded-cards.cjs +26 -19
  34. package/dist/faq-rounded-cards.js +26 -19
  35. package/dist/faq-sidebar-navigation.cjs +48 -28
  36. package/dist/faq-sidebar-navigation.js +48 -28
  37. package/dist/faq-simple-accordion.cjs +17 -4
  38. package/dist/faq-simple-accordion.js +17 -4
  39. package/dist/faq-split-help.cjs +25 -6
  40. package/dist/faq-split-help.js +25 -6
  41. package/dist/faq-split-hero.cjs +604 -0
  42. package/dist/faq-split-hero.d.cts +116 -0
  43. package/dist/faq-split-hero.d.ts +116 -0
  44. package/dist/faq-split-hero.js +582 -0
  45. package/dist/faq-static-list.cjs +9 -2
  46. package/dist/faq-static-list.js +9 -2
  47. package/dist/feature-accordion-image.cjs +8 -2
  48. package/dist/feature-accordion-image.js +8 -2
  49. package/dist/feature-badge-grid-six.cjs +1 -1
  50. package/dist/feature-badge-grid-six.js +1 -1
  51. package/dist/feature-card-grid-linked.cjs +92 -22
  52. package/dist/feature-card-grid-linked.js +92 -22
  53. package/dist/feature-carousel-progress.cjs +1 -1
  54. package/dist/feature-carousel-progress.js +1 -1
  55. package/dist/feature-checklist-image.cjs +88 -15
  56. package/dist/feature-checklist-image.js +88 -15
  57. package/dist/feature-checklist-three-column.cjs +1 -1
  58. package/dist/feature-checklist-three-column.js +1 -1
  59. package/dist/feature-icon-grid-accent.cjs +50 -8
  60. package/dist/feature-icon-grid-accent.js +50 -8
  61. package/dist/feature-icon-grid-bordered.cjs +84 -14
  62. package/dist/feature-icon-grid-bordered.js +84 -14
  63. package/dist/feature-icon-tabs-content.cjs +217 -84
  64. package/dist/feature-icon-tabs-content.js +217 -84
  65. package/dist/feature-image-overlay-badge.cjs +106 -33
  66. package/dist/feature-image-overlay-badge.js +106 -33
  67. package/dist/feature-numbered-cards.cjs +154 -35
  68. package/dist/feature-numbered-cards.js +154 -35
  69. package/dist/feature-showcase.cjs +66 -71
  70. package/dist/feature-showcase.d.cts +1 -5
  71. package/dist/feature-showcase.d.ts +1 -5
  72. package/dist/feature-showcase.js +67 -72
  73. package/dist/feature-split-image-reverse.cjs +84 -15
  74. package/dist/feature-split-image-reverse.js +84 -15
  75. package/dist/feature-split-image.cjs +87 -15
  76. package/dist/feature-split-image.js +87 -15
  77. package/dist/feature-stats-highlight.cjs +50 -13
  78. package/dist/feature-stats-highlight.js +50 -13
  79. package/dist/feature-tabbed-content-image.cjs +198 -72
  80. package/dist/feature-tabbed-content-image.js +198 -72
  81. package/dist/feature-three-column-values.cjs +67 -14
  82. package/dist/feature-three-column-values.js +67 -14
  83. package/dist/feature-utility-cards-grid.cjs +83 -36
  84. package/dist/feature-utility-cards-grid.js +83 -36
  85. package/dist/navbar-animated-preview.cjs +8 -2
  86. package/dist/navbar-animated-preview.js +8 -2
  87. package/dist/navbar-centered-menu.cjs +8 -2
  88. package/dist/navbar-centered-menu.js +8 -2
  89. package/dist/navbar-dark-icons.cjs +8 -2
  90. package/dist/navbar-dark-icons.js +8 -2
  91. package/dist/navbar-dropdown-menu.cjs +8 -2
  92. package/dist/navbar-dropdown-menu.js +8 -2
  93. package/dist/navbar-education-platform.cjs +8 -2
  94. package/dist/navbar-education-platform.js +8 -2
  95. package/dist/navbar-enterprise-mega.cjs +8 -2
  96. package/dist/navbar-enterprise-mega.js +8 -2
  97. package/dist/navbar-feature-grid.cjs +8 -2
  98. package/dist/navbar-feature-grid.js +8 -2
  99. package/dist/navbar-multi-column-groups.cjs +8 -2
  100. package/dist/navbar-multi-column-groups.js +8 -2
  101. package/dist/navbar-platform-resources.cjs +8 -2
  102. package/dist/navbar-platform-resources.js +8 -2
  103. package/dist/navbar-sidebar-mobile.cjs +8 -2
  104. package/dist/navbar-sidebar-mobile.js +8 -2
  105. package/dist/registry.cjs +1873 -680
  106. package/dist/registry.js +1873 -680
  107. package/package.json +1 -1
package/dist/registry.cjs CHANGED
@@ -20331,7 +20331,6 @@ function FeatureShowcase({
20331
20331
  slideClassName,
20332
20332
  contentClassName,
20333
20333
  mediaClassName,
20334
- arrowClassName,
20335
20334
  equalizeOnMobile,
20336
20335
  stretchMediaOnMobile,
20337
20336
  background,
@@ -20340,10 +20339,21 @@ function FeatureShowcase({
20340
20339
  patternOpacity,
20341
20340
  patternClassName
20342
20341
  }) {
20343
- const baseArrowClassName = React52.useMemo(
20344
- () => "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",
20345
- []
20346
- );
20342
+ const [api, setApi] = React52__namespace.useState();
20343
+ const [canScrollPrevious, setCanScrollPrevious] = React52__namespace.useState(false);
20344
+ const [canScrollNext, setCanScrollNext] = React52__namespace.useState(false);
20345
+ React52__namespace.useEffect(() => {
20346
+ if (!api) return;
20347
+ const updateScrollState = () => {
20348
+ setCanScrollPrevious(api.canScrollPrev());
20349
+ setCanScrollNext(api.canScrollNext());
20350
+ };
20351
+ updateScrollState();
20352
+ api.on("select", updateScrollState);
20353
+ return () => {
20354
+ api.off("select", updateScrollState);
20355
+ };
20356
+ }, [api]);
20347
20357
  const [mobileSlideHeight, setMobileSlideHeight] = React52.useState(
20348
20358
  null
20349
20359
  );
@@ -20386,7 +20396,7 @@ function FeatureShowcase({
20386
20396
  }, [equalizeOnMobile, items]);
20387
20397
  const carouselContent = React52.useMemo(() => {
20388
20398
  if (!items || items.length === 0) return null;
20389
- return /* @__PURE__ */ jsxRuntime.jsxs(Carousel, { className: carouselClassName, children: [
20399
+ return /* @__PURE__ */ jsxRuntime.jsxs(Carousel, { className: carouselClassName, setApi, children: [
20390
20400
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pb-18 md:pb-24", children: /* @__PURE__ */ jsxRuntime.jsx(CarouselContent, { className: "ease-in", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { children: /* @__PURE__ */ jsxRuntime.jsxs(
20391
20401
  "div",
20392
20402
  {
@@ -20415,15 +20425,13 @@ function FeatureShowcase({
20415
20425
  }
20416
20426
  ) }, `slide-${itemIndex}`)) }) }),
20417
20427
  /* @__PURE__ */ jsxRuntime.jsx(
20418
- CarouselPrevious,
20419
- {
20420
- className: cn(baseArrowClassName, "right-16", arrowClassName)
20421
- }
20422
- ),
20423
- /* @__PURE__ */ jsxRuntime.jsx(
20424
- CarouselNext,
20428
+ CarouselPagination,
20425
20429
  {
20426
- className: cn(baseArrowClassName, "right-0", arrowClassName)
20430
+ onPrevious: () => api?.scrollPrev(),
20431
+ onNext: () => api?.scrollNext(),
20432
+ canScrollPrevious,
20433
+ canScrollNext,
20434
+ className: "absolute bottom-4 right-0 md:bottom-6"
20427
20435
  }
20428
20436
  )
20429
20437
  ] });
@@ -20436,8 +20444,9 @@ function FeatureShowcase({
20436
20444
  contentClassName,
20437
20445
  mediaWrapperClassName,
20438
20446
  mediaClassName,
20439
- baseArrowClassName,
20440
- arrowClassName
20447
+ api,
20448
+ canScrollPrevious,
20449
+ canScrollNext
20441
20450
  ]);
20442
20451
  return /* @__PURE__ */ jsxRuntime.jsxs(
20443
20452
  Section,
@@ -20473,7 +20482,7 @@ function FeatureSplitImage({
20473
20482
  imageClassName,
20474
20483
  optixFlowConfig,
20475
20484
  background,
20476
- spacing,
20485
+ spacing = "py-6 md:py-32",
20477
20486
  pattern,
20478
20487
  patternOpacity,
20479
20488
  patternClassName
@@ -20490,11 +20499,20 @@ function FeatureSplitImage({
20490
20499
  className: actionClassName,
20491
20500
  ...pressableProps
20492
20501
  } = action;
20493
- return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { className: actionClassName, asButton: true, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20494
- icon,
20495
- label,
20496
- iconAfter
20497
- ] }) }, index);
20502
+ return /* @__PURE__ */ jsxRuntime.jsx(
20503
+ Pressable,
20504
+ {
20505
+ className: actionClassName,
20506
+ asButton: true,
20507
+ ...pressableProps,
20508
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20509
+ icon,
20510
+ label,
20511
+ iconAfter
20512
+ ] })
20513
+ },
20514
+ index
20515
+ );
20498
20516
  });
20499
20517
  }, [actionsSlot, actions]);
20500
20518
  const imageContent = React52.useMemo(() => {
@@ -20505,7 +20523,10 @@ function FeatureSplitImage({
20505
20523
  {
20506
20524
  src: imageSrc,
20507
20525
  alt: imageAlt || "",
20508
- className: cn("max-h-96 w-full rounded-md object-cover", imageClassName),
20526
+ className: cn(
20527
+ "max-h-96 w-full rounded-md object-cover",
20528
+ imageClassName
20529
+ ),
20509
20530
  loading: "lazy",
20510
20531
  optixFlowConfig
20511
20532
  }
@@ -20521,14 +20542,74 @@ function FeatureSplitImage({
20521
20542
  patternClassName,
20522
20543
  className,
20523
20544
  containerClassName,
20524
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid items-center gap-8 lg:grid-cols-2", gridClassName), children: [
20525
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center text-center lg:items-start lg:text-left", contentClassName), children: [
20526
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title })),
20527
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
20528
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", actionsClassName), children: actionsContent })
20529
- ] }),
20530
- imageContent
20531
- ] })
20545
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
20546
+ "div",
20547
+ {
20548
+ className: cn("grid items-center gap-8 lg:grid-cols-2", gridClassName),
20549
+ children: [
20550
+ /* @__PURE__ */ jsxRuntime.jsxs(
20551
+ "div",
20552
+ {
20553
+ className: cn(
20554
+ "flex flex-col items-center text-center lg:items-start lg:text-left",
20555
+ contentClassName
20556
+ ),
20557
+ children: [
20558
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20559
+ "h2",
20560
+ {
20561
+ className: cn(
20562
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20563
+ titleClassName
20564
+ ),
20565
+ children: title
20566
+ }
20567
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20568
+ "div",
20569
+ {
20570
+ className: cn(
20571
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20572
+ titleClassName
20573
+ ),
20574
+ children: title
20575
+ }
20576
+ )),
20577
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20578
+ "p",
20579
+ {
20580
+ className: cn(
20581
+ "mb-8 max-w-xl lg:text-lg",
20582
+ descriptionClassName
20583
+ ),
20584
+ children: description
20585
+ }
20586
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20587
+ "div",
20588
+ {
20589
+ className: cn(
20590
+ "mb-8 max-w-xl lg:text-lg",
20591
+ descriptionClassName
20592
+ ),
20593
+ children: description
20594
+ }
20595
+ )),
20596
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
20597
+ "div",
20598
+ {
20599
+ className: cn(
20600
+ "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start",
20601
+ actionsClassName
20602
+ ),
20603
+ children: actionsContent
20604
+ }
20605
+ )
20606
+ ]
20607
+ }
20608
+ ),
20609
+ imageContent
20610
+ ]
20611
+ }
20612
+ )
20532
20613
  }
20533
20614
  );
20534
20615
  }
@@ -20550,7 +20631,7 @@ function FeatureSplitImageReverse({
20550
20631
  actionsClassName,
20551
20632
  optixFlowConfig,
20552
20633
  background,
20553
- spacing,
20634
+ spacing = "py-6 md:py-32",
20554
20635
  pattern,
20555
20636
  patternOpacity,
20556
20637
  patternClassName
@@ -20567,11 +20648,20 @@ function FeatureSplitImageReverse({
20567
20648
  className: actionClassName,
20568
20649
  ...pressableProps
20569
20650
  } = action;
20570
- return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { className: actionClassName, asButton: true, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20571
- icon,
20572
- label,
20573
- iconAfter
20574
- ] }) }, index);
20651
+ return /* @__PURE__ */ jsxRuntime.jsx(
20652
+ Pressable,
20653
+ {
20654
+ className: actionClassName,
20655
+ asButton: true,
20656
+ ...pressableProps,
20657
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
20658
+ icon,
20659
+ label,
20660
+ iconAfter
20661
+ ] })
20662
+ },
20663
+ index
20664
+ );
20575
20665
  });
20576
20666
  }, [actionsSlot, actions]);
20577
20667
  const imageContent = React52.useMemo(() => {
@@ -20582,7 +20672,10 @@ function FeatureSplitImageReverse({
20582
20672
  {
20583
20673
  src: imageSrc,
20584
20674
  alt: imageAlt || "",
20585
- className: cn("max-h-96 w-full rounded-md object-cover", imageClassName),
20675
+ className: cn(
20676
+ "max-h-96 w-full rounded-md object-cover",
20677
+ imageClassName
20678
+ ),
20586
20679
  loading: "lazy",
20587
20680
  optixFlowConfig
20588
20681
  }
@@ -20598,14 +20691,71 @@ function FeatureSplitImageReverse({
20598
20691
  patternClassName,
20599
20692
  className,
20600
20693
  containerClassName,
20601
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid items-center gap-8 md:gap-16 lg:grid-cols-2", gridClassName), children: [
20602
- imageContent,
20603
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center text-center lg:items-start lg:text-left", contentClassName), children: [
20604
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl", titleClassName), children: title })),
20605
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
20606
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", actionsClassName), children: actionsContent })
20607
- ] })
20608
- ] })
20694
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
20695
+ "div",
20696
+ {
20697
+ className: cn(
20698
+ "grid items-center gap-8 md:gap-16 lg:grid-cols-2",
20699
+ gridClassName
20700
+ ),
20701
+ children: [
20702
+ imageContent,
20703
+ /* @__PURE__ */ jsxRuntime.jsxs(
20704
+ "div",
20705
+ {
20706
+ className: cn(
20707
+ "flex flex-col items-center text-center lg:items-start lg:text-left",
20708
+ contentClassName
20709
+ ),
20710
+ children: [
20711
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20712
+ "h2",
20713
+ {
20714
+ className: cn(
20715
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20716
+ titleClassName
20717
+ ),
20718
+ children: title
20719
+ }
20720
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20721
+ "div",
20722
+ {
20723
+ className: cn(
20724
+ "my-6 mt-0 text-4xl font-semibold text-balance lg:text-5xl",
20725
+ titleClassName
20726
+ ),
20727
+ children: title
20728
+ }
20729
+ )),
20730
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20731
+ "p",
20732
+ {
20733
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
20734
+ children: description
20735
+ }
20736
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20737
+ "div",
20738
+ {
20739
+ className: cn("mb-8 max-w-xl lg:text-lg", descriptionClassName),
20740
+ children: description
20741
+ }
20742
+ )),
20743
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
20744
+ "div",
20745
+ {
20746
+ className: cn(
20747
+ "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start",
20748
+ actionsClassName
20749
+ ),
20750
+ children: actionsContent
20751
+ }
20752
+ )
20753
+ ]
20754
+ }
20755
+ )
20756
+ ]
20757
+ }
20758
+ )
20609
20759
  }
20610
20760
  );
20611
20761
  }
@@ -20621,7 +20771,7 @@ function FeatureIconGridBordered({
20621
20771
  gridClassName,
20622
20772
  cardClassName,
20623
20773
  background,
20624
- spacing,
20774
+ spacing = "py-6 md:py-32",
20625
20775
  pattern,
20626
20776
  patternOpacity,
20627
20777
  patternClassName
@@ -20639,18 +20789,67 @@ function FeatureIconGridBordered({
20639
20789
  return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
20640
20790
  "div",
20641
20791
  {
20642
- className: cn("relative flex gap-3 rounded-lg border-dashed md:block md:border-l md:p-5", cardClassName, feature.className),
20792
+ className: cn(
20793
+ "relative flex gap-3 rounded-lg border-dashed md:block md:border-l md:p-5",
20794
+ cardClassName,
20795
+ feature.className
20796
+ ),
20643
20797
  children: [
20644
- (feature.icon || feature.iconName) && /* @__PURE__ */ jsxRuntime.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) }),
20798
+ (feature.icon || feature.iconName) && /* @__PURE__ */ jsxRuntime.jsx(
20799
+ "span",
20800
+ {
20801
+ className: cn(
20802
+ "mb-8 flex size-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground md:size-12",
20803
+ feature.iconClassName
20804
+ ),
20805
+ children: renderIcon(feature)
20806
+ }
20807
+ ),
20645
20808
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
20646
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("h3", { className: cn("font-medium md:mb-2 md:text-xl", feature.titleClassName), children: [
20647
- feature.title,
20648
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20649
- ] }) : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("font-medium md:mb-2 md:text-xl", feature.titleClassName), children: [
20650
- feature.title,
20651
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20652
- ] })),
20653
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }))
20809
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
20810
+ "h3",
20811
+ {
20812
+ className: cn(
20813
+ "font-medium md:mb-2 md:text-xl",
20814
+ feature.titleClassName
20815
+ ),
20816
+ children: [
20817
+ feature.title,
20818
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20819
+ ]
20820
+ }
20821
+ ) : /* @__PURE__ */ jsxRuntime.jsxs(
20822
+ "div",
20823
+ {
20824
+ className: cn(
20825
+ "font-medium md:mb-2 md:text-xl",
20826
+ feature.titleClassName
20827
+ ),
20828
+ children: [
20829
+ feature.title,
20830
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "absolute -left-px hidden h-6 w-px bg-primary md:inline-block" })
20831
+ ]
20832
+ }
20833
+ )),
20834
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20835
+ "p",
20836
+ {
20837
+ className: cn(
20838
+ "text-sm md:text-base",
20839
+ feature.descriptionClassName
20840
+ ),
20841
+ children: feature.description
20842
+ }
20843
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20844
+ "div",
20845
+ {
20846
+ className: cn(
20847
+ "text-sm md:text-base",
20848
+ feature.descriptionClassName
20849
+ ),
20850
+ children: feature.description
20851
+ }
20852
+ ))
20654
20853
  ] })
20655
20854
  ]
20656
20855
  },
@@ -20668,9 +20867,30 @@ function FeatureIconGridBordered({
20668
20867
  className,
20669
20868
  containerClassName,
20670
20869
  children: [
20671
- label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-xs text-muted-foreground", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-xs text-muted-foreground", labelClassName), children: label })),
20672
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title })),
20673
- (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-14 grid gap-6 md:grid-cols-2 lg:mt-20 lg:grid-cols-4", gridClassName), children: featuresContent })
20870
+ label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-xs ", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-xs ", labelClassName), children: label })),
20871
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
20872
+ "h2",
20873
+ {
20874
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
20875
+ children: title
20876
+ }
20877
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
20878
+ "div",
20879
+ {
20880
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
20881
+ children: title
20882
+ }
20883
+ )),
20884
+ (featuresSlot || features && features.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
20885
+ "div",
20886
+ {
20887
+ className: cn(
20888
+ "mt-14 grid gap-6 md:grid-cols-2 lg:mt-20 lg:grid-cols-4",
20889
+ gridClassName
20890
+ ),
20891
+ children: featuresContent
20892
+ }
20893
+ )
20674
20894
  ]
20675
20895
  }
20676
20896
  );
@@ -20696,7 +20916,7 @@ function FeatureChecklistImage({
20696
20916
  checklistClassName,
20697
20917
  optixFlowConfig,
20698
20918
  background,
20699
- spacing,
20919
+ spacing = "py-6 md:py-32",
20700
20920
  pattern,
20701
20921
  patternOpacity,
20702
20922
  patternClassName
@@ -20749,7 +20969,10 @@ function FeatureChecklistImage({
20749
20969
  {
20750
20970
  src: imageSrc,
20751
20971
  alt: imageAlt || "Feature illustration",
20752
- className: cn("max-h-96 w-full rounded-lg object-cover md:max-h-[500px] md:w-1/2", imageClassName),
20972
+ className: cn(
20973
+ "max-h-96 w-full rounded-lg object-cover md:max-h-[500px] md:w-1/2",
20974
+ imageClassName
20975
+ ),
20753
20976
  loading: "lazy",
20754
20977
  optixFlowConfig
20755
20978
  }
@@ -20763,31 +20986,101 @@ function FeatureChecklistImage({
20763
20986
  const content = isString ? item : item.content;
20764
20987
  const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 16 }) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 16 }) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 16 }));
20765
20988
  const itemClassName = isString ? void 0 : item.className;
20766
- return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex items-center gap-3", itemClassName), children: [
20767
- iconElement,
20768
- content
20769
- ] }, index);
20770
- });
20771
- }, [checklistSlot, checklistItems]);
20772
- return /* @__PURE__ */ jsxRuntime.jsx(
20773
- Section,
20774
- {
20775
- background,
20776
- spacing,
20989
+ return /* @__PURE__ */ jsxRuntime.jsxs(
20990
+ "li",
20991
+ {
20992
+ className: cn("flex items-center gap-3", itemClassName),
20993
+ children: [
20994
+ iconElement,
20995
+ content
20996
+ ]
20997
+ },
20998
+ index
20999
+ );
21000
+ });
21001
+ }, [checklistSlot, checklistItems]);
21002
+ return /* @__PURE__ */ jsxRuntime.jsx(
21003
+ Section,
21004
+ {
21005
+ background,
21006
+ spacing,
20777
21007
  pattern,
20778
21008
  patternOpacity,
20779
21009
  patternClassName,
20780
21010
  className,
20781
21011
  containerClassName: cn("max-w-6xl", containerClassName),
20782
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-12 md:flex-row", contentWrapperClassName), children: [
20783
- imageContent,
20784
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:p-10", contentClassName), children: [
20785
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-medium text-balance md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-medium text-balance md:text-5xl", titleClassName), children: title })),
20786
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-1 text-muted-foreground md:mt-6", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-1 text-muted-foreground md:mt-6", descriptionClassName), children: description })),
20787
- actionsContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent }),
20788
- checklistContent && /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("mt-10 flex-wrap items-center gap-6 space-y-6 md:flex md:space-y-0", checklistClassName), children: checklistContent })
20789
- ] })
20790
- ] })
21012
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
21013
+ "div",
21014
+ {
21015
+ className: cn(
21016
+ "flex flex-col gap-12 md:flex-row",
21017
+ contentWrapperClassName
21018
+ ),
21019
+ children: [
21020
+ imageContent,
21021
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:p-10", contentClassName), children: [
21022
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21023
+ "h2",
21024
+ {
21025
+ className: cn(
21026
+ "text-3xl font-medium text-balance md:text-5xl",
21027
+ titleClassName
21028
+ ),
21029
+ children: title
21030
+ }
21031
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21032
+ "div",
21033
+ {
21034
+ className: cn(
21035
+ "text-3xl font-medium text-balance md:text-5xl",
21036
+ titleClassName
21037
+ ),
21038
+ children: title
21039
+ }
21040
+ )),
21041
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21042
+ "p",
21043
+ {
21044
+ className: cn(
21045
+ "mt-1 text-muted-foreground md:mt-6",
21046
+ descriptionClassName
21047
+ ),
21048
+ children: description
21049
+ }
21050
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21051
+ "div",
21052
+ {
21053
+ className: cn(
21054
+ "mt-1 text-muted-foreground md:mt-6",
21055
+ descriptionClassName
21056
+ ),
21057
+ children: description
21058
+ }
21059
+ )),
21060
+ actionsContent && /* @__PURE__ */ jsxRuntime.jsx(
21061
+ "div",
21062
+ {
21063
+ className: cn(
21064
+ "flex flex-wrap items-center gap-2",
21065
+ actionsClassName
21066
+ ),
21067
+ children: actionsContent
21068
+ }
21069
+ ),
21070
+ checklistContent && /* @__PURE__ */ jsxRuntime.jsx(
21071
+ "ul",
21072
+ {
21073
+ className: cn(
21074
+ "mt-10 flex-wrap items-center gap-6 space-y-6 md:flex md:space-y-0",
21075
+ checklistClassName
21076
+ ),
21077
+ children: checklistContent
21078
+ }
21079
+ )
21080
+ ] })
21081
+ ]
21082
+ }
21083
+ )
20791
21084
  }
20792
21085
  );
20793
21086
  }
@@ -20863,7 +21156,7 @@ function FeatureCarouselProgress({
20863
21156
  {
20864
21157
  className: "basis-full md:basis-1/2 lg:basis-1/3",
20865
21158
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-1", children: /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn(cardClassName, slide.className), children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "flex flex-col justify-center p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
20866
- (slide.icon || slide.iconName) && /* @__PURE__ */ jsxRuntime.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) }),
21159
+ (slide.icon || slide.iconName) && /* @__PURE__ */ jsxRuntime.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) }),
20867
21160
  slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title })),
20868
21161
  slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("pt-2 text-muted-foreground", slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pt-2 text-muted-foreground", slide.descriptionClassName), children: slide.description }))
20869
21162
  ] }) }) }) })
@@ -20920,27 +21213,30 @@ function FeatureCardGridLinked({
20920
21213
  cardClassName,
20921
21214
  optixFlowConfig,
20922
21215
  background,
20923
- spacing,
21216
+ spacing = "py-6 md:py-32",
20924
21217
  pattern,
20925
21218
  patternOpacity,
20926
21219
  patternClassName
20927
21220
  }) {
20928
- const renderImage = React52.useCallback((feature, imageAlt) => {
20929
- if (feature.imageSlot) return feature.imageSlot;
20930
- if (feature.image) {
20931
- return /* @__PURE__ */ jsxRuntime.jsx(
20932
- img.Img,
20933
- {
20934
- src: feature.image,
20935
- alt: imageAlt,
20936
- className: "h-full w-full rounded-t-lg object-cover transition-opacity hover:opacity-80",
20937
- loading: "lazy",
20938
- optixFlowConfig
20939
- }
20940
- );
20941
- }
20942
- return null;
20943
- }, [optixFlowConfig]);
21221
+ const renderImage = React52.useCallback(
21222
+ (feature, imageAlt) => {
21223
+ if (feature.imageSlot) return feature.imageSlot;
21224
+ if (feature.image) {
21225
+ return /* @__PURE__ */ jsxRuntime.jsx(
21226
+ img.Img,
21227
+ {
21228
+ src: feature.image,
21229
+ alt: imageAlt,
21230
+ className: "h-full w-full rounded-t-lg object-cover transition-opacity hover:opacity-80",
21231
+ loading: "lazy",
21232
+ optixFlowConfig
21233
+ }
21234
+ );
21235
+ }
21236
+ return null;
21237
+ },
21238
+ [optixFlowConfig]
21239
+ );
20944
21240
  const featuresContent = React52.useMemo(() => {
20945
21241
  if (featuresSlot) return featuresSlot;
20946
21242
  if (!features || features.length === 0) return null;
@@ -20950,16 +21246,56 @@ function FeatureCardGridLinked({
20950
21246
  return /* @__PURE__ */ jsxRuntime.jsxs(
20951
21247
  "div",
20952
21248
  {
20953
- className: cn("flex flex-col justify-between rounded-lg bg-muted", cardClassName, feature.className),
21249
+ className: cn(
21250
+ "flex flex-col justify-between rounded-lg bg-muted border",
21251
+ cardClassName,
21252
+ feature.className
21253
+ ),
20954
21254
  children: [
20955
21255
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex justify-between gap-10 border-b", children: [
20956
21256
  /* @__PURE__ */ jsxRuntime.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: [
20957
- feature.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-mono text-xs text-muted-foreground", feature.labelClassName), children: feature.label }),
20958
- feature.heading && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: feature.url, children: typeof feature.heading === "string" ? /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.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 }) })
21257
+ feature.label && /* @__PURE__ */ jsxRuntime.jsx(
21258
+ "span",
21259
+ {
21260
+ className: cn(
21261
+ "font-bold text-xs uppercase opacity-75",
21262
+ feature.labelClassName
21263
+ ),
21264
+ children: feature.label
21265
+ }
21266
+ ),
21267
+ feature.heading && /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: feature.url, children: typeof feature.heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21268
+ "h3",
21269
+ {
21270
+ className: cn(
21271
+ "text-xl transition-all hover:opacity-80 md:text-2xl font-semibold leading-snug tracking-tighter",
21272
+ feature.headingClassName
21273
+ ),
21274
+ children: feature.heading
21275
+ }
21276
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21277
+ "div",
21278
+ {
21279
+ className: cn(
21280
+ "text-xl transition-all hover:opacity-80 md:text-2xl font-semibold leading-snug tracking-tighter",
21281
+ feature.headingClassName
21282
+ ),
21283
+ children: feature.heading
21284
+ }
21285
+ ) })
20959
21286
  ] }),
20960
21287
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:1/3 w-2/5 shrink-0 rounded-r-lg border-l", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: feature.url, children: renderImage(feature, imageAlt) }) })
20961
21288
  ] }),
20962
- feature.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("p-4 text-muted-foreground md:p-8", feature.descriptionClassName), children: feature.description })
21289
+ feature.description && /* @__PURE__ */ jsxRuntime.jsx(
21290
+ "p",
21291
+ {
21292
+ className: cn(
21293
+ "p-4 text-muted-foreground md:p-8",
21294
+ feature.descriptionClassName
21295
+ ),
21296
+ children: feature.description
21297
+ }
21298
+ )
20963
21299
  ]
20964
21300
  },
20965
21301
  featureKey
@@ -20977,7 +21313,34 @@ function FeatureCardGridLinked({
20977
21313
  className,
20978
21314
  containerClassName,
20979
21315
  children: [
20980
- title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mb-16 max-w-3xl text-center", titleWrapperClassName), children: typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl font-medium text-pretty lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-4xl font-medium text-pretty lg:text-5xl", titleClassName), children: title }) }),
21316
+ title && /* @__PURE__ */ jsxRuntime.jsx(
21317
+ "div",
21318
+ {
21319
+ className: cn(
21320
+ "mx-auto mb-16 max-w-3xl text-center",
21321
+ titleWrapperClassName
21322
+ ),
21323
+ children: typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21324
+ "h2",
21325
+ {
21326
+ className: cn(
21327
+ "text-4xl font-medium text-pretty lg:text-5xl",
21328
+ titleClassName
21329
+ ),
21330
+ children: title
21331
+ }
21332
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21333
+ "div",
21334
+ {
21335
+ className: cn(
21336
+ "text-4xl font-medium text-pretty lg:text-5xl",
21337
+ titleClassName
21338
+ ),
21339
+ children: title
21340
+ }
21341
+ )
21342
+ }
21343
+ ),
20981
21344
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-8 lg:grid-cols-2", gridClassName), children: featuresContent })
20982
21345
  ]
20983
21346
  }
@@ -21001,27 +21364,45 @@ function FeatureNumberedCards({
21001
21364
  patternOpacity,
21002
21365
  patternClassName
21003
21366
  }) {
21004
- const renderChecklistItems = React52.useCallback((feature) => {
21005
- if (feature.checklistSlot) return feature.checklistSlot;
21006
- if (!feature.checklistItems || feature.checklistItems.length === 0) return null;
21007
- return feature.checklistItems.map((item, itemIndex) => {
21008
- const isString = typeof item === "string";
21009
- const content = isString ? item : item.content;
21010
- const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(
21011
- DynamicIcon,
21012
- {
21013
- name: "lucide/check-circle",
21014
- size: 16,
21015
- className: "mt-0.5 shrink-0 sm:mt-1"
21016
- }
21017
- ) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 16, className: "mt-0.5 shrink-0 sm:mt-1" }) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle", size: 16, className: "mt-0.5 shrink-0 sm:mt-1" }));
21018
- const itemClassName = isString ? void 0 : item.className;
21019
- return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
21020
- iconElement,
21021
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm md:text-base", children: content })
21022
- ] }, itemIndex);
21023
- });
21024
- }, []);
21367
+ const renderChecklistItems = React52.useCallback(
21368
+ (feature) => {
21369
+ if (feature.checklistSlot) return feature.checklistSlot;
21370
+ if (!feature.checklistItems || feature.checklistItems.length === 0)
21371
+ return null;
21372
+ return feature.checklistItems.map((item, itemIndex) => {
21373
+ const isString = typeof item === "string";
21374
+ const content = isString ? item : item.content;
21375
+ const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(
21376
+ DynamicIcon,
21377
+ {
21378
+ name: "lucide/check-circle",
21379
+ size: 16,
21380
+ className: "mt-0.5 shrink-0 sm:mt-1"
21381
+ }
21382
+ ) : item.icon ?? (item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
21383
+ DynamicIcon,
21384
+ {
21385
+ name: item.iconName,
21386
+ size: 16,
21387
+ className: "mt-0.5 shrink-0 sm:mt-1"
21388
+ }
21389
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21390
+ DynamicIcon,
21391
+ {
21392
+ name: "lucide/check-circle",
21393
+ size: 16,
21394
+ className: "mt-0.5 shrink-0 sm:mt-1"
21395
+ }
21396
+ ));
21397
+ const itemClassName = isString ? void 0 : item.className;
21398
+ return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex gap-x-3", itemClassName), children: [
21399
+ iconElement,
21400
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm md:text-base", children: content })
21401
+ ] }, itemIndex);
21402
+ });
21403
+ },
21404
+ []
21405
+ );
21025
21406
  const featuresContent = React52.useMemo(() => {
21026
21407
  if (featuresSlot) return featuresSlot;
21027
21408
  if (!features || features.length === 0) return null;
@@ -21035,7 +21416,7 @@ function FeatureNumberedCards({
21035
21416
  {
21036
21417
  src: feature.image,
21037
21418
  alt: imageAlt,
21038
- className: "h-full w-full object-cover",
21419
+ className: "h-full w-full object-cover rounded-tr-lg rounded-tl-lg md:rounded-tl-0 rounded-br-0 md:rounded-br-lg",
21039
21420
  loading: "lazy",
21040
21421
  optixFlowConfig
21041
21422
  }
@@ -21043,19 +21424,111 @@ function FeatureNumberedCards({
21043
21424
  }
21044
21425
  return null;
21045
21426
  };
21046
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid rounded-lg border md:grid-cols-2", cardClassName, feature.className), children: [
21047
- /* @__PURE__ */ jsxRuntime.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: [
21048
- feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl", titleClassName), children: feature.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl", titleClassName), children: feature.title })),
21049
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 text-sm text-muted-foreground sm:mb-10 md:text-base", descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-8 text-sm text-muted-foreground sm:mb-10 md:text-base", descriptionClassName), children: feature.description })),
21050
- feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("mt-auto space-y-2 sm:space-y-3", checklistClassName), children: renderChecklistItems(feature) }) : null
21051
- ] }),
21052
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative order-first max-h-80 md:order-last md:max-h-[500px]", feature.imageWrapperClassName), children: [
21053
- renderImage(),
21054
- /* @__PURE__ */ jsxRuntime.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") })
21055
- ] })
21056
- ] }, index);
21427
+ return /* @__PURE__ */ jsxRuntime.jsxs(
21428
+ "div",
21429
+ {
21430
+ className: cn(
21431
+ "grid rounded-lg border md:grid-cols-2",
21432
+ cardClassName,
21433
+ feature.className
21434
+ ),
21435
+ children: [
21436
+ /* @__PURE__ */ jsxRuntime.jsxs(
21437
+ "div",
21438
+ {
21439
+ className: cn(
21440
+ "flex flex-col px-6 py-8 lg:px-8 lg:py-12 xl:px-12 xl:py-20",
21441
+ feature.contentClassName
21442
+ ),
21443
+ children: [
21444
+ feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21445
+ "h3",
21446
+ {
21447
+ className: cn(
21448
+ "mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
21449
+ titleClassName
21450
+ ),
21451
+ children: feature.title
21452
+ }
21453
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21454
+ "div",
21455
+ {
21456
+ className: cn(
21457
+ "mb-3 text-2xl font-medium sm:mb-5 md:text-3xl lg:text-4xl",
21458
+ titleClassName
21459
+ ),
21460
+ children: feature.title
21461
+ }
21462
+ )),
21463
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21464
+ "div",
21465
+ {
21466
+ className: cn(
21467
+ "mb-8 text-sm sm:mb-10 md:text-base",
21468
+ descriptionClassName
21469
+ ),
21470
+ children: feature.description
21471
+ }
21472
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21473
+ "div",
21474
+ {
21475
+ className: cn(
21476
+ "mb-8 text-sm sm:mb-10 md:text-base",
21477
+ descriptionClassName
21478
+ ),
21479
+ children: feature.description
21480
+ }
21481
+ )),
21482
+ feature.checklistItems && feature.checklistItems.length > 0 || feature.checklistSlot ? /* @__PURE__ */ jsxRuntime.jsx(
21483
+ "ul",
21484
+ {
21485
+ className: cn(
21486
+ "mt-auto space-y-2 sm:space-y-3",
21487
+ checklistClassName
21488
+ ),
21489
+ children: renderChecklistItems(feature)
21490
+ }
21491
+ ) : null
21492
+ ]
21493
+ }
21494
+ ),
21495
+ /* @__PURE__ */ jsxRuntime.jsxs(
21496
+ "div",
21497
+ {
21498
+ className: cn(
21499
+ "relative order-first max-h-80 md:order-last md:max-h-[500px]",
21500
+ feature.imageWrapperClassName
21501
+ ),
21502
+ children: [
21503
+ renderImage(),
21504
+ /* @__PURE__ */ jsxRuntime.jsx(
21505
+ "span",
21506
+ {
21507
+ className: cn(
21508
+ "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",
21509
+ badgeClassName
21510
+ ),
21511
+ children: String(index + 1).padStart(2, "0")
21512
+ }
21513
+ )
21514
+ ]
21515
+ }
21516
+ )
21517
+ ]
21518
+ },
21519
+ index
21520
+ );
21057
21521
  });
21058
- }, [featuresSlot, features, cardClassName, titleClassName, descriptionClassName, checklistClassName, badgeClassName, optixFlowConfig]);
21522
+ }, [
21523
+ featuresSlot,
21524
+ features,
21525
+ cardClassName,
21526
+ titleClassName,
21527
+ descriptionClassName,
21528
+ checklistClassName,
21529
+ badgeClassName,
21530
+ optixFlowConfig
21531
+ ]);
21059
21532
  return /* @__PURE__ */ jsxRuntime.jsx(
21060
21533
  Section,
21061
21534
  {
@@ -21066,7 +21539,16 @@ function FeatureNumberedCards({
21066
21539
  patternClassName,
21067
21540
  className,
21068
21541
  containerClassName,
21069
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10 rounded-lg border py-10 md:px-4", cardsWrapperClassName), children: featuresContent })
21542
+ children: /* @__PURE__ */ jsxRuntime.jsx(
21543
+ "div",
21544
+ {
21545
+ className: cn(
21546
+ "space-y-4 md:space-y-10 rounded-lg border-none md:border md:bg-background p-0 md:p-10",
21547
+ cardsWrapperClassName
21548
+ ),
21549
+ children: featuresContent
21550
+ }
21551
+ )
21070
21552
  }
21071
21553
  );
21072
21554
  }
@@ -21099,12 +21581,21 @@ function FeatureIconGridAccent({
21099
21581
  "div",
21100
21582
  {
21101
21583
  className: cn(
21102
- "flex flex-col justify-between rounded-lg bg-accent p-6 md:min-h-[300px] md:p-8",
21584
+ "flex flex-col justify-between rounded-lg p-6 md:min-h-[300px] md:p-8",
21103
21585
  cardClassName,
21104
21586
  feature.className
21105
21587
  ),
21106
21588
  children: [
21107
- iconElement && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mb-6 flex size-11 items-center justify-center rounded-full bg-background", feature.iconClassName), children: iconElement }),
21589
+ iconElement && /* @__PURE__ */ jsxRuntime.jsx(
21590
+ "span",
21591
+ {
21592
+ className: cn(
21593
+ "mb-6 flex size-11 items-center justify-center rounded-full",
21594
+ feature.iconClassName
21595
+ ),
21596
+ children: iconElement
21597
+ }
21598
+ ),
21108
21599
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
21109
21600
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-medium md:text-2xl", children: feature.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-medium md:text-2xl", children: feature.title })),
21110
21601
  feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-muted-foreground", children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 text-muted-foreground", children: feature.description }))
@@ -21126,12 +21617,45 @@ function FeatureIconGridAccent({
21126
21617
  className,
21127
21618
  containerClassName,
21128
21619
  children: [
21129
- (label || title || description) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex w-full flex-col items-center", headerClassName), children: /* @__PURE__ */ jsxRuntime.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: [
21130
- label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: labelClassName, children: label })),
21131
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-medium md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
21132
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground md:max-w-2xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
21133
- ] }) }),
21134
- featuresContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mt-20 grid max-w-5xl gap-6 md:grid-cols-2", gridClassName), children: featuresContent })
21620
+ (label || title || description) && /* @__PURE__ */ jsxRuntime.jsx(
21621
+ "div",
21622
+ {
21623
+ className: cn("flex w-full flex-col items-center", headerClassName),
21624
+ children: /* @__PURE__ */ jsxRuntime.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: [
21625
+ label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: labelClassName, children: label })),
21626
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21627
+ "h2",
21628
+ {
21629
+ className: cn(
21630
+ "text-3xl font-medium md:text-5xl text-balance",
21631
+ titleClassName
21632
+ ),
21633
+ children: title
21634
+ }
21635
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
21636
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21637
+ "p",
21638
+ {
21639
+ className: cn(
21640
+ "md:max-w-2xl text-balance",
21641
+ descriptionClassName
21642
+ ),
21643
+ children: description
21644
+ }
21645
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
21646
+ ] })
21647
+ }
21648
+ ),
21649
+ featuresContent && /* @__PURE__ */ jsxRuntime.jsx(
21650
+ "div",
21651
+ {
21652
+ className: cn(
21653
+ "mx-auto mt-20 grid max-w-5xl gap-6 md:grid-cols-2",
21654
+ gridClassName
21655
+ ),
21656
+ children: featuresContent
21657
+ }
21658
+ )
21135
21659
  ]
21136
21660
  }
21137
21661
  );
@@ -21148,24 +21672,56 @@ function FeatureThreeColumnValues({
21148
21672
  gridClassName,
21149
21673
  cardClassName,
21150
21674
  background,
21151
- spacing,
21675
+ spacing = "py-6 md:py-32",
21152
21676
  pattern,
21153
21677
  patternOpacity,
21154
21678
  patternClassName
21155
21679
  }) {
21156
- const renderValueIcon = React52__namespace.useCallback((value) => {
21157
- if (value.icon) return value.icon;
21158
- if (value.iconName) return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: value.iconName, size: 24 });
21159
- return null;
21160
- }, []);
21680
+ const renderValueIcon = React52__namespace.useCallback(
21681
+ (value) => {
21682
+ if (value.icon) return value.icon;
21683
+ if (value.iconName)
21684
+ return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: value.iconName, size: 24 });
21685
+ return null;
21686
+ },
21687
+ []
21688
+ );
21161
21689
  const valuesContent = React52.useMemo(() => {
21162
21690
  if (valuesSlot) return valuesSlot;
21163
21691
  if (!values || values.length === 0) return null;
21164
- return values.map((value, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg bg-accent p-5", cardClassName, value.className), children: [
21165
- (value.icon || value.iconName) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mb-8 flex size-12 items-center justify-center rounded-full bg-background", value.iconClassName), children: renderValueIcon(value) }),
21166
- value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-2 text-xl font-medium", value.titleClassName), children: value.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-2 text-xl font-medium", value.titleClassName), children: value.title })),
21167
- value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-7 text-muted-foreground", value.descriptionClassName), children: value.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("leading-7 text-muted-foreground", value.descriptionClassName), children: value.description }))
21168
- ] }, index));
21692
+ return values.map((value, index) => /* @__PURE__ */ jsxRuntime.jsxs(
21693
+ "div",
21694
+ {
21695
+ className: cn("rounded-lg p-5", cardClassName, value.className),
21696
+ children: [
21697
+ (value.icon || value.iconName) && /* @__PURE__ */ jsxRuntime.jsx(
21698
+ "span",
21699
+ {
21700
+ className: cn(
21701
+ "mb-8 flex size-12 items-center justify-center rounded-full ",
21702
+ value.iconClassName
21703
+ ),
21704
+ children: renderValueIcon(value)
21705
+ }
21706
+ ),
21707
+ value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21708
+ "h3",
21709
+ {
21710
+ className: cn("mb-2 text-xl font-medium", value.titleClassName),
21711
+ children: value.title
21712
+ }
21713
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21714
+ "div",
21715
+ {
21716
+ className: cn("mb-2 text-xl font-medium", value.titleClassName),
21717
+ children: value.title
21718
+ }
21719
+ )),
21720
+ value.description && (typeof value.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-7 ", value.descriptionClassName), children: value.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("leading-7", value.descriptionClassName), children: value.description }))
21721
+ ]
21722
+ },
21723
+ index
21724
+ ));
21169
21725
  }, [valuesSlot, values, cardClassName, renderValueIcon]);
21170
21726
  return /* @__PURE__ */ jsxRuntime.jsxs(
21171
21727
  Section,
@@ -21178,9 +21734,30 @@ function FeatureThreeColumnValues({
21178
21734
  className,
21179
21735
  containerClassName,
21180
21736
  children: [
21181
- label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm text-muted-foreground lg:text-base", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-sm text-muted-foreground lg:text-base", labelClassName), children: label })),
21182
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-medium lg:text-4xl", titleClassName), children: title })),
21183
- (valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3", gridClassName), children: valuesContent })
21737
+ label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-sm lg:text-base", labelClassName), children: label })),
21738
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
21739
+ "h2",
21740
+ {
21741
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
21742
+ children: title
21743
+ }
21744
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
21745
+ "div",
21746
+ {
21747
+ className: cn("text-3xl font-medium lg:text-4xl", titleClassName),
21748
+ children: title
21749
+ }
21750
+ )),
21751
+ (valuesSlot || values && values.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
21752
+ "div",
21753
+ {
21754
+ className: cn(
21755
+ "mt-14 grid gap-6 lg:mt-20 lg:grid-cols-3",
21756
+ gridClassName
21757
+ ),
21758
+ children: valuesContent
21759
+ }
21760
+ )
21184
21761
  ]
21185
21762
  }
21186
21763
  );
@@ -21236,7 +21813,7 @@ function FeatureBadgeGridSix({
21236
21813
  {
21237
21814
  className: cn("flex gap-6 space-y-4 rounded-lg md:block", cardClassName, feature.className),
21238
21815
  children: [
21239
- iconContent && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-accent md:size-12", children: iconContent }),
21816
+ iconContent && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-full bg-primary text-primary-foreground md:size-12", children: iconContent }),
21240
21817
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
21241
21818
  feature.heading && (typeof feature.heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-medium md:mb-2 md:text-xl", feature.headingClassName), children: feature.heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("font-medium md:mb-2 md:text-xl", feature.headingClassName), children: feature.heading })),
21242
21819
  feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground md:text-base", feature.descriptionClassName), children: feature.description }))
@@ -21449,31 +22026,57 @@ function FeatureTabbedContentImage({
21449
22026
  contentGridClassName,
21450
22027
  optixFlowConfig,
21451
22028
  background,
21452
- spacing,
22029
+ spacing = "py-6 md:py-32",
21453
22030
  pattern,
21454
22031
  patternOpacity,
21455
22032
  patternClassName
21456
22033
  }) {
21457
- const renderFeatures = React52__namespace.useCallback((slide) => {
21458
- if (slide.featuresSlot) return slide.featuresSlot;
21459
- if (!slide.features || slide.features.length === 0) return null;
21460
- return slide.features.map((feature, index) => {
21461
- const isString = typeof feature === "string";
21462
- const content = isString ? feature : feature.content;
21463
- const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }) : feature.icon ?? (feature.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.iconName, size: 16 }) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }));
21464
- const itemClassName = isString ? void 0 : feature.className;
21465
- return /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("flex items-center gap-2", itemClassName), children: [
21466
- iconElement,
21467
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: content })
21468
- ] }, index);
21469
- });
21470
- }, []);
21471
- const renderActions = React52__namespace.useCallback((slide) => {
21472
- if (slide.actionsSlot) return slide.actionsSlot;
21473
- if (!slide.actions || slide.actions.length === 0) return null;
21474
- return slide.actions.map((action, index) => {
21475
- if (action.children) {
21476
- return /* @__PURE__ */ jsxRuntime.jsx(
22034
+ const renderFeatures = React52__namespace.useCallback(
22035
+ (slide) => {
22036
+ if (slide.featuresSlot) return slide.featuresSlot;
22037
+ if (!slide.features || slide.features.length === 0) return null;
22038
+ return slide.features.map((feature, index) => {
22039
+ const isString = typeof feature === "string";
22040
+ const content = isString ? feature : feature.content;
22041
+ const iconElement = isString ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }) : feature.icon ?? (feature.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.iconName, size: 16 }) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check-circle-2", size: 16 }));
22042
+ const itemClassName = isString ? void 0 : feature.className;
22043
+ return /* @__PURE__ */ jsxRuntime.jsxs(
22044
+ "li",
22045
+ {
22046
+ className: cn("flex items-center gap-2", itemClassName),
22047
+ children: [
22048
+ iconElement,
22049
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "font-medium", children: content })
22050
+ ]
22051
+ },
22052
+ index
22053
+ );
22054
+ });
22055
+ },
22056
+ []
22057
+ );
22058
+ const renderActions = React52__namespace.useCallback(
22059
+ (slide) => {
22060
+ if (slide.actionsSlot) return slide.actionsSlot;
22061
+ if (!slide.actions || slide.actions.length === 0) return null;
22062
+ return slide.actions.map((action, index) => {
22063
+ if (action.children) {
22064
+ return /* @__PURE__ */ jsxRuntime.jsx(
22065
+ Pressable,
22066
+ {
22067
+ href: action.href,
22068
+ onClick: action.onClick,
22069
+ variant: action.variant,
22070
+ size: action.size,
22071
+ className: cn("mt-8", action.className),
22072
+ "aria-label": action["aria-label"],
22073
+ asButton: true,
22074
+ children: action.children
22075
+ },
22076
+ index
22077
+ );
22078
+ }
22079
+ return /* @__PURE__ */ jsxRuntime.jsxs(
21477
22080
  Pressable,
21478
22081
  {
21479
22082
  href: action.href,
@@ -21483,46 +22086,39 @@ function FeatureTabbedContentImage({
21483
22086
  className: cn("mt-8", action.className),
21484
22087
  "aria-label": action["aria-label"],
21485
22088
  asButton: true,
21486
- children: action.children
22089
+ children: [
22090
+ action.icon,
22091
+ action.label,
22092
+ action.iconAfter
22093
+ ]
21487
22094
  },
21488
22095
  index
21489
22096
  );
21490
- }
21491
- return /* @__PURE__ */ jsxRuntime.jsxs(
21492
- Pressable,
22097
+ });
22098
+ },
22099
+ []
22100
+ );
22101
+ const renderImage = React52__namespace.useCallback(
22102
+ (slide) => {
22103
+ if (slide.imageSlot) return slide.imageSlot;
22104
+ if (!slide.image) return null;
22105
+ const imageAlt = slide.imageAlt || (typeof slide.title === "string" ? slide.title : "Tab content image");
22106
+ return /* @__PURE__ */ jsxRuntime.jsx(
22107
+ img.Img,
21493
22108
  {
21494
- href: action.href,
21495
- onClick: action.onClick,
21496
- variant: action.variant,
21497
- size: action.size,
21498
- className: cn("mt-8", action.className),
21499
- "aria-label": action["aria-label"],
21500
- asButton: true,
21501
- children: [
21502
- action.icon,
21503
- action.label,
21504
- action.iconAfter
21505
- ]
21506
- },
21507
- index
22109
+ src: slide.image,
22110
+ alt: imageAlt,
22111
+ className: cn(
22112
+ "order-first max-h-[400px] w-full rounded-lg object-cover md:order-last",
22113
+ slide.imageClassName
22114
+ ),
22115
+ loading: "lazy",
22116
+ optixFlowConfig
22117
+ }
21508
22118
  );
21509
- });
21510
- }, []);
21511
- const renderImage = React52__namespace.useCallback((slide) => {
21512
- if (slide.imageSlot) return slide.imageSlot;
21513
- if (!slide.image) return null;
21514
- const imageAlt = slide.imageAlt || (typeof slide.title === "string" ? slide.title : "Tab content image");
21515
- return /* @__PURE__ */ jsxRuntime.jsx(
21516
- img.Img,
21517
- {
21518
- src: slide.image,
21519
- alt: imageAlt,
21520
- className: cn("order-first max-h-[400px] w-full rounded-lg object-cover md:order-last", slide.imageClassName),
21521
- loading: "lazy",
21522
- optixFlowConfig
21523
- }
21524
- );
21525
- }, [optixFlowConfig]);
22119
+ },
22120
+ [optixFlowConfig]
22121
+ );
21526
22122
  const slidesContent = React52.useMemo(() => {
21527
22123
  if (slidesSlot) return slidesSlot;
21528
22124
  if (!slides || slides.length === 0) return null;
@@ -21531,7 +22127,7 @@ function FeatureTabbedContentImage({
21531
22127
  TabsTrigger,
21532
22128
  {
21533
22129
  value: slide.id.toString(),
21534
- className: cn("text-sm hover:bg-background md:text-base", tabTriggerClassName),
22130
+ className: cn("text-sm md:text-base", tabTriggerClassName),
21535
22131
  children: slide.tabName
21536
22132
  },
21537
22133
  slide.id
@@ -21541,20 +22137,79 @@ function FeatureTabbedContentImage({
21541
22137
  {
21542
22138
  value: slide.id.toString(),
21543
22139
  className: cn("max-w-5xl", tabContentClassName),
21544
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid grid-cols-1 items-center gap-10 md:grid-cols-2", contentGridClassName, slide.className), children: [
21545
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
21546
- slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-2xl font-semibold lg:text-4xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 text-2xl font-semibold lg:text-4xl", slide.titleClassName), children: slide.title })),
21547
- slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground lg:text-xl", slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground lg:text-xl", slide.descriptionClassName), children: slide.description })),
21548
- slide.features && slide.features.length > 0 || slide.featuresSlot ? /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("mt-8 grid grid-cols-1 gap-2 lg:grid-cols-2", slide.featuresClassName), children: renderFeatures(slide) }) : null,
21549
- renderActions(slide)
21550
- ] }),
21551
- renderImage(slide)
21552
- ] })
22140
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
22141
+ "div",
22142
+ {
22143
+ className: cn(
22144
+ "grid grid-cols-1 items-center gap-10 md:grid-cols-2",
22145
+ contentGridClassName,
22146
+ slide.className
22147
+ ),
22148
+ children: [
22149
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
22150
+ slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22151
+ "h2",
22152
+ {
22153
+ className: cn(
22154
+ "mb-4 text-2xl font-semibold lg:text-4xl",
22155
+ slide.titleClassName
22156
+ ),
22157
+ children: slide.title
22158
+ }
22159
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22160
+ "div",
22161
+ {
22162
+ className: cn(
22163
+ "mb-4 text-2xl font-semibold lg:text-4xl",
22164
+ slide.titleClassName
22165
+ ),
22166
+ children: slide.title
22167
+ }
22168
+ )),
22169
+ slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22170
+ "p",
22171
+ {
22172
+ className: cn(" lg:text-xl", slide.descriptionClassName),
22173
+ children: slide.description
22174
+ }
22175
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22176
+ "div",
22177
+ {
22178
+ className: cn("lg:text-xl", slide.descriptionClassName),
22179
+ children: slide.description
22180
+ }
22181
+ )),
22182
+ slide.features && slide.features.length > 0 || slide.featuresSlot ? /* @__PURE__ */ jsxRuntime.jsx(
22183
+ "ul",
22184
+ {
22185
+ className: cn(
22186
+ "mt-8 grid grid-cols-1 gap-2 lg:grid-cols-2",
22187
+ slide.featuresClassName
22188
+ ),
22189
+ children: renderFeatures(slide)
22190
+ }
22191
+ ) : null,
22192
+ renderActions(slide)
22193
+ ] }),
22194
+ renderImage(slide)
22195
+ ]
22196
+ }
22197
+ )
21553
22198
  },
21554
22199
  slide.id
21555
22200
  ))
21556
22201
  ] });
21557
- }, [slidesSlot, slides, tabsListClassName, tabTriggerClassName, tabContentClassName, contentGridClassName, renderFeatures, renderActions, renderImage]);
22202
+ }, [
22203
+ slidesSlot,
22204
+ slides,
22205
+ tabsListClassName,
22206
+ tabTriggerClassName,
22207
+ tabContentClassName,
22208
+ contentGridClassName,
22209
+ renderFeatures,
22210
+ renderActions,
22211
+ renderImage
22212
+ ]);
21558
22213
  const effectiveDefaultTab = React52.useMemo(() => {
21559
22214
  if (defaultTab) return defaultTab;
21560
22215
  if (slides && slides.length > 0) return slides[0].id.toString();
@@ -21571,15 +22226,63 @@ function FeatureTabbedContentImage({
21571
22226
  className,
21572
22227
  containerClassName,
21573
22228
  children: [
21574
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-6", headerClassName), children: [
21575
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-center text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-center text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
21576
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-balance text-muted-foreground lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-center text-balance text-muted-foreground lg:text-xl", descriptionClassName), children: description }))
21577
- ] }),
22229
+ /* @__PURE__ */ jsxRuntime.jsxs(
22230
+ "div",
22231
+ {
22232
+ className: cn(
22233
+ "mx-auto flex max-w-3xl flex-col items-center gap-6",
22234
+ headerClassName
22235
+ ),
22236
+ children: [
22237
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22238
+ "h2",
22239
+ {
22240
+ className: cn(
22241
+ "text-center text-3xl font-semibold lg:text-5xl",
22242
+ titleClassName
22243
+ ),
22244
+ children: title
22245
+ }
22246
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22247
+ "div",
22248
+ {
22249
+ className: cn(
22250
+ "text-center text-3xl font-semibold lg:text-5xl",
22251
+ titleClassName
22252
+ ),
22253
+ children: title
22254
+ }
22255
+ )),
22256
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22257
+ "p",
22258
+ {
22259
+ className: cn(
22260
+ "text-center text-balance lg:text-xl",
22261
+ descriptionClassName
22262
+ ),
22263
+ children: description
22264
+ }
22265
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22266
+ "div",
22267
+ {
22268
+ className: cn(
22269
+ "text-center text-balance lg:text-xl",
22270
+ descriptionClassName
22271
+ ),
22272
+ children: description
22273
+ }
22274
+ ))
22275
+ ]
22276
+ }
22277
+ ),
21578
22278
  (slidesSlot || slides && slides.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-12", tabsWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
21579
22279
  Tabs,
21580
22280
  {
21581
22281
  defaultValue: effectiveDefaultTab,
21582
- className: cn("mx-auto flex w-fit flex-col items-center gap-8 md:gap-12", tabsClassName),
22282
+ className: cn(
22283
+ "mx-auto flex w-fit flex-col items-center gap-8 md:gap-12",
22284
+ tabsClassName
22285
+ ),
21583
22286
  children: slidesContent
21584
22287
  }
21585
22288
  ) })
@@ -21607,14 +22310,15 @@ function FeatureUtilityCardsGrid({
21607
22310
  cardClassName,
21608
22311
  optixFlowConfig,
21609
22312
  background,
21610
- spacing,
22313
+ spacing = "py-6 md:py-32",
21611
22314
  pattern,
21612
22315
  patternOpacity,
21613
22316
  patternClassName
21614
22317
  }) {
21615
22318
  const renderLabelIcon = React52.useMemo(() => {
21616
22319
  if (labelIcon) return labelIcon;
21617
- if (labelIconName) return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: labelIconName, size: 20, className: "text-primary" });
22320
+ if (labelIconName)
22321
+ return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: labelIconName, size: 20, className: "text-primary" });
21618
22322
  return null;
21619
22323
  }, [labelIcon, labelIconName]);
21620
22324
  const learnMoreContent = React52.useMemo(() => {
@@ -21626,7 +22330,10 @@ function FeatureUtilityCardsGrid({
21626
22330
  {
21627
22331
  href: learnMoreAction.href,
21628
22332
  onClick: learnMoreAction.onClick,
21629
- className: cn("hover:text-primary hover:underline", learnMoreAction.className),
22333
+ className: cn(
22334
+ "hover:text-primary hover:underline",
22335
+ learnMoreAction.className
22336
+ ),
21630
22337
  "aria-label": learnMoreAction["aria-label"],
21631
22338
  children: learnMoreAction.children
21632
22339
  }
@@ -21637,7 +22344,7 @@ function FeatureUtilityCardsGrid({
21637
22344
  {
21638
22345
  href: learnMoreAction.href,
21639
22346
  onClick: learnMoreAction.onClick,
21640
- className: cn("hover:text-primary hover:underline", learnMoreAction.className),
22347
+ className: cn(learnMoreAction.className),
21641
22348
  "aria-label": learnMoreAction["aria-label"],
21642
22349
  children: [
21643
22350
  learnMoreAction.icon,
@@ -21647,32 +22354,45 @@ function FeatureUtilityCardsGrid({
21647
22354
  }
21648
22355
  );
21649
22356
  }, [learnMoreSlot, learnMoreAction]);
21650
- const renderUtilityImage = React52__namespace.useCallback((utility) => {
21651
- if (utility.imageSlot) return utility.imageSlot;
21652
- if (utility.image) {
21653
- return /* @__PURE__ */ jsxRuntime.jsx(
21654
- img.Img,
21655
- {
21656
- src: utility.image,
21657
- alt: utility.imageAlt || (typeof utility.title === "string" ? utility.title : "Utility image"),
21658
- className: cn("aspect-video w-full object-cover", utility.imageClassName),
21659
- loading: "lazy",
21660
- optixFlowConfig
21661
- }
21662
- );
21663
- }
21664
- return null;
21665
- }, [optixFlowConfig]);
22357
+ const renderUtilityImage = React52__namespace.useCallback(
22358
+ (utility) => {
22359
+ if (utility.imageSlot) return utility.imageSlot;
22360
+ if (utility.image) {
22361
+ return /* @__PURE__ */ jsxRuntime.jsx(
22362
+ img.Img,
22363
+ {
22364
+ src: utility.image,
22365
+ alt: utility.imageAlt || (typeof utility.title === "string" ? utility.title : "Utility image"),
22366
+ className: cn(
22367
+ "aspect-video w-full object-cover",
22368
+ utility.imageClassName
22369
+ ),
22370
+ loading: "lazy",
22371
+ optixFlowConfig
22372
+ }
22373
+ );
22374
+ }
22375
+ return null;
22376
+ },
22377
+ [optixFlowConfig]
22378
+ );
21666
22379
  const utilitiesContent = React52.useMemo(() => {
21667
22380
  if (utilitiesSlot) return utilitiesSlot;
21668
22381
  if (!utilities || utilities.length === 0) return null;
21669
- return utilities.map((utility, index) => /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: cn("overflow-hidden pt-0", cardClassName, utility.className), children: [
21670
- renderUtilityImage(utility),
21671
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5", children: [
21672
- utility.title && (typeof utility.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title })),
21673
- utility.description && (typeof utility.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", utility.descriptionClassName), children: utility.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground", utility.descriptionClassName), children: utility.description }))
21674
- ] })
21675
- ] }, index));
22382
+ return utilities.map((utility, index) => /* @__PURE__ */ jsxRuntime.jsxs(
22383
+ Card,
22384
+ {
22385
+ className: cn("overflow-hidden pt-0", cardClassName, utility.className),
22386
+ children: [
22387
+ renderUtilityImage(utility),
22388
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-5", children: [
22389
+ utility.title && (typeof utility.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-1 font-medium", utility.titleClassName), children: utility.title })),
22390
+ utility.description && (typeof utility.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("", utility.descriptionClassName), children: utility.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("", utility.descriptionClassName), children: utility.description }))
22391
+ ] })
22392
+ ]
22393
+ },
22394
+ index
22395
+ ));
21676
22396
  }, [utilitiesSlot, utilities, cardClassName, renderUtilityImage]);
21677
22397
  return /* @__PURE__ */ jsxRuntime.jsxs(
21678
22398
  Section,
@@ -21686,20 +22406,50 @@ function FeatureUtilityCardsGrid({
21686
22406
  containerClassName: cn("max-w-7xl", containerClassName),
21687
22407
  children: [
21688
22408
  (label || labelIcon || labelIconName || learnMoreSlot || learnMoreAction) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
21689
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center justify-between text-sm", headerClassName), children: [
21690
- (label || labelIcon || labelIconName) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1 text-muted-foreground", labelClassName), children: [
21691
- renderLabelIcon,
21692
- label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: label }))
21693
- ] }),
21694
- learnMoreContent
21695
- ] }),
22409
+ /* @__PURE__ */ jsxRuntime.jsxs(
22410
+ "div",
22411
+ {
22412
+ className: cn(
22413
+ "flex items-center justify-between text-sm",
22414
+ headerClassName
22415
+ ),
22416
+ children: [
22417
+ (label || labelIcon || labelIconName) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1 ", labelClassName), children: [
22418
+ renderLabelIcon,
22419
+ label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: label }))
22420
+ ] }),
22421
+ learnMoreContent
22422
+ ]
22423
+ }
22424
+ ),
21696
22425
  /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "mt-3 mb-8" })
21697
22426
  ] }),
21698
22427
  (title || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-between gap-6 md:flex-row", children: [
21699
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-medium md:w-1/2", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-medium md:w-1/2", titleClassName), children: title })),
22428
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22429
+ "h2",
22430
+ {
22431
+ className: cn("text-3xl font-medium md:w-1/2", titleClassName),
22432
+ children: title
22433
+ }
22434
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22435
+ "div",
22436
+ {
22437
+ className: cn("text-3xl font-medium md:w-1/2", titleClassName),
22438
+ children: title
22439
+ }
22440
+ )),
21700
22441
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("md:w-1/2", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("md:w-1/2", descriptionClassName), children: description }))
21701
22442
  ] }),
21702
- (utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-11 grid w-full grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3", gridClassName), children: utilitiesContent })
22443
+ (utilitiesSlot || utilities && utilities.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
22444
+ "div",
22445
+ {
22446
+ className: cn(
22447
+ "mt-11 grid w-full grid-cols-1 gap-4 md:grid-cols-2 lg:grid-cols-3",
22448
+ gridClassName
22449
+ ),
22450
+ children: utilitiesContent
22451
+ }
22452
+ )
21703
22453
  ]
21704
22454
  }
21705
22455
  );
@@ -21892,7 +22642,7 @@ function FeatureChecklistThreeColumn({
21892
22642
  Badge,
21893
22643
  {
21894
22644
  variant: "outline",
21895
- className: cn("absolute top-5 left-5 bg-primary-foreground", card.badgeClassName),
22645
+ className: cn("absolute top-5 left-5 bg-background", card.badgeClassName),
21896
22646
  children: card.badge
21897
22647
  }
21898
22648
  )
@@ -22060,7 +22810,7 @@ function FeatureIconTabsContent({
22060
22810
  tabContentClassName,
22061
22811
  optixFlowConfig,
22062
22812
  background,
22063
- spacing,
22813
+ spacing = "py-6 md:py-32",
22064
22814
  pattern,
22065
22815
  patternOpacity,
22066
22816
  patternClassName
@@ -22070,12 +22820,28 @@ function FeatureIconTabsContent({
22070
22820
  if (tab.iconName) return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: tab.iconName, size: 16 });
22071
22821
  return null;
22072
22822
  }, []);
22073
- const renderTabContentActions = React52.useCallback((content) => {
22074
- if (content.actionsSlot) return content.actionsSlot;
22075
- if (!content.actions || content.actions.length === 0) return null;
22076
- return content.actions.map((action, index) => {
22077
- if (action.children) {
22078
- return /* @__PURE__ */ jsxRuntime.jsx(
22823
+ const renderTabContentActions = React52.useCallback(
22824
+ (content) => {
22825
+ if (content.actionsSlot) return content.actionsSlot;
22826
+ if (!content.actions || content.actions.length === 0) return null;
22827
+ return content.actions.map((action, index) => {
22828
+ if (action.children) {
22829
+ return /* @__PURE__ */ jsxRuntime.jsx(
22830
+ Pressable,
22831
+ {
22832
+ href: action.href,
22833
+ onClick: action.onClick,
22834
+ variant: action.variant,
22835
+ size: action.size,
22836
+ className: cn("mt-2.5 w-fit gap-2", action.className),
22837
+ "aria-label": action["aria-label"],
22838
+ asButton: true,
22839
+ children: action.children
22840
+ },
22841
+ index
22842
+ );
22843
+ }
22844
+ return /* @__PURE__ */ jsxRuntime.jsxs(
22079
22845
  Pressable,
22080
22846
  {
22081
22847
  href: action.href,
@@ -22085,90 +22851,174 @@ function FeatureIconTabsContent({
22085
22851
  className: cn("mt-2.5 w-fit gap-2", action.className),
22086
22852
  "aria-label": action["aria-label"],
22087
22853
  asButton: true,
22088
- children: action.children
22854
+ children: [
22855
+ action.icon,
22856
+ action.label,
22857
+ action.iconAfter
22858
+ ]
22089
22859
  },
22090
22860
  index
22091
22861
  );
22862
+ });
22863
+ },
22864
+ []
22865
+ );
22866
+ const renderTabContentImage = React52.useCallback(
22867
+ (content) => {
22868
+ if (content.imageSlot) return content.imageSlot;
22869
+ if (content.imageSrc) {
22870
+ return /* @__PURE__ */ jsxRuntime.jsx(
22871
+ img.Img,
22872
+ {
22873
+ src: content.imageSrc,
22874
+ alt: content.imageAlt || "Tab content image",
22875
+ className: cn(
22876
+ "h-full w-full rounded-xl object-cover",
22877
+ content.imageClassName
22878
+ ),
22879
+ loading: "lazy",
22880
+ optixFlowConfig
22881
+ }
22882
+ );
22092
22883
  }
22093
- return /* @__PURE__ */ jsxRuntime.jsxs(
22094
- Pressable,
22095
- {
22096
- href: action.href,
22097
- onClick: action.onClick,
22098
- variant: action.variant,
22099
- size: action.size,
22100
- className: cn("mt-2.5 w-fit gap-2", action.className),
22101
- "aria-label": action["aria-label"],
22102
- asButton: true,
22103
- children: [
22104
- action.icon,
22105
- action.label,
22106
- action.iconAfter
22107
- ]
22108
- },
22109
- index
22110
- );
22111
- });
22112
- }, []);
22113
- const renderTabContentImage = React52.useCallback((content) => {
22114
- if (content.imageSlot) return content.imageSlot;
22115
- if (content.imageSrc) {
22116
- return /* @__PURE__ */ jsxRuntime.jsx(
22117
- img.Img,
22118
- {
22119
- src: content.imageSrc,
22120
- alt: content.imageAlt || "Tab content image",
22121
- className: cn("h-full w-full rounded-xl object-cover", content.imageClassName),
22122
- loading: "lazy",
22123
- optixFlowConfig
22124
- }
22125
- );
22126
- }
22127
- return null;
22128
- }, [optixFlowConfig]);
22884
+ return null;
22885
+ },
22886
+ [optixFlowConfig]
22887
+ );
22129
22888
  const tabsContent = React52.useMemo(() => {
22130
22889
  if (tabsSlot) return tabsSlot;
22131
22890
  if (!tabs || tabs.length === 0) return null;
22132
22891
  const activeDefaultTab = defaultTab || tabs[0]?.value;
22133
22892
  return /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { defaultValue: activeDefaultTab, className: "mt-8", children: [
22134
- /* @__PURE__ */ jsxRuntime.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__ */ jsxRuntime.jsxs(
22135
- TabsTrigger,
22893
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container overflow-x-auto px-4 pb-2 md:px-6", children: /* @__PURE__ */ jsxRuntime.jsx(
22894
+ TabsList,
22136
22895
  {
22137
- value: tab.value,
22138
- 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),
22139
- children: [
22140
- (tab.icon || tab.iconName) && renderTabIcon(tab),
22141
- tab.label
22142
- ]
22143
- },
22144
- tab.value
22145
- )) }),
22146
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mt-8 max-w-7xl rounded-2xl bg-muted/70 p-6 lg:p-16", contentWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: tabs.map((tab) => {
22147
- if (tab.contentSlot) {
22148
- return /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value: tab.value, className: tabContentClassName, children: tab.contentSlot }, tab.value);
22896
+ className: cn(
22897
+ "inline-flex w-auto min-w-full items-center justify-start gap-2 bg-transparent md:justify-center md:gap-4",
22898
+ tabsListClassName
22899
+ ),
22900
+ children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsxs(
22901
+ TabsTrigger,
22902
+ {
22903
+ value: tab.value,
22904
+ className: cn(
22905
+ "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",
22906
+ tabTriggerClassName,
22907
+ tab.className
22908
+ ),
22909
+ children: [
22910
+ (tab.icon || tab.iconName) && renderTabIcon(tab),
22911
+ tab.label
22912
+ ]
22913
+ },
22914
+ tab.value
22915
+ ))
22149
22916
  }
22150
- const content = tab.content;
22151
- if (!content) return null;
22152
- return /* @__PURE__ */ jsxRuntime.jsxs(
22153
- TabsContent,
22154
- {
22155
- value: tab.value,
22156
- className: cn("grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10", tabContentClassName, content.className),
22157
- children: [
22158
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
22159
- content.badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit bg-background", content.badgeClassName), children: content.badge }),
22160
- content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-semibold lg:text-5xl", content.titleClassName), children: content.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", content.titleClassName), children: content.title })),
22161
- content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground lg:text-lg", content.descriptionClassName), children: content.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground lg:text-lg", content.descriptionClassName), children: content.description })),
22162
- (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
22163
- ] }),
22164
- (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
22165
- ]
22166
- },
22167
- tab.value
22168
- );
22169
- }) }) })
22917
+ ) }),
22918
+ /* @__PURE__ */ jsxRuntime.jsx(
22919
+ "div",
22920
+ {
22921
+ className: cn(
22922
+ "mx-auto mt-8 max-w-7xl rounded-2xl bg-muted/70 p-6 lg:p-16",
22923
+ contentWrapperClassName
22924
+ ),
22925
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: tabs.map((tab) => {
22926
+ if (tab.contentSlot) {
22927
+ return /* @__PURE__ */ jsxRuntime.jsx(
22928
+ TabsContent,
22929
+ {
22930
+ value: tab.value,
22931
+ className: tabContentClassName,
22932
+ children: tab.contentSlot
22933
+ },
22934
+ tab.value
22935
+ );
22936
+ }
22937
+ const content = tab.content;
22938
+ if (!content) return null;
22939
+ return /* @__PURE__ */ jsxRuntime.jsxs(
22940
+ TabsContent,
22941
+ {
22942
+ value: tab.value,
22943
+ className: cn(
22944
+ "grid place-items-start gap-20 lg:grid-cols-2 lg:gap-10",
22945
+ tabContentClassName,
22946
+ content.className
22947
+ ),
22948
+ children: [
22949
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
22950
+ content.badge && /* @__PURE__ */ jsxRuntime.jsx(
22951
+ Badge,
22952
+ {
22953
+ variant: "outline",
22954
+ className: cn(
22955
+ "w-fit bg-background",
22956
+ content.badgeClassName
22957
+ ),
22958
+ children: content.badge
22959
+ }
22960
+ ),
22961
+ content.title && (typeof content.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22962
+ "h3",
22963
+ {
22964
+ className: cn(
22965
+ "text-3xl font-semibold lg:text-5xl",
22966
+ content.titleClassName
22967
+ ),
22968
+ children: content.title
22969
+ }
22970
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22971
+ "div",
22972
+ {
22973
+ className: cn(
22974
+ "text-3xl font-semibold lg:text-5xl",
22975
+ content.titleClassName
22976
+ ),
22977
+ children: content.title
22978
+ }
22979
+ )),
22980
+ content.description && (typeof content.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
22981
+ "p",
22982
+ {
22983
+ className: cn(
22984
+ "text-muted-foreground lg:text-lg",
22985
+ content.descriptionClassName
22986
+ ),
22987
+ children: content.description
22988
+ }
22989
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
22990
+ "div",
22991
+ {
22992
+ className: cn(
22993
+ "text-muted-foreground lg:text-lg",
22994
+ content.descriptionClassName
22995
+ ),
22996
+ children: content.description
22997
+ }
22998
+ )),
22999
+ (content.actionsSlot || content.actions && content.actions.length > 0) && renderTabContentActions(content)
23000
+ ] }),
23001
+ (content.imageSlot || content.imageSrc) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-[300px] w-full lg:h-[400px]", children: renderTabContentImage(content) })
23002
+ ]
23003
+ },
23004
+ tab.value
23005
+ );
23006
+ }) })
23007
+ }
23008
+ )
22170
23009
  ] });
22171
- }, [tabsSlot, tabs, defaultTab, tabsListClassName, tabTriggerClassName, contentWrapperClassName, tabContentClassName, renderTabIcon, renderTabContentActions, renderTabContentImage]);
23010
+ }, [
23011
+ tabsSlot,
23012
+ tabs,
23013
+ defaultTab,
23014
+ tabsListClassName,
23015
+ tabTriggerClassName,
23016
+ contentWrapperClassName,
23017
+ tabContentClassName,
23018
+ renderTabIcon,
23019
+ renderTabContentActions,
23020
+ renderTabContentImage
23021
+ ]);
22172
23022
  return /* @__PURE__ */ jsxRuntime.jsxs(
22173
23023
  Section,
22174
23024
  {
@@ -22180,11 +23030,44 @@ function FeatureIconTabsContent({
22180
23030
  className,
22181
23031
  containerClassName: cn("mx-auto", containerClassName),
22182
23032
  children: [
22183
- (badge || heading || description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center gap-4 text-center", headerClassName), children: [
22184
- badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
22185
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("max-w-2xl text-3xl font-semibold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-w-2xl text-3xl font-semibold md:text-4xl", headingClassName), children: heading })),
22186
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground", descriptionClassName), children: description }))
22187
- ] }),
23033
+ (badge || heading || description) && /* @__PURE__ */ jsxRuntime.jsxs(
23034
+ "div",
23035
+ {
23036
+ className: cn(
23037
+ "flex flex-col items-center gap-4 text-center",
23038
+ headerClassName
23039
+ ),
23040
+ children: [
23041
+ badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
23042
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
23043
+ "h1",
23044
+ {
23045
+ className: cn(
23046
+ "max-w-2xl text-3xl font-semibold md:text-4xl",
23047
+ headingClassName
23048
+ ),
23049
+ children: heading
23050
+ }
23051
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
23052
+ "div",
23053
+ {
23054
+ className: cn(
23055
+ "max-w-2xl text-3xl font-semibold md:text-4xl",
23056
+ headingClassName
23057
+ ),
23058
+ children: heading
23059
+ }
23060
+ )),
23061
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
23062
+ "div",
23063
+ {
23064
+ className: cn("text-muted-foreground", descriptionClassName),
23065
+ children: description
23066
+ }
23067
+ ))
23068
+ ]
23069
+ }
23070
+ ),
22188
23071
  tabsContent
22189
23072
  ]
22190
23073
  }
@@ -22265,7 +23148,7 @@ function FeatureImageOverlayBadge({
22265
23148
  overlayTitleClassName,
22266
23149
  optixFlowConfig,
22267
23150
  background,
22268
- spacing,
23151
+ spacing = "py-6 md:py-32",
22269
23152
  pattern,
22270
23153
  patternOpacity,
22271
23154
  patternClassName
@@ -22318,7 +23201,10 @@ function FeatureImageOverlayBadge({
22318
23201
  {
22319
23202
  src: imageSrc,
22320
23203
  alt: imageAlt || "Feature illustration",
22321
- className: cn("rounded-xl object-cover md:aspect-video lg:aspect-auto", imageClassName),
23204
+ className: cn(
23205
+ "rounded-2xl object-cover md:aspect-video lg:aspect-auto w-full h-auto",
23206
+ imageClassName
23207
+ ),
22322
23208
  loading: "lazy",
22323
23209
  optixFlowConfig
22324
23210
  }
@@ -22336,41 +23222,111 @@ function FeatureImageOverlayBadge({
22336
23222
  patternClassName,
22337
23223
  className,
22338
23224
  containerClassName,
22339
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid place-items-center gap-10 lg:grid-cols-2", gridClassName), children: [
22340
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
22341
- badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit bg-background", badgeClassName), children: badge }),
22342
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
22343
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
22344
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
22345
- ] }),
22346
- imageContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative rounded-xl", imageWrapperClassName), children: [
22347
- imageContent,
22348
- (avatarSrc || avatarBadgeText || overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
22349
- /* @__PURE__ */ jsxRuntime.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) }),
22350
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute top-0 flex h-full w-full flex-col justify-between p-7", children: [
22351
- (avatarSrc || avatarBadgeText) && /* @__PURE__ */ jsxRuntime.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: [
22352
- avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: "Avatar" }) }),
22353
- avatarBadgeText
22354
- ] }),
22355
- (overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5 text-background", children: [
22356
- overlayTitle && (typeof overlayTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h4", { className: cn("text-lg font-semibold lg:text-3xl", overlayTitleClassName), children: overlayTitle }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-lg font-semibold lg:text-3xl", overlayTitleClassName), children: overlayTitle })),
22357
- overlayLinkText && /* @__PURE__ */ jsxRuntime.jsxs(
22358
- Pressable,
23225
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
23226
+ "div",
23227
+ {
23228
+ className: cn(
23229
+ "grid place-items-center gap-10 lg:grid-cols-2",
23230
+ gridClassName
23231
+ ),
23232
+ children: [
23233
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
23234
+ badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("", badgeClassName), children: badge }),
23235
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
23236
+ "h3",
23237
+ {
23238
+ className: cn(
23239
+ "text-3xl font-semibold lg:text-4xl leading-snug text-balance",
23240
+ titleClassName
23241
+ ),
23242
+ children: title
23243
+ }
23244
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
23245
+ "div",
23246
+ {
23247
+ className: cn(
23248
+ "text-3xl font-semibold lg:text-5xl",
23249
+ titleClassName
23250
+ ),
23251
+ children: title
23252
+ }
23253
+ )),
23254
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("lg:text-lg", descriptionClassName), children: description })),
23255
+ /* @__PURE__ */ jsxRuntime.jsx(
23256
+ "div",
23257
+ {
23258
+ className: cn(
23259
+ "flex items-center gap-4 flex-wrap",
23260
+ actionsClassName
23261
+ ),
23262
+ children: actionsContent
23263
+ }
23264
+ )
23265
+ ] }),
23266
+ imageContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative rounded-2xl", imageWrapperClassName), children: [
23267
+ imageContent,
23268
+ (avatarSrc || avatarBadgeText || overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
23269
+ /* @__PURE__ */ jsxRuntime.jsx(
23270
+ "div",
22359
23271
  {
22360
- href: overlayLinkUrl,
22361
- onClick: overlayLinkOnClick,
22362
- className: "flex items-center gap-1 font-medium",
22363
- children: [
22364
- overlayLinkText,
22365
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 16 })
22366
- ]
23272
+ className: cn(
23273
+ "absolute top-0 right-0 bottom-0 left-0 rounded-2xl bg-linear-to-t from-black via-black/20 to-transparent",
23274
+ overlayClassName
23275
+ )
22367
23276
  }
22368
- )
23277
+ ),
23278
+ /* @__PURE__ */ jsxRuntime.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: [
23279
+ (avatarSrc || avatarBadgeText) && /* @__PURE__ */ jsxRuntime.jsxs(
23280
+ "span",
23281
+ {
23282
+ className: cn(
23283
+ "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",
23284
+ avatarBadgeClassName
23285
+ ),
23286
+ children: [
23287
+ avatarSrc && /* @__PURE__ */ jsxRuntime.jsx(Avatar, { className: "size-7 rounded-full", children: /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: "Avatar" }) }),
23288
+ avatarBadgeText
23289
+ ]
23290
+ }
23291
+ ),
23292
+ (overlayTitle || overlayLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-5", children: [
23293
+ overlayTitle && (typeof overlayTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
23294
+ "h4",
23295
+ {
23296
+ className: cn(
23297
+ "text-lg font-semibold lg:text-3xl",
23298
+ overlayTitleClassName
23299
+ ),
23300
+ children: overlayTitle
23301
+ }
23302
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
23303
+ "div",
23304
+ {
23305
+ className: cn(
23306
+ "text-lg font-semibold lg:text-3xl",
23307
+ overlayTitleClassName
23308
+ ),
23309
+ children: overlayTitle
23310
+ }
23311
+ )),
23312
+ overlayLinkText && /* @__PURE__ */ jsxRuntime.jsxs(
23313
+ Pressable,
23314
+ {
23315
+ href: overlayLinkUrl,
23316
+ onClick: overlayLinkOnClick,
23317
+ children: [
23318
+ overlayLinkText,
23319
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 18 })
23320
+ ]
23321
+ }
23322
+ )
23323
+ ] })
23324
+ ] })
22369
23325
  ] })
22370
23326
  ] })
22371
- ] })
22372
- ] })
22373
- ] })
23327
+ ]
23328
+ }
23329
+ )
22374
23330
  }
22375
23331
  );
22376
23332
  }
@@ -22775,7 +23731,7 @@ function FeatureStatsHighlight({
22775
23731
  statsGridClassName,
22776
23732
  statCardClassName,
22777
23733
  background,
22778
- spacing,
23734
+ spacing = "py-6 md:py-32",
22779
23735
  pattern,
22780
23736
  patternOpacity,
22781
23737
  patternClassName
@@ -22814,10 +23770,23 @@ function FeatureStatsHighlight({
22814
23770
  return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs(
22815
23771
  "div",
22816
23772
  {
22817
- className: cn("flex flex-col gap-2 rounded-xl border bg-muted/30 p-6", statCardClassName, stat.className),
23773
+ className: cn(
23774
+ "flex flex-col gap-2 rounded-xl border bg-card p-6",
23775
+ statCardClassName,
23776
+ stat.className
23777
+ ),
22818
23778
  children: [
22819
- stat.value && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-4xl font-bold text-primary lg:text-5xl", stat.valueClassName), children: stat.value }),
22820
- stat.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", stat.labelClassName), children: stat.label })
23779
+ stat.value && /* @__PURE__ */ jsxRuntime.jsx(
23780
+ "span",
23781
+ {
23782
+ className: cn(
23783
+ "text-4xl font-bold lg:text-5xl",
23784
+ stat.valueClassName
23785
+ ),
23786
+ children: stat.value
23787
+ }
23788
+ ),
23789
+ stat.label && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("", stat.labelClassName), children: stat.label })
22821
23790
  ]
22822
23791
  },
22823
23792
  index
@@ -22833,15 +23802,39 @@ function FeatureStatsHighlight({
22833
23802
  patternClassName,
22834
23803
  className,
22835
23804
  containerClassName,
22836
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName), children: [
22837
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
22838
- badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit", badgeClassName), children: badge }),
22839
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold lg:text-5xl", titleClassName), children: title })),
22840
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground lg:text-lg", descriptionClassName), children: description })),
22841
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
22842
- ] }),
22843
- (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-6", statsGridClassName), children: statsContent })
22844
- ] })
23805
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
23806
+ "div",
23807
+ {
23808
+ className: cn("grid gap-10 lg:grid-cols-2 lg:gap-20", gridClassName),
23809
+ children: [
23810
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-5", contentClassName), children: [
23811
+ badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("w-fit", badgeClassName), children: badge }),
23812
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
23813
+ "h2",
23814
+ {
23815
+ className: cn(
23816
+ "text-3xl font-semibold lg:text-5xl",
23817
+ titleClassName
23818
+ ),
23819
+ children: title
23820
+ }
23821
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
23822
+ "div",
23823
+ {
23824
+ className: cn(
23825
+ "text-3xl font-semibold lg:text-5xl",
23826
+ titleClassName
23827
+ ),
23828
+ children: title
23829
+ }
23830
+ )),
23831
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(" lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(" lg:text-lg", descriptionClassName), children: description })),
23832
+ (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
23833
+ ] }),
23834
+ (statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-2 gap-6", statsGridClassName), children: statsContent })
23835
+ ]
23836
+ }
23837
+ )
22845
23838
  }
22846
23839
  );
22847
23840
  }
@@ -22858,7 +23851,7 @@ function AccordionItem({
22858
23851
  AccordionPrimitive__namespace.Item,
22859
23852
  {
22860
23853
  "data-slot": "accordion-item",
22861
- className: cn("border-b last:border-b-0", className),
23854
+ className: cn("border-b ", className),
22862
23855
  ...props
22863
23856
  }
22864
23857
  );
@@ -22879,7 +23872,13 @@ function AccordionTrigger({
22879
23872
  ...props,
22880
23873
  children: [
22881
23874
  children,
22882
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-down", className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200" })
23875
+ /* @__PURE__ */ jsxRuntime.jsx(
23876
+ DynamicIcon,
23877
+ {
23878
+ name: "lucide/chevron-down",
23879
+ className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
23880
+ }
23881
+ )
22883
23882
  ]
22884
23883
  }
22885
23884
  ) });
@@ -34789,7 +35788,10 @@ function BlogHorizontalTimelineComponent({
34789
35788
  /* @__PURE__ */ jsxRuntime.jsx(
34790
35789
  Card,
34791
35790
  {
34792
- className: cn("w-full border-none shadow-none", postCardClassName),
35791
+ className: cn(
35792
+ "w-full border-none shadow-none pt-0 pb-6 md:pt-6 md:pb-6",
35793
+ postCardClassName
35794
+ ),
34793
35795
  children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "p-0", children: /* @__PURE__ */ jsxRuntime.jsxs(
34794
35796
  "div",
34795
35797
  {
@@ -34804,9 +35806,9 @@ function BlogHorizontalTimelineComponent({
34804
35806
  ] }),
34805
35807
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full flex-col items-start gap-4 md:h-full md:justify-between md:gap-6", children: [
34806
35808
  postDescription && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-base leading-relaxed font-normal tracking-tight text-muted-foreground md:text-xl line-clamp-3", children: postDescription }),
34807
- readText && /* @__PURE__ */ jsxRuntime.jsxs(Pressable, { href: postHref, asButton: true, variant: "link", children: [
35809
+ readText && /* @__PURE__ */ jsxRuntime.jsxs(Pressable, { href: postHref, asButton: true, variant: "ghost", children: [
34808
35810
  readText,
34809
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 20 })
35811
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-up-right", size: 20 })
34810
35812
  ] })
34811
35813
  ] })
34812
35814
  ]
@@ -34847,7 +35849,7 @@ function BlogHorizontalTimelineComponent({
34847
35849
  children: heading
34848
35850
  }
34849
35851
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-12", headingClassName), children: heading })),
34850
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col", postsClassName), children: renderPosts })
35852
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-0 md:gap-20", postsClassName), children: renderPosts })
34851
35853
  ] })
34852
35854
  }
34853
35855
  );
@@ -35463,7 +36465,7 @@ function ArticleSidebarStickyComponent({
35463
36465
  children,
35464
36466
  optixFlowConfig,
35465
36467
  background,
35466
- spacing,
36468
+ spacing = "py-6 md:py-32",
35467
36469
  pattern,
35468
36470
  patternOpacity
35469
36471
  }) {
@@ -35474,7 +36476,10 @@ function ArticleSidebarStickyComponent({
35474
36476
  Pressable,
35475
36477
  {
35476
36478
  href: backHref,
35477
- className: cn("inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground", backLinkClassName),
36479
+ className: cn(
36480
+ "inline-flex items-center gap-2 text-sm text-muted-foreground hover:text-foreground",
36481
+ backLinkClassName
36482
+ ),
35478
36483
  children: [
35479
36484
  backIcon ?? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 16 }),
35480
36485
  backText
@@ -35482,21 +36487,38 @@ function ArticleSidebarStickyComponent({
35482
36487
  }
35483
36488
  );
35484
36489
  }, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
35485
- const renderAuthor = React52__namespace.useCallback((isMobile = false) => {
35486
- if (authorSlot) return authorSlot;
35487
- if (!authorName) return null;
35488
- const avatarSize = isMobile ? "h-8 w-8" : "h-10 w-10";
35489
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
35490
- /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: avatarSize, children: [
35491
- /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: authorImage }),
35492
- /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: authorName.charAt(0) })
35493
- ] }),
35494
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
35495
- authorHref ? /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: authorHref, className: "text-sm font-medium hover:underline", children: authorName }) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: authorName }),
35496
- publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
35497
- ] })
35498
- ] });
35499
- }, [authorSlot, authorName, authorImage, authorHref, publishDate, authorClassName]);
36490
+ const renderAuthor = React52__namespace.useCallback(
36491
+ (isMobile = false) => {
36492
+ if (authorSlot) return authorSlot;
36493
+ if (!authorName) return null;
36494
+ const avatarSize = isMobile ? "h-8 w-8" : "h-10 w-10";
36495
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-3", authorClassName), children: [
36496
+ /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: avatarSize, children: [
36497
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: authorImage }),
36498
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: authorName.charAt(0) })
36499
+ ] }),
36500
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
36501
+ authorHref ? /* @__PURE__ */ jsxRuntime.jsx(
36502
+ Pressable,
36503
+ {
36504
+ href: authorHref,
36505
+ className: "text-sm font-medium hover:underline",
36506
+ children: authorName
36507
+ }
36508
+ ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: authorName }),
36509
+ publishDate && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs text-muted-foreground", children: publishDate })
36510
+ ] })
36511
+ ] });
36512
+ },
36513
+ [
36514
+ authorSlot,
36515
+ authorName,
36516
+ authorImage,
36517
+ authorHref,
36518
+ publishDate,
36519
+ authorClassName
36520
+ ]
36521
+ );
35500
36522
  const heroMediaContent = React52__namespace.useMemo(() => {
35501
36523
  if (heroMediaSlot) return heroMediaSlot;
35502
36524
  if (!heroImageSrc) return null;
@@ -35505,11 +36527,20 @@ function ArticleSidebarStickyComponent({
35505
36527
  {
35506
36528
  src: heroImageSrc,
35507
36529
  alt: heroImageAlt,
35508
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
36530
+ className: cn(
36531
+ "my-8 aspect-video w-full rounded-lg object-cover",
36532
+ heroImageClassName
36533
+ ),
35509
36534
  optixFlowConfig
35510
36535
  }
35511
36536
  );
35512
- }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
36537
+ }, [
36538
+ heroMediaSlot,
36539
+ heroImageSrc,
36540
+ heroImageAlt,
36541
+ heroImageClassName,
36542
+ optixFlowConfig
36543
+ ]);
35513
36544
  return /* @__PURE__ */ jsxRuntime.jsx(
35514
36545
  Section,
35515
36546
  {
@@ -35523,13 +36554,31 @@ function ArticleSidebarStickyComponent({
35523
36554
  backLinkContent,
35524
36555
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: renderAuthor(false) })
35525
36556
  ] }) }),
35526
- /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35527
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
35528
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
35529
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "not-prose mt-4 lg:hidden", children: renderAuthor(true) }),
35530
- heroMediaContent,
35531
- children
35532
- ] })
36557
+ /* @__PURE__ */ jsxRuntime.jsxs(
36558
+ "article",
36559
+ {
36560
+ className: cn(
36561
+ "prose max-w-none dark:prose-invert",
36562
+ articleClassName
36563
+ ),
36564
+ children: [
36565
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 lg:hidden", children: backLinkContent }),
36566
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
36567
+ "h1",
36568
+ {
36569
+ className: cn(
36570
+ "text-4xl font-bold tracking-tight md:text-5xl",
36571
+ titleClassName
36572
+ ),
36573
+ children: title
36574
+ }
36575
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
36576
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "not-prose mt-4 lg:hidden", children: renderAuthor(true) }),
36577
+ heroMediaContent,
36578
+ children
36579
+ ]
36580
+ }
36581
+ )
35533
36582
  ] }) })
35534
36583
  }
35535
36584
  );
@@ -35723,7 +36772,6 @@ function ArticleBreadcrumbSocialComponent({
35723
36772
  authorClassName,
35724
36773
  heroImageClassName,
35725
36774
  tocClassName,
35726
- shareClassName,
35727
36775
  breadcrumbs,
35728
36776
  breadcrumbsSlot,
35729
36777
  currentPage,
@@ -35738,9 +36786,6 @@ function ArticleBreadcrumbSocialComponent({
35738
36786
  sections,
35739
36787
  tocSlot,
35740
36788
  renderSectionLink,
35741
- socialLinks: socialLinksProp,
35742
- shareUrls,
35743
- shareSlot,
35744
36789
  heroImageSrc,
35745
36790
  heroImageAlt,
35746
36791
  heroMediaSlot,
@@ -35749,35 +36794,11 @@ function ArticleBreadcrumbSocialComponent({
35749
36794
  enableBackToTop,
35750
36795
  optixFlowConfig,
35751
36796
  background,
35752
- spacing,
36797
+ spacing = "py-6 md:py-32",
35753
36798
  pattern,
35754
36799
  patternOpacity
35755
36800
  }) {
35756
36801
  const author = authorProp ?? (authorName ? { name: authorName, image: authorImage, role: authorRole } : void 0);
35757
- const platformLabels = {
35758
- twitter: "Twitter",
35759
- x: "X",
35760
- facebook: "Facebook",
35761
- linkedin: "LinkedIn",
35762
- instagram: "Instagram",
35763
- github: "GitHub"
35764
- };
35765
- const socialIconMap2 = {
35766
- twitter: "simple-icons/x",
35767
- // Twitter is now X
35768
- x: "simple-icons/x",
35769
- facebook: "simple-icons/facebook",
35770
- linkedin: "simple-icons/linkedin",
35771
- instagram: "simple-icons/instagram",
35772
- github: "simple-icons/github"
35773
- };
35774
- const socialLinks = socialLinksProp ?? (shareUrls ? Object.entries(shareUrls).filter(([, href]) => href).map(([platform, href]) => ({
35775
- platform,
35776
- href,
35777
- icon: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: socialIconMap2[platform] || `simple-icons/${platform}`, size: 16 }),
35778
- "aria-label": `Share on ${platformLabels[platform] || platform.charAt(0).toUpperCase() + platform.slice(1)}`,
35779
- className: void 0
35780
- })) : []);
35781
36802
  const [activeSection, setActiveSection] = React52__namespace.useState(
35782
36803
  sections?.[0]?.id || ""
35783
36804
  );
@@ -35829,16 +36850,25 @@ function ArticleBreadcrumbSocialComponent({
35829
36850
  const authorContent = React52__namespace.useMemo(() => {
35830
36851
  if (authorSlot) return authorSlot;
35831
36852
  if (!author) return null;
35832
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-6 flex items-center gap-4 not-prose", authorClassName), children: [
35833
- /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "h-12 w-12", children: [
35834
- /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: author.image }),
35835
- /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
35836
- ] }),
35837
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
35838
- author.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: author.name }),
35839
- (author.role || publishDate || readTime) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
35840
- ] })
35841
- ] });
36853
+ return /* @__PURE__ */ jsxRuntime.jsxs(
36854
+ "div",
36855
+ {
36856
+ className: cn(
36857
+ "mt-6 flex items-center gap-4 not-prose",
36858
+ authorClassName
36859
+ ),
36860
+ children: [
36861
+ /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "h-12 w-12", children: [
36862
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: author.image }),
36863
+ /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: author.name?.charAt(0) || "A" })
36864
+ ] }),
36865
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
36866
+ author.name && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: author.name }),
36867
+ (author.role || publishDate || readTime) && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: [author.role, publishDate, readTime].filter(Boolean).join(" \xB7 ") })
36868
+ ] })
36869
+ ]
36870
+ }
36871
+ );
35842
36872
  }, [authorSlot, author, publishDate, readTime, authorClassName]);
35843
36873
  const heroMediaContent = React52__namespace.useMemo(() => {
35844
36874
  if (heroMediaSlot) return heroMediaSlot;
@@ -35848,11 +36878,20 @@ function ArticleBreadcrumbSocialComponent({
35848
36878
  {
35849
36879
  src: heroImageSrc,
35850
36880
  alt: heroImageAlt,
35851
- className: cn("my-8 aspect-video w-full rounded-lg object-cover", heroImageClassName),
36881
+ className: cn(
36882
+ "my-8 aspect-video w-full rounded-lg object-cover",
36883
+ heroImageClassName
36884
+ ),
35852
36885
  optixFlowConfig
35853
36886
  }
35854
36887
  );
35855
- }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
36888
+ }, [
36889
+ heroMediaSlot,
36890
+ heroImageSrc,
36891
+ heroImageAlt,
36892
+ heroImageClassName,
36893
+ optixFlowConfig
36894
+ ]);
35856
36895
  const tocContent = React52__namespace.useMemo(() => {
35857
36896
  if (tocSlot) return tocSlot;
35858
36897
  if (!sections || sections.length === 0) return null;
@@ -35878,26 +36917,6 @@ function ArticleBreadcrumbSocialComponent({
35878
36917
  }) })
35879
36918
  ] });
35880
36919
  }, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
35881
- const shareButtonsContent = React52__namespace.useMemo(() => {
35882
- if (shareSlot) return shareSlot;
35883
- if (!socialLinks || socialLinks.length === 0) return null;
35884
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-4", shareClassName), children: [
35885
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-sm font-semibold", children: "Share this article" }),
35886
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-2", children: socialLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
35887
- Pressable,
35888
- {
35889
- href: link.href,
35890
- className: cn(
35891
- "flex h-9 w-9 items-center justify-center rounded-md border hover:bg-muted",
35892
- link.className
35893
- ),
35894
- "aria-label": link["aria-label"],
35895
- children: link.icon
35896
- },
35897
- index
35898
- )) })
35899
- ] });
35900
- }, [shareSlot, socialLinks, shareClassName]);
35901
36920
  return /* @__PURE__ */ jsxRuntime.jsxs(
35902
36921
  Section,
35903
36922
  {
@@ -35910,18 +36929,32 @@ function ArticleBreadcrumbSocialComponent({
35910
36929
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
35911
36930
  breadcrumbsContent,
35912
36931
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-[minmax(0,1fr)_280px]", children: [
35913
- children && /* @__PURE__ */ jsxRuntime.jsxs("article", { className: cn("prose max-w-none dark:prose-invert", articleClassName), children: [
35914
- title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
35915
- authorContent,
35916
- /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
35917
- heroMediaContent,
35918
- children,
35919
- shareButtonsContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "not-prose mt-8 lg:hidden", children: shareButtonsContent })
35920
- ] }),
35921
- /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-8 space-y-6", children: [
35922
- tocContent,
35923
- shareButtonsContent
35924
- ] }) })
36932
+ children && /* @__PURE__ */ jsxRuntime.jsxs(
36933
+ "article",
36934
+ {
36935
+ className: cn(
36936
+ "prose max-w-none dark:prose-invert",
36937
+ articleClassName
36938
+ ),
36939
+ children: [
36940
+ title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
36941
+ "h1",
36942
+ {
36943
+ className: cn(
36944
+ "text-4xl font-bold tracking-tight md:text-5xl",
36945
+ titleClassName
36946
+ ),
36947
+ children: title
36948
+ }
36949
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
36950
+ authorContent,
36951
+ /* @__PURE__ */ jsxRuntime.jsx(Separator, { className: "my-8" }),
36952
+ heroMediaContent,
36953
+ children
36954
+ ]
36955
+ }
36956
+ ),
36957
+ /* @__PURE__ */ jsxRuntime.jsx("aside", { className: cn("hidden lg:block", sidebarClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-8 space-y-6", children: tocContent }) })
35925
36958
  ] })
35926
36959
  ] }),
35927
36960
  enableBackToTop && showBackToTop && /* @__PURE__ */ jsxRuntime.jsx(
@@ -35998,7 +37031,7 @@ function ArticleCompactTocComponent({
35998
37031
  enableTocTracking = true,
35999
37032
  optixFlowConfig,
36000
37033
  background,
36001
- spacing,
37034
+ spacing = "py-6 md:py-32",
36002
37035
  pattern,
36003
37036
  patternOpacity
36004
37037
  }) {
@@ -36679,7 +37712,7 @@ function FaqSimpleAccordion({
36679
37712
  items,
36680
37713
  itemsSlot,
36681
37714
  background,
36682
- spacing,
37715
+ spacing = "py-6 md:py-32",
36683
37716
  pattern,
36684
37717
  patternOpacity,
36685
37718
  patternClassName,
@@ -36721,7 +37754,14 @@ function FaqSimpleAccordion({
36721
37754
  },
36722
37755
  item.id || index
36723
37756
  )) });
36724
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
37757
+ }, [
37758
+ itemsSlot,
37759
+ items,
37760
+ accordionClassName,
37761
+ accordionItemClassName,
37762
+ accordionTriggerClassName,
37763
+ accordionContentClassName
37764
+ ]);
36725
37765
  return /* @__PURE__ */ jsxRuntime.jsx(
36726
37766
  Section,
36727
37767
  {
@@ -36752,7 +37792,7 @@ function FaqStaticList({
36752
37792
  items,
36753
37793
  itemsSlot,
36754
37794
  background,
36755
- spacing,
37795
+ spacing = "py-6 md:py-32",
36756
37796
  pattern,
36757
37797
  patternOpacity,
36758
37798
  patternClassName,
@@ -36771,7 +37811,14 @@ function FaqStaticList({
36771
37811
  typeof item.question === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-2 font-semibold", questionClassName), children: item.question }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: questionClassName, children: item.question }),
36772
37812
  typeof item.answer === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", answerClassName), children: item.answer }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: answerClassName, children: item.answer })
36773
37813
  ] }, index)) });
36774
- }, [itemsSlot, items, itemsWrapperClassName, itemClassName, questionClassName, answerClassName]);
37814
+ }, [
37815
+ itemsSlot,
37816
+ items,
37817
+ itemsWrapperClassName,
37818
+ itemClassName,
37819
+ questionClassName,
37820
+ answerClassName
37821
+ ]);
36775
37822
  return /* @__PURE__ */ jsxRuntime.jsx(
36776
37823
  Section,
36777
37824
  {
@@ -36803,7 +37850,7 @@ function FaqCenteredAccordion({
36803
37850
  items,
36804
37851
  itemsSlot,
36805
37852
  background,
36806
- spacing,
37853
+ spacing = "py-6 md:py-32",
36807
37854
  pattern,
36808
37855
  patternOpacity,
36809
37856
  patternClassName,
@@ -36855,7 +37902,14 @@ function FaqCenteredAccordion({
36855
37902
  ))
36856
37903
  }
36857
37904
  );
36858
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
37905
+ }, [
37906
+ itemsSlot,
37907
+ items,
37908
+ accordionClassName,
37909
+ accordionItemClassName,
37910
+ accordionTriggerClassName,
37911
+ accordionContentClassName
37912
+ ]);
36859
37913
  return /* @__PURE__ */ jsxRuntime.jsx(
36860
37914
  Section,
36861
37915
  {
@@ -36865,7 +37919,7 @@ function FaqCenteredAccordion({
36865
37919
  patternOpacity,
36866
37920
  patternClassName,
36867
37921
  className,
36868
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-16", containerClassName), children: [
37922
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-8 md:space-y-16", containerClassName), children: [
36869
37923
  /* @__PURE__ */ jsxRuntime.jsxs(
36870
37924
  "div",
36871
37925
  {
@@ -36912,7 +37966,7 @@ function FaqBadgeSupport({
36912
37966
  supportAction,
36913
37967
  supportSlot,
36914
37968
  background,
36915
- spacing,
37969
+ spacing = "py-6 md:py-32",
36916
37970
  pattern,
36917
37971
  patternOpacity,
36918
37972
  patternClassName,
@@ -36966,7 +38020,14 @@ function FaqBadgeSupport({
36966
38020
  ))
36967
38021
  }
36968
38022
  );
36969
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38023
+ }, [
38024
+ itemsSlot,
38025
+ items,
38026
+ accordionClassName,
38027
+ accordionItemClassName,
38028
+ accordionTriggerClassName,
38029
+ accordionContentClassName
38030
+ ]);
36970
38031
  const supportSectionContent = React52.useMemo(() => {
36971
38032
  if (supportSlot) return supportSlot;
36972
38033
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -37002,7 +38063,7 @@ function FaqBadgeSupport({
37002
38063
  patternOpacity,
37003
38064
  patternClassName,
37004
38065
  className,
37005
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-16", containerClassName), children: [
38066
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-8 md:space-y-16", containerClassName), children: [
37006
38067
  /* @__PURE__ */ jsxRuntime.jsxs(
37007
38068
  "div",
37008
38069
  {
@@ -37056,7 +38117,7 @@ function FaqNumberedList({
37056
38117
  items,
37057
38118
  itemsSlot,
37058
38119
  background,
37059
- spacing,
38120
+ spacing = "py-6 md:py-32",
37060
38121
  pattern,
37061
38122
  patternOpacity,
37062
38123
  patternClassName,
@@ -37093,7 +38154,7 @@ function FaqNumberedList({
37093
38154
  "span",
37094
38155
  {
37095
38156
  className: cn(
37096
- "bg-secondary flex size-6 shrink-0 items-center justify-center rounded-sm text-xs font-medium",
38157
+ "bg-muted flex size-10 shrink-0 items-center justify-center rounded-lg text-md font-semibold",
37097
38158
  numberClassName
37098
38159
  ),
37099
38160
  children: index + 1
@@ -37118,7 +38179,15 @@ function FaqNumberedList({
37118
38179
  ))
37119
38180
  }
37120
38181
  );
37121
- }, [itemsSlot, items, itemsWrapperClassName, itemClassName, numberClassName, questionClassName, answerClassName]);
38182
+ }, [
38183
+ itemsSlot,
38184
+ items,
38185
+ itemsWrapperClassName,
38186
+ itemClassName,
38187
+ numberClassName,
38188
+ questionClassName,
38189
+ answerClassName
38190
+ ]);
37122
38191
  return /* @__PURE__ */ jsxRuntime.jsx(
37123
38192
  Section,
37124
38193
  {
@@ -37170,7 +38239,7 @@ function FaqNumberedGrid({
37170
38239
  items,
37171
38240
  itemsSlot,
37172
38241
  background,
37173
- spacing,
38242
+ spacing = "py-6 md:py-32",
37174
38243
  pattern,
37175
38244
  patternOpacity,
37176
38245
  patternClassName,
@@ -37207,7 +38276,7 @@ function FaqNumberedGrid({
37207
38276
  "span",
37208
38277
  {
37209
38278
  className: cn(
37210
- "bg-secondary flex size-6 shrink-0 items-center justify-center rounded-sm text-xs font-medium",
38279
+ "bg-muted flex size-10 shrink-0 items-center justify-center rounded-lg text-md font-semibold",
37211
38280
  numberClassName
37212
38281
  ),
37213
38282
  children: index + 1
@@ -37232,7 +38301,15 @@ function FaqNumberedGrid({
37232
38301
  ))
37233
38302
  }
37234
38303
  );
37235
- }, [itemsSlot, items, gridClassName, itemClassName, numberClassName, questionClassName, answerClassName]);
38304
+ }, [
38305
+ itemsSlot,
38306
+ items,
38307
+ gridClassName,
38308
+ itemClassName,
38309
+ numberClassName,
38310
+ questionClassName,
38311
+ answerClassName
38312
+ ]);
37236
38313
  return /* @__PURE__ */ jsxRuntime.jsx(
37237
38314
  Section,
37238
38315
  {
@@ -37289,7 +38366,7 @@ function FaqSplitHelp({
37289
38366
  helpAction,
37290
38367
  helpSlot,
37291
38368
  background,
37292
- spacing,
38369
+ spacing = "py-6 md:py-32",
37293
38370
  pattern,
37294
38371
  patternOpacity,
37295
38372
  patternClassName,
@@ -37342,14 +38419,21 @@ function FaqSplitHelp({
37342
38419
  ))
37343
38420
  }
37344
38421
  );
37345
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38422
+ }, [
38423
+ itemsSlot,
38424
+ items,
38425
+ accordionClassName,
38426
+ accordionItemClassName,
38427
+ accordionTriggerClassName,
38428
+ accordionContentClassName
38429
+ ]);
37346
38430
  const helpSectionContent = React52.useMemo(() => {
37347
38431
  if (helpSlot) return helpSlot;
37348
38432
  return /* @__PURE__ */ jsxRuntime.jsxs(
37349
38433
  "div",
37350
38434
  {
37351
38435
  className: cn(
37352
- "mt-16 flex flex-col items-center gap-4 rounded-lg bg-accent p-6 text-center md:flex-row md:justify-between md:text-left lg:p-8",
38436
+ "mt-8 md:mt-16 flex flex-col items-center gap-4 rounded-lg bg-muted p-6 text-center md:flex-row md:justify-between md:text-left lg:p-8",
37353
38437
  helpSectionClassName
37354
38438
  ),
37355
38439
  children: [
@@ -37371,7 +38455,13 @@ function FaqSplitHelp({
37371
38455
  ]
37372
38456
  }
37373
38457
  );
37374
- }, [helpSlot, helpHeading, helpDescription, helpAction, helpSectionClassName]);
38458
+ }, [
38459
+ helpSlot,
38460
+ helpHeading,
38461
+ helpDescription,
38462
+ helpAction,
38463
+ helpSectionClassName
38464
+ ]);
37375
38465
  return /* @__PURE__ */ jsxRuntime.jsx(
37376
38466
  Section,
37377
38467
  {
@@ -37418,7 +38508,7 @@ function FaqCategorizedSections({
37418
38508
  categories,
37419
38509
  categoriesSlot,
37420
38510
  background,
37421
- spacing,
38511
+ spacing = "py-6 md:py-32",
37422
38512
  pattern,
37423
38513
  patternOpacity,
37424
38514
  patternClassName,
@@ -37485,7 +38575,16 @@ function FaqCategorizedSections({
37485
38575
  ] }, categoryIndex))
37486
38576
  }
37487
38577
  );
37488
- }, [categoriesSlot, categories, categoriesWrapperClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38578
+ }, [
38579
+ categoriesSlot,
38580
+ categories,
38581
+ categoriesWrapperClassName,
38582
+ categoryTitleClassName,
38583
+ accordionClassName,
38584
+ accordionItemClassName,
38585
+ accordionTriggerClassName,
38586
+ accordionContentClassName
38587
+ ]);
37489
38588
  return /* @__PURE__ */ jsxRuntime.jsx(
37490
38589
  Section,
37491
38590
  {
@@ -37537,7 +38636,7 @@ function FaqMutedCards({
37537
38636
  items,
37538
38637
  itemsSlot,
37539
38638
  background,
37540
- spacing,
38639
+ spacing = "py-6 md:py-32",
37541
38640
  pattern,
37542
38641
  patternOpacity,
37543
38642
  patternClassName,
@@ -37590,7 +38689,14 @@ function FaqMutedCards({
37590
38689
  ))
37591
38690
  }
37592
38691
  );
37593
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38692
+ }, [
38693
+ itemsSlot,
38694
+ items,
38695
+ accordionClassName,
38696
+ accordionItemClassName,
38697
+ accordionTriggerClassName,
38698
+ accordionContentClassName
38699
+ ]);
37594
38700
  return /* @__PURE__ */ jsxRuntime.jsx(
37595
38701
  Section,
37596
38702
  {
@@ -37602,10 +38708,10 @@ function FaqMutedCards({
37602
38708
  className,
37603
38709
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container max-w-3xl", containerClassName), children: [
37604
38710
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
37605
- "h1",
38711
+ "h2",
37606
38712
  {
37607
38713
  className: cn(
37608
- "mb-4 text-3xl font-bold md:mb-11 md:text-4xl",
38714
+ "mb-4 text-3xl font-bold md:mb-11 md:text-4xl px-4",
37609
38715
  headingClassName
37610
38716
  ),
37611
38717
  children: heading
@@ -37624,7 +38730,7 @@ function FaqBorderedBadge({
37624
38730
  items,
37625
38731
  itemsSlot,
37626
38732
  background,
37627
- spacing,
38733
+ spacing = "py-6 md:py-32",
37628
38734
  pattern,
37629
38735
  patternOpacity,
37630
38736
  patternClassName,
@@ -37678,7 +38784,14 @@ function FaqBorderedBadge({
37678
38784
  ))
37679
38785
  }
37680
38786
  );
37681
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38787
+ }, [
38788
+ itemsSlot,
38789
+ items,
38790
+ accordionClassName,
38791
+ accordionItemClassName,
38792
+ accordionTriggerClassName,
38793
+ accordionContentClassName
38794
+ ]);
37682
38795
  return /* @__PURE__ */ jsxRuntime.jsx(
37683
38796
  Section,
37684
38797
  {
@@ -37701,15 +38814,18 @@ function FaqBorderedBadge({
37701
38814
  Badge,
37702
38815
  {
37703
38816
  variant: "outline",
37704
- className: cn("flex items-center gap-2", badgeClassName),
38817
+ className: cn(
38818
+ "gap-1.5 px-2.5 py-1 text-sm font-medium",
38819
+ badgeClassName
38820
+ ),
37705
38821
  children: [
37706
- badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, className: "size-4" }),
38822
+ badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16, className: "shrink-0" }),
37707
38823
  badge
37708
38824
  ]
37709
38825
  }
37710
38826
  ),
37711
38827
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
37712
- "h1",
38828
+ "h2",
37713
38829
  {
37714
38830
  className: cn(
37715
38831
  "max-w-2xl text-3xl font-semibold md:text-4xl",
@@ -37748,7 +38864,7 @@ function FaqGradientCategories({
37748
38864
  categories,
37749
38865
  categoriesSlot,
37750
38866
  background,
37751
- spacing,
38867
+ spacing = "py-6 md:py-32",
37752
38868
  pattern,
37753
38869
  patternOpacity,
37754
38870
  patternClassName,
@@ -37816,7 +38932,16 @@ function FaqGradientCategories({
37816
38932
  ] }, categoryIndex))
37817
38933
  }
37818
38934
  );
37819
- }, [categoriesSlot, categories, gridClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38935
+ }, [
38936
+ categoriesSlot,
38937
+ categories,
38938
+ gridClassName,
38939
+ categoryTitleClassName,
38940
+ accordionClassName,
38941
+ accordionItemClassName,
38942
+ accordionTriggerClassName,
38943
+ accordionContentClassName
38944
+ ]);
37820
38945
  return /* @__PURE__ */ jsxRuntime.jsx(
37821
38946
  Section,
37822
38947
  {
@@ -37899,19 +39024,17 @@ function FaqSidebarNavigation({
37899
39024
  accordionContentClassName
37900
39025
  }) {
37901
39026
  const [activeCategory, setActiveCategory] = React52__namespace.useState(
37902
- categories?.[0]?.id || ""
39027
+ categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
37903
39028
  );
37904
- const scrollToCategory = (categoryId) => {
37905
- setActiveCategory(categoryId);
37906
- const element = document.getElementById(`faq-category-${categoryId}`);
37907
- if (element) {
37908
- element.scrollIntoView({ behavior: "smooth", block: "start" });
37909
- }
37910
- };
39029
+ const filteredCategories = React52.useMemo(() => {
39030
+ if (!categories || categories.length === 0) return [];
39031
+ if (activeCategory === "all") return categories;
39032
+ return categories.filter((category) => category.id === activeCategory);
39033
+ }, [categories, activeCategory]);
37911
39034
  const categoriesContent = React52.useMemo(() => {
37912
39035
  if (categoriesSlot) return categoriesSlot;
37913
- if (!categories || categories.length === 0) return null;
37914
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10 lg:w-3/4", categoriesWrapperClassName), children: categories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs(
39036
+ if (filteredCategories.length === 0) return null;
39037
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10 lg:w-3/4", categoriesWrapperClassName), children: filteredCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs(
37915
39038
  "div",
37916
39039
  {
37917
39040
  id: `faq-category-${category.id}`,
@@ -37958,7 +39081,7 @@ function FaqSidebarNavigation({
37958
39081
  },
37959
39082
  category.id
37960
39083
  )) });
37961
- }, [categoriesSlot, categories, categoriesWrapperClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
39084
+ }, [categoriesSlot, filteredCategories, categoriesWrapperClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
37962
39085
  return /* @__PURE__ */ jsxRuntime.jsx(
37963
39086
  Section,
37964
39087
  {
@@ -38008,21 +39131,37 @@ function FaqSidebarNavigation({
38008
39131
  contentWrapperClassName
38009
39132
  ),
38010
39133
  children: [
38011
- /* @__PURE__ */ jsxRuntime.jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sticky top-24 space-y-2", children: categories?.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
38012
- "button",
38013
- {
38014
- onClick: () => scrollToCategory(category.id),
38015
- className: cn(
38016
- "w-full rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors",
38017
- activeCategory === category.id ? cn(
38018
- "bg-primary text-primary-foreground",
38019
- navButtonActiveClassName
38020
- ) : cn("hover:bg-muted", navButtonClassName)
38021
- ),
38022
- children: category.title
38023
- },
38024
- category.id
38025
- )) }) }),
39134
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: cn("lg:w-1/4", navClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "sticky top-24 flex gap-2 overflow-x-auto pb-2 lg:flex-col lg:gap-2 lg:overflow-visible lg:pb-0", children: [
39135
+ categories && categories.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(
39136
+ "button",
39137
+ {
39138
+ onClick: () => setActiveCategory("all"),
39139
+ className: cn(
39140
+ "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
39141
+ activeCategory === "all" ? cn(
39142
+ "bg-primary text-primary-foreground",
39143
+ navButtonActiveClassName
39144
+ ) : cn("hover:bg-muted", navButtonClassName)
39145
+ ),
39146
+ children: "All"
39147
+ }
39148
+ ),
39149
+ categories?.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
39150
+ "button",
39151
+ {
39152
+ onClick: () => setActiveCategory(category.id),
39153
+ className: cn(
39154
+ "shrink-0 whitespace-nowrap rounded-lg px-4 py-2 text-left text-sm font-medium transition-colors lg:w-full",
39155
+ activeCategory === category.id ? cn(
39156
+ "bg-primary text-primary-foreground",
39157
+ navButtonActiveClassName
39158
+ ) : cn("hover:bg-muted", navButtonClassName)
39159
+ ),
39160
+ children: category.title
39161
+ },
39162
+ category.id
39163
+ ))
39164
+ ] }) }),
38026
39165
  categoriesContent
38027
39166
  ]
38028
39167
  }
@@ -38037,7 +39176,7 @@ function FaqCardCategories({
38037
39176
  categories,
38038
39177
  categoriesSlot,
38039
39178
  background,
38040
- spacing,
39179
+ spacing = "py-6 md:py-32",
38041
39180
  pattern,
38042
39181
  patternOpacity,
38043
39182
  patternClassName,
@@ -38115,7 +39254,17 @@ function FaqCardCategories({
38115
39254
  ))
38116
39255
  }
38117
39256
  );
38118
- }, [categoriesSlot, categories, gridClassName, cardClassName, categoryTitleClassName, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
39257
+ }, [
39258
+ categoriesSlot,
39259
+ categories,
39260
+ gridClassName,
39261
+ cardClassName,
39262
+ categoryTitleClassName,
39263
+ accordionClassName,
39264
+ accordionItemClassName,
39265
+ accordionTriggerClassName,
39266
+ accordionContentClassName
39267
+ ]);
38119
39268
  return /* @__PURE__ */ jsxRuntime.jsx(
38120
39269
  Section,
38121
39270
  {
@@ -38180,7 +39329,7 @@ function FaqIconBenefits({
38180
39329
  benefits,
38181
39330
  benefitsSlot,
38182
39331
  background,
38183
- spacing,
39332
+ spacing = "py-6 md:py-32",
38184
39333
  pattern,
38185
39334
  patternOpacity,
38186
39335
  patternClassName,
@@ -38247,7 +39396,16 @@ function FaqIconBenefits({
38247
39396
  ))
38248
39397
  }
38249
39398
  );
38250
- }, [benefitsSlot, benefits, gridClassName, benefitCardClassName, iconWrapperClassName, iconClassName, titleClassName, benefitDescriptionClassName]);
39399
+ }, [
39400
+ benefitsSlot,
39401
+ benefits,
39402
+ gridClassName,
39403
+ benefitCardClassName,
39404
+ iconWrapperClassName,
39405
+ iconClassName,
39406
+ titleClassName,
39407
+ benefitDescriptionClassName
39408
+ ]);
38251
39409
  return /* @__PURE__ */ jsxRuntime.jsx(
38252
39410
  Section,
38253
39411
  {
@@ -38300,7 +39458,7 @@ function FaqRoundedCards({
38300
39458
  items,
38301
39459
  itemsSlot,
38302
39460
  background,
38303
- spacing,
39461
+ spacing = "py-6 md:py-32",
38304
39462
  pattern,
38305
39463
  patternOpacity,
38306
39464
  patternClassName,
@@ -38323,13 +39481,13 @@ function FaqRoundedCards({
38323
39481
  {
38324
39482
  type: "single",
38325
39483
  collapsible: true,
38326
- className: cn("space-y-4", accordionClassName),
39484
+ className: cn("space-y-3", accordionClassName),
38327
39485
  children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
38328
39486
  AccordionItem,
38329
39487
  {
38330
39488
  value: item.id,
38331
39489
  className: cn(
38332
- "rounded-lg bg-background px-4 border-none",
39490
+ "rounded-xl border border-border/60 bg-card px-5 shadow-sm transition-shadow hover:shadow-md data-[state=open]:shadow-md",
38333
39491
  accordionItemClassName
38334
39492
  ),
38335
39493
  children: [
@@ -38337,7 +39495,7 @@ function FaqRoundedCards({
38337
39495
  AccordionTrigger,
38338
39496
  {
38339
39497
  className: cn(
38340
- "font-semibold hover:no-underline",
39498
+ "py-4 font-medium transition-opacity hover:no-underline hover:opacity-70 lg:text-lg [&[data-state=open]>svg]:rotate-180",
38341
39499
  accordionTriggerClassName
38342
39500
  ),
38343
39501
  children: item.question
@@ -38346,7 +39504,10 @@ function FaqRoundedCards({
38346
39504
  /* @__PURE__ */ jsxRuntime.jsx(
38347
39505
  AccordionContent,
38348
39506
  {
38349
- className: cn("text-muted-foreground", accordionContentClassName),
39507
+ className: cn(
39508
+ "pb-4 text-muted-foreground",
39509
+ accordionContentClassName
39510
+ ),
38350
39511
  children: item.answer
38351
39512
  }
38352
39513
  )
@@ -38356,7 +39517,14 @@ function FaqRoundedCards({
38356
39517
  ))
38357
39518
  }
38358
39519
  );
38359
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
39520
+ }, [
39521
+ itemsSlot,
39522
+ items,
39523
+ accordionClassName,
39524
+ accordionItemClassName,
39525
+ accordionTriggerClassName,
39526
+ accordionContentClassName
39527
+ ]);
38360
39528
  return /* @__PURE__ */ jsxRuntime.jsx(
38361
39529
  Section,
38362
39530
  {
@@ -38385,16 +39553,7 @@ function FaqRoundedCards({
38385
39553
  children: heading
38386
39554
  }
38387
39555
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
38388
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
38389
- "p",
38390
- {
38391
- className: cn(
38392
- "text-muted-foreground lg:text-lg",
38393
- descriptionClassName
38394
- ),
38395
- children: description
38396
- }
38397
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
39556
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("lg:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
38398
39557
  ]
38399
39558
  }
38400
39559
  ),
@@ -38402,7 +39561,7 @@ function FaqRoundedCards({
38402
39561
  "div",
38403
39562
  {
38404
39563
  className: cn(
38405
- "mx-auto mt-10 max-w-3xl rounded-2xl bg-muted/50 p-6 md:p-8",
39564
+ "mx-auto mt-10 max-w-3xl",
38406
39565
  cardsWrapperClassName
38407
39566
  ),
38408
39567
  children: itemsContent
@@ -38425,7 +39584,7 @@ function FaqProfileSidebar({
38425
39584
  contactText,
38426
39585
  contactAction,
38427
39586
  background,
38428
- spacing,
39587
+ spacing = "py-6 md:py-32",
38429
39588
  pattern,
38430
39589
  patternOpacity,
38431
39590
  patternClassName,
@@ -38478,7 +39637,14 @@ function FaqProfileSidebar({
38478
39637
  },
38479
39638
  item.id
38480
39639
  )) });
38481
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
39640
+ }, [
39641
+ itemsSlot,
39642
+ items,
39643
+ accordionClassName,
39644
+ accordionItemClassName,
39645
+ accordionTriggerClassName,
39646
+ accordionContentClassName
39647
+ ]);
38482
39648
  const profileSectionContent = React52.useMemo(() => {
38483
39649
  if (profileSlot) return profileSlot;
38484
39650
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("rounded-lg border p-6", profileCardClassName), children: [
@@ -38519,22 +39685,46 @@ function FaqProfileSidebar({
38519
39685
  children: profileDescription
38520
39686
  }
38521
39687
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: profileDescriptionClassName, children: profileDescription })),
38522
- contactAction && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-6 border-t pt-6", contactSectionClassName), children: [
38523
- contactText && (typeof contactText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: contactText }) : contactText),
38524
- /* @__PURE__ */ jsxRuntime.jsx(
38525
- Pressable,
38526
- {
38527
- href: contactAction.href,
38528
- onClick: contactAction.onClick,
38529
- variant: contactAction.variant || "outline",
38530
- size: contactAction.size,
38531
- className: cn("mt-3 w-full", contactAction.className),
38532
- children: contactAction.children || contactAction.label
38533
- }
38534
- )
38535
- ] })
39688
+ contactAction && /* @__PURE__ */ jsxRuntime.jsxs(
39689
+ "div",
39690
+ {
39691
+ className: cn(
39692
+ "mt-6 border-t pt-6 flex flex-col space-y-4",
39693
+ contactSectionClassName
39694
+ ),
39695
+ children: [
39696
+ contactText && (typeof contactText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: contactText }) : contactText),
39697
+ /* @__PURE__ */ jsxRuntime.jsx(
39698
+ Pressable,
39699
+ {
39700
+ href: contactAction.href,
39701
+ onClick: contactAction.onClick,
39702
+ variant: contactAction.variant || "outline",
39703
+ size: contactAction.size,
39704
+ className: cn("mt-3 w-full", contactAction.className),
39705
+ children: contactAction.children || contactAction.label
39706
+ }
39707
+ )
39708
+ ]
39709
+ }
39710
+ )
38536
39711
  ] });
38537
- }, [profileSlot, profileImage, profileName, profileRole, profileDescription, contactText, contactAction, profileCardClassName, profileImageClassName, profileNameClassName, profileRoleClassName, profileDescriptionClassName, contactSectionClassName, optixFlowConfig]);
39712
+ }, [
39713
+ profileSlot,
39714
+ profileImage,
39715
+ profileName,
39716
+ profileRole,
39717
+ profileDescription,
39718
+ contactText,
39719
+ contactAction,
39720
+ profileCardClassName,
39721
+ profileImageClassName,
39722
+ profileNameClassName,
39723
+ profileRoleClassName,
39724
+ profileDescriptionClassName,
39725
+ contactSectionClassName,
39726
+ optixFlowConfig
39727
+ ]);
38538
39728
  return /* @__PURE__ */ jsxRuntime.jsx(
38539
39729
  Section,
38540
39730
  {
@@ -38548,7 +39738,7 @@ function FaqProfileSidebar({
38548
39738
  "div",
38549
39739
  {
38550
39740
  className: cn(
38551
- "flex flex-col gap-10 lg:flex-row lg:gap-16",
39741
+ "flex flex-col gap-6 lg:flex-row lg:gap-16",
38552
39742
  contentWrapperClassName
38553
39743
  ),
38554
39744
  children: [
@@ -38592,14 +39782,11 @@ function FaqSplitHero({
38592
39782
  imageSlot,
38593
39783
  imageSrc,
38594
39784
  imageAlt,
38595
- background,
38596
- spacing,
39785
+ background = "dark",
38597
39786
  pattern,
38598
39787
  patternOpacity,
38599
- patternClassName,
38600
39788
  className,
38601
- contentWrapperClassName,
38602
- leftColumnClassName,
39789
+ contentClassName,
38603
39790
  headerClassName,
38604
39791
  headingClassName,
38605
39792
  subheadingClassName,
@@ -38608,8 +39795,23 @@ function FaqSplitHero({
38608
39795
  accordionTriggerClassName,
38609
39796
  accordionContentClassName,
38610
39797
  imageClassName,
38611
- optixFlowConfig
39798
+ optixFlowConfig,
39799
+ directionConfig = { desktop: "mediaRight", mobile: "mediaTop" }
38612
39800
  }) {
39801
+ const bgColorClass = React52.useMemo(() => {
39802
+ switch (background) {
39803
+ case "dark":
39804
+ return "bg-gray-900 text-white";
39805
+ case "gray":
39806
+ return "bg-gray-100 text-gray-900";
39807
+ case "white":
39808
+ return "bg-white text-gray-900";
39809
+ default:
39810
+ return "bg-background text-foreground";
39811
+ }
39812
+ }, [background]);
39813
+ const desktopOrder = directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
39814
+ const mobileOrder = directionConfig.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
38613
39815
  const itemsContent = React52.useMemo(() => {
38614
39816
  if (itemsSlot) return itemsSlot;
38615
39817
  if (!items || items.length === 0) return null;
@@ -38623,13 +39825,13 @@ function FaqSplitHero({
38623
39825
  AccordionItem,
38624
39826
  {
38625
39827
  value: item.id,
38626
- className: cn("border-b border-border/50", accordionItemClassName),
39828
+ className: cn("border-b border-current/20", accordionItemClassName),
38627
39829
  children: [
38628
39830
  /* @__PURE__ */ jsxRuntime.jsx(
38629
39831
  AccordionTrigger,
38630
39832
  {
38631
39833
  className: cn(
38632
- "py-4 text-left text-base font-medium text-foreground transition-colors hover:text-primary hover:no-underline lg:text-lg",
39834
+ "py-4 text-left text-base font-medium transition-opacity hover:opacity-70 hover:no-underline lg:text-lg",
38633
39835
  accordionTriggerClassName
38634
39836
  ),
38635
39837
  children: item.question
@@ -38638,10 +39840,7 @@ function FaqSplitHero({
38638
39840
  /* @__PURE__ */ jsxRuntime.jsx(
38639
39841
  AccordionContent,
38640
39842
  {
38641
- className: cn(
38642
- "pb-4 text-muted-foreground",
38643
- accordionContentClassName
38644
- ),
39843
+ className: cn("pb-4 opacity-80", accordionContentClassName),
38645
39844
  children: item.answer
38646
39845
  }
38647
39846
  )
@@ -38651,71 +39850,65 @@ function FaqSplitHero({
38651
39850
  ))
38652
39851
  }
38653
39852
  );
38654
- }, [itemsSlot, items, accordionClassName, accordionItemClassName, accordionTriggerClassName, accordionContentClassName]);
38655
- const imageContent = React52.useMemo(() => {
38656
- if (imageSlot) return imageSlot;
38657
- if (!imageSrc) return null;
38658
- return /* @__PURE__ */ jsxRuntime.jsx(
38659
- img.Img,
38660
- {
38661
- src: imageSrc,
38662
- alt: imageAlt || "FAQ section image",
38663
- className: cn(
38664
- "hidden h-screen w-1/2 object-cover lg:block",
38665
- imageClassName
38666
- ),
38667
- optixFlowConfig
38668
- }
38669
- );
38670
- }, [imageSlot, imageSrc, imageAlt, imageClassName, optixFlowConfig]);
38671
- return /* @__PURE__ */ jsxRuntime.jsx(
38672
- Section,
39853
+ }, [
39854
+ itemsSlot,
39855
+ items,
39856
+ accordionClassName,
39857
+ accordionItemClassName,
39858
+ accordionTriggerClassName,
39859
+ accordionContentClassName
39860
+ ]);
39861
+ const contentArea = /* @__PURE__ */ jsxRuntime.jsxs(
39862
+ "div",
38673
39863
  {
38674
- background,
38675
- spacing,
38676
- pattern,
38677
- patternOpacity,
38678
- patternClassName,
38679
- className: cn("dark flex", className),
38680
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex", contentWrapperClassName), children: [
38681
- /* @__PURE__ */ jsxRuntime.jsx(
38682
- "div",
38683
- {
38684
- className: cn(
38685
- "flex w-full items-center justify-center bg-background lg:w-1/2",
38686
- leftColumnClassName
38687
- ),
38688
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container my-10 flex w-full max-w-[600px] flex-col gap-8 px-6 lg:px-10", children: [
38689
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-4", headerClassName), children: [
38690
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
38691
- "h2",
38692
- {
38693
- className: cn(
38694
- "text-3xl font-bold text-foreground lg:text-4xl",
38695
- headingClassName
38696
- ),
38697
- children: heading
38698
- }
38699
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
38700
- subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
38701
- "p",
38702
- {
38703
- className: cn(
38704
- "text-lg text-muted-foreground",
38705
- subheadingClassName
38706
- ),
38707
- children: subheading
38708
- }
38709
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subheadingClassName, children: subheading }))
38710
- ] }),
38711
- itemsContent
38712
- ] })
38713
- }
38714
- ),
38715
- imageContent
38716
- ] })
39864
+ className: cn(
39865
+ "relative flex w-full items-center lg:w-1/2",
39866
+ bgColorClass,
39867
+ contentClassName
39868
+ ),
39869
+ children: [
39870
+ pattern && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(PatternBackground, { pattern, opacity: patternOpacity }) }),
39871
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 w-full px-8 py-16 sm:px-12 sm:py-20 lg:px-16 lg:py-24 xl:px-24", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-xl space-y-8", children: [
39872
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-4", headerClassName), children: [
39873
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
39874
+ "h2",
39875
+ {
39876
+ className: cn(
39877
+ "text-3xl font-bold leading-tight tracking-tight sm:text-4xl lg:text-5xl",
39878
+ headingClassName
39879
+ ),
39880
+ children: heading
39881
+ }
39882
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
39883
+ subheading && (typeof subheading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
39884
+ "p",
39885
+ {
39886
+ className: cn(
39887
+ "text-base leading-relaxed opacity-80 sm:text-lg",
39888
+ subheadingClassName
39889
+ ),
39890
+ children: subheading
39891
+ }
39892
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: subheadingClassName, children: subheading }))
39893
+ ] }),
39894
+ itemsContent
39895
+ ] }) })
39896
+ ]
38717
39897
  }
38718
39898
  );
39899
+ const imageArea = imageSlot ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-64 w-full sm:h-96 lg:h-auto lg:w-1/2", children: imageSlot }) : imageSrc ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-64 w-full sm:h-96 lg:h-auto lg:w-1/2", children: /* @__PURE__ */ jsxRuntime.jsx(
39900
+ img.Img,
39901
+ {
39902
+ src: imageSrc,
39903
+ alt: imageAlt || "FAQ section image",
39904
+ className: cn("h-full w-full object-cover", imageClassName),
39905
+ optixFlowConfig
39906
+ }
39907
+ ) }) : null;
39908
+ return /* @__PURE__ */ jsxRuntime.jsx("section", { className: cn("relative w-full overflow-hidden", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex min-h-screen", mobileOrder, desktopOrder), children: [
39909
+ contentArea,
39910
+ imageArea
39911
+ ] }) });
38719
39912
  }
38720
39913
  function AboutSplitHero({
38721
39914
  brandText,