@opensite/ui 3.4.2 → 3.4.4

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.
@@ -766,25 +766,6 @@ var slideVariants = {
766
766
  }
767
767
  }
768
768
  };
769
- var fadeVariants = {
770
- initial: {
771
- opacity: 0
772
- },
773
- visible: {
774
- opacity: 1,
775
- transition: {
776
- duration: 0.8,
777
- ease: [0.4, 0, 0.2, 1]
778
- }
779
- },
780
- fadeExit: {
781
- opacity: 0,
782
- transition: {
783
- duration: 0.8,
784
- ease: [0.4, 0, 0.2, 1]
785
- }
786
- }
787
- };
788
769
  var normalizeIndex = (index, length) => {
789
770
  if (!length) return 0;
790
771
  const safeIndex = index % length;
@@ -872,38 +853,55 @@ var ImageSlider = ({
872
853
  perspective: "1000px"
873
854
  },
874
855
  children: [
875
- /* @__PURE__ */ jsxRuntime.jsx(
876
- react.AnimatePresence,
856
+ transition === "fade" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0", children: images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
857
+ "div",
877
858
  {
878
- mode: transition === "fade" ? "sync" : "wait",
879
- initial: false,
880
- children: activeImage ? /* @__PURE__ */ jsxRuntime.jsx(
881
- react.motion.div,
859
+ "aria-hidden": index !== currentIndex,
860
+ className: cn(
861
+ "absolute inset-0 opacity-0 transition-opacity duration-1000 ease-in-out motion-reduce:transition-none",
862
+ index === currentIndex && "opacity-100"
863
+ ),
864
+ children: /* @__PURE__ */ jsxRuntime.jsx(
865
+ img.Img,
882
866
  {
883
- initial: "initial",
884
- animate: "visible",
885
- exit: transition === "fade" ? "fadeExit" : direction === "up" ? "upExit" : "downExit",
886
- variants: transition === "fade" ? fadeVariants : slideVariants,
887
- className: "absolute inset-0",
888
- children: /* @__PURE__ */ jsxRuntime.jsx(
889
- img.Img,
890
- {
891
- src: activeImage.src,
892
- alt: activeImage.alt,
893
- className: cn(
894
- "h-full w-full object-cover object-center",
895
- imageClassName,
896
- activeImage.className
897
- ),
898
- optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
899
- loading: "eager"
900
- }
901
- )
902
- },
903
- `${currentIndex}-${activeImage.src ?? "image"}`
904
- ) : null
905
- }
906
- ),
867
+ src: image.src,
868
+ alt: image.alt,
869
+ className: cn(
870
+ "h-full w-full object-cover object-center",
871
+ imageClassName,
872
+ image.className
873
+ ),
874
+ optixFlowConfig: image.optixFlowConfig ?? optixFlowConfig,
875
+ loading: "eager"
876
+ }
877
+ )
878
+ },
879
+ `${image.src ?? "image"}-${index}`
880
+ )) }) : /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", initial: false, children: activeImage ? /* @__PURE__ */ jsxRuntime.jsx(
881
+ react.motion.div,
882
+ {
883
+ initial: "initial",
884
+ animate: "visible",
885
+ exit: direction === "up" ? "upExit" : "downExit",
886
+ variants: slideVariants,
887
+ className: "absolute inset-0",
888
+ children: /* @__PURE__ */ jsxRuntime.jsx(
889
+ img.Img,
890
+ {
891
+ src: activeImage.src,
892
+ alt: activeImage.alt,
893
+ className: cn(
894
+ "h-full w-full object-cover object-center",
895
+ imageClassName,
896
+ activeImage.className
897
+ ),
898
+ optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
899
+ loading: "eager"
900
+ }
901
+ )
902
+ },
903
+ `${currentIndex}-${activeImage.src ?? "image"}`
904
+ ) : null }),
907
905
  overlayContent,
908
906
  children ? /* @__PURE__ */ jsxRuntime.jsx(
909
907
  "div",
@@ -743,25 +743,6 @@ var slideVariants = {
743
743
  }
744
744
  }
745
745
  };
