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