@opensite/ui 3.0.9 → 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 (45) hide show
  1. package/dist/cta-video-background-hero.cjs +13 -4
  2. package/dist/cta-video-background-hero.js +13 -4
  3. package/dist/faq-split-hero.cjs +5 -4
  4. package/dist/faq-split-hero.js +2 -1
  5. package/dist/hero-conversion-video-play.cjs +10 -1
  6. package/dist/hero-conversion-video-play.js +10 -1
  7. package/dist/hero-creative-studio-stacked.cjs +10 -1
  8. package/dist/hero-creative-studio-stacked.js +10 -1
  9. package/dist/hero-mentorship-video-split.cjs +10 -1
  10. package/dist/hero-mentorship-video-split.js +10 -1
  11. package/dist/hero-presentation-platform-video.cjs +4 -3
  12. package/dist/hero-presentation-platform-video.js +4 -3
  13. package/dist/hero-productivity-launcher-video.cjs +2 -1
  14. package/dist/hero-productivity-launcher-video.js +2 -1
  15. package/dist/hero-software-growth-video-dialog.cjs +10 -1
  16. package/dist/hero-software-growth-video-dialog.js +10 -1
  17. package/dist/hero-video-background-dark.cjs +5 -4
  18. package/dist/hero-video-background-dark.js +5 -4
  19. package/dist/hero-video-dialog-gradient.cjs +10 -1
  20. package/dist/hero-video-dialog-gradient.js +10 -1
  21. package/dist/hero-video-overlay-stars.cjs +2 -1
  22. package/dist/hero-video-overlay-stars.js +2 -1
  23. package/dist/link-tree-block.cjs +2 -1
  24. package/dist/link-tree-block.js +2 -1
  25. package/dist/project-detail-architecture-carousel.cjs +2 -1
  26. package/dist/project-detail-architecture-carousel.js +2 -1
  27. package/dist/project-video-carousel.cjs +5 -7
  28. package/dist/project-video-carousel.js +5 -7
  29. package/dist/project-video-hover-bento.cjs +5 -7
  30. package/dist/project-video-hover-bento.js +5 -7
  31. package/dist/project-video-hover-grid.cjs +5 -7
  32. package/dist/project-video-hover-grid.js +5 -7
  33. package/dist/project-video-hover-rounded.cjs +5 -7
  34. package/dist/project-video-hover-rounded.js +5 -7
  35. package/dist/project-video-hover-stack.cjs +5 -7
  36. package/dist/project-video-hover-stack.js +5 -7
  37. package/dist/project-video-hover-two-by-two.cjs +5 -7
  38. package/dist/project-video-hover-two-by-two.js +5 -7
  39. package/dist/registry.cjs +98 -67
  40. package/dist/registry.js +95 -64
  41. package/dist/services-list-video-showcase.cjs +2 -1
  42. package/dist/services-list-video-showcase.js +2 -1
  43. package/dist/social-link-icon.d.cts +1 -1
  44. package/dist/social-link-icon.d.ts +1 -1
  45. package/package.json +3 -1
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
5
+ var video = require('@page-speed/video');
5
6
  var clsx = require('clsx');
6
7
  var tailwindMerge = require('tailwind-merge');
7
8
  var pressable = require('@page-speed/pressable');
@@ -520,7 +521,15 @@ function CtaVideoBackgroundHero({
520
521
  children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 20 })
521
522
  }
522
523
  ),
523
- modalVideoUrl && /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: modalVideoUrl, type: "video/mp4" }) })
524
+ modalVideoUrl && /* @__PURE__ */ jsxRuntime.jsx(
525
+ video.Video,
526
+ {
527
+ src: modalVideoUrl,
528
+ controls: true,
529
+ autoPlay: true,
530
+ className: "w-full rounded-lg"
531
+ }
532
+ )
524
533
  ]
525
534
  }
526
535
  )
@@ -546,14 +555,14 @@ function CtaVideoBackgroundHero({
546
555
  ),
547
556
  children: [
548
557
  backgroundVideoUrl && /* @__PURE__ */ jsxRuntime.jsx(
549
- "video",
558
+ video.Video,
550
559
  {
560
+ src: backgroundVideoUrl,
551
561
  autoPlay: true,
552
562
  loop: true,
553
563
  muted: true,
554
564
  playsInline: true,
555
- className: "absolute inset-0 h-full w-full object-cover",
556
- children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: backgroundVideoUrl, type: "video/mp4" })
565
+ className: "absolute inset-0 h-full w-full object-cover"
557
566
  }
558
567
  ),