746
- var fadeVariants = {
747
- initial: {
748
- opacity: 0
749
- },
750
- visible: {
751
- opacity: 1,
752
- transition: {
753
- duration: 0.8,
754
- ease: [0.4, 0, 0.2, 1]
755
- }
756
- },
757
- fadeExit: {
758
- opacity: 0,
759
- transition: {
760
- duration: 0.8,
761
- ease: [0.4, 0, 0.2, 1]
762
- }
763
- }
764
- };
765
746
  var normalizeIndex = (index, length) => {
766
747
  if (!length) return 0;
767
748
  const safeIndex = index % length;
@@ -849,38 +830,55 @@ var ImageSlider = ({
849
830
  perspective: "1000px"
850
831
  },
851
832
  children: [
852
- /* @__PURE__ */ jsx(
853
- AnimatePresence$1,
833
+ transition === "fade" ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0", children: images.map((image, index) => /* @__PURE__ */ jsx(
834
+ "div",
854
835
  {
855
- mode: transition === "fade" ? "sync" : "wait",
856
- initial: false,
857
- children: activeImage ? /* @__PURE__ */ jsx(
858
- motion$1.div,
836
+ "aria-hidden": index !== currentIndex,
837
+ className: cn(
838
+ "absolute inset-0 opacity-0 transition-opacity duration-1000 ease-in-out motion-reduce:transition-none",
839
+ index === currentIndex && "opacity-100"
840
+ ),
841
+ children: /* @__PURE__ */ jsx(
842
+ Img,
859
843
  {
860
- initial: "initial",
861
- animate: "visible",
862
- exit: transition === "fade" ? "fadeExit" : direction === "up" ? "upExit" : "downExit",
863
- variants: transition === "fade" ? fadeVariants : slideVariants,
864
- className: "absolute inset-0",
865
- children: /* @__PURE__ */ jsx(
866
- Img,
867
- {
868
- src: activeImage.src,
869
- alt: activeImage.alt,
870
- className: cn(
871
- "h-full w-full object-cover object-center",
872
- imageClassName,
873
- activeImage.className
874
- ),
875
- optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
876
- loading: "eager"
877
- }
878
- )
879
- },
880
- `${currentIndex}-${activeImage.src ?? "image"}`
881
- ) : null
882
- }
883
- ),
844
+ src: image.src,
845
+ alt: image.alt,
846
+ className: cn(
847
+ "h-full w-full object-cover object-center",
848
+ imageClassName,
849
+ image.className
850
+ ),
851
+ optixFlowConfig: image.optixFlowConfig ?? optixFlowConfig,
852
+ loading: "eager"
853
+ }
854
+ )
855
+ },
856
+ `${image.src ?? "image"}-${index}`
857
+ )) }) : /* @__PURE__ */ jsx(AnimatePresence$1, { mode: "wait", initial: false, children: activeImage ? /* @__PURE__ */ jsx(
858
+ motion$1.div,
859
+ {
860
+ initial: "initial",
861
+ animate: "visible",
862
+ exit: direction === "up" ? "upExit" : "downExit",
863
+ variants: slideVariants,
864
+ className: "absolute inset-0",
865
+ children: /* @__PURE__ */ jsx(
866
+ Img,
867
+ {
868
+ src: activeImage.src,
869
+ alt: activeImage.alt,
870
+ className: cn(
871
+ "h-full w-full object-cover object-center",
872
+ imageClassName,
873
+ activeImage.className
874
+ ),
875
+ optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
876
+ loading: "eager"
877
+ }
878
+ )
879
+ },
880
+ `${currentIndex}-${activeImage.src ?? "image"}`
881
+ ) : null }),
884
882
  overlayContent,
885
883
  children ? /* @__PURE__ */ jsx(
886
884
  "div",
@@ -440,25 +440,6 @@ var slideVariants = {
440
440
  }
441
441
  }
442
442
  };
