@opensite/ui 3.7.5 → 3.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/blog-featured-popular.cjs +13 -12
- package/dist/blog-featured-popular.d.cts +1 -1
- package/dist/blog-featured-popular.d.ts +1 -1
- package/dist/blog-featured-popular.js +13 -12
- package/dist/blog-horizontal-cards.cjs +22 -41
- package/dist/blog-horizontal-cards.d.cts +1 -1
- package/dist/blog-horizontal-cards.d.ts +1 -1
- package/dist/blog-horizontal-cards.js +22 -41
- package/dist/blog-related-articles.cjs +8 -7
- package/dist/blog-related-articles.js +8 -7
- package/dist/carousel-icon-tabs.cjs +6 -4
- package/dist/carousel-icon-tabs.d.cts +5 -1
- package/dist/carousel-icon-tabs.d.ts +5 -1
- package/dist/carousel-icon-tabs.js +6 -4
- package/dist/carousel-progress-slider.cjs +3 -2
- package/dist/carousel-progress-slider.js +3 -2
- package/dist/carousel-scale-focus.cjs +1 -1
- package/dist/carousel-scale-focus.js +1 -1
- package/dist/carousel-scrolling-feature-showcase.cjs +4 -2
- package/dist/carousel-scrolling-feature-showcase.js +4 -2
- package/dist/carousel-sidebar-resources.cjs +11 -15
- package/dist/carousel-sidebar-resources.d.cts +5 -1
- package/dist/carousel-sidebar-resources.d.ts +5 -1
- package/dist/carousel-sidebar-resources.js +11 -15
- package/dist/carousel-tabs-content.cjs +1 -1
- package/dist/carousel-tabs-content.js +1 -1
- package/dist/expandable-case-study-cards.cjs +3 -3
- package/dist/expandable-case-study-cards.js +3 -3
- package/dist/feature-animated-carousel.cjs +2 -1
- package/dist/feature-animated-carousel.js +2 -1
- package/dist/feature-bento-image-grid.cjs +8 -9
- package/dist/feature-bento-image-grid.js +8 -9
- package/dist/feature-image-overlay-badge.cjs +3 -40
- package/dist/feature-image-overlay-badge.js +3 -40
- package/dist/feature-integration-cards.cjs +4 -13
- package/dist/feature-integration-cards.js +4 -13
- package/dist/footer-newsletter-contact.cjs +4 -4
- package/dist/footer-newsletter-contact.js +4 -4
- package/dist/hero-adaptable-product-grid.cjs +2 -1
- package/dist/hero-adaptable-product-grid.js +2 -1
- package/dist/hero-ai-powered-carousel.cjs +2 -1
- package/dist/hero-ai-powered-carousel.js +2 -1
- package/dist/hero-architecture-fullscreen.cjs +3 -2
- package/dist/hero-architecture-fullscreen.js +3 -2
- package/dist/hero-badge-image-split.cjs +3 -2
- package/dist/hero-badge-image-split.js +3 -2
- package/dist/hero-badge-shadow-overlay.cjs +2 -1
- package/dist/hero-badge-shadow-overlay.js +2 -1
- package/dist/hero-billing-platform-logos.cjs +12 -8
- package/dist/hero-billing-platform-logos.js +12 -8
- package/dist/hero-business-carousel-dots.cjs +2 -1
- package/dist/hero-business-carousel-dots.js +2 -1
- package/dist/hero-conversation-intelligence.cjs +2 -1
- package/dist/hero-conversation-intelligence.js +2 -1
- package/dist/hero-crm-streamlined.cjs +2 -2
- package/dist/hero-crm-streamlined.js +2 -2
- package/dist/hero-design-carousel-portfolio.cjs +2 -1
- package/dist/hero-design-carousel-portfolio.js +2 -1
- package/dist/hero-ecommerce-product-showcase.cjs +8 -4
- package/dist/hero-ecommerce-product-showcase.js +8 -4
- package/dist/hero-event-registration.cjs +2 -1
- package/dist/hero-event-registration.js +2 -1
- package/dist/hero-gradient-avatars-rating.cjs +4 -2
- package/dist/hero-gradient-avatars-rating.js +4 -2
- package/dist/hero-mental-health-team.cjs +13 -18
- package/dist/hero-mental-health-team.js +13 -18
- package/dist/hero-mentorship-video-split.cjs +3 -10
- package/dist/hero-mentorship-video-split.js +3 -10
- package/dist/hero-product-showcase-floating.cjs +4 -2
- package/dist/hero-product-showcase-floating.js +4 -2
- package/dist/hero-saas-dashboard-preview.cjs +2 -1
- package/dist/hero-saas-dashboard-preview.js +2 -1
- package/dist/hero-software-growth-video-dialog.cjs +2 -1
- package/dist/hero-software-growth-video-dialog.js +2 -1
- package/dist/hero-split-icon-cards.cjs +7 -59
- package/dist/hero-split-icon-cards.js +7 -59
- package/dist/hero-task-timer-animated.cjs +155 -86
- package/dist/hero-task-timer-animated.d.cts +19 -18
- package/dist/hero-task-timer-animated.d.ts +19 -18
- package/dist/hero-task-timer-animated.js +156 -68
- package/dist/navbar-animated-preview.cjs +1 -1
- package/dist/navbar-animated-preview.js +1 -1
- package/dist/navbar-enterprise-mega.cjs +9 -3
- package/dist/navbar-enterprise-mega.d.cts +3 -0
- package/dist/navbar-enterprise-mega.d.ts +3 -0
- package/dist/navbar-enterprise-mega.js +9 -3
- package/dist/navbar-image-preview.cjs +10 -2
- package/dist/navbar-image-preview.d.cts +6 -6
- package/dist/navbar-image-preview.d.ts +6 -6
- package/dist/navbar-image-preview.js +10 -2
- package/dist/process-hover-cards.cjs +4 -2
- package/dist/process-hover-cards.js +4 -2
- package/dist/process-icon-timeline.cjs +1 -2
- package/dist/process-icon-timeline.d.cts +0 -4
- package/dist/process-icon-timeline.d.ts +0 -4
- package/dist/process-icon-timeline.js +1 -2
- package/dist/process-scroll-image.cjs +2 -2
- package/dist/process-scroll-image.js +2 -2
- package/dist/process-steps-grid.cjs +7 -5
- package/dist/process-steps-grid.js +7 -5
- package/dist/registry.cjs +391 -315
- package/dist/registry.js +391 -315
- package/dist/testimonials-animated-split.cjs +2 -1
- package/dist/testimonials-animated-split.js +2 -1
- package/dist/testimonials-carousel-image.cjs +4 -2
- package/dist/testimonials-carousel-image.js +4 -2
- package/dist/testimonials-company-logo.cjs +4 -2
- package/dist/testimonials-company-logo.js +4 -2
- package/dist/testimonials-scrolling-columns.cjs +4 -2
- package/dist/testimonials-scrolling-columns.js +4 -2
- package/package.json +1 -1
|
@@ -4,43 +4,18 @@
|
|
|
4
4
|
var React = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
|
-
var img = require('@page-speed/img');
|
|
8
|
-
var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
|
|
9
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
8
|
var pressable = require('@page-speed/pressable');
|
|
9
|
+
var img = require('@page-speed/img');
|
|
11
10
|
|
|
12
11
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
12
|
|
|
14
|
-
function _interopNamespace(e) {
|
|
15
|
-
if (e && e.__esModule) return e;
|
|
16
|
-
var n = Object.create(null);
|
|
17
|
-
if (e) {
|
|
18
|
-
Object.keys(e).forEach(function (k) {
|
|
19
|
-
if (k !== 'default') {
|
|
20
|
-
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
21
|
-
Object.defineProperty(n, k, d.get ? d : {
|
|
22
|
-
enumerable: true,
|
|
23
|
-
get: function () { return e[k]; }
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
n.default = e;
|
|
29
|
-
return Object.freeze(n);
|
|
30
|
-
}
|
|
31
|
-
|
|
32
13
|
var React__default = /*#__PURE__*/_interopDefault(React);
|
|
33
|
-
var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatioPrimitive);
|
|
34
14
|
|
|
35
15
|
// components/blocks/hero/hero-task-timer-animated.tsx
|
|
36
16
|
function cn(...inputs) {
|
|
37
17
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
38
18
|
}
|
|
39
|
-
function AspectRatio({
|
|
40
|
-
...props
|
|
41
|
-
}) {
|
|
42
|
-
return /* @__PURE__ */ jsxRuntime.jsx(AspectRatioPrimitive__namespace.Root, { "data-slot": "aspect-ratio", ...props });
|
|
43
|
-
}
|
|
44
19
|
var maxWidthStyles = {
|
|
45
20
|
sm: "max-w-screen-sm",
|
|
46
21
|
md: "max-w-screen-md",
|
|
@@ -536,69 +511,71 @@ var BrandLogo = ({
|
|
|
536
511
|
}
|
|
537
512
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
538
513
|
};
|
|
514
|
+
function padTwo(n) {
|
|
515
|
+
return n.toString().padStart(2, "0");
|
|
516
|
+
}
|
|
517
|
+
var RING_RADIUS = 90;
|
|
518
|
+
var RING_CIRCUMFERENCE = 2 * Math.PI * RING_RADIUS;
|
|
539
519
|
function HeroTaskTimerAnimated({
|
|
540
520
|
sectionId = "hero-task-timer-animated",
|
|
541
521
|
heading,
|
|
522
|
+
headingSlot,
|
|
542
523
|
description,
|
|
543
|
-
descriptionClassName,
|
|
544
524
|
actions,
|
|
545
525
|
actionsSlot,
|
|
546
526
|
actionsClassName,
|
|
547
|
-
|
|
548
|
-
|
|
527
|
+
taskItems,
|
|
528
|
+
timerMinutes = 25,
|
|
529
|
+
timerSeconds = 0,
|
|
549
530
|
background,
|
|
550
531
|
pattern,
|
|
551
532
|
patternOpacity,
|
|
552
533
|
className,
|
|
553
|
-
spacing = "
|
|
534
|
+
spacing = "hero",
|
|
554
535
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
555
536
|
headerClassName,
|
|
556
537
|
headingClassName,
|
|
557
|
-
|
|
558
|
-
optixFlowConfig,
|
|
538
|
+
descriptionClassName,
|
|
559
539
|
logo,
|
|
560
540
|
logoSlot,
|
|
561
541
|
logoClassName
|
|
562
542
|
}) {
|
|
563
|
-
const
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
543
|
+
const initialTotal = timerMinutes * 60 + timerSeconds;
|
|
544
|
+
const [remaining, setRemaining] = React.useState(initialTotal);
|
|
545
|
+
const [activeTaskIndex, setActiveTaskIndex] = React.useState(0);
|
|
546
|
+
React.useEffect(() => {
|
|
547
|
+
const interval = setInterval(() => {
|
|
548
|
+
setRemaining((prev) => prev <= 0 ? initialTotal : prev - 1);
|
|
549
|
+
}, 1e3);
|
|
550
|
+
return () => clearInterval(interval);
|
|
551
|
+
}, [initialTotal]);
|
|
552
|
+
const cycleTask = React.useCallback(() => {
|
|
553
|
+
if (!taskItems || taskItems.length <= 1) return;
|
|
554
|
+
setActiveTaskIndex((prev) => (prev + 1) % taskItems.length);
|
|
555
|
+
}, [taskItems]);
|
|
556
|
+
React.useEffect(() => {
|
|
557
|
+
if (!taskItems || taskItems.length <= 1) return;
|
|
558
|
+
const interval = setInterval(cycleTask, 3e3);
|
|
559
|
+
return () => clearInterval(interval);
|
|
560
|
+
}, [taskItems, cycleTask]);
|
|
561
|
+
const minutes = Math.floor(remaining / 60);
|
|
562
|
+
const seconds = remaining % 60;
|
|
563
|
+
const progress = initialTotal > 0 ? remaining / initialTotal : 1;
|
|
564
|
+
const strokeDashoffset = RING_CIRCUMFERENCE * (1 - progress);
|
|
565
|
+
const renderHeading = React.useMemo(() => {
|
|
566
|
+
if (headingSlot) return headingSlot;
|
|
567
|
+
if (!heading) return null;
|
|
568
|
+
return typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
569
|
+
"h1",
|
|
568
570
|
{
|
|
569
571
|
className: cn(
|
|
570
|
-
"
|
|
571
|
-
|
|
572
|
+
"max-w-3xl text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl text-balance",
|
|
573
|
+
headingClassName
|
|
572
574
|
),
|
|
573
|
-
children:
|
|
574
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-10 w-full lg:w-[60%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
575
|
-
img.Img,
|
|
576
|
-
{
|
|
577
|
-
src: images[0].src,
|
|
578
|
-
alt: images[0].alt,
|
|
579
|
-
className: cn(
|
|
580
|
-
"block size-full object-cover object-center",
|
|
581
|
-
images[0].className
|
|
582
|
-
),
|
|
583
|
-
optixFlowConfig
|
|
584
|
-
}
|
|
585
|
-
) }) }) }),
|
|
586
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-10 w-full lg:w-[40%]", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden rounded-lg shadow-xl", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.916786227 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
587
|
-
img.Img,
|
|
588
|
-
{
|
|
589
|
-
src: images[1].src,
|
|
590
|
-
alt: images[1].alt,
|
|
591
|
-
className: cn(
|
|
592
|
-
"block size-full object-cover object-center",
|
|
593
|
-
images[1].className
|
|
594
|
-
),
|
|
595
|
-
optixFlowConfig
|
|
596
|
-
}
|
|
597
|
-
) }) }) })
|
|
598
|
-
]
|
|
575
|
+
children: heading
|
|
599
576
|
}
|
|
600
|
-
);
|
|
601
|
-
}, [
|
|
577
|
+
) : heading;
|
|
578
|
+
}, [headingSlot, heading, headingClassName]);
|
|
602
579
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
603
580
|
Section,
|
|
604
581
|
{
|
|
@@ -609,48 +586,140 @@ function HeroTaskTimerAnimated({
|
|
|
609
586
|
patternOpacity,
|
|
610
587
|
className,
|
|
611
588
|
containerClassName,
|
|
612
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col gap-
|
|
589
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center gap-10 lg:flex-row lg:items-center lg:gap-16", children: [
|
|
613
590
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
614
591
|
"div",
|
|
615
592
|
{
|
|
616
593
|
className: cn(
|
|
617
|
-
"flex flex-col gap-
|
|
594
|
+
"flex flex-col gap-5 w-full lg:w-1/2 pt-8 lg:pt-0",
|
|
618
595
|
headerClassName
|
|
619
596
|
),
|
|
620
597
|
children: [
|
|
621
598
|
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
622
|
-
|
|
623
|
-
|
|
599
|
+
renderHeading,
|
|
600
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
601
|
+
"p",
|
|
624
602
|
{
|
|
625
603
|
className: cn(
|
|
626
|
-
"max-w-
|
|
627
|
-
|
|
604
|
+
"max-w-xl text-lg text-muted-foreground text-balance",
|
|
605
|
+
descriptionClassName
|
|
628
606
|
),
|
|
629
|
-
children:
|
|
607
|
+
children: description
|
|
630
608
|
}
|
|
631
|
-
) :
|
|
632
|
-
|
|
609
|
+
) : description),
|
|
610
|
+
taskItems && taskItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2 flex flex-col gap-3", children: taskItems.map((task, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
611
|
+
"div",
|
|
633
612
|
{
|
|
634
|
-
className:
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
641
|
-
|
|
613
|
+
className: "flex items-center gap-3 transition-all duration-700 ease-in-out",
|
|
614
|
+
style: {
|
|
615
|
+
opacity: index === activeTaskIndex ? 1 : 0.35,
|
|
616
|
+
transform: index === activeTaskIndex ? "translateX(8px)" : "translateX(0)"
|
|
617
|
+
},
|
|
618
|
+
children: [
|
|
619
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
620
|
+
"div",
|
|
621
|
+
{
|
|
622
|
+
className: cn(
|
|
623
|
+
"size-2.5 shrink-0 rounded-full transition-colors duration-700",
|
|
624
|
+
index === activeTaskIndex ? "bg-primary" : "bg-muted-foreground/30"
|
|
625
|
+
)
|
|
626
|
+
}
|
|
627
|
+
),
|
|
628
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
629
|
+
"span",
|
|
630
|
+
{
|
|
631
|
+
className: cn(
|
|
632
|
+
"text-sm font-medium transition-colors duration-700",
|
|
633
|
+
index === activeTaskIndex ? "text-foreground" : "text-muted-foreground/50"
|
|
634
|
+
),
|
|
635
|
+
children: task
|
|
636
|
+
}
|
|
637
|
+
)
|
|
638
|
+
]
|
|
639
|
+
},
|
|
640
|
+
index
|
|
641
|
+
)) }),
|
|
642
642
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
643
643
|
BlockActions,
|
|
644
644
|
{
|
|
645
645
|
actions,
|
|
646
646
|
actionsSlot,
|
|
647
|
-
actionsClassName
|
|
647
|
+
actionsClassName: cn("mt-2", actionsClassName)
|
|
648
648
|
}
|
|
649
649
|
)
|
|
650
650
|
]
|
|
651
651
|
}
|
|
652
652
|
),
|
|
653
|
-
|
|
653
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full items-center justify-center lg:w-1/2", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center gap-6", children: [
|
|
654
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
655
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
656
|
+
"svg",
|
|
657
|
+
{
|
|
658
|
+
width: "240",
|
|
659
|
+
height: "240",
|
|
660
|
+
viewBox: "0 0 220 220",
|
|
661
|
+
className: "drop-shadow-lg",
|
|
662
|
+
children: [
|
|
663
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
664
|
+
"circle",
|
|
665
|
+
{
|
|
666
|
+
cx: "110",
|
|
667
|
+
cy: "110",
|
|
668
|
+
r: RING_RADIUS,
|
|
669
|
+
fill: "none",
|
|
670
|
+
stroke: "currentColor",
|
|
671
|
+
strokeWidth: "5",
|
|
672
|
+
className: "text-muted-foreground/15"
|
|
673
|
+
}
|
|
674
|
+
),
|
|
675
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
676
|
+
"circle",
|
|
677
|
+
{
|
|
678
|
+
cx: "110",
|
|
679
|
+
cy: "110",
|
|
680
|
+
r: RING_RADIUS,
|
|
681
|
+
fill: "none",
|
|
682
|
+
stroke: "currentColor",
|
|
683
|
+
strokeWidth: "5",
|
|
684
|
+
strokeLinecap: "round",
|
|
685
|
+
className: "text-primary transition-[stroke-dashoffset] duration-1000 ease-linear",
|
|
686
|
+
strokeDasharray: RING_CIRCUMFERENCE,
|
|
687
|
+
strokeDashoffset,
|
|
688
|
+
transform: "rotate(-90 110 110)"
|
|
689
|
+
}
|
|
690
|
+
)
|
|
691
|
+
]
|
|
692
|
+
}
|
|
693
|
+
),
|
|
694
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 flex items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-baseline gap-1 font-mono", children: [
|
|
695
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-5xl font-bold tabular-nums tracking-tight md:text-6xl", children: padTwo(minutes) }),
|
|
696
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "animate-pulse text-3xl font-bold text-primary md:text-4xl", children: ":" }),
|
|
697
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-5xl font-bold tabular-nums tracking-tight md:text-6xl", children: padTwo(seconds) })
|
|
698
|
+
] }) })
|
|
699
|
+
] }),
|
|
700
|
+
taskItems && taskItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative h-8 w-full max-w-[280px] overflow-hidden", children: taskItems.map((task, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
701
|
+
"div",
|
|
702
|
+
{
|
|
703
|
+
className: "absolute inset-0 flex items-center justify-center transition-all duration-700 ease-in-out",
|
|
704
|
+
style: {
|
|
705
|
+
opacity: index === activeTaskIndex ? 1 : 0,
|
|
706
|
+
transform: index === activeTaskIndex ? "translateY(0)" : "translateY(12px)"
|
|
707
|
+
},
|
|
708
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("span", { className: "truncate rounded-full bg-primary/10 px-4 py-1.5 text-sm font-medium text-primary", children: task })
|
|
709
|
+
},
|
|
710
|
+
index
|
|
711
|
+
)) }),
|
|
712
|
+
taskItems && taskItems.length > 1 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-2", children: taskItems.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
713
|
+
"div",
|
|
714
|
+
{
|
|
715
|
+
className: cn(
|
|
716
|
+
"size-2 rounded-full transition-all duration-500",
|
|
717
|
+
index === activeTaskIndex ? "scale-125 bg-primary" : "bg-muted-foreground/25"
|
|
718
|
+
)
|
|
719
|
+
},
|
|
720
|
+
index
|
|
721
|
+
)) })
|
|
722
|
+
] }) })
|
|
654
723
|
] })
|
|
655
724
|
}
|
|
656
725
|
);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
|
|
3
3
|
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
4
|
-
import { A as ActionConfig
|
|
4
|
+
import { A as ActionConfig } from './blocks-DyouPohq.cjs';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import './dynamic-icon.cjs';
|
|
7
7
|
import '@page-speed/icon';
|
|
@@ -14,6 +14,14 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
14
14
|
* Main heading content
|
|
15
15
|
*/
|
|
16
16
|
heading?: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Custom slot for heading (overrides heading prop)
|
|
19
|
+
*/
|
|
20
|
+
headingSlot?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Description text below heading
|
|
23
|
+
*/
|
|
24
|
+
description?: React.ReactNode;
|
|
17
25
|
/**
|
|
18
26
|
* Array of action configurations for CTA buttons
|
|
19
27
|
*/
|
|
@@ -27,13 +35,18 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
27
35
|
*/
|
|
28
36
|
actionsClassName?: string;
|
|
29
37
|
/**
|
|
30
|
-
* Array of
|
|
38
|
+
* Array of task labels that cycle through with animation
|
|
39
|
+
*/
|
|
40
|
+
taskItems?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Starting minutes for the animated countdown display (default: 25 — Pomodoro style)
|
|
31
43
|
*/
|
|
32
|
-
|
|
44
|
+
timerMinutes?: number;
|
|
33
45
|
/**
|
|
34
|
-
*
|
|
46
|
+
* Starting seconds for the animated countdown display (default: 0)
|
|
35
47
|
*/
|
|
36
|
-
|
|
48
|
+
timerSeconds?: number;
|
|
49
|
+
/**
|
|
37
50
|
* Background style for the section
|
|
38
51
|
*/
|
|
39
52
|
background?: SectionBackground;
|
|
@@ -65,18 +78,6 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
65
78
|
* Additional CSS classes for the heading
|
|
66
79
|
*/
|
|
67
80
|
headingClassName?: string;
|
|
68
|
-
/**
|
|
69
|
-
* Additional CSS classes for the images area
|
|
70
|
-
*/
|
|
71
|
-
imagesClassName?: string;
|
|
72
|
-
/**
|
|
73
|
-
* OptixFlow image optimization configuration
|
|
74
|
-
*/
|
|
75
|
-
optixFlowConfig?: OptixFlowConfig;
|
|
76
|
-
/**
|
|
77
|
-
* Description text below heading
|
|
78
|
-
*/
|
|
79
|
-
description?: React.ReactNode;
|
|
80
81
|
/**
|
|
81
82
|
* Additional CSS classes for the description
|
|
82
83
|
*/
|
|
@@ -96,6 +97,6 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
96
97
|
/** Optional Section ID */
|
|
97
98
|
sectionId?: string;
|
|
98
99
|
}
|
|
99
|
-
declare function HeroTaskTimerAnimated({ sectionId, heading,
|
|
100
|
+
declare function HeroTaskTimerAnimated({ sectionId, heading, headingSlot, description, actions, actionsSlot, actionsClassName, taskItems, timerMinutes, timerSeconds, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
|
|
100
101
|
|
|
101
102
|
export { HeroTaskTimerAnimated, type HeroTaskTimerAnimatedProps };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
|
|
3
3
|
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
4
|
-
import { A as ActionConfig
|
|
4
|
+
import { A as ActionConfig } from './blocks-DyouPohq.js';
|
|
5
5
|
import 'react/jsx-runtime';
|
|
6
6
|
import './dynamic-icon.js';
|
|
7
7
|
import '@page-speed/icon';
|
|
@@ -14,6 +14,14 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
14
14
|
* Main heading content
|
|
15
15
|
*/
|
|
16
16
|
heading?: React.ReactNode;
|
|
17
|
+
/**
|
|
18
|
+
* Custom slot for heading (overrides heading prop)
|
|
19
|
+
*/
|
|
20
|
+
headingSlot?: React.ReactNode;
|
|
21
|
+
/**
|
|
22
|
+
* Description text below heading
|
|
23
|
+
*/
|
|
24
|
+
description?: React.ReactNode;
|
|
17
25
|
/**
|
|
18
26
|
* Array of action configurations for CTA buttons
|
|
19
27
|
*/
|
|
@@ -27,13 +35,18 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
27
35
|
*/
|
|
28
36
|
actionsClassName?: string;
|
|
29
37
|
/**
|
|
30
|
-
* Array of
|
|
38
|
+
* Array of task labels that cycle through with animation
|
|
39
|
+
*/
|
|
40
|
+
taskItems?: string[];
|
|
41
|
+
/**
|
|
42
|
+
* Starting minutes for the animated countdown display (default: 25 — Pomodoro style)
|
|
31
43
|
*/
|
|
32
|
-
|
|
44
|
+
timerMinutes?: number;
|
|
33
45
|
/**
|
|
34
|
-
*
|
|
46
|
+
* Starting seconds for the animated countdown display (default: 0)
|
|
35
47
|
*/
|
|
36
|
-
|
|
48
|
+
timerSeconds?: number;
|
|
49
|
+
/**
|
|
37
50
|
* Background style for the section
|
|
38
51
|
*/
|
|
39
52
|
background?: SectionBackground;
|
|
@@ -65,18 +78,6 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
65
78
|
* Additional CSS classes for the heading
|
|
66
79
|
*/
|
|
67
80
|
headingClassName?: string;
|
|
68
|
-
/**
|
|
69
|
-
* Additional CSS classes for the images area
|
|
70
|
-
*/
|
|
71
|
-
imagesClassName?: string;
|
|
72
|
-
/**
|
|
73
|
-
* OptixFlow image optimization configuration
|
|
74
|
-
*/
|
|
75
|
-
optixFlowConfig?: OptixFlowConfig;
|
|
76
|
-
/**
|
|
77
|
-
* Description text below heading
|
|
78
|
-
*/
|
|
79
|
-
description?: React.ReactNode;
|
|
80
81
|
/**
|
|
81
82
|
* Additional CSS classes for the description
|
|
82
83
|
*/
|
|
@@ -96,6 +97,6 @@ interface HeroTaskTimerAnimatedProps {
|
|
|
96
97
|
/** Optional Section ID */
|
|
97
98
|
sectionId?: string;
|
|
98
99
|
}
|
|
99
|
-
declare function HeroTaskTimerAnimated({ sectionId, heading,
|
|
100
|
+
declare function HeroTaskTimerAnimated({ sectionId, heading, headingSlot, description, actions, actionsSlot, actionsClassName, taskItems, timerMinutes, timerSeconds, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
|
|
100
101
|
|
|
101
102
|
export { HeroTaskTimerAnimated, type HeroTaskTimerAnimatedProps };
|