@opensite/ui 3.0.8 → 3.1.0

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 (56) hide show
  1. package/README.md +80 -0
  2. package/dist/components.cjs +1 -1
  3. package/dist/components.js +1 -1
  4. package/dist/cta-video-background-hero.cjs +13 -4
  5. package/dist/cta-video-background-hero.js +13 -4
  6. package/dist/faq-split-hero.cjs +5 -4
  7. package/dist/faq-split-hero.js +2 -1
  8. package/dist/hero-conversion-video-play.cjs +10 -1
  9. package/dist/hero-conversion-video-play.js +10 -1
  10. package/dist/hero-creative-studio-stacked.cjs +10 -1
  11. package/dist/hero-creative-studio-stacked.js +10 -1
  12. package/dist/hero-digital-agency-fullscreen.cjs +1 -1
  13. package/dist/hero-digital-agency-fullscreen.js +1 -1
  14. package/dist/hero-image-slider.cjs +1 -1
  15. package/dist/hero-image-slider.js +1 -1
  16. package/dist/hero-mentorship-video-split.cjs +10 -1
  17. package/dist/hero-mentorship-video-split.js +10 -1
  18. package/dist/hero-presentation-platform-video.cjs +4 -3
  19. package/dist/hero-presentation-platform-video.js +4 -3
  20. package/dist/hero-productivity-launcher-video.cjs +2 -1
  21. package/dist/hero-productivity-launcher-video.js +2 -1
  22. package/dist/hero-software-growth-video-dialog.cjs +10 -1
  23. package/dist/hero-software-growth-video-dialog.js +10 -1
  24. package/dist/hero-video-background-dark.cjs +5 -4
  25. package/dist/hero-video-background-dark.js +5 -4
  26. package/dist/hero-video-dialog-gradient.cjs +10 -1
  27. package/dist/hero-video-dialog-gradient.js +10 -1
  28. package/dist/hero-video-overlay-stars.cjs +2 -1
  29. package/dist/hero-video-overlay-stars.js +2 -1
  30. package/dist/image-slider.cjs +1 -1
  31. package/dist/image-slider.js +1 -1
  32. package/dist/index.cjs +1 -1
  33. package/dist/index.js +1 -1
  34. package/dist/link-tree-block.cjs +2 -1
  35. package/dist/link-tree-block.js +2 -1
  36. package/dist/project-detail-architecture-carousel.cjs +2 -1
  37. package/dist/project-detail-architecture-carousel.js +2 -1
  38. package/dist/project-video-carousel.cjs +5 -7
  39. package/dist/project-video-carousel.js +5 -7
  40. package/dist/project-video-hover-bento.cjs +5 -7
  41. package/dist/project-video-hover-bento.js +5 -7
  42. package/dist/project-video-hover-grid.cjs +5 -7
  43. package/dist/project-video-hover-grid.js +5 -7
  44. package/dist/project-video-hover-rounded.cjs +5 -7
  45. package/dist/project-video-hover-rounded.js +5 -7
  46. package/dist/project-video-hover-stack.cjs +5 -7
  47. package/dist/project-video-hover-stack.js +5 -7
  48. package/dist/project-video-hover-two-by-two.cjs +5 -7
  49. package/dist/project-video-hover-two-by-two.js +5 -7
  50. package/dist/registry.cjs +100 -69
  51. package/dist/registry.js +97 -66
  52. package/dist/services-list-video-showcase.cjs +2 -1
  53. package/dist/services-list-video-showcase.js +2 -1
  54. package/dist/social-link-icon.d.cts +1 -1
  55. package/dist/social-link-icon.d.ts +1 -1
  56. package/package.json +5 -3
@@ -4,6 +4,7 @@ import React__default, { useState, useMemo, Fragment } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Img } from '@page-speed/img';
7
+ import { Video } from '@page-speed/video';
7
8
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
8
9
  import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
9
10
  import * as DialogPrimitive from '@radix-ui/react-dialog';
@@ -633,7 +634,15 @@ function HeroVideoDialogGradient({
633
634
  "div",
634
635
  {
635
636
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
636
- children: /* @__PURE__ */ jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsx("source", { src: videoDialog?.videoUrl, type: "video/mp4" }) })
637
+ children: /* @__PURE__ */ jsx(
638
+ Video,
639
+ {
640
+ src: videoDialog?.videoUrl,
641
+ controls: true,
642
+ autoPlay: true,
643
+ className: "h-full w-full rounded-lg"
644
+ }
645
+ )
637
646
  }
638
647
  )
639
648
  ]
@@ -4,6 +4,7 @@
4
4
  var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
+ var video = require('@page-speed/video');
7
8
  var icon = require('@page-speed/icon');
8
9
  var jsxRuntime = require('react/jsx-runtime');
9
10
  var pressable = require('@page-speed/pressable');