559
568
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
3
  import React__default, { useMemo } from 'react';
4
+ import { Video } from '@page-speed/video';
4
5
  import { clsx } from 'clsx';
5
6
  import { twMerge } from 'tailwind-merge';
6
7
  import { Pressable } from '@page-speed/pressable';
@@ -499,7 +500,15 @@ function CtaVideoBackgroundHero({
499
500
  children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20 })
500
501
  }
501
502
  ),
502
- modalVideoUrl && /* @__PURE__ */ jsx("video", { controls: true, autoPlay: true, className: "w-full rounded-lg", children: /* @__PURE__ */ jsx("source", { src: modalVideoUrl, type: "video/mp4" }) })
503
+ modalVideoUrl && /* @__PURE__ */ jsx(
504
+ Video,
505
+ {
506
+ src: modalVideoUrl,
507
+ controls: true,
508
+ autoPlay: true,
509
+ className: "w-full rounded-lg"
510
+ }
511
+ )
503
512
  ]
504
513
  }
505
514
  )
@@ -525,14 +534,14 @@ function CtaVideoBackgroundHero({
525
534
  ),
526
535
  children: [
527
536
  backgroundVideoUrl && /* @__PURE__ */ jsx(
528
- "video",
537
+ Video,
529
538
  {
539
+ src: backgroundVideoUrl,
530
540
  autoPlay: true,
531
541
  loop: true,
532
542
  muted: true,
533
543
  playsInline: true,
534
- className: "absolute inset-0 h-full w-full object-cover",
535
- children: /* @__PURE__ */ jsx("source", { src: backgroundVideoUrl, type: "video/mp4" })
544
+ className: "absolute inset-0 h-full w-full object-cover"
536
545
  }
537
546
  ),
538
547
  /* @__PURE__ */ jsx(
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
+ var video = require('@page-speed/video');
8
9
  var AccordionPrimitive = require('@radix-ui/react-accordion');
9
10
  var icon = require('@page-speed/icon');
10
11
  var jsxRuntime = require('react/jsx-runtime');
@@ -564,11 +565,11 @@ function FaqSplitHero({
564
565
  ]);
565
566
  const renderMedia = React.useMemo(() => {
566
567
  if (!mediaItem) return null;
567
- const { image, video } = mediaItem;
568
- if (video) {
569
- const { src, className: videoClassName, ...videoRest } = video;
568
+ const { image, video: video$1 } = mediaItem;
569
+ if (video$1) {
570
+ const { src, className: videoClassName, ...videoRest } = video$1;
570
571
  return /* @__PURE__ */ jsxRuntime.jsx(
571
- "video",
572
+ video.Video,
572
573
  {
573
574
  src,
574
575
  className: cn("h-full w-full object-cover", videoClassName),
@@ -4,6 +4,7 @@ import React__default, { useMemo } 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 AccordionPrimitive from '@radix-ui/react-accordion';
8
9
  import { Icon } from '@page-speed/icon';
9
10
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -546,7 +547,7 @@ function FaqSplitHero({
546
547
  if (video) {
547
548
  const { src, className: videoClassName, ...videoRest } = video;
548
549
  return /* @__PURE__ */ jsx(
549
- "video",
550
+ Video,
550
551
  {
551
552
  src,
552
553
  className: cn("h-full w-full object-cover", videoClassName),
@@ -3,6 +3,7 @@
3
3
 
4
4
  var React2 = require('react');
5
5
  var AutoScroll = require('embla-carousel-auto-scroll');
6
+ var video = require('@page-speed/video');
6
7
  var clsx = require('clsx');
7
8
  var tailwindMerge = require('tailwind-merge');
8
9
  var pressable = require('@page-speed/pressable');
@@ -809,7 +810,15 @@ function HeroConversionVideoPlay({
809
810
  ),
810
811
  /* @__PURE__ */ jsxRuntime.jsx(Dialog, { open: isVideoOpen, onOpenChange: setIsVideoOpen, children: /* @__PURE__ */ jsxRuntime.jsxs(DialogContent, { className: "sm:max-w-200", children: [
811
812
  /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { children: videoDialogTitle }) }),
812
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video", children: /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoUrl, type: "video/mp4" }) }) })
813
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "aspect-video", children: /* @__PURE__ */ jsxRuntime.jsx(
814
+ video.Video,
815
+ {
816
+ src: videoUrl,
817
+ controls: true,
818
+ autoPlay: true,
819
+ className: "h-full w-full rounded-lg"
820
+ }
821
+ ) })
813
822
  ] }) })
814
823
  ] });
815
824
  }
@@ -2,6 +2,7 @@
2
2
  import * as React2 from 'react';
3
3
  import React2__default, { useState, useMemo, Fragment as Fragment$1 } from 'react';
4
4
  import AutoScroll from 'embla-carousel-auto-scroll';
5
+ import { Video } from '@page-speed/video';
5
6
  import { clsx } from 'clsx';
6
7
  import { twMerge } from 'tailwind-merge';
7
8
  import { Pressable } from '@page-speed/pressable';
@@ -782,7 +783,15 @@ function HeroConversionVideoPlay({
782
783
  ),
783
784
  /* @__PURE__ */ jsx(Dialog, { open: isVideoOpen, onOpenChange: setIsVideoOpen, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-200", children: [
784
785
  /* @__PURE__ */ jsx(DialogHeader, { children: /* @__PURE__ */ jsx(DialogTitle, { children: videoDialogTitle }) }),
785
- /* @__PURE__ */ jsx("div", { className: "aspect-video", children: /* @__PURE__ */ jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsx("source", { src: videoUrl, type: "video/mp4" }) }) })
786
+ /* @__PURE__ */ jsx("div", { className: "aspect-video", children: /* @__PURE__ */ jsx(
787
+ Video,
788
+ {
789
+ src: videoUrl,
790
+ controls: true,
791
+ autoPlay: true,
792
+ className: "h-full w-full rounded-lg"
793
+ }
794
+ ) })
786
795
  ] }) })
787
796
  ] });