443
- var fadeVariants = {
444
- initial: {
445
- opacity: 0
446
- },
447
- visible: {
448
- opacity: 1,
449
- transition: {
450
- duration: 0.8,
451
- ease: [0.4, 0, 0.2, 1]
452
- }
453
- },
454
- fadeExit: {
455
- opacity: 0,
456
- transition: {
457
- duration: 0.8,
458
- ease: [0.4, 0, 0.2, 1]
459
- }
460
- }
461
- };
462
443
  var normalizeIndex = (index, length) => {
463
444
  if (!length) return 0;
464
445
  const safeIndex = index % length;
@@ -546,38 +527,55 @@ var ImageSlider = ({
546
527
  perspective: "1000px"
547
528
  },
548
529
  children: [
549
- /* @__PURE__ */ jsxRuntime.jsx(
550
- react.AnimatePresence,
530
+ transition === "fade" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0", children: images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
531
+ "div",
551
532
  {
552
- mode: transition === "fade" ? "sync" : "wait",
553
- initial: false,
554
- children: activeImage ? /* @__PURE__ */ jsxRuntime.jsx(
555
- react.motion.div,
533
+ "aria-hidden": index !== currentIndex,
534
+ className: cn(
535
+ "absolute inset-0 opacity-0 transition-opacity duration-1000 ease-in-out motion-reduce:transition-none",
536
+ index === currentIndex && "opacity-100"
537
+ ),
538
+ children: /* @__PURE__ */ jsxRuntime.jsx(
539
+ img.Img,
556
540
  {
557
- initial: "initial",
558
- animate: "visible",
559
- exit: transition === "fade" ? "fadeExit" : direction === "up" ? "upExit" : "downExit",
560
- variants: transition === "fade" ? fadeVariants : slideVariants,
561
- className: "absolute inset-0",
562
- children: /* @__PURE__ */ jsxRuntime.jsx(
563
- img.Img,
564
- {
565
- src: activeImage.src,
566
- alt: activeImage.alt,
567
- className: cn(
568
- "h-full w-full object-cover object-center",
569
- imageClassName,
570
- activeImage.className
571
- ),
572
- optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
573
- loading: "eager"
574
- }
575
- )
576
- },
577
- `${currentIndex}-${activeImage.src ?? "image"}`
578
- ) : null
579
- }
580
- ),
541
+ src: image.src,
542
+ alt: image.alt,
543
+ className: cn(
544
+ "h-full w-full object-cover object-center",
545
+ imageClassName,
546
+ image.className
547
+ ),
548
+ optixFlowConfig: image.optixFlowConfig ?? optixFlowConfig,
549
+ loading: "eager"
550
+ }
551
+ )
552
+ },
553
+ `${image.src ?? "image"}-${index}`
554
+ )) }) : /* @__PURE__ */ jsxRuntime.jsx(react.AnimatePresence, { mode: "wait", initial: false, children: activeImage ? /* @__PURE__ */ jsxRuntime.jsx(
555
+ react.motion.div,
556
+ {
557
+ initial: "initial",
558
+ animate: "visible",
559
+ exit: direction === "up" ? "upExit" : "downExit",
560
+ variants: slideVariants,
561
+ className: "absolute inset-0",
562
+ children: /* @__PURE__ */ jsxRuntime.jsx(
563
+ img.Img,
564
+ {
565
+ src: activeImage.src,
566
+ alt: activeImage.alt,
567
+ className: cn(
568
+ "h-full w-full object-cover object-center",
569
+ imageClassName,
570
+ activeImage.className
571
+ ),
572
+ optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
573
+ loading: "eager"
574
+ }
575
+ )
576
+ },
577
+ `${currentIndex}-${activeImage.src ?? "image"}`
578
+ ) : null }),
581
579
  overlayContent,
582
580
  children ? /* @__PURE__ */ jsxRuntime.jsx(
583
581
  "div",
@@ -419,25 +419,6 @@ var slideVariants = {
419
419
  }
420
420
  }
421
421
  };