@@ -513,7 +514,7 @@ function HeroVideoOverlayStars({
513
514
  const renderVideo = React.useMemo(() => {
514
515
  if (videoSlot) return videoSlot;
515
516
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 size-full before:absolute brightness-50", children: /* @__PURE__ */ jsxRuntime.jsx(
516
- "video",
517
+ video.Video,
517
518
  {
518
519
  src: videoSrc,
519
520
  muted: true,
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import React__default, { useMemo } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
+ import { Video } from '@page-speed/video';
6
7
  import { Icon } from '@page-speed/icon';
7
8
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
9
  import { Pressable } from '@page-speed/pressable';
@@ -492,7 +493,7 @@ function HeroVideoOverlayStars({
492
493
  const renderVideo = useMemo(() => {
493
494
  if (videoSlot) return videoSlot;
494
495
  return /* @__PURE__ */ jsx("div", { className: "absolute inset-0 size-full before:absolute brightness-50", children: /* @__PURE__ */ jsx(
495
- "video",
496
+ Video,
496
497
  {
497
498
  src: videoSrc,
498
499
  muted: true,
@@ -191,7 +191,7 @@ var ImageSlider = ({
191
191
  activeImage.className
192
192
  ),
193
193
  optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
194
- eager: true
194
+ loading: "eager"
195
195
  }
196
196
  )
197
197
  },
@@ -169,7 +169,7 @@ var ImageSlider = ({
169
169
  activeImage.className
170
170
  ),
171
171
  optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
172
- eager: true
172
+ loading: "eager"
173
173
  }
174
174
  )
175
175
  },
package/dist/index.cjs CHANGED
@@ -957,7 +957,7 @@ var ImageSlider = ({
957
957
  activeImage.className
958
958
  ),
959
959
  optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
960
- eager: true
960
+ loading: "eager"
961
961
  }
962
962
  )
963
963
  },
package/dist/index.js CHANGED
@@ -935,7 +935,7 @@ var ImageSlider = ({
935
935
  activeImage.className
936
936
  ),
937
937
  optixFlowConfig: activeImage.optixFlowConfig ?? optixFlowConfig,
938
- eager: true
938
+ loading: "eager"
939
939
  }
940
940
  )
941
941
  },
@@ -10,6 +10,7 @@ var jsxRuntime = require('react/jsx-runtime');
10
10
  var reactSlot = require('@radix-ui/react-slot');
11
11
  var classVarianceAuthority = require('class-variance-authority');
12
12
  var img = require('@page-speed/img');
13
+ var video = require('@page-speed/video');
13
14
  var usePlatformFromUrl = require('@opensite/hooks/usePlatformFromUrl');
14
15
  var lightbox = require('@page-speed/lightbox');
15
16
 
@@ -871,7 +872,7 @@ function LinkTreeBlock({
871
872
  "aria-label": `View ${item.alt || item.type} in lightbox`,
872
873
  children: [
873
874
  item.type === "video" ? /* @__PURE__ */ jsxRuntime.jsx(
874
- "video",
875
+ video.Video,
875
876
  {
876
877
  src: item.src,
877
878
  poster: item.poster,
@@ -9,6 +9,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
9
9
  import { Slot } from '@radix-ui/react-slot';
10
10
  import { cva } from 'class-variance-authority';
11
11
  import { Img } from '@page-speed/img';
12
+ import { Video } from '@page-speed/video';
12
13
  import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
13
14
  import { Lightbox } from '@page-speed/lightbox';
14
15
 
@@ -850,7 +851,7 @@ function LinkTreeBlock({
850
851
  "aria-label": `View ${item.alt || item.type} in lightbox`,
851
852
  children: [
852
853
  item.type === "video" ? /* @__PURE__ */ jsx(
853
- "video",
854
+ Video,
854
855
  {
855
856
  src: item.src,
856
857
  poster: item.poster,
@@ -4,6 +4,7 @@
4
4
  var React = require('react');
5
5
  var framerMotion = require('framer-motion');
6
6
  var img = require('@page-speed/img');
7
+ var video = require('@page-speed/video');
7
8
  var clsx = require('clsx');
8
9
  var tailwindMerge = require('tailwind-merge');
9
10
  var jsxRuntime = require('react/jsx-runtime');
@@ -923,7 +924,7 @@ function ProjectDetailArchitectureCarousel(props) {
923
924
  transition: { duration: 0.6, delay: 0.2 },
924
925
  className: "mb-16",
925
926
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video overflow-hidden rounded-2xl", children: /* @__PURE__ */ jsxRuntime.jsx(
926
- "video",
927
+ video.Video,
927
928
  {
928
929
  src: videoUrl,
929
930
  poster: videoPoster,
@@ -3,6 +3,7 @@ import * as React from 'react';
3
3
  import React__default, { useState, useMemo, useCallback } from 'react';
4
4
  import { motion } from 'framer-motion';
5
5
  import { Img } from '@page-speed/img';
6
+ import { Video } from '@page-speed/video';
6
7
  import { clsx } from 'clsx';
7
8
  import { twMerge } from 'tailwind-merge';
8
9
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -902,7 +903,7 @@ function ProjectDetailArchitectureCarousel(props) {
902
903
  transition: { duration: 0.6, delay: 0.2 },
903
904
  className: "mb-16",
904
905
  children: /* @__PURE__ */ jsx("div", { className: "relative aspect-video overflow-hidden rounded-2xl", children: /* @__PURE__ */ jsx(
905
- "video",
906
+ Video,
906
907
  {
907
908
  src: videoUrl,
908
909
  poster: videoPoster,
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React4 = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -657,19 +658,16 @@ var VideoSection = ({
657
658
  optixFlowConfig
658
659
  }
659
660
  ),
660
- /* @__PURE__ */ jsxRuntime.jsxs(
661
- "video",
661
+ /* @__PURE__ */ jsxRuntime.jsx(
662
+ video.Video,
662
663
  {
663
664
  ref: videoRef,
665
+ src: videoSrc,
664
666
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
665
667
  muted: true,
666
668
  loop: true,
667
669
  playsInline: true,
668
- preload: "metadata",
669
- children: [
670
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
671
- "Your browser does not support the video tag."
672
- ]
670
+ preload: "metadata"
673
671
  }
674
672
  ),
675
673
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React4 from 'react';
3
3
  import React4__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -633,19 +634,16 @@ var VideoSection = ({
633
634
  optixFlowConfig
634
635
  }
635
636
  ),
636
- /* @__PURE__ */ jsxs(
637
- "video",
637
+ /* @__PURE__ */ jsx(
638
+ Video,
638
639
  {
639
640
  ref: videoRef,
641
+ src: videoSrc,
640
642
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
641
643
  muted: true,
642
644
  loop: true,
643
645
  playsInline: true,
644
- preload: "metadata",
645
- children: [
646
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
647
- "Your browser does not support the video tag."
648
- ]
646
+ preload: "metadata"
649
647
  }
650
648
  ),
651
649
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -463,19 +464,16 @@ var VideoSection = ({
463
464
  optixFlowConfig
464
465
  }
465
466
  ),
466
- /* @__PURE__ */ jsxRuntime.jsxs(
467
- "video",
467
+ /* @__PURE__ */ jsxRuntime.jsx(
468
+ video.Video,
468
469
  {
469
470
  ref: videoRef,
471
+ src: videoSrc,
470
472
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
471
473
  muted: true,
472
474
  loop: true,
473
475
  playsInline: true,
474
- preload: "metadata",
475
- children: [
476
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
477
- "Your browser does not support the video tag."
478
- ]
476
+ preload: "metadata"
479
477
  }
480
478
  ),
481
479
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -442,19 +443,16 @@ var VideoSection = ({
442
443
  optixFlowConfig
443
444
  }
444
445
  ),
445
- /* @__PURE__ */ jsxs(
446
- "video",
446
+ /* @__PURE__ */ jsx(
447
+ Video,
447
448
  {
448
449
  ref: videoRef,
450
+ src: videoSrc,
449
451
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
450
452
  muted: true,
451
453
  loop: true,
452
454
  playsInline: true,
453
- preload: "metadata",
454
- children: [
455
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
456
- "Your browser does not support the video tag."
457
- ]
455
+ preload: "metadata"
458
456
  }
459
457
  ),
460
458
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -463,19 +464,16 @@ var VideoSection = ({
463
464
  optixFlowConfig
464
465
  }
465
466
  ),
466
- /* @__PURE__ */ jsxRuntime.jsxs(
467
- "video",
467
+ /* @__PURE__ */ jsxRuntime.jsx(
468
+ video.Video,
468
469
  {
469
470
  ref: videoRef,
471
+ src: videoSrc,
470
472
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
471
473
  muted: true,
472
474
  loop: true,
473
475
  playsInline: true,
474
- preload: "metadata",
475
- children: [
476
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
477
- "Your browser does not support the video tag."
478
- ]
476
+ preload: "metadata"
479
477
  }
480
478
  ),
481
479
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -442,19 +443,16 @@ var VideoSection = ({
442
443
  optixFlowConfig
443
444
  }
444
445
  ),
445
- /* @__PURE__ */ jsxs(
446
- "video",
446
+ /* @__PURE__ */ jsx(
447
+ Video,
447
448
  {
448
449
  ref: videoRef,
450
+ src: videoSrc,
449
451
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
450
452
  muted: true,
451
453
  loop: true,
452
454
  playsInline: true,
453
- preload: "metadata",
454
- children: [
455
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
456
- "Your browser does not support the video tag."
457
- ]
455
+ preload: "metadata"
458
456
  }
459
457
  ),
460
458
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -463,19 +464,16 @@ var VideoSection = ({
463
464
  optixFlowConfig
464
465
  }
465
466
  ),
466
- /* @__PURE__ */ jsxRuntime.jsxs(
467
- "video",
467
+ /* @__PURE__ */ jsxRuntime.jsx(
468
+ video.Video,
468
469
  {
469
470
  ref: videoRef,
471
+ src: videoSrc,
470
472
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
471
473
  muted: true,
472
474
  loop: true,
473
475
  playsInline: true,
474
- preload: "metadata",
475
- children: [
476
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
477
- "Your browser does not support the video tag."
478
- ]
476
+ preload: "metadata"
479
477
  }
480
478
  ),
481
479
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -442,19 +443,16 @@ var VideoSection = ({
442
443
  optixFlowConfig
443
444
  }
444
445
  ),
445
- /* @__PURE__ */ jsxs(
446
- "video",
446
+ /* @__PURE__ */ jsx(
447
+ Video,
447
448
  {
448
449
  ref: videoRef,
450
+ src: videoSrc,
449
451
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
450
452
  muted: true,
451
453
  loop: true,
452
454
  playsInline: true,
453
- preload: "metadata",
454
- children: [
455
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
456
- "Your browser does not support the video tag."
457
- ]
455
+ preload: "metadata"
458
456
  }
459
457
  ),
460
458
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -463,19 +464,16 @@ var VideoSection = ({
463
464
  optixFlowConfig
464
465
  }
465
466
  ),
466
- /* @__PURE__ */ jsxRuntime.jsxs(
467
- "video",
467
+ /* @__PURE__ */ jsxRuntime.jsx(
468
+ video.Video,
468
469
  {
469
470
  ref: videoRef,
471
+ src: videoSrc,
470
472
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
471
473
  muted: true,
472
474
  loop: true,
473
475
  playsInline: true,
474
- preload: "metadata",
475
- children: [
476
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
477
- "Your browser does not support the video tag."
478
- ]
476
+ preload: "metadata"
479
477
  }
480
478
  ),
481
479
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -442,19 +443,16 @@ var VideoSection = ({
442
443
  optixFlowConfig
443
444
  }
444
445
  ),
445
- /* @__PURE__ */ jsxs(
446
- "video",
446
+ /* @__PURE__ */ jsx(
447
+ Video,
447
448
  {
448
449
  ref: videoRef,
450
+ src: videoSrc,
449
451
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
450
452
  muted: true,
451
453
  loop: true,
452
454
  playsInline: true,
453
- preload: "metadata",
454
- children: [
455
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
456
- "Your browser does not support the video tag."
457
- ]
455
+ preload: "metadata"
458
456
  }
459
457
  ),
460
458
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React = require('react');
5
5
  var img = require('@page-speed/img');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var icon = require('@page-speed/icon');
@@ -464,19 +465,16 @@ var VideoSection = ({
464
465
  optixFlowConfig
465
466
  }
466
467
  ),
467
- /* @__PURE__ */ jsxRuntime.jsxs(
468
- "video",
468
+ /* @__PURE__ */ jsxRuntime.jsx(
469
+ video.Video,
469
470
  {
470
471
  ref: videoRef,
472
+ src: videoSrc,
471
473
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
472
474
  muted: true,
473
475
  loop: true,
474
476
  playsInline: true,
475
- preload: "metadata",
476
- children: [
477
- /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" }),
478
- "Your browser does not support the video tag."
479
- ]
477
+ preload: "metadata"
480
478
  }
481
479
  ),
482
480
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),
@@ -2,6 +2,7 @@
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo, useRef, useState, useEffect } from 'react';
4
4
  import { Img } from '@page-speed/img';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Icon } from '@page-speed/icon';
@@ -443,19 +444,16 @@ var VideoSection = ({
443
444
  optixFlowConfig
444
445
  }
445
446
  ),
446
- /* @__PURE__ */ jsxs(
447
- "video",
447
+ /* @__PURE__ */ jsx(
448
+ Video,
448
449
  {
449
450
  ref: videoRef,
451
+ src: videoSrc,
450
452
  className: `absolute inset-0 h-full w-full object-cover transition-opacity duration-700 ease-in-out ${isHovered ? "opacity-100" : "opacity-0"}`,
451
453
  muted: true,
452
454
  loop: true,
453
455
  playsInline: true,
454
- preload: "metadata",
455
- children: [
456
- /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" }),
457
- "Your browser does not support the video tag."
458
- ]
456
+ preload: "metadata"
459
457
  }
460
458
  ),
461
459
  /* @__PURE__ */ jsx("div", { className: "absolute inset-0 bg-foreground/30 transition-all duration-500 group-hover:bg-foreground/20" }),