@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.
Files changed (111) hide show
  1. package/dist/blog-featured-popular.cjs +13 -12
  2. package/dist/blog-featured-popular.d.cts +1 -1
  3. package/dist/blog-featured-popular.d.ts +1 -1
  4. package/dist/blog-featured-popular.js +13 -12
  5. package/dist/blog-horizontal-cards.cjs +22 -41
  6. package/dist/blog-horizontal-cards.d.cts +1 -1
  7. package/dist/blog-horizontal-cards.d.ts +1 -1
  8. package/dist/blog-horizontal-cards.js +22 -41
  9. package/dist/blog-related-articles.cjs +8 -7
  10. package/dist/blog-related-articles.js +8 -7
  11. package/dist/carousel-icon-tabs.cjs +6 -4
  12. package/dist/carousel-icon-tabs.d.cts +5 -1
  13. package/dist/carousel-icon-tabs.d.ts +5 -1
  14. package/dist/carousel-icon-tabs.js +6 -4
  15. package/dist/carousel-progress-slider.cjs +3 -2
  16. package/dist/carousel-progress-slider.js +3 -2
  17. package/dist/carousel-scale-focus.cjs +1 -1
  18. package/dist/carousel-scale-focus.js +1 -1
  19. package/dist/carousel-scrolling-feature-showcase.cjs +4 -2
  20. package/dist/carousel-scrolling-feature-showcase.js +4 -2
  21. package/dist/carousel-sidebar-resources.cjs +11 -15
  22. package/dist/carousel-sidebar-resources.d.cts +5 -1
  23. package/dist/carousel-sidebar-resources.d.ts +5 -1
  24. package/dist/carousel-sidebar-resources.js +11 -15
  25. package/dist/carousel-tabs-content.cjs +1 -1
  26. package/dist/carousel-tabs-content.js +1 -1
  27. package/dist/expandable-case-study-cards.cjs +3 -3
  28. package/dist/expandable-case-study-cards.js +3 -3
  29. package/dist/feature-animated-carousel.cjs +2 -1
  30. package/dist/feature-animated-carousel.js +2 -1
  31. package/dist/feature-bento-image-grid.cjs +8 -9
  32. package/dist/feature-bento-image-grid.js +8 -9
  33. package/dist/feature-image-overlay-badge.cjs +3 -40
  34. package/dist/feature-image-overlay-badge.js +3 -40
  35. package/dist/feature-integration-cards.cjs +4 -13
  36. package/dist/feature-integration-cards.js +4 -13
  37. package/dist/footer-newsletter-contact.cjs +4 -4
  38. package/dist/footer-newsletter-contact.js +4 -4
  39. package/dist/hero-adaptable-product-grid.cjs +2 -1
  40. package/dist/hero-adaptable-product-grid.js +2 -1
  41. package/dist/hero-ai-powered-carousel.cjs +2 -1
  42. package/dist/hero-ai-powered-carousel.js +2 -1
  43. package/dist/hero-architecture-fullscreen.cjs +3 -2
  44. package/dist/hero-architecture-fullscreen.js +3 -2
  45. package/dist/hero-badge-image-split.cjs +3 -2
  46. package/dist/hero-badge-image-split.js +3 -2
  47. package/dist/hero-badge-shadow-overlay.cjs +2 -1
  48. package/dist/hero-badge-shadow-overlay.js +2 -1
  49. package/dist/hero-billing-platform-logos.cjs +12 -8
  50. package/dist/hero-billing-platform-logos.js +12 -8
  51. package/dist/hero-business-carousel-dots.cjs +2 -1
  52. package/dist/hero-business-carousel-dots.js +2 -1
  53. package/dist/hero-conversation-intelligence.cjs +2 -1
  54. package/dist/hero-conversation-intelligence.js +2 -1
  55. package/dist/hero-crm-streamlined.cjs +2 -2
  56. package/dist/hero-crm-streamlined.js +2 -2
  57. package/dist/hero-design-carousel-portfolio.cjs +2 -1
  58. package/dist/hero-design-carousel-portfolio.js +2 -1
  59. package/dist/hero-ecommerce-product-showcase.cjs +8 -4
  60. package/dist/hero-ecommerce-product-showcase.js +8 -4
  61. package/dist/hero-event-registration.cjs +2 -1
  62. package/dist/hero-event-registration.js +2 -1
  63. package/dist/hero-gradient-avatars-rating.cjs +4 -2
  64. package/dist/hero-gradient-avatars-rating.js +4 -2
  65. package/dist/hero-mental-health-team.cjs +13 -18
  66. package/dist/hero-mental-health-team.js +13 -18
  67. package/dist/hero-mentorship-video-split.cjs +3 -10
  68. package/dist/hero-mentorship-video-split.js +3 -10
  69. package/dist/hero-product-showcase-floating.cjs +4 -2
  70. package/dist/hero-product-showcase-floating.js +4 -2
  71. package/dist/hero-saas-dashboard-preview.cjs +2 -1
  72. package/dist/hero-saas-dashboard-preview.js +2 -1
  73. package/dist/hero-software-growth-video-dialog.cjs +2 -1
  74. package/dist/hero-software-growth-video-dialog.js +2 -1
  75. package/dist/hero-split-icon-cards.cjs +7 -59
  76. package/dist/hero-split-icon-cards.js +7 -59
  77. package/dist/hero-task-timer-animated.cjs +155 -86
  78. package/dist/hero-task-timer-animated.d.cts +19 -18
  79. package/dist/hero-task-timer-animated.d.ts +19 -18
  80. package/dist/hero-task-timer-animated.js +156 -68
  81. package/dist/navbar-animated-preview.cjs +1 -1
  82. package/dist/navbar-animated-preview.js +1 -1
  83. package/dist/navbar-enterprise-mega.cjs +9 -3
  84. package/dist/navbar-enterprise-mega.d.cts +3 -0
  85. package/dist/navbar-enterprise-mega.d.ts +3 -0
  86. package/dist/navbar-enterprise-mega.js +9 -3
  87. package/dist/navbar-image-preview.cjs +10 -2
  88. package/dist/navbar-image-preview.d.cts +6 -6
  89. package/dist/navbar-image-preview.d.ts +6 -6
  90. package/dist/navbar-image-preview.js +10 -2
  91. package/dist/process-hover-cards.cjs +4 -2
  92. package/dist/process-hover-cards.js +4 -2
  93. package/dist/process-icon-timeline.cjs +1 -2
  94. package/dist/process-icon-timeline.d.cts +0 -4
  95. package/dist/process-icon-timeline.d.ts +0 -4
  96. package/dist/process-icon-timeline.js +1 -2
  97. package/dist/process-scroll-image.cjs +2 -2
  98. package/dist/process-scroll-image.js +2 -2
  99. package/dist/process-steps-grid.cjs +7 -5
  100. package/dist/process-steps-grid.js +7 -5
  101. package/dist/registry.cjs +391 -315
  102. package/dist/registry.js +391 -315
  103. package/dist/testimonials-animated-split.cjs +2 -1
  104. package/dist/testimonials-animated-split.js +2 -1
  105. package/dist/testimonials-carousel-image.cjs +4 -2
  106. package/dist/testimonials-carousel-image.js +4 -2
  107. package/dist/testimonials-company-logo.cjs +4 -2
  108. package/dist/testimonials-company-logo.js +4 -2
  109. package/dist/testimonials-scrolling-columns.cjs +4 -2
  110. package/dist/testimonials-scrolling-columns.js +4 -2
  111. 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
