{"version":3,"file":"microlink.min.mjs","sources":["../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/typeof.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/defineProperty.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteral.js","../../../node_modules/.pnpm/@babel+runtime@7.24.5/node_modules/@babel/runtime/helpers/esm/extends.js","../../../node_modules/.pnpm/@microlink+hover-react@5.5.22_react-dom@18.2.0_react@18.2.0__react@18.2.0_styled-components@6_mt2zxahs6qy6yljzdediedimqu/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":["export default 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}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function toPropertyKey(t) {\n  var i = toPrimitive(t, \"string\");\n  return \"symbol\" == _typeof(i) ? i : i + \"\";\n}","import _typeof from \"./typeof.js\";\nexport default function 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}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n  key = toPropertyKey(key);\n  if (key in obj) {\n    Object.defineProperty(obj, key, {\n      value: value,\n      enumerable: true,\n      configurable: true,\n      writable: true\n    });\n  } else {\n    obj[key] = value;\n  }\n  return obj;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n  if (source == null) return {};\n  var target = objectWithoutPropertiesLoose(source, excluded);\n  var key, i;\n  if (Object.getOwnPropertySymbols) {\n    var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n    for (i = 0; i < sourceSymbolKeys.length; i++) {\n      key = sourceSymbolKeys[i];\n      if (excluded.indexOf(key) >= 0) continue;\n      if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  for (var key in source) {\n    if (Object.prototype.hasOwnProperty.call(source, key)) {\n      if (excluded.indexOf(key) >= 0) continue;\n      target[key] = source[key];\n    }\n  }\n  return target;\n}","export default function _taggedTemplateLiteral(strings, raw) {\n  if (!raw) {\n    raw = strings.slice(0);\n  }\n  return Object.freeze(Object.defineProperties(strings, {\n    raw: {\n      value: Object.freeze(raw)\n    }\n  }));\n}","export default function _extends() {\n  _extends = Object.assign ? Object.assign.bind() : function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}","import _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';\nimport _taggedTemplateLiteral from '@babel/runtime/helpers/taggedTemplateLiteral';\nimport _extends from '@babel/runtime/helpers/extends';\nimport React, { useContext, forwardRef, createElement, useRef, useMemo, useCallback, useEffect, useState } from 'react';\nimport styled$1, { styled, css, keyframes } from 'styled-components';\nimport { fetchFromApi, getApiUrl as getApiUrl$1 } from '@microlink/mql';\n\nvar _templateObject$1, _templateObject2$1, _templateObject3, _templateObject4, _templateObject5, _templateObject6, _templateObject7, _templateObject8, _templateObject9, _templateObject10, _templateObject11, _templateObject12, _templateObject13, _templateObject14, _templateObject15, _templateObject16, _templateObject17, _templateObject18, _templateObject19, _templateObject20, _templateObject21, _templateObject22, _templateObject23, _templateObject24, _templateObject25, _templateObject26, _templateObject27, _templateObject28, _templateObject29, _templateObject30, _templateObject31, _templateObject32, _templateObject33, _templateObject34, _templateObject35, _templateObject36, _templateObject37, _templateObject38, _templateObject39, _templateObject40, _templateObject41, _templateObject42, _templateObject43, _templateObject44, _templateObject45, _templateObject46, _templateObject47, _templateObject48, _templateObject49, _templateObject50, _templateObject51, _templateObject52, _templateObject53, _templateObject54, _templateObject55, _templateObject56, _templateObject57, _templateObject58, _templateObject59, _templateObject60, _templateObject61, _templateObject62, _templateObject63, _templateObject64, _templateObject65, _templateObject66, _templateObject67, _templateObject68, _templateObject69, _templateObject70, _templateObject71, _templateObject72, _templateObject73, _templateObject74;\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), !0).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 = !0,\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 src = () => /^https?:\\/\\/(localhost|0|10|127|192(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\\[::1?\\])/gi;\nvar localhostUrl = /*@__PURE__*/getDefaultExportFromCjs(src);\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$1 || (_templateObject$1 = _taggedTemplateLiteral([\"\\n    @media (max-width: 48em) {\\n      \", \";\\n    }\\n  \"])), css(...arguments));\n  },\n  desktop: function () {\n    return css(_templateObject2$1 || (_templateObject2$1 = _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 => localhostUrl().test(url) ? 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\"];\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), !0).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)(_templateObject3 || (_templateObject3 = _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(_templateObject4 || (_templateObject4 = _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), !0).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};\n\n/* global URL */\n\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(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral([\"\\n  \", \";\\n\"])), media.mobile(_templateObject6 || (_templateObject6 = _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})(_templateObject7 || (_templateObject7 = _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(_templateObject8 || (_templateObject8 = _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})(_templateObject9 || (_templateObject9 = _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(_templateObject10 || (_templateObject10 = _taggedTemplateLiteral([\"\\n    flex-grow: \", \";\\n    font-size: \", \";\\n\\n    \", \"\\n  \"])), !isSmall($cardSize) ? 1.2 : 0.8, !isSmall($cardSize) ? '16px' : '15px', isSmall($cardSize) && css(_templateObject11 || (_templateObject11 = _taggedTemplateLiteral([\"\\n      min-width: 0;\\n      padding-right: 14px;\\n    \"]))));\n});\nconst Description = styled('div').attrs({\n  className: classNames.description\n})(_templateObject12 || (_templateObject12 = _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})(_templateObject13 || (_templateObject13 = _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(_templateObject14 || (_templateObject14 = _taggedTemplateLiteral([\"\\n    font-size: \", \";\\n    \", \"\\n  \"])), !isSmall($cardSize) ? '12px' : '10px', !isSmall($cardSize) && 'width: 100%;');\n});\nconst Author = styled(CardText)(_templateObject15 || (_templateObject15 = _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})(_templateObject16 || (_templateObject16 = _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};\nconst emptyStatePulse = keyframes(_templateObject17 || (_templateObject17 = _taggedTemplateLiteral([\"\\n  0% {\\n    background: #e1e8ed;\\n  }\\n  70% {\\n    background: #cdd4d8;\\n  }\\n  100% {\\n    background: #e1e8ed;\\n  }\\n\"])));\nconst emptyStateImagePulse = keyframes(_templateObject18 || (_templateObject18 = _taggedTemplateLiteral([\"\\n  0% {\\n    background: #e1e8ed;\\n  }\\n  70% {\\n    background: #dce3e8;\\n  }\\n  100% {\\n    background: #e1e8ed;\\n  }\\n\"])));\nconst emptyStateAnimation = css(_templateObject19 || (_templateObject19 = _taggedTemplateLiteral([\"\\n  animation: \", \" .75s linear infinite;\\n\"])), emptyStatePulse);\nconst emptyStateImageAnimation = css(_templateObject20 || (_templateObject20 = _taggedTemplateLiteral([\"\\n  animation: \", \" 1.25s linear infinite;\\n\"])), emptyStateImagePulse);\nconst ImageLoadCatcher = styled('img')(_templateObject21 || (_templateObject21 = _taggedTemplateLiteral([\"\\n  height: 1px;\\n  width: 1px;\\n  position: absolute;\\n  z-index: -1;\\n\"])));\nconst loadingOverlay = css(_templateObject22 || (_templateObject22 = _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(_templateObject23 || (_templateObject23 = _taggedTemplateLiteral([\"\\n      opacity: \", \";\\n      visibility: \", \";\\n    \"])), $isLoading ? 1 : 0, $isLoading ? 'visible' : 'hidden');\n});\nconst mediaSizeStyles = {\n  small: css(_templateObject24 || (_templateObject24 = _taggedTemplateLiteral([\"\\n    flex: 0 0 48px;\\n  \"]))),\n  normal: css(_templateObject25 || (_templateObject25 = _taggedTemplateLiteral([\"\\n    flex: 0 0 125px;\\n\\n    \", \"\\n  \"])), media.mobile(_templateObject26 || (_templateObject26 = _taggedTemplateLiteral([\"\\n      flex: 0 0 92px;\\n    \"])))),\n  large: css(_templateObject27 || (_templateObject27 = _taggedTemplateLiteral([\"\\n    flex: 1;\\n\\n    &::before {\\n      padding-bottom: 0;\\n    }\\n  \"])))\n};\nconst StyledWrap = styled('div')(_templateObject28 || (_templateObject28 = _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};\nconst ImageWrap = styled(Wrap$1).attrs({\n  className: \"\".concat(classNames.media, \" \").concat(classNames.image)\n})(_templateObject29 || (_templateObject29 = _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 _FooterEmpty;\nconst MediaEmpty = styled(ImageComponent)(_templateObject30 || (_templateObject30 = _taggedTemplateLiteral([\"\\n  \", \";\\n\"])), emptyStateImageAnimation);\nconst HeaderEmpty = styled('span')(_templateObject31 || (_templateObject31 = _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')(_templateObject32 || (_templateObject32 = _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')(_templateObject33 || (_templateObject33 = _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};\nconst MediaButton = styled('div')(_templateObject34 || (_templateObject34 = _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;\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')(_templateObject35 || (_templateObject35 = _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')(_templateObject36 || (_templateObject36 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n\"])));\nconst VolumeButton = styled(MediaButton).attrs({\n  className: classNames.volumeControl\n})(_templateObject37 || (_templateObject37 = _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(_templateObject38 || (_templateObject38 = _taggedTemplateLiteral([\"\\n      width: 12px;\\n      height: 12px;\\n    \"])));\n});\nconst PlaybackRateButton = styled(MediaButton).attrs({\n  className: classNames.rateControl\n})(_templateObject39 || (_templateObject39 = _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(_templateObject40 || (_templateObject40 = _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})(_templateObject41 || (_templateObject41 = _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;\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')(_templateObject42 || (_templateObject42 = _taggedTemplateLiteral([\"\\n  stroke: #fff;\\n\"])));\nconst PlaybackButtonWrap = styled(MediaButton).attrs({\n  className: classNames.playbackControl\n})(_templateObject43 || (_templateObject43 = _taggedTemplateLiteral([\"\\n  \", \" {\\n    \", \"\\n  }\\n\"])), PlaybackIcon, _ref => {\n  let {\n    $cardSize\n  } = _ref;\n  return css(_templateObject44 || (_templateObject44 = _taggedTemplateLiteral([\"\\n      width: \", \";\\n      height: \", \";\\n      padding: \", \";\\n\\n      \", \"\\n    \"])), iconSizes[$cardSize], iconSizes[$cardSize], isLarge($cardSize) ? 0 : '8px', !isLarge($cardSize) && !isSmall($cardSize) && media.mobile(_templateObject45 || (_templateObject45 = _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};\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})(_templateObject46 || (_templateObject46 = _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(_templateObject47 || (_templateObject47 = _taggedTemplateLiteral([\"\\n      height: \", \"px;\\n      width: \", \"px;\\n    \"])), scrubberSize, scrubberSize);\n});\nconst _excluded$4 = [\"isDragging\", \"isVisible\", \"label\", \"positionX\", \"size\"];\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})(_templateObject48 || (_templateObject48 = _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\"];\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}))(_templateObject49 || (_templateObject49 = _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})(_templateObject50 || (_templateObject50 = _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(_templateObject51 || (_templateObject51 = _taggedTemplateLiteral([\"\\n      height: \", \"px;\\n\\n      \", \":hover & {\\n        height: \", \"px;\\n      }\\n    \"])), height, OuterWrap$1, activeHeight);\n});\nconst ProgressLine = styled('div')(_templateObject52 || (_templateObject52 = _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})(_templateObject53 || (_templateObject53 = _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})(_templateObject54 || (_templateObject54 = _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})(_templateObject55 || (_templateObject55 = _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;\nconst _excluded$2 = [\"$cardSize\"],\n  _excluded2 = [\"$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);\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')(_templateObject56 || (_templateObject56 = _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(_templateObject57 || (_templateObject57 = _taggedTemplateLiteral([\"\\n    width: 0;\\n    height: 0;\\n  \"])));\n});\nconst SeekButtonWrap = styled(MediaButton)(_templateObject58 || (_templateObject58 = _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 _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(_templateObject59 || (_templateObject59 = _taggedTemplateLiteral([\"\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n\"])));\nconst dash = keyframes(_templateObject60 || (_templateObject60 = _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(_templateObject61 || (_templateObject61 = _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')(_templateObject62 || (_templateObject62 = _taggedTemplateLiteral([\"\\n  width: 100%;\\n  animation: \", \" 2s linear infinite;\\n  will-change: transform;\\n\"])), rotate);\nconst Circle = styled('circle')(_templateObject63 || (_templateObject63 = _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};\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})(_templateObject64 || (_templateObject64 = _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(_templateObject65 || (_templateObject65 = _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')(_templateObject66 || (_templateObject66 = _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')(_templateObject67 || (_templateObject67 = _taggedTemplateLiteral([\"\\n  flex: 1;\\n\\n  \", \"\\n\"])), _ref2 => {\n  let {\n    isVisible\n  } = _ref2;\n  return !isVisible && css(_templateObject68 || (_templateObject68 = _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};\nconst VideoDOM = styled('video')(_templateObject69 || (_templateObject69 = _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\"];\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), !0).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(_templateObject70 || (_templateObject70 = _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(_templateObject71 || (_templateObject71 = _taggedTemplateLiteral([\"\\n  flex-direction: column;\\n  height: \", \";\\n  \", \";\\n\"])), HEIGHT, media.mobile(_templateObject72 || (_templateObject72 = _taggedTemplateLiteral([\"\\n    height: calc(\", \" * 7/9);\\n  \"])), HEIGHT));\nconst hoverStyle = css(_templateObject73 || (_templateObject73 = _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(_templateObject74 || (_templateObject74 = _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,\n      target\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({}, restProps.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';\nCardWrap.defaultProps = {\n  as: 'a',\n  rel: 'noopener noreferrer',\n  target: '_blank'\n};\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\"];\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), !0).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 = props => /*#__PURE__*/React.createElement(GlobalState, props, otherProps => /*#__PURE__*/React.createElement(Card, otherProps));\nMicrolink.defaultProps = {\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};\n\nconst _excluded = [\"LinkComponent\"];\nvar _templateObject, _templateObject2;\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), !0).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(_templateObject || (_templateObject = _taggedTemplateLiteral([\"\\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(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral([\"\\n  text-decoration: inherit;\\n  position: relative;\\n  display: inline-block;\\n\\n  &:hover \", \" {\\n    margin-bottom: var(--microlink-gap, 15px);\\n    visibility: visible;\\n    opacity: 1;\\n  }\\n\"])), PopOver);\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","obj","key","value","Object","defineProperty","enumerable","configurable","writable","_objectWithoutProperties","source","excluded","target","hasOwnProperty","indexOf","objectWithoutPropertiesLoose","getOwnPropertySymbols","sourceSymbolKeys","length","propertyIsEnumerable","_taggedTemplateLiteral","strings","raw","slice","freeze","defineProperties","_extends","assign","bind","arguments","apply","this","_templateObject$1","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","_templateObject29","_templateObject30","_templateObject31","_templateObject32","_templateObject33","_templateObject34","_templateObject35","_templateObject36","_templateObject37","_templateObject38","_templateObject39","_templateObject40","_templateObject41","_templateObject42","_templateObject43","_templateObject44","_templateObject45","_templateObject46","_templateObject47","_templateObject48","_templateObject49","_templateObject50","_templateObject51","_templateObject52","_templateObject53","_templateObject54","_templateObject55","_templateObject56","_templateObject57","_templateObject58","_templateObject59","_templateObject60","_templateObject61","_templateObject62","_templateObject63","_templateObject64","_templateObject65","_templateObject66","_templateObject67","_templateObject68","_templateObject69","_templateObject70","_templateObject71","_templateObject72","_templateObject73","_templateObject74","_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","n","current","innerText","clientHeight","Math","floor","max","trim","useEffect","clearTimeout","setTimeout","window","addEventListener","removeEventListener","createElement","getDefaultExportFromCjs","x","__esModule","localhostUrl","isSSR","isFunction","fn","isObject","isNil","getUrlPath","data","url","media","css","isLarge","cardSize","isSmall","imageProxy","test","concat","URLSearchParams","default","af","il","toString","isLazySupported","formatSeconds","secs","secsToNum","parseInt","map","join","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","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","REGEX_STRIP_WWW","mobileDescriptionStyle","Content","attrs","$cardSize","Header","Description","Footer","_ref4","Author","PoweredBy","CardContent","useContext","isSmallCard","formattedUrl","href","hostname","URL","replace","getHostname","handleOnClick","preventDefault","open","onClick","emptyStatePulse","keyframes","emptyStateImagePulse","emptyStateAnimation","emptyStateImageAnimation","ImageLoadCatcher","loadingOverlay","$isLoading","mediaSizeStyles","small","normal","large","StyledWrap","Wrap$1","ImageWrap","ImageComponent","imageUrl","_FooterEmpty","MediaEmpty","HeaderEmpty","DescriptionEmpty","FooterEmpty","CardEmptyState","Fragment","style","marginBottom","MediaButton","_path$2","_path2$2","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","Pause","Play","iconSizes","PlaybackIcon","PlaybackButtonWrap","PlaybackButton","isPlaying","PlaybackComponent","scrubberSizeScales","Scrubber","isVisible","positionX","left","opacity","visibility","scrubberSize","_excluded$4","sizeScales$1","TooltipBase","position","isDragging","visible","top","Tooltip","forwardRef","label","displayName","_excluded$3","heightScales","activeHeightScales","getProgressBarActiveHeight","OuterWrap$1","PADDING","BarsWrap","activeHeight","height","ProgressLine","ProgressMask","maskScale","ProgressHover","cursorRatio","isHovering","progressPercent","BufferedChunk","start","end","ProgressBar","bufferedMedia","cursorX","duration","hoveredTime","onMouseDown","onMouseOver","progress","showTooltip","wrapRef","tooltipRef","getWrapWidth","getBoundingClientRect","width","progressRatio","wrapWidth","startPoint","cursorPosition","toFixed","bufferedMediaChunks","chunk","tooltipLabel","tooltipPositionX","tooltipHalf","mouseEvents","showAccessories","_path","_path2","_excluded$2","_excluded2","_excluded3","Backward","Forward","SeekIcon","SeekButtonWrap","SeekButton","type","IconComponent","_Svg","offsetScales","sizeScales","rotate","dash","Wrap","getSpinnerSize","offset","getSpinnerOffset","Svg","Circle","Spinner","cx","cy","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","VideoDOM","MEDIA_COMPONENT","videoUrl","src","poster","audioUrl","CardMedia","isAudio","isVideo","isLoading","setIsLoading","mediaType","getMediaType","onLoad","_excluded$1","ownKeys$1","_objectSpread$1","contrastStyle","backgroundColor","color","largeStyle","hoverStyle","rtlStyle","baseStyle","Element","contrast","direction","CardWrap","rel","restProps","undefined","defaultProps","_CardEmpty","_CardMedia","_CardContent","_excluded$9","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","_templateObject","_templateObject2","ownKeys","_objectSpread","PopOver","styled$1","div","Wrapper","span","withHover","LinkComponent","MicrolinkHover","microlinkProps","regex","RegExp","re","ipv4Module","exports","require$$0","ipv6Module","require$$1","parseObject","reduce","acc","parse","err","parseJSON","microlink","selector","opts","rootNode","input","from","querySelectorAll","Boolean","el","protocol","isLocalAddress","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]}