@opensite/ui 2.8.5 → 2.8.7
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/about-developer-profile.cjs +17 -10
- package/dist/about-developer-profile.js +17 -10
- package/dist/article-chapters-author.cjs +17 -10
- package/dist/article-chapters-author.js +17 -10
- package/dist/carousel-animated-sections.cjs +79 -25
- package/dist/carousel-animated-sections.d.cts +7 -2
- package/dist/carousel-animated-sections.d.ts +7 -2
- package/dist/carousel-animated-sections.js +79 -25
- package/dist/carousel-gallery-thumbnails.cjs +79 -25
- package/dist/carousel-gallery-thumbnails.d.cts +7 -2
- package/dist/carousel-gallery-thumbnails.d.ts +7 -2
- package/dist/carousel-gallery-thumbnails.js +79 -25
- package/dist/carousel-portfolio-hero.cjs +79 -25
- package/dist/carousel-portfolio-hero.d.cts +7 -2
- package/dist/carousel-portfolio-hero.d.ts +7 -2
- package/dist/carousel-portfolio-hero.js +79 -25
- package/dist/components.cjs +35 -10
- package/dist/components.d.cts +29 -2
- package/dist/components.d.ts +29 -2
- package/dist/components.js +35 -11
- package/dist/footer-accordion-social.cjs +17 -10
- package/dist/footer-accordion-social.js +17 -10
- package/dist/footer-animated-social.cjs +17 -10
- package/dist/footer-animated-social.js +17 -10
- package/dist/footer-brand-description.cjs +17 -10
- package/dist/footer-brand-description.js +17 -10
- package/dist/footer-brand-links-contact.cjs +17 -10
- package/dist/footer-brand-links-contact.js +17 -10
- package/dist/footer-comprehensive-links.cjs +17 -10
- package/dist/footer-comprehensive-links.js +17 -10
- package/dist/footer-contact-card.cjs +17 -10
- package/dist/footer-contact-card.js +17 -10
- package/dist/footer-cta-banner.cjs +17 -10
- package/dist/footer-cta-banner.js +17 -10
- package/dist/footer-cta-social.cjs +17 -10
- package/dist/footer-cta-social.js +17 -10
- package/dist/footer-info-cards-accordion.cjs +17 -10
- package/dist/footer-info-cards-accordion.js +17 -10
- package/dist/footer-nav-social.cjs +17 -10
- package/dist/footer-nav-social.js +17 -10
- package/dist/footer-newsletter-contact.cjs +17 -10
- package/dist/footer-newsletter-contact.js +17 -10
- package/dist/footer-newsletter-grid.cjs +17 -10
- package/dist/footer-newsletter-grid.js +17 -10
- package/dist/footer-newsletter-minimal.cjs +17 -10
- package/dist/footer-newsletter-minimal.js +17 -10
- package/dist/footer-social-apps.cjs +17 -10
- package/dist/footer-social-apps.js +17 -10
- package/dist/footer-social-newsletter.cjs +17 -10
- package/dist/footer-social-newsletter.js +17 -10
- package/dist/footer-split-image-accordion.cjs +17 -10
- package/dist/footer-split-image-accordion.js +17 -10
- package/dist/hero-badge-shadow-overlay.cjs +1 -1
- package/dist/hero-badge-shadow-overlay.js +1 -1
- package/dist/hero-coming-soon-countdown.cjs +17 -10
- package/dist/hero-coming-soon-countdown.js +17 -10
- package/dist/hero-video-background-dark.cjs +78 -16
- package/dist/hero-video-background-dark.d.cts +7 -2
- package/dist/hero-video-background-dark.d.ts +7 -2
- package/dist/hero-video-background-dark.js +78 -16
- package/dist/index.cjs +35 -10
- package/dist/index.d.cts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +35 -11
- package/dist/link-page-bento-layout.cjs +17 -10
- package/dist/link-page-bento-layout.js +17 -10
- package/dist/link-page-grid-cards.cjs +17 -10
- package/dist/link-page-grid-cards.js +17 -10
- package/dist/link-page-minimal-profile.cjs +17 -10
- package/dist/link-page-minimal-profile.js +17 -10
- package/dist/link-page-newsletter-social.cjs +17 -10
- package/dist/link-page-newsletter-social.js +17 -10
- package/dist/link-tree-block.cjs +17 -10
- package/dist/link-tree-block.js +17 -10
- package/dist/navbar-fullscreen-menu.cjs +17 -10
- package/dist/navbar-fullscreen-menu.js +17 -10
- package/dist/navbar-transparent-overlay.cjs +17 -10
- package/dist/navbar-transparent-overlay.js +17 -10
- package/dist/registry.cjs +1398 -851
- package/dist/registry.js +1398 -851
- package/dist/social-link-icon.cjs +17 -10
- package/dist/social-link-icon.d.cts +5 -0
- package/dist/social-link-icon.d.ts +5 -0
- package/dist/social-link-icon.js +17 -10
- package/dist/testimonials-animated-split.cjs +5 -5
- package/dist/testimonials-animated-split.js +5 -5
- package/dist/testimonials-bento-grid.cjs +48 -56
- package/dist/testimonials-bento-grid.js +48 -56
- package/dist/testimonials-carousel-image.cjs +608 -96
- package/dist/testimonials-carousel-image.d.cts +26 -2
- package/dist/testimonials-carousel-image.d.ts +26 -2
- package/dist/testimonials-carousel-image.js +609 -97
- package/dist/testimonials-centered-avatars.cjs +89 -62
- package/dist/testimonials-centered-avatars.d.cts +5 -1
- package/dist/testimonials-centered-avatars.d.ts +5 -1
- package/dist/testimonials-centered-avatars.js +89 -62
- package/dist/testimonials-company-logo.cjs +6 -6
- package/dist/testimonials-company-logo.js +6 -6
- package/dist/testimonials-grid-add-review.cjs +51 -29
- package/dist/testimonials-grid-add-review.js +51 -29
- package/dist/testimonials-images-helpful.cjs +181 -160
- package/dist/testimonials-images-helpful.d.cts +9 -1
- package/dist/testimonials-images-helpful.d.ts +9 -1
- package/dist/testimonials-images-helpful.js +181 -159
- package/dist/testimonials-list-verified.cjs +63 -44
- package/dist/testimonials-list-verified.d.cts +5 -1
- package/dist/testimonials-list-verified.d.ts +5 -1
- package/dist/testimonials-list-verified.js +64 -45
- package/dist/testimonials-logo-cards.cjs +53 -29
- package/dist/testimonials-logo-cards.d.cts +5 -1
- package/dist/testimonials-logo-cards.d.ts +5 -1
- package/dist/testimonials-logo-cards.js +53 -29
- package/dist/testimonials-marquee.cjs +524 -102
- package/dist/testimonials-marquee.d.cts +5 -1
- package/dist/testimonials-marquee.d.ts +5 -1
- package/dist/testimonials-marquee.js +525 -100
- package/dist/testimonials-mini-dividers.cjs +120 -83
- package/dist/testimonials-mini-dividers.d.cts +10 -6
- package/dist/testimonials-mini-dividers.d.ts +10 -6
- package/dist/testimonials-mini-dividers.js +120 -83
- package/dist/testimonials-minimal-numbered.cjs +7 -6
- package/dist/testimonials-minimal-numbered.d.cts +5 -1
- package/dist/testimonials-minimal-numbered.d.ts +5 -1
- package/dist/testimonials-minimal-numbered.js +7 -6
- package/dist/testimonials-parallax-number.cjs +14 -8
- package/dist/testimonials-parallax-number.js +14 -8
- package/dist/testimonials-scrolling-columns.cjs +97 -13
- package/dist/testimonials-scrolling-columns.js +97 -13
- package/dist/testimonials-simple-grid.cjs +513 -68
- package/dist/testimonials-simple-grid.d.cts +9 -5
- package/dist/testimonials-simple-grid.d.ts +9 -5
- package/dist/testimonials-simple-grid.js +510 -62
- package/dist/testimonials-slider-minimal.cjs +604 -90
- package/dist/testimonials-slider-minimal.d.cts +17 -1
- package/dist/testimonials-slider-minimal.d.ts +17 -1
- package/dist/testimonials-slider-minimal.js +598 -81
- package/dist/testimonials-split-image.cjs +452 -17
- package/dist/testimonials-split-image.js +448 -13
- package/dist/testimonials-twitter-cards.cjs +26 -14
- package/dist/testimonials-twitter-cards.js +26 -14
- package/package.json +11 -1
|
@@ -912,6 +912,7 @@ var SocialLinkIcon = React3__namespace.forwardRef(
|
|
|
912
912
|
iconClassName,
|
|
913
913
|
className,
|
|
914
914
|
iconNameOverride,
|
|
915
|
+
iconOnly = false,
|
|
915
916
|
...pressableProps
|
|
916
917
|
}, ref) => {
|
|
917
918
|
const platform = usePlatformFromUrl.usePlatformFromUrl(href);
|
|
@@ -924,6 +925,21 @@ var SocialLinkIcon = React3__namespace.forwardRef(
|
|
|
924
925
|
const accessibleLabel = React3__namespace.useMemo(() => {
|
|
925
926
|
return label || platformName;
|
|
926
927
|
}, [label, platformName]);
|
|
928
|
+
const icon = React3__namespace.useMemo(() => {
|
|
929
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
930
|
+
DynamicIcon,
|
|
931
|
+
{
|
|
932
|
+
name: iconName,
|
|
933
|
+
size: iconSize,
|
|
934
|
+
color: iconColor,
|
|
935
|
+
className: iconClassName,
|
|
936
|
+
alt: accessibleLabel
|
|
937
|
+
}
|
|
938
|
+
);
|
|
939
|
+
}, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
|
|
940
|
+
if (iconOnly) {
|
|
941
|
+
return icon;
|
|
942
|
+
}
|
|
927
943
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
928
944
|
Pressable,
|
|
929
945
|
{
|
|
@@ -935,16 +951,7 @@ var SocialLinkIcon = React3__namespace.forwardRef(
|
|
|
935
951
|
className
|
|
936
952
|
),
|
|
937
953
|
...pressableProps,
|
|
938
|
-
children:
|
|
939
|
-
DynamicIcon,
|
|
940
|
-
{
|
|
941
|
-
name: iconName,
|
|
942
|
-
size: iconSize,
|
|
943
|
-
color: iconColor,
|
|
944
|
-
className: iconClassName,
|
|
945
|
-
alt: accessibleLabel
|
|
946
|
-
}
|
|
947
|
-
)
|
|
954
|
+
children: icon
|
|
948
955
|
}
|
|
949
956
|
);
|
|
950
957
|
}
|
|
@@ -891,6 +891,7 @@ var SocialLinkIcon = React3.forwardRef(
|
|
|
891
891
|
iconClassName,
|
|
892
892
|
className,
|
|
893
893
|
iconNameOverride,
|
|
894
|
+
iconOnly = false,
|
|
894
895
|
...pressableProps
|
|
895
896
|
}, ref) => {
|
|
896
897
|
const platform = usePlatformFromUrl(href);
|
|
@@ -903,6 +904,21 @@ var SocialLinkIcon = React3.forwardRef(
|
|
|
903
904
|
const accessibleLabel = React3.useMemo(() => {
|
|
904
905
|
return label || platformName;
|
|
905
906
|
}, [label, platformName]);
|
|
907
|
+
const icon = React3.useMemo(() => {
|
|
908
|
+
return /* @__PURE__ */ jsx(
|
|
909
|
+
DynamicIcon,
|
|
910
|
+
{
|
|
911
|
+
name: iconName,
|
|
912
|
+
size: iconSize,
|
|
913
|
+
color: iconColor,
|
|
914
|
+
className: iconClassName,
|
|
915
|
+
alt: accessibleLabel
|
|
916
|
+
}
|
|
917
|
+
);
|
|
918
|
+
}, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
|
|
919
|
+
if (iconOnly) {
|
|
920
|
+
return icon;
|
|
921
|
+
}
|
|
906
922
|
return /* @__PURE__ */ jsx(
|
|
907
923
|
Pressable,
|
|
908
924
|
{
|
|
@@ -914,16 +930,7 @@ var SocialLinkIcon = React3.forwardRef(
|
|
|
914
930
|
className
|
|
915
931
|
),
|
|
916
932
|
...pressableProps,
|
|
917
|
-
children:
|
|
918
|
-
DynamicIcon,
|
|
919
|
-
{
|
|
920
|
-
name: iconName,
|
|
921
|
-
size: iconSize,
|
|
922
|
-
color: iconColor,
|
|
923
|
-
className: iconClassName,
|
|
924
|
-
alt: accessibleLabel
|
|
925
|
-
}
|
|
926
|
-
)
|
|
933
|
+
children: icon
|
|
927
934
|
}
|
|
928
935
|
);
|
|
929
936
|
}
|
|
@@ -1005,6 +1005,7 @@ var SocialLinkIcon = React7__namespace.forwardRef(
|
|
|
1005
1005
|
iconClassName,
|
|
1006
1006
|
className,
|
|
1007
1007
|
iconNameOverride,
|
|
1008
|
+
iconOnly = false,
|
|
1008
1009
|
...pressableProps
|
|
1009
1010
|
}, ref) => {
|
|
1010
1011
|
const platform = usePlatformFromUrl.usePlatformFromUrl(href);
|
|
@@ -1017,6 +1018,21 @@ var SocialLinkIcon = React7__namespace.forwardRef(
|
|
|
1017
1018
|
const accessibleLabel = React7__namespace.useMemo(() => {
|
|
1018
1019
|
return label || platformName;
|
|
1019
1020
|
}, [label, platformName]);
|
|
1021
|
+
const icon = React7__namespace.useMemo(() => {
|
|
1022
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1023
|
+
DynamicIcon,
|
|
1024
|
+
{
|
|
1025
|
+
name: iconName,
|
|
1026
|
+
size: iconSize,
|
|
1027
|
+
color: iconColor,
|
|
1028
|
+
className: iconClassName,
|
|
1029
|
+
alt: accessibleLabel
|
|
1030
|
+
}
|
|
1031
|
+
);
|
|
1032
|
+
}, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
|
|
1033
|
+
if (iconOnly) {
|
|
1034
|
+
return icon;
|
|
1035
|
+
}
|
|
1020
1036
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1021
1037
|
Pressable,
|
|
1022
1038
|
{
|
|
@@ -1028,16 +1044,7 @@ var SocialLinkIcon = React7__namespace.forwardRef(
|
|
|
1028
1044
|
className
|
|
1029
1045
|
),
|
|
1030
1046
|
...pressableProps,
|
|
1031
|
-
children:
|
|
1032
|
-
DynamicIcon,
|
|
1033
|
-
{
|
|
1034
|
-
name: iconName,
|
|
1035
|
-
size: iconSize,
|
|
1036
|
-
color: iconColor,
|
|
1037
|
-
className: iconClassName,
|
|
1038
|
-
alt: accessibleLabel
|
|
1039
|
-
}
|
|
1040
|
-
)
|
|
1047
|
+
children: icon
|
|
1041
1048
|
}
|
|
1042
1049
|
);
|
|
1043
1050
|
}
|
|
@@ -983,6 +983,7 @@ var SocialLinkIcon = React7.forwardRef(
|
|
|
983
983
|
iconClassName,
|
|
984
984
|
className,
|
|
985
985
|
iconNameOverride,
|
|
986
|
+
iconOnly = false,
|
|
986
987
|
...pressableProps
|
|
987
988
|
}, ref) => {
|
|
988
989
|
const platform = usePlatformFromUrl(href);
|
|
@@ -995,6 +996,21 @@ var SocialLinkIcon = React7.forwardRef(
|
|
|
995
996
|
const accessibleLabel = React7.useMemo(() => {
|
|
996
997
|
return label || platformName;
|
|
997
998
|
}, [label, platformName]);
|
|
999
|
+
const icon = React7.useMemo(() => {
|
|
1000
|
+
return /* @__PURE__ */ jsx(
|
|
1001
|
+
DynamicIcon,
|
|
1002
|
+
{
|
|
1003
|
+
name: iconName,
|
|
1004
|
+
size: iconSize,
|
|
1005
|
+
color: iconColor,
|
|
1006
|
+
className: iconClassName,
|
|
1007
|
+
alt: accessibleLabel
|
|
1008
|
+
}
|
|
1009
|
+
);
|
|
1010
|
+
}, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
|
|
1011
|
+
if (iconOnly) {
|
|
1012
|
+
return icon;
|
|
1013
|
+
}
|
|
998
1014
|
return /* @__PURE__ */ jsx(
|
|
999
1015
|
Pressable,
|
|
1000
1016
|
{
|
|
@@ -1006,16 +1022,7 @@ var SocialLinkIcon = React7.forwardRef(
|
|
|
1006
1022
|
className
|
|
1007
1023
|
),
|
|
1008
1024
|
...pressableProps,
|
|
1009
|
-
children:
|
|
1010
|
-
DynamicIcon,
|
|
1011
|
-
{
|
|
1012
|
-
name: iconName,
|
|
1013
|
-
size: iconSize,
|
|
1014
|
-
color: iconColor,
|
|
1015
|
-
className: iconClassName,
|
|
1016
|
-
alt: accessibleLabel
|
|
1017
|
-
}
|
|
1018
|
-
)
|
|
1025
|
+
children: icon
|
|
1019
1026
|
}
|
|
1020
1027
|
);
|
|
1021
1028
|
}
|
|
@@ -34,16 +34,6 @@ var React6__namespace = /*#__PURE__*/_interopNamespace(React6);
|
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
37
|
-
var BRIGHTNESS_CLASS_MAP = {
|
|
38
|
-
"10": "brightness-[.1]",
|
|
39
|
-
"20": "brightness-[.2]",
|
|
40
|
-
"25": "brightness-[.25]",
|
|
41
|
-
"30": "brightness-[.3]",
|
|
42
|
-
"40": "brightness-[.4]",
|
|
43
|
-
"50": "brightness-50",
|
|
44
|
-
"75": "brightness-75",
|
|
45
|
-
"100": "brightness-100"
|
|
46
|
-
};
|
|
47
37
|
function normalizePhoneNumber(input) {
|
|
48
38
|
const trimmed = input.trim();
|
|
49
39
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -470,6 +460,67 @@ var DynamicIcon = React6__namespace.memo(function DynamicIcon2({
|
|
|
470
460
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
471
461
|
});
|
|
472
462
|
DynamicIcon.displayName = "DynamicIcon";
|
|
463
|
+
var DIRECTION_STYLES = {
|
|
464
|
+
"bottom-to-top": "bg-linear-to-t",
|
|
465
|
+
"top-to-bottom": "bg-linear-to-b",
|
|
466
|
+
"left-to-right": "bg-linear-to-r",
|
|
467
|
+
"right-to-left": "bg-linear-to-l",
|
|
468
|
+
"bottom-left-to-top-right": "bg-linear-to-tr",
|
|
469
|
+
"bottom-right-to-top-left": "bg-linear-to-tl",
|
|
470
|
+
"top-left-to-bottom-right": "bg-linear-to-br",
|
|
471
|
+
"top-right-to-bottom-left": "bg-linear-to-bl"
|
|
472
|
+
};
|
|
473
|
+
var INTENSITY_STOPS = {
|
|
474
|
+
low: "from-black/40 via-black/20 to-transparent",
|
|
475
|
+
default: "from-black/70 via-black/35 to-transparent",
|
|
476
|
+
high: "from-black/85 via-black/50 to-transparent",
|
|
477
|
+
"very-high": "from-black/95 via-black/60 to-black/20"
|
|
478
|
+
};
|
|
479
|
+
var RADIAL_INTENSITY = {
|
|
480
|
+
low: {
|
|
481
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
|
|
482
|
+
},
|
|
483
|
+
default: {
|
|
484
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
|
|
485
|
+
},
|
|
486
|
+
high: {
|
|
487
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
|
|
488
|
+
},
|
|
489
|
+
"very-high": {
|
|
490
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.60) 50%, rgba(0,0,0,0.20) 100%)"
|
|
491
|
+
}
|
|
492
|
+
};
|
|
493
|
+
function GradientOverlay({
|
|
494
|
+
direction = "bottom-to-top",
|
|
495
|
+
intensity = "default",
|
|
496
|
+
className,
|
|
497
|
+
style,
|
|
498
|
+
...props
|
|
499
|
+
}) {
|
|
500
|
+
if (direction === "radial-center") {
|
|
501
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
502
|
+
"div",
|
|
503
|
+
{
|
|
504
|
+
className: cn("absolute inset-0", className),
|
|
505
|
+
style: { ...RADIAL_INTENSITY[intensity], ...style },
|
|
506
|
+
...props
|
|
507
|
+
}
|
|
508
|
+
);
|
|
509
|
+
}
|
|
510
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
511
|
+
"div",
|
|
512
|
+
{
|
|
513
|
+
className: cn(
|
|
514
|
+
"absolute inset-0",
|
|
515
|
+
DIRECTION_STYLES[direction],
|
|
516
|
+
INTENSITY_STOPS[intensity],
|
|
517
|
+
className
|
|
518
|
+
),
|
|
519
|
+
style,
|
|
520
|
+
...props
|
|
521
|
+
}
|
|
522
|
+
);
|
|
523
|
+
}
|
|
473
524
|
var maxWidthStyles = {
|
|
474
525
|
sm: "max-w-screen-sm",
|
|
475
526
|
md: "max-w-screen-md",
|
|
@@ -861,7 +912,8 @@ function CarouselAnimatedSections({
|
|
|
861
912
|
navigationClassName,
|
|
862
913
|
arrowsClassName,
|
|
863
914
|
counterClassName,
|
|
864
|
-
slideMediaBrightness
|
|
915
|
+
slideMediaBrightness,
|
|
916
|
+
slideMediaOverlayIntensity = "high",
|
|
865
917
|
optixFlowConfig,
|
|
866
918
|
background = "dark",
|
|
867
919
|
spacing = "py-0",
|
|
@@ -950,7 +1002,7 @@ function CarouselAnimatedSections({
|
|
|
950
1002
|
containerMaxWidth,
|
|
951
1003
|
containerClassName,
|
|
952
1004
|
children: [
|
|
953
|
-
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.
|
|
1005
|
+
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsxRuntime.jsx(framerMotion.AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
954
1006
|
framerMotion.motion.div,
|
|
955
1007
|
{
|
|
956
1008
|
custom: direction,
|
|
@@ -961,19 +1013,21 @@ function CarouselAnimatedSections({
|
|
|
961
1013
|
transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
|
|
962
1014
|
onAnimationComplete: () => setIsAnimating(false),
|
|
963
1015
|
className: cn("absolute inset-0", currentSection?.className),
|
|
964
|
-
children:
|
|
965
|
-
|
|
966
|
-
|
|
967
|
-
|
|
968
|
-
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
|
|
974
|
-
|
|
975
|
-
|
|
976
|
-
|
|
1016
|
+
children: [
|
|
1017
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1018
|
+
img.Img,
|
|
1019
|
+
{
|
|
1020
|
+
src: currentSection?.image,
|
|
1021
|
+
alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
|
|
1022
|
+
className: cn(
|
|
1023
|
+
"h-full w-full object-cover",
|
|
1024
|
+
currentSection?.imageClassName
|
|
1025
|
+
),
|
|
1026
|
+
optixFlowConfig
|
|
1027
|
+
}
|
|
1028
|
+
),
|
|
1029
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
1030
|
+
]
|
|
977
1031
|
},
|
|
978
1032
|
currentIndex
|
|
979
1033
|
) }) : null,
|
|
@@ -121,7 +121,12 @@ interface CarouselAnimatedSectionsProps {
|
|
|
121
121
|
*/
|
|
122
122
|
counterClassName?: string;
|
|
123
123
|
/**
|
|
124
|
-
*
|
|
124
|
+
* Intensity of the gradient overlay on slide media
|
|
125
|
+
* @default "high"
|
|
126
|
+
*/
|
|
127
|
+
slideMediaOverlayIntensity?: "low" | "default" | "high" | "very-high";
|
|
128
|
+
/**
|
|
129
|
+
* Granular control of brightness for slide media (deprecated - prefer slideMediaOverlayIntensity)
|
|
125
130
|
* Values 10-40 use arbitrary Tailwind values for finer control on bright images
|
|
126
131
|
*/
|
|
127
132
|
slideMediaBrightness?: "10" | "20" | "25" | "30" | "40" | "50" | "75" | "100";
|
|
@@ -150,6 +155,6 @@ interface CarouselAnimatedSectionsProps {
|
|
|
150
155
|
*/
|
|
151
156
|
containerMaxWidth?: ContainerMaxWidth;
|
|
152
157
|
}
|
|
153
|
-
declare function CarouselAnimatedSections({ sections, sectionsSlot, actionsSlot, actions, className, containerClassName, contentClassName, subtitleClassName, titleClassName, descriptionClassName, actionsClassName, navigationClassName, arrowsClassName, counterClassName, slideMediaBrightness, optixFlowConfig, background, spacing, containerMaxWidth, pattern, patternOpacity, }: CarouselAnimatedSectionsProps): React.JSX.Element;
|
|
158
|
+
declare function CarouselAnimatedSections({ sections, sectionsSlot, actionsSlot, actions, className, containerClassName, contentClassName, subtitleClassName, titleClassName, descriptionClassName, actionsClassName, navigationClassName, arrowsClassName, counterClassName, slideMediaBrightness, slideMediaOverlayIntensity, optixFlowConfig, background, spacing, containerMaxWidth, pattern, patternOpacity, }: CarouselAnimatedSectionsProps): React.JSX.Element;
|
|
154
159
|
|
|
155
160
|
export { type AnimatedSection, CarouselAnimatedSections, type CarouselAnimatedSectionsProps };
|
|
@@ -121,7 +121,12 @@ interface CarouselAnimatedSectionsProps {
|
|
|
121
121
|
*/
|
|
122
122
|
counterClassName?: string;
|
|
123
123
|
/**
|
|
124
|
-
*
|
|
124
|
+
* Intensity of the gradient overlay on slide media
|
|
125
|
+
* @default "high"
|
|
126
|
+
*/
|
|
127
|
+
slideMediaOverlayIntensity?: "low" | "default" | "high" | "very-high";
|
|
128
|
+
/**
|
|
129
|
+
* Granular control of brightness for slide media (deprecated - prefer slideMediaOverlayIntensity)
|
|
125
130
|
* Values 10-40 use arbitrary Tailwind values for finer control on bright images
|
|
126
131
|
*/
|
|
127
132
|
slideMediaBrightness?: "10" | "20" | "25" | "30" | "40" | "50" | "75" | "100";
|
|
@@ -150,6 +155,6 @@ interface CarouselAnimatedSectionsProps {
|
|
|
150
155
|
*/
|
|
151
156
|
containerMaxWidth?: ContainerMaxWidth;
|
|
152
157
|
}
|
|
153
|
-
declare function CarouselAnimatedSections({ sections, sectionsSlot, actionsSlot, actions, className, containerClassName, contentClassName, subtitleClassName, titleClassName, descriptionClassName, actionsClassName, navigationClassName, arrowsClassName, counterClassName, slideMediaBrightness, optixFlowConfig, background, spacing, containerMaxWidth, pattern, patternOpacity, }: CarouselAnimatedSectionsProps): React.JSX.Element;
|
|
158
|
+
declare function CarouselAnimatedSections({ sections, sectionsSlot, actionsSlot, actions, className, containerClassName, contentClassName, subtitleClassName, titleClassName, descriptionClassName, actionsClassName, navigationClassName, arrowsClassName, counterClassName, slideMediaBrightness, slideMediaOverlayIntensity, optixFlowConfig, background, spacing, containerMaxWidth, pattern, patternOpacity, }: CarouselAnimatedSectionsProps): React.JSX.Element;
|
|
154
159
|
|
|
155
160
|
export { type AnimatedSection, CarouselAnimatedSections, type CarouselAnimatedSectionsProps };
|
|
@@ -13,16 +13,6 @@ import { Img } from '@page-speed/img';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
-
var BRIGHTNESS_CLASS_MAP = {
|
|
17
|
-
"10": "brightness-[.1]",
|
|
18
|
-
"20": "brightness-[.2]",
|
|
19
|
-
"25": "brightness-[.25]",
|
|
20
|
-
"30": "brightness-[.3]",
|
|
21
|
-
"40": "brightness-[.4]",
|
|
22
|
-
"50": "brightness-50",
|
|
23
|
-
"75": "brightness-75",
|
|
24
|
-
"100": "brightness-100"
|
|
25
|
-
};
|
|
26
16
|
function normalizePhoneNumber(input) {
|
|
27
17
|
const trimmed = input.trim();
|
|
28
18
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -449,6 +439,67 @@ var DynamicIcon = React6.memo(function DynamicIcon2({
|
|
|
449
439
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
450
440
|
});
|
|
451
441
|
DynamicIcon.displayName = "DynamicIcon";
|
|
442
|
+
var DIRECTION_STYLES = {
|
|
443
|
+
"bottom-to-top": "bg-linear-to-t",
|
|
444
|
+
"top-to-bottom": "bg-linear-to-b",
|
|
445
|
+
"left-to-right": "bg-linear-to-r",
|
|
446
|
+
"right-to-left": "bg-linear-to-l",
|
|
447
|
+
"bottom-left-to-top-right": "bg-linear-to-tr",
|
|
448
|
+
"bottom-right-to-top-left": "bg-linear-to-tl",
|
|
449
|
+
"top-left-to-bottom-right": "bg-linear-to-br",
|
|
450
|
+
"top-right-to-bottom-left": "bg-linear-to-bl"
|
|
451
|
+
};
|
|
452
|
+
var INTENSITY_STOPS = {
|
|
453
|
+
low: "from-black/40 via-black/20 to-transparent",
|
|
454
|
+
default: "from-black/70 via-black/35 to-transparent",
|
|
455
|
+
high: "from-black/85 via-black/50 to-transparent",
|
|
456
|
+
"very-high": "from-black/95 via-black/60 to-black/20"
|
|
457
|
+
};
|
|
458
|
+
var RADIAL_INTENSITY = {
|
|
459
|
+
low: {
|
|
460
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
|
|
461
|
+
},
|
|
462
|
+
default: {
|
|
463
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
|
|
464
|
+
},
|
|
465
|
+
high: {
|
|
466
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
|
|
467
|
+
},
|
|
468
|
+
"very-high": {
|
|
469
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.60) 50%, rgba(0,0,0,0.20) 100%)"
|
|
470
|
+
}
|
|
471
|
+
};
|
|
472
|
+
function GradientOverlay({
|
|
473
|
+
direction = "bottom-to-top",
|
|
474
|
+
intensity = "default",
|
|
475
|
+
className,
|
|
476
|
+
style,
|
|
477
|
+
...props
|
|
478
|
+
}) {
|
|
479
|
+
if (direction === "radial-center") {
|
|
480
|
+
return /* @__PURE__ */ jsx(
|
|
481
|
+
"div",
|
|
482
|
+
{
|
|
483
|
+
className: cn("absolute inset-0", className),
|
|
484
|
+
style: { ...RADIAL_INTENSITY[intensity], ...style },
|
|
485
|
+
...props
|
|
486
|
+
}
|
|
487
|
+
);
|
|
488
|
+
}
|
|
489
|
+
return /* @__PURE__ */ jsx(
|
|
490
|
+
"div",
|
|
491
|
+
{
|
|
492
|
+
className: cn(
|
|
493
|
+
"absolute inset-0",
|
|
494
|
+
DIRECTION_STYLES[direction],
|
|
495
|
+
INTENSITY_STOPS[intensity],
|
|
496
|
+
className
|
|
497
|
+
),
|
|
498
|
+
style,
|
|
499
|
+
...props
|
|
500
|
+
}
|
|
501
|
+
);
|
|
502
|
+
}
|
|
452
503
|
var maxWidthStyles = {
|
|
453
504
|
sm: "max-w-screen-sm",
|
|
454
505
|
md: "max-w-screen-md",
|
|
@@ -840,7 +891,8 @@ function CarouselAnimatedSections({
|
|
|
840
891
|
navigationClassName,
|
|
841
892
|
arrowsClassName,
|
|
842
893
|
counterClassName,
|
|
843
|
-
slideMediaBrightness
|
|
894
|
+
slideMediaBrightness,
|
|
895
|
+
slideMediaOverlayIntensity = "high",
|
|
844
896
|
optixFlowConfig,
|
|
845
897
|
background = "dark",
|
|
846
898
|
spacing = "py-0",
|
|
@@ -929,7 +981,7 @@ function CarouselAnimatedSections({
|
|
|
929
981
|
containerMaxWidth,
|
|
930
982
|
containerClassName,
|
|
931
983
|
children: [
|
|
932
|
-
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */
|
|
984
|
+
sectionsSlot ? sectionsSlot : currentSection ? /* @__PURE__ */ jsx(AnimatePresence, { initial: false, custom: direction, mode: "wait", children: /* @__PURE__ */ jsxs(
|
|
933
985
|
motion.div,
|
|
934
986
|
{
|
|
935
987
|
custom: direction,
|
|
@@ -940,19 +992,21 @@ function CarouselAnimatedSections({
|
|
|
940
992
|
transition: { duration: 0.6, ease: [0.4, 0, 0.2, 1] },
|
|
941
993
|
onAnimationComplete: () => setIsAnimating(false),
|
|
942
994
|
className: cn("absolute inset-0", currentSection?.className),
|
|
943
|
-
children:
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
995
|
+
children: [
|
|
996
|
+
/* @__PURE__ */ jsx(
|
|
997
|
+
Img,
|
|
998
|
+
{
|
|
999
|
+
src: currentSection?.image,
|
|
1000
|
+
alt: typeof currentSection?.title === "string" ? currentSection?.title : `Section ${currentSection?.id}`,
|
|
1001
|
+
className: cn(
|
|
1002
|
+
"h-full w-full object-cover",
|
|
1003
|
+
currentSection?.imageClassName
|
|
1004
|
+
),
|
|
1005
|
+
optixFlowConfig
|
|
1006
|
+
}
|
|
1007
|
+
),
|
|
1008
|
+
/* @__PURE__ */ jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
1009
|
+
]
|
|
956
1010
|
},
|
|
957
1011
|
currentIndex
|
|
958
1012
|
) }) : null,
|
|
@@ -33,16 +33,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
33
33
|
function cn(...inputs) {
|
|
34
34
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
35
|
}
|
|
36
|
-
var BRIGHTNESS_CLASS_MAP = {
|
|
37
|
-
"10": "brightness-[.1]",
|
|
38
|
-
"20": "brightness-[.2]",
|
|
39
|
-
"25": "brightness-[.25]",
|
|
40
|
-
"30": "brightness-[.3]",
|
|
41
|
-
"40": "brightness-[.4]",
|
|
42
|
-
"50": "brightness-50",
|
|
43
|
-
"75": "brightness-75",
|
|
44
|
-
"100": "brightness-100"
|
|
45
|
-
};
|
|
46
36
|
function normalizePhoneNumber(input) {
|
|
47
37
|
const trimmed = input.trim();
|
|
48
38
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -469,6 +459,67 @@ var DynamicIcon = React__namespace.memo(function DynamicIcon2({
|
|
|
469
459
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
470
460
|
});
|
|
471
461
|
DynamicIcon.displayName = "DynamicIcon";
|
|
462
|
+
var DIRECTION_STYLES = {
|
|
463
|
+
"bottom-to-top": "bg-linear-to-t",
|
|
464
|
+
"top-to-bottom": "bg-linear-to-b",
|
|
465
|
+
"left-to-right": "bg-linear-to-r",
|
|
466
|
+
"right-to-left": "bg-linear-to-l",
|
|
467
|
+
"bottom-left-to-top-right": "bg-linear-to-tr",
|
|
468
|
+
"bottom-right-to-top-left": "bg-linear-to-tl",
|
|
469
|
+
"top-left-to-bottom-right": "bg-linear-to-br",
|
|
470
|
+
"top-right-to-bottom-left": "bg-linear-to-bl"
|
|
471
|
+
};
|
|
472
|
+
var INTENSITY_STOPS = {
|
|
473
|
+
low: "from-black/40 via-black/20 to-transparent",
|
|
474
|
+
default: "from-black/70 via-black/35 to-transparent",
|
|
475
|
+
high: "from-black/85 via-black/50 to-transparent",
|
|
476
|
+
"very-high": "from-black/95 via-black/60 to-black/20"
|
|
477
|
+
};
|
|
478
|
+
var RADIAL_INTENSITY = {
|
|
479
|
+
low: {
|
|
480
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
|
|
481
|
+
},
|
|
482
|
+
default: {
|
|
483
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
|
|
484
|
+
},
|
|
485
|
+
high: {
|
|
486
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
|
|
487
|
+
},
|
|
488
|
+
"very-high": {
|
|
489
|
+
background: "radial-gradient(ellipse at center, rgba(0,0,0,0.95) 0%, rgba(0,0,0,0.60) 50%, rgba(0,0,0,0.20) 100%)"
|
|
490
|
+
}
|
|
491
|
+
};
|
|
492
|
+
function GradientOverlay({
|
|
493
|
+
direction = "bottom-to-top",
|
|
494
|
+
intensity = "default",
|
|
495
|
+
className,
|
|
496
|
+
style,
|
|
497
|
+
...props
|
|
498
|
+
}) {
|
|
499
|
+
if (direction === "radial-center") {
|
|
500
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
501
|
+
"div",
|
|
502
|
+
{
|
|
503
|
+
className: cn("absolute inset-0", className),
|
|
504
|
+
style: { ...RADIAL_INTENSITY[intensity], ...style },
|
|
505
|
+
...props
|
|
506
|
+
}
|
|
507
|
+
);
|
|
508
|
+
}
|
|
509
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
510
|
+
"div",
|
|
511
|
+
{
|
|
512
|
+
className: cn(
|
|
513
|
+
"absolute inset-0",
|
|
514
|
+
DIRECTION_STYLES[direction],
|
|
515
|
+
INTENSITY_STOPS[intensity],
|
|
516
|
+
className
|
|
517
|
+
),
|
|
518
|
+
style,
|
|
519
|
+
...props
|
|
520
|
+
}
|
|
521
|
+
);
|
|
522
|
+
}
|
|
472
523
|
var maxWidthStyles = {
|
|
473
524
|
sm: "max-w-screen-sm",
|
|
474
525
|
md: "max-w-screen-md",
|
|
@@ -863,7 +914,8 @@ function CarouselGalleryThumbnails({
|
|
|
863
914
|
spacing = "sm",
|
|
864
915
|
pattern,
|
|
865
916
|
patternOpacity,
|
|
866
|
-
slideMediaBrightness
|
|
917
|
+
slideMediaBrightness,
|
|
918
|
+
slideMediaOverlayIntensity = "default"
|
|
867
919
|
}) {
|
|
868
920
|
const [currentIndex, setCurrentIndex] = React__namespace.useState(0);
|
|
869
921
|
const prevSlide = React__namespace.useCallback(() => {
|
|
@@ -912,7 +964,7 @@ function CarouselGalleryThumbnails({
|
|
|
912
964
|
"relative aspect-video w-full overflow-hidden",
|
|
913
965
|
slideClassName
|
|
914
966
|
),
|
|
915
|
-
children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsxRuntime.
|
|
967
|
+
children: imagesSlot ? imagesSlot : images?.map((image, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
916
968
|
"div",
|
|
917
969
|
{
|
|
918
970
|
className: cn(
|
|
@@ -920,19 +972,21 @@ function CarouselGalleryThumbnails({
|
|
|
920
972
|
index === currentIndex ? "translate-x-0 opacity-100" : index < currentIndex ? "-translate-x-full opacity-0" : "translate-x-full opacity-0",
|
|
921
973
|
image.className
|
|
922
974
|
),
|
|
923
|
-
children:
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
975
|
+
children: [
|
|
976
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
977
|
+
img.Img,
|
|
978
|
+
{
|
|
979
|
+
src: image.src,
|
|
980
|
+
alt: typeof image.alt === "string" ? image.alt : `Image ${index + 1}`,
|
|
981
|
+
className: cn(
|
|
982
|
+
"h-full w-full object-cover",
|
|
983
|
+
image.imageClassName
|
|
984
|
+
),
|
|
985
|
+
optixFlowConfig
|
|
986
|
+
}
|
|
987
|
+
),
|
|
988
|
+
/* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: slideMediaOverlayIntensity })
|
|
989
|
+
]
|
|
936
990
|
},
|
|
937
991
|
`slide-${index}`
|
|
938
992
|
))
|
|
@@ -117,10 +117,15 @@ interface CarouselGalleryThumbnailsProps {
|
|
|
117
117
|
*/
|
|
118
118
|
patternOpacity?: number;
|
|
119
119
|
/**
|
|
120
|
-
*
|
|
120
|
+
* Intensity of the gradient overlay on slide images
|
|
121
|
+
* @default "default"
|
|
122
|
+
*/
|
|
123
|
+
slideMediaOverlayIntensity?: "low" | "default" | "high" | "very-high";
|
|
124
|
+
/**
|
|
125
|
+
* Brightness level for slide images (deprecated - prefer slideMediaOverlayIntensity)
|
|
121
126
|
*/
|
|
122
127
|
slideMediaBrightness?: "10" | "20" | "25" | "30" | "40" | "50" | "75" | "100";
|
|
123
128
|
}
|
|
124
|
-
declare function CarouselGalleryThumbnails({ images, imagesSlot, autoPlay, autoPlayInterval, showThumbnails, className, containerClassName, slideClassName, navigationClassName, captionClassName, thumbnailsClassName, thumbnailClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, slideMediaBrightness, }: CarouselGalleryThumbnailsProps): React.JSX.Element;
|
|
129
|
+
declare function CarouselGalleryThumbnails({ images, imagesSlot, autoPlay, autoPlayInterval, showThumbnails, className, containerClassName, slideClassName, navigationClassName, captionClassName, thumbnailsClassName, thumbnailClassName, optixFlowConfig, background, spacing, pattern, patternOpacity, slideMediaBrightness, slideMediaOverlayIntensity, }: CarouselGalleryThumbnailsProps): React.JSX.Element;
|
|
125
130
|
|
|
126
131
|
export { CarouselGalleryThumbnails, type CarouselGalleryThumbnailsProps, type GalleryImage };
|