422
- var fadeVariants = {
423
- initial: {
424
- opacity: 0
425
- },
426
- visible: {
427
- opacity: 1,
428
- transition: {
429
- duration: 0.8,
430
- ease: [0.4, 0, 0.2, 1]
431
- }
432
- },
433
- fadeExit: {
434
- opacity: 0,
435
- transition: {
436
- duration: 0.8,
437
- ease: [0.4, 0, 0.2, 1]
438
- }
439
- }
440
- };
441
422
  var normalizeIndex = (index, length) => {
442
423
  if (!length) return 0;
443
424
  const safeIndex = index % length;
@@ -525,38 +506,55 @@ var ImageSlider = ({
525
506
  perspective: "1000px"
526
507
  },
527
508
  children: [
528
- /* @__PURE__ */ jsx(
529
- AnimatePresence,
509
+ transition === "fade" ? /* @__PURE__ */ jsx("div", { className: "absolute inset-0", children: images.map((image, index) => /* @__PURE__ */ jsx(
510
+ "div",
530
511
  {
531
- mode: transition === "fade" ? "sync" : "wait",
532
- initial: false,
533
- children: activeImage ? /* @__PURE__ */ jsx(
534
- motion.div,
512
+ "aria-hidden": index !== currentIndex,
513
+ className: cn(
514
+ "absolute inset-0 opacity-0 transition-opacity duration-1000 ease-in-out motion-reduce:transition-none",
515
+ index === currentIndex && "opacity-100"
516
+ ),
517
+ children: /* @__PURE__ */ jsx(
518
+ Img,
535
519
  {
536
- initial: "initial",
537
- animate: "visible",
538
- exit: transition === "fade" ? "fadeExit" : direction === "up" ? "upExit" : "downExit",
539
- variants: transition === "fade" ? fadeVariants : slideVariants,
540
- className: "absolute inset-0",
541
- children: /* @__PURE__ */ jsx(
542
- Img,
543
- {
544
- src: activeImage.src,
545
- alt: activeImage.alt,
546
- className: cn(
547
- "h-full w-full object-cover object-center",
548
- imageClassName,
549
- activeImage.className
550
- ),
551
- optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
552
- loading: "eager"
553
- }
554
- )
555
- },
556
- `${currentIndex}-${activeImage.src ?? "image"}`
557
- ) : null
558
- }
559
- ),
520
+ src: image.src,
521
+ alt: image.alt,
522
+ className: cn(
523
+ "h-full w-full object-cover object-center",
524
+ imageClassName,
525
+ image.className
526
+ ),
527
+ optixFlowConfig: image.optixFlowConfig ?? optixFlowConfig,
528
+ loading: "eager"
529
+ }
530
+ )
531
+ },
532
+ `${image.src ?? "image"}-${index}`
533
+ )) }) : /* @__PURE__ */ jsx(AnimatePresence, { mode: "wait", initial: false, children: activeImage ? /* @__PURE__ */ jsx(
534
+ motion.div,
535
+ {
536
+ initial: "initial",
537
+ animate: "visible",
538
+ exit: direction === "up" ? "upExit" : "downExit",
539
+ variants: slideVariants,
540
+ className: "absolute inset-0",
541
+ children: /* @__PURE__ */ jsx(
542
+ Img,
543
+ {
544
+ src: activeImage.src,
545
+ alt: activeImage.alt,
546
+ className: cn(
547
+ "h-full w-full object-cover object-center",
548
+ imageClassName,
549
+ activeImage.className
550
+ ),
551
+ optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
552
+ loading: "eager"
553
+ }
554
+ )
555
+ },
556
+ `${currentIndex}-${activeImage.src ?? "image"}`
557
+ ) : null }),
560
558
  overlayContent,
561
559
  children ? /* @__PURE__ */ jsx(
562
560
  "div",
@@ -501,6 +501,25 @@ function ActionComponent({ action }) {
501
501
  }
502
502
  );
503
503
  }
504
+ function CardArrowIcon({ className }) {
505
+ return /* @__PURE__ */ jsxRuntime.jsxs(
506
+ "svg",
507
+ {
508
+ "aria-hidden": "true",
509
+ viewBox: "0 0 24 24",
510
+ fill: "none",
511
+ stroke: "currentColor",
512
+ strokeWidth: 2,
513
+ strokeLinecap: "round",
514
+ strokeLinejoin: "round",
515
+ className,
516
+ children: [
517
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "M5 12h14" }),
518
+ /* @__PURE__ */ jsxRuntime.jsx("path", { d: "m12 5 7 7-7 7" })
519
+ ]
520
+ }
521
+ );
522
+ }
504
523
  function HeroOverlayCtaGrid({
505
524
  sectionId = "hero-overlay-cta-grid",
506
525
  badgeText,
@@ -560,9 +579,7 @@ function HeroOverlayCtaGrid({
560
579
  card.href ? /* @__PURE__ */ jsxRuntime.jsx(
561
580
  DynamicIcon,
562
581
  {
563
- name: "lucide/arrow-right",
564
- size: 18,
565
- className: cn("ml-auto flex-none text-card-foreground")
582
+ name: /* @__PURE__ */ jsxRuntime.jsx(CardArrowIcon, { className: "ml-auto size-[18px] flex-none text-card-foreground" })
566
583
  }
567
584
  ) : null
568
585
  ]
@@ -608,7 +625,7 @@ function HeroOverlayCtaGrid({
608
625
  initial: { opacity: 0, y: 28 },
609
626
  animate: { opacity: 1, y: 0 },
610
627
  transition: { duration: 0.6, ease: "easeOut" },
611
- className: "mx-auto max-w-3xl text-center text-balance text-white px-0",
628
+ className: "mx-auto max-w-3xl text-center text-balance text-white px-0 flex flex-col items-center justify-center",
612
629
  children: [
613
630
  renderBadge,
614
631
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -620,16 +637,7 @@ function HeroOverlayCtaGrid({
620
637
  ),
621
638
  children: heading
622
639
  }
623
- ) : /* @__PURE__ */ jsxRuntime.jsx(
624
- "h1",
625
- {
626
- className: cn(
627
- "mt-6 text-4xl font-bold leading-tight md:text-5xl lg:text-6xl text-balance",
628
- headingClassName
629
- ),
630
- children: heading
631
- }
632
- )),
640
+ ) : heading),
633
641
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
634
642
  "p",
635
643
  {
@@ -639,16 +647,7 @@ function HeroOverlayCtaGrid({
639
647
  ),
640
648
  children: description
641
649
  }
642
- ) : /* @__PURE__ */ jsxRuntime.jsx(
643
- "div",
644
- {
645
- className: cn(
646
- "mt-5 text-lg md:text-xl text-balance",
647
- descriptionClassName
648
- ),
649
- children: description
650
- }
651
- )),
650
+ ) : description),
652
651
  /* @__PURE__ */ jsxRuntime.jsx(
653
652
  BlockActions,
654
653
  {
@@ -480,6 +480,25 @@ function ActionComponent({ action }) {
480
480
  }
481
481
  );
482
482
  }