788
797
  }
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
+ var video = require('@page-speed/video');
8
9
  var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
  var DialogPrimitive = require('@radix-ui/react-dialog');
@@ -727,7 +728,15 @@ function HeroCreativeStudioStacked({
727
728
  "div",
728
729
  {
729
730
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
730
- children: /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoDialog?.videoUrl, type: "video/mp4" }) })
731
+ children: /* @__PURE__ */ jsxRuntime.jsx(
732
+ video.Video,
733
+ {
734
+ src: videoDialog?.videoUrl,
735
+ controls: true,
736
+ autoPlay: true,
737
+ className: "h-full w-full rounded-lg"
738
+ }
739
+ )
731
740
  }
732
741
  )
733
742
  ]
@@ -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';
@@ -704,7 +705,15 @@ function HeroCreativeStudioStacked({
704
705
  "div",
705
706
  {
706
707
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
707
- 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" }) })
708
+ children: /* @__PURE__ */ jsx(
709
+ Video,
710
+ {
711
+ src: videoDialog?.videoUrl,
712
+ controls: true,
713
+ autoPlay: true,
714
+ className: "h-full w-full rounded-lg"
715
+ }
716
+ )
708
717
  }
709
718
  )
710
719
  ]
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
5
+ var video = require('@page-speed/video');
5
6
  var clsx = require('clsx');
6
7
  var tailwindMerge = require('tailwind-merge');
7
8
  var pressable = require('@page-speed/pressable');
@@ -690,7 +691,15 @@ function HeroMentorshipVideoSplit({
690
691
  "div",
691
692
  {
692
693
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
693
- children: /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoUrl, type: "video/mp4" }) })
694
+ children: /* @__PURE__ */ jsxRuntime.jsx(
695
+ video.Video,
696
+ {
697
+ src: videoUrl,
698
+ controls: true,
699
+ autoPlay: true,
700
+ className: "h-full w-full rounded-lg"
701
+ }
702
+ )
694
703
  }
695
704
  )
696
705
  ]
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
3
  import React__default, { useState, useMemo, Fragment as Fragment$1 } from 'react';
4
+ import { Video } from '@page-speed/video';
4
5
  import { clsx } from 'clsx';
5
6
  import { twMerge } from 'tailwind-merge';
6
7
  import { Pressable } from '@page-speed/pressable';
