{
  "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/fJ8vwGe6kxfz7kj9H7Sk/YouTube.js", "ssg:https://framerusercontent.com/modules/uSplA1nV2NGPfOXp2O9i/lvlGyU4MXgQkKA0keonO/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: hasBorderRadius && showVideo ? \"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        \"framerContractVersion\": \"1\",\n        \"framerIntrinsicHeight\": \"315\",\n        \"framerComponentPresetProps\": \"isRed, borderRadius\",\n        \"framerIntrinsicWidth\": \"560\",\n        \"framerSupportedLayoutHeight\": \"fixed\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};\n//# sourceMappingURL=./YouTube.map", "import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { addPropertyControls, ComponentPresetsConsumer, ControlType, Link } from \"framer\";\nimport { motion } from \"framer-motion\";\nimport * as React from \"react\";\nimport { Youtube as YouTube } from \"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/fJ8vwGe6kxfz7kj9H7Sk/YouTube.js\"; /**\n                                                                                                                                 * @framerRecordIdKey id\n                                                                                                                                 * @framerSlug vhLy0TtfC\n                                                                                                                                 * @framerData\n                                                                                                                                 */\nconst data = [{\n  b2o5HH_yA: \"2023-04-11T00:00:00.000Z\",\n  BeFKtaIcX: \"Introducing the Lemon Squeezy component.\",\n  id: \"HW2UBEfMX\",\n  MNI4wejMU: \"April Updates\",\n  T5Nfjwoyl: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"h2\", {\n      children: \"Lemon Squeezy\"\n    }), /*#__PURE__*/_jsxs(\"p\", {\n      children: [\"This update adds a brand new \", /*#__PURE__*/_jsx(Link, {\n        href: \"https://www.lemonsqueezy.com/\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"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__*/_jsx(\"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__*/_jsx(\"h2\", {\n      children: \"Instant Transitions\"\n    }), /*#__PURE__*/_jsxs(\"p\", {\n      children: [\"We also shipped tons of quality-of-life improvements and bug fixes based on feedback and reports from the \", /*#__PURE__*/_jsx(Link, {\n        href: \"https://framer.community/\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"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__*/_jsxs(\"ul\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Added an Instant Transition type for Component variants\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Ease and Spring curve editors now share the same layout\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"All Filter properties are now grouped together in the Styles menu\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Links no longer automatically get no-referrer applied\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Properties in pop-outs can now be edited with multi-select\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Image Variables now support alt text in Components\"\n        })\n      }), /*#__PURE__*/_jsxs(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: [/*#__PURE__*/_jsx(\"p\", {\n          children: \"Breakpoints no longer get Radius applied by default\"\n        }), /*#__PURE__*/_jsx(\"p\", {\n          children: /*#__PURE__*/_jsx(\"br\", {\n            className: \"trailing-break\"\n          })\n        })]\n      })]\n    }), /*#__PURE__*/_jsx(motion.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__*/_jsx(ComponentPresetsConsumer, {\n        componentIdentifier: \"module:NEd4VmDdsxM3StIUbddO/fJ8vwGe6kxfz7kj9H7Sk/YouTube.js:Youtube\",\n        children: presetProps => /*#__PURE__*/_jsx(YouTube, {\n          ...presetProps,\n          play: \"Off\",\n          shouldMute: true,\n          thumbnail: \"High Quality\",\n          url: \"https://youtu.be/-rkFVygMhus\"\n        })\n      })\n    }), /*#__PURE__*/_jsx(\"h2\", {\n      children: \"Dark and Light Themes\"\n    }), /*#__PURE__*/_jsx(\"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  v87NK7UOe: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/V7p6kJ57eFvVd2Eo126slWVh0.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/V7p6kJ57eFvVd2Eo126slWVh0.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/V7p6kJ57eFvVd2Eo126slWVh0.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/V7p6kJ57eFvVd2Eo126slWVh0.png\").href} 1600w`\n  },\n  vhLy0TtfC: \"april-updates\"\n}, {\n  b2o5HH_yA: \"2023-03-06T00:00:00.000Z\",\n  BeFKtaIcX: \"Copy Pasting, List Support, Filtering, and more.\",\n  id: \"qqT7NV6Xr\",\n  MNI4wejMU: \"What\u2019s New In The CMS\",\n  T5Nfjwoyl: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"h2\", {\n      children: \"Copy and pasting\"\n    }), /*#__PURE__*/_jsx(\"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__*/_jsx(\"h2\", {\n      children: \"List support\"\n    }), /*#__PURE__*/_jsxs(\"p\", {\n      children: [\"This release adds support for Bulleted and Numbered Lists in Text Layers and the \", /*#__PURE__*/_jsx(Link, {\n        href: \"https://www.framer.com/learn/cms/\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"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__*/_jsxs(\"ul\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"To start a new list, type a hypen or any number.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"You can nest lists as deeply as you\u2019d like.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"To exit out of a list, hinter enter twice.\"\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"h2\", {\n      children: \"Filtering\"\n    }), /*#__PURE__*/_jsx(\"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  v87NK7UOe: {\n    alt: \"Framer CMS\",\n    src: new URL(\"https://framerusercontent.com/images/1AebUjHW7VAMzbfrS0vDSHsTYA.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/1AebUjHW7VAMzbfrS0vDSHsTYA.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/1AebUjHW7VAMzbfrS0vDSHsTYA.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/1AebUjHW7VAMzbfrS0vDSHsTYA.png\").href} 1600w`\n  },\n  vhLy0TtfC: \"whats-new-in-the-cms\"\n}, {\n  b2o5HH_yA: \"2023-02-14T00:00:00.000Z\",\n  BeFKtaIcX: \"Updates to the Layer Panel, Breakpoints, and Variants.\",\n  id: \"ewX80TdyB\",\n  MNI4wejMU: \"The February Update\",\n  T5Nfjwoyl: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"h2\", {\n      children: \"New This Month\"\n    }), /*#__PURE__*/_jsx(\"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__*/_jsx(\"h2\", {\n      children: \"From January\"\n    }), /*#__PURE__*/_jsx(\"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__*/_jsxs(\"ul\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We automatically set the body background, based on your Page\u2019s fill color\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"You can now override the body background and customize per breakpoint\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We now support Min Max sizing for all Smart and Code Component\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We now consistently show the Min Max hint within the property panel\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"You can now use all alignment options for layers with Position set to Fixed\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We now inform you if a parent layer height changes due to layout edits\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We improved the Radius and Padding controls, no longer resetting values\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Number inputs split in four no longer show steppers, so longer values fit\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"We improved Appear Effects using Scale with Spring transitions\"\n        })\n      })]\n    })]\n  }),\n  v87NK7UOe: {\n    alt: \"Framer Layout\",\n    src: new URL(\"https://framerusercontent.com/images/xkWIOx7A88LxZVVydNhyCA.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/xkWIOx7A88LxZVVydNhyCA.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/xkWIOx7A88LxZVVydNhyCA.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/xkWIOx7A88LxZVVydNhyCA.png\").href} 1600w`\n  },\n  vhLy0TtfC: \"the-february-update\"\n}, {\n  b2o5HH_yA: \"2023-01-12T00:00:00.000Z\",\n  BeFKtaIcX: \"Create flexible navigations within a single page.\",\n  id: \"xOzPb1rh8\",\n  MNI4wejMU: \"Smooth and Sticky Scrolling\",\n  T5Nfjwoyl: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"h2\", {\n      children: \"Sticky positioning\"\n    }), /*#__PURE__*/_jsx(\"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__*/_jsx(\"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__*/_jsx(\"h2\", {\n      children: \"Smooth scrolling\"\n    }), /*#__PURE__*/_jsxs(\"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__*/_jsx(Link, {\n        href: \"https://targets.framer.wiki/\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"a\", {\n          children: \"remix my demo project here\"\n        })\n      }), \".\"]\n    })]\n  }),\n  v87NK7UOe: {\n    alt: \"Sticky Scroll\",\n    src: new URL(\"https://framerusercontent.com/images/aVb8Fnay2Q1IrQdLqDWYFHbnr0.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/aVb8Fnay2Q1IrQdLqDWYFHbnr0.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/aVb8Fnay2Q1IrQdLqDWYFHbnr0.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/aVb8Fnay2Q1IrQdLqDWYFHbnr0.png\").href} 1470w`\n  },\n  vhLy0TtfC: \"smooth-and-sticky-scrolling\"\n}, {\n  b2o5HH_yA: \"2022-12-16T00:00:00.000Z\",\n  BeFKtaIcX: \"Making your sites up to 2X as fast.\",\n  id: \"YMZj3Eift\",\n  MNI4wejMU: \"Improved Publishing Performance\",\n  T5Nfjwoyl: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"h2\", {\n      children: \"Pre-rendering and compression\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"This release brings two improvements that can make your site up to 2X as fast. \"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"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__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"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__*/_jsx(Link, {\n            href: \"https://github.com/google/brotli\",\n            openInNewTab: true,\n            smoothScroll: false,\n            children: /*#__PURE__*/_jsx(\"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__*/_jsx(Link, {\n            href: \"https://web.dev/lcp/\",\n            openInNewTab: true,\n            smoothScroll: false,\n            children: /*#__PURE__*/_jsx(\"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__*/_jsx(\"h2\", {\n      children: \"CSS optimization\"\n    }), /*#__PURE__*/_jsxs(\"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__*/_jsx(Link, {\n        href: \"https://esbuild.github.io/\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"a\", {\n          children: \"esbuild\"\n        })\n      }), \" instead of \", /*#__PURE__*/_jsx(Link, {\n        href: \"https://www.npmjs.com/package/csso\",\n        openInNewTab: true,\n        smoothScroll: false,\n        children: /*#__PURE__*/_jsx(\"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  v87NK7UOe: {\n    alt: \"2X Publishing\",\n    src: new URL(\"https://framerusercontent.com/images/YDg1xTe2dx7XhewmSWjnjx2XWcE.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/YDg1xTe2dx7XhewmSWjnjx2XWcE.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/YDg1xTe2dx7XhewmSWjnjx2XWcE.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/YDg1xTe2dx7XhewmSWjnjx2XWcE.png\").href} 1600w`\n  },\n  vhLy0TtfC: \"improved-publishing-performance\"\n}];\ndata.forEach(item => Object.freeze(item));\naddPropertyControls(data, {\n  MNI4wejMU: {\n    defaultValue: \"\",\n    title: \"Title\",\n    type: ControlType.String\n  },\n  BeFKtaIcX: {\n    defaultValue: \"Copy Pasting, List Support, Filtering, and more.\",\n    displayTextArea: false,\n    placeholder: \"Post Description for SEO\u2026\",\n    title: \"Description\",\n    type: ControlType.String\n  },\n  b2o5HH_yA: {\n    title: \"Date\",\n    type: ControlType.Date\n  },\n  vhLy0TtfC: {\n    title: \"Slug\",\n    type: ControlType.String\n  },\n  T5Nfjwoyl: {\n    defaultValue: \"\",\n    title: \"Content\",\n    type: ControlType.RichText\n  },\n  v87NK7UOe: {\n    __defaultAssetReference: \"data:framer/asset-reference,rlvUZruim7NVVpw48iYZqrmGbk.jpg?originalFilename=Flowers+1.jpg&preferredSize=auto\",\n    title: \"Banner\",\n    type: ControlType.ResponsiveImage\n  }\n});\ndata[\"displayName\"] = \"Blog\";\nexport default data;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"data\",\n      \"name\": \"data\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\",\n        \"framerRecordIdKey\": \"id\",\n        \"framerSlug\": \"vhLy0TtfC\",\n        \"framerData\": \"\"\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", "data", "u", "x", "p", "Link", "motion", "ComponentPresetsConsumer", "presetProps", "Youtube", "item", "addPropertyControls", "ControlType", "BzxVuWaVG_default", "__FramerMetadata__"]
}
