{"version":3,"file":"microlink.min.mjs","sources":["../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/@babel+runtime@7.29.2/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../../node_modules/.pnpm/@microlink+hover-react@5.5.24_react-dom@18.3.1_react@18.3.1__react@18.3.1_styled-compon_0c22e63dd01551b82db1de3d340dbc13/node_modules/@microlink/hover-react/dist/microlink.mjs","../../../node_modules/.pnpm/is-local-address@2.0.0/node_modules/is-local-address/src/index.js","../../../node_modules/.pnpm/is-local-address@2.0.0/node_modules/is-local-address/src/ipv4.js","../../../node_modules/.pnpm/is-local-address@2.0.0/node_modules/is-local-address/src/ipv6.js","../src/index.js"],"sourcesContent":["function _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nexport { _typeof as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n  if (\"object\" != _typeof(t) || !t) return t;\n  var e = t[Symbol.toPrimitive];\n  if (void 0 !== e) {\n    var i = e.call(t, r || \"default\");\n    if (\"object\" != _typeof(i)) return i;\n    throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n  }\n  return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n  return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n    value: t,\n    enumerable: !0,\n    configurable: !0,\n    writable: !0\n  }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nfunction _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nexport { _objectWithoutProperties as default };","function _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","function _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _taggedTemplateLiteral(e, t) {\n  return t || (t = e.slice(0)), Object.freeze(Object.defineProperties(e, {\n    raw: {\n      value: Object.freeze(t)\n    }\n  }));\n}\nexport { _taggedTemplateLiteral as default };","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _extends from '@babel/runtime/helpers/extends';\nimport React, { forwardRef, useContext, createElement, useRef, useMemo, useCallback, useEffect, useState } from 'react';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';\nimport styled$1, { styled, css, keyframes } from 'styled-components';\nimport { fetchFromApi, getApiUrl as getApiUrl$1 } from '@microlink/mql';\n\nconst _excluded$8 = [\"accessibility\", \"debounce\", \"ellipsis\", \"is\", \"lines\", \"text\"];\nfunction ownKeys$4(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$4(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nconst l = _ref => {\n  let {\n      accessibility: l = true,\n      debounce: o = 300,\n      ellipsis: u = \"…\",\n      is: c = \"div\",\n      lines: s = 3,\n      text: d\n    } = _ref,\n    v = _objectWithoutProperties(_ref, _excluded$8);\n  const a = useRef(null),\n    f = useRef(\".\"),\n    h = _objectSpread$4(_objectSpread$4({\n      ref: a\n    }, l ? {\n      title: d\n    } : {}), v),\n    g = useMemo(() => \"string\" == typeof d && d.length > 0, [d]),\n    m = useCallback(() => {\n      var e, t, n, r;\n      if (!g) return;\n      const i = e => {\n        f.current = e, null != a.current && (a.current.innerText = e);\n      };\n      i(\".\");\n      const l = ((null !== (t = null === (e = a.current) || void 0 === e ? void 0 : e.clientHeight) && void 0 !== t ? t : 0) + 1) * s + 1,\n        o = \"…\" === u ? 5 : 1.2 * u.length;\n      let c = 0,\n        v = 0,\n        h = d.length;\n      for (; c <= h;) {\n        v = Math.floor((c + h) / 2);\n        if (i(d.slice(0, v)), v === d.length) return;\n        (null !== (r = null === (n = a.current) || void 0 === n ? void 0 : n.clientHeight) && void 0 !== r ? r : 0) <= l ? c = v + 1 : h = v - 1;\n      }\n      i(d.slice(0, Math.max(v - o, 0)).trim() + u);\n    }, [u, g, s, d]);\n  return useEffect(() => {\n    m();\n    const e = ((e, t) => {\n      let n;\n      const r = () => {\n        n = void 0, e();\n      };\n      return () => {\n        const i = null == n;\n        clearTimeout(n), n = setTimeout(r, t), i && e();\n      };\n    })(m, o);\n    return window.addEventListener(\"resize\", e), () => window.removeEventListener(\"resize\", e);\n  }, [m, o]), g ? /*#__PURE__*/createElement(c, h, f.current) : null;\n};\nfunction getDefaultExportFromCjs(x) {\n  return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\nvar ipv4 = {\n  exports: {}\n};\nvar hasRequiredIpv4;\nfunction requireIpv4() {\n  if (hasRequiredIpv4) return ipv4.exports;\n  hasRequiredIpv4 = 1;\n  const IP_RANGES = [\n  // 10.0.0.0 - 10.255.255.255\n  /^(:{2}f{4}:)?10(?:\\.\\d{1,3}){3}$/,\n  // 127.0.0.0 - 127.255.255.255\n  /^(:{2}f{4}:)?127(?:\\.\\d{1,3}){3}$/,\n  // 169.254.1.0 - 169.254.254.255\n  /^(::f{4}:)?169\\.254\\.([1-9]|1?\\d\\d|2[0-4]\\d|25[0-4])\\.\\d{1,3}$/,\n  // 172.16.0.0 - 172.31.255.255\n  /^(:{2}f{4}:)?(172\\.1[6-9]|172\\.2\\d|172\\.3[01])(?:\\.\\d{1,3}){2}$/,\n  // 192.168.0.0 - 192.168.255.255\n  /^(:{2}f{4}:)?192\\.168(?:\\.\\d{1,3}){2}$/,\n  // fc00::/7\n  /^f[cd][\\da-f]{2}(::1$|:[\\da-f]{1,4}){1,7}$/,\n  // fe80::/10s\n  /^fe[89ab][\\da-f](::1$|:[\\da-f]{1,4}){1,7}$/,\n  // localhost in IPv4\n  /^localhost$|^0\\.0\\.0\\.0$/];\n  const regex = new RegExp(\"^(\".concat(IP_RANGES.map(re => re.source).join('|'), \")$\"));\n  ipv4.exports = regex.test.bind(regex);\n  ipv4.exports.regex = regex;\n  return ipv4.exports;\n}\nvar ipv6 = {\n  exports: {}\n};\nvar hasRequiredIpv6;\nfunction requireIpv6() {\n  if (hasRequiredIpv6) return ipv6.exports;\n  hasRequiredIpv6 = 1;\n  const IP_RANGES = [\n  // localhost in IPv6\n  /^\\[(::1|::)\\]$/];\n  const regex = new RegExp(\"^(\".concat(IP_RANGES.map(re => re.source).join('|'), \")$\"));\n  ipv6.exports = regex.test.bind(regex);\n  ipv6.exports.regex = regex;\n  return ipv6.exports;\n}\nvar src = hostname => requireIpv4()(hostname) || requireIpv6()(hostname);\nvar isLocalAddress = /*@__PURE__*/getDefaultExportFromCjs(src);\nvar _templateObject$i, _templateObject2$e;\nconst isSSR = typeof window === 'undefined';\nconst castArray = value => [].concat(value);\nconst getPreferredMedia = (data, mediaProps) => {\n  let prefer;\n  for (let index = 0; index < mediaProps.length; index++) {\n    const key = mediaProps[index];\n    const value = data[key];\n    if (!isNil(value)) {\n      prefer = key;\n      break;\n    }\n  }\n  return prefer;\n};\nconst isFunction = fn => typeof fn === 'function';\nconst isObject = obj => typeof obj === 'object';\nconst isNil = value => value == null;\nconst getUrlPath = data => isObject(data) ? data.url : data;\nconst someProp = (data, props) => data[props.find(prop => !isNil(data[prop]))];\nconst media = {\n  mobile: function () {\n    return css(_templateObject$i || (_templateObject$i = _taggedTemplateLiteral([\"\\n    @media (max-width: 48em) {\\n      \", \";\\n    }\\n  \"])), css(...arguments));\n  },\n  desktop: function () {\n    return css(_templateObject2$e || (_templateObject2$e = _taggedTemplateLiteral([\"\\n    @media (min-width: 48em) {\\n      \", \";\\n    }\\n  \"])), css(...arguments));\n  }\n};\nconst getApiUrl = _ref => {\n  let {\n    apiKey,\n    contrast = false,\n    data,\n    endpoint,\n    force,\n    headers,\n    media,\n    prerender,\n    proxy,\n    ttl,\n    url\n  } = _ref;\n  return getApiUrl$1(url, {\n    apiKey,\n    audio: media.includes('audio'),\n    data,\n    endpoint,\n    force,\n    headers,\n    iframe: media.includes('iframe'),\n    palette: contrast,\n    prerender,\n    proxy,\n    screenshot: media.includes('screenshot'),\n    ttl,\n    video: media.includes('video')\n  });\n};\nconst isLarge = cardSize => cardSize === 'large';\nconst isSmall = cardSize => cardSize === 'small';\nconst imageProxy = url => isLocalAddress(new URL(url).hostname) ? url : \"https://images.weserv.nl/?\".concat(new URLSearchParams({\n  url,\n  default: url,\n  l: 9,\n  af: '',\n  il: '',\n  n: -1\n}).toString());\nconst isLazySupported = !isSSR && 'IntersectionObserver' in window;\nconst formatSeconds = secs => {\n  const secsToNum = parseInt(secs, 10);\n  const hours = Math.floor(secsToNum / 3600);\n  const minutes = Math.floor(secsToNum / 60) % 60;\n  const seconds = secsToNum % 60;\n  return [hours, minutes, seconds].filter((v, i) => v > 0 || i > 0).map(v => v >= 10 ? v : \"0\".concat(v)).join(':');\n};\nconst clampNumber = (num, min, max) => {\n  switch (true) {\n    case num <= min:\n      return min;\n    case num >= max:\n      return max;\n    default:\n      return num;\n  }\n};\nconst BASE_CLASSNAME = 'microlink_card';\nconst CONTENT_BASE_CLASSNAME = \"\".concat(BASE_CLASSNAME, \"__content\");\nconst MEDIA_BASE_CLASSNAME = \"\".concat(BASE_CLASSNAME, \"__media\");\nconst CONTROLS_BASE_CLASSNAME = \"\".concat(MEDIA_BASE_CLASSNAME, \"__controls\");\nconst classNames = {\n  main: BASE_CLASSNAME,\n  content: CONTENT_BASE_CLASSNAME,\n  title: \"\".concat(CONTENT_BASE_CLASSNAME, \"_title\"),\n  description: \"\".concat(CONTENT_BASE_CLASSNAME, \"_description\"),\n  url: \"\".concat(CONTENT_BASE_CLASSNAME, \"_url\"),\n  mediaWrapper: \"\".concat(MEDIA_BASE_CLASSNAME, \"_wrapper\"),\n  media: MEDIA_BASE_CLASSNAME,\n  image: \"\".concat(MEDIA_BASE_CLASSNAME, \"_image\"),\n  videoWrapper: \"\".concat(MEDIA_BASE_CLASSNAME, \"_video_wrapper\"),\n  video: \"\".concat(MEDIA_BASE_CLASSNAME, \"_video\"),\n  audioWrapper: \"\".concat(MEDIA_BASE_CLASSNAME, \"_audio_wrapper\"),\n  audio: \"\".concat(MEDIA_BASE_CLASSNAME, \"_audio\"),\n  mediaControls: CONTROLS_BASE_CLASSNAME,\n  playbackControl: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_playback\"),\n  volumeControl: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_volume\"),\n  rwControl: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_rewind\"),\n  ffwControl: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_fast_forward\"),\n  rateControl: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_rate\"),\n  progressBar: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_progress_bar\"),\n  progressTime: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_progress_time\"),\n  spinner: \"\".concat(CONTROLS_BASE_CLASSNAME, \"_spinner\"),\n  iframe: \"\".concat(BASE_CLASSNAME, \"__iframe\")\n};\nconst _excluded$7 = [\"useNanoClamp\", \"children\"];\nvar _templateObject$h, _templateObject2$d;\nfunction ownKeys$3(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$3(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nconst Clamp = _ref => {\n  let {\n    children,\n    className,\n    lines\n  } = _ref;\n  return isNil(children) ? null : /*#__PURE__*/React.createElement(l, {\n    className: className,\n    lines: lines,\n    text: children,\n    is: \"p\"\n  });\n};\nconst StyledClamp = styled(Clamp)(_templateObject$h || (_templateObject$h = _taggedTemplateLiteral([\"\\n  &&& {\\n    text-align: inherit;\\n    font-weight: inherit;\\n    font-family: inherit;\\n    color: inherit;\\n    margin: 0;\\n\\n    \", \"\\n  }\\n\"])), _ref2 => {\n  let {\n    $useNanoClamp\n  } = _ref2;\n  return !$useNanoClamp && css(_templateObject2$d || (_templateObject2$d = _taggedTemplateLiteral([\"\\n        overflow: hidden;\\n        white-space: nowrap;\\n        text-overflow: ellipsis;\\n      \"])));\n});\nconst CardText = _ref3 => {\n  let {\n      useNanoClamp = true,\n      children\n    } = _ref3,\n    props = _objectWithoutProperties(_ref3, _excluded$7);\n  const textProps = useNanoClamp ? props : _objectSpread$3(_objectSpread$3({}, props), {}, {\n    as: 'p',\n    title: children\n  });\n  return /*#__PURE__*/React.createElement(StyledClamp, _extends({\n    $useNanoClamp: useNanoClamp\n  }, textProps), children);\n};\nconst speed = {\n  short: '100ms',\n  medium: '150ms',\n  long: '300ms'\n};\nconst animation = {\n  short: 'cubic-bezier(.25,.8,.25,1)',\n  medium: 'cubic-bezier(.25,.8,.25,1)',\n  long: 'cubic-bezier(.4, 0, .2, 1)'\n};\nconst createTransition = (properties, s) => {\n  const suffix = \"\".concat(speed[s], \" \").concat(animation[s]);\n  return properties.map(property => \"\".concat(property, \" \").concat(suffix)).join(', ');\n};\nconst transition = {\n  short: function () {\n    for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n      properties[_key] = arguments[_key];\n    }\n    return createTransition(properties, 'short');\n  },\n  medium: function () {\n    for (var _len2 = arguments.length, properties = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n      properties[_key2] = arguments[_key2];\n    }\n    return createTransition(properties, 'medium');\n  },\n  long: function () {\n    for (var _len3 = arguments.length, properties = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n      properties[_key3] = arguments[_key3];\n    }\n    return createTransition(properties, 'long');\n  }\n};\n\n// https://primer.style/design/foundations/typography\nconst font = {\n  sans: \"InterUI, -apple-system, BlinkMacSystemFont, 'Helvetica Neue', 'Segoe UI', Oxygen, Ubuntu, Cantarell, 'Open Sans', sans-serif\",\n  mono: \"'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, Courier, monospace\"\n};\nconst _excluded$6 = [\"autoPlay\", \"children\", \"controls\", \"loop\", \"mediaRef\", \"muted\", \"playsInline\", \"size\"];\nfunction ownKeys$2(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$2(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nconst initialState = {};\nconst GlobalContext = /*#__PURE__*/React.createContext(initialState);\nconst GlobalState = _ref => {\n  let {\n      autoPlay,\n      children,\n      controls,\n      loop,\n      mediaRef,\n      muted,\n      playsInline,\n      size\n    } = _ref,\n    rest = _objectWithoutProperties(_ref, _excluded$6);\n  const [state, setState] = useState(initialState);\n  const updateState = useCallback(newState => setState(currentState => _objectSpread$2(_objectSpread$2({}, currentState), newState)), []);\n  const props = useMemo(() => ({\n    autoPlay,\n    controls,\n    loop,\n    mediaRef,\n    muted,\n    playsInline,\n    size\n  }), [autoPlay, controls, loop, mediaRef, muted, playsInline, size]);\n  const values = useMemo(() => ({\n    props,\n    state,\n    updateState\n  }), [props, state, updateState]);\n  return /*#__PURE__*/React.createElement(GlobalContext.Provider, {\n    value: values\n  }, children(rest));\n};\nvar _templateObject$g, _templateObject2$c, _templateObject3$b, _templateObject4$9, _templateObject5$6, _templateObject6$2, _templateObject7$2, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12;\nconst REGEX_STRIP_WWW = /^www\\./;\nconst BADGE_WIDTH = '16px';\nconst BADGE_HEIGHT = '12px';\nconst getHostname = href => {\n  if (isNil(href)) return '';\n  const {\n    hostname\n  } = new URL(href);\n  return hostname.replace(REGEX_STRIP_WWW, '');\n};\nconst mobileDescriptionStyle = css(_templateObject$g || (_templateObject$g = _taggedTemplateLiteral([\"\\n  \", \";\\n\"])), media.mobile(_templateObject2$c || (_templateObject2$c = _taggedTemplateLiteral([\"\\n    > p {\\n      overflow: hidden;\\n      text-overflow: ellipsis;\\n      white-space: nowrap;\\n    }\\n  \"]))));\nconst Content = styled('div').attrs({\n  className: classNames.content\n})(_templateObject3$b || (_templateObject3$b = _taggedTemplateLiteral([\"\\n  display: flex;\\n  padding: 10px 15px;\\n  min-width: 0;\\n  box-sizing: border-box;\\n  \", \";\\n\"])), _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return css(_templateObject4$9 || (_templateObject4$9 = _taggedTemplateLiteral([\"\\n    flex: \", \";\\n    justify-content: \", \";\\n    flex-direction: \", \";\\n    align-items: \", \";\\n  \"])), !isLarge($cardSize) ? 1 : '0 0 125px', !isSmall($cardSize) ? 'space-around' : 'space-between', !isSmall($cardSize) ? 'column' : 'row', !isSmall($cardSize) ? 'stretch' : 'center');\n});\nconst Header = styled('header').attrs({\n  className: classNames.title\n})(_templateObject5$6 || (_templateObject5$6 = _taggedTemplateLiteral([\"\\n  text-align: left;\\n  font-weight: bold;\\n  margin: 0;\\n  width: 100%;\\n  \", \"\\n\"])), _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  return css(_templateObject6$2 || (_templateObject6$2 = _taggedTemplateLiteral([\"\\n    flex-grow: \", \";\\n    font-size: \", \";\\n\\n    \", \"\\n  \"])), !isSmall($cardSize) ? 1.2 : 0.8, !isSmall($cardSize) ? '16px' : '15px', isSmall($cardSize) && css(_templateObject7$2 || (_templateObject7$2 = _taggedTemplateLiteral([\"\\n      min-width: 0;\\n      padding-right: 14px;\\n    \"]))));\n});\nconst Description = styled('div').attrs({\n  className: classNames.description\n})(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral([\"\\n  text-align: left;\\n  font-size: 14px;\\n  flex-grow: 2;\\n  margin: auto 0;\\n  line-height: 18px;\\n  font-weight: normal;\\n  \", \";\\n\"])), _ref3 => {\n  let {\n    $cardSize\n  } = _ref3;\n  return !isLarge($cardSize) && mobileDescriptionStyle;\n});\nconst Footer = styled('footer').attrs({\n  className: classNames.url\n})(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral([\"\\n  display: flex;\\n  align-items: center;\\n  justify-content: space-between;\\n  text-align: left;\\n  margin: 0;\\n  flex-grow: 0;\\n  font-weight: normal;\\n  \", \";\\n\"])), _ref4 => {\n  let {\n    $cardSize\n  } = _ref4;\n  return css(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n    font-size: \", \";\\n    \", \"\\n  \"])), !isSmall($cardSize) ? '12px' : '10px', !isSmall($cardSize) && 'width: 100%;');\n});\nconst Author = styled(CardText)(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n  opacity: 0.75;\\n  transition: \", \";\\n  will-change: opacity;\\n\\n  .\", \":hover & {\\n    opacity: 1;\\n  }\\n\"])), transition.medium('opacity'), classNames.main);\nconst PoweredBy = styled('span').attrs({\n  title: 'microlink.io'\n})(_templateObject12 || (_templateObject12 = _taggedTemplateLiteral([\"\\n  background: url('https://cdn.microlink.io/logo/logo.svg') no-repeat center\\n    center;\\n  display: block;\\n  margin-left: 15px;\\n  transition: \", \";\\n  will-change: filter, opacity;\\n  &:not(:hover) {\\n    filter: grayscale(100%);\\n    opacity: 0.75;\\n  }\\n\\n  min-width: \", \";\\n  width: \", \";\\n  background-size: \", \";\\n  height: \", \";\\n\"])), transition.medium('filter', 'opacity'), BADGE_WIDTH, BADGE_WIDTH, BADGE_WIDTH, BADGE_HEIGHT);\nconst CardContent = () => {\n  const {\n    state: {\n      description,\n      title,\n      url\n    },\n    props: {\n      size\n    }\n  } = useContext(GlobalContext);\n  const isSmallCard = isSmall(size);\n  const formattedUrl = useMemo(() => getHostname(url), [url]);\n  const handleOnClick = useCallback(e => {\n    e.preventDefault();\n    window.open('https://www.microlink.io', '_blank');\n  }, []);\n  return /*#__PURE__*/React.createElement(Content, {\n    $cardSize: size\n  }, /*#__PURE__*/React.createElement(Header, {\n    $cardSize: size\n  }, /*#__PURE__*/React.createElement(CardText, {\n    $useNanoClamp: false\n  }, title)), !isSmallCard && /*#__PURE__*/React.createElement(Description, {\n    $cardSize: size\n  }, /*#__PURE__*/React.createElement(CardText, {\n    lines: 2\n  }, description)), /*#__PURE__*/React.createElement(Footer, {\n    $cardSize: size\n  }, /*#__PURE__*/React.createElement(Author, {\n    $useNanoClamp: false\n  }, formattedUrl), /*#__PURE__*/React.createElement(PoweredBy, {\n    onClick: handleOnClick\n  })));\n};\nvar _templateObject$f, _templateObject2$b, _templateObject3$a, _templateObject4$8;\nconst emptyStatePulse = keyframes(_templateObject$f || (_templateObject$f = _taggedTemplateLiteral([\"\\n  0% {\\n    background: #e1e8ed;\\n  }\\n  70% {\\n    background: #cdd4d8;\\n  }\\n  100% {\\n    background: #e1e8ed;\\n  }\\n\"])));\nconst emptyStateImagePulse = keyframes(_templateObject2$b || (_templateObject2$b = _taggedTemplateLiteral([\"\\n  0% {\\n    background: #e1e8ed;\\n  }\\n  70% {\\n    background: #dce3e8;\\n  }\\n  100% {\\n    background: #e1e8ed;\\n  }\\n\"])));\nconst emptyStateAnimation = css(_templateObject3$a || (_templateObject3$a = _taggedTemplateLiteral([\"\\n  animation: \", \" .75s linear infinite;\\n\"])), emptyStatePulse);\nconst emptyStateImageAnimation = css(_templateObject4$8 || (_templateObject4$8 = _taggedTemplateLiteral([\"\\n  animation: \", \" 1.25s linear infinite;\\n\"])), emptyStateImagePulse);\nvar _templateObject$e, _templateObject2$a, _templateObject3$9;\nconst ImageLoadCatcher = styled('img')(_templateObject$e || (_templateObject$e = _taggedTemplateLiteral([\"\\n  height: 1px;\\n  width: 1px;\\n  position: absolute;\\n  z-index: -1;\\n\"])));\nconst loadingOverlay = css(_templateObject2$a || (_templateObject2$a = _taggedTemplateLiteral([\"\\n  &::after {\\n    content: '';\\n    position: absolute;\\n    left: 0;\\n    top: 0;\\n    right: 0;\\n    bottom: 0;\\n    background: #e1e8ed;\\n    z-index: 1;\\n    transition: \", \";\\n    will-change: opacity;\\n\\n    \", \";\\n  }\\n\"])), transition.medium('opacity', 'visibility'), _ref => {\n  let {\n    $isLoading\n  } = _ref;\n  return css(_templateObject3$9 || (_templateObject3$9 = _taggedTemplateLiteral([\"\\n      opacity: \", \";\\n      visibility: \", \";\\n    \"])), $isLoading ? 1 : 0, $isLoading ? '$visible' : 'hidden');\n});\nvar _templateObject$d, _templateObject2$9, _templateObject3$8, _templateObject4$7, _templateObject5$5;\nconst mediaSizeStyles = {\n  small: css(_templateObject$d || (_templateObject$d = _taggedTemplateLiteral([\"\\n    flex: 0 0 48px;\\n  \"]))),\n  normal: css(_templateObject2$9 || (_templateObject2$9 = _taggedTemplateLiteral([\"\\n    flex: 0 0 125px;\\n\\n    \", \"\\n  \"])), media.mobile(_templateObject3$8 || (_templateObject3$8 = _taggedTemplateLiteral([\"\\n      flex: 0 0 92px;\\n    \"])))),\n  large: css(_templateObject4$7 || (_templateObject4$7 = _taggedTemplateLiteral([\"\\n    flex: 1;\\n\\n    &::before {\\n      padding-bottom: 0;\\n    }\\n  \"])))\n};\nconst StyledWrap = styled('div')(_templateObject5$5 || (_templateObject5$5 = _taggedTemplateLiteral([\"\\n  background: transparent no-repeat center center / cover;\\n  display: block;\\n  overflow: hidden;\\n  height: auto;\\n  position: relative;\\n\\n  &::before {\\n    content: '';\\n    padding-bottom: 100%;\\n    display: block;\\n  }\\n\\n  \", \";\\n\\n  \", \";\\n\"])), _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return mediaSizeStyles[$cardSize];\n}, loadingOverlay);\nconst Wrap$1 = props => {\n  const {\n    props: {\n      size\n    }\n  } = useContext(GlobalContext);\n  return /*#__PURE__*/React.createElement(StyledWrap, _extends({\n    $cardSize: size\n  }, props));\n};\nvar _templateObject$c;\nconst ImageWrap = styled(Wrap$1).attrs({\n  className: \"\".concat(classNames.media, \" \").concat(classNames.image)\n})(_templateObject$c || (_templateObject$c = _taggedTemplateLiteral([\"\\n  background-image: \", \";\\n\"])), _ref => {\n  let {\n    url\n  } = _ref;\n  return url ? \"url('\".concat(imageProxy(url), \"')\") : '';\n});\nconst ImageComponent = props => {\n  const {\n    state: {\n      imageUrl\n    }\n  } = useContext(GlobalContext);\n  return /*#__PURE__*/React.createElement(ImageWrap, _extends({\n    url: imageUrl\n  }, props));\n};\nvar _templateObject$b, _templateObject2$8, _templateObject3$7, _templateObject4$6, _FooterEmpty;\nconst MediaEmpty = styled(ImageComponent)(_templateObject$b || (_templateObject$b = _taggedTemplateLiteral([\"\\n  \", \";\\n\"])), emptyStateImageAnimation);\nconst HeaderEmpty = styled('span')(_templateObject2$8 || (_templateObject2$8 = _taggedTemplateLiteral([\"\\n  opacity: 0.8;\\n  height: 16px;\\n  width: \", \";\\n  display: block;\\n  background: #e1e8ed;\\n  margin: \", \";\\n  \", \";\\n\\n  \", \";\\n\"])), _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return !isSmall($cardSize) ? '60%' : '75%';\n}, _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  return !isSmall($cardSize) ? '2px 0 8px' : '0 20px 0 0';\n}, emptyStateAnimation, _ref3 => {\n  let {\n    $cardSize\n  } = _ref3;\n  return !isLarge($cardSize) && \"\\n    height: 15px;\\n  \";\n});\nconst DescriptionEmpty = styled('span')(_templateObject3$7 || (_templateObject3$7 = _taggedTemplateLiteral([\"\\n  opacity: 0.8;\\n  height: 14px;\\n  width: 95%;\\n  display: block;\\n  position: relative;\\n  \", \";\\n  animation-delay: 0.125s;\\n\"])), emptyStateAnimation);\nconst FooterEmpty = styled('span')(_templateObject4$6 || (_templateObject4$6 = _taggedTemplateLiteral([\"\\n  opacity: 0.8;\\n  height: 12px;\\n  width: 30%;\\n  display: block;\\n  \", \" animation-delay: .25s;\\n\\n  \", \";\\n\"])), emptyStateAnimation, _ref4 => {\n  let {\n    $cardSize\n  } = _ref4;\n  return !isLarge($cardSize) && \"\\n    height: 10px;\\n  \";\n});\nconst CardEmptyState = () => {\n  const {\n    props: {\n      size\n    }\n  } = useContext(GlobalContext);\n  const isSmallCard = isSmall(size);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MediaEmpty, {\n    $cardSize: size\n  }), /*#__PURE__*/React.createElement(Content, {\n    $cardSize: size\n  }, /*#__PURE__*/React.createElement(HeaderEmpty, {\n    $cardSize: size\n  }), !isSmallCard ? /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DescriptionEmpty, {\n    $cardSize: size\n  }), /*#__PURE__*/React.createElement(DescriptionEmpty, {\n    $cardSize: size,\n    style: {\n      marginBottom: '12px'\n    }\n  })) : null, _FooterEmpty || (_FooterEmpty = /*#__PURE__*/React.createElement(FooterEmpty, null))));\n};\nvar _templateObject$a;\nconst MediaButton = styled('div')(_templateObject$a || (_templateObject$a = _taggedTemplateLiteral([\"\\n  backface-visibility: hidden;\\n  filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3));\\n  transition: \", \";\\n  will-change: transform;\\n\\n  > svg {\\n    display: block;\\n  }\\n\\n  &:active:not(:focus) {\\n    transform: scale(0.9);\\n  }\\n\"])), transition.short('transform'));\nvar _path$2, _path2$2, _templateObject$9, _templateObject2$7, _templateObject3$6, _templateObject4$5, _templateObject5$4, _templateObject6$1, _templateObject7$1;\nconst VolumeMute = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 14 14\"\n}, props), _path$2 || (_path$2 = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFF\",\n  fillRule: \"evenodd\",\n  stroke: \"none\",\n  strokeWidth: \"1\",\n  d: \"M15.5 6.205l-.705-.705L13 7.295 11.205 5.5l-.705.705L12.295 8 10.5 9.795l.705.705L13 8.705l1.795 1.795.705-.705L13.705 8 15.5 6.205zM9 15a.5.5 0 01-.355-.15L4.835 11H1.5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h3.335l3.81-3.85a.5.5 0 01.705 0 .5.5 0 01.15.35v13a.5.5 0 01-.5.5z\",\n  transform: \"translate(-1 -1)\"\n})));\nconst VolumeUp = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 14 14\"\n}, props), _path2$2 || (_path2$2 = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFF\",\n  fillRule: \"evenodd\",\n  stroke: \"none\",\n  strokeWidth: \"1\",\n  d: \"M13.58 4.04l-.765.645a5 5 0 01-.145 6.615l.735.7a6 6 0 00.175-7.94v-.02zM10.79 6a3 3 0 01-.09 3.97l.735.68a4 4 0 00.115-5.295L10.79 6zM9 15a.5.5 0 01-.355-.15L4.835 11H1.5a.5.5 0 01-.5-.5v-5a.5.5 0 01.5-.5h3.335l3.81-3.85a.5.5 0 01.705 0 .5.5 0 01.15.35v13a.5.5 0 01-.5.5z\",\n  transform: \"translate(-1 -1)\"\n})));\nconst BottomControls = styled('div')(_templateObject$9 || (_templateObject$9 = _taggedTemplateLiteral([\"\\n  z-index: 2;\\n  position: absolute;\\n  bottom: \", \"px;\\n  left: 0;\\n  right: 0;\\n  display: flex;\\n  justify-content: center;\\n  align-items: center;\\n  transition: \", \";\\n  will-change: opacity;\\n\"])), _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return isLarge($cardSize) ? 18 : 14;\n}, transition.medium('opacity'));\nconst VolumeIcon = styled('svg')(_templateObject2$7 || (_templateObject2$7 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n\"])));\nconst VolumeButton = styled(MediaButton).attrs({\n  className: classNames.volumeControl\n})(_templateObject3$6 || (_templateObject3$6 = _taggedTemplateLiteral([\"\\n  \", \" {\\n    width: \", \"px;\\n    height: \", \"px;\\n\\n    \", \"\\n  }\\n\"])), VolumeIcon, _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  return isLarge($cardSize) ? 16 : 14;\n}, _ref3 => {\n  let {\n    $cardSize\n  } = _ref3;\n  return isLarge($cardSize) ? 16 : 14;\n}, _ref4 => {\n  let {\n    $cardSize\n  } = _ref4;\n  return !isLarge($cardSize) && media.mobile(_templateObject4$5 || (_templateObject4$5 = _taggedTemplateLiteral([\"\\n      width: 12px;\\n      height: 12px;\\n    \"])));\n});\nconst PlaybackRateButton = styled(MediaButton).attrs({\n  className: classNames.rateControl\n})(_templateObject5$4 || (_templateObject5$4 = _taggedTemplateLiteral([\"\\n  font-size: \", \"px;\\n  min-width: \", \"px;\\n  line-height: 1;\\n  font-weight: bold;\\n  border: 1.5px solid #fff;\\n  border-radius: 9999px;\\n  padding: 1px 5px;\\n  text-align: center;\\n  color: #fff;\\n  margin-left: 10px;\\n\\n  \", \"\\n\"])), _ref5 => {\n  let {\n    $cardSize\n  } = _ref5;\n  return isLarge($cardSize) ? 12 : 10;\n}, _ref6 => {\n  let {\n    $cardSize\n  } = _ref6;\n  return isLarge($cardSize) ? 33 : 28;\n}, _ref7 => {\n  let {\n    $cardSize\n  } = _ref7;\n  return !isLarge($cardSize) && media.mobile(_templateObject6$1 || (_templateObject6$1 = _taggedTemplateLiteral([\"\\n    font-size: 8px;\\n    margin-left: 8px;\\n    min-width: 23px;\\n  \"])));\n});\nconst TimeLabel = styled('span').attrs({\n  className: classNames.progressTime\n})(_templateObject7$1 || (_templateObject7$1 = _taggedTemplateLiteral([\"\\n  margin: \", \";\\n  font-family: \", \";\\n  font-size: 12px;\\n  padding: 0 16px;\\n  color: #fff;\\n  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\\n\"])), _ref8 => {\n  let {\n    $right\n  } = _ref8;\n  return !$right ? '0 auto 0 0' : '0 0 0 auto';\n}, font.mono);\nconst FooterControls = _ref9 => {\n  let {\n    $cardSize,\n    currentTime,\n    endTime,\n    isMuted,\n    onMuteClick,\n    onPlaybackRateClick,\n    playbackRate\n  } = _ref9;\n  const VolumeComponent = useMemo(() => isMuted ? VolumeMute : VolumeUp, [isMuted]);\n  const isLargeCard = useMemo(() => isLarge($cardSize), [$cardSize]);\n  return /*#__PURE__*/React.createElement(BottomControls, {\n    $cardSize: $cardSize\n  }, isLargeCard && /*#__PURE__*/React.createElement(TimeLabel, null, currentTime), /*#__PURE__*/React.createElement(VolumeButton, {\n    title: isMuted ? 'Unmute' : 'Mute',\n    $cardSize: $cardSize,\n    onClick: onMuteClick\n  }, /*#__PURE__*/React.createElement(VolumeIcon, {\n    as: VolumeComponent\n  })), /*#__PURE__*/React.createElement(PlaybackRateButton, {\n    title: \"Playback Rate\",\n    $cardSize: $cardSize,\n    onClick: onPlaybackRateClick\n  }, /*#__PURE__*/React.createElement(\"span\", null, playbackRate, \"x\")), isLargeCard && /*#__PURE__*/React.createElement(TimeLabel, {\n    $right: true\n  }, endTime));\n};\nconst _excluded$5 = [\"$isPlaying\"];\nvar _path$1, _path2$1, _templateObject$8, _templateObject2$6, _templateObject3$5, _templateObject4$4;\nconst Pause = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 16 20\"\n}, props), _path$1 || (_path$1 = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFF\",\n  fillRule: \"evenodd\",\n  stroke: \"none\",\n  strokeWidth: \"1\",\n  d: \"M12 6h-2a2 2 0 00-2 2v16a2 2 0 002 2h2a2 2 0 002-2V8a2 2 0 00-2-2zm10 0h-2a2 2 0 00-2 2v16a2 2 0 002 2h2a2 2 0 002-2V8a2 2 0 00-2-2z\",\n  transform: \"translate(-8 -6)\"\n})));\nconst Play = props => /*#__PURE__*/React.createElement(\"svg\", _extends({\n  xmlns: \"http://www.w3.org/2000/svg\",\n  viewBox: \"0 0 21 24\"\n}, props), _path2$1 || (_path2$1 = /*#__PURE__*/React.createElement(\"path\", {\n  fill: \"#FFF\",\n  fillRule: \"evenodd\",\n  stroke: \"none\",\n  strokeWidth: \"1\",\n  d: \"M7 28a1 1 0 01-1-1V5a1 1 0 011.501-.865l19 11a1 1 0 010 1.73l-19 11A.998.998 0 017 28z\",\n  transform: \"translate(-6 -4)\"\n})));\nconst iconSizes = {\n  large: '50px',\n  normal: '35px',\n  small: '20px'\n};\nconst PlaybackIcon = styled('svg')(_templateObject$8 || (_templateObject$8 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n\"])));\nconst PlaybackButtonWrap = styled(MediaButton).attrs({\n  className: classNames.playbackControl\n})(_templateObject2$6 || (_templateObject2$6 = _taggedTemplateLiteral([\"\\n  \", \" {\\n    \", \"\\n  }\\n\"])), PlaybackIcon, _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return css(_templateObject3$5 || (_templateObject3$5 = _taggedTemplateLiteral([\"\\n      width: \", \";\\n      height: \", \";\\n      padding: \", \";\\n\\n      \", \"\\n    \"])), iconSizes[$cardSize], iconSizes[$cardSize], isLarge($cardSize) ? 0 : '8px', !isLarge($cardSize) && !isSmall($cardSize) && media.mobile(_templateObject4$4 || (_templateObject4$4 = _taggedTemplateLiteral([\"\\n        width: calc(\", \" * 1.2);\\n        height: calc(\", \" * 1.2);\\n      \"])), iconSizes.small, iconSizes.small));\n});\nconst PlaybackButton = _ref2 => {\n  let {\n      $isPlaying\n    } = _ref2,\n    props = _objectWithoutProperties(_ref2, _excluded$5);\n  const PlaybackComponent = useMemo(() => $isPlaying ? Pause : Play, [$isPlaying]);\n  return /*#__PURE__*/React.createElement(PlaybackButtonWrap, _extends({\n    title: $isPlaying ? 'Pause' : 'Play'\n  }, props), /*#__PURE__*/React.createElement(PlaybackIcon, {\n    as: PlaybackComponent\n  }));\n};\nvar _templateObject$7, _templateObject2$5;\nconst SCRUBBER_SIZE = 12;\nconst scrubberSizeScales = {\n  normal: 0.8,\n  small: 0.9\n};\nconst getScrubberSize = size => Math.floor(SCRUBBER_SIZE * (scrubberSizeScales[size] || 1));\nconst Scrubber = styled('div').attrs(_ref => {\n  let {\n    $isVisible,\n    $positionX\n  } = _ref;\n  return {\n    style: {\n      left: $positionX,\n      transform: \"scale(\".concat($isVisible ? 1 : 0.5, \") translate(-50%, -50%)\"),\n      opacity: $isVisible ? 1 : 0,\n      visibility: $isVisible ? '$visible' : 'hidden'\n    }\n  };\n})(_templateObject$7 || (_templateObject$7 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  top: 50%;\\n  background: #ffffff;\\n  border-radius: 50%;\\n  transform-origin: center center;\\n  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);\\n  transition: \", \";\\n  will-change: left, transform, opacity, visibility;\\n  backface-visibility: hidden;\\n  z-index: 3;\\n\\n  \", \"\\n\"])), transition.short('transform', 'opacity', 'visibility'), _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  const scrubberSize = getScrubberSize($cardSize);\n  return css(_templateObject2$5 || (_templateObject2$5 = _taggedTemplateLiteral([\"\\n      height: \", \"px;\\n      width: \", \"px;\\n    \"])), scrubberSize, scrubberSize);\n});\nconst _excluded$4 = [\"$isDragging\", \"$isVisible\", \"label\", \"$positionX\", \"size\"];\nvar _templateObject$6;\nconst BASE_FONT_SIZE = 11;\nconst sizeScales$1 = {\n  normal: 0.8\n};\nconst getMarkerFontSize = size => BASE_FONT_SIZE * (sizeScales$1[size] || 1);\nconst TooltipBase = styled('span').attrs(_ref => {\n  let {\n    $position,\n    $isDragging,\n    $visible\n  } = _ref;\n  return {\n    style: {\n      left: \"\".concat($position, \"px\"),\n      top: $visible ? '-4px' : '0px',\n      visibility: $visible ? '$visible' : 'hidden',\n      opacity: $visible ? 1 : 0,\n      transform: \"translate(-50%, \".concat(!$isDragging ? -100 : -110, \"%)\")\n    }\n  };\n})(_templateObject$6 || (_templateObject$6 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  background: rgba(24, 25, 25, 0.75);\\n  color: #fff;\\n  text-shadow: 0 1px 2px rgba(24, 25, 25, 0.15);\\n  padding: 2px 3px;\\n  border-radius: 4px;\\n  font-family: \", \";\\n  font-size: \", \"px;\\n  line-height: 1;\\n  transition: \", \",\\n    \", \";\\n  will-change: top, left, visibility, opacity, transform;\\n  backface-visibility: hidden;\\n\"])), font.mono, _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  return getMarkerFontSize($cardSize);\n}, transition.medium('opacity', 'visibility', 'transform'), transition.long('top'));\nconst Tooltip = /*#__PURE__*/forwardRef((_ref3, ref) => {\n  let {\n      $isDragging,\n      $isVisible,\n      label,\n      $positionX,\n      size\n    } = _ref3,\n    props = _objectWithoutProperties(_ref3, _excluded$4);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(TooltipBase, _extends({\n    $visible: $isVisible,\n    $position: $positionX,\n    $cardSize: size,\n    ref: ref,\n    $isDragging: $isDragging\n  }, props), label));\n});\nTooltip.displayName = 'Tooltip';\nconst _excluded$3 = [\"key\"];\nvar _templateObject$5, _templateObject2$4, _templateObject3$4, _templateObject4$3, _templateObject5$3, _templateObject6, _templateObject7;\nconst HEIGHT$1 = 6;\nconst PADDING = 6;\nconst heightScales = {\n  normal: 0.7,\n  small: 0.6\n};\nconst activeHeightScales = {\n  small: 0.9,\n  large: 1.4\n};\nconst getProgressBarHeight = size => Math.floor(HEIGHT$1 * (heightScales[size] || 1));\nconst getProgressBarActiveHeight = size => Math.floor(HEIGHT$1 * (activeHeightScales[size] || 1));\nconst OuterWrap$1 = styled('div').attrs(() => ({\n  className: classNames.progressBar\n}))(_templateObject$5 || (_templateObject$5 = _taggedTemplateLiteral([\"\\n  position: relative;\\n  padding: \", \"px \", \"px \", \"px;\\n  z-index: 2;\\n  backface-visibility: hidden;\\n\"])), PADDING, PADDING / 2, PADDING / 2);\nconst BarsWrap = styled('div').attrs(_ref => {\n  let {\n    $cardSize,\n    $isDragging\n  } = _ref;\n  if ($isDragging) {\n    const activeHeight = getProgressBarActiveHeight($cardSize);\n    return {\n      style: {\n        height: \"\".concat(activeHeight, \"px\")\n      }\n    };\n  }\n  return {};\n})(_templateObject2$4 || (_templateObject2$4 = _taggedTemplateLiteral([\"\\n  background: transparent;\\n  border-radius: 9999px;\\n  box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);\\n  background: rgba(255, 255, 255, 0.15);\\n  transition: \", \";\\n  will-change: height;\\n  pointer-events: none;\\n  position: relative;\\n\\n  \", \"\\n\"])), transition.short('height'), _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  const height = getProgressBarHeight($cardSize);\n  const activeHeight = getProgressBarActiveHeight($cardSize);\n  return css(_templateObject3$4 || (_templateObject3$4 = _taggedTemplateLiteral([\"\\n      height: \", \"px;\\n\\n      \", \":hover & {\\n        height: \", \"px;\\n      }\\n    \"])), height, OuterWrap$1, activeHeight);\n});\nconst ProgressLine = styled('div')(_templateObject4$3 || (_templateObject4$3 = _taggedTemplateLiteral([\"\\n  border-radius: inherit;\\n  height: 100%;\\n  position: relative;\\n  overflow: hidden;\\n\"])));\nconst ProgressMask = styled('div').attrs(_ref3 => {\n  let {\n    $maskScale\n  } = _ref3;\n  return {\n    style: {\n      transform: \"scaleX(\".concat($maskScale, \")\")\n    }\n  };\n})(_templateObject5$3 || (_templateObject5$3 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  left: 0;\\n  top: -50%;\\n  height: 200%;\\n  width: 100%;\\n  background: #ffffff;\\n  transform-origin: left center;\\n  will-change: transform;\\n\"])));\nconst ProgressHover = styled('div').attrs(_ref4 => {\n  let {\n    $cursorRatio,\n    $isHovering,\n    $progressPercent\n  } = _ref4;\n  return {\n    style: {\n      left: $progressPercent,\n      transform: \"scaleX(\".concat($cursorRatio, \")\"),\n      opacity: $isHovering ? 1 : 0,\n      visibility: $isHovering ? '$visible' : 'hidden'\n    }\n  };\n})(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  background: rgba(255, 255, 255, 0.4);\\n  transform-origin: left center;\\n  transition: \", \";\\n  will-change: left, transform, opacity, $visible;\\n\"])), transition.short('opacity', 'visibility'));\nconst BufferedChunk = styled('div').attrs(_ref5 => {\n  let {\n    start,\n    end\n  } = _ref5;\n  return {\n    style: {\n      left: \"\".concat(start, \"px\"),\n      right: \"\".concat(end, \"px\")\n    }\n  };\n})(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral([\"\\n  background: rgba(255, 255, 255, 0.35);\\n  position: absolute;\\n  top: 0;\\n  bottom: 0;\\n\"])));\nconst ProgressBar = _ref6 => {\n  let {\n    bufferedMedia,\n    cursorX,\n    duration,\n    hoveredTime,\n    $isDragging,\n    $isHovering,\n    onClick,\n    onMouseDown,\n    onMouseOver,\n    progress,\n    showTooltip\n  } = _ref6;\n  const {\n    props: {\n      size\n    }\n  } = useContext(GlobalContext);\n  const wrapRef = useRef();\n  const tooltipRef = useRef();\n  const isSmallCard = useMemo(() => isSmall(size), [size]);\n  const getWrapWidth = useCallback(() => {\n    if (wrapRef.current) {\n      return wrapRef.current.getBoundingClientRect().width - PADDING;\n    }\n    return 0;\n  }, []);\n  const progressRatio = useMemo(() => clampNumber(progress / duration, 0, 1), [duration, progress]);\n  const $progressPercent = useMemo(() => \"\".concat(clampNumber(progressRatio * 100, 1, 99), \"%\"), [progressRatio]);\n  const $cursorRatio = useMemo(() => {\n    if (wrapRef.current) {\n      const wrapWidth = getWrapWidth();\n      const startPoint = progressRatio * wrapWidth;\n      const cursorPosition = cursorX - startPoint;\n      const width = wrapWidth - startPoint;\n      if (cursorPosition > 0) {\n        return clampNumber((cursorPosition / width).toFixed(3), 0, 0.99);\n      }\n    }\n    return 0;\n  }, [cursorX, getWrapWidth, progressRatio]);\n  const bufferedMediaChunks = useMemo(() => {\n    const wrapWidth = getWrapWidth();\n    return bufferedMedia.map((chunk, key) => {\n      const start = chunk.start * wrapWidth;\n      const end = wrapWidth - chunk.end * wrapWidth;\n      return {\n        key,\n        start,\n        end\n      };\n    });\n  }, [bufferedMedia, getWrapWidth]);\n  const tooltipLabel = useMemo(() => formatSeconds(hoveredTime), [hoveredTime]);\n  const tooltipPositionX = useMemo(() => {\n    if (wrapRef.current && tooltipRef.current) {\n      const wrapWidth = getWrapWidth();\n      const tooltipWidth = tooltipRef.current.getBoundingClientRect().width;\n      const tooltipHalf = tooltipWidth / 2;\n      return clampNumber(cursorX, tooltipHalf, wrapWidth - tooltipHalf);\n    }\n    return 0;\n  }, [cursorX, getWrapWidth]);\n  const mouseEvents = useMemo(() => ({\n    onClick,\n    onMouseDown,\n    onMouseOver\n  }), [onClick, onMouseDown, onMouseOver]);\n  const showAccessories = useMemo(() => $isDragging || $isHovering, [$isDragging, $isHovering]);\n  return /*#__PURE__*/React.createElement(OuterWrap$1, _extends({\n    $cardSize: size,\n    ref: wrapRef\n  }, mouseEvents), /*#__PURE__*/React.createElement(BarsWrap, {\n    $cardSize: size,\n    $isDragging: $isDragging\n  }, /*#__PURE__*/React.createElement(ProgressLine, null, /*#__PURE__*/React.createElement(ProgressHover, {\n    $cursorRatio: $cursorRatio,\n    $isHovering: $isHovering,\n    $progressPercent: $progressPercent\n  }), bufferedMediaChunks.map(_ref7 => {\n    let {\n        key\n      } = _ref7,\n      chunk = _objectWithoutProperties(_ref7, _excluded$3);\n    return /*#__PURE__*/React.createElement(BufferedChunk, _extends({\n      key: key\n    }, chunk));\n  }), /*#__PURE__*/React.createElement(ProgressMask, {\n    $maskScale: progressRatio\n  })), /*#__PURE__*/React.createElement(Scrubber, {\n    $cardSize: size,\n    $isVisible: showAccessories,\n    $positionX: $progressPercent\n  }), !isSmallCard && /*#__PURE__*/React.createElement(Tooltip, {\n    $isDragging: $isDragging,\n    $isVisible: showAccessories,\n    label: tooltipLabel,\n    $positionX: tooltipPositionX,\n    ref: tooltipRef,\n    size: size\n  })));\n};\nvar _path, _path2, _templateObject$4, _templateObject2$3, _templateObject3$3;\nconst _excluded$2 = [\"$cardSize\"],\n  _excluded2$1 = [\"$cardSize\"],\n  _excluded3 = [\"type\", \"$cardSize\"];\nconst Backward = _ref => {\n  let props = _objectWithoutProperties(_ref, _excluded$2);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 29\"\n  }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FFF\",\n    fillRule: \"evenodd\",\n    stroke: \"none\",\n    strokeWidth: \"1\",\n    d: \"M4 18c0 6.627 5.373 12 12 12s12-5.373 12-12S22.627 6 16 6h-4V1L6 7l6 6V8h4c5.523 0 10 4.477 10 10s-4.477 10-10 10S6 23.523 6 18H4zm15.63 4.13a2.84 2.84 0 01-1.28-.27 2.44 2.44 0 01-.89-.77 3.57 3.57 0 01-.52-1.25 7.69 7.69 0 01-.17-1.68 7.83 7.83 0 01.17-1.68c.094-.445.27-.87.52-1.25.23-.325.535-.59.89-.77.4-.188.838-.28 1.28-.27a2.44 2.44 0 012.16 1 5.23 5.23 0 01.7 2.93 5.23 5.23 0 01-.7 2.93 2.44 2.44 0 01-2.16 1.08zm0-1.22c.411.025.8-.19 1-.55a3.38 3.38 0 00.37-1.51v-1.38a3.31 3.31 0 00-.29-1.5 1.23 1.23 0 00-2.06 0 3.31 3.31 0 00-.29 1.5v1.38a3.38 3.38 0 00.29 1.51c.195.356.575.57.98.55zm-9 1.09v-1.18h2v-5.19l-1.86 1-.55-1.06 2.32-1.3H14v6.5h1.78V22h-5.15z\",\n    transform: \"translate(-4 -1)\"\n  })));\n};\nconst Forward = _ref2 => {\n  let props = _objectWithoutProperties(_ref2, _excluded2$1);\n  return /*#__PURE__*/React.createElement(\"svg\", _extends({\n    xmlns: \"http://www.w3.org/2000/svg\",\n    viewBox: \"0 0 24 29\"\n  }, props), _path2 || (_path2 = /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"#FFF\",\n    fillRule: \"evenodd\",\n    stroke: \"none\",\n    strokeWidth: \"1\",\n    d: \"M26 18c0 5.523-4.477 10-10 10S6 23.523 6 18 10.477 8 16 8h4v5l6-6-6-6v5h-4C9.373 6 4 11.373 4 18s5.373 12 12 12 12-5.373 12-12h-2zm-6.36 4.13a2.81 2.81 0 01-1.28-.27 2.36 2.36 0 01-.89-.77 3.39 3.39 0 01-.47-1.25 7.12 7.12 0 01-.17-1.68 7.24 7.24 0 01.17-1.68 3.46 3.46 0 01.52-1.25 2.36 2.36 0 01.89-.77c.4-.19.838-.282 1.28-.27a2.44 2.44 0 012.16 1 5.31 5.31 0 01.7 2.93 5.31 5.31 0 01-.7 2.93 2.44 2.44 0 01-2.21 1.08zm0-1.22a1 1 0 001-.55c.22-.472.323-.99.3-1.51v-1.38a3.17 3.17 0 00-.3-1.5 1.22 1.22 0 00-2.05 0 3.18 3.18 0 00-.29 1.5v1.38a3.25 3.25 0 00.29 1.51 1 1 0 001.05.55zm-7.02-3.49c.355.035.71-.06 1-.27a.84.84 0 00.31-.68v-.08a.94.94 0 00-.3-.74 1.2 1.2 0 00-.83-.27 1.65 1.65 0 00-.89.24 2.1 2.1 0 00-.68.68l-.93-.83a5.37 5.37 0 01.44-.51 2.7 2.7 0 01.54-.4 2.55 2.55 0 01.7-.27 3.25 3.25 0 01.87-.1 3.94 3.94 0 011.06.14c.297.078.576.214.82.4.224.168.408.383.54.63.123.26.184.543.18.83a2 2 0 01-.11.67 1.82 1.82 0 01-.32.52 1.79 1.79 0 01-.47.36 2.27 2.27 0 01-.57.2V18c.219.04.431.11.63.21a1.7 1.7 0 01.85.93c.084.234.124.481.12.73a2 2 0 01-.2.92 2 2 0 01-.58.72 2.66 2.66 0 01-.89.45 3.76 3.76 0 01-1.15.16 4.1 4.1 0 01-1-.11 3.1 3.1 0 01-.76-.31 2.76 2.76 0 01-.56-.45 4.22 4.22 0 01-.44-.55l1.07-.81c.082.147.175.288.28.42.105.128.226.243.36.34.137.097.29.171.45.22a2 2 0 00.57.07 1.45 1.45 0 001-.3 1.12 1.12 0 00.34-.85v-.08a1 1 0 00-.37-.8 1.78 1.78 0 00-1.06-.28h-.76v-1.21h.74z\",\n    transform: \"translate(-4 -1)\"\n  })));\n};\nconst SeekIcon = styled('svg')(_templateObject$4 || (_templateObject$4 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n  width: \", \"px;\\n  height: \", \"px;\\n\\n  \", \"\\n\"])), _ref3 => {\n  let {\n    $cardSize\n  } = _ref3;\n  return isLarge($cardSize) ? 30 : 24;\n}, _ref4 => {\n  let {\n    $cardSize\n  } = _ref4;\n  return isLarge($cardSize) ? 30 : 24;\n}, _ref5 => {\n  let {\n    $cardSize\n  } = _ref5;\n  return !isLarge($cardSize) && media.mobile(_templateObject2$3 || (_templateObject2$3 = _taggedTemplateLiteral([\"\\n    width: 0;\\n    height: 0;\\n  \"])));\n});\nconst SeekButtonWrap = styled(MediaButton)(_templateObject3$3 || (_templateObject3$3 = _taggedTemplateLiteral([\"\\n  margin: 0 \", \";\\n\"])), _ref6 => {\n  let {\n    $cardSize\n  } = _ref6;\n  return isLarge($cardSize) ? '28px' : '3px';\n});\nconst SeekButton = _ref7 => {\n  let {\n      type = 'rewind',\n      $cardSize\n    } = _ref7,\n    props = _objectWithoutProperties(_ref7, _excluded3);\n  const IconComponent = useMemo(() => type === 'rewind' ? Backward : Forward, [type]);\n  return /*#__PURE__*/React.createElement(SeekButtonWrap, _extends({\n    title: type === 'rewind' ? 'Rewind' : 'Forward',\n    $cardSize: $cardSize\n  }, props), /*#__PURE__*/React.createElement(SeekIcon, {\n    as: IconComponent,\n    $cardSize: $cardSize\n  }));\n};\nvar _templateObject$3, _templateObject2$2, _templateObject3$2, _templateObject4$2, _templateObject5$2, _Svg;\nconst BASE_SIZE = 12;\nconst BASE_OFFSET = 6;\nconst offsetScales = {\n  normal: 0.8,\n  small: 0.6\n};\nconst sizeScales = {\n  normal: 0.9,\n  small: 0.8\n};\nconst getSpinnerOffset = size => Math.floor(BASE_OFFSET * (offsetScales[size] || 1));\nconst getSpinnerSize = size => Math.floor(BASE_SIZE * (sizeScales[size] || 1));\nconst rotate = keyframes(_templateObject$3 || (_templateObject$3 = _taggedTemplateLiteral([\"\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n\"])));\nconst dash = keyframes(_templateObject2$2 || (_templateObject2$2 = _taggedTemplateLiteral([\"\\n  0% {\\n    stroke-dasharray: 1, 150;\\n    stroke-dashoffset: 0;\\n  }\\n  50% {\\n    stroke-dasharray: 90, 150;\\n    stroke-dashoffset: -35;\\n  }\\n  100% {\\n    stroke-dasharray: 90, 150;\\n    stroke-dashoffset: -124;\\n  }\\n\"])));\nconst Wrap = styled(MediaButton).attrs(_ref => {\n  let {\n    $isVisible\n  } = _ref;\n  return {\n    style: {\n      opacity: $isVisible ? 1 : 0,\n      visibility: $isVisible ? '$visible' : 'hidden'\n    }\n  };\n})(_ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  const size = \"\".concat(getSpinnerSize($cardSize), \"px\");\n  const offset = \"\".concat(getSpinnerOffset($cardSize), \"px\");\n  return css(_templateObject3$2 || (_templateObject3$2 = _taggedTemplateLiteral([\"\\n    position: absolute;\\n    width: \", \";\\n    right: \", \";\\n    top: \", \";\\n    transition: \", \";\\n    will-change: opacity, visibility;\\n    pointer-events: none;\\n  \"])), size, offset, offset, transition.medium('opacity', 'visibility'));\n});\nconst Svg = styled('svg')(_templateObject4$2 || (_templateObject4$2 = _taggedTemplateLiteral([\"\\n  width: 100%;\\n  animation: \", \" 2s linear infinite;\\n  will-change: transform;\\n\"])), rotate);\nconst Circle = styled('circle')(_templateObject5$2 || (_templateObject5$2 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n  stroke-linecap: round;\\n  stroke-width: 7;\\n  fill: none;\\n  animation: \", \" 1.5s ease-in-out infinite;\\n  will-change: stroke-dasharray, stroke-dashoffset;\\n\"])), dash);\nconst Spinner = _ref3 => {\n  let {\n    size,\n    $isVisible\n  } = _ref3;\n  return /*#__PURE__*/React.createElement(Wrap, {\n    $cardSize: size,\n    className: classNames.spinner,\n    $isVisible: $isVisible\n  }, _Svg || (_Svg = /*#__PURE__*/React.createElement(Svg, {\n    viewBox: \"0 0 50 50\"\n  }, /*#__PURE__*/React.createElement(Circle, {\n    cx: \"25\",\n    cy: \"25\",\n    r: \"20\"\n  }))));\n};\nvar _templateObject$2, _templateObject2$1, _templateObject3$1, _templateObject4$1, _templateObject5$1;\nconst SPACE_KEY = 32;\nconst L_ARROW_KEY = 37;\nconst R_ARROW_KEY = 39;\nconst M_KEY = 77;\nconst OuterWrap = styled('div').attrs({\n  className: classNames.mediaControls\n})(_templateObject$2 || (_templateObject$2 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  left: 0;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  transition: \", \", \", \";\\n  will-change: background;\\n  display: flex;\\n  flex-direction: column;\\n  pointer-events: auto;\\n\\n  \", \"\\n\"])), transition.long('background'), transition.medium('opacity'), _ref => {\n  let {\n    $hasInteracted,\n    $isDragging,\n    $isPlaying\n  } = _ref;\n  const bg = 'rgba(0, 0, 0, 0.35)';\n  const dragBg = 'rgba(0, 0, 0, 0.2)';\n  const isPaused = $hasInteracted && !$isPlaying;\n  return css(_templateObject2$1 || (_templateObject2$1 = _taggedTemplateLiteral([\"\\n      .\", \":hover & {\\n        background: \", \";\\n      }\\n\\n      .\", \":not(:hover) & {\\n        opacity: \", \";\\n        \", \";\\n      }\\n    \"])), classNames.main, !$isDragging ? bg : dragBg, classNames.main, !$hasInteracted || isPaused ? 1 : 0, isPaused && \"background: \".concat(bg));\n});\nconst InnerWrap = styled('div')(_templateObject3$1 || (_templateObject3$1 = _taggedTemplateLiteral([\"\\n  position: absolute;\\n  left: 0;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  display: flex;\\n  align-items: center;\\n  justify-content: center;\\n  z-index: 2;\\n\"])));\nconst ControlsTop = styled('div')(_templateObject4$1 || (_templateObject4$1 = _taggedTemplateLiteral([\"\\n  flex: 1;\\n\\n  \", \"\\n\"])), _ref2 => {\n  let {\n    $isVisible\n  } = _ref2;\n  return !$isVisible && css(_templateObject5$1 || (_templateObject5$1 = _taggedTemplateLiteral([\"\\n      *[class*='\", \"']:not(.\", \") {\\n        transition: \", \";\\n        opacity: 0;\\n        visibility: hidden;\\n      }\\n    \"])), classNames.mediaControls, classNames.progressTime, transition.medium('opacity', 'visibility'));\n});\nconst getNextPlaybackRate = rate => {\n  switch (rate) {\n    case 1:\n      return 1.25;\n    case 1.25:\n      return 1.5;\n    case 1.5:\n      return 2;\n    default:\n      return 1;\n  }\n};\nconst Controls = _ref3 => {\n  let {\n    MediaComponent,\n    mediaProps\n  } = _ref3;\n  const {\n    props: {\n      autoPlay,\n      controls,\n      mediaRef: propRef,\n      muted,\n      loop,\n      size\n    }\n  } = useContext(GlobalContext);\n  const [duration, setDuration] = useState(0);\n  const [progress, setProgress] = useState(0);\n  const [buffered, setBuffered] = useState([]);\n  const [cursorX, setCursorX] = useState(0);\n  const [hoveredTime, setHoveredTime] = useState(0);\n  const [$isPlaying, setIsPlaying] = useState(autoPlay);\n  const [isMuted, setIsMuted] = useState(muted);\n  const [isBuffering, setIsBuffering] = useState(false);\n  const [$isHovering, setIsHovering] = useState(false);\n  const [$isDragging, setIsDragging] = useState(false);\n  const [playbackRate, setPlaybackRate] = useState(1);\n  const [$hasInteracted, setHasInteracted] = useState(autoPlay);\n  const [pausedByDrag, setPausedByDrag] = useState(false);\n  const mediaRef = useRef();\n  const setRefs = useCallback(node => {\n    mediaRef.current = node;\n    if (propRef) {\n      if (isFunction(propRef)) {\n        propRef(node);\n      } else {\n        propRef.current = node;\n      }\n    }\n  }, [propRef]);\n  const isNotSmall = useMemo(() => !isSmall(size), [size]);\n  const mediaEvents = useMemo(() => ({\n    onCanPlay: () => setIsBuffering(false),\n    onLoadedMetadata: e => setDuration(e.currentTarget.duration),\n    onPause: () => setIsPlaying(false),\n    onPlay: () => setIsPlaying(true),\n    onPlaying: () => setIsBuffering(false),\n    onProgress: e => setBuffered(e.currentTarget.buffered),\n    onRateChange: e => setPlaybackRate(e.currentTarget.playbackRate),\n    onTimeUpdate: e => setProgress(e.currentTarget.currentTime),\n    onVolumeChange: e => setIsMuted(e.currentTarget.muted),\n    onWaiting: e => setIsBuffering(true)\n  }), []);\n  const evaluateCursorPosition = useCallback(event => {\n    if (mediaRef.current) {\n      const bounds = event.currentTarget.getBoundingClientRect();\n      const cursor = clampNumber(Math.floor(event.clientX - bounds.left), 0, bounds.width);\n      const time = cursor / bounds.width * mediaRef.current.duration;\n      return {\n        cursor,\n        time\n      };\n    }\n    return {\n      cursor: 0,\n      time: 0\n    };\n  }, []);\n  const togglePlayback = useCallback(() => {\n    if (mediaRef.current) {\n      if (mediaRef.current.paused) {\n        if (!$hasInteracted) {\n          setHasInteracted(true);\n        }\n        mediaRef.current.play();\n      } else {\n        mediaRef.current.pause();\n      }\n    }\n  }, [$hasInteracted]);\n  const jumpTo = useCallback(time => {\n    if (mediaRef.current) {\n      const t = clampNumber(time, 0, mediaRef.current.duration);\n      mediaRef.current.currentTime = t;\n      setProgress(t);\n    }\n  }, []);\n  const onSeekClick = useCallback((event, type) => {\n    event.preventDefault();\n    event.stopPropagation();\n    if (mediaRef.current) {\n      const {\n        currentTime\n      } = mediaRef.current;\n      jumpTo(type === 'rewind' ? currentTime - 10 : currentTime + 30);\n    }\n  }, [jumpTo]);\n  const onMuteClick = useCallback(event => {\n    event.preventDefault();\n    event.stopPropagation();\n    if (mediaRef.current) {\n      mediaRef.current.muted = !mediaRef.current.muted;\n    }\n  }, []);\n  const onPlaybackRateClick = useCallback(event => {\n    event.preventDefault();\n    event.stopPropagation();\n    if (mediaRef.current) {\n      mediaRef.current.playbackRate = getNextPlaybackRate(mediaRef.current.playbackRate);\n    }\n  }, []);\n  const onProgressBarClick = useCallback(event => {\n    event.preventDefault();\n    event.stopPropagation();\n    setIsDragging(false);\n  }, []);\n  const onProgressBarMouseDown = useCallback(event => {\n    event.preventDefault();\n    event.stopPropagation();\n    setIsDragging(true);\n    const {\n      time\n    } = evaluateCursorPosition(event);\n    jumpTo(time);\n  }, [evaluateCursorPosition, jumpTo]);\n  const onProgressBarMouseOver = useCallback(() => setIsHovering(true), []);\n  const onWrapClick = useCallback(event => {\n    event.preventDefault();\n    event.stopPropagation();\n    if ($isDragging) {\n      setIsDragging(false);\n    } else {\n      togglePlayback();\n    }\n  }, [$isDragging, togglePlayback]);\n  const onWrapMouseMove = useCallback(event => {\n    if (($isDragging || $isHovering) && mediaRef.current) {\n      event.preventDefault();\n      const {\n        cursor,\n        time\n      } = evaluateCursorPosition(event);\n      setHoveredTime(time);\n      setCursorX(cursor);\n      if ($isDragging) {\n        if (!mediaRef.current.paused) {\n          mediaRef.current.pause();\n          setPausedByDrag(true);\n        }\n        jumpTo(time);\n      }\n    }\n  }, [evaluateCursorPosition, $isDragging, $isHovering, jumpTo]);\n  const onWrapMouseOver = useCallback(event => {\n    if ($isDragging && event.buttons === 0) {\n      setIsDragging(false);\n    }\n  }, [$isDragging]);\n  const onWrapKeyDown = useCallback(event => {\n    if ($isDragging) {\n      return;\n    }\n    const {\n      keyCode\n    } = event;\n    if ([SPACE_KEY, L_ARROW_KEY, R_ARROW_KEY, M_KEY].includes(keyCode) && mediaRef.current) {\n      event.preventDefault();\n      switch (keyCode) {\n        case SPACE_KEY:\n          togglePlayback();\n          break;\n        case L_ARROW_KEY:\n          jumpTo(mediaRef.current.currentTime - 5);\n          break;\n        case R_ARROW_KEY:\n          jumpTo(mediaRef.current.currentTime + 5);\n          break;\n        case M_KEY:\n          mediaRef.current.muted = !mediaRef.current.muted;\n          break;\n      }\n    }\n  }, [$isDragging, jumpTo, togglePlayback]);\n  const outerWrapEvents = useMemo(() => ({\n    onClick: onWrapClick,\n    onKeyDown: onWrapKeyDown,\n    onMouseMove: onWrapMouseMove,\n    onMouseOut: () => setIsHovering(false),\n    onMouseOver: onWrapMouseOver\n  }), [onWrapClick, onWrapKeyDown, onWrapMouseMove, onWrapMouseOver]);\n  const outerWrapTitle = useMemo(() => $hasInteracted ? {\n    title: ''\n  } : {}, [$hasInteracted]);\n  const bufferedMedia = useMemo(() => {\n    if (buffered && buffered.length && mediaRef.current) {\n      return [...Array(buffered.length).keys()].map(index => {\n        return {\n          start: buffered.start(index) / mediaRef.current.duration,\n          end: buffered.end(index) / mediaRef.current.duration\n        };\n      });\n    }\n    return [];\n  }, [buffered]);\n  const currentTime = useMemo(() => formatSeconds(progress || 0), [progress]);\n  const endTime = useMemo(() => formatSeconds(duration || 0), [duration]);\n  const footerControlsProps = useMemo(() => ({\n    $cardSize: size,\n    currentTime,\n    endTime,\n    isMuted,\n    onMuteClick,\n    onPlaybackRateClick,\n    playbackRate\n  }), [currentTime, endTime, isMuted, onMuteClick, onPlaybackRateClick, playbackRate, size]);\n  const progressBarProps = useMemo(() => ({\n    bufferedMedia,\n    cursorX,\n    duration,\n    hoveredTime,\n    $isDragging,\n    $isHovering,\n    onClick: onProgressBarClick,\n    onMouseDown: onProgressBarMouseDown,\n    onMouseOver: onProgressBarMouseOver,\n    progress,\n    showTooltip: $isDragging || $isHovering\n  }), [bufferedMedia, cursorX, duration, hoveredTime, $isDragging, $isHovering, onProgressBarClick, onProgressBarMouseDown, onProgressBarMouseOver, progress]);\n  useEffect(() => {\n    if (!$isDragging && pausedByDrag && mediaRef.current && mediaRef.current.paused) {\n      mediaRef.current.play();\n      setPausedByDrag(false);\n    }\n  }, [pausedByDrag, $isDragging]);\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MediaComponent, _extends({}, mediaProps, mediaEvents, {\n    ref: setRefs,\n    autoPlay: autoPlay,\n    loop: loop,\n    muted: muted\n  })), controls && /*#__PURE__*/React.createElement(OuterWrap, _extends({}, outerWrapTitle, {\n    tabIndex: 0,\n    $hasInteracted: $hasInteracted,\n    $isDragging: $isDragging,\n    $isPlaying: $isPlaying\n  }, outerWrapEvents), /*#__PURE__*/React.createElement(Spinner, {\n    size: size,\n    $isVisible: isBuffering\n  }), !$hasInteracted ? /*#__PURE__*/React.createElement(InnerWrap, null, /*#__PURE__*/React.createElement(PlaybackButton, {\n    $cardSize: size\n  })) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(ControlsTop, {\n    $isVisible: !$isDragging\n  }, /*#__PURE__*/React.createElement(InnerWrap, null, isNotSmall && /*#__PURE__*/React.createElement(SeekButton, {\n    className: classNames.rwControl,\n    type: \"rewind\",\n    $cardSize: size,\n    onClick: event => onSeekClick(event, 'rewind')\n  }), /*#__PURE__*/React.createElement(PlaybackButton, {\n    $cardSize: size,\n    $isPlaying: $isPlaying\n  }), isNotSmall && /*#__PURE__*/React.createElement(SeekButton, {\n    className: classNames.ffwControl,\n    type: \"fastforward\",\n    $cardSize: size,\n    onClick: event => onSeekClick(event, 'fastforward')\n  })), isNotSmall && /*#__PURE__*/React.createElement(FooterControls, footerControlsProps)), /*#__PURE__*/React.createElement(ProgressBar, progressBarProps))));\n};\nvar _templateObject$1;\nconst VideoDOM = styled('video')(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteral([\"\\n  width: 100%;\\n  height: 100%;\\n  object-fit: cover;\\n  position: absolute;\\n  top: 0;\\n  right: 0;\\n  bottom: 0;\\n  left: 0;\\n\\n  &::media-controls-start-playback-button {\\n    display: none;\\n    appearance: none;\\n  }\\n\"])));\nconst Video = props => {\n  const {\n    state: {\n      imageUrl,\n      playsInline,\n      videoUrl\n    }\n  } = useContext(GlobalContext);\n  const mediaProps = useMemo(() => {\n    const mediaProps = {\n      className: \"\".concat(classNames.media, \" \").concat(classNames.video),\n      src: videoUrl,\n      playsInline\n    };\n    if (imageUrl) mediaProps.poster = imageProxy(imageUrl);\n    return mediaProps;\n  }, [imageUrl, playsInline, videoUrl]);\n  return /*#__PURE__*/React.createElement(Wrap$1, _extends({\n    className: \"\".concat(classNames.mediaWrapper, \" \").concat(classNames.videoWrapper)\n  }, props), /*#__PURE__*/React.createElement(Controls, {\n    MediaComponent: VideoDOM,\n    mediaProps: mediaProps\n  }));\n};\nconst Audio = props => {\n  const {\n    state: {\n      audioUrl\n    }\n  } = useContext(GlobalContext);\n  const mediaProps = useMemo(() => ({\n    className: \"\".concat(classNames.media, \" \").concat(classNames.audio),\n    src: audioUrl\n  }), [audioUrl]);\n  return (/*#__PURE__*/\n    // eslint-disable-next-line\n    React.createElement(ImageComponent, _extends({\n      className: \"\".concat(classNames.mediaWrapper, \" \").concat(classNames.audioWrapper)\n    }, props), /*#__PURE__*/React.createElement(Controls, {\n      MediaComponent: \"audio\",\n      mediaProps: mediaProps\n    }))\n  );\n};\nconst isUrl = url => getUrlPath(url) !== null;\nconst MEDIA_COMPONENT = {\n  video: Video,\n  image: ImageComponent,\n  audio: Audio\n};\nconst getMediaType = (isAudio, isVideo) => {\n  if (isAudio) return 'audio';\n  if (isVideo) return 'video';\n  return 'image';\n};\nconst CardMedia = () => {\n  const {\n    state: {\n      imageUrl,\n      isAudio,\n      isVideo\n    }\n  } = useContext(GlobalContext);\n  const [isLoading, setIsLoading] = useState(isUrl(imageUrl));\n  const mediaType = getMediaType(isAudio, isVideo);\n  const MediaComponent = MEDIA_COMPONENT[mediaType];\n  return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(MediaComponent, {\n    $isLoading: isLoading\n  }), isLoading && /*#__PURE__*/React.createElement(ImageLoadCatcher, {\n    src: imageUrl,\n    onLoad: () => setIsLoading(false)\n  }));\n};\nconst _excluded$1 = [\"href\", \"rel\", \"target\", \"as\"];\nvar _templateObject, _templateObject2, _templateObject3, _templateObject4, _templateObject5;\nfunction ownKeys$1(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$1(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nconst HEIGHT = '382px';\nconst contrastStyle = _ref => {\n  let {\n    $backgroundColor,\n    color\n  } = _ref;\n  return css(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\n  background-color: \", \";\\n  border-color: \", \";\\n  transition-property: filter;\\n  will-change: filter;\\n\\n  &&& {\\n    color: \", \";\\n  }\\n\\n  &:hover {\\n    filter: brightness(90%);\\n  }\\n\"])), $backgroundColor, color, color);\n};\nconst largeStyle = css(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n  flex-direction: column;\\n  height: \", \";\\n  \", \";\\n\"])), HEIGHT, media.mobile(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral([\"\\n    height: calc(\", \" * 7/9);\\n  \"])), HEIGHT));\nconst hoverStyle = css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral([\"\\n  transition-property: background, border-color;\\n  will-change: background, border-color;\\n  &:hover {\\n    background-color: var(--microlink-hover-background-color, #f5f8fa);\\n    border-color: var(--microlink-hover-border-color, #8899a680);\\n  }\\n\"])));\nconst rtlStyle = _ref2 => {\n  let {\n    $cardSize\n  } = _ref2;\n  return css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n  flex-direction: \", \";\\n\"])), isLarge($cardSize) ? 'column-reverse' : 'row-reverse');\n};\nconst baseStyle = css(() => \"\\n  max-width: var(--microlink-max-width, 500px);\\n  background-color: var(--microlink-background-color, #fff);\\n  border-width: var(--microlink-border-width, 1px);\\n  border-style: var(--microlink-border-style, solid);\\n  border-color: var(--microlink-border-color, #e1e8ed);\\n  color: var(--microlink-color, #181919);\\n  overflow: hidden;\\n  font-family: \".concat(font.sans, \";\\n  display: flex;\\n  text-decoration: none;\\n  opacity: 1;\\n  position: relative;\\n  transition-duration: \").concat(speed.medium, \";\\n  transition-timing-function: \").concat(animation.medium, \";\\n\\n  &:active,\\n  &:hover {\\n    outline: 0;\\n  }\\n\"));\nconst Element = styled('a')(baseStyle, _ref3 => {\n  let {\n    $isLoading,\n    contrast\n  } = _ref3;\n  return !$isLoading && !contrast && hoverStyle;\n}, _ref4 => {\n  let {\n    $cardSize\n  } = _ref4;\n  return isLarge($cardSize) && largeStyle;\n}, _ref5 => {\n  let {\n    direction\n  } = _ref5;\n  return direction === 'rtl' && rtlStyle;\n}, _ref6 => {\n  let {\n    $backgroundColor,\n    color,\n    contrast\n  } = _ref6;\n  return contrast && color && $backgroundColor && contrastStyle;\n}, _ref7 => {\n  let {\n    $backgroundColor,\n    color,\n    contrast\n  } = _ref7;\n  return contrast && (!color || !$backgroundColor) && hoverStyle;\n});\nconst CardWrap = /*#__PURE__*/forwardRef((_ref8, ref) => {\n  let {\n      href,\n      rel = 'noopener noreferrer',\n      target = '_blank',\n      as = 'a'\n    } = _ref8,\n    restProps = _objectWithoutProperties(_ref8, _excluded$1);\n  const {\n    state: {\n      $backgroundColor,\n      color,\n      title\n    },\n    props: {\n      size: $cardSize\n    }\n  } = useContext(GlobalContext);\n  return /*#__PURE__*/createElement(Element, _objectSpread$1(_objectSpread$1(_objectSpread$1({}, as === 'a' ? {\n    href,\n    rel,\n    target\n  } : undefined), restProps), {}, {\n    $backgroundColor,\n    $cardSize,\n    color,\n    ref,\n    title\n  }));\n});\nCardWrap.displayName = 'CardWrap';\n\n/* global IntersectionObserver */\n\nconst useIntersectionObserver = (enabled, options) => {\n  const [hasIntersected, setHasIntersected] = useState(false);\n  const refCallback = useCallback(node => {\n    if (enabled) {\n      const onIntersect = (_ref, self) => {\n        let [entry] = _ref;\n        if (entry.isIntersecting) {\n          setHasIntersected(true);\n          self.unobserve(entry.target);\n        }\n      };\n      const observer = new IntersectionObserver(onIntersect, options);\n      if (node !== null) {\n        observer.observe(node);\n      }\n    } else {\n      setHasIntersected(true);\n    }\n  }, [enabled, options]);\n  return [hasIntersected, refCallback];\n};\nvar _CardEmpty, _CardMedia, _CardContent;\nconst _excluded$9 = [\"className\", \"fetchData\", \"lazy\", \"loading\", \"media\", \"setData\", \"url\", \"apiKey\"],\n  _excluded2 = [\"className\", \"apiKey\", \"autoPlay\", \"controls\", \"direction\", \"lazy\", \"loop\", \"media\", \"fetchData\", \"muted\", \"playsInline\", \"size\"];\nfunction ownKeys$5(e, r) {\n  var t = Object.keys(e);\n  if (Object.getOwnPropertySymbols) {\n    var o = Object.getOwnPropertySymbols(e);\n    r && (o = o.filter(function (r) {\n      return Object.getOwnPropertyDescriptor(e, r).enumerable;\n    })), t.push.apply(t, o);\n  }\n  return t;\n}\nfunction _objectSpread$5(e) {\n  for (var r = 1; r < arguments.length; r++) {\n    var t = null != arguments[r] ? arguments[r] : {};\n    r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) {\n      _defineProperty(e, r, t[r]);\n    }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) {\n      Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n    });\n  }\n  return e;\n}\nconst Card = props => {\n  const {\n      className,\n      fetchData,\n      lazy,\n      loading,\n      media: mediaProp,\n      setData,\n      url,\n      apiKey // destructuring to avoid pass it\n    } = props,\n    restProps = _objectWithoutProperties(props, _excluded$9);\n  const mediaProps = useMemo(() => castArray(mediaProp), [mediaProp]);\n  const {\n    updateState\n  } = useContext(GlobalContext);\n  const [loadingState, setLoading] = useState(true);\n  const [iframeMedia, setIframeMedia] = useState(null);\n  const [isError, setIsError] = useState(false);\n  const isLoadingUndefined = useMemo(() => loading === undefined, [loading]);\n  const [apiUrl, apiUrlProps] = useMemo(() => getApiUrl(_objectSpread$5(_objectSpread$5({}, props), {}, {\n    media: mediaProps\n  })), [mediaProps, props]);\n  const isLazyEnabled = useMemo(() => isLazySupported && (lazy === true || isObject(lazy)), [lazy]);\n  const lazyOptions = useMemo(() => isObject(lazy) ? lazy : undefined, [lazy]);\n  const [hasIntersected, cardRef] = useIntersectionObserver(isLazyEnabled, lazyOptions);\n  const canFetchData = useMemo(() => !isLazyEnabled || isLazyEnabled && hasIntersected, [isLazyEnabled, hasIntersected]);\n  const mergeData = useCallback(fetchedData => {\n    const payload = isFunction(setData) ? setData(fetchedData) : _objectSpread$5(_objectSpread$5({}, fetchedData), setData);\n    const {\n      title,\n      description,\n      url,\n      video,\n      audio,\n      image,\n      logo,\n      iframe\n    } = payload;\n    const mediaFallback = image || logo || {};\n    let media = mediaFallback;\n    let videoUrl;\n    let audioUrl;\n    let isVideo = false;\n    let isAudio = false;\n    const preferredMedia = getPreferredMedia(payload, mediaProps);\n    switch (preferredMedia) {\n      case 'audio':\n        isAudio = true;\n        audioUrl = getUrlPath(audio);\n        break;\n      case 'video':\n        isVideo = true;\n        videoUrl = getUrlPath(video);\n        break;\n      case 'iframe':\n        setIframeMedia(iframe);\n        break;\n      default:\n        media = someProp(payload, mediaProps) || mediaFallback;\n        break;\n    }\n    const imageUrl = getUrlPath(media);\n    const {\n      color,\n      background_color: $backgroundColor\n    } = media;\n    updateState({\n      url,\n      color,\n      title,\n      description,\n      imageUrl,\n      videoUrl,\n      audioUrl,\n      isVideo,\n      isAudio,\n      $backgroundColor\n    });\n    setLoading(false);\n  }, [updateState, mediaProps, setData]);\n  const toFetchData = useCallback(() => {\n    if (canFetchData) {\n      setLoading(true);\n      const fetch = fetchData ? fetchFromApi(apiUrl, apiUrlProps) : Promise.resolve({});\n      fetch.then(_ref => {\n        let {\n          data\n        } = _ref;\n        return mergeData(data);\n      }).catch(error => {\n        setLoading(false);\n        setIsError(true);\n        console.error(\"\\n\\u250C\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2510\\n\\u2502 Microlink SDK \\u2502\\n\\u2514\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2500\\u2518\\n\\n\".concat(error.description, \"\\n\\n\").concat(JSON.stringify(error.data), \"\\n\\nid   \").concat(error.headers['x-request-id'], \"\\nuri  \").concat(error.url, \"\\ncode \").concat(error.code, \" (\").concat(error.statusCode, \")\\n\\nmicrolink.io/\").concat(error.code.toLowerCase(), \"\\n\"));\n      });\n    }\n  }, [apiUrlProps, fetchData, apiUrl, mergeData, canFetchData]);\n  useEffect(toFetchData, [url, setData, hasIntersected]);\n  const isLoading = isLoadingUndefined ? loadingState : loading;\n  if (isError) {\n    return /*#__PURE__*/React.createElement(\"a\", _extends({\n      href: url\n    }, restProps), url);\n  }\n  if (iframeMedia) {\n    if (!isSSR) {\n      iframeMedia.scripts.forEach(attrs => {\n        const hasScript = document.querySelector(\"script[src=\\\"\".concat(attrs.src, \"\\\"]\"));\n        if (!hasScript) {\n          const script = document.createElement('script');\n          Object.keys(attrs).forEach(key => script[key] = attrs[key]);\n          document.body.appendChild(script);\n        }\n      });\n    }\n    return /*#__PURE__*/React.createElement(\"div\", _extends({\n      className: classNames.iframe,\n      dangerouslySetInnerHTML: {\n        __html: iframeMedia.html\n      }\n    }, restProps));\n  }\n  return /*#__PURE__*/React.createElement(CardWrap, _extends({\n    className: \"\".concat(classNames.main, \" \").concat(className).trim(),\n    href: url,\n    $isLoading: isLoading,\n    ref: cardRef\n  }, restProps), isLoading ? _CardEmpty || (_CardEmpty = /*#__PURE__*/React.createElement(CardEmptyState, null)) : /*#__PURE__*/React.createElement(React.Fragment, null, _CardMedia || (_CardMedia = /*#__PURE__*/React.createElement(CardMedia, null)), _CardContent || (_CardContent = /*#__PURE__*/React.createElement(CardContent, null))));\n};\nconst Microlink = _ref2 => {\n  let {\n      className = '',\n      apiKey = undefined,\n      autoPlay = true,\n      controls = true,\n      direction = 'ltr',\n      lazy = true,\n      loop = true,\n      media = ['iframe', 'video', 'audio', 'image', 'logo'],\n      fetchData = true,\n      muted = true,\n      playsInline = true,\n      size = 'normal'\n    } = _ref2,\n    props = _objectWithoutProperties(_ref2, _excluded2);\n  return /*#__PURE__*/React.createElement(GlobalState, _extends({\n    className: className,\n    apiKey: apiKey,\n    autoPlay: autoPlay,\n    controls: controls,\n    direction: direction,\n    lazy: lazy,\n    loop: loop,\n    media: media,\n    fetchData: fetchData,\n    muted: muted,\n    playsInline: playsInline,\n    size: size\n  }, props), otherProps => /*#__PURE__*/React.createElement(Card, otherProps));\n};\n\nconst _excluded = [\"LinkComponent\"];\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nconst PopOver = styled$1.div`\n  --microlink-hover-background-color: var(--microlink-background-color, white);\n\n  position: absolute;\n  overflow: hidden;\n  visibility: hidden;\n  transition: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);\n  opacity: 0;\n  right: 50%;\n  transform: translate(50%, 0);\n  bottom: 100%;\n  box-shadow: 0 5px 10px rgba(0, 0, 0, 0.12);\n  width: 500px;\n  padding: 0.5rem;\n  border-radius: 4px;\n\n  .microlink_card {\n    border: 0;\n  }\n\n  border: 1px solid var(--microlink-border-color, #e1e8ed);\n  background-color: var(--microlink-hover-background-color);\n\n  &:hover {\n    box-shadow: rgba(0, 0, 0, 0.12) 0px 30px 60px;\n    border-color: var(--microlink-hover-border-color, #f5f8fa);\n  }\n`;\nconst Wrapper = styled$1.span`\n  text-decoration: inherit;\n  position: relative;\n  display: inline-block;\n\n  &:hover ${PopOver} {\n    margin-bottom: var(--microlink-gap, 15px);\n    visibility: visible;\n    opacity: 1;\n  }\n`;\nconst withHover = _ref => {\n  let {\n      LinkComponent\n    } = _ref,\n    props = _objectWithoutProperties(_ref, _excluded);\n  return /*#__PURE__*/React.createElement(Wrapper, null, /*#__PURE__*/React.createElement(LinkComponent, props), /*#__PURE__*/React.createElement(PopOver, {\n    className: \"microlink_hover\"\n  }, /*#__PURE__*/React.createElement(Microlink, props)));\n};\nconst MicrolinkHover = (LinkComponent, microlinkProps) => props => withHover(_objectSpread(_objectSpread({\n  LinkComponent\n}, microlinkProps), props));\nMicrolinkHover.withHover = withHover;\n\nexport { MicrolinkHover as default };\n","'use strict'\nmodule.exports = hostname => require('./ipv4')(hostname) || require('./ipv6')(hostname)\n","'use strict'\n\nconst IP_RANGES = [\n  // 10.0.0.0 - 10.255.255.255\n  /^(:{2}f{4}:)?10(?:\\.\\d{1,3}){3}$/,\n  // 127.0.0.0 - 127.255.255.255\n  /^(:{2}f{4}:)?127(?:\\.\\d{1,3}){3}$/,\n  // 169.254.1.0 - 169.254.254.255\n  /^(::f{4}:)?169\\.254\\.([1-9]|1?\\d\\d|2[0-4]\\d|25[0-4])\\.\\d{1,3}$/,\n  // 172.16.0.0 - 172.31.255.255\n  /^(:{2}f{4}:)?(172\\.1[6-9]|172\\.2\\d|172\\.3[01])(?:\\.\\d{1,3}){2}$/,\n  // 192.168.0.0 - 192.168.255.255\n  /^(:{2}f{4}:)?192\\.168(?:\\.\\d{1,3}){2}$/,\n  // fc00::/7\n  /^f[cd][\\da-f]{2}(::1$|:[\\da-f]{1,4}){1,7}$/,\n  // fe80::/10s\n  /^fe[89ab][\\da-f](::1$|:[\\da-f]{1,4}){1,7}$/,\n  // localhost in IPv4\n  /^localhost$|^0\\.0\\.0\\.0$/\n]\n\nconst regex = new RegExp(`^(${IP_RANGES.map(re => re.source).join('|')})$`)\n\nmodule.exports = regex.test.bind(regex)\nmodule.exports.regex = regex\n","'use strict'\n\nconst IP_RANGES = [\n  // localhost in IPv6\n  /^\\[(::1|::)\\]$/\n]\n\nconst regex = new RegExp(`^(${IP_RANGES.map(re => re.source).join('|')})$`)\n\nmodule.exports = regex.test.bind(regex)\nmodule.exports.regex = regex\n","import MicrolinkHover from '@microlink/hover-react'\nimport isLocalAddress from 'is-local-address'\nimport { createRoot } from 'react-dom'\nimport styled from 'styled-components'\nimport React from 'react'\n\nfunction toArray (input) {\n  const collection = (\n    typeof input === 'string'\n      ? Array.from(document.querySelectorAll(input))\n      : [].concat(input)\n  ).filter(Boolean)\n\n  return collection\n    .map(el => {\n      el.href = new URL(el.href).toString()\n      return el\n    })\n    .filter(el => {\n      const { protocol, hostname } = new URL(el.href)\n      return protocol === 'http:' && !isLocalAddress(hostname)\n    })\n}\n\nfunction parseJSON (value) {\n  try {\n    return JSON.parse(value)\n  } catch (err) {\n    return value\n  }\n}\n\nfunction parseObject (obj) {\n  return Object.keys(obj).reduce(function (acc, key) {\n    acc[key] = parseJSON(obj[key])\n    return acc\n  }, {})\n}\n\nfunction microlink (selector, opts, rootNode) {\n  return toArray(selector).forEach(function (el) {\n    createRoot(rootNode || el).render(\n      React.createElement(\n        MicrolinkHover.withHover,\n        Object.assign(\n          {\n            LinkComponent: styled('a')``,\n            as: 'div',\n            children: el.text,\n            url: el.getAttribute('href')\n          },\n          opts,\n          parseObject(el.dataset)\n        )\n      )\n    )\n  })\n}\n\nmicrolink.version = '__VERSION__'\n\nexport default microlink\n"],"names":["_typeof","o","Symbol","iterator","constructor","prototype","toPropertyKey","t","i","r","e","toPrimitive","call","TypeError","String","Number","_defineProperty","Object","defineProperty","value","enumerable","configurable","writable","_objectWithoutProperties","n","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","length","propertyIsEnumerable","_extends","assign","bind","arguments","apply","_taggedTemplateLiteral","slice","freeze","defineProperties","raw","_excluded$8","ownKeys$4","keys","filter","getOwnPropertyDescriptor","push","_objectSpread$4","forEach","getOwnPropertyDescriptors","l","_ref","accessibility","debounce","ellipsis","u","is","c","lines","s","text","d","v","a","useRef","f","h","ref","title","g","useMemo","m","useCallback","current","innerText","clientHeight","Math","floor","max","trim","useEffect","clearTimeout","setTimeout","window","addEventListener","removeEventListener","createElement","getDefaultExportFromCjs","x","__esModule","hasRequiredIpv4","ipv4","exports","hasRequiredIpv6","ipv6","_templateObject$i","isLocalAddress","hostname","regex","RegExp","concat","map","re","source","join","test","requireIpv4","requireIpv6","isSSR","isFunction","fn","isObject","obj","isNil","getUrlPath","data","url","media","css","isLarge","cardSize","isSmall","imageProxy","URL","URLSearchParams","default","af","il","toString","isLazySupported","formatSeconds","secs","secsToNum","parseInt","clampNumber","num","min","CONTENT_BASE_CLASSNAME","MEDIA_BASE_CLASSNAME","CONTROLS_BASE_CLASSNAME","classNames","main","content","description","mediaWrapper","image","videoWrapper","video","audioWrapper","audio","mediaControls","playbackControl","volumeControl","rwControl","ffwControl","rateControl","progressBar","progressTime","spinner","iframe","_excluded$7","_templateObject$h","_templateObject2$d","ownKeys$3","_objectSpread$3","StyledClamp","styled","children","className","React","_ref2","$useNanoClamp","CardText","_ref3","useNanoClamp","props","textProps","as","speed","short","medium","long","animation","createTransition","properties","suffix","property","transition","_len","Array","_key","_len2","_key2","_len3","_key3","font","_excluded$6","ownKeys$2","_objectSpread$2","initialState","GlobalContext","createContext","GlobalState","autoPlay","controls","loop","mediaRef","muted","playsInline","size","rest","state","setState","useState","updateState","newState","currentState","values","Provider","_templateObject$g","_templateObject2$c","_templateObject3$b","_templateObject4$9","_templateObject5$6","_templateObject6$2","_templateObject7$2","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","REGEX_STRIP_WWW","mobileDescriptionStyle","Content","attrs","$cardSize","Header","Description","Footer","_ref4","Author","PoweredBy","CardContent","useContext","isSmallCard","formattedUrl","href","replace","getHostname","handleOnClick","preventDefault","open","onClick","_templateObject$f","_templateObject2$b","_templateObject3$a","_templateObject4$8","emptyStatePulse","keyframes","emptyStateImagePulse","emptyStateAnimation","emptyStateImageAnimation","_templateObject$e","_templateObject2$a","_templateObject3$9","ImageLoadCatcher","loadingOverlay","$isLoading","_templateObject$d","_templateObject2$9","_templateObject3$8","_templateObject4$7","_templateObject5$5","mediaSizeStyles","small","normal","large","StyledWrap","Wrap$1","_templateObject$c","ImageWrap","ImageComponent","imageUrl","_templateObject$b","_templateObject2$8","_templateObject3$7","_templateObject4$6","_FooterEmpty","MediaEmpty","HeaderEmpty","DescriptionEmpty","FooterEmpty","CardEmptyState","Fragment","style","marginBottom","_templateObject$a","MediaButton","_path$2","_path2$2","_templateObject$9","_templateObject2$7","_templateObject3$6","_templateObject4$5","_templateObject5$4","_templateObject6$1","_templateObject7$1","VolumeMute","xmlns","viewBox","fill","fillRule","stroke","strokeWidth","transform","VolumeUp","BottomControls","VolumeIcon","VolumeButton","PlaybackRateButton","_ref5","_ref6","_ref7","TimeLabel","_ref8","$right","FooterControls","_ref9","currentTime","endTime","isMuted","onMuteClick","onPlaybackRateClick","playbackRate","VolumeComponent","isLargeCard","_excluded$5","_path$1","_path2$1","_templateObject$8","_templateObject2$6","_templateObject3$5","_templateObject4$4","Pause","Play","iconSizes","PlaybackIcon","PlaybackButtonWrap","PlaybackButton","$isPlaying","PlaybackComponent","_templateObject$7","_templateObject2$5","scrubberSizeScales","Scrubber","$isVisible","$positionX","left","opacity","visibility","scrubberSize","_excluded$4","_templateObject$6","sizeScales$1","TooltipBase","$position","$isDragging","$visible","top","Tooltip","forwardRef","label","displayName","_excluded$3","_templateObject$5","_templateObject2$4","_templateObject3$4","_templateObject4$3","_templateObject5$3","_templateObject6","_templateObject7","heightScales","activeHeightScales","getProgressBarActiveHeight","OuterWrap$1","PADDING","BarsWrap","activeHeight","height","ProgressLine","ProgressMask","$maskScale","ProgressHover","$cursorRatio","$isHovering","$progressPercent","BufferedChunk","start","end","right","ProgressBar","bufferedMedia","cursorX","duration","hoveredTime","onMouseDown","onMouseOver","progress","showTooltip","wrapRef","tooltipRef","getWrapWidth","getBoundingClientRect","width","progressRatio","wrapWidth","startPoint","cursorPosition","toFixed","bufferedMediaChunks","chunk","key","tooltipLabel","tooltipPositionX","tooltipHalf","mouseEvents","showAccessories","_path","_path2","_templateObject$4","_templateObject2$3","_templateObject3$3","_excluded$2","_excluded2$1","_excluded3","Backward","Forward","SeekIcon","SeekButtonWrap","SeekButton","type","IconComponent","_templateObject$3","_templateObject2$2","_templateObject3$2","_templateObject4$2","_templateObject5$2","_Svg","offsetScales","sizeScales","rotate","dash","Wrap","getSpinnerSize","offset","getSpinnerOffset","Svg","Circle","Spinner","cx","cy","_templateObject$2","_templateObject2$1","_templateObject3$1","_templateObject4$1","_templateObject5$1","SPACE_KEY","L_ARROW_KEY","R_ARROW_KEY","M_KEY","OuterWrap","$hasInteracted","bg","isPaused","InnerWrap","ControlsTop","Controls","MediaComponent","mediaProps","propRef","setDuration","setProgress","buffered","setBuffered","setCursorX","setHoveredTime","setIsPlaying","setIsMuted","isBuffering","setIsBuffering","setIsHovering","setIsDragging","setPlaybackRate","setHasInteracted","pausedByDrag","setPausedByDrag","setRefs","node","isNotSmall","mediaEvents","onCanPlay","onLoadedMetadata","currentTarget","onPause","onPlay","onPlaying","onProgress","onRateChange","onTimeUpdate","onVolumeChange","onWaiting","evaluateCursorPosition","event","bounds","cursor","clientX","time","togglePlayback","paused","play","pause","jumpTo","onSeekClick","stopPropagation","rate","getNextPlaybackRate","onProgressBarClick","onProgressBarMouseDown","onProgressBarMouseOver","onWrapClick","onWrapMouseMove","onWrapMouseOver","buttons","onWrapKeyDown","keyCode","includes","outerWrapEvents","onKeyDown","onMouseMove","onMouseOut","outerWrapTitle","index","footerControlsProps","progressBarProps","tabIndex","_templateObject$1","VideoDOM","MEDIA_COMPONENT","videoUrl","src","poster","audioUrl","CardMedia","isAudio","isVideo","isLoading","setIsLoading","mediaType","getMediaType","onLoad","_excluded$1","_templateObject","_templateObject2","_templateObject3","_templateObject4","_templateObject5","ownKeys$1","_objectSpread$1","contrastStyle","$backgroundColor","color","largeStyle","hoverStyle","rtlStyle","baseStyle","Element","contrast","direction","CardWrap","rel","target","restProps","undefined","_CardEmpty","_CardMedia","_CardContent","_excluded$9","_excluded2","ownKeys$5","_objectSpread$5","Card","fetchData","lazy","loading","mediaProp","setData","apiKey","loadingState","setLoading","iframeMedia","setIframeMedia","isError","setIsError","isLoadingUndefined","apiUrl","apiUrlProps","endpoint","force","headers","prerender","proxy","ttl","getApiUrl$1","palette","screenshot","getApiUrl","isLazyEnabled","lazyOptions","hasIntersected","cardRef","enabled","options","setHasIntersected","observer","IntersectionObserver","self","entry","isIntersecting","unobserve","observe","useIntersectionObserver","canFetchData","mergeData","fetchedData","payload","logo","mediaFallback","preferredMedia","prefer","getPreferredMedia","find","prop","someProp","background_color","toFetchData","fetchFromApi","Promise","resolve","then","catch","error","console","JSON","stringify","code","statusCode","toLowerCase","scripts","document","querySelector","script","body","appendChild","dangerouslySetInnerHTML","__html","html","Microlink","otherProps","_excluded","ownKeys","_objectSpread","PopOver","styled$1","div","Wrapper","span","withHover","LinkComponent","MicrolinkHover","microlinkProps","ipv4Module","require$$0","ipv6Module","require$$1","parseObject","reduce","acc","parse","err","parseJSON","microlink","selector","opts","rootNode","input","from","querySelectorAll","Boolean","el","protocol","createRoot","render","getAttribute","dataset","version"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11]}