@@ -667,7 +668,15 @@ function HeroMentorshipVideoSplit({
667
668
  "div",
668
669
  {
669
670
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
670
- children: /* @__PURE__ */ jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsx("source", { src: videoUrl, type: "video/mp4" }) })
671
+ children: /* @__PURE__ */ jsx(
672
+ Video,
673
+ {
674
+ src: videoUrl,
675
+ controls: true,
676
+ autoPlay: true,
677
+ className: "h-full w-full rounded-lg"
678
+ }
679
+ )
671
680
  }
672
681
  )
673
682
  ]
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React4 = require('react');
5
+ var video = require('@page-speed/video');
5
6
  var clsx = require('clsx');
6
7
  var tailwindMerge = require('tailwind-merge');
7
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -577,16 +578,16 @@ function HeroPresentationPlatformVideo({
577
578
  videoClassName
578
579
  ),
579
580
  children: /* @__PURE__ */ jsxRuntime.jsx(
580
- "video",
581
+ video.Video,
581
582
  {
583
+ src: videoSrc,
582
584
  autoPlay: true,
583
585
  loop: true,
584
586
  muted: true,
585
587
  playsInline: true,
586
588
  "data-wf-ignore": "true",
587
589
  "data-object-fit": "cover",
588
- className: "h-full w-full rounded-tl-xl object-cover",
589
- children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoSrc, type: "video/mp4" })
590
+ className: "h-full w-full rounded-tl-xl object-cover"
590
591
  }
591
592
  )
592
593
  }
@@ -1,6 +1,7 @@
1
1
  "use client";
2
2
  import * as React4 from 'react';
3
3
  import React4__default, { useMemo } from 'react';
4
+ import { Video } from '@page-speed/video';
4
5
  import { clsx } from 'clsx';
5
6
  import { twMerge } from 'tailwind-merge';
6
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -556,16 +557,16 @@ function HeroPresentationPlatformVideo({
556
557
  videoClassName
557
558
  ),
558
559
  children: /* @__PURE__ */ jsx(
559
- "video",
560
+ Video,
560
561
  {
562
+ src: videoSrc,
561
563
  autoPlay: true,
562
564
  loop: true,
563
565
  muted: true,
564
566
  playsInline: true,
565
567
  "data-wf-ignore": "true",
566
568
  "data-object-fit": "cover",
567
- className: "h-full w-full rounded-tl-xl object-cover",
568
- children: /* @__PURE__ */ jsx("source", { src: videoSrc, type: "video/mp4" })
569
+ className: "h-full w-full rounded-tl-xl object-cover"
569
570
  }
570
571
  )
571
572
  }
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var pressable = require('@page-speed/pressable');
8
+ var video = require('@page-speed/video');
8
9
  var jsxRuntime = require('react/jsx-runtime');
9
10
 
