{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/fJ8vwGe6kxfz7kj9H7Sk/YouTube.js", "ssg:https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/zzGLuFF4YkasKl1lrsW9/YouTube.js", "ssg:https://framerusercontent.com/modules/6XmR2tJ8oXZFuaIB1dVb/M0LeBedPik17YNxKrCuX/nWZy3UnCE.js"],
  "sourcesContent": ["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 { 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                                               */\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        \"framerSupportedLayoutHeight\": \"fixed\",\n        \"framerContractVersion\": \"1\",\n        \"framerIntrinsicWidth\": \"560\",\n        \"framerIntrinsicHeight\": \"315\",\n        \"framerSupportedLayoutWidth\": \"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, 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\";\nimport { Youtube as YouTube1 } from \"https://framerusercontent.com/modules/NEd4VmDdsxM3StIUbddO/zzGLuFF4YkasKl1lrsW9/YouTube.js\"; /**\n                                                                                                                                  * @framerRecordIdKey id\n                                                                                                                                  * @framerSlug Tu_Pd0zTZ\n                                                                                                                                  * @framerData\n                                                                                                                                  */\nconst data = [{\n  DD39DBmBH: 'var(--token-c8809533-d74e-4474-af14-ef3a211efd13, rgb(253, 217, 99)) /* {\"name\":\"Yellow\"} */',\n  EZue1CzWP: \"2023-03-26T00:00:00.000Z\",\n  id: \"fJNNFSMkT\",\n  ivFLyaMNq: \"Easily change the color and style of the Emoji Picker widget to match your store!\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png\").href} 1600w`\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"EmojiReact\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"Emoji React is an innovative Shopify app that brings the power of emoji reactions to your online store. Emojis have become an integral part of online communication, and integrating them into your store can significantly enhance user experience, boost social proof, and provide valuable insights. In this post, we will discuss how to style Emoji Reactions to match your store's branding, creating a seamless and engaging shopping experience for your customers.\"\n    }), /*#__PURE__*/_jsx(\"img\", {\n      alt: \"\",\n      className: \"framer-image\",\n      \"data-framer-asset\": \"data:framer/asset-reference,jzB1kosb8y61d2I8FyPCKwZAXI.png\",\n      \"data-framer-height\": \"1030\",\n      \"data-framer-width\": \"590\",\n      height: \"515\",\n      src: new URL(\"https://framerusercontent.com/images/jzB1kosb8y61d2I8FyPCKwZAXI.png\").href,\n      style: {\n        aspectRatio: \"590 / 1030\"\n      },\n      width: \"295\"\n    }), /*#__PURE__*/_jsx(\"ol\", {\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Choose the right emoji set (see Guide on Customizing Emoji Picker)\"\n        })\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Selecting the right emojis for your store is essential to create a consistent and recognizable brand experience. Customize the emoji set within the Emoji React app to reflect your store's personality and appeal to your target audience. You can choose from the available options or create your own custom emojis to make your store stand out.\"\n    }), /*#__PURE__*/_jsx(\"ol\", {\n      start: \"2\",\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Customize the emoji picker layout\"\n        })\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"The emoji picker layout plays a crucial role in the user experience. Customize the layout by adjusting the size, shape, and style of the emoji picker. You can also rearrange the categories to prioritize the most relevant emojis for your store. Ensure that the emoji picker is user-friendly and intuitive, making it easy for your customers to leave emoji reactions.\"\n    }), /*#__PURE__*/_jsx(\"ol\", {\n      start: \"3\",\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Match your store's color scheme\"\n        })\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"To create a visually appealing and cohesive shopping experience, it is important to match the colors of the Emoji Reactions with your store's color scheme. Adjust the background, border, and icon colors to ensure that the emoji picker blends seamlessly with your store's design.\"\n    }), /*#__PURE__*/_jsx(\"ol\", {\n      start: \"4\",\n      children: /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Adjust the placement and size of Emoji Reactions\"\n        })\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"To optimize the user experience and encourage customers to interact with Emoji Reactions, consider the placement and size of the emojis on your product pages. You can position the emoji reaction section above or below the product description, next to the product image, or even within the reviews section. Additionally, adjust the size of the emojis to ensure they are easily visible without overwhelming the page layout.\"\n    })]\n  }),\n  Tu_Pd0zTZ: \"styling-emoji-picker-for-your-shopify-store\",\n  YSKHrdVc1: \"Styling Emoji Picker for Your Shopify Store\"\n}, {\n  DD39DBmBH: 'var(--token-c8809533-d74e-4474-af14-ef3a211efd13, rgb(253, 217, 99)) /* {\"name\":\"Yellow\"} */',\n  EZue1CzWP: \"2023-03-26T00:00:00.000Z\",\n  id: \"Rknmu9yG8\",\n  ivFLyaMNq: \"\uD83D\uDE80 Emoji Reaction Panel: Emoji React offers an easy-to-use reaction panel, allowing customers to choose from a wide selection of emojis to leave their feedback on your products. Customize the emojis to match your brand's personality or stick with the classics everyone knows and loves.\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/3TMBkwtAvQ7hPL6ufJuQihLewQ.png\").href} 1600w`\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"EmojiReact\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"Follow these simple steps to customize the emoji picker categories and settings for your Emoji React Shopify app, ensuring a unique and brand-aligned experience for your customers.\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Log in to your Shopify store: Sign in to your Shopify account and navigate to the admin dashboard.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Access the Emoji React app: From the dashboard, click on \"Apps\" in the left-hand menu. Find the Emoji React app in the list and click on it to access the app settings.'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Open the Emoji Picker settings: Once you\\'ve opened the Emoji React app, locate the \"Emoji Picker Settings\" section in the app settings page.'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Customize emoji categories: To customize the emoji categories, follow these steps:\"\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"img\", {\n      alt: \"\",\n      className: \"framer-image\",\n      \"data-framer-asset\": \"data:framer/asset-reference,1tHTpuAITClEk30YA9rbZFjstJw.png\",\n      \"data-framer-height\": \"1518\",\n      \"data-framer-width\": \"2598\",\n      height: \"759\",\n      src: new URL(\"https://framerusercontent.com/images/1tHTpuAITClEk30YA9rbZFjstJw.png\").href,\n      style: {\n        aspectRatio: \"2598 / 1518\"\n      },\n      width: \"1299\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: 'a. Toggle the categories you want to enable or disable.  Then press \"Save.\"'\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: 'b. Add Custom Emojis: Click on the Emojis tab and click \"Add Custom Emoji\".  Upload an image and it will show up in your custom emojis category.'\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"c. Even more customization options are available in the various configuration tabs!\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube, {\n        borderRadius: 0,\n        bottomLeftRadius: 0,\n        bottomRightRadius: 0,\n        isMixedBorderRadius: false,\n        isRed: true,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"Medium Quality\",\n        topLeftRadius: 0,\n        topRightRadius: 0,\n        url: \"https://youtu.be/lv0x4lvKql0\"\n      })\n    })]\n  }),\n  Tu_Pd0zTZ: \"customize-emoji-picker-settings-add-custom-emojis\",\n  YSKHrdVc1: \"Customize Emoji Picker Settings - Add Custom Emojis\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(116, 33, 252)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-07T00:00:00.000Z\",\n  id: \"F1_yRNKWp\",\n  ivFLyaMNq: \"Get started with CopyHero and start AI generating copy for Shopify products, blogs & more.\",\n  kBAWMceDj: {\n    alt: \"CopyHero - AI Powered Shopify Product Writer\",\n    src: new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg\").href} 1600w`\n  },\n  oblsMPwoB: true,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"It's easy to use CopyHero, the Shopify app for generating AI copy for product descriptions, blog articles and more.\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Install the CopyHero app from the Shopify App Store.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Log in to your Shopify store and select a Product, Collection, or Blog post.\"\n        })\n      }), /*#__PURE__*/_jsxs(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: [/*#__PURE__*/_jsxs(\"p\", {\n          children: ['Navigate to the \"More actions\" menu in the top right.', /*#__PURE__*/_jsx(\"br\", {}), /*#__PURE__*/_jsx(\"br\", {\n            className: \"trailing-break\"\n          })]\n        }), /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          className: \"framer-image\",\n          \"data-framer-asset\": \"data:framer/asset-reference,LpXC8NyqK5USB9kb1RETTWy37A.png\",\n          \"data-framer-height\": \"744\",\n          \"data-framer-width\": \"938\",\n          height: \"372\",\n          src: new URL(\"https://framerusercontent.com/images/LpXC8NyqK5USB9kb1RETTWy37A.png\").href,\n          style: {\n            aspectRatio: \"938 / 744\"\n          },\n          width: \"469\"\n        })]\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Select the CopyHero app from the list of available options.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"The AI writing process will start immediately, wait a few seconds - and boom!  Your copy is ready.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"You can edit the copy as needed to make it more accurate or to match your desired tone and style.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'When you are satisfied with the final version of the copy, click the \"Publish\" button to make it live on your website or store.'\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"That's it! You're now ready to use CopyHero to generate high-quality AI copy for your business.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"If you're stuck - check out this video to follow along!\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 20,\n        bottomLeftRadius: 20,\n        bottomRightRadius: 20,\n        isMixedBorderRadius: false,\n        isRed: false,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 20,\n        topRightRadius: 20,\n        url: \"https://www.youtube.com/watch?v=1WG-yVMQ8GY\"\n      })\n    })]\n  }),\n  Tu_Pd0zTZ: \"ai-write-content-shopify-admin\",\n  YSKHrdVc1: \"How to use AI to Write Content in Shopify Admin\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-07T00:00:00.000Z\",\n  id: \"z3Xy8f1nD\",\n  ivFLyaMNq: \"CopyHero allows for easy customization of the AI's writing style\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/oA6Dr9V6gwMX6AHdpzcfuo1nuS0.svg\").href\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"It's straightforward to customize your AI's copywriting settings in CopyHero.  Just click \\\"Settings\\\" in the CopyHero app.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Adjust preferences like:\"\n    }), /*#__PURE__*/_jsxs(\"ul\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Copy Length\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Brand Tone & Voice\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Add Context about your Store\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Use emojies\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"& more\"\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Check out the video to see it in action. \"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 20,\n        bottomLeftRadius: 20,\n        bottomRightRadius: 20,\n        isMixedBorderRadius: false,\n        isRed: false,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 20,\n        topRightRadius: 20,\n        url: \"https://youtu.be/EB-95nlQ8LQ\"\n      })\n    }), /*#__PURE__*/_jsx(\"h2\", {\n      children: \"Need more Customization?\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"If you want to have additional settings, feel free to submit a feature request (use the feature request button at the bottom of the app)!\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Or - use the Custom Prompt Shopify Flow action to use custom AI responses.\"\n    })]\n  }),\n  Tu_Pd0zTZ: \"customize-ai-writing-style\",\n  YSKHrdVc1: \"Customizing Your AI Copy Settings\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-07T00:00:00.000Z\",\n  id: \"JMoO9uPhs\",\n  ivFLyaMNq: \"Instantly write Product Copy and Product bullet point highlights with CopyHero\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/KGjf8POiit0rI0KRbehfo63GNrk.svg\").href\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"It's easy to use CopyHero, the Shopify app for generating AI copy for product descriptions and highlights.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"There are multiple ways to generate copy:\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      children: [/*#__PURE__*/_jsxs(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: [/*#__PURE__*/_jsxs(\"p\", {\n          children: [\"From \", /*#__PURE__*/_jsxs(\"strong\", {\n            children: [\"Product Detail Pages > More Actions (top right)\", /*#__PURE__*/_jsx(\"br\", {})]\n          })]\n        }), /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          className: \"framer-image\",\n          \"data-framer-asset\": \"data:framer/asset-reference,qQMwu6kdQ6uKKobvsp6woLQum00.png\",\n          \"data-framer-height\": \"370\",\n          \"data-framer-width\": \"576\",\n          height: \"185\",\n          src: new URL(\"https://framerusercontent.com/images/qQMwu6kdQ6uKKobvsp6woLQum00.png\").href,\n          style: {\n            aspectRatio: \"576 / 370\"\n          },\n          width: \"288\"\n        }), /*#__PURE__*/_jsx(\"p\", {\n          children: /*#__PURE__*/_jsx(\"br\", {\n            className: \"trailing-break\"\n          })\n        })]\n      }), /*#__PURE__*/_jsxs(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: [/*#__PURE__*/_jsxs(\"p\", {\n          children: [\"Or - you can Select Multiple Products from the \", /*#__PURE__*/_jsx(\"strong\", {\n            children: \"Product Overview > Click on Apps > Click CopyHero's Bulk Write\"\n          })]\n        }), /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          className: \"framer-image\",\n          \"data-framer-asset\": \"data:framer/asset-reference,csGIjTTKnQvwu7j7s6epPY7ci0.png\",\n          \"data-framer-height\": \"320\",\n          \"data-framer-width\": \"1050\",\n          height: \"160\",\n          src: new URL(\"https://framerusercontent.com/images/csGIjTTKnQvwu7j7s6epPY7ci0.png\").href,\n          style: {\n            aspectRatio: \"1050 / 320\"\n          },\n          width: \"525\"\n        })]\n      })]\n    }), /*#__PURE__*/_jsxs(\"p\", {\n      children: [/*#__PURE__*/_jsx(\"br\", {}), \"And boom - CopyHero will start to write some content.\"]\n    }), /*#__PURE__*/_jsxs(\"p\", {\n      children: [/*#__PURE__*/_jsx(\"em\", {\n        children: /*#__PURE__*/_jsxs(\"strong\", {\n          children: [\"Pro Tip: You can adjust your settings & brand voice, copy length, and more > Click Settings\", /*#__PURE__*/_jsx(\"br\", {}), /*#__PURE__*/_jsx(\"br\", {})]\n        })\n      }), \"Follow along with our Video Demo!\"]\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 20,\n        bottomLeftRadius: 20,\n        bottomRightRadius: 20,\n        isMixedBorderRadius: false,\n        isRed: false,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 20,\n        topRightRadius: 20,\n        url: \"https://www.youtube.com/watch?v=1WG-yVMQ8GY\"\n      })\n    })]\n  }),\n  Tu_Pd0zTZ: \"shopify-automatic-product-description-writer\",\n  YSKHrdVc1: \"AI Write Product Descriptions & Highlights on Shopify\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-07T00:00:00.000Z\",\n  id: \"whd8qEh1E\",\n  ivFLyaMNq: \"Restore and backup product descriptions and copy via CopyHero.  Included by default, even on our free plan!\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/g5azlABA0uVuH6oPhAIcmR8FXs.jpg\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/g5azlABA0uVuH6oPhAIcmR8FXs.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/g5azlABA0uVuH6oPhAIcmR8FXs.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/g5azlABA0uVuH6oPhAIcmR8FXs.jpg\").href} 1600w`\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"Accidentally deleting a product description on your Shopify store can be a frustrating and time-consuming mistake. Not only do you have to spend time recreating the description, but you also risk losing valuable search engine rankings and sales if the description is not restored quickly.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"That's where CopyHero comes in. As a Shopify app designed to generate AI copy for businesses, CopyHero also has a useful feature for recovering and restoring accidentally deleted product descriptions.\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 0,\n        bottomLeftRadius: 0,\n        bottomRightRadius: 0,\n        isMixedBorderRadius: false,\n        isRed: true,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 0,\n        topRightRadius: 0,\n        url: \"https://youtu.be/IlE6uYNMpaA\"\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Here's how it works:\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Log in to your Shopify Admin and find the product you want to restore content for.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Select the \"Write Descriptions\" option from the More Actions dropdown (top right).'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'CopyHero will load - now click on the \"History\" tab'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [\"All previous saved product descriptions will appear!\", /*#__PURE__*/_jsx(\"br\", {}), \"* (since CopyHero was installed - we can't recover content deleted before CopyHero was installed)\"]\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Click \"Restore\" to use the previous description!'\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"The ability to recover and restore accidentally deleted product descriptions is a game-changer for Shopify merchants. Not only does it save time and hassle, but it also helps to minimize the potential losses that can occur when a product description is missing from your store.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"With CopyHero's recovery feature, you can rest easy knowing that you have a reliable and efficient way to restore lost product descriptions. This can give you more confidence and peace of mind as you manage your online store, knowing that you have a powerful tool to help you overcome unexpected setbacks.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"In conclusion, CopyHero's product description recovery feature is an invaluable asset for any Shopify merchant. Whether you're dealing with a simple mistake or a more complex issue, this tool can help you get your store back up and running smoothly in no time.\"\n    })]\n  }),\n  Tu_Pd0zTZ: \"recover-deleted-shopify-product-descriptions\",\n  YSKHrdVc1: \"Recover Deleted Product Descriptions with CopyHero\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-07T00:00:00.000Z\",\n  id: \"YvTXWxMIf\",\n  ivFLyaMNq: \"CopyHero enables completely custom templated prompts & automation with our Shopify app.\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/GDH0ARzE5JKmCQ1UbIYXlYasaw.svg\").href\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"As a business owner, it's important to keep your online store up-to-date and engaging for your customers. One way to do this is by regularly adding new content, such as product descriptions, blog articles, and more. But creating high-quality content on a consistent basis can be time-consuming and challenging, especially if you're juggling multiple tasks and responsibilities.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"That's where CopyHero comes in. As a Shopify app designed to generate AI copy for businesses, CopyHero offers a powerful feature called custom prompts that can help automate and completely customize the content creation process.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Your imagination is the limit!\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 0,\n        bottomLeftRadius: 0,\n        bottomRightRadius: 0,\n        isMixedBorderRadius: false,\n        isRed: true,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 0,\n        topRightRadius: 0,\n        url: \"https://youtu.be/NrCn0-9xf04\"\n      })\n    }), /*#__PURE__*/_jsx(\"h3\", {\n      children: \"How to Setup a Custom Action using Shopify Flow\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [/*#__PURE__*/_jsx(Link, {\n            href: \"https://apps.shopify.com/flow\",\n            openInNewTab: true,\n            smoothScroll: false,\n            children: /*#__PURE__*/_jsx(\"a\", {\n              children: \"Install the Shopify Flow App\"\n            })\n          }), \" if you don't already have it!\"]\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Setup a trigger of your choice in Shopify Flow (we used \"Product Created\" in the demo video)'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [\"When you are ready to use the CopyHero AI, select \", /*#__PURE__*/_jsx(\"strong\", {\n            children: \"CopyHero -> AI Write Content\"\n          }), \" as the action.\"]\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"h3\", {\n      children: \"Required Action Inputs\"\n    }), /*#__PURE__*/_jsxs(\"ul\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [/*#__PURE__*/_jsx(\"strong\", {\n            children: \"ID\"\n          }), \" - Select variables, choose the ID variable for the product, collection, or article.\"]\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [/*#__PURE__*/_jsx(\"strong\", {\n            children: \"Update Field\"\n          }), \" - Enter the field the populate the AI response into.\"]\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [/*#__PURE__*/_jsx(\"strong\", {\n            children: \"Prompt\"\n          }), \" - This is where the magic happens! Give a command to the AI, you can use variables or anything in here!\"]\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsxs(\"p\", {\n          children: [/*#__PURE__*/_jsx(\"strong\", {\n            children: \"Update Method\"\n          }), \" - Choose whether the response from the AI should be appended (inserted at the beginning), prepended (inserted at the end), or replace the current \", /*#__PURE__*/_jsx(\"strong\", {\n            children: \"Update Field\"\n          })]\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: /*#__PURE__*/_jsx(\"br\", {\n        className: \"trailing-break\"\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"With custom prompts and automation, CopyHero makes it easy to keep your online store fresh and engaging for your customers. You can set it up once and let the AI handle the rest, freeing up your time to focus on other important tasks.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"But custom prompts and automation aren't just convenient \u2013 they can also help improve the quality of your content. By providing clear and specific prompts, you can guide the AI to generate more accurate and relevant content that resonates with your target audience.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Overall, custom prompts and automation are valuable tools that can help you streamline and optimize your content creation process. With CopyHero, you can easily generate high-quality content on a consistent basis, helping to grow and engage your audience.\"\n    })]\n  }),\n  Tu_Pd0zTZ: \"shopify-custom-ai-prompts-automation\",\n  YSKHrdVc1: \"No-Code Custom AI Prompts for Shopify Merchants\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-04T00:00:00.000Z\",\n  id: \"OeBwreSZ1\",\n  ivFLyaMNq: \"CopyHero enables Shopify merchants to instantly create high converting product highlights.\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg?scale-down-to=1024\").href} 1024w, ${new URL(\"https://framerusercontent.com/images/fuvd6lCWeLQ3EIQdZR3DcdagU.jpg\").href} 1600w`\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"It's easy to use CopyHero, to generate product highlights & summaries.\"\n    }), /*#__PURE__*/_jsx(\"ol\", {\n      children: /*#__PURE__*/_jsxs(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: [/*#__PURE__*/_jsxs(\"p\", {\n          children: [\"Go to your \", /*#__PURE__*/_jsxs(\"strong\", {\n            children: [\"Product Detail Pages > More Actions (top right)\", /*#__PURE__*/_jsx(\"br\", {})]\n          })]\n        }), /*#__PURE__*/_jsx(\"img\", {\n          alt: \"\",\n          className: \"framer-image\",\n          \"data-framer-asset\": \"data:framer/asset-reference,qQMwu6kdQ6uKKobvsp6woLQum00.png\",\n          \"data-framer-height\": \"370\",\n          \"data-framer-width\": \"576\",\n          height: \"185\",\n          src: new URL(\"https://framerusercontent.com/images/qQMwu6kdQ6uKKobvsp6woLQum00.png\").href,\n          style: {\n            aspectRatio: \"576 / 370\"\n          },\n          width: \"288\"\n        })]\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Follow along in this demo video:\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 0,\n        bottomLeftRadius: 0,\n        bottomRightRadius: 0,\n        isMixedBorderRadius: false,\n        isRed: true,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"Medium Quality\",\n        topLeftRadius: 0,\n        topRightRadius: 0,\n        url: \"https://youtu.be/KbHtj2r_aNY\"\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: /*#__PURE__*/_jsx(\"br\", {\n        className: \"trailing-break\"\n      })\n    }), /*#__PURE__*/_jsx(\"h3\", {\n      children: \"Why it's important to have Product Highlights\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Product highlights, also known as bullet points or product features, are short and concise statements that highlight the key benefits and features of a product. They are an effective way to grab a customer's attention and quickly communicate the value of a product.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"That's why CopyHero's ability to generate product highlights is such an important and helpful feature for merchants. By using AI to analyze a product and its target audience, CopyHero can automatically generate a list of relevant and compelling product highlights that can be used in product descriptions, marketing materials, and more.\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Here are a few reasons why product highlights are important and how CopyHero can help:\"\n    }), /*#__PURE__*/_jsxs(\"ul\", {\n      style: {\n        \"--framer-font-size\": \"16px\",\n        \"--framer-text-alignment\": \"start\",\n        \"--framer-text-color\": \"rgb(209, 213, 219)\",\n        \"--framer-text-transform\": \"none\"\n      },\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Product highlights help customers quickly understand the value of a product. When shopping online, customers often have limited time and attention to spare. By presenting them with a clear and concise list of product highlights, you can help them quickly understand what makes your product unique and worth purchasing.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Product highlights can improve search engine rankings. By including relevant keywords and phrases in your product highlights, you can improve the visibility and searchability of your products. This can help drive more traffic and sales to your online store.\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Product highlights can increase conversions. By highlighting the key features and benefits of a product, you can persuade more customers to make a purchase. This can be especially helpful for products that are more complex or require more explanation.\"\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"In conclusion, product highlights are an important and effective way to communicate the value of a product to customers. By using CopyHero to generate product highlights, you can save time and effort while also improving the quality and effectiveness of your product descriptions.\"\n    })]\n  }),\n  Tu_Pd0zTZ: \"generate-product-highlights-bullet-point-summaries-with-ai\",\n  YSKHrdVc1: \"Generate Product Highlights & Bullet Point Summaries with AI\"\n}, {\n  DD39DBmBH: 'var(--token-2e606580-c5cb-45c2-a66e-07cb8dbe5a38, rgb(100, 92, 255)) /* {\"name\":\"Purple\"} */',\n  EZue1CzWP: \"2023-01-05T00:00:00.000Z\",\n  id: \"d5EmPv2XU\",\n  ivFLyaMNq: \"Bulk writing descriptions is easy, right within Shopify Admin.\",\n  kBAWMceDj: {\n    alt: \"\",\n    src: new URL(\"https://framerusercontent.com/images/rKDVczU0zx4IltxLOcATESphs.jpg\").href,\n    srcSet: `${new URL(\"https://framerusercontent.com/images/rKDVczU0zx4IltxLOcATESphs.jpg?scale-down-to=512\").href} 512w, ${new URL(\"https://framerusercontent.com/images/rKDVczU0zx4IltxLOcATESphs.jpg\").href} 960w`\n  },\n  oblsMPwoB: false,\n  PPeTwl1b8: \"CopyHero\",\n  t7b0AvdZM: /*#__PURE__*/_jsxs(React.Fragment, {\n    children: [/*#__PURE__*/_jsx(\"p\", {\n      children: \"You can easily write Bulk Product Descriptions on Shopify using CopyHero.  \"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Simply go to the Products overview page, then:\"\n    }), /*#__PURE__*/_jsxs(\"ol\", {\n      children: [/*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Select the products you want to generate descriptions for\"\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: 'Click the \"\u2026\" or \"More Actions\" button at the toolbar'\n        })\n      }), /*#__PURE__*/_jsx(\"li\", {\n        \"data-preset-tag\": \"p\",\n        children: /*#__PURE__*/_jsx(\"p\", {\n          children: \"Choose CopyHero's Write Descriptions action under Apps\"\n        })\n      })]\n    }), /*#__PURE__*/_jsx(\"img\", {\n      alt: \"\",\n      className: \"framer-image\",\n      \"data-framer-asset\": \"data:framer/asset-reference,csGIjTTKnQvwu7j7s6epPY7ci0.png\",\n      \"data-framer-height\": \"320\",\n      \"data-framer-width\": \"1050\",\n      height: \"160\",\n      src: new URL(\"https://framerusercontent.com/images/csGIjTTKnQvwu7j7s6epPY7ci0.png\").href,\n      style: {\n        aspectRatio: \"1050 / 320\"\n      },\n      width: \"525\"\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: /*#__PURE__*/_jsx(\"br\", {\n        className: \"trailing-break\"\n      })\n    }), /*#__PURE__*/_jsx(\"p\", {\n      children: \"Want to follow along in a video?\"\n    }), /*#__PURE__*/_jsx(motion.div, {\n      className: \"framer-text-module\",\n      style: {\n        \"--aspect-ratio\": \"560 / 315\",\n        aspectRatio: \"var(--aspect-ratio)\",\n        height: \"var(--framer-aspect-ratio-supported, 315px)\",\n        width: \"100%\"\n      },\n      children: /*#__PURE__*/_jsx(YouTube1, {\n        borderRadius: 20,\n        bottomLeftRadius: 20,\n        bottomRightRadius: 20,\n        isMixedBorderRadius: false,\n        isRed: false,\n        play: \"Off\",\n        shouldMute: true,\n        thumbnail: \"High Quality\",\n        topLeftRadius: 20,\n        topRightRadius: 20,\n        url: \"https://youtu.be/WzhhEFKL-DI\"\n      })\n    })]\n  }),\n  Tu_Pd0zTZ: \"use-ai-to-bulk-write-shopify-product-descriptions\",\n  YSKHrdVc1: \"Use AI to Bulk Write Shopify Product Descriptions\"\n}];\ndata.forEach(item => Object.freeze(item));\naddPropertyControls(data, {\n  oblsMPwoB: {\n    defaultValue: false,\n    title: \"Featured\",\n    type: ControlType.Boolean\n  },\n  DD39DBmBH: {\n    defaultValue: 'var(--token-bd377b4b-bd02-4975-a6e5-f4242e212fba, rgb(78, 204, 207)) /* {\"name\":\"Green\"} */',\n    title: \"Accent\",\n    type: ControlType.Color\n  },\n  PPeTwl1b8: {\n    defaultValue: \"\",\n    title: \"Category\",\n    type: ControlType.String\n  },\n  YSKHrdVc1: {\n    defaultValue: \"\",\n    title: \"Title\",\n    type: ControlType.String\n  },\n  ivFLyaMNq: {\n    defaultValue: \"\",\n    title: \"Short Description\",\n    type: ControlType.String\n  },\n  kBAWMceDj: {\n    title: \"Image\",\n    type: ControlType.ResponsiveImage\n  },\n  EZue1CzWP: {\n    title: \"Date\",\n    type: ControlType.Date\n  },\n  Tu_Pd0zTZ: {\n    title: \"Slug\",\n    type: ControlType.String\n  },\n  t7b0AvdZM: {\n    defaultValue: \"\",\n    title: \"Content\",\n    type: ControlType.RichText\n  }\n});\ndata[\"displayName\"] = \"Guides\";\nexport default data;\nexport const __FramerMetadata__ = {\n  \"exports\": {\n    \"default\": {\n      \"type\": \"data\",\n      \"name\": \"data\",\n      \"annotations\": {\n        \"framerContractVersion\": \"1\",\n        \"framerData\": \"\",\n        \"framerSlug\": \"Tu_Pd0zTZ\",\n        \"framerRecordIdKey\": \"id\"\n      }\n    },\n    \"__FramerMetadata__\": {\n      \"type\": \"variable\"\n    }\n  }\n};"],
  "mappings": "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",
  "names": ["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", "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", "motion", "Youtube", "Link", "item", "addPropertyControls", "ControlType", "nWZy3UnCE_default", "__FramerMetadata__"]
}
