{"version":3,"sources":["webpack:///./node_modules/gatsby-image/index.js","webpack:///./src/components/WebFooter.tsx","webpack:///./src/components/MainMenu.tsx","webpack:///./src/components/WebLayout.tsx","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/serializers.js","webpack:///./node_modules/@sanity/block-content-to-react/lib/targets/dom.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/internals.js","webpack:///./node_modules/react-native-web/dist/exports/Text/index.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/getImageUrl.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/blocksToNodes.js","webpack:///./node_modules/@sanity/image-url/lib/browser/image-url.umd.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/mergeSerializers.js","webpack:///./src/components/SocialLinks.tsx","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/internals.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/buildMarksTree.js","webpack:///./assets/seagazing-globe.png","webpack:///./assets/logo-type.png","webpack:///./node_modules/@sanity/block-content-to-react/lib/BlockContent.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/node_modules/@sanity/generate-help-url/index.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/nestLists.js","webpack:///./node_modules/@sanity/block-content-to-hyperscript/lib/generateKeys.js"],"names":["_interopRequireDefault","require","exports","__esModule","default","io","_assertThisInitialized2","_inheritsLoose2","_objectWithoutPropertiesLoose2","_extends2","_react","_propTypes","convertProps","props","convertedProps","resolutions","sizes","critical","fixed","fluid","loading","groupByMedia","concat","matchesMedia","_ref","media","isBrowser","window","matchMedia","matches","getImageCacheKey","_ref2","srcData","getCurrentSrcData","src","currentData","Array","isArray","some","image","hasArtDirectionSupport","foundMedia","findIndex","noMedia","imageCache","Object","create","inImageCache","cacheKey","hasNativeLazyLoadSupport","HTMLImageElement","prototype","hasIOSupport","IntersectionObserver","listeners","WeakMap","generateImageSources","imageVariants","map","_ref3","srcSet","srcSetWebp","createElement","Fragment","key","type","withMedia","without","forEach","variant","push","generateTracedSVGSources","_ref4","tracedSVG","generateBase64Sources","_ref5","base64","generateNoscriptSource","_ref6","isWebp","listenToIntersections","el","cb","observer","entries","entry","has","target","get","isIntersecting","intersectionRatio","unobserve","delete","rootMargin","observe","set","noscriptImg","title","alt","width","height","crossOrigin","draggable","join","Placeholder","forwardRef","ref","generateSources","spreadProps","ariaHidden","baseImage","Img","length","style","onLoad","onError","otherProps","position","top","left","objectFit","objectPosition","propTypes","object","func","Image","_React$Component","_this","call","this","seenBefore","isCritical","addNoScript","fadeIn","useIOSupport","isVisible","state","imgLoaded","imgCached","isHydrated","imageRef","createRef","placeholderRef","handleImageLoaded","bind","handleRef","_proto","componentDidMount","setState","onStartLoad","wasCached","img","current","complete","componentWillUnmount","cleanUpListeners","_this2","imageInCache","currentSrc","render","_convertProps","className","_convertProps$style","_convertProps$imgStyl","imgStyle","_convertProps$placeho","placeholderStyle","placeholderClassName","backgroundColor","durationFadeIn","Tag","itemProp","shouldReveal","shouldFadeIn","imageStyle","opacity","transition","bgColor","delayHideStyle","transitionDelay","imagePlaceholderStyle","placeholderImageProps","overflow","maxWidth","maxHeight","JSON","stringify","paddingBottom","aspectRatio","bottom","right","dangerouslySetInnerHTML","__html","divStyle","display","Component","defaultProps","fixedObject","shape","number","isRequired","string","srcWebp","fluidObject","requireFixedOrFluid","originalPropTypes","propName","componentName","_PropTypes$checkPropT","Error","checkPropTypes","oneOfType","arrayOf","bool","oneOf","_default","fontSize","textAlign","padding","href","styles","link","textDecoration","color","flex","currentLink","background","borderRadius","flexDirection","alignItems","flexWrap","marginBottom","to","activeStyle","partiallyActive","children","variationClass","objectAssign","getImageUrl","module","h","serializerOpts","serializeOptions","useDashedStyles","RawMarkSerializer","tag","defaultSerializers","types","block","node","test","asset","isInline","marks","strong","em","code","underline","mark","list","listItem","serializers","options","blockType","_type","serializer","span","_props$node","markType","console","warn","markFallback","hardBreak","container","text","undefined","empty","serializeSpan","index","child","i","serializeNode","serializedNode","_key","React","_getSerializers","getSerializers","renderProps","nestMarks","Text","_Component","subClass","superClass","apply","arguments","constructor","__proto__","getChildContext","isInAParentText","_this$props","dir","numberOfLines","onPress","selectable","adjustsFontSizeToFit","allowFontScaling","ellipsizeMode","lineBreakMode","maxFontSizeMultiplier","minimumFontScale","onLayout","onLongPress","pressRetentionOffset","selectionColor","suppressHighlighting","textBreakStrategy","tvParallaxProperties","source","excluded","sourceKeys","keys","indexOf","_objectWithoutPropertiesLoose","context","accessible","onClick","_createPressHandler","onKeyDown","_createEnterHandler","classList","classes","textHasAncestor","textOneLine","textMultiLine","WebkitLineClamp","notSelectable","pressable","component","fn","e","keyCode","stopPropagation","displayName","childContextTypes","contextTypes","border","boxSizing","font","margin","whiteSpace","wordWrap","textOverflow","WebkitBoxOrient","userSelect","cursor","generateHelpUrl","urlBuilder","enc","encodeURIComponent","materializeError","projectId","dataset","url","query","imageOptions","params","getQueryString","toString","buildMarksTree","nestLists","generateKeys","mergeSerializers","optionProps","defaults","isListItem","properties","rawBlocks","blocks","keyedBlocks","listNestMode","reduce","opts","value","siblings","level","serializeListItem","findListItemIndex","isSpan","blockProps","serializeBlock","renderContainerOnSingleChild","Boolean","nodes","containerProps","_extends","assign","hasOwnProperty","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelperLoose","o","Symbol","iterator","minLen","n","slice","name","from","_unsupportedIterableToArray","done","TypeError","next","example","parseSource","urlToId","_id","isAsset","isAssetStub","crop","hotspot","result","x","y","applyDefaults","split","replace","SPEC_NAME_TO_URL_NAME_MAPPINGS","urlForImage","spec","_ref$split","id","dimensionString","format","_dimensionString$spli","isFinite","parseAssetId","cropLeft","Math","round","cropTop","hotSpotVerticalRadius","hotSpotHorizontalRadius","hotSpotCenterX","hotSpotCenterY","rect","focalPoint","ignoreImageParams","cropRect","imgWidth","imgHeight","desiredAspectRatio","_width","_height","_left","_top","max","floor","fit","cdnUrl","baseUrl","filename","_spec$rect","bg","flip","flipHorizontal","flipVertical","filter","mapping","specName","param","specToImageUrl","validFits","validCrops","validAutoModes","rewriteSpecName","_step","_iterator","ImageUrlBuilder","parent","withOptions","newOptions","_dataset","_projectId","_bg","dpr","_dpr","_maxWidth","minWidth","_minWidth","_maxHeight","minHeight","_minHeight","size","blur","_blur","sharpen","_sharpen","_format","invert","_invert","orientation","_orientation","quality","_quality","forceDownload","download","saturation","_saturation","auto","client","clientConfig","isSanityClient","_client$clientConfig","apiUrl","apiHost","factory","_typeof","obj","userSerializers","acc","SocialLink","linkContent","linkTitle","paddingLeft","paddingRight","rel","marginHorizontal","_blocksToNodes","blocksToNodes","renderNode","defaultMarks","sortMarksByOccurences","spans","markOccurences","occurences","siblingIndex","sibling","sortByOccurence","sortMarks","sort","markA","markB","aOccurences","bOccurences","aDefaultPos","bDefaultPos","markDefs","sortedMarks","rootNode","nodeStack","marksNeeded","pos","markKey","splice","currentNode","findLastParentNode","find","def","lines","line","PropTypes","internals","_require","SanityBlockContent","customSerializers","slug","isListBlock","blockMatchesList","listFromBlock","lastChild","findListMatching","matching","filterOnType","currentList","mode","tree","newList","lastListItem","newLastChild","match","_match","checksum","str","hash","strlen","charCodeAt","item"],"mappings":"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","file":"f54b42984bfe4d114461fcea2710af414ac1fe74-93f0eb982a6812f4b761.js","sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar logDeprecationNotice = function logDeprecationNotice(prop, replacement) {\n if (process.env.NODE_ENV === \"production\") {\n return;\n }\n\n console.log(\"\\n The \\\"\" + prop + \"\\\" prop is now deprecated and will be removed in the next major version\\n of \\\"gatsby-image\\\".\\n \");\n\n if (replacement) {\n console.log(\"Please use \" + replacement + \" instead of \\\"\" + prop + \"\\\".\");\n }\n}; // Handle legacy props during their deprecation phase\n\n\nvar convertProps = function convertProps(props) {\n var convertedProps = (0, _extends2.default)({}, props);\n var resolutions = convertedProps.resolutions,\n sizes = convertedProps.sizes,\n critical = convertedProps.critical;\n\n if (resolutions) {\n convertedProps.fixed = resolutions;\n logDeprecationNotice(\"resolutions\", \"the gatsby-image v2 prop \\\"fixed\\\"\");\n delete convertedProps.resolutions;\n }\n\n if (sizes) {\n convertedProps.fluid = sizes;\n logDeprecationNotice(\"sizes\", \"the gatsby-image v2 prop \\\"fluid\\\"\");\n delete convertedProps.sizes;\n }\n\n if (critical) {\n logDeprecationNotice(\"critical\", \"the native \\\"loading\\\" attribute\");\n convertedProps.loading = \"eager\";\n } // convert fluid & fixed to arrays so we only have to work with arrays\n\n\n if (convertedProps.fluid) {\n convertedProps.fluid = groupByMedia([].concat(convertedProps.fluid));\n }\n\n if (convertedProps.fixed) {\n convertedProps.fixed = groupByMedia([].concat(convertedProps.fixed));\n }\n\n return convertedProps;\n};\n/**\n * Checks if fluid or fixed are art-direction arrays.\n *\n * @param currentData {{media?: string}[]} The props to check for images.\n * @return {boolean}\n */\n\n\nvar hasArtDirectionSupport = function hasArtDirectionSupport(currentData) {\n return !!currentData && Array.isArray(currentData) && currentData.some(function (image) {\n return typeof image.media !== \"undefined\";\n });\n};\n/**\n * Tries to detect if a media query matches the current viewport.\n * @property media {{media?: string}} A media query string.\n * @return {boolean}\n */\n\n\nvar matchesMedia = function matchesMedia(_ref) {\n var media = _ref.media;\n return media ? isBrowser && !!window.matchMedia(media).matches : false;\n};\n/**\n * Find the source of an image to use as a key in the image cache.\n * Use `the first image in either `fixed` or `fluid`\n * @param {{fluid: {src: string, media?: string}[], fixed: {src: string, media?: string}[]}} args\n * @return {string?} Returns image src or undefined it not given.\n */\n\n\nvar getImageCacheKey = function getImageCacheKey(_ref2) {\n var fluid = _ref2.fluid,\n fixed = _ref2.fixed;\n var srcData = getCurrentSrcData(fluid || fixed || []);\n return srcData && srcData.src;\n};\n/**\n * Returns the current src - Preferably with art-direction support.\n * @param currentData {{media?: string}[], maxWidth?: Number, maxHeight?: Number} The fluid or fixed image array.\n * @return {{src: string, media?: string, maxWidth?: Number, maxHeight?: Number}}\n */\n\n\nvar getCurrentSrcData = function getCurrentSrcData(currentData) {\n if (isBrowser && hasArtDirectionSupport(currentData)) {\n // Do we have an image for the current Viewport?\n var foundMedia = currentData.findIndex(matchesMedia);\n\n if (foundMedia !== -1) {\n return currentData[foundMedia];\n } // No media matches, select first element without a media condition\n\n\n var noMedia = currentData.findIndex(function (image) {\n return typeof image.media === \"undefined\";\n });\n\n if (noMedia !== -1) {\n return currentData[noMedia];\n }\n } // Else return the first image.\n\n\n return currentData[0];\n}; // Cache if we've seen an image before so we don't bother with\n// lazy-loading & fading in on subsequent mounts.\n\n\nvar imageCache = Object.create({});\n\nvar inImageCache = function inImageCache(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n return imageCache[cacheKey] || false;\n};\n\nvar activateCacheForImage = function activateCacheForImage(props) {\n var convertedProps = convertProps(props);\n var cacheKey = getImageCacheKey(convertedProps);\n\n if (cacheKey) {\n imageCache[cacheKey] = true;\n }\n}; // Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\n\n\nvar hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nvar isBrowser = typeof window !== \"undefined\";\nvar hasIOSupport = isBrowser && window.IntersectionObserver;\nvar io;\nvar listeners = new WeakMap();\n\nfunction getIO() {\n if (typeof io === \"undefined\" && typeof window !== \"undefined\" && window.IntersectionObserver) {\n io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (listeners.has(entry.target)) {\n var cb = listeners.get(entry.target); // Edge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(entry.target);\n listeners.delete(entry.target);\n cb();\n }\n }\n });\n }, {\n rootMargin: \"200px\"\n });\n }\n\n return io;\n}\n\nfunction generateImageSources(imageVariants) {\n return imageVariants.map(function (_ref3) {\n var src = _ref3.src,\n srcSet = _ref3.srcSet,\n srcSetWebp = _ref3.srcSetWebp,\n media = _ref3.media,\n sizes = _ref3.sizes;\n return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {\n key: src\n }, srcSetWebp && /*#__PURE__*/_react.default.createElement(\"source\", {\n type: \"image/webp\",\n media: media,\n srcSet: srcSetWebp,\n sizes: sizes\n }), srcSet && /*#__PURE__*/_react.default.createElement(\"source\", {\n media: media,\n srcSet: srcSet,\n sizes: sizes\n }));\n });\n} // Return an array ordered by elements having a media prop, does not use\n// native sort, as a stable sort is not guaranteed by all browsers/versions\n\n\nfunction groupByMedia(imageVariants) {\n var withMedia = [];\n var without = [];\n imageVariants.forEach(function (variant) {\n return (variant.media ? withMedia : without).push(variant);\n });\n\n if (without.length > 1 && process.env.NODE_ENV !== \"production\") {\n console.warn(\"We've found \" + without.length + \" sources without a media property. They might be ignored by the browser, see: https://www.gatsbyjs.org/packages/gatsby-image/#art-directing-multiple-images\");\n }\n\n return [].concat(withMedia, without);\n}\n\nfunction generateTracedSVGSources(imageVariants) {\n return imageVariants.map(function (_ref4) {\n var src = _ref4.src,\n media = _ref4.media,\n tracedSVG = _ref4.tracedSVG;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: tracedSVG\n });\n });\n}\n\nfunction generateBase64Sources(imageVariants) {\n return imageVariants.map(function (_ref5) {\n var src = _ref5.src,\n media = _ref5.media,\n base64 = _ref5.base64;\n return /*#__PURE__*/_react.default.createElement(\"source\", {\n key: src,\n media: media,\n srcSet: base64\n });\n });\n}\n\nfunction generateNoscriptSource(_ref6, isWebp) {\n var srcSet = _ref6.srcSet,\n srcSetWebp = _ref6.srcSetWebp,\n media = _ref6.media,\n sizes = _ref6.sizes;\n var src = isWebp ? srcSetWebp : srcSet;\n var mediaAttr = media ? \"media=\\\"\" + media + \"\\\" \" : \"\";\n var typeAttr = isWebp ? \"type='image/webp' \" : \"\";\n var sizesAttr = sizes ? \"sizes=\\\"\" + sizes + \"\\\" \" : \"\";\n return \"\";\n}\n\nfunction generateNoscriptSources(imageVariants) {\n return imageVariants.map(function (variant) {\n return (variant.srcSetWebp ? generateNoscriptSource(variant, true) : \"\") + generateNoscriptSource(variant);\n }).join(\"\");\n}\n\nvar listenToIntersections = function listenToIntersections(el, cb) {\n var observer = getIO();\n\n if (observer) {\n observer.observe(el);\n listeners.set(el, cb);\n }\n\n return function () {\n observer.unobserve(el);\n listeners.delete(el);\n };\n};\n\nvar noscriptImg = function noscriptImg(props) {\n // Check if prop exists before adding each attribute to the string output below to prevent\n // HTML validation issues caused by empty values like width=\"\" and height=\"\"\n var src = props.src ? \"src=\\\"\" + props.src + \"\\\" \" : \"src=\\\"\\\" \"; // required attribute\n\n var sizes = props.sizes ? \"sizes=\\\"\" + props.sizes + \"\\\" \" : \"\";\n var srcSet = props.srcSet ? \"srcset=\\\"\" + props.srcSet + \"\\\" \" : \"\";\n var title = props.title ? \"title=\\\"\" + props.title + \"\\\" \" : \"\";\n var alt = props.alt ? \"alt=\\\"\" + props.alt + \"\\\" \" : \"alt=\\\"\\\" \"; // required attribute\n\n var width = props.width ? \"width=\\\"\" + props.width + \"\\\" \" : \"\";\n var height = props.height ? \"height=\\\"\" + props.height + \"\\\" \" : \"\";\n var crossOrigin = props.crossOrigin ? \"crossorigin=\\\"\" + props.crossOrigin + \"\\\" \" : \"\";\n var loading = props.loading ? \"loading=\\\"\" + props.loading + \"\\\" \" : \"\";\n var draggable = props.draggable ? \"draggable=\\\"\" + props.draggable + \"\\\" \" : \"\";\n var sources = generateNoscriptSources(props.imageVariants);\n return \"\" + sources + \"
\";\n}; // Earlier versions of gatsby-image during the 2.x cycle did not wrap\n// the `Img` component in a `picture` element. This maintains compatibility\n// until a breaking change can be introduced in the next major release\n\n\nvar Placeholder = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var src = props.src,\n imageVariants = props.imageVariants,\n generateSources = props.generateSources,\n spreadProps = props.spreadProps,\n ariaHidden = props.ariaHidden;\n\n var baseImage = /*#__PURE__*/_react.default.createElement(Img, (0, _extends2.default)({\n ref: ref,\n src: src\n }, spreadProps, {\n ariaHidden: ariaHidden\n }));\n\n return imageVariants.length > 1 ? /*#__PURE__*/_react.default.createElement(\"picture\", null, generateSources(imageVariants), baseImage) : baseImage;\n});\n\nvar Img = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n var sizes = props.sizes,\n srcSet = props.srcSet,\n src = props.src,\n style = props.style,\n onLoad = props.onLoad,\n onError = props.onError,\n loading = props.loading,\n draggable = props.draggable,\n ariaHidden = props.ariaHidden,\n otherProps = (0, _objectWithoutPropertiesLoose2.default)(props, [\"sizes\", \"srcSet\", \"src\", \"style\", \"onLoad\", \"onError\", \"loading\", \"draggable\", \"ariaHidden\"]);\n return /*#__PURE__*/_react.default.createElement(\"img\", (0, _extends2.default)({\n \"aria-hidden\": ariaHidden,\n sizes: sizes,\n srcSet: srcSet,\n src: src\n }, otherProps, {\n onLoad: onLoad,\n onError: onError,\n ref: ref,\n loading: loading,\n draggable: draggable,\n style: (0, _extends2.default)({\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n objectFit: \"cover\",\n objectPosition: \"center\"\n }, style)\n }));\n});\n\nImg.propTypes = {\n style: _propTypes.default.object,\n onError: _propTypes.default.func,\n onLoad: _propTypes.default.func\n};\n\nvar Image = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(Image, _React$Component);\n\n function Image(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // If this image has already been loaded before then we can assume it's\n // already in the browser cache so it's cheap to just show directly.\n\n _this.seenBefore = isBrowser && inImageCache(props);\n _this.isCritical = props.loading === \"eager\" || props.critical;\n _this.addNoScript = !(_this.isCritical && !props.fadeIn);\n _this.useIOSupport = !hasNativeLazyLoadSupport && hasIOSupport && !_this.isCritical && !_this.seenBefore;\n var isVisible = _this.isCritical || isBrowser && (hasNativeLazyLoadSupport || !_this.useIOSupport);\n _this.state = {\n isVisible: isVisible,\n imgLoaded: false,\n imgCached: false,\n fadeIn: !_this.seenBefore && props.fadeIn,\n isHydrated: false\n };\n _this.imageRef = /*#__PURE__*/_react.default.createRef();\n _this.placeholderRef = props.placeholderRef || /*#__PURE__*/_react.default.createRef();\n _this.handleImageLoaded = _this.handleImageLoaded.bind((0, _assertThisInitialized2.default)(_this));\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = Image.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.setState({\n isHydrated: isBrowser\n });\n\n if (this.state.isVisible && typeof this.props.onStartLoad === \"function\") {\n this.props.onStartLoad({\n wasCached: inImageCache(this.props)\n });\n }\n\n if (this.isCritical) {\n var img = this.imageRef.current;\n\n if (img && img.complete) {\n this.handleImageLoaded();\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.cleanUpListeners) {\n this.cleanUpListeners();\n }\n } // Specific to IntersectionObserver based lazy-load support\n ;\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.useIOSupport && ref) {\n this.cleanUpListeners = listenToIntersections(ref, function () {\n var imageInCache = inImageCache(_this2.props);\n\n if (!_this2.state.isVisible && typeof _this2.props.onStartLoad === \"function\") {\n _this2.props.onStartLoad({\n wasCached: imageInCache\n });\n } // imgCached and imgLoaded must update after isVisible,\n // Once isVisible is true, imageRef becomes accessible, which imgCached needs access to.\n // imgLoaded and imgCached are in a 2nd setState call to be changed together,\n // avoiding initiating unnecessary animation frames from style changes.\n\n\n _this2.setState({\n isVisible: true\n }, function () {\n _this2.setState({\n imgLoaded: imageInCache,\n // `currentSrc` should be a string, but can be `undefined` in IE,\n // !! operator validates the value is not undefined/null/\"\"\n // for lazyloaded components this might be null\n // TODO fix imgCached behaviour as it's now false when it's lazyloaded\n imgCached: !!(_this2.imageRef.current && _this2.imageRef.current.currentSrc)\n });\n });\n });\n }\n };\n\n _proto.handleImageLoaded = function handleImageLoaded() {\n activateCacheForImage(this.props);\n this.setState({\n imgLoaded: true\n });\n\n if (this.props.onLoad) {\n this.props.onLoad();\n }\n };\n\n _proto.render = function render() {\n var _convertProps = convertProps(this.props),\n title = _convertProps.title,\n alt = _convertProps.alt,\n className = _convertProps.className,\n _convertProps$style = _convertProps.style,\n style = _convertProps$style === void 0 ? {} : _convertProps$style,\n _convertProps$imgStyl = _convertProps.imgStyle,\n imgStyle = _convertProps$imgStyl === void 0 ? {} : _convertProps$imgStyl,\n _convertProps$placeho = _convertProps.placeholderStyle,\n placeholderStyle = _convertProps$placeho === void 0 ? {} : _convertProps$placeho,\n placeholderClassName = _convertProps.placeholderClassName,\n fluid = _convertProps.fluid,\n fixed = _convertProps.fixed,\n backgroundColor = _convertProps.backgroundColor,\n durationFadeIn = _convertProps.durationFadeIn,\n Tag = _convertProps.Tag,\n itemProp = _convertProps.itemProp,\n loading = _convertProps.loading,\n draggable = _convertProps.draggable;\n\n var imageVariants = fluid || fixed; // Abort early if missing image data (#25371)\n\n if (!imageVariants) {\n return null;\n }\n\n var shouldReveal = this.state.fadeIn === false || this.state.imgLoaded;\n var shouldFadeIn = this.state.fadeIn === true && !this.state.imgCached;\n var imageStyle = (0, _extends2.default)({\n opacity: shouldReveal ? 1 : 0,\n transition: shouldFadeIn ? \"opacity \" + durationFadeIn + \"ms\" : \"none\"\n }, imgStyle);\n var bgColor = typeof backgroundColor === \"boolean\" ? \"lightgray\" : backgroundColor;\n var delayHideStyle = {\n transitionDelay: durationFadeIn + \"ms\"\n };\n var imagePlaceholderStyle = (0, _extends2.default)({\n opacity: this.state.imgLoaded ? 0 : 1\n }, shouldFadeIn && delayHideStyle, imgStyle, placeholderStyle);\n var placeholderImageProps = {\n title: title,\n alt: !this.state.isVisible ? alt : \"\",\n style: imagePlaceholderStyle,\n className: placeholderClassName,\n itemProp: itemProp\n }; // Initial client render state needs to match SSR until hydration finishes.\n // Once hydration completes, render again to update to the correct image.\n // `imageVariants` is always an Array type at this point due to `convertProps()`\n\n var image = !this.state.isHydrated ? imageVariants[0] : getCurrentSrcData(imageVariants);\n\n if (fluid) {\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n maxWidth: image.maxWidth ? image.maxWidth + \"px\" : null,\n maxHeight: image.maxHeight ? image.maxHeight + \"px\" : null\n }, style),\n ref: this.handleRef,\n key: \"fluid-\" + JSON.stringify(image.srcSet)\n }, /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n style: {\n width: \"100%\",\n paddingBottom: 100 / image.aspectRatio + \"%\"\n }\n }), bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n position: \"absolute\",\n top: 0,\n bottom: 0,\n opacity: !this.state.imgLoaded ? 1 : 0,\n right: 0,\n left: 0\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n if (fixed) {\n var divStyle = (0, _extends2.default)({\n position: \"relative\",\n overflow: \"hidden\",\n display: \"inline-block\",\n width: image.width,\n height: image.height\n }, style);\n\n if (style.display === \"inherit\") {\n delete divStyle.display;\n }\n\n return /*#__PURE__*/_react.default.createElement(Tag, {\n className: (className ? className : \"\") + \" gatsby-image-wrapper\",\n style: divStyle,\n ref: this.handleRef,\n key: \"fixed-\" + JSON.stringify(image.srcSet)\n }, bgColor && /*#__PURE__*/_react.default.createElement(Tag, {\n \"aria-hidden\": true,\n title: title,\n style: (0, _extends2.default)({\n backgroundColor: bgColor,\n width: image.width,\n opacity: !this.state.imgLoaded ? 1 : 0,\n height: image.height\n }, shouldFadeIn && delayHideStyle)\n }), image.base64 && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.base64,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateBase64Sources\n }), image.tracedSVG && /*#__PURE__*/_react.default.createElement(Placeholder, {\n ariaHidden: true,\n ref: this.placeholderRef,\n src: image.tracedSVG,\n spreadProps: placeholderImageProps,\n imageVariants: imageVariants,\n generateSources: generateTracedSVGSources\n }), this.state.isVisible && /*#__PURE__*/_react.default.createElement(\"picture\", null, generateImageSources(imageVariants), /*#__PURE__*/_react.default.createElement(Img, {\n alt: alt,\n title: title,\n width: image.width,\n height: image.height,\n sizes: image.sizes,\n src: image.src,\n crossOrigin: this.props.crossOrigin,\n srcSet: image.srcSet,\n style: imageStyle,\n ref: this.imageRef,\n onLoad: this.handleImageLoaded,\n onError: this.props.onError,\n itemProp: itemProp,\n loading: loading,\n draggable: draggable\n })), this.addNoScript && /*#__PURE__*/_react.default.createElement(\"noscript\", {\n dangerouslySetInnerHTML: {\n __html: noscriptImg((0, _extends2.default)({\n alt: alt,\n title: title,\n loading: loading\n }, image, {\n imageVariants: imageVariants\n }))\n }\n }));\n }\n\n return null;\n };\n\n return Image;\n}(_react.default.Component);\n\nImage.defaultProps = {\n fadeIn: true,\n durationFadeIn: 500,\n alt: \"\",\n Tag: \"div\",\n // We set it to `lazy` by default because it's best to default to a performant\n // setting and let the user \"opt out\" to `eager`\n loading: \"lazy\"\n};\n\nvar fixedObject = _propTypes.default.shape({\n width: _propTypes.default.number.isRequired,\n height: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string\n});\n\nvar fluidObject = _propTypes.default.shape({\n aspectRatio: _propTypes.default.number.isRequired,\n src: _propTypes.default.string.isRequired,\n srcSet: _propTypes.default.string.isRequired,\n sizes: _propTypes.default.string.isRequired,\n base64: _propTypes.default.string,\n tracedSVG: _propTypes.default.string,\n srcWebp: _propTypes.default.string,\n srcSetWebp: _propTypes.default.string,\n media: _propTypes.default.string,\n maxWidth: _propTypes.default.number,\n maxHeight: _propTypes.default.number\n});\n\nfunction requireFixedOrFluid(originalPropTypes) {\n return function (props, propName, componentName) {\n var _PropTypes$checkPropT;\n\n if (!props.fixed && !props.fluid) {\n throw new Error(\"The prop `fluid` or `fixed` is marked as required in `\" + componentName + \"`, but their values are both `undefined`.\");\n }\n\n _propTypes.default.checkPropTypes((_PropTypes$checkPropT = {}, _PropTypes$checkPropT[propName] = originalPropTypes, _PropTypes$checkPropT), props, \"prop\", componentName);\n };\n} // If you modify these propTypes, please don't forget to update following files as well:\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/index.d.ts\n// https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-image/README.md#gatsby-image-props\n// https://github.com/gatsbyjs/gatsby/blob/master/docs/docs/gatsby-image.md#gatsby-image-props\n\n\nImage.propTypes = {\n resolutions: fixedObject,\n sizes: fluidObject,\n fixed: requireFixedOrFluid(_propTypes.default.oneOfType([fixedObject, _propTypes.default.arrayOf(fixedObject)])),\n fluid: requireFixedOrFluid(_propTypes.default.oneOfType([fluidObject, _propTypes.default.arrayOf(fluidObject)])),\n fadeIn: _propTypes.default.bool,\n durationFadeIn: _propTypes.default.number,\n title: _propTypes.default.string,\n alt: _propTypes.default.string,\n className: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),\n // Support Glamor's css prop.\n critical: _propTypes.default.bool,\n crossOrigin: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n style: _propTypes.default.object,\n imgStyle: _propTypes.default.object,\n placeholderStyle: _propTypes.default.object,\n placeholderClassName: _propTypes.default.string,\n backgroundColor: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.bool]),\n onLoad: _propTypes.default.func,\n onError: _propTypes.default.func,\n onStartLoad: _propTypes.default.func,\n Tag: _propTypes.default.string,\n itemProp: _propTypes.default.string,\n loading: _propTypes.default.oneOf([\"auto\", \"lazy\", \"eager\"]),\n draggable: _propTypes.default.bool\n};\nvar _default = Image;\nexports.default = _default;","import * as React from \"react\";\n\nfunction WebFooter() {\n return (\n \n );\n}\n\nexport default WebFooter;\n","import * as React from \"react\";\nimport { Link, useStaticQuery, graphql } from \"gatsby\";\nimport LogoType from \"../../assets/logo-type.png\";\nimport Image from \"./Image\";\n\nconst styles = {\n link: {\n padding: \"0.5em\",\n fontSize: \"clamp(21px, 1.5vw, 30px)\",\n textDecoration: \"none\",\n color: \"#fff\",\n flex: 1,\n textAlign: \"center\",\n \"&:hover\": {\n color: \"#ede1ad\",\n textDecoration: \"underline\",\n },\n },\n currentLink: {\n background: \"#23514E\",\n borderRadius: \"1em\",\n },\n};\n\nfunction MainMenu() {\n // const data = useStaticQuery(graphql`\n // query MainMenuQuery {\n // allSanityEpisode(limit: 1, sort: { fields: publishedAt, order: DESC }) {\n // nodes {\n // slug {\n // current\n // }\n // }\n // }\n // }\n // `);\n\n return (\n \n \n
\n \n \n About\n \n \n Episodes\n \n \n Guests\n \n {/* \n Journal\n */}\n \n );\n}\n\nexport default MainMenu;\n","import React from \"react\";\nimport WebFooter from \"./WebFooter\";\nimport MainMenu from \"./MainMenu\";\nimport NowPlaying from \"./NowPlaying\";\n\ninterface IWebLayoutProps {\n children?: React.ReactNode;\n variationClass?: string;\n}\n\nfunction WebLayout({ children, variationClass }: IWebLayoutProps) {\n return (\n <>\n \n \n {children}\n \n \n >\n );\n}\n\nexport default WebLayout;\n","\"use strict\";\n\nvar objectAssign = require('object-assign');\n\nvar getImageUrl = require('./getImageUrl');\n\nmodule.exports = function (h, serializerOpts) {\n var serializeOptions = serializerOpts || {\n useDashedStyles: false // Low-level block serializer\n\n };\n\n function BlockSerializer(props) {\n var node = props.node,\n serializers = props.serializers,\n options = props.options,\n isInline = props.isInline,\n children = props.children;\n var blockType = node._type;\n var serializer = serializers.types[blockType];\n\n if (!serializer) {\n throw new Error(\"Unknown block type \\\"\".concat(blockType, \"\\\", please specify a serializer for it in the `serializers.types` prop\"));\n }\n\n return h(serializer, {\n node: node,\n options: options,\n isInline: isInline\n }, children);\n } // Low-level span serializer\n\n\n function SpanSerializer(props) {\n var _props$node = props.node,\n mark = _props$node.mark,\n children = _props$node.children;\n var isPlain = typeof mark === 'string';\n var markType = isPlain ? mark : mark._type;\n var serializer = props.serializers.marks[markType];\n\n if (!serializer) {\n // @todo Revert back to throwing errors?\n // eslint-disable-next-line no-console\n console.warn(\"Unknown mark type \\\"\".concat(markType, \"\\\", please specify a serializer for it in the `serializers.marks` prop\"));\n return h(props.serializers.markFallback, null, children);\n }\n\n return h(serializer, props.node, children);\n } // Low-level list serializer\n\n\n function ListSerializer(props) {\n var tag = props.type === 'bullet' ? 'ul' : 'ol';\n return h(tag, null, props.children);\n } // Low-level list item serializer\n\n\n function ListItemSerializer(props) {\n var children = !props.node.style || props.node.style === 'normal' ? // Don't wrap plain text in paragraphs inside of a list item\n props.children : // But wrap any other style in whatever the block serializer says to use\n h(props.serializers.types.block, props, props.children);\n return h('li', null, children);\n } // Renderer of an actual block of type `block`. Confusing, we know.\n\n\n function BlockTypeSerializer(props) {\n var style = props.node.style || 'normal';\n\n if (/^h\\d/.test(style)) {\n return h(style, null, props.children);\n }\n\n return style === 'blockquote' ? h('blockquote', null, props.children) : h('p', null, props.children);\n } // Serializers for things that can be directly attributed to a tag without any props\n // We use partial application to do this, passing the tag name as the first argument\n\n\n function RawMarkSerializer(tag, props) {\n return h(tag, null, props.children);\n }\n\n function UnderlineSerializer(props) {\n var style = serializeOptions.useDashedStyles ? {\n 'text-decoration': 'underline'\n } : {\n textDecoration: 'underline'\n };\n return h('span', {\n style: style\n }, props.children);\n }\n\n function StrikeThroughSerializer(props) {\n return h('del', null, props.children);\n }\n\n function LinkSerializer(props) {\n return h('a', {\n href: props.mark.href\n }, props.children);\n }\n\n function ImageSerializer(props) {\n if (!props.node.asset) {\n return null;\n }\n\n var img = h('img', {\n src: getImageUrl(props)\n });\n return props.isInline ? img : h('figure', null, img);\n } // Serializer that recursively calls itself, producing a hyperscript tree of spans\n\n\n function serializeSpan(span, serializers, index, options) {\n if (span === '\\n' && serializers.hardBreak) {\n return h(serializers.hardBreak, {\n key: \"hb-\".concat(index)\n });\n }\n\n if (typeof span === 'string') {\n return serializers.text ? h(serializers.text, {\n key: \"text-\".concat(index)\n }, span) : span;\n }\n\n var children;\n\n if (span.children) {\n children = {\n children: span.children.map(function (child, i) {\n return options.serializeNode(child, i, span.children, true);\n })\n };\n }\n\n var serializedNode = objectAssign({}, span, children);\n return h(serializers.span, {\n key: span._key || \"span-\".concat(index),\n node: serializedNode,\n serializers: serializers\n });\n }\n\n var HardBreakSerializer = function HardBreakSerializer() {\n return h('br');\n };\n\n var defaultMarkSerializers = {\n strong: RawMarkSerializer.bind(null, 'strong'),\n em: RawMarkSerializer.bind(null, 'em'),\n code: RawMarkSerializer.bind(null, 'code'),\n underline: UnderlineSerializer,\n 'strike-through': StrikeThroughSerializer,\n link: LinkSerializer\n };\n var defaultSerializers = {\n // Common overrides\n types: {\n block: BlockTypeSerializer,\n image: ImageSerializer\n },\n marks: defaultMarkSerializers,\n // Less common overrides\n list: ListSerializer,\n listItem: ListItemSerializer,\n block: BlockSerializer,\n span: SpanSerializer,\n hardBreak: HardBreakSerializer,\n // Container element\n container: 'div',\n // When we can't resolve the mark properly, use this renderer as the container\n markFallback: 'span',\n // Allow overriding text renderer, but leave undefined to just use plain strings by default\n text: undefined,\n // Empty nodes (React uses null, hyperscript with empty strings)\n empty: ''\n };\n return {\n defaultSerializers: defaultSerializers,\n serializeSpan: serializeSpan\n };\n};","'use strict';\n\nvar React = require('react');\n\nvar _require = require('@sanity/block-content-to-hyperscript/internals'),\n getSerializers = _require.getSerializers;\n\nvar renderNode = React.createElement;\n\nvar _getSerializers = getSerializers(renderNode),\n defaultSerializers = _getSerializers.defaultSerializers,\n serializeSpan = _getSerializers.serializeSpan;\n\nmodule.exports = {\n serializeSpan: serializeSpan,\n serializers: defaultSerializers,\n renderProps: {\n nestMarks: true\n }\n};","module.exports = require('./lib/internals');","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport applyLayout from \"../../modules/applyLayout\";\nimport applyNativeMethods from \"../../modules/applyNativeMethods\";\nimport { bool } from 'prop-types';\nimport { Component } from 'react';\nimport createElement from \"../createElement\";\nimport css from \"../StyleSheet/css\";\nimport warning from 'fbjs/lib/warning';\nimport StyleSheet from \"../StyleSheet\";\nimport TextPropTypes from \"./TextPropTypes\";\n\nvar Text = function (_Component) {\n _inheritsLoose(Text, _Component);\n\n function Text() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = Text.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n isInAParentText: true\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n dir = _this$props.dir,\n numberOfLines = _this$props.numberOfLines,\n onPress = _this$props.onPress,\n selectable = _this$props.selectable,\n style = _this$props.style,\n adjustsFontSizeToFit = _this$props.adjustsFontSizeToFit,\n allowFontScaling = _this$props.allowFontScaling,\n ellipsizeMode = _this$props.ellipsizeMode,\n lineBreakMode = _this$props.lineBreakMode,\n maxFontSizeMultiplier = _this$props.maxFontSizeMultiplier,\n minimumFontScale = _this$props.minimumFontScale,\n onLayout = _this$props.onLayout,\n onLongPress = _this$props.onLongPress,\n pressRetentionOffset = _this$props.pressRetentionOffset,\n selectionColor = _this$props.selectionColor,\n suppressHighlighting = _this$props.suppressHighlighting,\n textBreakStrategy = _this$props.textBreakStrategy,\n tvParallaxProperties = _this$props.tvParallaxProperties,\n otherProps = _objectWithoutPropertiesLoose(_this$props, [\"dir\", \"numberOfLines\", \"onPress\", \"selectable\", \"style\", \"adjustsFontSizeToFit\", \"allowFontScaling\", \"ellipsizeMode\", \"lineBreakMode\", \"maxFontSizeMultiplier\", \"minimumFontScale\", \"onLayout\", \"onLongPress\", \"pressRetentionOffset\", \"selectionColor\", \"suppressHighlighting\", \"textBreakStrategy\", \"tvParallaxProperties\"]);\n\n var isInAParentText = this.context.isInAParentText;\n\n if (process.env.NODE_ENV !== 'production') {\n warning(this.props.className == null, 'Using the \"className\" prop on is deprecated.');\n }\n\n if (onPress) {\n otherProps.accessible = true;\n otherProps.onClick = this._createPressHandler(onPress);\n otherProps.onKeyDown = this._createEnterHandler(onPress);\n }\n\n otherProps.classList = [this.props.className, classes.text, this.context.isInAParentText === true && classes.textHasAncestor, numberOfLines === 1 && classes.textOneLine, numberOfLines > 1 && classes.textMultiLine];\n otherProps.dir = dir !== undefined ? dir : 'auto';\n otherProps.style = [style, numberOfLines > 1 && {\n WebkitLineClamp: numberOfLines\n }, selectable === false && styles.notSelectable, onPress && styles.pressable];\n var component = isInAParentText ? 'span' : 'div';\n return createElement(component, otherProps);\n };\n\n _proto._createEnterHandler = function _createEnterHandler(fn) {\n return function (e) {\n if (e.keyCode === 13) {\n fn && fn(e);\n }\n };\n };\n\n _proto._createPressHandler = function _createPressHandler(fn) {\n return function (e) {\n e.stopPropagation();\n fn && fn(e);\n };\n };\n\n return Text;\n}(Component);\n\nText.displayName = 'Text';\nText.childContextTypes = {\n isInAParentText: bool\n};\nText.contextTypes = {\n isInAParentText: bool\n};\nText.propTypes = process.env.NODE_ENV !== \"production\" ? TextPropTypes : {};\nvar classes = css.create({\n text: {\n border: '0 solid black',\n boxSizing: 'border-box',\n color: 'black',\n display: 'inline',\n font: '14px System',\n margin: 0,\n padding: 0,\n whiteSpace: 'pre-wrap',\n wordWrap: 'break-word'\n },\n textHasAncestor: {\n color: 'inherit',\n font: 'inherit',\n whiteSpace: 'inherit'\n },\n textOneLine: {\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n textMultiLine: {\n display: '-webkit-box',\n maxWidth: '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n WebkitBoxOrient: 'vertical'\n }\n});\nvar styles = StyleSheet.create({\n notSelectable: {\n userSelect: 'none'\n },\n pressable: {\n cursor: 'pointer'\n }\n});\nexport default applyLayout(applyNativeMethods(Text));","\"use strict\";\n\nvar generateHelpUrl = require('@sanity/generate-help-url');\n\nvar urlBuilder = require('@sanity/image-url');\n\nvar objectAssign = require('object-assign');\n\nvar enc = encodeURIComponent;\nvar materializeError = \"You must either:\\n - Pass `projectId` and `dataset` to the block renderer\\n - Materialize images to include the `url` field.\\n\\nFor more information, see \".concat(generateHelpUrl('block-content-image-materializing'));\n\nvar getQueryString = function getQueryString(options) {\n var query = options.imageOptions;\n var keys = Object.keys(query);\n\n if (!keys.length) {\n return '';\n }\n\n var params = keys.map(function (key) {\n return \"\".concat(enc(key), \"=\").concat(enc(query[key]));\n });\n return \"?\".concat(params.join('&'));\n};\n\nvar buildUrl = function buildUrl(props) {\n var node = props.node,\n options = props.options;\n var projectId = options.projectId,\n dataset = options.dataset;\n var asset = node.asset;\n\n if (!asset) {\n throw new Error('Image does not have required `asset` property');\n }\n\n if (asset.url) {\n return asset.url + getQueryString(options);\n }\n\n if (!projectId || !dataset) {\n throw new Error(materializeError);\n }\n\n var ref = asset._ref;\n\n if (!ref) {\n throw new Error('Invalid image reference in block, no `_ref` found on `asset`');\n }\n\n return urlBuilder(objectAssign({\n projectId: projectId,\n dataset: dataset\n }, options.imageOptions || {})).image(node).toString();\n};\n\nmodule.exports = buildUrl;","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nvar objectAssign = require('object-assign');\n\nvar buildMarksTree = require('./buildMarksTree');\n\nvar nestLists = require('./nestLists');\n\nvar generateKeys = require('./generateKeys');\n\nvar mergeSerializers = require('./mergeSerializers'); // Properties to extract from props and pass to serializers as options\n\n\nvar optionProps = ['projectId', 'dataset', 'imageOptions'];\n\nvar isDefined = function isDefined(val) {\n return typeof val !== 'undefined';\n};\n\nvar defaults = {\n imageOptions: {}\n};\n\nfunction blocksToNodes(h, properties, defaultSerializers, serializeSpan) {\n var props = objectAssign({}, defaults, properties);\n var rawBlocks = Array.isArray(props.blocks) ? props.blocks : [props.blocks];\n var keyedBlocks = generateKeys(rawBlocks);\n var blocks = nestLists(keyedBlocks, props.listNestMode);\n var serializers = mergeSerializers(defaultSerializers, props.serializers || {});\n var options = optionProps.reduce(function (opts, key) {\n var value = props[key];\n\n if (isDefined(value)) {\n opts[key] = value;\n }\n\n return opts;\n }, {});\n\n function serializeNode(node, index, siblings, isInline) {\n if (isList(node)) {\n return serializeList(node);\n }\n\n if (isListItem(node)) {\n return serializeListItem(node, findListItemIndex(node, siblings));\n }\n\n if (isSpan(node)) {\n return serializeSpan(node, serializers, index, {\n serializeNode: serializeNode\n });\n }\n\n return serializeBlock(node, index, isInline);\n }\n\n function findListItemIndex(node, siblings) {\n var index = 0;\n\n for (var i = 0; i < siblings.length; i++) {\n if (siblings[i] === node) {\n return index;\n }\n\n if (!isListItem(siblings[i])) {\n continue;\n }\n\n index++;\n }\n\n return index;\n }\n\n function serializeBlock(block, index, isInline) {\n var tree = buildMarksTree(block);\n var children = tree.map(function (node, i, siblings) {\n return serializeNode(node, i, siblings, true);\n });\n var blockProps = {\n key: block._key || \"block-\".concat(index),\n node: block,\n isInline: isInline,\n serializers: serializers,\n options: options\n };\n return h(serializers.block, blockProps, children);\n }\n\n function serializeListItem(block, index) {\n var key = block._key;\n var tree = buildMarksTree(block);\n var children = tree.map(serializeNode);\n return h(serializers.listItem, {\n node: block,\n serializers: serializers,\n index: index,\n key: key,\n options: options\n }, children);\n }\n\n function serializeList(list) {\n var type = list.listItem;\n var level = list.level;\n var key = list._key;\n var children = list.children.map(serializeNode);\n return h(serializers.list, {\n key: key,\n level: level,\n type: type,\n options: options\n }, children);\n } // Default to false, so `undefined` will evaluate to the default here\n\n\n var renderContainerOnSingleChild = Boolean(props.renderContainerOnSingleChild);\n var nodes = blocks.map(serializeNode);\n\n if (renderContainerOnSingleChild || nodes.length > 1) {\n var containerProps = props.className ? {\n className: props.className\n } : {};\n return h(serializers.container, containerProps, nodes);\n }\n\n if (nodes[0]) {\n return nodes[0];\n }\n\n return typeof serializers.empty === 'function' ? h(serializers.empty) : serializers.empty;\n}\n\nfunction isList(block) {\n return block._type === 'list' && block.listItem;\n}\n\nfunction isListItem(block) {\n return block._type === 'block' && block.listItem;\n}\n\nfunction isSpan(block) {\n return typeof block === 'string' || block.marks || block._type === 'span';\n}\n\nmodule.exports = blocksToNodes;","(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.SanityImageUrlBuilder = factory());\n})(this, function () {\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n }\n\n function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n }\n\n function _createForOfIteratorHelperLoose(o) {\n var i = 0;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (o = _unsupportedIterableToArray(o))) return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n i = o[Symbol.iterator]();\n return i.next.bind(i);\n }\n\n var example = 'image-Tb9Ew8CXIwaY6R1kjMvI0uRR-2000x3000-jpg';\n\n function parseAssetId(ref) {\n var _ref$split = ref.split('-'),\n id = _ref$split[1],\n dimensionString = _ref$split[2],\n format = _ref$split[3];\n\n if (!id || !dimensionString || !format) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n var _dimensionString$spli = dimensionString.split('x'),\n imgWidthStr = _dimensionString$spli[0],\n imgHeightStr = _dimensionString$spli[1];\n\n var width = +imgWidthStr;\n var height = +imgHeightStr;\n var isValidAssetId = isFinite(width) && isFinite(height);\n\n if (!isValidAssetId) {\n throw new Error(\"Malformed asset _ref '\" + ref + \"'. Expected an id like \\\"\" + example + \"\\\".\");\n }\n\n return {\n id: id,\n width: width,\n height: height,\n format: format\n };\n }\n\n var isRef = function isRef(src) {\n var source = src;\n return source ? typeof source._ref === 'string' : false;\n };\n\n var isAsset = function isAsset(src) {\n var source = src;\n return source ? typeof source._id === 'string' : false;\n };\n\n var isAssetStub = function isAssetStub(src) {\n var source = src;\n return source && source.asset ? typeof source.asset.url === 'string' : false;\n };\n\n function parseSource(source) {\n if (!source) {\n return null;\n }\n\n var image;\n\n if (typeof source === 'string' && isUrl(source)) {\n image = {\n asset: {\n _ref: urlToId(source)\n }\n };\n } else if (typeof source === 'string') {\n image = {\n asset: {\n _ref: source\n }\n };\n } else if (isRef(source)) {\n image = {\n asset: source\n };\n } else if (isAsset(source)) {\n image = {\n asset: {\n _ref: source._id || ''\n }\n };\n } else if (isAssetStub(source)) {\n image = {\n asset: {\n _ref: urlToId(source.asset.url)\n }\n };\n } else if (typeof source.asset === 'object') {\n image = source;\n } else {\n return null;\n }\n\n var img = source;\n\n if (img.crop) {\n image.crop = img.crop;\n }\n\n if (img.hotspot) {\n image.hotspot = img.hotspot;\n }\n\n return applyDefaults(image);\n }\n\n function isUrl(url) {\n return /^https?:\\/\\//.test(\"\" + url);\n }\n\n function urlToId(url) {\n var parts = url.split('/').slice(-1);\n return (\"image-\" + parts[0]).replace(/\\.([a-z]+)$/, '-$1');\n }\n\n function applyDefaults(image) {\n if (image.crop && image.hotspot) {\n return image;\n }\n\n var result = _extends({}, image);\n\n if (!result.crop) {\n result.crop = {\n left: 0,\n top: 0,\n bottom: 0,\n right: 0\n };\n }\n\n if (!result.hotspot) {\n result.hotspot = {\n x: 0.5,\n y: 0.5,\n height: 1.0,\n width: 1.0\n };\n }\n\n return result;\n }\n\n var SPEC_NAME_TO_URL_NAME_MAPPINGS = [['width', 'w'], ['height', 'h'], ['format', 'fm'], ['download', 'dl'], ['blur', 'blur'], ['sharpen', 'sharp'], ['invert', 'invert'], ['orientation', 'or'], ['minHeight', 'min-h'], ['maxHeight', 'max-h'], ['minWidth', 'min-w'], ['maxWidth', 'max-w'], ['quality', 'q'], ['fit', 'fit'], ['crop', 'crop'], ['saturation', 'sat'], ['auto', 'auto'], ['dpr', 'dpr']];\n\n function urlForImage(options) {\n var spec = _extends({}, options || {});\n\n var source = spec.source;\n delete spec.source;\n var image = parseSource(source);\n\n if (!image) {\n return null;\n }\n\n var id = image.asset._ref || image.asset._id || '';\n var asset = parseAssetId(id);\n var cropLeft = Math.round(image.crop.left * asset.width);\n var cropTop = Math.round(image.crop.top * asset.height);\n var crop = {\n left: cropLeft,\n top: cropTop,\n width: Math.round(asset.width - image.crop.right * asset.width - cropLeft),\n height: Math.round(asset.height - image.crop.bottom * asset.height - cropTop)\n };\n var hotSpotVerticalRadius = image.hotspot.height * asset.height / 2;\n var hotSpotHorizontalRadius = image.hotspot.width * asset.width / 2;\n var hotSpotCenterX = image.hotspot.x * asset.width;\n var hotSpotCenterY = image.hotspot.y * asset.height;\n var hotspot = {\n left: hotSpotCenterX - hotSpotHorizontalRadius,\n top: hotSpotCenterY - hotSpotVerticalRadius,\n right: hotSpotCenterX + hotSpotHorizontalRadius,\n bottom: hotSpotCenterY + hotSpotVerticalRadius\n };\n\n if (!(spec.rect || spec.focalPoint || spec.ignoreImageParams || spec.crop)) {\n spec = _extends(_extends({}, spec), fit({\n crop: crop,\n hotspot: hotspot\n }, spec));\n }\n\n return specToImageUrl(_extends(_extends({}, spec), {}, {\n asset: asset\n }));\n }\n\n function specToImageUrl(spec) {\n var cdnUrl = spec.baseUrl || 'https://cdn.sanity.io';\n var filename = spec.asset.id + \"-\" + spec.asset.width + \"x\" + spec.asset.height + \".\" + spec.asset.format;\n var baseUrl = cdnUrl + \"/images/\" + spec.projectId + \"/\" + spec.dataset + \"/\" + filename;\n var params = [];\n\n if (spec.rect) {\n var _spec$rect = spec.rect,\n left = _spec$rect.left,\n top = _spec$rect.top,\n width = _spec$rect.width,\n height = _spec$rect.height;\n var isEffectiveCrop = left !== 0 || top !== 0 || height !== spec.asset.height || width !== spec.asset.width;\n\n if (isEffectiveCrop) {\n params.push(\"rect=\" + left + \",\" + top + \",\" + width + \",\" + height);\n }\n }\n\n if (spec.bg) {\n params.push(\"bg=\" + spec.bg);\n }\n\n if (spec.focalPoint) {\n params.push(\"fp-x=\" + spec.focalPoint.x);\n params.push(\"fp-y=\" + spec.focalPoint.y);\n }\n\n var flip = [spec.flipHorizontal && 'h', spec.flipVertical && 'v'].filter(Boolean).join('');\n\n if (flip) {\n params.push(\"flip=\" + flip);\n }\n\n SPEC_NAME_TO_URL_NAME_MAPPINGS.forEach(function (mapping) {\n var specName = mapping[0],\n param = mapping[1];\n\n if (typeof spec[specName] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[specName]));\n } else if (typeof spec[param] !== 'undefined') {\n params.push(param + \"=\" + encodeURIComponent(spec[param]));\n }\n });\n\n if (params.length === 0) {\n return baseUrl;\n }\n\n return baseUrl + \"?\" + params.join('&');\n }\n\n function fit(source, spec) {\n var cropRect;\n var imgWidth = spec.width;\n var imgHeight = spec.height;\n\n if (!(imgWidth && imgHeight)) {\n return {\n width: imgWidth,\n height: imgHeight,\n rect: source.crop\n };\n }\n\n var crop = source.crop;\n var hotspot = source.hotspot;\n var desiredAspectRatio = imgWidth / imgHeight;\n var cropAspectRatio = crop.width / crop.height;\n\n if (cropAspectRatio > desiredAspectRatio) {\n var height = crop.height;\n var width = height * desiredAspectRatio;\n var top = crop.top;\n var hotspotXCenter = (hotspot.right - hotspot.left) / 2 + hotspot.left;\n var left = hotspotXCenter - width / 2;\n\n if (left < crop.left) {\n left = crop.left;\n } else if (left + width > crop.left + crop.width) {\n left = crop.left + crop.width - width;\n }\n\n cropRect = {\n left: Math.round(left),\n top: Math.round(top),\n width: Math.round(width),\n height: Math.round(height)\n };\n } else {\n var _width = crop.width;\n\n var _height = _width / desiredAspectRatio;\n\n var _left = crop.left;\n var hotspotYCenter = (hotspot.bottom - hotspot.top) / 2 + hotspot.top;\n\n var _top = hotspotYCenter - _height / 2;\n\n if (_top < crop.top) {\n _top = crop.top;\n } else if (_top + _height > crop.top + crop.height) {\n _top = crop.top + crop.height - _height;\n }\n\n cropRect = {\n left: Math.max(0, Math.floor(_left)),\n top: Math.max(0, Math.floor(_top)),\n width: Math.round(_width),\n height: Math.round(_height)\n };\n }\n\n return {\n width: imgWidth,\n height: imgHeight,\n rect: cropRect\n };\n }\n\n var validFits = ['clip', 'crop', 'fill', 'fillmax', 'max', 'scale', 'min'];\n var validCrops = ['top', 'bottom', 'left', 'right', 'center', 'focalpoint', 'entropy'];\n var validAutoModes = ['format'];\n\n function isSanityClient(client) {\n return client ? typeof client.clientConfig === 'object' : false;\n }\n\n function rewriteSpecName(key) {\n var specs = SPEC_NAME_TO_URL_NAME_MAPPINGS;\n\n for (var _iterator = _createForOfIteratorHelperLoose(specs), _step; !(_step = _iterator()).done;) {\n var entry = _step.value;\n var specName = entry[0],\n param = entry[1];\n\n if (key === specName || key === param) {\n return specName;\n }\n }\n\n return key;\n }\n\n function urlBuilder(options) {\n var client = options;\n\n if (isSanityClient(client)) {\n var _client$clientConfig = client.clientConfig,\n apiUrl = _client$clientConfig.apiHost,\n projectId = _client$clientConfig.projectId,\n dataset = _client$clientConfig.dataset;\n var apiHost = apiUrl || 'https://api.sanity.io';\n return new ImageUrlBuilder(null, {\n baseUrl: apiHost.replace(/^https:\\/\\/api\\./, 'https://cdn.'),\n projectId: projectId,\n dataset: dataset\n });\n }\n\n return new ImageUrlBuilder(null, options);\n }\n\n var ImageUrlBuilder = /*#__PURE__*/function () {\n function ImageUrlBuilder(parent, options) {\n this.options = parent ? _extends(_extends({}, parent.options || {}), options || {}) : _extends({}, options || {});\n }\n\n var _proto = ImageUrlBuilder.prototype;\n\n _proto.withOptions = function withOptions(options) {\n var baseUrl = options.baseUrl || this.options.baseUrl;\n var newOptions = {\n baseUrl: baseUrl\n };\n\n for (var key in options) {\n if (options.hasOwnProperty(key)) {\n var specKey = rewriteSpecName(key);\n newOptions[specKey] = options[key];\n }\n }\n\n return new ImageUrlBuilder(this, _extends({\n baseUrl: baseUrl\n }, newOptions));\n };\n\n _proto.image = function image(source) {\n return this.withOptions({\n source: source\n });\n };\n\n _proto.dataset = function dataset(_dataset) {\n return this.withOptions({\n dataset: _dataset\n });\n };\n\n _proto.projectId = function projectId(_projectId) {\n return this.withOptions({\n projectId: _projectId\n });\n };\n\n _proto.bg = function bg(_bg) {\n return this.withOptions({\n bg: _bg\n });\n };\n\n _proto.dpr = function dpr(_dpr) {\n return this.withOptions({\n dpr: _dpr\n });\n };\n\n _proto.width = function width(_width) {\n return this.withOptions({\n width: _width\n });\n };\n\n _proto.height = function height(_height) {\n return this.withOptions({\n height: _height\n });\n };\n\n _proto.focalPoint = function focalPoint(x, y) {\n return this.withOptions({\n focalPoint: {\n x: x,\n y: y\n }\n });\n };\n\n _proto.maxWidth = function maxWidth(_maxWidth) {\n return this.withOptions({\n maxWidth: _maxWidth\n });\n };\n\n _proto.minWidth = function minWidth(_minWidth) {\n return this.withOptions({\n minWidth: _minWidth\n });\n };\n\n _proto.maxHeight = function maxHeight(_maxHeight) {\n return this.withOptions({\n maxHeight: _maxHeight\n });\n };\n\n _proto.minHeight = function minHeight(_minHeight) {\n return this.withOptions({\n minHeight: _minHeight\n });\n };\n\n _proto.size = function size(width, height) {\n return this.withOptions({\n width: width,\n height: height\n });\n };\n\n _proto.blur = function blur(_blur) {\n return this.withOptions({\n blur: _blur\n });\n };\n\n _proto.sharpen = function sharpen(_sharpen) {\n return this.withOptions({\n sharpen: _sharpen\n });\n };\n\n _proto.rect = function rect(left, top, width, height) {\n return this.withOptions({\n rect: {\n left: left,\n top: top,\n width: width,\n height: height\n }\n });\n };\n\n _proto.format = function format(_format) {\n return this.withOptions({\n format: _format\n });\n };\n\n _proto.invert = function invert(_invert) {\n return this.withOptions({\n invert: _invert\n });\n };\n\n _proto.orientation = function orientation(_orientation) {\n return this.withOptions({\n orientation: _orientation\n });\n };\n\n _proto.quality = function quality(_quality) {\n return this.withOptions({\n quality: _quality\n });\n };\n\n _proto.forceDownload = function forceDownload(download) {\n return this.withOptions({\n download: download\n });\n };\n\n _proto.flipHorizontal = function flipHorizontal() {\n return this.withOptions({\n flipHorizontal: true\n });\n };\n\n _proto.flipVertical = function flipVertical() {\n return this.withOptions({\n flipVertical: true\n });\n };\n\n _proto.ignoreImageParams = function ignoreImageParams() {\n return this.withOptions({\n ignoreImageParams: true\n });\n };\n\n _proto.fit = function fit(value) {\n if (validFits.indexOf(value) === -1) {\n throw new Error(\"Invalid fit mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n fit: value\n });\n };\n\n _proto.crop = function crop(value) {\n if (validCrops.indexOf(value) === -1) {\n throw new Error(\"Invalid crop mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n crop: value\n });\n };\n\n _proto.saturation = function saturation(_saturation) {\n return this.withOptions({\n saturation: _saturation\n });\n };\n\n _proto.auto = function auto(value) {\n if (validAutoModes.indexOf(value) === -1) {\n throw new Error(\"Invalid auto mode \\\"\" + value + \"\\\"\");\n }\n\n return this.withOptions({\n auto: value\n });\n };\n\n _proto.url = function url() {\n return urlForImage(this.options);\n };\n\n _proto.toString = function toString() {\n return this.url();\n };\n\n return ImageUrlBuilder;\n }();\n\n return urlBuilder;\n});","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nfunction _typeof(obj) {\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nvar objectAssign = require('object-assign');\n\nvar isDefined = function isDefined(val) {\n return typeof val !== 'undefined';\n}; // Recursively merge/replace default serializers with user-specified serializers\n\n\nmodule.exports = function mergeSerializers(defaultSerializers, userSerializers) {\n return Object.keys(defaultSerializers).reduce(function (acc, key) {\n var type = _typeof(defaultSerializers[key]);\n\n if (type === 'function') {\n acc[key] = isDefined(userSerializers[key]) ? userSerializers[key] : defaultSerializers[key];\n } else if (type === 'object') {\n acc[key] = objectAssign({}, defaultSerializers[key], userSerializers[key]);\n } else {\n acc[key] = typeof userSerializers[key] === 'undefined' ? defaultSerializers[key] : userSerializers[key];\n }\n\n return acc;\n }, {});\n};","import * as React from \"react\";\nimport { View } from \"react-native\";\nimport {\n FaTwitter,\n FaInstagram,\n FaYoutube,\n FaFacebook,\n FaGlobe,\n FaFlickr,\n} from \"react-icons/fa\";\n\nfunction SocialLink(props: { url: string; size: number; color: string }) {\n let linkContent: React.ReactNode = (\n \n );\n let linkTitle = props.url;\n\n if (props.url.toLowerCase().startsWith(\"https://twitter.com/\")) {\n linkContent = (\n \n );\n linkTitle = `@${props.url.replace(\"https://twitter.com/\", \"\")} on Twitter`;\n }\n\n if (props.url.toLowerCase().startsWith(\"https://www.instagram.com/\")) {\n linkContent = (\n \n );\n linkTitle = `@${props.url.replace(\n \"https://www.instagram.com/\",\n \"\"\n )} on Instagram`;\n }\n\n if (props.url.toLowerCase().startsWith(\"https://www.flickr.com\")) {\n linkContent = (\n \n );\n linkTitle = `Take a look on Flickr`;\n }\n\n if (props.url.toLowerCase().startsWith(\"https://www.youtube.com/\")) {\n linkContent = (\n \n );\n linkTitle = `@${props.url.replace(\n \"https://www.youtube.com/user/\",\n \"\"\n )} on YouTube`;\n }\n\n if (props.url.toLowerCase().startsWith(\"https://www.facebook.com/\")) {\n linkContent = (\n \n );\n linkTitle = `${props.url.replace(\n \"https://www.facebook.com/\",\n \"\"\n )} on Facebook`;\n }\n\n return (\n \n {linkContent}\n \n );\n}\n\nfunction SocialLinks(props: {\n socials: string[];\n size: number;\n color: string;\n centered?: boolean;\n}) {\n return (\n \n {props.socials.map((url) => (\n \n ))}\n \n );\n}\n\nexport default SocialLinks;\n","\"use strict\";\n\nvar getSerializers = require('./serializers');\n\nvar _blocksToNodes = require('./blocksToNodes');\n\nvar getImageUrl = require('./getImageUrl');\n\nvar mergeSerializers = require('./mergeSerializers');\n\nmodule.exports = {\n blocksToNodes: function blocksToNodes(renderNode, props, defaultSerializers, serializeSpan) {\n if (defaultSerializers) {\n return _blocksToNodes(renderNode, props, defaultSerializers, serializeSpan);\n } // Backwards-compatibility\n\n\n var serializers = getSerializers(renderNode);\n return _blocksToNodes(renderNode, props, serializers.defaultSerializers, serializers.serializeSpan);\n },\n getSerializers: getSerializers,\n getImageUrl: getImageUrl,\n mergeSerializers: mergeSerializers\n};","\"use strict\";\n\nrequire(\"core-js/modules/es.array.reduce.js\");\n\nvar defaultMarks = ['strong', 'em', 'code', 'underline', 'strike-through'];\n\nvar buildMarksTree = function buildMarksTree(block) {\n var children = block.children,\n markDefs = block.markDefs;\n\n if (!children || !children.length) {\n return [];\n }\n\n var sortedMarks = children.map(sortMarksByOccurences);\n var rootNode = {\n _type: 'span',\n children: []\n };\n var nodeStack = [rootNode];\n children.forEach(function (span, i) {\n var marksNeeded = sortedMarks[i];\n\n if (!marksNeeded) {\n var lastNode = nodeStack[nodeStack.length - 1];\n lastNode.children.push(span);\n return;\n }\n\n var pos = 1; // Start at position one. Root is always plain and should never be removed. (?)\n\n if (nodeStack.length > 1) {\n for (pos; pos < nodeStack.length; pos++) {\n var mark = nodeStack[pos].markKey;\n var index = marksNeeded.indexOf(mark); // eslint-disable-next-line max-depth\n\n if (index === -1) {\n break;\n }\n\n marksNeeded.splice(index, 1);\n }\n } // Keep from beginning to first miss\n\n\n nodeStack = nodeStack.slice(0, pos); // Add needed nodes\n\n var currentNode = findLastParentNode(nodeStack);\n marksNeeded.forEach(function (mark) {\n var node = {\n _type: 'span',\n _key: span._key,\n children: [],\n mark: markDefs.find(function (def) {\n return def._key === mark;\n }) || mark,\n markKey: mark\n };\n currentNode.children.push(node);\n nodeStack.push(node);\n currentNode = node;\n }); // Split at newlines to make individual line chunks, but keep newline\n // characters as individual elements in the array. We use these characters\n // in the span serializer to trigger hard-break rendering\n\n if (isTextSpan(span)) {\n var lines = span.text.split('\\n');\n\n for (var line = lines.length; line-- > 1;) {\n lines.splice(line, 0, '\\n');\n }\n\n currentNode.children = currentNode.children.concat(lines);\n } else {\n currentNode.children = currentNode.children.concat(span);\n }\n });\n return rootNode.children;\n}; // We want to sort all the marks of all the spans in the following order:\n// 1. Marks that are shared amongst the most adjacent siblings\n// 2. Non-default marks (links, custom metadata)\n// 3. Built-in, plain marks (bold, emphasis, code etc)\n\n\nfunction sortMarksByOccurences(span, i, spans) {\n if (!span.marks || span.marks.length === 0) {\n return span.marks || [];\n }\n\n var markOccurences = span.marks.reduce(function (occurences, mark) {\n occurences[mark] = occurences[mark] ? occurences[mark] + 1 : 1;\n\n for (var siblingIndex = i + 1; siblingIndex < spans.length; siblingIndex++) {\n var sibling = spans[siblingIndex];\n\n if (sibling.marks && Array.isArray(sibling.marks) && sibling.marks.indexOf(mark) !== -1) {\n occurences[mark]++;\n } else {\n break;\n }\n }\n\n return occurences;\n }, {});\n var sortByOccurence = sortMarks.bind(null, markOccurences); // Slicing because sort() mutates the input\n\n return span.marks.slice().sort(sortByOccurence);\n}\n\nfunction sortMarks(occurences, markA, markB) {\n var aOccurences = occurences[markA] || 0;\n var bOccurences = occurences[markB] || 0;\n\n if (aOccurences !== bOccurences) {\n return bOccurences - aOccurences;\n }\n\n var aDefaultPos = defaultMarks.indexOf(markA);\n var bDefaultPos = defaultMarks.indexOf(markB); // Sort default marks last\n\n if (aDefaultPos !== bDefaultPos) {\n return aDefaultPos - bDefaultPos;\n } // Sort other marks simply by key\n\n\n if (markA < markB) {\n return -1;\n } else if (markA > markB) {\n return 1;\n }\n\n return 0;\n}\n\nfunction isTextSpan(node) {\n return node._type === 'span' && typeof node.text === 'string' && (Array.isArray(node.marks) || typeof node.marks === 'undefined');\n}\n\nfunction findLastParentNode(nodes) {\n for (var i = nodes.length - 1; i >= 0; i--) {\n var node = nodes[i];\n\n if (node._type === 'span' && node.children) {\n return node;\n }\n }\n\n return undefined;\n}\n\nmodule.exports = buildMarksTree;","module.exports = __webpack_public_path__ + \"static/seagazing-globe-2ba52d67d261bdf19466b40e6e8b0b16.png\";","module.exports = \"data:image/png;base64,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\"","'use strict';\n\nvar React = require('react');\n\nvar PropTypes = require('prop-types');\n\nvar internals = require('@sanity/block-content-to-hyperscript/internals');\n\nvar _require = require('./targets/dom'),\n serializers = _require.serializers,\n serializeSpan = _require.serializeSpan,\n renderProps = _require.renderProps;\n\nvar getImageUrl = internals.getImageUrl,\n blocksToNodes = internals.blocksToNodes,\n mergeSerializers = internals.mergeSerializers;\nvar renderNode = React.createElement;\n\nvar SanityBlockContent = function SanityBlockContent(props) {\n var customSerializers = mergeSerializers(SanityBlockContent.defaultSerializers, props.serializers);\n var blockProps = Object.assign({}, renderProps, props, {\n serializers: customSerializers,\n blocks: props.blocks || []\n });\n return blocksToNodes(renderNode, blockProps, serializers, serializeSpan);\n}; // Expose default serializers to the user\n\n\nSanityBlockContent.defaultSerializers = serializers; // Expose logic for building image URLs from an image reference/node\n\nSanityBlockContent.getImageUrl = getImageUrl;\nSanityBlockContent.propTypes = {\n className: PropTypes.string,\n renderContainerOnSingleChild: PropTypes.bool,\n // When rendering images, we need project id and dataset, unless images are materialized\n projectId: PropTypes.string,\n dataset: PropTypes.string,\n imageOptions: PropTypes.object,\n serializers: PropTypes.shape({\n // Common overrides\n types: PropTypes.object,\n marks: PropTypes.object,\n // Less common overrides\n list: PropTypes.func,\n listItem: PropTypes.func,\n // Low-level serializers\n block: PropTypes.func,\n span: PropTypes.func\n }),\n blocks: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.shape({\n _type: PropTypes.string.isRequired\n })), PropTypes.shape({\n _type: PropTypes.string.isRequired\n })]).isRequired\n};\nSanityBlockContent.defaultProps = {\n renderContainerOnSingleChild: false,\n serializers: {},\n imageOptions: {}\n};\nmodule.exports = SanityBlockContent;","var baseUrl = 'https://docs.sanity.io/help/';\n\nmodule.exports = function generateHelpUrl(slug) {\n return baseUrl + slug;\n};","\"use strict\";\n\nvar objectAssign = require('object-assign');\n/* eslint-disable max-depth, complexity */\n\n\nfunction nestLists(blocks) {\n var mode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'html';\n var tree = [];\n var currentList;\n\n for (var i = 0; i < blocks.length; i++) {\n var block = blocks[i];\n\n if (!isListBlock(block)) {\n tree.push(block);\n currentList = null;\n continue;\n } // Start of a new list?\n\n\n if (!currentList) {\n currentList = listFromBlock(block);\n tree.push(currentList);\n continue;\n } // New list item within same list?\n\n\n if (blockMatchesList(block, currentList)) {\n currentList.children.push(block);\n continue;\n } // Different list props, are we going deeper?\n\n\n if (block.level > currentList.level) {\n var newList = listFromBlock(block);\n\n if (mode === 'html') {\n // Because HTML is kinda weird, nested lists needs to be nested within list items\n // So while you would think that we could populate the parent list with a new sub-list,\n // We actually have to target the last list element (child) of the parent.\n // However, at this point we need to be very careful - simply pushing to the list of children\n // will mutate the input, and we don't want to blindly clone the entire tree.\n // Clone the last child while adding our new list as the last child of it\n var lastListItem = lastChild(currentList);\n var newLastChild = objectAssign({}, lastListItem, {\n children: lastListItem.children.concat(newList)\n }); // Swap the last child\n\n currentList.children[currentList.children.length - 1] = newLastChild;\n } else {\n currentList.children.push(newList);\n } // Set the newly created, deeper list as the current\n\n\n currentList = newList;\n continue;\n } // Different list props, are we going back up the tree?\n\n\n if (block.level < currentList.level) {\n // Current list has ended, and we need to hook up with a parent of the same level and type\n var match = findListMatching(tree[tree.length - 1], block);\n\n if (match) {\n currentList = match;\n currentList.children.push(block);\n continue;\n } // Similar parent can't be found, assume new list\n\n\n currentList = listFromBlock(block);\n tree.push(currentList);\n continue;\n } // Different list props, different list style?\n\n\n if (block.listItem !== currentList.listItem) {\n var _match = findListMatching(tree[tree.length - 1], {\n level: block.level\n });\n\n if (_match && _match.listItem === block.listItem) {\n currentList = _match;\n currentList.children.push(block);\n continue;\n } else {\n currentList = listFromBlock(block);\n tree.push(currentList);\n continue;\n }\n } // eslint-disable-next-line no-console\n\n\n console.warn('Unknown state encountered for block', block);\n tree.push(block);\n }\n\n return tree;\n}\n\nfunction isListBlock(block) {\n return Boolean(block.listItem);\n}\n\nfunction blockMatchesList(block, list) {\n return block.level === list.level && block.listItem === list.listItem;\n}\n\nfunction listFromBlock(block) {\n return {\n _type: 'list',\n _key: \"\".concat(block._key, \"-parent\"),\n level: block.level,\n listItem: block.listItem,\n children: [block]\n };\n}\n\nfunction lastChild(block) {\n return block.children && block.children[block.children.length - 1];\n}\n\nfunction findListMatching(rootNode, matching) {\n var filterOnType = typeof matching.listItem === 'string';\n\n if (rootNode._type === 'list' && rootNode.level === matching.level && filterOnType && rootNode.listItem === matching.listItem) {\n return rootNode;\n }\n\n var node = lastChild(rootNode);\n\n if (!node) {\n return false;\n }\n\n return findListMatching(node, matching);\n}\n\nmodule.exports = nestLists;","\"use strict\";\n\nvar objectAssign = require('object-assign');\n\nmodule.exports = function (blocks) {\n return blocks.map(function (block) {\n if (block._key) {\n return block;\n }\n\n return objectAssign({\n _key: getStaticKey(block)\n }, block);\n });\n};\n\nfunction getStaticKey(item) {\n return checksum(JSON.stringify(item)).toString(36).replace(/[^A-Za-z0-9]/g, '');\n}\n/* eslint-disable no-bitwise */\n\n\nfunction checksum(str) {\n var hash = 0;\n var strlen = str.length;\n\n if (strlen === 0) {\n return hash;\n }\n\n for (var i = 0; i < strlen; i++) {\n hash = (hash << 5) - hash + str.charCodeAt(i);\n hash &= hash; // Convert to 32bit integer\n }\n\n return hash;\n}\n/* eslint-enable no-bitwise */"],"sourceRoot":""}