@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.
Files changed (141) hide show
  1. package/dist/about-developer-profile.cjs +17 -10
  2. package/dist/about-developer-profile.js +17 -10
  3. package/dist/article-chapters-author.cjs +17 -10
  4. package/dist/article-chapters-author.js +17 -10
  5. package/dist/carousel-animated-sections.cjs +79 -25
  6. package/dist/carousel-animated-sections.d.cts +7 -2
  7. package/dist/carousel-animated-sections.d.ts +7 -2
  8. package/dist/carousel-animated-sections.js +79 -25
  9. package/dist/carousel-gallery-thumbnails.cjs +79 -25
  10. package/dist/carousel-gallery-thumbnails.d.cts +7 -2
  11. package/dist/carousel-gallery-thumbnails.d.ts +7 -2
  12. package/dist/carousel-gallery-thumbnails.js +79 -25
  13. package/dist/carousel-portfolio-hero.cjs +79 -25
  14. package/dist/carousel-portfolio-hero.d.cts +7 -2
  15. package/dist/carousel-portfolio-hero.d.ts +7 -2
  16. package/dist/carousel-portfolio-hero.js +79 -25
  17. package/dist/components.cjs +35 -10
  18. package/dist/components.d.cts +29 -2
  19. package/dist/components.d.ts +29 -2
  20. package/dist/components.js +35 -11
  21. package/dist/footer-accordion-social.cjs +17 -10
  22. package/dist/footer-accordion-social.js +17 -10
  23. package/dist/footer-animated-social.cjs +17 -10
  24. package/dist/footer-animated-social.js +17 -10
  25. package/dist/footer-brand-description.cjs +17 -10
  26. package/dist/footer-brand-description.js +17 -10
  27. package/dist/footer-brand-links-contact.cjs +17 -10
  28. package/dist/footer-brand-links-contact.js +17 -10
  29. package/dist/footer-comprehensive-links.cjs +17 -10
  30. package/dist/footer-comprehensive-links.js +17 -10
  31. package/dist/footer-contact-card.cjs +17 -10
  32. package/dist/footer-contact-card.js +17 -10
  33. package/dist/footer-cta-banner.cjs +17 -10
  34. package/dist/footer-cta-banner.js +17 -10
  35. package/dist/footer-cta-social.cjs +17 -10
  36. package/dist/footer-cta-social.js +17 -10
  37. package/dist/footer-info-cards-accordion.cjs +17 -10
  38. package/dist/footer-info-cards-accordion.js +17 -10
  39. package/dist/footer-nav-social.cjs +17 -10
  40. package/dist/footer-nav-social.js +17 -10
  41. package/dist/footer-newsletter-contact.cjs +17 -10
  42. package/dist/footer-newsletter-contact.js +17 -10
  43. package/dist/footer-newsletter-grid.cjs +17 -10
  44. package/dist/footer-newsletter-grid.js +17 -10
  45. package/dist/footer-newsletter-minimal.cjs +17 -10
  46. package/dist/footer-newsletter-minimal.js +17 -10
  47. package/dist/footer-social-apps.cjs +17 -10
  48. package/dist/footer-social-apps.js +17 -10
  49. package/dist/footer-social-newsletter.cjs +17 -10
  50. package/dist/footer-social-newsletter.js +17 -10
  51. package/dist/footer-split-image-accordion.cjs +17 -10
  52. package/dist/footer-split-image-accordion.js +17 -10
  53. package/dist/hero-badge-shadow-overlay.cjs +1 -1
  54. package/dist/hero-badge-shadow-overlay.js +1 -1
  55. package/dist/hero-coming-soon-countdown.cjs +17 -10
  56. package/dist/hero-coming-soon-countdown.js +17 -10
  57. package/dist/hero-video-background-dark.cjs +78 -16
  58. package/dist/hero-video-background-dark.d.cts +7 -2
  59. package/dist/hero-video-background-dark.d.ts +7 -2
  60. package/dist/hero-video-background-dark.js +78 -16
  61. package/dist/index.cjs +35 -10
  62. package/dist/index.d.cts +1 -0
  63. package/dist/index.d.ts +1 -0
  64. package/dist/index.js +35 -11
  65. package/dist/link-page-bento-layout.cjs +17 -10
  66. package/dist/link-page-bento-layout.js +17 -10
  67. package/dist/link-page-grid-cards.cjs +17 -10
  68. package/dist/link-page-grid-cards.js +17 -10
  69. package/dist/link-page-minimal-profile.cjs +17 -10
  70. package/dist/link-page-minimal-profile.js +17 -10
  71. package/dist/link-page-newsletter-social.cjs +17 -10
  72. package/dist/link-page-newsletter-social.js +17 -10
  73. package/dist/link-tree-block.cjs +17 -10
  74. package/dist/link-tree-block.js +17 -10
  75. package/dist/navbar-fullscreen-menu.cjs +17 -10
  76. package/dist/navbar-fullscreen-menu.js +17 -10
  77. package/dist/navbar-transparent-overlay.cjs +17 -10
  78. package/dist/navbar-transparent-overlay.js +17 -10
  79. package/dist/registry.cjs +1398 -851
  80. package/dist/registry.js +1398 -851
  81. package/dist/social-link-icon.cjs +17 -10
  82. package/dist/social-link-icon.d.cts +5 -0
  83. package/dist/social-link-icon.d.ts +5 -0
  84. package/dist/social-link-icon.js +17 -10
  85. package/dist/testimonials-animated-split.cjs +5 -5
  86. package/dist/testimonials-animated-split.js +5 -5
  87. package/dist/testimonials-bento-grid.cjs +48 -56
  88. package/dist/testimonials-bento-grid.js +48 -56
  89. package/dist/testimonials-carousel-image.cjs +608 -96
  90. package/dist/testimonials-carousel-image.d.cts +26 -2
  91. package/dist/testimonials-carousel-image.d.ts +26 -2
  92. package/dist/testimonials-carousel-image.js +609 -97
  93. package/dist/testimonials-centered-avatars.cjs +89 -62
  94. package/dist/testimonials-centered-avatars.d.cts +5 -1
  95. package/dist/testimonials-centered-avatars.d.ts +5 -1
  96. package/dist/testimonials-centered-avatars.js +89 -62
  97. package/dist/testimonials-company-logo.cjs +6 -6
  98. package/dist/testimonials-company-logo.js +6 -6
  99. package/dist/testimonials-grid-add-review.cjs +51 -29
  100. package/dist/testimonials-grid-add-review.js +51 -29
  101. package/dist/testimonials-images-helpful.cjs +181 -160
  102. package/dist/testimonials-images-helpful.d.cts +9 -1
  103. package/dist/testimonials-images-helpful.d.ts +9 -1
  104. package/dist/testimonials-images-helpful.js +181 -159
  105. package/dist/testimonials-list-verified.cjs +63 -44
  106. package/dist/testimonials-list-verified.d.cts +5 -1
  107. package/dist/testimonials-list-verified.d.ts +5 -1
  108. package/dist/testimonials-list-verified.js +64 -45
  109. package/dist/testimonials-logo-cards.cjs +53 -29
  110. package/dist/testimonials-logo-cards.d.cts +5 -1
  111. package/dist/testimonials-logo-cards.d.ts +5 -1
  112. package/dist/testimonials-logo-cards.js +53 -29
  113. package/dist/testimonials-marquee.cjs +524 -102
  114. package/dist/testimonials-marquee.d.cts +5 -1
  115. package/dist/testimonials-marquee.d.ts +5 -1
  116. package/dist/testimonials-marquee.js +525 -100
  117. package/dist/testimonials-mini-dividers.cjs +120 -83
  118. package/dist/testimonials-mini-dividers.d.cts +10 -6
  119. package/dist/testimonials-mini-dividers.d.ts +10 -6
  120. package/dist/testimonials-mini-dividers.js +120 -83
  121. package/dist/testimonials-minimal-numbered.cjs +7 -6
  122. package/dist/testimonials-minimal-numbered.d.cts +5 -1
  123. package/dist/testimonials-minimal-numbered.d.ts +5 -1
  124. package/dist/testimonials-minimal-numbered.js +7 -6
  125. package/dist/testimonials-parallax-number.cjs +14 -8
  126. package/dist/testimonials-parallax-number.js +14 -8
  127. package/dist/testimonials-scrolling-columns.cjs +97 -13
  128. package/dist/testimonials-scrolling-columns.js +97 -13
  129. package/dist/testimonials-simple-grid.cjs +513 -68
  130. package/dist/testimonials-simple-grid.d.cts +9 -5
  131. package/dist/testimonials-simple-grid.d.ts +9 -5
  132. package/dist/testimonials-simple-grid.js +510 -62
  133. package/dist/testimonials-slider-minimal.cjs +604 -90
  134. package/dist/testimonials-slider-minimal.d.cts +17 -1
  135. package/dist/testimonials-slider-minimal.d.ts +17 -1
  136. package/dist/testimonials-slider-minimal.js +598 -81
  137. package/dist/testimonials-split-image.cjs +452 -17
  138. package/dist/testimonials-split-image.js +448 -13
  139. package/dist/testimonials-twitter-cards.cjs +26 -14
  140. package/dist/testimonials-twitter-cards.js +26 -14
  141. package/package.json +11 -1
