{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/VTUDdizacRHpwbkOamr7/AykinQJbgwl92LvMGZwu/constants.js", "ssg:https://framerusercontent.com/modules/afBE9Yx1W6bY5q32qPxe/m3q7puE2tbo1S2C0s0CT/useRenderTarget.js", "ssg:https://framerusercontent.com/modules/5SM58HxZHxjjv7aLMOgQ/WXz9i6mVki0bBCrKdqB3/propUtils.js", "ssg:https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/bZxrMUxBPAhoXlARkK9C/YouTube.js", "ssg:https://framerusercontent.com/modules/tvI4Rv49QIqof08MavrG/cE09dL6s3lCi09XTtByN/BzxVuWaVG.js"],
  "sourcesContent": ["import { ControlType } from \"framer\";\nexport const fontStack = `\"Inter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\"`;\nexport const containerStyles = {\n  position: \"relative\",\n  width: \"100%\",\n  height: \"100%\",\n  display: \"flex\",\n  justifyContent: \"center\",\n  alignItems: \"center\"\n};\nexport const emptyStateStyle = {\n  ...containerStyles,\n  borderRadius: 6,\n  background: \"rgba(136, 85, 255, 0.3)\",\n  color: \"#85F\",\n  border: \"1px dashed #85F\",\n  flexDirection: \"column\"\n};\nexport const defaultEvents = {\n  onClick: {\n    type: ControlType.EventHandler\n  },\n  onMouseEnter: {\n    type: ControlType.EventHandler\n  },\n  onMouseLeave: {\n    type: ControlType.EventHandler\n  }\n};\nexport const fontSizeOptions = {\n  type: ControlType.Number,\n  title: \"Font Size\",\n  min: 2,\n  max: 200,\n  step: 1,\n  displayStepper: true\n};\nexport const fontControls = {\n  font: {\n    type: ControlType.Boolean,\n    title: \"Font\",\n    defaultValue: false,\n    disabledTitle: \"Default\",\n    enabledTitle: \"Custom\"\n  },\n  fontFamily: {\n    type: ControlType.String,\n    title: \"Family\",\n    placeholder: \"Inter\",\n    hidden: ({\n      font\n    }) => !font\n  },\n  fontWeight: {\n    type: ControlType.Enum,\n    title: \"Weight\",\n    options: [100, 200, 300, 400, 500, 600, 700, 800, 900],\n    optionTitles: [\"Thin\", \"Extra-light\", \"Light\", \"Regular\", \"Medium\", \"Semi-bold\", \"Bold\", \"Extra-bold\", \"Black\"],\n    hidden: ({\n      font\n    }) => !font\n  }\n};\n// @TODO check if we're missing anything here \u2014 there doesn't seem to be a reliable browser API for this\nexport const localeOptions = {\n  af: \"Afrikaans\",\n  sq: \"Albanian\",\n  an: \"Aragonese\",\n  ar: \"Arabic (Standard)\",\n  \"ar-dz\": \"Arabic (Algeria)\",\n  \"ar-bh\": \"Arabic (Bahrain)\",\n  \"ar-eg\": \"Arabic (Egypt)\",\n  \"ar-iq\": \"Arabic (Iraq)\",\n  \"ar-jo\": \"Arabic (Jordan)\",\n  \"ar-kw\": \"Arabic (Kuwait)\",\n  \"ar-lb\": \"Arabic (Lebanon)\",\n  \"ar-ly\": \"Arabic (Libya)\",\n  \"ar-ma\": \"Arabic (Morocco)\",\n  \"ar-om\": \"Arabic (Oman)\",\n  \"ar-qa\": \"Arabic (Qatar)\",\n  \"ar-sa\": \"Arabic (Saudi Arabia)\",\n  \"ar-sy\": \"Arabic (Syria)\",\n  \"ar-tn\": \"Arabic (Tunisia)\",\n  \"ar-ae\": \"Arabic (U.A.E.)\",\n  \"ar-ye\": \"Arabic (Yemen)\",\n  hy: \"Armenian\",\n  as: \"Assamese\",\n  ast: \"Asturian\",\n  az: \"Azerbaijani\",\n  eu: \"Basque\",\n  bg: \"Bulgarian\",\n  be: \"Belarusian\",\n  bn: \"Bengali\",\n  bs: \"Bosnian\",\n  br: \"Breton\",\n  my: \"Burmese\",\n  ca: \"Catalan\",\n  ch: \"Chamorro\",\n  ce: \"Chechen\",\n  zh: \"Chinese\",\n  \"zh-hk\": \"Chinese (Hong Kong)\",\n  \"zh-cn\": \"Chinese (PRC)\",\n  \"zh-sg\": \"Chinese (Singapore)\",\n  \"zh-tw\": \"Chinese (Taiwan)\",\n  cv: \"Chuvash\",\n  co: \"Corsican\",\n  cr: \"Cree\",\n  hr: \"Croatian\",\n  cs: \"Czech\",\n  da: \"Danish\",\n  nl: \"Dutch (Standard)\",\n  \"nl-be\": \"Dutch (Belgian)\",\n  en: \"English\",\n  \"en-au\": \"English (Australia)\",\n  \"en-bz\": \"English (Belize)\",\n  \"en-ca\": \"English (Canada)\",\n  \"en-ie\": \"English (Ireland)\",\n  \"en-jm\": \"English (Jamaica)\",\n  \"en-nz\": \"English (New Zealand)\",\n  \"en-ph\": \"English (Philippines)\",\n  \"en-za\": \"English (South Africa)\",\n  \"en-tt\": \"English (Trinidad & Tobago)\",\n  \"en-gb\": \"English (United Kingdom)\",\n  \"en-us\": \"English (United States)\",\n  \"en-zw\": \"English (Zimbabwe)\",\n  eo: \"Esperanto\",\n  et: \"Estonian\",\n  fo: \"Faeroese\",\n  fa: \"Farsi\",\n  fj: \"Fijian\",\n  fi: \"Finnish\",\n  fr: \"French (Standard)\",\n  \"fr-be\": \"French (Belgium)\",\n  \"fr-ca\": \"French (Canada)\",\n  \"fr-fr\": \"French (France)\",\n  \"fr-lu\": \"French (Luxembourg)\",\n  \"fr-mc\": \"French (Monaco)\",\n  \"fr-ch\": \"French (Switzerland)\",\n  fy: \"Frisian\",\n  fur: \"Friulian\",\n  gd: \"Gaelic (Scots)\",\n  \"gd-ie\": \"Gaelic (Irish)\",\n  gl: \"Galacian\",\n  ka: \"Georgian\",\n  de: \"German (Standard)\",\n  \"de-at\": \"German (Austria)\",\n  \"de-de\": \"German (Germany)\",\n  \"de-li\": \"German (Liechtenstein)\",\n  \"de-lu\": \"German (Luxembourg)\",\n  \"de-ch\": \"German (Switzerland)\",\n  el: \"Greek\",\n  gu: \"Gujurati\",\n  ht: \"Haitian\",\n  he: \"Hebrew\",\n  hi: \"Hindi\",\n  hu: \"Hungarian\",\n  is: \"Icelandic\",\n  id: \"Indonesian\",\n  iu: \"Inuktitut\",\n  ga: \"Irish\",\n  it: \"Italian (Standard)\",\n  \"it-ch\": \"Italian (Switzerland)\",\n  ja: \"Japanese\",\n  kn: \"Kannada\",\n  ks: \"Kashmiri\",\n  kk: \"Kazakh\",\n  km: \"Khmer\",\n  ky: \"Kirghiz\",\n  tlh: \"Klingon\",\n  ko: \"Korean\",\n  \"ko-kp\": \"Korean (North Korea)\",\n  \"ko-kr\": \"Korean (South Korea)\",\n  la: \"Latin\",\n  lv: \"Latvian\",\n  lt: \"Lithuanian\",\n  lb: \"Luxembourgish\",\n  mk: \"FYRO Macedonian\",\n  ms: \"Malay\",\n  ml: \"Malayalam\",\n  mt: \"Maltese\",\n  mi: \"Maori\",\n  mr: \"Marathi\",\n  mo: \"Moldavian\",\n  nv: \"Navajo\",\n  ng: \"Ndonga\",\n  ne: \"Nepali\",\n  no: \"Norwegian\",\n  nb: \"Norwegian (Bokmal)\",\n  nn: \"Norwegian (Nynorsk)\",\n  oc: \"Occitan\",\n  or: \"Oriya\",\n  om: \"Oromo\",\n  \"fa-ir\": \"Persian/Iran\",\n  pl: \"Polish\",\n  pt: \"Portuguese\",\n  \"pt-br\": \"Portuguese (Brazil)\",\n  pa: \"Punjabi\",\n  \"pa-in\": \"Punjabi (India)\",\n  \"pa-pk\": \"Punjabi (Pakistan)\",\n  qu: \"Quechua\",\n  rm: \"Rhaeto-Romanic\",\n  ro: \"Romanian\",\n  \"ro-mo\": \"Romanian (Moldavia)\",\n  ru: \"Russian\",\n  \"ru-mo\": \"Russian (Moldavia)\",\n  sz: \"Sami (Lappish)\",\n  sg: \"Sango\",\n  sa: \"Sanskrit\",\n  sc: \"Sardinian\",\n  sd: \"Sindhi\",\n  si: \"Singhalese\",\n  sr: \"Serbian\",\n  sk: \"Slovak\",\n  sl: \"Slovenian\",\n  so: \"Somani\",\n  sb: \"Sorbian\",\n  es: \"Spanish\",\n  \"es-ar\": \"Spanish (Argentina)\",\n  \"es-bo\": \"Spanish (Bolivia)\",\n  \"es-cl\": \"Spanish (Chile)\",\n  \"es-co\": \"Spanish (Colombia)\",\n  \"es-cr\": \"Spanish (Costa Rica)\",\n  \"es-do\": \"Spanish (Dominican Republic)\",\n  \"es-ec\": \"Spanish (Ecuador)\",\n  \"es-sv\": \"Spanish (El Salvador)\",\n  \"es-gt\": \"Spanish (Guatemala)\",\n  \"es-hn\": \"Spanish (Honduras)\",\n  \"es-mx\": \"Spanish (Mexico)\",\n  \"es-ni\": \"Spanish (Nicaragua)\",\n  \"es-pa\": \"Spanish (Panama)\",\n  \"es-py\": \"Spanish (Paraguay)\",\n  \"es-pe\": \"Spanish (Peru)\",\n  \"es-pr\": \"Spanish (Puerto Rico)\",\n  \"es-es\": \"Spanish (Spain)\",\n  \"es-uy\": \"Spanish (Uruguay)\",\n  \"es-ve\": \"Spanish (Venezuela)\",\n  sx: \"Sutu\",\n  sw: \"Swahili\",\n  sv: \"Swedish\",\n  \"sv-fi\": \"Swedish (Finland)\",\n  \"sv-sv\": \"Swedish (Sweden)\",\n  ta: \"Tamil\",\n  tt: \"Tatar\",\n  te: \"Teluga\",\n  th: \"Thai\",\n  tig: \"Tigre\",\n  ts: \"Tsonga\",\n  tn: \"Tswana\",\n  tr: \"Turkish\",\n  tk: \"Turkmen\",\n  uk: \"Ukrainian\",\n  hsb: \"Upper Sorbian\",\n  ur: \"Urdu\",\n  ve: \"Venda\",\n  vi: \"Vietnamese\",\n  vo: \"Volapuk\",\n  wa: \"Walloon\",\n  cy: \"Welsh\",\n  xh: \"Xhosa\",\n  ji: \"Yiddish\",\n  zu: \"Zulu\"\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"fontSizeOptions\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"fontControls\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"localeOptions\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"fontStack\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"emptyStateStyle\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"containerStyles\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"defaultEvents\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    }\n  }\n};\n//# sourceMappingURL=./constants.map", "import { useMemo } from \"react\";\nimport { RenderTarget } from \"framer\";\nexport function useRenderTarget() {\n  const currentRenderTarget = useMemo(() => RenderTarget.current(), []);\n  return currentRenderTarget;\n}\nexport function useIsInPreview() {\n  const inPreview = useMemo(() => RenderTarget.current() === RenderTarget.preview, []);\n  return inPreview;\n}\nexport function useIsOnCanvas() {\n  const onCanvas = useMemo(() => RenderTarget.current() === RenderTarget.canvas, []);\n  return onCanvas;\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"useIsInPreview\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useRenderTarget\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useIsOnCanvas\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    }\n  }\n};\n//# sourceMappingURL=./useRenderTarget.map", "import { useMemo } from \"react\";\nimport { ControlType } from \"framer\";\nexport function useRadius(props) {\n  const {\n    borderRadius,\n    isMixedBorderRadius,\n    topLeftRadius,\n    topRightRadius,\n    bottomRightRadius,\n    bottomLeftRadius\n  } = props;\n  const radiusValue = useMemo(() => isMixedBorderRadius ? `${topLeftRadius}px ${topRightRadius}px ${bottomRightRadius}px ${bottomLeftRadius}px` : `${borderRadius}px`, [borderRadius, isMixedBorderRadius, topLeftRadius, topRightRadius, bottomRightRadius, bottomLeftRadius]);\n  return radiusValue;\n}\nexport const borderRadiusControl = {\n  borderRadius: {\n    title: \"Radius\",\n    type: ControlType.FusedNumber,\n    toggleKey: \"isMixedBorderRadius\",\n    toggleTitles: [\"Radius\", \"Radius per corner\"],\n    valueKeys: [\"topLeftRadius\", \"topRightRadius\", \"bottomRightRadius\", \"bottomLeftRadius\"],\n    valueLabels: [\"TL\", \"TR\", \"BR\", \"BL\"],\n    min: 0\n  }\n};\nexport function usePadding(props) {\n  const {\n    padding,\n    paddingPerSide,\n    paddingTop,\n    paddingRight,\n    paddingBottom,\n    paddingLeft\n  } = props;\n  const paddingValue = useMemo(() => paddingPerSide ? `${paddingTop}px ${paddingRight}px ${paddingBottom}px ${paddingLeft}px` : padding, [padding, paddingPerSide, paddingTop, paddingRight, paddingBottom, paddingLeft]);\n  return paddingValue;\n}\nexport const paddingControl = {\n  padding: {\n    type: ControlType.FusedNumber,\n    toggleKey: \"paddingPerSide\",\n    toggleTitles: [\"Padding\", \"Padding per side\"],\n    valueKeys: [\"paddingTop\", \"paddingRight\", \"paddingBottom\", \"paddingLeft\"],\n    valueLabels: [\"T\", \"R\", \"B\", \"L\"],\n    min: 0,\n    title: \"Padding\"\n  }\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"borderRadiusControl\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"useRadius\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"RadiusProps\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"PaddingProps\": {\n      \"type\": \"tsType\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"usePadding\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"paddingControl\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    }\n  }\n};\n//# sourceMappingURL=./propUtils.map", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useReducer, useState } from \"react\";\nimport { ControlType, addPropertyControls } from \"framer\";\nimport { useIsOnCanvas, emptyStateStyle, containerStyles, defaultEvents, useRadius, borderRadiusControl } from \"https://framer.com/m/framer/default-utils.js@^0.45.0\";\nvar PlayOptions;\n(function (PlayOptions) {\n  PlayOptions[\"Normal\"] = \"Off\";\n  PlayOptions[\"Auto\"] = \"On\";\n  PlayOptions[\"Loop\"] = \"Loop\";\n})(PlayOptions || (PlayOptions = {}));\nvar ThumbnailOptions;\n(function (ThumbnailOptions) {\n  ThumbnailOptions[\"High\"] = \"High Quality\";\n  ThumbnailOptions[\"Medium\"] = \"Medium Quality\";\n  ThumbnailOptions[\"Low\"] = \"Low Quality\";\n  ThumbnailOptions[\"Off\"] = \"Off\";\n})(ThumbnailOptions || (ThumbnailOptions = {}));\nvar ThumbnailFormat;\n(function (ThumbnailFormat) {\n  ThumbnailFormat[\"WebP\"] = \"webp\";\n  ThumbnailFormat[\"JPG\"] = \"jpg\";\n})(ThumbnailFormat || (ThumbnailFormat = {})); /**\n                                               * @framerIntrinsicWidth 560\n                                               * @framerIntrinsicHeight 315\n                                               *\n                                               * @framerSupportedLayoutWidth fixed\n                                               * @framerSupportedLayoutHeight fixed\n                                               *\n                                               * @framerComponentPresetProps isRed, borderRadius\n                                               */\nexport function Youtube({\n  url,\n  play,\n  shouldMute,\n  thumbnail,\n  isRed,\n  onClick,\n  onMouseEnter,\n  onMouseLeave,\n  onMouseDown,\n  onMouseUp,\n  ...props\n}) {\n  const onCanvas = useIsOnCanvas();\n  const isAutoplay = play !== PlayOptions.Normal;\n  const showThumbnail = onCanvas || thumbnail !== ThumbnailOptions.Off && !isAutoplay;\n  const [isPreloading, preloadVideo] = useReducer(() => true, false);\n  const [showVideo, startVideo] = useReducer(() => true, !showThumbnail);\n  const [isHovered, setHovered] = useState(false);\n  const borderRadius = useRadius(props);\n  const hasBorderRadius = borderRadius !== \"0px 0px 0px 0px\" && borderRadius !== \"0px\";\n  if (url === \"\") {\n    return /*#__PURE__*/_jsx(Instructions, {});\n  }\n  const parsedURL = parseVideoURL(url);\n  if (parsedURL === undefined) {\n    return /*#__PURE__*/_jsx(ErrorMessage, {\n      message: \"Invalid Youtube URL.\"\n    });\n  }\n  const [videoId, embedURL] = parsedURL; // https://stackoverflow.com/questions/2068344/how-do-i-get-a-youtube-video-thumbnail-from-the-youtube-api\n  const thumbnailURL = getThumbnailURL(videoId, thumbnail, getWebPSupported() ? ThumbnailFormat.WebP : ThumbnailFormat.JPG); // https://developers.google.com/youtube/player_parameters\n  const searchParams = embedURL.searchParams;\n  searchParams.set(\"iv_load_policy\", \"3\");\n  searchParams.set(\"rel\", \"0\");\n  searchParams.set(\"modestbranding\", \"1\");\n  searchParams.set(\"playsinline\", \"1\");\n  if (isAutoplay || showThumbnail) {\n    searchParams.set(\"autoplay\", \"1\");\n  }\n  if (isAutoplay && shouldMute) {\n    searchParams.set(\"mute\", \"1\");\n  }\n  if (play === PlayOptions.Loop) {\n    searchParams.set(\"loop\", \"1\");\n    searchParams.set(\"playlist\", videoId);\n  }\n  if (!isRed) {\n    searchParams.set(\"color\", \"white\");\n  }\n  return /*#__PURE__*/_jsxs(\"article\", {\n    onPointerEnter: () => setHovered(true),\n    onPointerLeave: () => setHovered(false),\n    onPointerOver: preloadVideo,\n    onClick: startVideo,\n    style: {\n      ...wrapperStyle,\n      borderRadius,\n      transform:\n      // Safari sometimes struggles to render border-radius:\n      // - on the canvas when changing from 0 to any other value\n      // - or when rendering an iframe\n      hasBorderRadius && (showVideo || onCanvas) ? \"translateZ(0.000001px)\" : \"unset\",\n      cursor: \"pointer\",\n      overflow: \"hidden\"\n    },\n    children: [isPreloading && /*#__PURE__*/_jsx(\"link\", {\n      rel: \"preconnect\",\n      href: \"https://www.youtube.com\"\n    }), isPreloading && /*#__PURE__*/_jsx(\"link\", {\n      rel: \"preconnect\",\n      href: \"https://www.google.com\"\n    }), /*#__PURE__*/_jsx(\"div\", {\n      style: {\n        ...videoStyle,\n        background: showThumbnail ? `center / cover url(${thumbnailURL}) no-repeat` : undefined\n      }\n    }), showVideo ? /*#__PURE__*/_jsx(\"iframe\", {\n      style: videoStyle,\n      src: embedURL.href,\n      frameBorder: \"0\",\n      allow: \"presentation; fullscreen; accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture\",\n      onClick: onClick,\n      onMouseEnter: onMouseEnter,\n      onMouseLeave: onMouseLeave,\n      onMouseDown: onMouseDown,\n      onMouseUp: onMouseUp\n    }) : /*#__PURE__*/_jsx(PlayButton, {\n      onClick: startVideo,\n      isHovered: isHovered,\n      isRed: isRed\n    })]\n  });\n}\nYoutube.displayName = \"YouTube\";\naddPropertyControls(Youtube, {\n  url: {\n    type: ControlType.String,\n    title: \"Video\"\n  },\n  play: {\n    type: ControlType.Enum,\n    title: \"Autoplay\",\n    options: Object.values(PlayOptions)\n  },\n  shouldMute: {\n    title: \"Mute\",\n    type: ControlType.Boolean,\n    enabledTitle: \"Yes\",\n    disabledTitle: \"No\",\n    hidden(props) {\n      return props.play === PlayOptions.Normal;\n    }\n  },\n  thumbnail: {\n    title: \"Thumbnail\",\n    description: \"Showing a thumbnail improves performance.\",\n    type: ControlType.Enum,\n    options: Object.values(ThumbnailOptions),\n    hidden(props) {\n      return props.play !== PlayOptions.Normal;\n    }\n  },\n  isRed: {\n    title: \"Color\",\n    type: ControlType.Boolean,\n    enabledTitle: \"Red\",\n    disabledTitle: \"White\"\n  },\n  ...borderRadiusControl,\n  ...defaultEvents\n});\nconst defaultProps = {\n  url: \"https://youtu.be/smPos0mJvh8\",\n  play: PlayOptions.Normal,\n  shouldMute: true,\n  thumbnail: ThumbnailOptions.Medium,\n  isRed: true\n};\nYoutube.defaultProps = defaultProps;\nfunction parseVideoURL(urlString) {\n  let url;\n  try {\n    url = new URL(urlString);\n  } catch {\n    const embedURL = getEmbedURL(urlString);\n    return [urlString, embedURL];\n  }\n  if (url.hostname === \"youtube.com\" || url.hostname === \"www.youtube.com\" || url.hostname === \"youtube-nocookie.com\" || url.hostname === \"www.youtube-nocookie.com\") {\n    const pathSegments = url.pathname.slice(1).split(\"/\"); // https://www.youtube.com/watch?v=Fop2oskTug8\n    if (pathSegments[0] === \"watch\") {\n      const videoId = url.searchParams.get(\"v\");\n      const embedURL1 = getEmbedURL(videoId);\n      return [videoId, embedURL1];\n    } // https://www.youtube.com/embed/Fop2oskTug8\n    if (pathSegments[0] === \"embed\") {\n      const videoId1 = pathSegments[1];\n      return [videoId1, url];\n    }\n  } // https://youtu.be/Fop2oskTug8\n  if (url.hostname === \"youtu.be\") {\n    const videoId2 = url.pathname.slice(1);\n    const embedURL2 = getEmbedURL(videoId2);\n    return [videoId2, embedURL2];\n  }\n}\nfunction getEmbedURL(videoId) {\n  return new URL(`https://www.youtube.com/embed/${videoId}`);\n}\nfunction getThumbnailURL(videoId, res, format = ThumbnailFormat.JPG) {\n  // https://gist.github.com/a1ip/be4514c1fd392a8c13b05e082c4da363\n  const pre = ThumbnailFormat.WebP ? \"https://i.ytimg.com/vi_webp/\" : \"https://i.ytimg.com/vi/\";\n  const ext = ThumbnailFormat.WebP ? \"webp\" : \"jpg\";\n  switch (res) {\n    case ThumbnailOptions.Low:\n      return `${pre}${videoId}/hqdefault.${ext}`;\n    case ThumbnailOptions.Medium:\n      return `${pre}${videoId}/sddefault.${ext}`;\n    case ThumbnailOptions.High:\n      return `${pre}${videoId}/maxresdefault.${ext}`;\n    default:\n      return `${pre}${videoId}/0.${ext}`;\n  }\n}\nlet _getWebPSupported; // https://stackoverflow.com/a/27232658\nfunction getWebPSupported() {\n  // We're going to default to webp because it's pretty widely supported by now\n  if (!window) {\n    return true;\n  }\n  if (_getWebPSupported !== undefined) {\n    return _getWebPSupported;\n  }\n  const element = document.createElement(\"canvas\");\n  if (!!(element.getContext && element.getContext(\"2d\"))) {\n    // was able or not to get WebP representation\n    return element.toDataURL(\"image/webp\").indexOf(\"data:image/webp\") == 0;\n  } else {\n    // very old browser like IE 8, canvas not supported\n    return false;\n  }\n} // Helper components\nfunction Instructions() {\n  return /*#__PURE__*/_jsx(\"div\", {\n    style: {\n      ...emptyStateStyle,\n      overflow: \"hidden\"\n    },\n    children: /*#__PURE__*/_jsx(\"div\", {\n      style: centerTextStyle,\n      children: \"To embed a Youtube video, add the URL to the properties\\xa0panel.\"\n    })\n  });\n}\nfunction ErrorMessage({\n  message\n}) {\n  return /*#__PURE__*/_jsx(\"div\", {\n    className: \"framerInternalUI-errorPlaceholder\",\n    style: {\n      ...containerStyles,\n      overflow: \"hidden\"\n    },\n    children: /*#__PURE__*/_jsxs(\"div\", {\n      style: centerTextStyle,\n      children: [\"Error: \", message]\n    })\n  });\n}\nfunction PlayButton({\n  onClick,\n  isHovered,\n  isRed\n}) {\n  return /*#__PURE__*/_jsx(\"button\", {\n    onClick: onClick,\n    \"aria-label\": \"Play\",\n    style: buttonStyle,\n    children: /*#__PURE__*/_jsxs(\"svg\", {\n      height: \"100%\",\n      version: \"1.1\",\n      viewBox: \"0 0 68 48\",\n      width: \"100%\",\n      children: [/*#__PURE__*/_jsx(\"path\", {\n        d: \"M66.52,7.74c-0.78-2.93-2.49-5.41-5.42-6.19C55.79,.13,34,0,34,0S12.21,.13,6.9,1.55 C3.97,2.33,2.27,4.81,1.48,7.74C0.06,13.05,0,24,0,24s0.06,10.95,1.48,16.26c0.78,2.93,2.49,5.41,5.42,6.19 C12.21,47.87,34,48,34,48s21.79-0.13,27.1-1.55c2.93-0.78,4.64-3.26,5.42-6.19C67.94,34.95,68,24,68,24S67.94,13.05,66.52,7.74z\",\n        fill: isHovered ? isRed ? \"#f00\" : \"#000\" : \"#212121\",\n        fillOpacity: isHovered ? isRed ? 1 : .8 : .8,\n        style: {\n          transition: \"fill .1s cubic-bezier(0.4, 0, 1, 1), fill-opacity .1s cubic-bezier(0.4, 0, 1, 1)\"\n        }\n      }), /*#__PURE__*/_jsx(\"path\", {\n        d: \"M 45,24 27,14 27,34\",\n        fill: \"#fff\"\n      })]\n    })\n  });\n}\nconst buttonStyle = {\n  position: \"absolute\",\n  top: \"50%\",\n  left: \"50%\",\n  transform: \"translate(-50%, -50%)\",\n  width: 68,\n  height: 48,\n  padding: 0,\n  border: \"none\",\n  background: \"transparent\",\n  cursor: \"pointer\"\n};\nconst wrapperStyle = {\n  position: \"relative\",\n  width: \"100%\",\n  height: \"100%\"\n};\nconst centerTextStyle = {\n  textAlign: \"center\",\n  minWidth: 140\n};\nconst videoStyle = {\n  position: \"absolute\",\n  top: 0,\n  left: 0,\n  height: \"100%\",\n  width: \"100%\"\n};\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"Youtube\": {\n      \"type\": \"reactComponent\",\n      \"name\": \"Youtube\",\n      \"slots\": [],\n      \"annotations\": {\n        \"framerSupportedLayoutWidth\": \"fixed\",\n        \"framerSupportedLayoutHeight\": \"fixed\",\n        \"framerIntrinsicHeight\": \"315\",\n        \"framerIntrinsicWidth\": \"560\",\n        \"framerComponentPresetProps\": \"isRed, borderRadius\",\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./YouTube.map", "import { jsx as e, jsxs as t } from \"react/jsx-runtime\";\nimport { addPropertyControls as r, ComponentPresetsConsumer as n, ControlType as i, Link as a } from \"framer\";\nimport { motion as o } from \"framer-motion\";\nimport * as s from \"react\";\nimport { Youtube as l } from \"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/bZxrMUxBPAhoXlARkK9C/YouTube.js\";\nlet d = \"dsnsRTUSc\",\n  p = \"vhLy0TtfC\",\n  c = \"BeFKtaIcX\",\n  h = \"b2o5HH_yA\",\n  u = \"v87NK7UOe\",\n  m = \"T5Nfjwoyl\",\n  g = (e, t) => {\n    if (e && \"object\" == typeof e) return {\n      ...e,\n      alt: t\n    };\n  },\n  w = [{\n    id: \"ZCFthosVQ\",\n    [d]: \"Tides\",\n    [p]: \"tides\",\n    [c]: \"Amazing experience improvements and bug fixes.\",\n    [h]: \"2024-02-14T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/NxKS04DzHO6PXDsxdvnvY4DdE.jpg\",\n      srcSet: \"https://framerusercontent.com/images/NxKS04DzHO6PXDsxdvnvY4DdE.jpg?scale-down-to=512 368w, https://framerusercontent.com/images/NxKS04DzHO6PXDsxdvnvY4DdE.jpg?scale-down-to=1024 737w, https://framerusercontent.com/images/NxKS04DzHO6PXDsxdvnvY4DdE.jpg?scale-down-to=2048 1475w, https://framerusercontent.com/images/NxKS04DzHO6PXDsxdvnvY4DdE.jpg 2352w\"\n    }, \"Actions Menu\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/t(\"p\", {\n        children: [\"The May update brings a series of amazing experience improvements and small quality-of-life features. We\u2019ve refreshed the Actions menu, and placed it in the Toolbar for easy access to features like \", /*#__PURE__*/e(a, {\n          href: \"https://www.framer.com/updates/version-history-update\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"Version History\"\n          })\n        }), \", as well as context-aware actions. Plus, we\u2019re introducing a few new updates to Text layers, like the ability to use Blending Modes, and em units for letter-spacing. Moreso, we\u2019ve fixed a lot of bugs, many of which were reported by the community. See the full list below.\"]\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Refreshed the Actions menu interface, and placed it in the Toolbar\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Improved the sorting of all properties in the Styles menu, like Filters\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"The property panel can now be browsed in View Only mode\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Added support for Blending Mode styles to all Text layers\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Added support for em units for letter-spacing to all Text layers\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Added custom font support to the MP3 audio component in Insert\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed SVGs in Stacks showing Position while actually disabled\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Delay showing in unsupported Effects, like Drag or Transform\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Smart Components collapsing due to relative size constraints\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed visual popover rendering issues when designing in Safari\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed the Guides property being shown while actually disabled\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed the top bar being hidden after closing the Preview window\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed issues when combining pins with relative widths and aspect ratio\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed issues where you could publish too soon and crash your project\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed a bug where position would be reset when copy and pasting Styles\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed animations stretching on window resize, like mobile navigations\"\n          })\n        })]\n      })]\n    })\n  }, {\n    id: \"yeY_tk1sO\",\n    [d]: \"Waves\",\n    [p]: \"waves\",\n    [c]: \"Introducing a refreshed previewing interface.\",\n    [h]: \"2024-02-03T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/KNf5tI2XkvEQF4vdRDuEE4CP1Ag.jpg\",\n      srcSet: \"https://framerusercontent.com/images/KNf5tI2XkvEQF4vdRDuEE4CP1Ag.jpg?scale-down-to=512 512w, https://framerusercontent.com/images/KNf5tI2XkvEQF4vdRDuEE4CP1Ag.jpg?scale-down-to=1024 1024w, https://framerusercontent.com/images/KNf5tI2XkvEQF4vdRDuEE4CP1Ag.jpg?scale-down-to=2048 2048w, https://framerusercontent.com/images/KNf5tI2XkvEQF4vdRDuEE4CP1Ag.jpg 3954w\"\n    }, \"Framer Preview Window\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/t(\"p\", {\n        children: [\"This update introduces a refreshed previewing interface, with a simpler topbar and better defaults for previewing your responsive pages. We\u2019ve also included a host of other improvements and fixes, such as a new shortcut to quickly collapse all layers, and ensuring the Pan Tool no longer gets stuck once selected. Let us know what you think in the \", /*#__PURE__*/e(a, {\n          href: \"https://www.framer.community/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"Community\"\n          })\n        }), \"\u2014we\u2019d love to hear your thoughts!\"]\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Simplified previewing UI with a refreshed topbar and icons\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Preview can now be toggled on and off via the icon in the toolbar\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Sites are now always previewed responsively by default\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"You can now collapse all layers in the Layer Panel with \u2325 L\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"All Styles can now be manually sorted in the Assets Panel\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Background Blur can now always be added under Styles\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Background Blur now has a performance warning at values >10\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"The Keyboard Shortcut overview modal is now responsive\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed one or more layers wrapped in a Frame being offset\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed the text editor using the wrong Color Style theme\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Pan Tool getting stuck when enabled by clicking\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Preview always being inferred from Viewport on Web Pages\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Viewport pill from clashing with other UI, like the Gradient editor\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed accidentally showing the Filters menu on unsupported layers\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Stack losing order overrides when copy-pasting across Pages\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Fixed Stack order being off when Primary Breakpoint was a Frame\"\n          })\n        })]\n      })]\n    })\n  }, {\n    id: \"sK4RHZu5e\",\n    [d]: \"Splash\",\n    [p]: \"splash\",\n    [c]: \"Add H4, H5, and H6 Text Styles to your project.\",\n    [h]: \"2024-01-27T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/yxCWNkXr6Wkt8eu481i504w040.jpg\",\n      srcSet: \"https://framerusercontent.com/images/yxCWNkXr6Wkt8eu481i504w040.jpg?scale-down-to=512 409w, https://framerusercontent.com/images/yxCWNkXr6Wkt8eu481i504w040.jpg?scale-down-to=1024 819w, https://framerusercontent.com/images/yxCWNkXr6Wkt8eu481i504w040.jpg?scale-down-to=2048 1638w, https://framerusercontent.com/images/yxCWNkXr6Wkt8eu481i504w040.jpg 2099w\"\n    }, \"Text Styles\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"p\", {\n        children: \"This release adds H4, H5, and H6 support to Text Styles, and also improves creation workflows. Plus, Text Styles are now optional\u2014so you can keep all your projects and templates clean, and only use those you need. This also applies to Link Styles. Using any Heading in the CMS will automatically add a matching Text Style for you, so you can focus on your content and add structure later.\"\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Add H4, H5, and H6 tags to Text Styles\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"All Text Styles are now optional in your project\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"All Link Styles are now optional in your project\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Improved Link and Text Styles creation workflow\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Text Styles are automatically added via CMS\"\n          })\n        })]\n      })]\n    })\n  }, {\n    id: \"HW2UBEfMX\",\n    [d]: \"Surf\",\n    [p]: \"surf\",\n    [c]: \"Introducing the Lemon Squeezy Component.\",\n    [h]: \"2024-01-11T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg?scale-down-to=4096\",\n      srcSet: \"https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg?scale-down-to=512 339w, https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg?scale-down-to=1024 678w, https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg?scale-down-to=2048 1356w, https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg?scale-down-to=4096 2712w, https://framerusercontent.com/images/9x9lOSWHVHJURCU3sVyegnypjQ.jpg 3264w\"\n    }, \"Insert Menu\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"Lemon Squeezy\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"This update adds a brand new \", /*#__PURE__*/e(a, {\n          href: \"https://www.lemonsqueezy.com/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"Lemon Squeezy\"\n          })\n        }), \" integration to Framer. You\u2019ll find this component in the Insert Panel under the Utility section, or by searching. Use it to design simple storefronts, or to sell your amazing Framer templates. You can pick between a direct link or a checkout overlay to sell your products. We ensure the required \", /*#__PURE__*/e(\"strong\", {\n          children: \"script\"\n        }), \" is always only loaded once per page, so your sites stay fast to load, no matter how many products you\u2019re selling.\"]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Instant Transitions\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"We also shipped tons of quality-of-life improvements and bug fixes based on feedback and reports from the \", /*#__PURE__*/e(a, {\n          href: \"https://framer.community/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"Community\"\n          })\n        }), \". It also brings a series of refinements that help you design navigations in Framer, including a redesigned Transition editor that allows you to quickly use Instant transitions, improved Styles menus, fixes for components that use Scroll Variants, and more. See the full list below.\"]\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Added an Instant Transition type for Component variants\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Ease and Spring curve editors now share the same layout\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"All Filter properties are now grouped together in the Styles menu\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Links no longer automatically get no-referrer applied\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Properties in pop-outs can now be edited with multi-select\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Image Variables now support alt text in Components\"\n          })\n        }), /*#__PURE__*/t(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: [/*#__PURE__*/e(\"p\", {\n            children: \"Breakpoints no longer get Radius applied by default\"\n          }), /*#__PURE__*/e(\"p\", {\n            children: /*#__PURE__*/e(\"br\", {\n              className: \"trailing-break\"\n            })\n          })]\n        })]\n      }), /*#__PURE__*/e(o.div, {\n        className: \"framer-text-module\",\n        style: {\n          \"--aspect-ratio\": \"560 / 315\",\n          aspectRatio: \"var(--aspect-ratio)\",\n          height: \"auto\",\n          width: \"100%\"\n        },\n        children: /*#__PURE__*/e(n, {\n          componentIdentifier: \"module:NEd4VmDdsxM3StIUbddO/bZxrMUxBPAhoXlARkK9C/YouTube.js:Youtube\",\n          children: t => /*#__PURE__*/e(l, {\n            ...t,\n            play: \"Off\",\n            shouldMute: !0,\n            thumbnail: \"High Quality\",\n            url: \"https://youtu.be/-rkFVygMhus\"\n          })\n        })\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Dark and Light Themes\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Finally, we introduced Light and Dark Mode for your websites, with all new Color Styles. Add a Color Style, define a Light and Dark Theme, then use the Styles throughout your project. Color Styles with Themes even work within interactions and animations\u2014from Effects to Components. You can now find these in the Assets panel as well, where they can be created and customized.\"\n      })]\n    })\n  }, {\n    id: \"qqT7NV6Xr\",\n    [d]: \"Marine\",\n    [p]: \"marine\",\n    [c]: \"Copy Pasting, List Support, Filtering, and more.\",\n    [h]: \"2023-12-25T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg?scale-down-to=4096\",\n      srcSet: \"https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg?scale-down-to=512 370w, https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg?scale-down-to=1024 740w, https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg?scale-down-to=2048 1480w, https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg?scale-down-to=4096 2960w, https://framerusercontent.com/images/UcnO6NNf0vgVIrxNdhFuzgV0yZk.jpg 3547w\"\n    }, \"Framer CMS\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"Copy and pasting\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"We\u2019ve recently improved the pasting of text in Framer to improve your writing experience. From copy-pasting between Text elements in Framer to bringing your own structured copy from editors like Notion, we\u2019ve covered the most used workflows for long- and short-form text editing using your semantic HTML, Inline Styles, and Text Styles. This also includes pasting text from online resources. For example, you can copy your essay from Notion and paste it into an empty text element, and we style it according to the default or even your own defined Text Styles. The pasting functionality will always respect the HTML structure of your pasted text and map it to your project\u2019s Text Styles.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"List support\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"This release adds support for Bulleted and Numbered Lists in Text Layers and the \", /*#__PURE__*/e(a, {\n          href: \"https://www.framer.com/learn/cms/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"CMS\"\n          })\n        }), \". You can now structure your content in new ways with Lists that integrate seamlessly with your existing Text Styles and CMS content. \"]\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"To start a new list, type a hypen or any number.\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"You can nest lists as deeply as you\u2019d like.\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"To exit out of a list, hinter enter twice.\"\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Filtering\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"We\u2019ve added the ability to filter your collection lists in the CMS. This allows you to keep your content in a single collection, yet customize how that collection is presented on each of your web pages. For example, if you\u2019re creating docs for your app, you might want to filter articles per topic on your homepage. Or when creating a blog, you might want to filter your blog posts per category.\"\n      })]\n    })\n  }, {\n    id: \"ewX80TdyB\",\n    [d]: \"Tsunami\",\n    [p]: \"tsunami\",\n    [c]: \"Updates to the Layer Panel, Breakpoints, and Variants.\",\n    [h]: \"2023-12-07T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/Y9jR6lUi6aNre0UPLYoOlRwUrU.jpg\",\n      srcSet: \"https://framerusercontent.com/images/Y9jR6lUi6aNre0UPLYoOlRwUrU.jpg?scale-down-to=512 409w, https://framerusercontent.com/images/Y9jR6lUi6aNre0UPLYoOlRwUrU.jpg?scale-down-to=1024 819w, https://framerusercontent.com/images/Y9jR6lUi6aNre0UPLYoOlRwUrU.jpg?scale-down-to=2048 1638w, https://framerusercontent.com/images/Y9jR6lUi6aNre0UPLYoOlRwUrU.jpg 2419w\"\n    }, \"Framer Layout\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"New This Month\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"This quality update brings canvas and layer panel improvements. We\u2019ve updated the Component symbol throughout the app to differentiate it from Grids. Plus, we\u2019ve made Primary Breakpoints and Variants more distinct in the left panel, making it easier to see if you\u2019re editing the primary or an instance. Breakpoints will now also show the ranges in the layer panel. See more updates below. \"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Bonus Updates \"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Last month, we added support for automatic tinting and new layout options for components, plus a whole lot of fixes and improvements. If you give your Page a Fill color, this will now also tint browsers like Safari and will ensure you don\u2019t get plain white backgrounds when overscrolling on any mobile device. Plus, we\u2019ve added support for Min Max sizing to all Smart and Code components, greatly simplifying many common layouts and patterns. See the full changelog below.\"\n      }), /*#__PURE__*/t(\"ul\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We automatically set the body background, based on your Page\u2019s fill color\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"You can now override the body background and customize per breakpoint\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We now support Min Max sizing for all Smart and Code Component\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We now consistently show the Min Max hint within the property panel\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"You can now use all alignment options for layers with Position set to Fixed\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We now inform you if a parent layer height changes due to layout edits\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We improved the Radius and Padding controls, no longer resetting values\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"Number inputs split in four no longer show steppers, so longer values fit\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"We improved Appear Effects using Scale with Spring transitions\"\n          })\n        })]\n      })]\n    })\n  }, {\n    id: \"xOzPb1rh8\",\n    [d]: \"Whirlpool\",\n    [p]: \"whirlpool\",\n    [c]: \"Create flexible navigations within a single page.\",\n    [h]: \"2023-11-15T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg?scale-down-to=4096\",\n      srcSet: \"https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg?scale-down-to=512 512w, https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg?scale-down-to=1024 1024w, https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg?scale-down-to=2048 2048w, https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg?scale-down-to=4096 4096w, https://framerusercontent.com/images/sHLMnMkPrn2Lutl186wWWfrVrk.jpg 6000w\"\n    }, \"Sticky Scroll\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"Sticky positioning\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"To make a sticky header, select it and head over the properties panel where you\u2019ll find the Sticky property. Here you\u2019ll see four position properties to customize its distance from top, bottom, left, and right. These properties represent the position of the sticky element relative to its parent layer.\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"Sticky will only work if all parent layers have overflow set to visible, which may cause issues on mobile. Specifically, an overflowing element in the web page (like the one pictured below) can cause the site to be scrollable horizontally on a mobile device, leading to unwanted results. To prevent this from happening, make sure to double check for overflowing elements in your page and, if necessary, wrap them in a parent layer and set its overflow property to hidden.\"\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"Smooth scrolling\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"You can select any Layer and head over to the Scroll Section property to give it a unique name. Then, we can create new links that point to the same page, and then we\u2019re presented with the Section property, allowing us to pick from all targets that exist on the same page. Finally, we can set Scroll to Smooth. The video below also covers how to work with components and how to mix in Scroll Speed effects to create parallax effects. If you\u2019re interested in playing around with these features, feel free to \", /*#__PURE__*/e(a, {\n          href: \"https://targets.framer.wiki/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"remix my demo project here\"\n          })\n        }), \".\"]\n      })]\n    })\n  }, {\n    id: \"YMZj3Eift\",\n    [d]: \"Aquatic\",\n    [p]: \"aquatic\",\n    [c]: \"Making your sites up to 2X as fast.\",\n    [h]: \"2023-10-24T00:00:00.000Z\",\n    [u]: g({\n      src: \"https://framerusercontent.com/images/K5AeFYOcMSegJtVIUs2Oxk03upI.jpg\",\n      srcSet: \"https://framerusercontent.com/images/K5AeFYOcMSegJtVIUs2Oxk03upI.jpg?scale-down-to=512 512w, https://framerusercontent.com/images/K5AeFYOcMSegJtVIUs2Oxk03upI.jpg?scale-down-to=1024 1024w, https://framerusercontent.com/images/K5AeFYOcMSegJtVIUs2Oxk03upI.jpg?scale-down-to=2048 2048w, https://framerusercontent.com/images/K5AeFYOcMSegJtVIUs2Oxk03upI.jpg 3980w\"\n    }, \"2X Publishing\"),\n    [m]: /*#__PURE__*/t(s.Fragment, {\n      children: [/*#__PURE__*/e(\"h2\", {\n        children: \"Pre-rendering and compression\"\n      }), /*#__PURE__*/e(\"p\", {\n        children: \"This release brings two improvements that can make your site up to 2X as fast. \"\n      }), /*#__PURE__*/t(\"ol\", {\n        children: [/*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/e(\"p\", {\n            children: \"When you publish your site, we pre-render a static HTML version on the server, so it loads faster and Google can analyze it for SEO (using React and SSR). We have optimized this process to use multiple CPUs on our server at the same time. Now, even sites with hundreds of pages can finish in seconds.\"\n          })\n        }), /*#__PURE__*/e(\"li\", {\n          \"data-preset-tag\": \"p\",\n          children: /*#__PURE__*/t(\"p\", {\n            children: [\"We serve your site from a global cache location close to your visitors to make sure your site loads fast. In addition, we use an advanced HTML and text compression algorithm called \", /*#__PURE__*/e(a, {\n              href: \"https://github.com/google/brotli\",\n              openInNewTab: !0,\n              smoothScroll: !1,\n              children: /*#__PURE__*/e(\"a\", {\n                children: \"Brotli\"\n              })\n            }), \". Compressed content is now cached, so we can send it directly to your visitors instead of compressing each request individually. In our tests this often improves loading speed by up to 2x, which will have a very positive impact on your Lighthouse scores like \", /*#__PURE__*/e(a, {\n              href: \"https://web.dev/lcp/\",\n              openInNewTab: !0,\n              smoothScroll: !1,\n              children: /*#__PURE__*/e(\"a\", {\n                children: \"LCP\"\n              })\n            }), \". This will be especially noticeable on larger sites, so you can scale your site without worry.\"]\n          })\n        })]\n      }), /*#__PURE__*/e(\"h2\", {\n        children: \"CSS optimization\"\n      }), /*#__PURE__*/t(\"p\", {\n        children: [\"We\u2019ve also greatly improved the loading times of your websites. Sites now build and load faster because the CSS is minified with \", /*#__PURE__*/e(a, {\n          href: \"https://esbuild.github.io/\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"esbuild\"\n          })\n        }), \" instead of \", /*#__PURE__*/e(a, {\n          href: \"https://www.npmjs.com/package/csso\",\n          openInNewTab: !0,\n          smoothScroll: !1,\n          children: /*#__PURE__*/e(\"a\", {\n            children: \"csso\"\n          })\n        }), \". esbuild is much faster and better at de-duplicating certain advanced CSS rules, which means you will experience significantly lighter CSS files for complex pages. For our own site, we saw a 60% improvement in CSS size and a 4x speed up for optimization times. To get the same advantages, re-publish your site.\"]\n      })]\n    })\n  }];\nfor (let e of w) Object.freeze(e);\nr(w, {\n  dsnsRTUSc: {\n    defaultValue: \"\",\n    title: \"Title\",\n    type: i.String\n  },\n  vhLy0TtfC: {\n    title: \"Slug\",\n    type: i.String\n  },\n  BeFKtaIcX: {\n    defaultValue: \"Copy Pasting, List Support, Filtering, and more.\",\n    displayTextArea: !1,\n    placeholder: \"Post Description for SEO\u2026\",\n    title: \"Description\",\n    type: i.String\n  },\n  b2o5HH_yA: {\n    title: \"Date\",\n    type: i.Date\n  },\n  v87NK7UOe: {\n    __defaultAssetReference: \"data:framer/asset-reference,rlvUZruim7NVVpw48iYZqrmGbk.jpg?originalFilename=Flowers+1.jpg&preferredSize=auto\",\n    title: \"Banner\",\n    type: i.ResponsiveImage\n  },\n  T5Nfjwoyl: {\n    defaultValue: \"\",\n    title: \"Content\",\n    type: i.RichText\n  }\n}), w.displayName = \"Blog\";\nexport default w;\nexport const enumToDisplayNameFunctions = {};\nexport async function getSlugByRecordId(e, t) {\n  var r;\n  return null === (r = w.find(t => t.id === e)) || void 0 === r ? void 0 : r.vhLy0TtfC;\n}\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"enumToDisplayNameFunctions\": {\n      \"type\": \"variable\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"default\": {\n      \"type\": \"data\",\n      \"name\": \"data\",\n      \"annotations\": {\n        \"framerSlug\": \"vhLy0TtfC\",\n        \"framerData\": \"\",\n        \"framerEnumToDisplayNameUtils\": \"2\",\n        \"framerContractVersion\": \"1\",\n        \"framerRecordIdKey\": \"id\"\n      }\n    },\n    \"getSlugByRecordId\": {\n      \"type\": \"function\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};"],
  "mappings": "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",
  "names": ["containerStyles", "emptyStateStyle", "defaultEvents", "ControlType", "fontSizeOptions", "fontControls", "font", "useIsOnCanvas", "se", "RenderTarget", "useRadius", "props", "borderRadius", "isMixedBorderRadius", "topLeftRadius", "topRightRadius", "bottomRightRadius", "bottomLeftRadius", "se", "borderRadiusControl", "ControlType", "paddingControl", "ControlType", "PlayOptions", "ThumbnailOptions", "ThumbnailFormat", "Youtube", "url", "play", "shouldMute", "thumbnail", "isRed", "onClick", "onMouseEnter", "onMouseLeave", "onMouseDown", "onMouseUp", "props", "onCanvas", "useIsOnCanvas", "isAutoplay", "showThumbnail", "isPreloading", "preloadVideo", "le", "showVideo", "startVideo", "isHovered", "setHovered", "ye", "borderRadius", "useRadius", "hasBorderRadius", "p", "Instructions", "parsedURL", "parseVideoURL", "ErrorMessage", "videoId", "embedURL", "thumbnailURL", "getThumbnailURL", "getWebPSupported", "searchParams", "u", "wrapperStyle", "videoStyle", "PlayButton", "addPropertyControls", "ControlType", "borderRadiusControl", "defaultEvents", "defaultProps", "urlString", "getEmbedURL", "pathSegments", "embedURL1", "videoId2", "embedURL2", "res", "format", "pre", "ext", "_getWebPSupported", "window", "element", "emptyStateStyle", "centerTextStyle", "message", "containerStyles", "buttonStyle", "d", "p", "c", "h", "u", "m", "g", "e", "t", "w", "x", "Link", "motion", "ComponentPresetsConsumer", "Youtube", "addPropertyControls", "ControlType", "BzxVuWaVG_default", "enumToDisplayNameFunctions", "getSlugByRecordId", "r", "__FramerMetadata__"]
}