10
11
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
@@ -451,7 +452,7 @@ function HeroProductivityLauncherVideo({
451
452
  const renderVideo = React.useMemo(() => {
452
453
  if (videoSlot) return videoSlot;
453
454
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 z-10 h-full w-full inset-0", children: /* @__PURE__ */ jsxRuntime.jsx(
454
- "video",
455
+ video.Video,
455
456
  {
456
457
  src: videoSrc,
457
458
  loop: true,
@@ -3,6 +3,7 @@ import React, { useMemo } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Pressable } from '@page-speed/pressable';
6
+ import { Video } from '@page-speed/video';
6
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
8
 
8
9
  // components/blocks/hero/hero-productivity-launcher-video.tsx
@@ -445,7 +446,7 @@ function HeroProductivityLauncherVideo({
445
446
  const renderVideo = useMemo(() => {
446
447
  if (videoSlot) return videoSlot;
447
448
  return /* @__PURE__ */ jsx("div", { className: "absolute top-0 z-10 h-full w-full inset-0", children: /* @__PURE__ */ jsx(
448
- "video",
449
+ Video,
449
450
  {
450
451
  src: videoSrc,
451
452
  loop: true,
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
+ var video = require('@page-speed/video');
8
9
  var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
  var DialogPrimitive = require('@radix-ui/react-dialog');
@@ -682,7 +683,15 @@ function HeroSoftwareGrowthVideoDialog({
682
683
  "div",
683
684
  {
684
685
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
685
- children: /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoDialog?.videoUrl, type: "video/mp4" }) })
686
+ children: /* @__PURE__ */ jsxRuntime.jsx(
687
+ video.Video,
688
+ {
689
+ src: videoDialog?.videoUrl,
690
+ controls: true,
691
+ autoPlay: true,
692
+ className: "h-full w-full rounded-lg"
693
+ }
694
+ )
686
695
  }
687
696
  )
688
697
  ]
@@ -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';
@@ -659,7 +660,15 @@ function HeroSoftwareGrowthVideoDialog({
659
660
  "div",
660
661
  {
661
662
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
662
- 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" }) })
663
+ children: /* @__PURE__ */ jsx(
664
+ Video,
665
+ {
666
+ src: videoDialog?.videoUrl,
667
+ controls: true,
668
+ autoPlay: true,
669
+ className: "h-full w-full rounded-lg"
670
+ }
671
+ )
663
672
  }
664
673
  )
665
674
  ]
@@ -2,6 +2,7 @@
2
2
  'use strict';
3
3
 
4
4
  var React = require('react');
5
+ var video = require('@page-speed/video');
5
6
  var clsx = require('clsx');
6
7
  var tailwindMerge = require('tailwind-merge');
7
8
  var jsxRuntime = require('react/jsx-runtime');
@@ -576,14 +577,14 @@ function HeroVideoBackgroundDark({
576
577
  if (videoSlot) return videoSlot;
577
578
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
578
579
  /* @__PURE__ */ jsxRuntime.jsx(
579
- "video",
580
+ video.Video,
580
581
  {
582
+ src: videoSrc,
581
583
  loop: true,
582
584
  playsInline: true,
583
- src: videoSrc,
584
- className: "absolute top-0 left-0 size-full object-cover",
585
585
  autoPlay: true,
586
- muted: true
586
+ muted: true,
587
+ className: "absolute top-0 left-0 size-full object-cover"
587
588
  }
588
589
  ),
589
590
  /* @__PURE__ */ jsxRuntime.jsx(GradientOverlay, { intensity: videoOverlayIntensity })
@@ -1,5 +1,6 @@
1
1
  "use client";
2
2
  import React, { useMemo } from 'react';
3
+ import { Video } from '@page-speed/video';
3
4
  import { clsx } from 'clsx';
4
5
  import { twMerge } from 'tailwind-merge';
5
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
@@ -570,14 +571,14 @@ function HeroVideoBackgroundDark({
570
571
  if (videoSlot) return videoSlot;
571
572
  return /* @__PURE__ */ jsxs(Fragment, { children: [
572
573
  /* @__PURE__ */ jsx(
573
- "video",
574
+ Video,
574
575
  {
576
+ src: videoSrc,
575
577
  loop: true,
576
578
  playsInline: true,
577
- src: videoSrc,
578
- className: "absolute top-0 left-0 size-full object-cover",
579
579
  autoPlay: true,
580
- muted: true
580
+ muted: true,
581
+ className: "absolute top-0 left-0 size-full object-cover"
581
582
  }
582
583
  ),
583
584
  /* @__PURE__ */ jsx(GradientOverlay, { intensity: videoOverlayIntensity })
@@ -5,6 +5,7 @@ var React = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
+ var video = require('@page-speed/video');
8
9
  var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
9
10
  var jsxRuntime = require('react/jsx-runtime');
10
11
  var DialogPrimitive = require('@radix-ui/react-dialog');
@@ -656,7 +657,15 @@ function HeroVideoDialogGradient({
656
657
  "div",
657
658
  {
658
659
  className: videoAspectRatio === "vertical" ? "aspect-9/16" : "aspect-video",
659
- children: /* @__PURE__ */ jsxRuntime.jsx("video", { controls: true, autoPlay: true, className: "h-full w-full rounded-lg", children: /* @__PURE__ */ jsxRuntime.jsx("source", { src: videoDialog?.videoUrl, type: "video/mp4" }) })
660
+ children: /* @__PURE__ */ jsxRuntime.jsx(
661
+ video.Video,
662
+ {
663
+ src: videoDialog?.videoUrl,
664
+ controls: true,
665
+ autoPlay: true,
666
+ className: "h-full w-full rounded-lg"
667
+ }
668
+ )
660
669
  }
661
670
  )
662
671
  ]
@@ -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,
@@ -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,