483
+ function CardArrowIcon({ className }) {
484
+ return /* @__PURE__ */ jsxs(
485
+ "svg",
486
+ {
487
+ "aria-hidden": "true",
488
+ viewBox: "0 0 24 24",
489
+ fill: "none",
490
+ stroke: "currentColor",
491
+ strokeWidth: 2,
492
+ strokeLinecap: "round",
493
+ strokeLinejoin: "round",
494
+ className,
495
+ children: [
496
+ /* @__PURE__ */ jsx("path", { d: "M5 12h14" }),
497
+ /* @__PURE__ */ jsx("path", { d: "m12 5 7 7-7 7" })
498
+ ]
499
+ }
500
+ );
501
+ }
483
502
  function HeroOverlayCtaGrid({
484
503
  sectionId = "hero-overlay-cta-grid",
485
504
  badgeText,
@@ -539,9 +558,7 @@ function HeroOverlayCtaGrid({
539
558
  card.href ? /* @__PURE__ */ jsx(
540
559
  DynamicIcon,
541
560
  {
542
- name: "lucide/arrow-right",
543
- size: 18,
544
- className: cn("ml-auto flex-none text-card-foreground")
561
+ name: /* @__PURE__ */ jsx(CardArrowIcon, { className: "ml-auto size-[18px] flex-none text-card-foreground" })
545
562
  }
546
563
  ) : null
547
564
  ]
@@ -587,7 +604,7 @@ function HeroOverlayCtaGrid({
587
604
  initial: { opacity: 0, y: 28 },
588
605
  animate: { opacity: 1, y: 0 },
589
606
  transition: { duration: 0.6, ease: "easeOut" },
590
- className: "mx-auto max-w-3xl text-center text-balance text-white px-0",
607
+ className: "mx-auto max-w-3xl text-center text-balance text-white px-0 flex flex-col items-center justify-center",
591
608
  children: [
592
609
  renderBadge,
593
610
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
@@ -599,16 +616,7 @@ function HeroOverlayCtaGrid({
599
616
  ),
600
617
  children: heading
601
618
  }
602
- ) : /* @__PURE__ */ jsx(
603
- "h1",
604
- {
605
- className: cn(
606
- "mt-6 text-4xl font-bold leading-tight md:text-5xl lg:text-6xl text-balance",
607
- headingClassName
608
- ),
609
- children: heading
610
- }
611
- )),
619
+ ) : heading),
612
620
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
613
621
  "p",
614
622
  {
@@ -618,16 +626,7 @@ function HeroOverlayCtaGrid({
618
626
  ),
619
627
  children: description
620
628
  }
621
- ) : /* @__PURE__ */ jsx(
622
- "div",
623
- {
624
- className: cn(
625
- "mt-5 text-lg md:text-xl text-balance",
626
- descriptionClassName
627
- ),
628
- children: description
629
- }
630
- )),
629
+ ) : description),
631
630
  /* @__PURE__ */ jsx(
632
631
  BlockActions,
633
632
  {