@@ -1464,6 +1464,7 @@ var SocialLinkIcon = React2.forwardRef(
1464
1464
  iconClassName,
1465
1465
  className,
1466
1466
  iconNameOverride,
1467
+ iconOnly = false,
1467
1468
  ...pressableProps
1468
1469
  }, ref) => {
1469
1470
  const platform = usePlatformFromUrl(href);
@@ -1476,6 +1477,21 @@ var SocialLinkIcon = React2.forwardRef(
1476
1477
  const accessibleLabel = React2.useMemo(() => {
1477
1478
  return label || platformName;
1478
1479
  }, [label, platformName]);
1480
+ const icon = React2.useMemo(() => {
1481
+ return /* @__PURE__ */ jsx(
1482
+ DynamicIcon,
1483
+ {
1484
+ name: iconName,
1485
+ size: iconSize,
1486
+ color: iconColor,
1487
+ className: iconClassName,
1488
+ alt: accessibleLabel
1489
+ }
1490
+ );
1491
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
1492
+ if (iconOnly) {
1493
+ return icon;
1494
+ }
1479
1495
  return /* @__PURE__ */ jsx(
1480
1496
  Pressable,
1481
1497
  {
@@ -1487,16 +1503,7 @@ var SocialLinkIcon = React2.forwardRef(
1487
1503
  className
1488
1504
  ),
1489
1505
  ...pressableProps,
1490
- children: /* @__PURE__ */ jsx(
1491
- DynamicIcon,
1492
- {
1493
- name: iconName,
1494
- size: iconSize,
1495
- color: iconColor,
1496
- className: iconClassName,
1497
- alt: accessibleLabel
1498
- }
1499
- )
1506
+ children: icon
1500
1507
  }
1501
1508
  );
1502
1509
  }
@@ -1415,6 +1415,7 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1415
1415
  iconClassName,
1416
1416
  className,
1417
1417
  iconNameOverride,
1418
+ iconOnly = false,
1418
1419
  ...pressableProps
1419
1420
  }, ref) => {
1420
1421
  const platform = usePlatformFromUrl.usePlatformFromUrl(href);
@@ -1427,6 +1428,21 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1427
1428
  const accessibleLabel = React2__namespace.useMemo(() => {
1428
1429
  return label || platformName;
1429
1430
  }, [label, platformName]);
1431
+ const icon = React2__namespace.useMemo(() => {
1432
+ return /* @__PURE__ */ jsxRuntime.jsx(
1433
+ DynamicIcon,
1434
+ {
1435
+ name: iconName,
1436
+ size: iconSize,
1437
+ color: iconColor,
1438
+ className: iconClassName,
1439
+ alt: accessibleLabel
1440
+ }
1441
+ );
1442
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
1443
+ if (iconOnly) {
1444
+ return icon;
1445
+ }
1430
1446
  return /* @__PURE__ */ jsxRuntime.jsx(
1431
1447
  Pressable,
1432
1448
  {
@@ -1438,16 +1454,7 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1438
1454
  className
1439
1455
  ),
1440
1456
  ...pressableProps,
1441
- children: /* @__PURE__ */ jsxRuntime.jsx(
1442
- DynamicIcon,
1443
- {
1444
- name: iconName,
1445
- size: iconSize,
1446
- color: iconColor,
1447
- className: iconClassName,
1448
- alt: accessibleLabel
1449
- }
1450
- )
1457
+ children: icon
1451
1458
  }
1452
1459
  );
1453
1460
  }
@@ -1394,6 +1394,7 @@ var SocialLinkIcon = React2.forwardRef(
1394
1394
  iconClassName,
1395
1395
  className,
1396
1396
  iconNameOverride,
1397
+ iconOnly = false,
1397
1398
  ...pressableProps
1398
1399
  }, ref) => {
1399
1400
  const platform = usePlatformFromUrl(href);
@@ -1406,6 +1407,21 @@ var SocialLinkIcon = React2.forwardRef(
1406
1407
  const accessibleLabel = React2.useMemo(() => {
1407
1408
  return label || platformName;
1408
1409
  }, [label, platformName]);
1410
+ const icon = React2.useMemo(() => {
1411
+ return /* @__PURE__ */ jsx(
1412
+ DynamicIcon,
1413
+ {
1414
+ name: iconName,
1415
+ size: iconSize,
1416
+ color: iconColor,
1417
+ className: iconClassName,
1418
+ alt: accessibleLabel
1419
+ }
1420
+ );
1421
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
1422
+ if (iconOnly) {
1423
+ return icon;
1424
+ }
1409
1425
  return /* @__PURE__ */ jsx(
1410
1426
  Pressable,
1411
1427
  {
@@ -1417,16 +1433,7 @@ var SocialLinkIcon = React2.forwardRef(
1417
1433
  className
1418
1434
  ),
1419
1435
  ...pressableProps,
1420
- children: /* @__PURE__ */ jsx(
1421
- DynamicIcon,
1422
- {
1423
- name: iconName,
1424
- size: iconSize,
1425
- color: iconColor,
1426
- className: iconClassName,
1427
- alt: accessibleLabel
1428
- }
1429
- )
1436
+ children: icon
1430
1437
  }
1431
1438
  );
1432
1439
  }
@@ -1154,6 +1154,7 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1154
1154
  iconClassName,
1155
1155
  className,
1156
1156
  iconNameOverride,
1157
+ iconOnly = false,
1157
1158
  ...pressableProps
1158
1159
  }, ref) => {
1159
1160
  const platform = usePlatformFromUrl.usePlatformFromUrl(href);
@@ -1166,6 +1167,21 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1166
1167
  const accessibleLabel = React2__namespace.useMemo(() => {
1167
1168
  return label || platformName;
1168
1169
  }, [label, platformName]);
1170
+ const icon = React2__namespace.useMemo(() => {
1171
+ return /* @__PURE__ */ jsxRuntime.jsx(
1172
+ DynamicIcon,
1173
+ {
1174
+ name: iconName,
1175
+ size: iconSize,
1176
+ color: iconColor,
1177
+ className: iconClassName,
1178
+ alt: accessibleLabel
1179
+ }
1180
+ );
1181
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
1182
+ if (iconOnly) {
1183
+ return icon;
1184
+ }
1169
1185
  return /* @__PURE__ */ jsxRuntime.jsx(
1170
1186
  Pressable,
1171
1187
  {
@@ -1177,16 +1193,7 @@ var SocialLinkIcon = React2__namespace.forwardRef(
1177
1193
  className
1178
1194
  ),
1179
1195
  ...pressableProps,
1180
- children: /* @__PURE__ */ jsxRuntime.jsx(
1181
- DynamicIcon,
1182
- {
1183
- name: iconName,
1184
- size: iconSize,
1185
- color: iconColor,
1186
- className: iconClassName,
1187
- alt: accessibleLabel
1188
- }
1189
- )
1196
+ children: icon
1190
1197
  }
1191
1198
  );
1192
1199
  }
@@ -1133,6 +1133,7 @@ var SocialLinkIcon = React2.forwardRef(
1133
1133
  iconClassName,
1134
1134
  className,
1135
1135
  iconNameOverride,
1136
+ iconOnly = false,
1136
1137
  ...pressableProps
1137
1138
  }, ref) => {
1138
1139
  const platform = usePlatformFromUrl(href);
@@ -1145,6 +1146,21 @@ var SocialLinkIcon = React2.forwardRef(
1145
1146
  const accessibleLabel = React2.useMemo(() => {
1146
1147
  return label || platformName;
1147
1148
  }, [label, platformName]);
1149
+ const icon = React2.useMemo(() => {
1150
+ return /* @__PURE__ */ jsx(
1151
+ DynamicIcon,
1152
+ {
1153
+ name: iconName,
1154
+ size: iconSize,
1155
+ color: iconColor,
1156
+ className: iconClassName,
1157
+ alt: accessibleLabel
1158
+ }
1159
+ );
1160
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
1161
+ if (iconOnly) {
1162
+ return icon;
1163
+ }
1148
1164
  return /* @__PURE__ */ jsx(
1149
1165
  Pressable,
1150
1166
  {
@@ -1156,16 +1172,7 @@ var SocialLinkIcon = React2.forwardRef(
1156
1172
  className
1157
1173
  ),
1158
1174
  ...pressableProps,
1159
- children: /* @__PURE__ */ jsx(
1160
- DynamicIcon,
1161
- {
1162
- name: iconName,
1163
- size: iconSize,
1164
- color: iconColor,
1165
- className: iconClassName,
1166
- alt: accessibleLabel
1167
- }
1168
- )
1175
+ children: icon
1169
1176
  }
1170
1177
  );
1171
1178
  }
@@ -944,7 +944,7 @@ function HeroBadgeShadowOverlay({
944
944
  backgroundImageUrl,
945
945
  optixFlowConfig,
946
946
  background,
947
- spacing = "py-0 md:py-0",
947
+ spacing = "none",
948
948
  pattern,
949
949
  patternOpacity,
950
950
  className,
@@ -923,7 +923,7 @@ function HeroBadgeShadowOverlay({
923
923
  backgroundImageUrl,
924
924
  optixFlowConfig,
925
925
  background,
926
- spacing = "py-0 md:py-0",
926
+ spacing = "none",
927
927
  pattern,
928
928
  patternOpacity,
929
929
  className,
@@ -914,6 +914,7 @@ var SocialLinkIcon = React__namespace.forwardRef(
914
914
  iconClassName,
915
915
  className,
916
916
  iconNameOverride,
917
+ iconOnly = false,
917
918
  ...pressableProps
918
919
  }, ref) => {
919
920
  const platform = usePlatformFromUrl.usePlatformFromUrl(href);
@@ -926,6 +927,21 @@ var SocialLinkIcon = React__namespace.forwardRef(
926
927
  const accessibleLabel = React__namespace.useMemo(() => {
927
928
  return label || platformName;
928
929
  }, [label, platformName]);
930
+ const icon = React__namespace.useMemo(() => {
931
+ return /* @__PURE__ */ jsxRuntime.jsx(
932
+ DynamicIcon,
933
+ {
934
+ name: iconName,
935
+ size: iconSize,
936
+ color: iconColor,
937
+ className: iconClassName,
938
+ alt: accessibleLabel
939
+ }
940
+ );
941
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
942
+ if (iconOnly) {
943
+ return icon;
944
+ }
929
945
  return /* @__PURE__ */ jsxRuntime.jsx(
930
946
  Pressable,
931
947
  {
@@ -937,16 +953,7 @@ var SocialLinkIcon = React__namespace.forwardRef(
937
953
  className
938
954
  ),
939
955
  ...pressableProps,
940
- children: /* @__PURE__ */ jsxRuntime.jsx(
941
- DynamicIcon,
942
- {
943
- name: iconName,
944
- size: iconSize,
945
- color: iconColor,
946
- className: iconClassName,
947
- alt: accessibleLabel
948
- }
949
- )
956
+ children: icon
950
957
  }
951
958
  );
952
959
  }
@@ -893,6 +893,7 @@ var SocialLinkIcon = React.forwardRef(
893
893
  iconClassName,
894
894
  className,
895
895
  iconNameOverride,
896
+ iconOnly = false,
896
897
  ...pressableProps
897
898
  }, ref) => {
898
899
  const platform = usePlatformFromUrl(href);
@@ -905,6 +906,21 @@ var SocialLinkIcon = React.forwardRef(
905
906
  const accessibleLabel = React.useMemo(() => {
906
907
  return label || platformName;
907
908
  }, [label, platformName]);
909
+ const icon = React.useMemo(() => {
910
+ return /* @__PURE__ */ jsx(
911
+ DynamicIcon,
912
+ {
913
+ name: iconName,
914
+ size: iconSize,
915
+ color: iconColor,
916
+ className: iconClassName,
917
+ alt: accessibleLabel
918
+ }
919
+ );
920
+ }, [iconName, iconSize, iconColor, iconClassName, accessibleLabel]);
921
+ if (iconOnly) {
922
+ return icon;
923
+ }
908
924
  return /* @__PURE__ */ jsx(
909
925
  Pressable,
910
926
  {
@@ -916,16 +932,7 @@ var SocialLinkIcon = React.forwardRef(
916
932
  className
917
933
  ),
918
934
  ...pressableProps,
919
- children: /* @__PURE__ */ jsx(
920
- DynamicIcon,
921
- {
922
- name: iconName,
923
- size: iconSize,
924
- color: iconColor,
925
- className: iconClassName,
926
- alt: accessibleLabel
927
- }
928
- )
935
+ children: icon
929
936
  }
930
937
  );
931
938
  }
@@ -408,6 +408,67 @@ var Section = React3__namespace.default.forwardRef(
408
408
  }
409
409
  );
410
410
  Section.displayName = "Section";
411
+ var DIRECTION_STYLES = {
412
+ "bottom-to-top": "bg-linear-to-t",
413
+ "top-to-bottom": "bg-linear-to-b",
414
+ "left-to-right": "bg-linear-to-r",
415
+ "right-to-left": "bg-linear-to-l",
416
+ "bottom-left-to-top-right": "bg-linear-to-tr",
417
+ "bottom-right-to-top-left": "bg-linear-to-tl",
418
+ "top-left-to-bottom-right": "bg-linear-to-br",
419
+ "top-right-to-bottom-left": "bg-linear-to-bl"
420
+ };
421
+ var INTENSITY_STOPS = {
422
+ low: "from-black/40 via-black/20 to-transparent",
423
+ default: "from-black/70 via-black/35 to-transparent",
424
+ high: "from-black/85 via-black/50 to-transparent",
425
+ "very-high": "from-black/95 via-black/60 to-black/20"
426
+ };
427
+ var RADIAL_INTENSITY = {
428
+ low: {
429
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
430
+ },
431
+ default: {
432
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
433
+ },
434
+ high: {
435
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
436
+ },
437
+ "very-high": {
438
+ 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%)"
439
+ }
440
+ };
441
+ function GradientOverlay({
442
+ direction = "bottom-to-top",
443
+ intensity = "default",
444
+ className,
445
+ style,
446
+ ...props
447
+ }) {
448
+ if (direction === "radial-center") {
449
+ return /* @__PURE__ */ jsxRuntime.jsx(
450
+ "div",
451
+ {
452
+ className: cn("absolute inset-0", className),
453
+ style: { ...RADIAL_INTENSITY[intensity], ...style },
454
+ ...props
455
+ }
456
+ );
457
+ }
458
+ return /* @__PURE__ */ jsxRuntime.jsx(
459
+ "div",
460
+ {
461
+ className: cn(
462
+ "absolute inset-0",
463
+ DIRECTION_STYLES[direction],
464
+ INTENSITY_STOPS[intensity],
465
+ className
466
+ ),
467
+ style,
468
+ ...props
469
+ }
470
+ );
471
+ }
411
472
  function normalizePhoneNumber(input) {
412
473
  const trimmed = input.trim();
413
474
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -932,7 +993,8 @@ function HeroVideoBackgroundDark({
932
993
  videoSrc,
933
994
  videoSlot,
934
995
  background,
935
- videoBrightness = "50",
996
+ videoBrightness,
997
+ videoOverlayIntensity = "high",
936
998
  spacing = "py-0 md:py-0",
937
999
  pattern,
938
1000
  patternOpacity,
@@ -944,21 +1006,21 @@ function HeroVideoBackgroundDark({
944
1006
  }) {
945
1007
  const renderVideo = React3.useMemo(() => {
946
1008
  if (videoSlot) return videoSlot;
947
- return /* @__PURE__ */ jsxRuntime.jsx(
948
- "video",
949
- {
950
- loop: true,
951
- playsInline: true,
952
- src: videoSrc,
953
- className: cn(
954
- "absolute top-0 left-0 size-full object-cover",
955
- `brightness-${videoBrightness}`
956
- ),
957
- autoPlay: true,
958
- muted: true
959
- }
960
- );
961
- }, [videoSlot, videoSrc, videoBrightness]);
1009
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1010
+ /* @__PURE__ */ jsxRuntime.jsx(
1011
+ "video",
1012
+ {
1013
+ loop: true,
1014
+ playsInline: true,
1015
+ src: videoSrc,
1016
+ className: "absolute top-0 left-0 size-full object-cover",
1017
+ autoPlay: true,
1018
+ muted: true
1019
+ }
1020
+ ),
1021
+ /* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: videoOverlayIntensity })
1022
+ ] });
1023
+ }, [videoSlot, videoSrc, videoOverlayIntensity]);
962
1024
  return /* @__PURE__ */ jsxRuntime.jsx(
963
1025
  Section,
964
1026
  {
@@ -41,7 +41,12 @@ interface HeroVideoBackgroundDarkProps {
41
41
  */
42
42
  videoSlot?: React.ReactNode;
43
43
  /**
44
- * Granular control of brightness for video
44
+ * Intensity of the gradient overlay on the video
45
+ * @default "high"
46
+ */
47
+ videoOverlayIntensity?: "low" | "default" | "high" | "very-high";
48
+ /**
49
+ * Granular control of brightness for video (deprecated - prefer videoOverlayIntensity)
45
50
  * @default "50"
46
51
  */
47
52
  videoBrightness?: "10" | "20" | "25" | "30" | "40" | "50" | "75" | "100";
@@ -82,6 +87,6 @@ interface HeroVideoBackgroundDarkProps {
82
87
  */
83
88
  descriptionClassName?: string;
84
89
  }
85
- declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, actionsClassName, videoSrc, videoSlot, background, videoBrightness, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
90
+ declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, actionsClassName, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
86
91
 
87
92
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -41,7 +41,12 @@ interface HeroVideoBackgroundDarkProps {
41
41
  */
42
42
  videoSlot?: React.ReactNode;
43
43
  /**
44
- * Granular control of brightness for video
44
+ * Intensity of the gradient overlay on the video
45
+ * @default "high"
46
+ */
47
+ videoOverlayIntensity?: "low" | "default" | "high" | "very-high";
48
+ /**
49
+ * Granular control of brightness for video (deprecated - prefer videoOverlayIntensity)
45
50
  * @default "50"
46
51
  */
47
52
  videoBrightness?: "10" | "20" | "25" | "30" | "40" | "50" | "75" | "100";
@@ -82,6 +87,6 @@ interface HeroVideoBackgroundDarkProps {
82
87
  */
83
88
  descriptionClassName?: string;
84
89
  }
85
- declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, actionsClassName, videoSrc, videoSlot, background, videoBrightness, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
90
+ declare function HeroVideoBackgroundDark({ badgeText, heading, description, actions, actionsSlot, actionsClassName, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
86
91
 
87
92
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -387,6 +387,67 @@ var Section = React3__default.forwardRef(
387
387
  }
388
388
  );
389
389
  Section.displayName = "Section";
390
+ var DIRECTION_STYLES = {
391
+ "bottom-to-top": "bg-linear-to-t",
392
+ "top-to-bottom": "bg-linear-to-b",
393
+ "left-to-right": "bg-linear-to-r",
394
+ "right-to-left": "bg-linear-to-l",
395
+ "bottom-left-to-top-right": "bg-linear-to-tr",
396
+ "bottom-right-to-top-left": "bg-linear-to-tl",
397
+ "top-left-to-bottom-right": "bg-linear-to-br",
398
+ "top-right-to-bottom-left": "bg-linear-to-bl"
399
+ };
400
+ var INTENSITY_STOPS = {
401
+ low: "from-black/40 via-black/20 to-transparent",
402
+ default: "from-black/70 via-black/35 to-transparent",
403
+ high: "from-black/85 via-black/50 to-transparent",
404
+ "very-high": "from-black/95 via-black/60 to-black/20"
405
+ };
406
+ var RADIAL_INTENSITY = {
407
+ low: {
408
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.40) 0%, rgba(0,0,0,0.20) 50%, transparent 100%)"
409
+ },
410
+ default: {
411
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.70) 0%, rgba(0,0,0,0.35) 50%, transparent 100%)"
412
+ },
413
+ high: {
414
+ background: "radial-gradient(ellipse at center, rgba(0,0,0,0.85) 0%, rgba(0,0,0,0.50) 50%, transparent 100%)"
415
+ },
416
+ "very-high": {
417
+ 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%)"
418
+ }
419
+ };
420
+ function GradientOverlay({
421
+ direction = "bottom-to-top",
422
+ intensity = "default",
423
+ className,
424
+ style,
425
+ ...props
426
+ }) {
427
+ if (direction === "radial-center") {
428
+ return /* @__PURE__ */ jsx(
429
+ "div",
430
+ {
431
+ className: cn("absolute inset-0", className),
432
+ style: { ...RADIAL_INTENSITY[intensity], ...style },
433
+ ...props
434
+ }
435
+ );
436
+ }
437
+ return /* @__PURE__ */ jsx(
438
+ "div",
439
+ {
440
+ className: cn(
441
+ "absolute inset-0",
442
+ DIRECTION_STYLES[direction],
443
+ INTENSITY_STOPS[intensity],
444
+ className
445
+ ),
446
+ style,
447
+ ...props
448
+ }
449
+ );
450
+ }
390
451
  function normalizePhoneNumber(input) {
391
452
  const trimmed = input.trim();
392
453
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -911,7 +972,8 @@ function HeroVideoBackgroundDark({
911
972
  videoSrc,
912
973
  videoSlot,
913
974
  background,
914
- videoBrightness = "50",
975
+ videoBrightness,
976
+ videoOverlayIntensity = "high",
915
977
  spacing = "py-0 md:py-0",
916
978
  pattern,
917
979
  patternOpacity,
@@ -923,21 +985,21 @@ function HeroVideoBackgroundDark({
923
985
  }) {
924
986
  const renderVideo = useMemo(() => {
925
987
  if (videoSlot) return videoSlot;
926
- return /* @__PURE__ */ jsx(
927
- "video",
928
- {
929
- loop: true,
930
- playsInline: true,
931
- src: videoSrc,
932
- className: cn(
933
- "absolute top-0 left-0 size-full object-cover",
934
- `brightness-${videoBrightness}`
935
- ),
936
- autoPlay: true,
937
- muted: true
938
- }
939
- );
940
- }, [videoSlot, videoSrc, videoBrightness]);
988
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
989
+ /* @__PURE__ */ jsx(
990
+ "video",
991
+ {
992
+ loop: true,
993
+ playsInline: true,
994
+ src: videoSrc,
995
+ className: "absolute top-0 left-0 size-full object-cover",
996
+ autoPlay: true,
997
+ muted: true
998
+ }
999
+ ),
1000
+ /* @__PURE__ */ jsx(GradientOverlay, { intensity: videoOverlayIntensity })
1001
+ ] });
1002
+ }, [videoSlot, videoSrc, videoOverlayIntensity]);
941
1003
  return /* @__PURE__ */ jsx(
942
1004
  Section,
943
1005
  {