aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--public/404.html4
-rw-r--r--public/404/index.html4
-rw-r--r--public/731-8f9fdae68961e4c344a4.js (renamed from public/731-7568b946592606042710.js)4
-rw-r--r--public/731-8f9fdae68961e4c344a4.js.map (renamed from public/731-7568b946592606042710.js.map)2
-rw-r--r--public/_gatsby/slices/_gatsby-scripts-1.html4
-rw-r--r--public/chunk-map.json2
-rw-r--r--public/component---src-pages-index-tsx-63f540cb9288b13dbeac.js2
-rw-r--r--public/component---src-pages-index-tsx-63f540cb9288b13dbeac.js.map1
-rw-r--r--public/component---src-pages-index-tsx-da364fa77bec8c0827e2.js2
-rw-r--r--public/component---src-pages-index-tsx-da364fa77bec8c0827e2.js.map1
-rw-r--r--public/index.html4
-rw-r--r--public/offline-plugin-app-shell-fallback/index.html4
-rw-r--r--public/page-data/app-data.json2
-rw-r--r--public/sw.js4
-rw-r--r--public/webpack-runtime-07215094817ebf51a34a.js (renamed from public/webpack-runtime-6a26673e502124aa4f70.js)4
-rw-r--r--public/webpack-runtime-07215094817ebf51a34a.js.map (renamed from public/webpack-runtime-6a26673e502124aa4f70.js.map)2
-rw-r--r--public/webpack.stats.json2
17 files changed, 24 insertions, 24 deletions
diff --git a/public/404.html b/public/404.html
index 1a90ac6..3d13941 100644
--- a/public/404.html
+++ b/public/404.html
@@ -21,6 +21,6 @@ data-styled.g5[id="Footer-sc-1as233t-0"]{content:"jVEOXb,"}/*!sc*/
<script
id="gatsby-chunk-mapping"
>
- window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-da364fa77bec8c0827e2.js\"]}";
+ window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-63f540cb9288b13dbeac.js\"]}";
</script>
- <script>window.___webpackCompilationHash="129b3b313a700640a84a";</script><script src="/webpack-runtime-6a26673e502124aa4f70.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file
+ <script>window.___webpackCompilationHash="32d8684aa33b0c1db844";</script><script src="/webpack-runtime-07215094817ebf51a34a.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file
diff --git a/public/404/index.html b/public/404/index.html
index 70fa5c6..3a8a3f0 100644
--- a/public/404/index.html
+++ b/public/404/index.html
@@ -21,6 +21,6 @@ data-styled.g5[id="Footer-sc-1as233t-0"]{content:"jVEOXb,"}/*!sc*/
<script
id="gatsby-chunk-mapping"
>
- window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-da364fa77bec8c0827e2.js\"]}";
+ window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-63f540cb9288b13dbeac.js\"]}";
</script>
- <script>window.___webpackCompilationHash="129b3b313a700640a84a";</script><script src="/webpack-runtime-6a26673e502124aa4f70.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file
+ <script>window.___webpackCompilationHash="32d8684aa33b0c1db844";</script><script src="/webpack-runtime-07215094817ebf51a34a.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script><!-- slice-end id="_gatsby-scripts-1" --></body></html> \ No newline at end of file
diff --git a/public/731-7568b946592606042710.js b/public/731-8f9fdae68961e4c344a4.js
index ae70d51..a26b90a 100644
--- a/public/731-7568b946592606042710.js
+++ b/public/731-8f9fdae68961e4c344a4.js
@@ -1,2 +1,2 @@
-"use strict";(self.webpackChunksubmelon_dev=self.webpackChunksubmelon_dev||[]).push([[731],{6731:function(e,t,n){n.r(t),n.d(t,{renderImageToString:function(){return b},swapPlaceholderImage:function(){return g}});var o=n(8032),a=n(7294),i=n(7762);n(2369);let r;const c=new WeakMap,l=navigator.connection||navigator.mozConnection||navigator.webkitConnection,s=["image","loading","isLoading","isLoaded","imgClassName","imgStyle","objectPosition","backgroundColor","objectFit"];function u(e,t){e.style.opacity="1",t&&(t.style.opacity="0")}function d(e,t,n,o,a,i){const r=e.querySelector("[data-main-image]"),c=e.querySelector("[data-placeholder-image]"),l=n.has(t);function s(e){this.removeEventListener("load",s);const t=e.currentTarget,n=new Image;n.src=t.currentSrc,n.decode?n.decode().then((()=>{u(this,c),null==a||a({wasCached:l})})).catch((e=>{u(this,c),null==i||i(e)})):(u(this,c),null==a||a({wasCached:l}))}return r.addEventListener("load",s),null==o||o({wasCached:l}),Array.from(r.parentElement.children).forEach((e=>{const t=e.getAttribute("data-src"),n=e.getAttribute("data-srcset");t&&(e.removeAttribute("data-src"),e.setAttribute("src",t)),n&&(e.removeAttribute("data-srcset"),e.setAttribute("srcset",n))})),n.add(t),r.complete&&s.call(r,{currentTarget:r}),()=>{r&&r.removeEventListener("load",s)}}function g(e,t,a,i,s,u,g){if(!(0,o.h)()){let o;const v=(h=()=>{o=d(e,t,a,s,u,g)},"IntersectionObserver"in window?(r||(r=new IntersectionObserver((e=>{e.forEach((e=>{var t;e.isIntersecting&&(null==(t=c.get(e.target))||t(),c.delete(e.target))}))}),{rootMargin:"4g"!==(null==l?void 0:l.effectiveType)||null!=l&&l.saveData?"2500px":"1250px"})),function(e){return c.set(e,h),r.observe(e),function(){r&&e&&(c.delete(e),r.unobserve(e))}}):function(){return h(),function(){}}),f=v(e);var b,m;return"objectFit"in document.documentElement.style||(e.dataset.objectFit=null!=(b=i.objectFit)?b:"cover",e.dataset.objectPosition=""+(null!=(m=i.objectPosition)?m:"50% 50%"),async function(e){"objectFitPolyfill"in window||await n.e(843).then(n.t.bind(n,4843,23)),window.objectFitPolyfill(e)}(e)),()=>{o&&o(),f()}}var h;return d(e,t,a,s,u,g)}function b(e){let{image:t,loading:n="lazy",isLoading:r,isLoaded:c,imgClassName:l,imgStyle:u={},objectPosition:d,backgroundColor:g,objectFit:b="cover"}=e,m=(0,o._)(e,s);const{width:h,height:v,layout:f,images:w,placeholder:y,backgroundColor:p}=t;return u=(0,o.a)({objectFit:b,objectPosition:d,backgroundColor:g},u),(0,i.uS)(a.createElement(o.L,{layout:f,width:h,height:v},a.createElement(o.P,(0,o.a)({},(0,o.g)(y,c,f,h,v,p,b,d))),a.createElement(o.M,(0,o.a)({},m,{width:h,height:v,className:l},(0,o.b)(r,c,w,n,u)))))}}}]);
-//# sourceMappingURL=731-7568b946592606042710.js.map \ No newline at end of file
+"use strict";(self.webpackChunksubmelon_dev=self.webpackChunksubmelon_dev||[]).push([[731],{6731:function(e,t,n){n.r(t),n.d(t,{renderImageToString:function(){return b},swapPlaceholderImage:function(){return g}});var o=n(8032),a=n(7294),i=n(7762);n(3204);let r;const c=new WeakMap,l=navigator.connection||navigator.mozConnection||navigator.webkitConnection,s=["image","loading","isLoading","isLoaded","imgClassName","imgStyle","objectPosition","backgroundColor","objectFit"];function u(e,t){e.style.opacity="1",t&&(t.style.opacity="0")}function d(e,t,n,o,a,i){const r=e.querySelector("[data-main-image]"),c=e.querySelector("[data-placeholder-image]"),l=n.has(t);function s(e){this.removeEventListener("load",s);const t=e.currentTarget,n=new Image;n.src=t.currentSrc,n.decode?n.decode().then((()=>{u(this,c),null==a||a({wasCached:l})})).catch((e=>{u(this,c),null==i||i(e)})):(u(this,c),null==a||a({wasCached:l}))}return r.addEventListener("load",s),null==o||o({wasCached:l}),Array.from(r.parentElement.children).forEach((e=>{const t=e.getAttribute("data-src"),n=e.getAttribute("data-srcset");t&&(e.removeAttribute("data-src"),e.setAttribute("src",t)),n&&(e.removeAttribute("data-srcset"),e.setAttribute("srcset",n))})),n.add(t),r.complete&&s.call(r,{currentTarget:r}),()=>{r&&r.removeEventListener("load",s)}}function g(e,t,a,i,s,u,g){if(!(0,o.h)()){let o;const v=(h=()=>{o=d(e,t,a,s,u,g)},"IntersectionObserver"in window?(r||(r=new IntersectionObserver((e=>{e.forEach((e=>{var t;e.isIntersecting&&(null==(t=c.get(e.target))||t(),c.delete(e.target))}))}),{rootMargin:"4g"!==(null==l?void 0:l.effectiveType)||null!=l&&l.saveData?"2500px":"1250px"})),function(e){return c.set(e,h),r.observe(e),function(){r&&e&&(c.delete(e),r.unobserve(e))}}):function(){return h(),function(){}}),f=v(e);var b,m;return"objectFit"in document.documentElement.style||(e.dataset.objectFit=null!=(b=i.objectFit)?b:"cover",e.dataset.objectPosition=""+(null!=(m=i.objectPosition)?m:"50% 50%"),async function(e){"objectFitPolyfill"in window||await n.e(843).then(n.t.bind(n,4843,23)),window.objectFitPolyfill(e)}(e)),()=>{o&&o(),f()}}var h;return d(e,t,a,s,u,g)}function b(e){let{image:t,loading:n="lazy",isLoading:r,isLoaded:c,imgClassName:l,imgStyle:u={},objectPosition:d,backgroundColor:g,objectFit:b="cover"}=e,m=(0,o._)(e,s);const{width:h,height:v,layout:f,images:w,placeholder:y,backgroundColor:p}=t;return u=(0,o.a)({objectFit:b,objectPosition:d,backgroundColor:g},u),(0,i.uS)(a.createElement(o.L,{layout:f,width:h,height:v},a.createElement(o.P,(0,o.a)({},(0,o.g)(y,c,f,h,v,p,b,d))),a.createElement(o.M,(0,o.a)({},m,{width:h,height:v,className:l},(0,o.b)(r,c,w,n,u)))))}}}]);
+//# sourceMappingURL=731-8f9fdae68961e4c344a4.js.map \ No newline at end of file
diff --git a/public/731-7568b946592606042710.js.map b/public/731-8f9fdae68961e4c344a4.js.map
index 18b7d7a..3cbd2e3 100644
--- a/public/731-7568b946592606042710.js.map
+++ b/public/731-8f9fdae68961e4c344a4.js.map
@@ -1 +1 @@
-{"version":3,"file":"731-7568b946592606042710.js","mappings":"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","sources":["webpack://submelon.dev/../src/components/intersection-observer.ts","webpack://submelon.dev/../src/components/lazy-hydrate.tsx"],"sourcesContent":["let intersectionObserver: IntersectionObserver\n\nexport type Unobserver = () => void\n\nconst ioEntryMap = new WeakMap<HTMLElement, () => void>()\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst connection =\n (navigator as any).connection ||\n (navigator as any).mozConnection ||\n (navigator as any).webkitConnection\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// These match the thresholds used in Chrome's native lazy loading\n// @see https://web.dev/browser-level-image-lazy-loading/#distance-from-viewport-thresholds\nconst FAST_CONNECTION_THRESHOLD = `1250px`\nconst SLOW_CONNECTION_THRESHOLD = `2500px`\n\nexport function createIntersectionObserver(\n callback: () => void\n): (element: HTMLElement) => Unobserver {\n const connectionType = connection?.effectiveType\n\n // if we don't support intersectionObserver we don't lazy load (Sorry IE 11).\n if (!(`IntersectionObserver` in window)) {\n return function observe(): Unobserver {\n callback()\n return function unobserve(): void {}\n }\n }\n\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Get the matching entry's callback and call it\n ioEntryMap.get(entry.target as HTMLElement)?.()\n // We only need to call it once\n ioEntryMap.delete(entry.target as HTMLElement)\n }\n })\n },\n {\n rootMargin:\n connectionType === `4g` && !connection?.saveData\n ? FAST_CONNECTION_THRESHOLD\n : SLOW_CONNECTION_THRESHOLD,\n }\n )\n }\n\n return function observe(element: HTMLElement): Unobserver {\n // Store a reference to the callback mapped to the element being watched\n ioEntryMap.set(element, callback)\n intersectionObserver.observe(element)\n\n return function unobserve(): void {\n if (intersectionObserver && element) {\n ioEntryMap.delete(element)\n intersectionObserver.unobserve(element)\n }\n }\n }\n}\n","import React from \"react\"\nimport { renderToStaticMarkup } from \"react-dom/server\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage } from \"./main-image\"\nimport {\n hasNativeLazyLoadSupport,\n getMainProps,\n getPlaceholderProps,\n} from \"./hooks\"\nimport { createIntersectionObserver } from \"./intersection-observer\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { GatsbyImageProps } from \"./gatsby-image.browser\"\n\ntype LazyHydrateProps = Omit<GatsbyImageProps, \"as\" | \"style\" | \"className\"> & {\n isLoading: boolean\n isLoaded: boolean\n}\n\nasync function applyPolyfill(element: HTMLImageElement): Promise<void> {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(element)\n}\n\nfunction toggleLoaded(\n mainImage: HTMLElement,\n placeholderImage: HTMLElement\n): void {\n mainImage.style.opacity = `1`\n\n if (placeholderImage) {\n placeholderImage.style.opacity = `0`\n }\n}\n\nfunction startLoading(\n element: HTMLElement,\n cacheKey: string,\n imageCache: Set<string>,\n onStartLoad: GatsbyImageProps[\"onStartLoad\"],\n onLoad: GatsbyImageProps[\"onLoad\"],\n onError: GatsbyImageProps[\"onError\"]\n): () => void {\n const mainImage = element.querySelector(\n `[data-main-image]`\n ) as HTMLImageElement\n const placeholderImage = element.querySelector<HTMLElement>(\n `[data-placeholder-image]`\n )\n const isCached = imageCache.has(cacheKey)\n\n function onImageLoaded(e): void {\n // eslint-disable-next-line @babel/no-invalid-this\n this.removeEventListener(`load`, onImageLoaded)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .then(() => {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onLoad?.({\n wasCached: isCached,\n })\n })\n .catch(e => {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onError?.(e)\n })\n } else {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onLoad?.({\n wasCached: isCached,\n })\n }\n }\n\n mainImage.addEventListener(`load`, onImageLoaded)\n\n onStartLoad?.({\n wasCached: isCached,\n })\n Array.from(mainImage.parentElement.children).forEach(child => {\n const src = child.getAttribute(`data-src`)\n const srcSet = child.getAttribute(`data-srcset`)\n if (src) {\n child.removeAttribute(`data-src`)\n child.setAttribute(`src`, src)\n }\n if (srcSet) {\n child.removeAttribute(`data-srcset`)\n child.setAttribute(`srcset`, srcSet)\n }\n })\n\n imageCache.add(cacheKey)\n\n // Load times not always fires - mostly when it's a 304\n // We check if the image is already completed and if so we trigger onload.\n if (mainImage.complete) {\n onImageLoaded.call(mainImage, {\n currentTarget: mainImage,\n })\n }\n\n return (): void => {\n if (mainImage) {\n mainImage.removeEventListener(`load`, onImageLoaded)\n }\n }\n}\n\nexport function swapPlaceholderImage(\n element: HTMLElement,\n cacheKey: string,\n imageCache: Set<string>,\n style: React.CSSProperties,\n onStartLoad: GatsbyImageProps[\"onStartLoad\"],\n onLoad: GatsbyImageProps[\"onLoad\"],\n onError: GatsbyImageProps[\"onError\"]\n): () => void {\n if (!hasNativeLazyLoadSupport()) {\n let cleanup\n const io = createIntersectionObserver(() => {\n cleanup = startLoading(\n element,\n cacheKey,\n imageCache,\n onStartLoad,\n onLoad,\n onError\n )\n })\n const unobserve = io(element)\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (!(`objectFit` in document.documentElement.style)) {\n element.dataset.objectFit = style.objectFit ?? `cover`\n element.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(element as HTMLImageElement)\n }\n\n return (): void => {\n if (cleanup) {\n cleanup()\n }\n\n unobserve()\n }\n }\n\n return startLoading(\n element,\n cacheKey,\n imageCache,\n onStartLoad,\n onLoad,\n onError\n )\n}\n\nexport function renderImageToString({\n image,\n loading = `lazy`,\n isLoading,\n isLoaded,\n imgClassName,\n imgStyle = {},\n objectPosition,\n backgroundColor,\n objectFit = `cover`,\n ...props\n}: LazyHydrateProps): string {\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: wrapperBackgroundColor,\n } = image\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n return renderToStaticMarkup(\n <LayoutWrapper layout={layout} width={width} height={height}>\n <Placeholder\n {...getPlaceholderProps(\n placeholder,\n isLoaded,\n layout,\n width,\n height,\n wrapperBackgroundColor,\n objectFit,\n objectPosition\n )}\n />\n\n <MainImage\n {...(props as Omit<\n MainImageProps,\n \"images\" | \"fallback\" | \"onLoad\" | \"onError\"\n >)}\n width={width}\n height={height}\n className={imgClassName}\n {...getMainProps(isLoading, isLoaded, images, loading, imgStyle)}\n />\n </LayoutWrapper>\n )\n}\n"],"names":["intersectionObserver","ioEntryMap","WeakMap","connection","navigator","mozConnection","webkitConnection","_excluded","toggleLoaded","mainImage","placeholderImage","style","opacity","startLoading","element","cacheKey","imageCache","onStartLoad","onLoad","onError","querySelector","has","onImageLoaded","e","this","removeEventListener","currentTarget","img","Image","src","target","currentSrc","decode","then","wasCached","isCached","catch","addEventListener","Array","from","parentElement","children","forEach","child","getAttribute","srcSet","removeAttribute","setAttribute","add","complete","call","hasNativeLazyLoadSupport","cleanup","callback","IntersectionObserver","entries","entry","isIntersecting","get","_ioEntryMap$get","delete","rootMargin","effectiveType","saveData","set","observe","unobserve","io","document","documentElement","dataset","objectFit","_style$objectFit","objectPosition","async","window","import","objectFitPolyfill","renderImageToString","image","loading","isLoading","isLoaded","imgClassName","imgStyle","backgroundColor","_ref","props","_objectWithoutPropertiesLoose","width","height","layout","images","placeholder","wrapperBackgroundColor","React","createElement","getPlaceholderProps","MainImage","className","getMainProps"],"sourceRoot":""} \ No newline at end of file
+{"version":3,"file":"731-8f9fdae68961e4c344a4.js","mappings":"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","sources":["webpack://submelon.dev/../src/components/intersection-observer.ts","webpack://submelon.dev/../src/components/lazy-hydrate.tsx"],"sourcesContent":["let intersectionObserver: IntersectionObserver\n\nexport type Unobserver = () => void\n\nconst ioEntryMap = new WeakMap<HTMLElement, () => void>()\n/* eslint-disable @typescript-eslint/no-explicit-any */\nconst connection =\n (navigator as any).connection ||\n (navigator as any).mozConnection ||\n (navigator as any).webkitConnection\n/* eslint-enable @typescript-eslint/no-explicit-any */\n\n// These match the thresholds used in Chrome's native lazy loading\n// @see https://web.dev/browser-level-image-lazy-loading/#distance-from-viewport-thresholds\nconst FAST_CONNECTION_THRESHOLD = `1250px`\nconst SLOW_CONNECTION_THRESHOLD = `2500px`\n\nexport function createIntersectionObserver(\n callback: () => void\n): (element: HTMLElement) => Unobserver {\n const connectionType = connection?.effectiveType\n\n // if we don't support intersectionObserver we don't lazy load (Sorry IE 11).\n if (!(`IntersectionObserver` in window)) {\n return function observe(): Unobserver {\n callback()\n return function unobserve(): void {}\n }\n }\n\n if (!intersectionObserver) {\n intersectionObserver = new IntersectionObserver(\n entries => {\n entries.forEach(entry => {\n if (entry.isIntersecting) {\n // Get the matching entry's callback and call it\n ioEntryMap.get(entry.target as HTMLElement)?.()\n // We only need to call it once\n ioEntryMap.delete(entry.target as HTMLElement)\n }\n })\n },\n {\n rootMargin:\n connectionType === `4g` && !connection?.saveData\n ? FAST_CONNECTION_THRESHOLD\n : SLOW_CONNECTION_THRESHOLD,\n }\n )\n }\n\n return function observe(element: HTMLElement): Unobserver {\n // Store a reference to the callback mapped to the element being watched\n ioEntryMap.set(element, callback)\n intersectionObserver.observe(element)\n\n return function unobserve(): void {\n if (intersectionObserver && element) {\n ioEntryMap.delete(element)\n intersectionObserver.unobserve(element)\n }\n }\n }\n}\n","import React from \"react\"\nimport { renderToStaticMarkup } from \"react-dom/server\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage } from \"./main-image\"\nimport {\n hasNativeLazyLoadSupport,\n getMainProps,\n getPlaceholderProps,\n} from \"./hooks\"\nimport { createIntersectionObserver } from \"./intersection-observer\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { GatsbyImageProps } from \"./gatsby-image.browser\"\n\ntype LazyHydrateProps = Omit<GatsbyImageProps, \"as\" | \"style\" | \"className\"> & {\n isLoading: boolean\n isLoaded: boolean\n}\n\nasync function applyPolyfill(element: HTMLImageElement): Promise<void> {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(element)\n}\n\nfunction toggleLoaded(\n mainImage: HTMLElement,\n placeholderImage: HTMLElement\n): void {\n mainImage.style.opacity = `1`\n\n if (placeholderImage) {\n placeholderImage.style.opacity = `0`\n }\n}\n\nfunction startLoading(\n element: HTMLElement,\n cacheKey: string,\n imageCache: Set<string>,\n onStartLoad: GatsbyImageProps[\"onStartLoad\"],\n onLoad: GatsbyImageProps[\"onLoad\"],\n onError: GatsbyImageProps[\"onError\"]\n): () => void {\n const mainImage = element.querySelector(\n `[data-main-image]`\n ) as HTMLImageElement\n const placeholderImage = element.querySelector<HTMLElement>(\n `[data-placeholder-image]`\n )\n const isCached = imageCache.has(cacheKey)\n\n function onImageLoaded(e): void {\n // eslint-disable-next-line @babel/no-invalid-this\n this.removeEventListener(`load`, onImageLoaded)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .then(() => {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onLoad?.({\n wasCached: isCached,\n })\n })\n .catch(e => {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onError?.(e)\n })\n } else {\n // eslint-disable-next-line @babel/no-invalid-this\n toggleLoaded(this, placeholderImage)\n onLoad?.({\n wasCached: isCached,\n })\n }\n }\n\n mainImage.addEventListener(`load`, onImageLoaded)\n\n onStartLoad?.({\n wasCached: isCached,\n })\n Array.from(mainImage.parentElement.children).forEach(child => {\n const src = child.getAttribute(`data-src`)\n const srcSet = child.getAttribute(`data-srcset`)\n if (src) {\n child.removeAttribute(`data-src`)\n child.setAttribute(`src`, src)\n }\n if (srcSet) {\n child.removeAttribute(`data-srcset`)\n child.setAttribute(`srcset`, srcSet)\n }\n })\n\n imageCache.add(cacheKey)\n\n // Load times not always fires - mostly when it's a 304\n // We check if the image is already completed and if so we trigger onload.\n if (mainImage.complete) {\n onImageLoaded.call(mainImage, {\n currentTarget: mainImage,\n })\n }\n\n return (): void => {\n if (mainImage) {\n mainImage.removeEventListener(`load`, onImageLoaded)\n }\n }\n}\n\nexport function swapPlaceholderImage(\n element: HTMLElement,\n cacheKey: string,\n imageCache: Set<string>,\n style: React.CSSProperties,\n onStartLoad: GatsbyImageProps[\"onStartLoad\"],\n onLoad: GatsbyImageProps[\"onLoad\"],\n onError: GatsbyImageProps[\"onError\"]\n): () => void {\n if (!hasNativeLazyLoadSupport()) {\n let cleanup\n const io = createIntersectionObserver(() => {\n cleanup = startLoading(\n element,\n cacheKey,\n imageCache,\n onStartLoad,\n onLoad,\n onError\n )\n })\n const unobserve = io(element)\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (!(`objectFit` in document.documentElement.style)) {\n element.dataset.objectFit = style.objectFit ?? `cover`\n element.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(element as HTMLImageElement)\n }\n\n return (): void => {\n if (cleanup) {\n cleanup()\n }\n\n unobserve()\n }\n }\n\n return startLoading(\n element,\n cacheKey,\n imageCache,\n onStartLoad,\n onLoad,\n onError\n )\n}\n\nexport function renderImageToString({\n image,\n loading = `lazy`,\n isLoading,\n isLoaded,\n imgClassName,\n imgStyle = {},\n objectPosition,\n backgroundColor,\n objectFit = `cover`,\n ...props\n}: LazyHydrateProps): string {\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: wrapperBackgroundColor,\n } = image\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n return renderToStaticMarkup(\n <LayoutWrapper layout={layout} width={width} height={height}>\n <Placeholder\n {...getPlaceholderProps(\n placeholder,\n isLoaded,\n layout,\n width,\n height,\n wrapperBackgroundColor,\n objectFit,\n objectPosition\n )}\n />\n\n <MainImage\n {...(props as Omit<\n MainImageProps,\n \"images\" | \"fallback\" | \"onLoad\" | \"onError\"\n >)}\n width={width}\n height={height}\n className={imgClassName}\n {...getMainProps(isLoading, isLoaded, images, loading, imgStyle)}\n />\n </LayoutWrapper>\n )\n}\n"],"names":["intersectionObserver","ioEntryMap","WeakMap","connection","navigator","mozConnection","webkitConnection","_excluded","toggleLoaded","mainImage","placeholderImage","style","opacity","startLoading","element","cacheKey","imageCache","onStartLoad","onLoad","onError","querySelector","has","onImageLoaded","e","this","removeEventListener","currentTarget","img","Image","src","target","currentSrc","decode","then","wasCached","isCached","catch","addEventListener","Array","from","parentElement","children","forEach","child","getAttribute","srcSet","removeAttribute","setAttribute","add","complete","call","hasNativeLazyLoadSupport","cleanup","callback","IntersectionObserver","entries","entry","isIntersecting","get","_ioEntryMap$get","delete","rootMargin","effectiveType","saveData","set","observe","unobserve","io","document","documentElement","dataset","objectFit","_style$objectFit","objectPosition","async","window","import","objectFitPolyfill","renderImageToString","image","loading","isLoading","isLoaded","imgClassName","imgStyle","backgroundColor","_ref","props","_objectWithoutPropertiesLoose","width","height","layout","images","placeholder","wrapperBackgroundColor","React","createElement","getPlaceholderProps","MainImage","className","getMainProps"],"sourceRoot":""} \ No newline at end of file
diff --git a/public/_gatsby/slices/_gatsby-scripts-1.html b/public/_gatsby/slices/_gatsby-scripts-1.html
index d6ae4c6..8a9e207 100644
--- a/public/_gatsby/slices/_gatsby-scripts-1.html
+++ b/public/_gatsby/slices/_gatsby-scripts-1.html
@@ -2,6 +2,6 @@
<script
id="gatsby-chunk-mapping"
>
- window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-da364fa77bec8c0827e2.js\"]}";
+ window.___chunkMapping="{\"app\":[\"/app-0675f0cabfa273eb3d1d.js\"],\"component---cache-caches-gatsby-plugin-offline-app-shell-js\":[\"/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js\"],\"component---src-pages-404-tsx\":[\"/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js\"],\"component---src-pages-index-tsx\":[\"/component---src-pages-index-tsx-63f540cb9288b13dbeac.js\"]}";
</script>
- <script>window.___webpackCompilationHash="129b3b313a700640a84a";</script><script src="/webpack-runtime-6a26673e502124aa4f70.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script> \ No newline at end of file
+ <script>window.___webpackCompilationHash="32d8684aa33b0c1db844";</script><script src="/webpack-runtime-07215094817ebf51a34a.js" async></script><script src="/framework-9d7199247c4ea55ff463.js" async></script><script src="/app-0675f0cabfa273eb3d1d.js" async></script> \ No newline at end of file
diff --git a/public/chunk-map.json b/public/chunk-map.json
index 62ab5ef..b46b75d 100644
--- a/public/chunk-map.json
+++ b/public/chunk-map.json
@@ -1 +1 @@
-{"app":["/app-0675f0cabfa273eb3d1d.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-da364fa77bec8c0827e2.js"]} \ No newline at end of file
+{"app":["/app-0675f0cabfa273eb3d1d.js"],"component---cache-caches-gatsby-plugin-offline-app-shell-js":["/component---cache-caches-gatsby-plugin-offline-app-shell-js-56599e2012c5599fcb23.js"],"component---src-pages-404-tsx":["/component---src-pages-404-tsx-d29fb8ea3e32c047febf.js"],"component---src-pages-index-tsx":["/component---src-pages-index-tsx-63f540cb9288b13dbeac.js"]} \ No newline at end of file
diff --git a/public/component---src-pages-index-tsx-63f540cb9288b13dbeac.js b/public/component---src-pages-index-tsx-63f540cb9288b13dbeac.js
new file mode 100644
index 0000000..66e4ce5
--- /dev/null
+++ b/public/component---src-pages-index-tsx-63f540cb9288b13dbeac.js
@@ -0,0 +1,2 @@
+"use strict";(self.webpackChunksubmelon_dev=self.webpackChunksubmelon_dev||[]).push([[691],{3204:function(e){const t=/[\p{Lu}]/u,n=/[\p{Ll}]/u,r=/^[\p{Lu}](?![\p{Lu}])/gu,a=/([\p{Alpha}\p{N}_]|$)/u,i=/[_.\- ]+/,o=new RegExp("^"+i.source),l=new RegExp(i.source+a.source,"gu"),s=new RegExp("\\d+"+a.source,"gu"),c=(e,a)=>{if("string"!=typeof e&&!Array.isArray(e))throw new TypeError("Expected the input to be `string | string[]`");if(a={pascalCase:!1,preserveConsecutiveUppercase:!1,...a},0===(e=Array.isArray(e)?e.map((e=>e.trim())).filter((e=>e.length)).join("-"):e.trim()).length)return"";const i=!1===a.locale?e=>e.toLowerCase():e=>e.toLocaleLowerCase(a.locale),c=!1===a.locale?e=>e.toUpperCase():e=>e.toLocaleUpperCase(a.locale);if(1===e.length)return a.pascalCase?c(e):i(e);return e!==i(e)&&(e=((e,r,a)=>{let i=!1,o=!1,l=!1;for(let s=0;s<e.length;s++){const c=e[s];i&&t.test(c)?(e=e.slice(0,s)+"-"+e.slice(s),i=!1,l=o,o=!0,s++):o&&l&&n.test(c)?(e=e.slice(0,s-1)+"-"+e.slice(s-1),l=o,o=!1,i=!0):(i=r(c)===c&&a(c)!==c,l=o,o=a(c)===c&&r(c)!==c)}return e})(e,i,c)),e=e.replace(o,""),e=a.preserveConsecutiveUppercase?((e,t)=>(r.lastIndex=0,e.replace(r,(e=>t(e)))))(e,i):i(e),a.pascalCase&&(e=c(e.charAt(0))+e.slice(1)),((e,t)=>(l.lastIndex=0,s.lastIndex=0,e.replace(l,((e,n)=>t(n))).replace(s,(e=>t(e)))))(e,c)};e.exports=c,e.exports.default=c},8032:function(e,t,n){n.d(t,{L:function(){return g},M:function(){return x},P:function(){return E},S:function(){return P},_:function(){return l},a:function(){return o},b:function(){return u},g:function(){return d},h:function(){return s}});var r=n(7294),a=(n(3204),n(5697)),i=n.n(a);function o(){return o=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},o.apply(this,arguments)}function l(e,t){if(null==e)return{};var n,r,a={},i=Object.keys(e);for(r=0;r<i.length;r++)t.indexOf(n=i[r])>=0||(a[n]=e[n]);return a}const s=()=>"undefined"!=typeof HTMLImageElement&&"loading"in HTMLImageElement.prototype;function c(e,t,n){const r={};let a="gatsby-image-wrapper";return"fixed"===n?(r.width=e,r.height=t):"constrained"===n&&(a="gatsby-image-wrapper gatsby-image-wrapper-constrained"),{className:a,"data-gatsby-image-wrapper":"",style:r}}function u(e,t,n,r,a){return void 0===a&&(a={}),o({},n,{loading:r,shouldLoad:e,"data-main-image":"",style:o({},a,{opacity:t?1:0})})}function d(e,t,n,r,a,i,l,s){const c={};i&&(c.backgroundColor=i,"fixed"===n?(c.width=r,c.height=a,c.backgroundColor=i,c.position="relative"):("constrained"===n||"fullWidth"===n)&&(c.position="absolute",c.top=0,c.left=0,c.bottom=0,c.right=0)),l&&(c.objectFit=l),s&&(c.objectPosition=s);const u=o({},e,{"aria-hidden":!0,"data-placeholder-image":"",style:o({opacity:t?0:1,transition:"opacity 500ms linear"},c)});return u}const p=["children"],m=function(e){let{layout:t,width:n,height:a}=e;return"fullWidth"===t?r.createElement("div",{"aria-hidden":!0,style:{paddingTop:a/n*100+"%"}}):"constrained"===t?r.createElement("div",{style:{maxWidth:n,display:"block"}},r.createElement("img",{alt:"",role:"presentation","aria-hidden":"true",src:"data:image/svg+xml;charset=utf-8,%3Csvg%20height='"+a+"'%20width='"+n+"'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E",style:{maxWidth:"100%",display:"block",position:"static"}})):null},g=function(e){let{children:t}=e,n=l(e,p);return r.createElement(r.Fragment,null,r.createElement(m,o({},n)),t,null)},f=["src","srcSet","loading","alt","shouldLoad"],h=["fallback","sources","shouldLoad"],y=function(e){let{src:t,srcSet:n,loading:a,alt:i="",shouldLoad:s}=e,c=l(e,f);return r.createElement("img",o({},c,{decoding:"async",loading:a,src:s?t:void 0,"data-src":s?void 0:t,srcSet:s?n:void 0,"data-srcset":s?void 0:n,alt:i}))},b=function(e){let{fallback:t,sources:n=[],shouldLoad:a=!0}=e,i=l(e,h);const s=i.sizes||(null==t?void 0:t.sizes),c=r.createElement(y,o({},i,t,{sizes:s,shouldLoad:a}));return n.length?r.createElement("picture",null,n.map((e=>{let{media:t,srcSet:n,type:i}=e;return r.createElement("source",{key:t+"-"+i+"-"+n,type:i,media:t,srcSet:a?n:void 0,"data-srcset":a?void 0:n,sizes:s})})),c):c};var w;y.propTypes={src:a.string.isRequired,alt:a.string.isRequired,sizes:a.string,srcSet:a.string,shouldLoad:a.bool},b.displayName="Picture",b.propTypes={alt:a.string.isRequired,shouldLoad:a.bool,fallback:a.exact({src:a.string.isRequired,srcSet:a.string,sizes:a.string}),sources:a.arrayOf(a.oneOfType([a.exact({media:a.string.isRequired,type:a.string,sizes:a.string,srcSet:a.string.isRequired}),a.exact({media:a.string,type:a.string.isRequired,sizes:a.string,srcSet:a.string.isRequired})]))};const v=["fallback"],E=function(e){let{fallback:t}=e,n=l(e,v);return t?r.createElement(b,o({},n,{fallback:{src:t},"aria-hidden":!0,alt:""})):r.createElement("div",o({},n))};E.displayName="Placeholder",E.propTypes={fallback:a.string,sources:null==(w=b.propTypes)?void 0:w.sources,alt:function(e,t,n){return e[t]?new Error("Invalid prop `"+t+"` supplied to `"+n+"`. Validation failed."):null}};const x=function(e){return r.createElement(r.Fragment,null,r.createElement(b,o({},e)),r.createElement("noscript",null,r.createElement(b,o({},e,{shouldLoad:!0}))))};x.displayName="MainImage",x.propTypes=b.propTypes;const C=["as","className","class","style","image","loading","imgClassName","imgStyle","backgroundColor","objectFit","objectPosition"],k=["style","className"],A=e=>e.replace(/\n/g,""),N=function(e,t,n){for(var r=arguments.length,a=new Array(r>3?r-3:0),o=3;o<r;o++)a[o-3]=arguments[o];return e.alt||""===e.alt?i().string.apply(i(),[e,t,n].concat(a)):new Error('The "alt" prop is required in '+n+'. If the image is purely presentational then pass an empty string: e.g. alt="". Learn more: https://a11y-style-guide.com/style-guide/section-media.html')},S={image:i().object.isRequired,alt:N},R=["as","image","style","backgroundColor","className","class","onStartLoad","onLoad","onError"],L=["style","className"],j=new Set;let I,O;const T=function(e){let{as:t="div",image:a,style:i,backgroundColor:u,className:d,class:p,onStartLoad:m,onLoad:g,onError:f}=e,h=l(e,R);const{width:y,height:b,layout:w}=a,v=c(y,b,w),{style:E,className:x}=v,C=l(v,L),k=(0,r.useRef)(),A=(0,r.useMemo)((()=>JSON.stringify(a.images)),[a.images]);p&&(d=p);const N=function(e,t,n){let r="";return"fullWidth"===e&&(r='<div aria-hidden="true" style="padding-top: '+n/t*100+'%;"></div>'),"constrained"===e&&(r='<div style="max-width: '+t+'px; display: block;"><img alt="" role="presentation" aria-hidden="true" src="data:image/svg+xml;charset=utf-8,%3Csvg%20height=\''+n+"'%20width='"+t+"'%20xmlns='http://www.w3.org/2000/svg'%20version='1.1'%3E%3C/svg%3E\" style=\"max-width: 100%; display: block; position: static;\"></div>"),r}(w,y,b);return(0,r.useEffect)((()=>{I||(I=Promise.all([n.e(774),n.e(731)]).then(n.bind(n,6731)).then((e=>{let{renderImageToString:t,swapPlaceholderImage:n}=e;return O=t,{renderImageToString:t,swapPlaceholderImage:n}})));const e=k.current.querySelector("[data-gatsby-image-ssr]");if(e&&s())return e.complete?(null==m||m({wasCached:!0}),null==g||g({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)):(null==m||m({wasCached:!0}),e.addEventListener("load",(function t(){e.removeEventListener("load",t),null==g||g({wasCached:!0}),setTimeout((()=>{e.removeAttribute("data-gatsby-image-ssr")}),0)}))),void j.add(A);if(O&&j.has(A))return;let t,r;return I.then((e=>{let{renderImageToString:n,swapPlaceholderImage:l}=e;k.current&&(k.current.innerHTML=n(o({isLoading:!0,isLoaded:j.has(A),image:a},h)),j.has(A)||(t=requestAnimationFrame((()=>{k.current&&(r=l(k.current,A,j,i,m,g,f))}))))})),()=>{t&&cancelAnimationFrame(t),r&&r()}}),[a]),(0,r.useLayoutEffect)((()=>{j.has(A)&&O&&(k.current.innerHTML=O(o({isLoading:j.has(A),isLoaded:j.has(A),image:a},h)),null==m||m({wasCached:!0}),null==g||g({wasCached:!0}))}),[a]),(0,r.createElement)(t,o({},C,{style:o({},E,i,{backgroundColor:u}),className:x+(d?" "+d:""),ref:k,dangerouslySetInnerHTML:{__html:N},suppressHydrationWarning:!0}))},M=(0,r.memo)((function(e){return e.image?(0,r.createElement)(T,e):null}));M.propTypes=S,M.displayName="GatsbyImage";const H=["src","__imageData","__error","width","height","aspectRatio","tracedSVGOptions","placeholder","formats","quality","transformOptions","jpgOptions","pngOptions","webpOptions","avifOptions","blurredOptions","breakpoints","outputPixelDensities"];function z(e){return function(t){let{src:n,__imageData:a,__error:i}=t,s=l(t,H);return i&&console.warn(i),a?r.createElement(e,o({image:a},s)):(console.warn("Image not loaded",n),null)}}const W=z((function(e){let{as:t="div",className:n,class:a,style:i,image:s,loading:p="lazy",imgClassName:m,imgStyle:f,backgroundColor:h,objectFit:y,objectPosition:b}=e,w=l(e,C);if(!s)return console.warn("[gatsby-plugin-image] Missing image prop"),null;a&&(n=a),f=o({objectFit:y,objectPosition:b,backgroundColor:h},f);const{width:v,height:N,layout:S,images:R,placeholder:L,backgroundColor:j}=s,I=c(v,N,S),{style:O,className:T}=I,M=l(I,k),H={fallback:void 0,sources:[]};return R.fallback&&(H.fallback=o({},R.fallback,{srcSet:R.fallback.srcSet?A(R.fallback.srcSet):void 0})),R.sources&&(H.sources=R.sources.map((e=>o({},e,{srcSet:A(e.srcSet)})))),r.createElement(t,o({},M,{style:o({},O,i,{backgroundColor:h}),className:T+(n?" "+n:"")}),r.createElement(g,{layout:S,width:v,height:N},r.createElement(E,o({},d(L,!1,S,v,N,j,y,b))),r.createElement(x,o({"data-gatsby-image-ssr":"",className:m},w,u("eager"===p,!1,H,p,f)))))})),F=function(e,t){for(var n=arguments.length,r=new Array(n>2?n-2:0),a=2;a<n;a++)r[a-2]=arguments[a];return"fullWidth"!==e.layout||"width"!==t&&"height"!==t||!e[t]?i().number.apply(i(),[e,t].concat(r)):new Error('"'+t+'" '+e[t]+" may not be passed when layout is fullWidth.")},q=new Set(["fixed","fullWidth","constrained"]),J={src:i().string.isRequired,alt:N,width:F,height:F,sizes:i().string,layout:e=>{if(void 0!==e.layout&&!q.has(e.layout))return new Error("Invalid value "+e.layout+'" provided for prop "layout". Defaulting to "constrained". Valid values are "fixed", "fullWidth" or "constrained".')}};W.displayName="StaticImage",W.propTypes=J;const P=z(M);P.displayName="StaticImage",P.propTypes=J},4690:function(e,t,n){n.d(t,{F:function(){return i}});var r=n(7294),a=n(1980);function i(){const{author:e,description:t,title:n}=(0,a.$)();return r.createElement(r.Fragment,null,r.createElement("meta",{name:"twitter:description",content:null!=t?t:""}),r.createElement("meta",{name:"twitter:title",content:null!=n?n:""}),r.createElement("meta",{name:"twitter:creator",content:null!=e?e:""}),r.createElement("meta",{name:"twitter:card",content:"summary"}),r.createElement("met