- images,
548
- imagesSlot,
527
+ taskItems,
528
+ timerMinutes = 25,
529
+ timerSeconds = 0,
549
530
  background,
550
531
  pattern,
551
532
  patternOpacity,
552
533
  className,
553
- spacing = "xl",
534
+ spacing = "hero",
554
535
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
555
536
  headerClassName,
556
537
  headingClassName,
557
- imagesClassName,
558
- optixFlowConfig,
538
+ descriptionClassName,
559
539
  logo,
560
540
  logoSlot,
561
541
  logoClassName
562
542
  }) {
563
- const renderImages = React.useMemo(() => {
564
- if (imagesSlot) return imagesSlot;
565
- if (!images || images.length < 2) return null;
566
- return /* @__PURE__ */ jsxRuntime.jsxs(
567
- "div",
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
- "flex flex-col mt-6 gap-6 md:gap-10 lg:flex-row",
571
- imagesClassName
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
- }, [imagesSlot, images, imagesClassName, optixFlowConfig]);
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-6 md:gap-16", children: [
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-4 w-full pt-12 lg:pt-0",
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
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
623
- "h1",
599
+ renderHeading,
600
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
601
+ "p",
624
602
  {
625
603
  className: cn(
626
- "max-w-2xl text-6xl font-bold tracking-tight md:text-7xl lg:text-8xl text-balance",
627
- headingClassName
604
+ "max-w-xl text-lg text-muted-foreground text-balance",
605
+ descriptionClassName
628
606
  ),
629
- children: heading
607
+ children: description
630
608
  }
631
- ) : /* @__PURE__ */ jsxRuntime.jsx(
632
- "h1",
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: cn(
635
- "max-w-2xl text-6xl font-bold tracking-tight md:text-7xl lg:text-8xl text-balance",
636
- headingClassName
637
- ),
638
- children: heading
639
- }
640
- )),
641
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
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
- renderImages
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, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
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 showcase images (expects 2 images)
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
- images?: ImageItem[];
44
+ timerMinutes?: number;
33
45
  /**
34
- * Custom slot for images (overrides images array)
46
+ * Starting seconds for the animated countdown display (default: 0)
35
47
  */
36
- imagesSlot?: React.ReactNode; /**
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, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
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, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
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 showcase images (expects 2 images)
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
- images?: ImageItem[];
44
+ timerMinutes?: number;
33
45
  /**
34
- * Custom slot for images (overrides images array)
46
+ * Starting seconds for the animated countdown display (default: 0)
35
47
  */
36
- imagesSlot?: React.ReactNode; /**
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, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
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 };