{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/lRDHiNWNVWmE0lqtoVHP/IZ0vSV62Dv7ax4rBiGUk/Video.js"],
  "sourcesContent": ["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { addPropertyControls, ControlType, useIsInCurrentNavigationTarget } from \"framer\";\nimport { isMotionValue, useInView } from \"framer-motion\";\nimport { borderRadiusControl, defaultEvents, useIsBrowserSafari, useIsOnCanvas, useOnEnter, useOnExit, useRadius } from \"https://framer.com/m/framer/default-utils.js@^0.45.0\";\nimport { memo, useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nvar ObjectFitType;\n(function (ObjectFitType) {\n  ObjectFitType[\"Fill\"] = \"fill\";\n  ObjectFitType[\"Contain\"] = \"contain\";\n  ObjectFitType[\"Cover\"] = \"cover\";\n  ObjectFitType[\"None\"] = \"none\";\n  ObjectFitType[\"ScaleDown\"] = \"scale-down\";\n})(ObjectFitType || (ObjectFitType = {}));\nvar SrcType;\n(function (SrcType) {\n  SrcType[\"Video\"] = \"Upload\";\n  SrcType[\"Url\"] = \"URL\";\n})(SrcType || (SrcType = {})); // Reduce renders\nfunction getProps(props) {\n  const {\n    width,\n    height,\n    topLeft,\n    topRight,\n    bottomRight,\n    bottomLeft,\n    id,\n    children,\n    ...rest\n  } = props;\n  return rest;\n} /**\n  * VIDEO\n  *\n  * @framerIntrinsicWidth 200\n  * @framerIntrinsicHeight 112\n  *\n  * @framerSupportedLayoutWidth fixed\n  * @framerSupportedLayoutHeight any-prefer-fixed\n  */\nexport function Video(props) {\n  const newProps = getProps(props);\n  return /*#__PURE__*/_jsx(VideoMemo, {\n    ...newProps\n  });\n}\nfunction usePlaybackControls(videoRef) {\n  const isInCurrentNavigationTarget = useIsInCurrentNavigationTarget();\n  const requestingPlay = useRef(false);\n  const setProgress = useCallback(rawProgress => {\n    if (!videoRef.current) return;\n    const newProgress = (rawProgress === 1 ? .999 : rawProgress) * videoRef.current.duration;\n    const isAlreadySet = Math.abs(videoRef.current.currentTime - newProgress) < .1;\n    if (videoRef.current.duration > 0 && !isAlreadySet) {\n      videoRef.current.currentTime = newProgress;\n    }\n  }, []);\n  const play = useCallback(() => {\n    const isPlaying = videoRef.current.currentTime > 0 && videoRef.current.onplaying && !videoRef.current.paused && !videoRef.current.ended && videoRef.current.readyState > videoRef.current.HAVE_CURRENT_DATA;\n    if (!isPlaying && videoRef.current && !requestingPlay.current && isInCurrentNavigationTarget) {\n      requestingPlay.current = true;\n      videoRef.current.play().catch(e => {}) // It's likely fine, swallow error\n      .finally(() => requestingPlay.current = false);\n    }\n  }, []);\n  const pause = useCallback(() => {\n    if (!videoRef.current || requestingPlay.current) return;\n    videoRef.current.pause();\n  }, []);\n  return {\n    play,\n    pause,\n    setProgress\n  };\n}\nfunction useAutoplayBehavior({\n  playingProp,\n  muted,\n  loop,\n  playsinline,\n  controls\n}) {\n  const [initialPlayingProp] = useState(() => playingProp);\n  const [hasPlayingPropChanged, setHasPlayingPropChanged] = useState(false);\n  if (playingProp !== initialPlayingProp && !hasPlayingPropChanged) {\n    setHasPlayingPropChanged(true);\n  }\n  const behavesAsGif =\n  // passing `playing === true` on mount indicates that the video should\n  // autoplay, like a GIF\n  initialPlayingProp && muted && loop && playsinline && !controls &&\n  // Some users of the <Video> component use it by wrapping it with\n  // another smart component and adding their own controls on top. (The\n  // controls use transitions to control the video: e.g., when clicking\n  // the play button, the smart component will transition to a state with\n  // <Video playing={true} />.) In this case, we don't want the video to\n  // behave as a gif, as it will be weird if the video suddenly started\n  // acting as such (and auto-pausing when leaving the viewport) as soon\n  // as the site visitor mutes it and clicks \u201CPlay\u201D.\n  !hasPlayingPropChanged;\n  let autoplay;\n  if (behavesAsGif) autoplay = \"on-viewport\";else if (initialPlayingProp) autoplay = \"on-mount\";else autoplay = \"no-autoplay\";\n  return autoplay;\n} /**\n  * The Video component has some effects that sync the video element with props\n  * like `startTime`, `progress`, etc. React calls these effects whenever these\n  * props change. However, it also calls them on the first mount, and this is\n  * troublesome \u2013 if we\u2019re doing SSR, and the user changed the video state before\n  * the video was hydrated, the initial `useEffect` call will reset the video\n  * state. To avoid this, we use this flag.\n  */\nlet isMountedAndReadyForProgressChanges = false;\nconst VideoMemo = /*#__PURE__*/memo(function VideoInner(props) {\n  const {\n    srcType,\n    srcFile,\n    srcUrl,\n    playing: playingProp,\n    muted,\n    playsinline,\n    controls,\n    progress,\n    objectFit,\n    backgroundColor,\n    onSeeked,\n    onPause,\n    onPlay,\n    onEnd,\n    onClick,\n    onMouseEnter,\n    onMouseLeave,\n    onMouseDown,\n    onMouseUp,\n    poster,\n    posterEnabled,\n    startTime: startTimeProp,\n    volume,\n    loop\n  } = props;\n  const videoRef = useRef();\n  const isSafari = useIsBrowserSafari();\n  const wasPausedOnLeave = useRef(null);\n  const wasEndedOnLeave = useRef(null);\n  const isOnCanvas = useIsOnCanvas();\n  const borderRadius = useRadius(props); // Hard-coding `autoplayBehavior` and `isInViewport` when on canvas as a\n  // tiny perf optimization. isOnCanvas won\u2019t change through the lifecycle of\n  // the component, so using these hooks conditionally should be safe\n  const autoplayBehavior = isOnCanvas ? \"no-autoplay\" : useAutoplayBehavior({\n    playingProp,\n    muted,\n    loop,\n    playsinline,\n    controls\n  });\n  const isInViewport = isOnCanvas ? true : useInView(videoRef); // Video elements behave oddly at 100% duration\n  const startTime = startTimeProp === 100 ? 99.9 : startTimeProp;\n  const {\n    play,\n    pause,\n    setProgress\n  } = usePlaybackControls(videoRef); // Pause/play via props\n  useEffect(() => {\n    if (isOnCanvas) return;\n    if (playingProp) play();else pause();\n  }, [playingProp]); // Pause/play via viewport\n  useEffect(() => {\n    if (isOnCanvas) return;\n    if (autoplayBehavior !== \"on-viewport\") return;\n    if (isInViewport) play();else pause();\n  }, [autoplayBehavior, isInViewport]); // Allow scrubbling via progress prop\n  // 1) Handle cases when the progress prop itself changes\n  useEffect(() => {\n    if (!isMountedAndReadyForProgressChanges) {\n      isMountedAndReadyForProgressChanges = true;\n      return;\n    }\n    const rawProgressValue = isMotionValue(progress) ? progress.get() : (progress !== null && progress !== void 0 ? progress : 0) * .01;\n    setProgress(\n    // When the progress value exists (e.g. <Video startTime={10}\n    // progress={50} />), we respect the `progress` value over\n    // `startTime`, even if `startTime` changes. That\u2019s because\n    // `startTime` == start == changing it shouldn\u2019t affect the current\n    // progress\n    (rawProgressValue !== null && rawProgressValue !== void 0 ? rawProgressValue : 0) ||\n    // Then why fall back to `startTime` when `progress` doesn\u2019t exist,\n    // you might ask? Now, that\u2019s for\n    // - canvas UX: we want the video progress to change when the user\n    //   is scrobbling the \u201CStart Time\u201D in component settings.\n    // - backwards compatibility: maybe some users *are* scrobbling\n    //   using `startTime` instead of `progress`? We don\u2019t know, and it\n    //   always supported it, so let\u2019s not break it\n    (startTime !== null && startTime !== void 0 ? startTime : 0) / 100);\n  }, [startTime, srcFile, srcUrl, progress]); // 2) Handle cases when the motion value inside the progress prop changes\n  useEffect(() => {\n    if (!isMotionValue(progress)) return;\n    return progress.on(\"change\", value => setProgress(value));\n  }, [progress]); // (Prototyping) Checking if we need to play on navigation enter\n  useOnEnter(() => {\n    if (wasPausedOnLeave.current === null) return;\n    if (videoRef.current) {\n      // if (restartOnEnter) setProgress(0)\n      if (!wasEndedOnLeave && loop || !wasPausedOnLeave.current) play();\n    }\n  }); // (Prototyping) Pausing & saving playing state on navigation exit\n  useOnExit(() => {\n    if (videoRef.current) {\n      wasEndedOnLeave.current = videoRef.current.ended;\n      wasPausedOnLeave.current = videoRef.current.paused;\n      pause();\n    }\n  });\n  const src = useMemo(() => {\n    let fragment = \"\"; // if (\n    //     startTime > 0 &&\n    //     videoRef.current &&\n    //     !isNaN(videoRef.current.duration) &&\n    //     !isOnCanvas\n    // ) {\n    //     console.log(startTime, videoRef.current.duration)\n    //     fragment = `#t=${startTime * videoRef.current.duration}`\n    // }\n    if (srcType === \"URL\") return srcUrl + fragment;\n    if (srcType === \"Upload\") return srcFile + fragment;\n  }, [srcType, srcFile, srcUrl, startTime]); // Autoplay via JS to work in Safari\n  useEffect(() => {\n    if (isSafari && videoRef.current && autoplayBehavior === \"on-mount\") {\n      setTimeout(() => play(), 50);\n    }\n  }, []); // Volume Control\n  useEffect(() => {\n    if (videoRef.current && !muted) videoRef.current.volume = (volume !== null && volume !== void 0 ? volume : 0) / 100;\n  }, [volume]); // When video is ready, set start-time, then autoplay if needed\n  const handleReady = () => {\n    if (!videoRef.current) return;\n    if (videoRef.current.currentTime < .3) setProgress((startTime !== null && startTime !== void 0 ? startTime : 0) * .01);\n    if (autoplayBehavior === \"on-mount\") play();\n  };\n  return /*#__PURE__*/_jsx(\"video\", {\n    onClick,\n    onMouseEnter,\n    onMouseLeave,\n    onMouseDown,\n    onMouseUp,\n    src: src,\n    loop: loop,\n    ref: videoRef,\n    onSeeked: e => onSeeked === null || onSeeked === void 0 ? void 0 : onSeeked(e),\n    onPause: e => onPause === null || onPause === void 0 ? void 0 : onPause(e),\n    onPlay: e => onPlay === null || onPlay === void 0 ? void 0 : onPlay(e),\n    onEnded: e => onEnd === null || onEnd === void 0 ? void 0 : onEnd(e),\n    autoPlay: autoplayBehavior === \"on-mount\",\n    poster: posterEnabled ? poster : undefined,\n    onLoadedData: handleReady,\n    controls: controls,\n    muted: isOnCanvas ? true : muted,\n    playsInline: playsinline,\n    style: {\n      cursor: !!onClick ? \"pointer\" : \"auto\",\n      width: \"100%\",\n      height: \"100%\",\n      borderRadius,\n      display: \"block\",\n      objectFit: objectFit,\n      backgroundColor: backgroundColor,\n      objectPosition: \"50% 50%\"\n    }\n  });\n});\nVideo.displayName = \"Video\";\nVideo.defaultProps = {\n  srcType: \"URL\",\n  srcUrl: \"https://assets.mixkit.co/videos/preview/mixkit-shining-sun-in-the-sky-surrounded-by-moving-clouds-31793-small.mp4\",\n  srcFile: \"\",\n  posterEnabled: false,\n  controls: false,\n  playing: true,\n  loop: true,\n  muted: true,\n  playsinline: true,\n  restartOnEnter: false,\n  objectFit: \"cover\",\n  backgroundColor: \"rgba(0,0,0,0)\",\n  radius: 0,\n  volume: 25,\n  startTime: 0\n};\nconst groupsRegex = /[A-Z]{2,}|[A-Z][a-z]+|[a-z]+|[A-Z]|\\d+/gu;\nfunction capitalizeFirstLetter(value) {\n  return value.charAt(0).toUpperCase() + value.slice(1);\n}\nexport function titleCase(value) {\n  const groups = value.match(groupsRegex) || [];\n  return groups.map(capitalizeFirstLetter).join(\" \");\n}\nconst objectFitOptions = [\"cover\", \"fill\", \"contain\", \"scale-down\", \"none\"];\naddPropertyControls(Video, {\n  srcType: {\n    type: ControlType.Enum,\n    displaySegmentedControl: true,\n    title: \"Source\",\n    options: [\"URL\", \"Upload\"]\n  },\n  srcUrl: {\n    type: ControlType.String,\n    title: \"URL\",\n    placeholder: \"../example.mp4\",\n    hidden(props) {\n      return props.srcType === \"Upload\";\n    },\n    description: \"Hosted video file URL. For YouTube, use the YouTube component.\"\n  },\n  srcFile: {\n    type: ControlType.File,\n    title: \"File\",\n    allowedFileTypes: [\"mp4\", \"webm\"],\n    hidden(props) {\n      return props.srcType === \"URL\";\n    }\n  },\n  playing: {\n    type: ControlType.Boolean,\n    title: \"Playing\",\n    enabledTitle: \"Yes\",\n    disabledTitle: \"No\"\n  },\n  posterEnabled: {\n    type: ControlType.Boolean,\n    title: \"Poster\",\n    enabledTitle: \"Yes\",\n    disabledTitle: \"No\"\n  },\n  poster: {\n    type: ControlType.Image,\n    title: \" \",\n    hidden: ({\n      posterEnabled\n    }) => !posterEnabled\n  },\n  backgroundColor: {\n    type: ControlType.Color,\n    title: \"Background\"\n  },\n  ...borderRadiusControl,\n  startTime: {\n    title: \"Start Time\",\n    type: ControlType.Number,\n    min: 0,\n    max: 100,\n    step: .1,\n    unit: \"%\"\n  },\n  loop: {\n    type: ControlType.Boolean,\n    title: \"Loop\",\n    enabledTitle: \"Yes\",\n    disabledTitle: \"No\"\n  },\n  objectFit: {\n    type: ControlType.Enum,\n    title: \"Fit\",\n    options: objectFitOptions,\n    optionTitles: objectFitOptions.map(titleCase)\n  },\n  // restartOnEnter: {\n  //     type: ControlType.Boolean,\n  //     title: \"On ReEnter\",\n  //     enabledTitle: \"Restart\",\n  //     disabledTitle: \"Resume\",\n  // },\n  controls: {\n    type: ControlType.Boolean,\n    title: \"Controls\",\n    enabledTitle: \"Show\",\n    disabledTitle: \"Hide\"\n  },\n  muted: {\n    type: ControlType.Boolean,\n    title: \"Muted\",\n    enabledTitle: \"Yes\",\n    disabledTitle: \"No\"\n  },\n  volume: {\n    type: ControlType.Number,\n    max: 100,\n    min: 0,\n    unit: \"%\",\n    hidden: ({\n      muted\n    }) => muted\n  },\n  onEnd: {\n    type: ControlType.EventHandler\n  },\n  onSeeked: {\n    type: ControlType.EventHandler\n  },\n  onPause: {\n    type: ControlType.EventHandler\n  },\n  onPlay: {\n    type: ControlType.EventHandler\n  },\n  ...defaultEvents\n});\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"Video\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Video\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerSupportedLayoutHeight\": \"any-prefer-fixed\",\n        \"framerIntrinsicWidth\": \"200\",\n        \"framerSupportedLayoutWidth\": \"fixed\",\n        \"framerContractVersion\": \"1\",\n        \"framerIntrinsicHeight\": \"112\"\n      }\n    },\n    \"titleCase\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"VideoProps\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./Video.map"],
  "mappings": "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",
  "names": ["init_shims", "ObjectFitType", "SrcType", "getProps", "props", "width", "height", "topLeft", "topRight", "bottomRight", "bottomLeft", "id", "children", "rest", "Video", "newProps", "p", "VideoMemo", "usePlaybackControls", "videoRef", "isInCurrentNavigationTarget", "useIsInCurrentNavigationTarget", "requestingPlay", "pe", "setProgress", "te", "rawProgress", "newProgress", "isAlreadySet", "play", "e", "pause", "useAutoplayBehavior", "playingProp", "muted", "loop", "playsinline", "controls", "initialPlayingProp", "ye", "hasPlayingPropChanged", "setHasPlayingPropChanged", "behavesAsGif", "autoplay", "isMountedAndReadyForProgressChanges", "X", "srcType", "srcFile", "srcUrl", "progress", "objectFit", "backgroundColor", "onSeeked", "onPause", "onPlay", "onEnd", "onClick", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "poster", "posterEnabled", "startTimeProp", "volume", "isSafari", "useIsBrowserSafari", "wasPausedOnLeave", "wasEndedOnLeave", "isOnCanvas", "useIsOnCanvas", "borderRadius", "useRadius", "autoplayBehavior", "isInViewport", "useInView", "startTime", "ue", "rawProgressValue", "isMotionValue", "value", "useOnEnter", "useOnExit", "src", "se", "fragment", "groupsRegex", "capitalizeFirstLetter", "titleCase", "objectFitOptions", "addPropertyControls", "ControlType", "borderRadiusControl", "defaultEvents"]
}
