{"version":3,"file":"app-667e95f946c597b7115b.js","mappings":"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","sources":["webpack://karls-website/./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://karls-website/./node_modules/stylis/src/Utility.js","webpack://karls-website/./node_modules/stylis/src/Tokenizer.js","webpack://karls-website/./node_modules/stylis/src/Enum.js","webpack://karls-website/./node_modules/stylis/src/Serializer.js","webpack://karls-website/./node_modules/stylis/src/Parser.js","webpack://karls-website/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://karls-website/./node_modules/stylis/src/Middleware.js","webpack://karls-website/./node_modules/@emotion/react/dist/emotion-element-f0de968e.browser.esm.js","webpack://karls-website/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://karls-website/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://karls-website/./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://karls-website/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://karls-website/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://karls-website/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/core/dist/parseProps-780b287c.browser.esm.js","webpack://karls-website/./node_modules/@emotion/react/jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/core/jsx-runtime/dist/theme-ui-core-jsx-runtime.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/css/dist/theme-ui-css.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/css/utils/dist/theme-ui-css-utils.browser.esm.js","webpack://karls-website/./node_modules/deepmerge/dist/cjs.js","webpack://karls-website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://karls-website/./node_modules/gatsby-react-router-scroll/index.js","webpack://karls-website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://karls-website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://karls-website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://karls-website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://karls-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://karls-website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://karls-website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://karls-website/./.cache/api-runner-browser-plugins.js","webpack://karls-website/./.cache/api-runner-browser.js","webpack://karls-website/./.cache/create-content-digest-browser-shim.js","webpack://karls-website/./.cache/emitter.js","webpack://karls-website/./node_modules/mitt/dist/mitt.es.js","webpack://karls-website/./.cache/normalize-page-path.js","webpack://karls-website/./.cache/find-path.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://karls-website/./.cache/slice/server-slice-renderer.js","webpack://karls-website/./.cache/slice/server-slice.js","webpack://karls-website/./.cache/slice/inline-slice.js","webpack://karls-website/./.cache/slice.js","webpack://karls-website/./.cache/gatsby-browser-entry.js","webpack://karls-website/./.cache/prefetch.js","webpack://karls-website/./.cache/loader.js","webpack://karls-website/./.cache/head/components/fire-callback-in-effect.js","webpack://karls-website/./.cache/head/constants.js","webpack://karls-website/./.cache/head/utils.js","webpack://karls-website/./.cache/head/head-export-handler-for-browser.js","webpack://karls-website/./.cache/page-renderer.js","webpack://karls-website/./.cache/route-announcer-props.js","webpack://karls-website/./.cache/navigation.js","webpack://karls-website/./node_modules/shallow-compare/es/index.js","webpack://karls-website/./.cache/ensure-resources.js","webpack://karls-website/./.cache/production-app.js","webpack://karls-website/./.cache/public-page-renderer-prod.js","webpack://karls-website/./.cache/public-page-renderer.js","webpack://karls-website/./.cache/react-dom-utils.js","webpack://karls-website/./.cache/redirect-utils.js","webpack://karls-website/./.cache/register-service-worker.js","webpack://karls-website/./.cache/slice/context.js","webpack://karls-website/./.cache/static-query.js","webpack://karls-website/./.cache/context-utils.js","webpack://karls-website/./.cache/strip-prefix.js","webpack://karls-website/./node_modules/gatsby-plugin-mailgo/gatsby-browser.js","webpack://karls-website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://karls-website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://karls-website/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/core/dist/theme-ui-core.browser.esm.js","webpack://karls-website/./node_modules/@theme-ui/color-modes/dist/theme-ui-color-modes.esm.js","webpack://karls-website/./node_modules/@theme-ui/theme-provider/dist/theme-ui-theme-provider.esm.js","webpack://karls-website/./node_modules/@theme-ui/mdx/dist/theme-ui-mdx.esm.js","webpack://karls-website/./node_modules/gatsby-plugin-theme-ui/src/index.js","webpack://karls-website/./node_modules/gatsby-plugin-theme-ui/src/components.js","webpack://karls-website/./node_modules/gatsby-plugin-theme-ui/src/hooks/configOptions.js","webpack://karls-website/./node_modules/gatsby-plugin-theme-ui/src/provider.js","webpack://karls-website/./node_modules/gatsby-plugin-theme-ui/gatsby-browser.js","webpack://karls-website/./node_modules/gatsby-remark-images/constants.js","webpack://karls-website/./node_modules/gatsby-remark-images/gatsby-browser.js","webpack://karls-website/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://karls-website/./node_modules/invariant/browser.js","webpack://karls-website/./node_modules/mailgo/lib/mailgo.js","webpack://karls-website/./node_modules/react-is/cjs/react-is.production.min.js","webpack://karls-website/./node_modules/react-is/index.js","webpack://karls-website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://karls-website/./node_modules/react-server-dom-webpack/index.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/extends.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://karls-website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://karls-website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://karls-website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://karls-website/./node_modules/@mdx-js/react/lib/index.js","webpack://karls-website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://karls-website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["var isDevelopment = false;\n\n/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n return document.styleSheets[i];\n }\n } // this function should always return with a value\n // TS can't understand it though so we make it stop complaining here\n\n\n return undefined;\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? !isDevelopment : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n this.tags.forEach(function (tag) {\n var _tag$parentNode;\n\n return (_tag$parentNode = tag.parentNode) == null ? void 0 : _tag$parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value;\n var parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' ');\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","import * as React from 'react';\nimport { useContext, forwardRef } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar isDevelopment = false;\n\nvar EmotionCacheContext = /* #__PURE__ */React.createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */React.createContext({});\n\nvar useTheme = function useTheme() {\n return React.useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n return mergedTheme;\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = React.useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/React.createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n var WithTheme = /*#__PURE__*/React.forwardRef(function render(props, ref) {\n var theme = React.useContext(ThemeContext);\n return /*#__PURE__*/React.createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n });\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar hasOwn = {}.hasOwnProperty;\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n\n var newProps = {};\n\n for (var _key in props) {\n if (hasOwn.call(props, _key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps[typePropName] = type; // Runtime labeling is an opt-in feature because:\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, React.useContext(ThemeContext));\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var _key2 in props) {\n if (hasOwn.call(props, _key2) && _key2 !== 'css' && _key2 !== typePropName && (!isDevelopment )) {\n newProps[_key2] = props[_key2];\n }\n }\n\n newProps.className = className;\n\n if (ref) {\n newProps.ref = ref;\n }\n\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/React.createElement(WrappedComponent, newProps));\n});\n\nvar Emotion$1 = Emotion;\n\nexport { CacheProvider as C, Emotion$1 as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwn as h, isDevelopment as i, useTheme as u, withEmotionCache as w };\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n scale: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar isDevelopment = false;\n\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n var componentSelector = interpolation;\n\n if (componentSelector.__emotion_styles !== undefined) {\n\n return componentSelector;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n var keyframes = interpolation;\n\n if (keyframes.anim === 1) {\n cursor = {\n name: keyframes.name,\n styles: keyframes.styles,\n next: cursor\n };\n return keyframes.name;\n }\n\n var serializedStyles = interpolation;\n\n if (serializedStyles.styles !== undefined) {\n var next = serializedStyles.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = serializedStyles.styles + \";\";\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n }\n\n break;\n }\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n var asString = interpolation;\n\n if (registered == null) {\n return asString;\n }\n\n var cached = registered[asString];\n return cached !== undefined ? cached : asString;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var key in obj) {\n var value = obj[key];\n\n if (typeof value !== 'object') {\n var asString = value;\n\n if (registered != null && registered[asString] !== undefined) {\n string += key + \"{\" + registered[asString] + \"}\";\n } else if (isProcessableValue(asString)) {\n string += processStyleName(key) + \":\" + processStyleValue(key, asString) + \";\";\n }\n } else {\n if (key === 'NO_COMPONENT_SELECTOR' && isDevelopment) {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(key) + \":\" + processStyleValue(key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n\n string += key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;{]+)\\s*(;|$)/g; // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\nvar cursor;\nfunction serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n var asTemplateStringsArr = strings;\n\n styles += asTemplateStringsArr[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n var templateStringsArr = strings;\n\n styles += templateStringsArr[i];\n }\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n}\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = true;\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else if (className) {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import { css } from '@theme-ui/css';\n\nconst getCSS = props => theme => {\n const styles = css(props.sx)(theme);\n const raw = typeof props.css === 'function' ? props.css(theme) : props.css;\n return [styles, raw];\n};\nfunction parseProps(props) {\n if (!props || !props.sx && !props.css) return props;\n const next = {};\n for (let key in props) {\n if (key === 'sx') continue;\n next[key] = props[key];\n }\n next.css = getCSS(props);\n return next;\n}\n\nexport { parseProps as p };\n","import * as ReactJSXRuntime from 'react/jsx-runtime';\nimport { h as hasOwn, E as Emotion, c as createEmotionProps } from '../../dist/emotion-element-f0de968e.browser.esm.js';\nimport 'react';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar Fragment = ReactJSXRuntime.Fragment;\nvar jsx = function jsx(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsx(type, props, key);\n }\n\n return ReactJSXRuntime.jsx(Emotion, createEmotionProps(type, props), key);\n};\nvar jsxs = function jsxs(type, props, key) {\n if (!hasOwn.call(props, 'css')) {\n return ReactJSXRuntime.jsxs(type, props, key);\n }\n\n return ReactJSXRuntime.jsxs(Emotion, createEmotionProps(type, props), key);\n};\n\nexport { Fragment, jsx, jsxs };\n","import { jsx as jsx$1, jsxs as jsxs$1 } from '@emotion/react/jsx-runtime';\nimport { p as parseProps } from '../../dist/parseProps-780b287c.browser.esm.js';\nexport { Fragment } from 'react';\nimport '@theme-ui/css';\n\nconst jsx = (type, props, key) => jsx$1(type, parseProps(props), key);\nconst jsxs = (type, props, key) => jsxs$1(type, parseProps(props), key);\n\nexport { jsx, jsxs };\n","/**\n * Allows for nested scales with shorthand values\n * @example\n * {\n * colors: {\n * primary: { __default: '#00f', light: '#33f' }\n * }\n * }\n * css({ color: 'primary' }); // { color: '#00f' }\n * css({ color: 'primary.light' }) // { color: '#33f' }\n */\nconst THEME_UI_DEFAULT_KEY = '__default';\nconst hasDefault = x => {\n return typeof x === 'object' && x !== null && THEME_UI_DEFAULT_KEY in x;\n};\n\n/**\n * Extracts value under path from a deeply nested object.\n * Used for Themes, variants and Theme UI style objects.\n * Given a path to object with `__default` key, returns the value under that key.\n *\n * @param obj a theme, variant or style object\n * @param path path separated with dots (`.`)\n * @param fallback default value returned if get(obj, path) is not found\n */\nfunction get(obj, path, fallback, p, undef) {\n const pathArray = path && typeof path === 'string' ? path.split('.') : [path];\n for (p = 0; p < pathArray.length; p++) {\n obj = obj ? obj[pathArray[p]] : undef;\n }\n if (obj === undef) return fallback;\n return hasDefault(obj) ? obj[THEME_UI_DEFAULT_KEY] : obj;\n}\nconst getObjectWithVariants = (obj, theme) => {\n if (obj && obj['variant']) {\n let result = {};\n for (const key in obj) {\n const x = obj[key];\n if (key === 'variant') {\n const val = typeof x === 'function' ? x(theme) : x;\n const variant = getObjectWithVariants(get(theme, val), theme);\n result = {\n ...result,\n ...variant\n };\n } else {\n result[key] = x;\n }\n }\n return result;\n }\n return obj;\n};\nconst defaultBreakpoints = [40, 52, 64].map(n => n + 'em');\nconst defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nconst aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nconst multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n scrollMarginX: ['scrollMarginLeft', 'scrollMarginRight'],\n scrollMarginY: ['scrollMarginTop', 'scrollMarginBottom'],\n scrollPaddingX: ['scrollPaddingLeft', 'scrollPaddingRight'],\n scrollPaddingY: ['scrollPaddingTop', 'scrollPaddingBottom'],\n size: ['width', 'height']\n};\nconst scales = {\n color: 'colors',\n background: 'colors',\n accentColor: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n caretColor: 'colors',\n columnRuleColor: 'colors',\n outlineColor: 'colors',\n textDecorationColor: 'colors',\n opacity: 'opacities',\n transition: 'transitions',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n marginBlock: 'space',\n marginBlockEnd: 'space',\n marginBlockStart: 'space',\n marginInline: 'space',\n marginInlineEnd: 'space',\n marginInlineStart: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n paddingBlock: 'space',\n paddingBlockEnd: 'space',\n paddingBlockStart: 'space',\n paddingInline: 'space',\n paddingInlineEnd: 'space',\n paddingInlineStart: 'space',\n scrollMargin: 'space',\n scrollMarginTop: 'space',\n scrollMarginRight: 'space',\n scrollMarginBottom: 'space',\n scrollMarginLeft: 'space',\n scrollMarginX: 'space',\n scrollMarginY: 'space',\n scrollPadding: 'space',\n scrollPaddingTop: 'space',\n scrollPaddingRight: 'space',\n scrollPaddingBottom: 'space',\n scrollPaddingLeft: 'space',\n scrollPaddingX: 'space',\n scrollPaddingY: 'space',\n inset: 'space',\n insetBlock: 'space',\n insetBlockEnd: 'space',\n insetBlockStart: 'space',\n insetInline: 'space',\n insetInlineEnd: 'space',\n insetInlineStart: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n borderBlock: 'borders',\n borderBlockColor: 'colors',\n borderBlockEnd: 'borders',\n borderBlockEndColor: 'colors',\n borderBlockEndStyle: 'borderStyles',\n borderBlockEndWidth: 'borderWidths',\n borderBlockStart: 'borders',\n borderBlockStartColor: 'colors',\n borderBlockStartStyle: 'borderStyles',\n borderBlockStartWidth: 'borderWidths',\n borderBlockStyle: 'borderStyles',\n borderBlockWidth: 'borderWidths',\n borderEndEndRadius: 'radii',\n borderEndStartRadius: 'radii',\n borderInline: 'borders',\n borderInlineColor: 'colors',\n borderInlineEnd: 'borders',\n borderInlineEndColor: 'colors',\n borderInlineEndStyle: 'borderStyles',\n borderInlineEndWidth: 'borderWidths',\n borderInlineStart: 'borders',\n borderInlineStartColor: 'colors',\n borderInlineStartStyle: 'borderStyles',\n borderInlineStartWidth: 'borderWidths',\n borderInlineStyle: 'borderStyles',\n borderInlineWidth: 'borderWidths',\n borderStartEndRadius: 'radii',\n borderStartStartRadius: 'radii',\n columnRuleWidth: 'borderWidths',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n blockSize: 'sizes',\n inlineSize: 'sizes',\n maxBlockSize: 'sizes',\n maxInlineSize: 'sizes',\n minBlockSize: 'sizes',\n minInlineSize: 'sizes',\n columnWidth: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\nconst positiveOrNegative = (scale, value) => {\n if (typeof value !== 'number' || value >= 0) {\n if (typeof value === 'string' && value.startsWith('-')) {\n const valueWithoutMinus = value.substring(1);\n const n = get(scale, valueWithoutMinus, valueWithoutMinus);\n if (typeof n === 'number') {\n return n * -1;\n }\n return `-${n}`;\n }\n return get(scale, value, value);\n }\n const absolute = Math.abs(value);\n const n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return Number(n) * -1;\n};\nconst transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginBlock', 'marginBlockEnd', 'marginBlockStart', 'marginInline', 'marginInlineEnd', 'marginInlineStart', 'top', 'bottom', 'left', 'right'].reduce((acc, curr) => ({\n ...acc,\n [curr]: positiveOrNegative\n}), {});\nconst responsive = styles => theme => {\n const next = {};\n const breakpoints = theme && theme.breakpoints || defaultBreakpoints;\n const mediaQueries = [null, ...breakpoints.map(n => n.includes('@media') ? n : `@media screen and (min-width: ${n})`)];\n for (const k in styles) {\n const key = k;\n let value = styles[key];\n if (typeof value === 'function') {\n value = value(theme || {});\n }\n if (value === false || value == null) {\n continue;\n }\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n for (let i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n const media = mediaQueries[i];\n if (!media) {\n next[key] = value[i];\n continue;\n }\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n return next;\n};\nconst css = (args = {}) => (props = {}) => {\n const theme = {\n ...defaultTheme,\n ...('theme' in props ? props.theme : props)\n };\n // insert variant props before responsive styles, so they can be merged\n // we need to maintain order of the style props, so if a variant is place in the middle\n // of other props, it will extends its props at that same location order.\n\n const obj = getObjectWithVariants(typeof args === 'function' ? args(theme) : args, theme);\n const styles = responsive(obj)(theme);\n let result = {};\n for (const key in styles) {\n const x = styles[key];\n const val = typeof x === 'function' ? x(theme) : x;\n if (val && typeof val === 'object') {\n if (hasDefault(val)) {\n result[key] = val[THEME_UI_DEFAULT_KEY];\n continue;\n }\n\n // On type level, val can also be an array here,\n // but we transform all arrays in `responsive` function.\n result[key] = css(val)(theme);\n continue;\n }\n const prop = key in aliases ? aliases[key] : key;\n const scaleName = prop in scales ? scales[prop] : undefined;\n const scale = scaleName ? theme?.[scaleName] : get(theme, prop, {});\n const transform = get(transforms, prop, get);\n const value = transform(scale, val, val);\n if (prop in multiples) {\n const dirs = multiples[prop];\n for (let i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n return result;\n};\n\nexport { THEME_UI_DEFAULT_KEY, css, defaultBreakpoints, get, getObjectWithVariants, multiples, scales };\n","/**\n * Constrained identity function used to constrain user's theme type to Theme\n * while preserving its exact type.\n */\nconst makeTheme = theme => theme;\n\n/**\n * Constrained identity function used to create a styles dictionary\n * assignable to ThemeStyles while preserving its exact type.\n */\nconst makeStyles = styles => styles;\nconst makeColorsScale = colors => colors;\n\nexport { makeColorsScale, makeStyles, makeTheme };\n","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\n };\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, [location.key]);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-articles-2023-05-06-here-we-go-mdx\": () => import(\"./../../../src/articles/2023-05-06-here-we-go.mdx\" /* webpackChunkName: \"component---src-articles-2023-05-06-here-we-go-mdx\" */),\n \"component---src-articles-2023-05-07-github-actions-getting-started-mdx\": () => import(\"./../../../src/articles/2023-05-07-github-actions-getting-started.mdx\" /* webpackChunkName: \"component---src-articles-2023-05-07-github-actions-getting-started-mdx\" */),\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-about-de-mdx\": () => import(\"./../../../src/pages/about.de.mdx\" /* webpackChunkName: \"component---src-pages-about-de-mdx\" */),\n \"component---src-pages-about-en-mdx\": () => import(\"./../../../src/pages/about.en.mdx\" /* webpackChunkName: \"component---src-pages-about-en-mdx\" */),\n \"component---src-pages-articles-tsx\": () => import(\"./../../../src/pages/articles.tsx\" /* webpackChunkName: \"component---src-pages-articles-tsx\" */),\n \"component---src-pages-freelancing-de-tsx\": () => import(\"./../../../src/pages/freelancing.de.tsx\" /* webpackChunkName: \"component---src-pages-freelancing-de-tsx\" */),\n \"component---src-pages-freelancing-en-tsx\": () => import(\"./../../../src/pages/freelancing.en.tsx\" /* webpackChunkName: \"component---src-pages-freelancing-en-tsx\" */),\n \"component---src-pages-imprint-mdx\": () => import(\"./../../../src/pages/imprint.mdx\" /* webpackChunkName: \"component---src-pages-imprint-mdx\" */),\n \"component---src-pages-index-de-mdx\": () => import(\"./../../../src/pages/index.de.mdx\" /* webpackChunkName: \"component---src-pages-index-de-mdx\" */),\n \"component---src-pages-index-en-mdx\": () => import(\"./../../../src/pages/index.en.mdx\" /* webpackChunkName: \"component---src-pages-index-en-mdx\" */),\n \"component---src-pages-projects-tsx\": () => import(\"./../../../src/pages/projects.tsx\" /* webpackChunkName: \"component---src-pages-projects-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-theme-ui/gatsby-browser.js'),\n options: {\"plugins\":[],\"preset\":{\"colors\":{\"text\":\"hsl(210, 50%, 96%)\",\"background\":\"hsl(230, 25%, 18%)\",\"primary\":\"#FB8500\",\"secondary\":\"#FFB703\",\"highlight\":\"#219EBC\",\"purple\":\"hsl(290, 100%, 80%)\",\"muted\":\"hsla(230, 20%, 0%, 20%)\",\"gray\":\"#8ECAE6\",\"darkBackground\":\"#1B1F2F\"},\"fonts\":{\"body\":\"system-ui, -apple-system, BlinkMacSystemFont, \\\"Segoe UI\\\", Roboto, \\\"Helvetica Neue\\\", sans-serif\",\"heading\":\"inherit\",\"monospace\":\"Menlo, monospace\"},\"fontSizes\":[12,14,16,20,24,32,48,64,72],\"fontWeights\":{\"body\":400,\"heading\":700,\"display\":900},\"lineHeights\":{\"body\":1.5,\"heading\":1.25},\"text\":{\"heading\":{\"fontFamily\":\"heading\",\"fontWeight\":\"heading\",\"lineHeight\":\"heading\"},\"display\":{\"variant\":\"text.heading\",\"fontSize\":[5,6],\"fontWeight\":\"display\",\"letterSpacing\":\"-0.03em\",\"mt\":3}},\"styles\":{\"Container\":{\"p\":3,\"maxWidth\":1024},\"root\":{\"fontFamily\":\"body\",\"lineHeight\":\"body\",\"fontWeight\":\"body\"},\"h1\":{\"variant\":\"text.display\"},\"h2\":{\"variant\":\"text.heading\",\"fontSize\":5},\"h3\":{\"variant\":\"text.heading\",\"fontSize\":4},\"h4\":{\"variant\":\"text.heading\",\"fontSize\":3},\"h5\":{\"variant\":\"text.heading\",\"fontSize\":2},\"h6\":{\"variant\":\"text.heading\",\"fontSize\":1},\"a\":{\"color\":\"primary\",\"&:hover\":{\"color\":\"secondary\"}},\"pre\":{\"variant\":\"prism\",\"fontFamily\":\"monospace\",\"fontSize\":1,\"p\":3,\"color\":\"text\",\"bg\":\"muted\",\"overflow\":\"auto\",\"code\":{\"color\":\"inherit\"}},\"code\":{\"fontFamily\":\"monospace\",\"color\":\"secondary\",\"fontSize\":1},\"inlineCode\":{\"fontFamily\":\"monospace\",\"color\":\"secondary\",\"bg\":\"muted\"},\"table\":{\"width\":\"100%\",\"my\":4,\"borderCollapse\":\"separate\",\"borderSpacing\":0,\"th,td\":{\"textAlign\":\"left\",\"py\":\"4px\",\"pr\":\"4px\",\"pl\":0,\"borderColor\":\"muted\",\"borderBottomStyle\":\"solid\"}},\"th\":{\"verticalAlign\":\"bottom\",\"borderBottomWidth\":\"2px\"},\"td\":{\"verticalAlign\":\"top\",\"borderBottomWidth\":\"1px\"},\"hr\":{\"border\":0,\"borderBottom\":\"1px solid\",\"borderColor\":\"muted\"},\"img\":{\"maxWidth\":\"100%\"}},\"prism\":{\".comment,.prolog,.doctype,.cdata,.punctuation,.operator,.entity,.url\":{\"color\":\"gray\"},\".comment\":{\"fontStyle\":\"italic\"},\".property,.tag,.boolean,.number,.constant,.symbol,.deleted,.function,.class-name,.regex,.important,.variable\":{\"color\":\"purple\"},\".atrule,.attr-value,.keyword\":{\"color\":\"primary\"},\".selector,.attr-name,.string,.char,.builtin,.inserted\":{\"color\":\"secondary\"}}}},\n },{\n plugin: require('../node_modules/gatsby-remark-images/gatsby-browser.js'),\n options: {\"plugins\":[],\"maxWidth\":1200,\"linkImagesToOriginal\":true,\"showCaptions\":false,\"markdownCaptions\":false,\"backgroundColor\":\"white\",\"quality\":50,\"withWebp\":false,\"withAvif\":false,\"loading\":\"lazy\",\"decoding\":\"async\",\"disableBgImageOnAlpha\":false,\"disableBgImage\":false},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"icon\":\"src/images/icon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"63709ee126315ba2a799492067f5faa5\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-mailgo/gatsby-browser.js'),\n options: {\"plugins\":[],\"mailgoConfig\":{\"dark\":true}},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, loadPageSync } =\n require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\n .split(`#`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","function _getPrototypeOf(t) {\n return _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, _getPrototypeOf(t);\n}\nexport { _getPrototypeOf as default };","function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (_isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n })();\n}\nexport { _isNativeReflectConstruct as default };","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, _wrapNativeSuper(t);\n}\nexport { _wrapNativeSuper as default };","function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nexport { _isNativeFunction as default };","import isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nexport { _construct as default };","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\n","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\n","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import { createFromReadableStream } from \"react-server-dom-webpack\"\nimport prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n getServerDataError: pageData.getServerDataError,\n slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\n })\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = new Map()\n this.isPrefetchQueueRunning = false\n this.prefetchQueued = []\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\n )\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPartialHydrationJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n if (page.error) {\n return Promise.resolve({\n error: page.error,\n status: page.status,\n })\n }\n\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return (\n Promise.all([componentChunkPromises, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n })\n\n inFlightPromise\n .then(() => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n\n if (global.hasPartialHydration) {\n return Promise.all([\n prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n ),\n prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths, pageData) {\n const loadComponent = (chunkName, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name \"${chunkName}\"`\n )\n }\n\n return (\n asyncRequires[exportType][chunkName]()\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n\n loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n
\n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","/**\n * Implement Gatsby's Browser APIs in this file.\n *\n * See: https://www.gatsbyjs.org/docs/browser-apis/\n */\n\nimport mailgo from \"mailgo\";\n\nlet onInitialClientRender = (_, pluginOptions) => {\n // mailgo config\n let { mailgoConfig } = pluginOptions;\n\n // execute mailgo\n mailgo(mailgoConfig);\n};\n\nexport { onInitialClientRender };\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-f0de968e.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-f0de968e.browser.esm.js';\nimport * as React from 'react';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\nimport { serializeStyles } from '@emotion/serialize';\nimport '@emotion/cache';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport 'hoist-non-react-statics';\n\nvar jsx = function jsx(type, props) {\n // eslint-disable-next-line prefer-rest-params\n var args = arguments;\n\n if (props == null || !hasOwn.call(props, 'css')) {\n return React.createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n};\n\n(function (_jsx) {\n var JSX;\n\n (function (_JSX) {})(JSX || (JSX = _jsx.JSX || (_jsx.JSX = {})));\n})(jsx || (jsx = {}));\n\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, React.useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = React.useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false;\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nfunction keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name;\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n}\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && isDevelopment) {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && isDevelopment) {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: React.useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","import { jsx as jsx$1, ThemeContext } from '@emotion/react';\nimport * as React from 'react';\nimport deepmerge from 'deepmerge';\nimport packageInfo from '@emotion/react/package.json';\nimport { p as parseProps } from './parseProps-780b287c.browser.esm.js';\nimport '@theme-ui/css';\n\nconst __EMOTION_VERSION__ = packageInfo.version;\nconst jsx = (type, props, ...children) => jsx$1(type, parseProps(props), ...children);\n\n/**\n * @internal for Babel JSX pragma\n * @see https://github.com/system-ui/theme-ui/issues/1603\n */\nconst createElement = jsx;\n/**\n * @internal\n */\nconst __themeUiDefaultContextValue = {\n __EMOTION_VERSION__,\n theme: {}\n};\n\n/**\n * @internal\n */\nconst __ThemeUIContext = /*#__PURE__*/React.createContext(__themeUiDefaultContextValue);\nconst useThemeUI = () => React.useContext(__ThemeUIContext);\nconst canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nconst REACT_ELEMENT = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\nconst FORWARD_REF = canUseSymbol ? Symbol.for('react.forward_ref') : 0xeac7;\nconst deepmergeOptions = {\n isMergeableObject: n => {\n return !!n && typeof n === 'object' && n.$$typeof !== REACT_ELEMENT && n.$$typeof !== FORWARD_REF;\n },\n arrayMerge: (_leftArray, rightArray) => rightArray\n};\n\n/**\n * Deeply merge themes\n */\nconst merge = (a, b) => deepmerge(a, b, deepmergeOptions);\nfunction mergeAll(...args) {\n return deepmerge.all(args, deepmergeOptions);\n}\nmerge.all = mergeAll;\n/**\n * @internal\n */\nconst __ThemeUIInternalBaseThemeProvider = ({\n context,\n children\n}) => jsx(ThemeContext.Provider, {\n value: context.theme\n}, jsx(__ThemeUIContext.Provider, {\n value: context,\n children\n}));\nfunction ThemeProvider({\n theme,\n children\n}) {\n const outer = useThemeUI();\n if (process.env.NODE_ENV !== 'production') {\n if (outer.__EMOTION_VERSION__ !== __EMOTION_VERSION__) {\n console.warn('Multiple versions of Emotion detected,', 'and theming might not work as expected.', 'Please ensure there is only one copy of @emotion/react installed in your application.');\n }\n }\n const context = typeof theme === 'function' ? {\n ...outer,\n theme: theme(outer.theme)\n } : merge.all({}, outer, {\n theme\n });\n return jsx(__ThemeUIInternalBaseThemeProvider, {\n context,\n children\n });\n}\n\nexport { ThemeProvider, __ThemeUIContext, __ThemeUIInternalBaseThemeProvider, __themeUiDefaultContextValue, createElement, jsx, merge, useThemeUI };\n","import { useState, useEffect, useCallback, useMemo, useLayoutEffect } from 'react';\nimport { useThemeUI, jsx as jsx$1, __ThemeUIInternalBaseThemeProvider } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { Global } from '@emotion/react';\nimport { jsx, jsxs } from '@theme-ui/core/jsx-runtime';\n\nconst toVarName = key => `--theme-ui-${key.replace('-__default', '')}`;\nconst toVarValue = key => `var(${toVarName(key)})`;\nconst join = (...args) => args.filter(Boolean).join('-');\nconst reservedKeys = new Set(['useCustomProperties', 'initialColorModeName', 'printColorModeName', 'initialColorMode', 'useLocalStorage', 'config']);\n\n// convert theme values to custom properties\nconst toCustomProperties = (obj, parent) => {\n const next = Array.isArray(obj) ? [] : {};\n for (let key in obj) {\n const value = obj[key];\n const name = join(parent, key);\n if (value && typeof value === 'object') {\n next[key] = toCustomProperties(value, name);\n continue;\n }\n if (reservedKeys.has(key)) {\n next[key] = value;\n continue;\n }\n next[key] = toVarValue(name);\n }\n return next;\n};\n\n/**\n * @internal\n * Recursively transforms an object into CSS variables excluding \"modes\" key.\n */\nconst __objectToVars = (parent, obj) => {\n let vars = {};\n for (let key in obj) {\n if (key === 'modes') continue;\n const name = join(parent, key);\n const value = obj[key];\n if (value && typeof value === 'object') {\n vars = {\n ...vars,\n ...__objectToVars(name, value)\n };\n } else {\n vars[toVarName(name)] = value;\n }\n }\n return vars;\n};\n\n/**\n * @internal\n * Creates root styles for color modes.\n * - Transforms color scale into CSS variables.\n * - Sets background and text color.\n */\nconst __createColorStyles = (theme = {}) => {\n const {\n useCustomProperties,\n initialColorModeName,\n printColorModeName,\n useRootStyles\n } = theme.config || theme || {};\n const colors = theme.rawColors || theme.colors;\n if (!colors) return {};\n const res = {};\n if (useRootStyles !== false) {\n if (useCustomProperties === false) {\n res.color = 'text';\n res.bg = 'background';\n } else {\n res.color = toVarValue('colors-text');\n res.bg = toVarValue('colors-background');\n }\n }\n if (useCustomProperties !== false) {\n const modes = colors.modes || {};\n const styles = __createColorProperties(colors, modes);\n if (printColorModeName) {\n let printMode = modes[printColorModeName];\n if (!printMode && printColorModeName === initialColorModeName) printMode = colors;\n if (printMode) {\n styles['@media print'] = __objectToVars('colors', printMode);\n } else {\n console.error(`Theme UI \\`printColorModeName\\` was not found in colors scale`, {\n colors,\n printColorModeName\n });\n }\n }\n Object.assign(res, styles);\n }\n return css(res)(theme);\n};\n\n/**\n * @internal\n * Returns an object with colors turned into Custom CSS Properties and\n * .theme-ui- classes used for no-flash serverside rendering.\n */\nfunction __createColorProperties(colors, modes) {\n const styles = __objectToVars('colors', colors);\n Object.keys(modes).forEach(mode => {\n const className = `.theme-ui-${mode}`;\n const key = `&${className}, ${className} &`;\n styles[key] = __objectToVars('colors', modes[mode]);\n });\n return styles;\n}\n\nconst STORAGE_KEY = 'theme-ui-color-mode';\nconst DARK_QUERY = '(prefers-color-scheme: dark)';\nconst LIGHT_QUERY = '(prefers-color-scheme: light)';\nconst storage = {\n get: () => {\n try {\n return window.localStorage.getItem(STORAGE_KEY);\n } catch (err) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', err);\n }\n },\n set: value => {\n try {\n window.localStorage.setItem(STORAGE_KEY, value);\n } catch (err) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', err);\n }\n }\n};\nconst getPreferredColorScheme = () => {\n if (typeof window !== 'undefined' && window.matchMedia) {\n if (window.matchMedia(DARK_QUERY).matches) {\n return 'dark';\n }\n if (window.matchMedia(LIGHT_QUERY).matches) {\n return 'light';\n }\n }\n return null;\n};\nconst useClientsideEffect = typeof window === 'undefined' ? () => {} : useLayoutEffect;\nconst TopLevelColorModeProvider = ({\n outerCtx,\n children\n}) => {\n const outerTheme = outerCtx.theme || {};\n const {\n initialColorModeName,\n useColorSchemeMediaQuery,\n useLocalStorage\n } = outerTheme.config || outerTheme;\n let [colorMode, setColorMode] = useState(() => {\n const preferredMode = useColorSchemeMediaQuery !== false && getPreferredColorScheme();\n return preferredMode || initialColorModeName;\n });\n\n // on first render, we read the color mode from localStorage and\n // clear the class on document element body\n useClientsideEffect(() => {\n const stored = useLocalStorage !== false && storage.get();\n if (typeof document !== 'undefined') {\n document.documentElement.classList.remove('theme-ui-' + stored);\n }\n if (useColorSchemeMediaQuery !== 'system' && stored && stored !== colorMode) {\n colorMode = stored;\n setColorMode(stored);\n }\n }, []);\n\n // when mode changes, we save it to localStorage\n useEffect(() => {\n if (colorMode && useLocalStorage !== false) {\n storage.set(colorMode);\n }\n }, [colorMode, useLocalStorage]);\n const setPreferredColorScheme = useCallback(() => {\n const preferredColorScheme = getPreferredColorScheme();\n setColorMode(preferredColorScheme || initialColorModeName);\n }, [initialColorModeName]);\n useEffect(() => {\n if (useColorSchemeMediaQuery === 'system' && window.matchMedia) {\n // It doesn't matter if we add the listener only to the dark media query\n // Because in our callback function we'll check for both media queries (light and dark).\n const darkMQL = window.matchMedia(DARK_QUERY);\n if (typeof darkMQL.addEventListener === 'function') {\n darkMQL.addEventListener('change', setPreferredColorScheme);\n } else if (typeof darkMQL.addListener === 'function') {\n darkMQL.addListener(setPreferredColorScheme);\n }\n }\n return () => {\n if (useColorSchemeMediaQuery === 'system' && window.matchMedia) {\n const darkMQL = window.matchMedia(DARK_QUERY);\n if (typeof darkMQL.removeEventListener === 'function') {\n darkMQL.removeEventListener('change', setPreferredColorScheme);\n } else if (typeof darkMQL.removeListener === 'function') {\n darkMQL.removeListener(setPreferredColorScheme);\n }\n }\n };\n }, [useColorSchemeMediaQuery, setPreferredColorScheme]);\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme.colors?.modes && initialColorModeName && Object.keys(outerTheme.colors.modes).indexOf(initialColorModeName) > -1) {\n console.warn('[theme-ui] The `initialColorModeName` value should be a unique name' + ' and cannot reference a key in `theme.colors.modes`.');\n }\n const allColorKeys = [];\n const flattenKeys = obj => {\n Object.keys(obj).forEach(key => {\n allColorKeys.push(key);\n if (typeof obj[key] === 'object') {\n flattenKeys(obj[key]);\n }\n });\n return allColorKeys;\n };\n flattenKeys(outerTheme.colors ?? {}).forEach(color => {\n if (color !== color.trim()) {\n console.warn(`[theme-ui] Key \\`${color}\\` in theme.colors contains leading/trailing ` + 'whitespace, which can cause bugs in your project.');\n }\n });\n }\n const newTheme = useThemeWithAppliedColorMode({\n colorMode,\n outerTheme\n });\n const newCtx = {\n ...outerCtx,\n theme: newTheme,\n colorMode,\n setColorMode\n };\n return jsxs(__ThemeUIInternalBaseThemeProvider, {\n context: newCtx,\n children: [jsx(GlobalColorStyles, {\n theme: newTheme\n }), children]\n });\n};\nfunction useColorMode() {\n const {\n colorMode,\n setColorMode\n } = useThemeUI();\n if (typeof setColorMode !== 'function') {\n throw new Error(`[useColorMode] requires the ColorModeProvider component`);\n }\n\n // We're allowing the user to specify a narrower type for its color mode name.\n return [colorMode, setColorMode];\n}\nconst omitModes = colors => {\n const res = {\n ...colors\n };\n delete res.modes;\n return res;\n};\nfunction copyRawColors(colors, outerThemeRawColors) {\n for (const [key, value] of Object.entries(colors)) {\n if (typeof value === 'string' && !value.startsWith('var(')) {\n outerThemeRawColors[key] = value;\n } else if (typeof value === 'object') {\n const newValue = {\n ...outerThemeRawColors[key]\n };\n copyRawColors(value, newValue);\n outerThemeRawColors[key] = newValue;\n }\n }\n}\nfunction useThemeWithAppliedColorMode({\n outerTheme,\n colorMode\n}) {\n const theme = useMemo(() => {\n const res = {\n ...outerTheme\n };\n const modes = get(res, 'colors.modes', {});\n const currentColorMode = get(modes, colorMode, {});\n if (colorMode) {\n res.colors = {\n ...res.colors,\n ...currentColorMode\n };\n }\n const {\n useCustomProperties,\n initialColorModeName = '__default'\n } = outerTheme.config || outerTheme;\n let outerThemeRawColors = outerTheme.rawColors || outerTheme.colors || {};\n if (useCustomProperties !== false) {\n const alreadyHasRawColors = res.rawColors != null;\n const colors = res.colors || {};\n if (alreadyHasRawColors) {\n outerThemeRawColors = {\n ...outerThemeRawColors\n };\n copyRawColors(colors, outerThemeRawColors);\n if (outerThemeRawColors.modes) {\n outerThemeRawColors.modes[initialColorModeName] = omitModes(outerThemeRawColors);\n }\n res.rawColors = outerThemeRawColors;\n } else {\n if (!('modes' in outerThemeRawColors)) {\n res.rawColors = colors;\n } else {\n const modes = {\n [initialColorModeName]: omitModes(outerThemeRawColors),\n ...outerThemeRawColors.modes\n };\n res.rawColors = {\n ...colors,\n modes\n }; /* modes doesn't match index signature by design */\n }\n }\n res.colors = toCustomProperties(omitModes(outerThemeRawColors), 'colors');\n }\n return res;\n }, [colorMode, outerTheme]);\n return theme;\n}\nfunction GlobalColorStyles({\n theme\n}) {\n return jsx$1(Global, {\n styles: () => {\n return {\n html: __createColorStyles(theme)\n };\n }\n });\n}\nfunction NestedColorModeProvider({\n outerCtx,\n children\n}) {\n const newTheme = useThemeWithAppliedColorMode({\n outerTheme: outerCtx.theme,\n colorMode: outerCtx.colorMode\n });\n\n // Nested theme providers need to be rerendered after hydration for the correct\n // color mode to apply.\n const [needsRerender, setNeedsRerender] = useState(\n // Note: we could also check some \"ssr-enabled\" flag as an optimization for\n // SPAs, as deeply nested theme providers will also pay a performance penalty\n // for this SSR bug fix\n () => newTheme.config?.useLocalStorage !== false);\n useClientsideEffect(() => void setNeedsRerender(false), []);\n const themeColors = newTheme.rawColors || newTheme.colors;\n const useCustomProperties = newTheme.config?.useCustomProperties;\n const colorVars = useMemo(() => {\n if (useCustomProperties === false) {\n return {};\n }\n const colors = themeColors || {};\n return css(__createColorProperties(colors, colors.modes || {}))(newTheme);\n }, [newTheme, themeColors, useCustomProperties]);\n return jsx(__ThemeUIInternalBaseThemeProvider, {\n context: {\n ...outerCtx,\n theme: newTheme\n },\n children: jsx$1('div', {\n 'data-themeui-nested-provider': true,\n // the key here ensures that children will be rerendered after color\n // mode is read from localStorage\n key: Number(needsRerender),\n suppressHydrationWarning: true,\n css: colorVars,\n children\n })\n });\n}\nconst ColorModeProvider = ({\n children\n}) => {\n const outerCtx = useThemeUI();\n const isTopLevelColorModeProvider = typeof outerCtx.setColorMode !== 'function';\n return isTopLevelColorModeProvider ? jsx(TopLevelColorModeProvider, {\n outerCtx: outerCtx,\n children: children\n }) : jsx(NestedColorModeProvider, {\n outerCtx: outerCtx,\n children: children\n });\n};\nconst noflash = `(function() { try {\n var mode = localStorage.getItem('theme-ui-color-mode');\n if (!mode) return\n document.documentElement.classList.add('theme-ui-' + mode);\n} catch (e) {} })();`;\nconst InitializeColorMode = () => jsx$1('script', {\n key: 'theme-ui-no-flash',\n dangerouslySetInnerHTML: {\n __html: noflash\n }\n});\n\nexport { ColorModeProvider, InitializeColorMode, useColorMode };\n","import React from 'react';\nimport { useThemeUI, ThemeProvider as ThemeProvider$1, jsx as jsx$1, __themeUiDefaultContextValue } from '@theme-ui/core';\nimport { css } from '@theme-ui/css';\nimport { ColorModeProvider } from '@theme-ui/color-modes';\nimport { Global } from '@emotion/react';\nimport { jsx, jsxs } from '@theme-ui/core/jsx-runtime';\n\nconst RootStyles = () => jsx$1(Global, {\n styles: emotionTheme => {\n const theme = emotionTheme;\n const {\n useRootStyles\n } = theme.config || theme;\n if (useRootStyles === false || theme.styles && !theme.styles.root) {\n return null;\n }\n const boxSizing = theme.config?.useBorderBox === false ? undefined : 'border-box';\n return css({\n '*': {\n boxSizing\n },\n html: {\n variant: 'styles.root'\n },\n body: {\n margin: 0\n }\n })(theme);\n }\n});\nconst ThemeUIProvider = ({\n theme,\n children\n}) => {\n const outer = useThemeUI();\n const isTopLevel = outer === __themeUiDefaultContextValue;\n return jsx(ThemeProvider$1, {\n theme: theme,\n children: jsxs(ColorModeProvider, {\n children: [isTopLevel && jsx(RootStyles, {}), children]\n })\n });\n};\n\n/** @deprecated ThemeProvider is now called ThemeUIProvider to reduce confusion with Emotion */\nconst ThemeProvider = ({\n theme,\n children\n}) => {\n React.useEffect(() => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[theme-ui] The export ThemeProvider is deprecated and is now called ThemeUIProvider to reduce confusion with Emotion. Please update your import; ThemeProvider will be removed in a future version.');\n }\n }, []);\n const outer = useThemeUI();\n const isTopLevel = outer === __themeUiDefaultContextValue;\n return jsx(ThemeProvider$1, {\n theme: theme,\n children: jsxs(ColorModeProvider, {\n children: [isTopLevel && jsx(RootStyles, {}), children]\n })\n });\n};\n\nexport { ThemeProvider, ThemeUIProvider };\n","import { jsx } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { useMemo } from 'react';\n\n// mdx components\nconst tags = ['p', 'b', 'i', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'pre', 'code', 'ol', 'ul', 'li', 'blockquote', 'hr', 'em', 'table', 'tr', 'th', 'td', 'em', 'strong', 'del',\n// mdx\n'inlineCode', 'thematicBreak',\n// other\n'div',\n// theme-ui\n'root'];\nconst aliases = {\n inlineCode: 'code',\n thematicBreak: 'hr',\n root: 'div'\n};\nconst isAlias = x => x in aliases;\nconst alias = n => isAlias(n) ? aliases[n] : n;\n\n/**\n * Extracts styles from `theme.styles` object\n */\nconst themed = key => theme => css(get(theme, `styles.${key}`))(theme);\nconst createThemedComponent = (name, variant) => {\n const variantStyles = themed(variant);\n const component = props => {\n const extraStyles = {};\n if (name === 'th' || name === 'td') {\n const {\n align\n } = props;\n if (align !== 'char') extraStyles.textAlign = align;\n }\n return jsx(name, {\n ...props,\n css: [props.css, variantStyles, extraStyles].filter(Boolean)\n });\n };\n component.displayName = `Themed(${name})`;\n return component;\n};\nconst defaultMdxComponents = {};\nconst Themed = {};\ntags.forEach(tag => {\n const component = createThemedComponent(alias(tag), tag);\n defaultMdxComponents[tag] = component;\n Themed[tag] = component;\n});\n\nfunction wrapComponent(value, key) {\n const component = props => jsx(value, {\n ...props,\n css: themed(key)\n });\n component.displayName = \"MdxComponents('\" + key + \"')\";\n return component;\n}\n\n/** @internal */\nconst wrapComponentsWithThemeStyles = comps => {\n const next = {\n ...defaultMdxComponents\n };\n\n // We enrich user's components with the styles from theme.styles.\n // Example: `components.p` will get the styles from `theme.styles.p` as className.\n for (const key of Object.keys(comps)) {\n const value = comps[key];\n next[key] = typeof value === 'object' ? wrapComponentsWithThemeStyles(value) : wrapComponent(value, key);\n }\n return next;\n};\n\n/**\n * @example\n * import { MDXProvider, useMDXComponents } from '@mdx-js/react'\n *\n * function MyMdxProvider({ children }) {\n * const components = useThemedStylesWithMdx(useMDXComponents())\n *\n * return {children}\n * }\n */\nfunction useThemedStylesWithMdx(outerComponents) {\n return useMemo(() => wrapComponentsWithThemeStyles({\n ...defaultMdxComponents,\n ...outerComponents\n }), [outerComponents]);\n}\n\nexport { Themed, defaultMdxComponents, themed, useThemedStylesWithMdx };\n","import { makeTheme } from '@theme-ui/css/utils'\n\n// add colors, fonts, fontSizes, space, etc\nconst theme = makeTheme({})\n\nexport default theme\n","// add custom MDX components here\nconst components = {}\n\nexport default components\n","import { useStaticQuery, graphql } from 'gatsby'\n\nconst useThemeUiConfig = () => {\n const data = useStaticQuery(graphql`\n query {\n themeUiConfig(id: { eq: \"gatsby-plugin-theme-ui-config\" }) {\n preset\n prismPreset\n }\n }\n `)\n\n return data.themeUiConfig\n}\n\nexport default useThemeUiConfig\n","import { ThemeUIProvider, merge } from 'theme-ui'\nimport { useThemedStylesWithMdx } from '@theme-ui/mdx'\nimport React from 'react'\n\nimport localTheme from './index'\nimport components from './components'\nimport useThemeUiConfig from './hooks/configOptions'\n\nimport { MDXProvider, useMDXComponents } from '@mdx-js/react'\n\nconst Root = ({ children }) => {\n const themeUiConfig = useThemeUiConfig()\n const { preset, prismPreset } = themeUiConfig\n\n const theme = preset.default || preset\n\n const themeWithPrism = merge(theme, {\n styles: {\n pre: prismPreset,\n },\n })\n\n const fullTheme = merge(themeWithPrism, localTheme)\n\n return (\n \n \n {children}\n \n \n )\n}\n\nexport const WrapRootElement = ({ element }) => {\n return {element}\n}\n","import * as React from 'react'\nimport { WrapRootElement } from './src/provider'\n\nexport const wrapRootElement = ({ element }) =>\n React.createElement(WrapRootElement, { element })\n","\"use strict\";\n\nexports.DEFAULT_OPTIONS = {\n maxWidth: 650,\n wrapperStyle: \"\",\n backgroundColor: \"white\",\n linkImagesToOriginal: true,\n showCaptions: false,\n markdownCaptions: false,\n withWebp: false,\n withAvif: false,\n tracedSVG: false,\n loading: \"lazy\",\n decoding: \"async\",\n disableBgImageOnAlpha: false,\n disableBgImage: false\n};\nexports.EMPTY_ALT = \"GATSBY_EMPTY_ALT\";\nexports.imageClass = \"gatsby-resp-image-image\";\nexports.imageWrapperClass = \"gatsby-resp-image-wrapper\";\nexports.imageBackgroundClass = \"gatsby-resp-image-background-image\";","\"use strict\";\n\nvar _require = require(\"./constants\"),\n DEFAULT_OPTIONS = _require.DEFAULT_OPTIONS,\n imageClass = _require.imageClass,\n imageBackgroundClass = _require.imageBackgroundClass,\n imageWrapperClass = _require.imageWrapperClass;\nexports.onRouteUpdate = function (apiCallbackContext, pluginOptions) {\n var options = Object.assign({}, DEFAULT_OPTIONS, pluginOptions);\n var imageWrappers = document.querySelectorAll(\".\" + imageWrapperClass);\n\n // https://css-tricks.com/snippets/javascript/loop-queryselectorall-matches/\n // for cross-browser looping through NodeList without polyfills\n var _loop = function _loop() {\n var imageWrapper = imageWrappers[i];\n var backgroundElement = imageWrapper.querySelector(\".\" + imageBackgroundClass);\n var imageElement = imageWrapper.querySelector(\".\" + imageClass);\n var onImageLoad = function onImageLoad() {\n backgroundElement.style.transition = \"opacity 0.5s 0.5s\";\n imageElement.style.transition = \"opacity 0.5s\";\n onImageComplete();\n };\n var onImageComplete = function onImageComplete() {\n backgroundElement.style.opacity = 0;\n imageElement.style.opacity = 1;\n imageElement.style.color = \"inherit\";\n imageElement.style.boxShadow = \"inset 0px 0px 0px 400px \" + options.backgroundColor;\n imageElement.removeEventListener(\"load\", onImageLoad);\n imageElement.removeEventListener(\"error\", onImageComplete);\n };\n imageElement.style.opacity = 0;\n imageElement.addEventListener(\"load\", onImageLoad);\n imageElement.addEventListener(\"error\", onImageComplete);\n if (imageElement.complete) {\n onImageComplete();\n }\n };\n for (var i = 0; i < imageWrappers.length; i++) {\n _loop();\n }\n};","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"mailgo\"] = factory();\n\telse\n\t\troot[\"mailgo\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 91:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n// Imports\nvar ___CSS_LOADER_API_IMPORT___ = __webpack_require__(476);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(function(i){return i[1]});\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".m-modal{position:fixed;top:0;right:0;bottom:0;left:0;justify-content:center;align-items:center;flex-direction:column;overflow:hidden;font-size:16.5px;z-index:10000}.m-modal p,.m-modal span,.m-modal strong,.m-modal a{margin:0;padding:0;font-size:100%;line-height:1;font-family:-apple-system,BlinkMacSystemFont,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\",\\\"Segoe UI Symbol\\\";text-rendering:optimizeLegibility}.m-modal strong{font-weight:700}.m-modal .m-modal-back{position:absolute;z-index:10001;top:0;right:0;bottom:0;left:0;background-color:#20232a;opacity:.8}.m-modal .m-modal-content{position:relative;z-index:10002;box-sizing:content-box;text-align:center;overflow:hidden;min-width:200px;max-width:240px;background-color:#fff;opacity:.95;border-radius:20px;box-shadow:0 3px 20px rgba(32,35,42,.5);border:3px solid #333;color:#4a4a4a;display:flex;flex-direction:column;overflow:auto;padding:24px;transition:.5s box-shadow}.m-modal .m-modal-content:hover,.m-modal .m-modal-content:focus,.m-modal .m-modal-content:active{opacity:1}.m-modal .m-modal-content .m-title{margin-bottom:8px;overflow:hidden;white-space:pre-line;text-overflow:ellipsis;line-height:1.2em}.m-modal .m-modal-content .m-details{margin-bottom:10px}.m-modal .m-modal-content .m-details p{white-space:pre-line;font-size:12px;margin-top:3px;margin-bottom:3px}.m-modal .m-modal-content a{cursor:pointer;padding:10px;color:#4a4a4a;border-radius:20px;text-decoration:none}.m-modal .m-modal-content a.m-gmail{color:#c0372a}.m-modal .m-modal-content a.m-gmail:hover,.m-modal .m-modal-content a.m-gmail:focus,.m-modal .m-modal-content a.m-gmail:active{background-color:rgba(192,55,42,.08);color:#c0372a}.m-modal .m-modal-content a.m-outlook{color:#0967aa}.m-modal .m-modal-content a.m-outlook:hover,.m-modal .m-modal-content a.m-outlook:focus,.m-modal .m-modal-content a.m-outlook:active{background-color:rgba(9,103,170,.08);color:#0967aa}.m-modal .m-modal-content a.m-yahoo{color:#4a00a0}.m-modal .m-modal-content a.m-yahoo:hover,.m-modal .m-modal-content a.m-yahoo:focus,.m-modal .m-modal-content a.m-yahoo:active{background-color:rgba(74,0,160,.08);color:#4a00a0}.m-modal .m-modal-content a.m-tg{color:#086da0}.m-modal .m-modal-content a.m-tg:hover,.m-modal .m-modal-content a.m-tg:focus,.m-modal .m-modal-content a.m-tg:active{background-color:rgba(8,109,160,.08);color:#086da0}.m-modal .m-modal-content a.m-wa{color:#067466}.m-modal .m-modal-content a.m-wa:hover,.m-modal .m-modal-content a.m-wa:focus,.m-modal .m-modal-content a.m-wa:active{background-color:rgba(6,116,102,.08);color:#067466}.m-modal .m-modal-content a.m-skype{color:#076d92}.m-modal .m-modal-content a.m-skype:hover,.m-modal .m-modal-content a.m-skype:focus,.m-modal .m-modal-content a.m-skype:active{background-color:rgba(7,109,146,.08);color:#076d92}.m-modal .m-modal-content a.m-copy{padding:16px 10px;font-size:16px}.m-modal .m-modal-content a.m-default:hover,.m-modal .m-modal-content a.m-default:focus,.m-modal .m-modal-content a.m-default:active,.m-modal .m-modal-content a.m-copy:hover,.m-modal .m-modal-content a.m-copy:focus,.m-modal .m-modal-content a.m-copy:active{background-color:rgba(0,0,0,.08);color:#4a4a4a}.m-modal .m-modal-content a.m-custom-action{color:#0b790b}.m-modal .m-modal-content a.m-custom-action:hover,.m-modal .m-modal-content a.m-custom-action:focus,.m-modal .m-modal-content a.m-custom-action:active{background-color:rgba(11,121,11,.08);color:#0b790b}.m-modal .m-modal-content a.m-by{font-size:12px;margin-top:.8rem;padding:5px;color:#4a4a4a}.m-modal .m-modal-content a.m-by:hover,.m-modal .m-modal-content a.m-by:focus,.m-modal .m-modal-content a.m-by:active{color:#3d3d3d}.m-modal .m-modal-content .w-500{font-weight:500}.m-modal.m-dark .m-modal-content{background-color:#20232a}.m-modal.m-dark .m-modal-content,.m-modal.m-dark .m-modal-content p,.m-modal.m-dark .m-modal-content p span,.m-modal.m-dark .m-modal-content strong{color:#fff}.m-modal.m-dark .m-modal-content a{color:#eaeaea}.m-modal.m-dark .m-modal-content a:not(.m-by):hover,.m-modal.m-dark .m-modal-content a:not(.m-by):focus,.m-modal.m-dark .m-modal-content a:not(.m-by):active{background-color:rgba(134,134,134,.08);color:#eaeaea}.m-modal.m-dark .m-modal-content a.m-gmail{color:#e07d73}.m-modal.m-dark .m-modal-content a.m-gmail:hover,.m-modal.m-dark .m-modal-content a.m-gmail:focus,.m-modal.m-dark .m-modal-content a.m-gmail:active{background-color:rgba(224,125,115,.08);color:#e07d73}.m-modal.m-dark .m-modal-content a.m-outlook{color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-outlook:hover,.m-modal.m-dark .m-modal-content a.m-outlook:focus,.m-modal.m-dark .m-modal-content a.m-outlook:active{background-color:rgba(76,156,215,.08);color:#4c9cd7}.m-modal.m-dark .m-modal-content a.m-yahoo{color:#ac88d3}.m-modal.m-dark .m-modal-content a.m-yahoo:hover,.m-modal.m-dark .m-modal-content a.m-yahoo:focus,.m-modal.m-dark .m-modal-content a.m-yahoo:active{background-color:rgba(172,136,211,.08);color:#ac88d3}.m-modal.m-dark .m-modal-content a.m-tg{color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-tg:hover,.m-modal.m-dark .m-modal-content a.m-tg:focus,.m-modal.m-dark .m-modal-content a.m-tg:active{background-color:rgba(76,171,219,.08);color:#4cabdb}.m-modal.m-dark .m-modal-content a.m-wa{color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-wa:hover,.m-modal.m-dark .m-modal-content a.m-wa:focus,.m-modal.m-dark .m-modal-content a.m-wa:active{background-color:rgba(76,210,192,.08);color:#4cd2c0}.m-modal.m-dark .m-modal-content a.m-skype{color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-skype:hover,.m-modal.m-dark .m-modal-content a.m-skype:focus,.m-modal.m-dark .m-modal-content a.m-skype:active{background-color:rgba(76,199,244,.08);color:#4cc7f4}.m-modal.m-dark .m-modal-content a.m-custom-action{color:#b0ecb0}.m-modal.m-dark .m-modal-content a.m-custom-action:hover,.m-modal.m-dark .m-modal-content a.m-custom-action:focus,.m-modal.m-dark .m-modal-content a.m-custom-action:active{background-color:rgba(176,236,176,.08);color:#b0ecb0}.m-modal.m-dark .m-modal-content a.m-by:hover,.m-modal.m-dark .m-modal-content a.m-by:focus,.m-modal.m-dark .m-modal-content a.m-by:active{color:#fff}\", \"\"]);\n// Exports\nmodule.exports = ___CSS_LOADER_EXPORT___;\n\n\n/***/ }),\n\n/***/ 476:\n/***/ (function(module) {\n\n\"use strict\";\n\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (cssWithMappingToString) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join(\"\");\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === \"string\") {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, \"\"]];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\n/***/ }),\n\n/***/ 801:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\n\n var result = __webpack_require__(91);\n\n if (typeof result === \"string\") {\n module.exports = result;\n } else {\n module.exports = result.toString();\n }\n \n\n/***/ }),\n\n/***/ 507:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ mailgo_lib; },\n \"getMailgoTypeByElement\": function() { return /* reexport */ getMailgoTypeByElement; },\n \"mailgo\": function() { return /* reexport */ src_mailgo; },\n \"mailgoCheckRender\": function() { return /* binding */ mailgoCheckRender; },\n \"mailgoClickListener\": function() { return /* reexport */ mailgoClickListener; },\n \"mailgoDirectRender\": function() { return /* reexport */ mailgoDirectRender; },\n \"mailgoPreRender\": function() { return /* reexport */ mailgoPreRender; },\n \"mailgoRender\": function() { return /* reexport */ mailgoRender; },\n \"mailgoValidateEmail\": function() { return /* reexport */ mailgoValidateEmail; },\n \"start\": function() { return /* binding */ start; }\n});\n\n;// CONCATENATED MODULE: ../src/constants.ts\n// links\nvar MAILTO = \"mailto:\";\nvar MAILGO = \"mailgo:\";\nvar TEL = \"tel:\";\nvar CALLTO = \"callto:\";\nvar SMS = \"sms:\"; // deep linking\n\nvar outlookDeepLink = \"ms-outlook://\"; // no mailgo class\n\nvar NO_MAILGO = \"no-mailgo\"; // responsive settings\n\nvar DESKTOP = \"desktop\";\nvar MOBILE = \"mobile\"; // mailgo modal types\n\nvar MAILGO_MAIL = \"mailgo\";\nvar MAILGO_TEL = \"mailgo-tel\";\nvar MAILGO_SMS = \"mailgo-sms\"; // mailgo installation types\n\nvar CLASSIC = \"classic\";\nvar LESS_SPAM = \"less-spam\"; // useful html tags\n\nvar spanHTMLTag = \"span\";\nvar aHTMLTag = \"a\";\nvar pHTMLTag = \"p\"; // default lang\n\nvar defaultLang = \"en\"; // useful regexp\n\nvar notNumber = new RegExp(\"[^0-9/]\", \"gi\");\nvar leadingZeros = new RegExp(\"^0+\", \"gi\"); // custom action\n\nvar customActionTextMaxLength = 20;\n;// CONCATENATED MODULE: ../src/utils.ts\n// validate a single email with regex\nvar validateEmail = function validateEmail(email) {\n return /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(email);\n}; // validate an array of emails\n\nvar validateEmails = function validateEmails(arr) {\n return arr.every(validateEmail);\n}; // validate a single tel with regex\n\nvar validateTel = function validateTel(tel) {\n return /^[+]{0,1}[\\s0-9]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*[p]{0,1}[\\s0-9]*$/.test(tel);\n}; // copy of a string\n\nvar copyToClipboard = function copyToClipboard(str) {\n var el = document.createElement(\"textarea\");\n el.value = str;\n el.setAttribute(\"readonly\", \"\");\n el.style.position = \"absolute\";\n el.style.left = \"-9999px\";\n document.body.appendChild(el);\n var selected = document.getSelection().rangeCount > 0 ? document.getSelection().getRangeAt(0) : false;\n el.select();\n document.execCommand(\"copy\");\n document.body.removeChild(el);\n\n if (selected) {\n document.getSelection().removeAllRanges();\n document.getSelection().addRange(selected);\n return true;\n }\n\n return false;\n}; // set focus loop within modal\n\nvar setFocusLoop = function setFocusLoop(ref) {\n var modal = ref;\n modal.querySelector(\".m-modal-content a:last-of-type\").addEventListener(\"keydown\", leaveLastLink);\n modal.querySelector(\".m-modal-content a:first-of-type\").addEventListener(\"keydown\", leaveFirstLink);\n};\nvar leaveLastLink = function leaveLastLink(e) {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === false) {\n e.preventDefault();\n e.target.closest(\"div\").querySelector(\"a:first-of-type\").focus();\n }\n};\nvar leaveFirstLink = function leaveFirstLink(e) {\n // going back to the first link to force looping\n if (e.code === \"Tab\" && e.shiftKey === true) {\n e.preventDefault();\n e.target.closest(\"div\").querySelector(\"a:last-of-type\").focus();\n }\n};\nvar truncate = function truncate(text, maxLength) {\n return text && text.length > maxLength ? text.substr(0, maxLength - 1) + \"...\" : text;\n};\n;// CONCATENATED MODULE: ../i18n/languages.json\nvar languages_namespaceObject = JSON.parse('[\"en\",\"it\",\"es\",\"de\",\"fr\",\"pt\",\"nl\",\"ru\",\"sv\",\"no\",\"dk\",\"is\",\"zh\",\"ja\",\"cs\"]');\n;// CONCATENATED MODULE: ../i18n/translations.json\nvar translations_namespaceObject = JSON.parse('{\"en\":{\"open_in_\":\"open in \",\"cc_\":\"cc \",\"bcc_\":\"bcc \",\"subject_\":\"subject \",\"body_\":\"body \",\"gmail\":\"Gmail\",\"outlook\":\"Outlook\",\"yahoo\":\"Yahoo Mail\",\"telegram\":\"Telegram\",\"whatsapp\":\"WhatsApp\",\"skype\":\"Skype\",\"call\":\"call\",\"open\":\"open\",\"_default\":\" default\",\"_as_default\":\" as default\",\"copy\":\"copy\",\"copied\":\"copied\"},\"it\":{\"open_in_\":\"apri con \",\"bcc_\":\"ccn \",\"subject_\":\"oggetto \",\"body_\":\"testo \",\"call\":\"chiama\",\"open\":\"apri\",\"_default\":\" \",\"_as_default\":\" \",\"copy\":\"copia\",\"copied\":\"copiato\"},\"es\":{\"open_in_\":\"abrir con \",\"bcc_\":\"cco \",\"subject_\":\"asunto \",\"body_\":\"cuerpo \",\"call\":\"llamar\",\"open\":\"abrir\",\"_default\":\" predefinido\",\"_as_default\":\" por defecto\",\"copy\":\"copiar\",\"copied\":\"copiado\"},\"de\":{\"open_in_\":\"Öffnen in \",\"subject_\":\"Betreff \",\"body_\":\"Nachricht \",\"call\":\"Anrufen\",\"open\":\"Öffnen\",\"_default\":\" mit Standard\",\"_as_default\":\" mit Standard\",\"copy\":\"kopieren\",\"copied\":\"kopiert\"},\"pt\":{\"open_in_\":\"abrir com \",\"bcc_\":\"cco \",\"subject_\":\"assunto \",\"body_\":\"corpo \",\"call\":\"ligar\",\"open\":\"abrir\",\"_default\":\" padrão\",\"_as_default\":\" por padrão\",\"copy\":\"copiar\",\"copied\":\"copiado\"},\"fr\":{\"open_in_\":\"Ouvrir dans \",\"bcc_\":\"cci \",\"subject_\":\"sujet \",\"body_\":\"contenu \",\"call\":\"Appeler\",\"open\":\"Ouvrir\",\"_default\":\" par défaut\",\"_as_default\":\" par défaut\",\"copy\":\"Copier\",\"copied\":\"copié\"},\"nl\":{\"subject_\":\"onderwerp \",\"body_\":\"bericht \",\"call\":\"bellen\",\"open\":\"openen\",\"_default\":\" standaard\",\"_as_default\":\" als standaard\",\"copy\":\"kopiëren\"},\"ru\":{\"open_in_\":\"открыть в \",\"subject_\":\"тема \",\"body_\":\"тело \",\"call\":\"позвонить\",\"open\":\"открыть\",\"_default\":\" по умолчанию\",\"_as_default\":\" по умолчанию\",\"copy\":\"скопировать\"},\"sv\":{\"open_in_\":\"öppna i \",\"subject_\":\"ämne \",\"body_\":\"meddelandetext \",\"call\":\"ring\",\"open\":\"öppna\",\"_default\":\" förval\",\"_as_default\":\" som förval\",\"copy\":\"kopiera\",\"copied\":\"kopierad\"},\"no\":{\"open_in_\":\"åpne i \",\"subject_\":\"emne \",\"call\":\"ringe\",\"open\":\"åpne\",\"_as_default\":\" som standard\",\"copy\":\"kopiere\",\"copied\":\"kopiert\"},\"dk\":{\"open_in_\":\"åpne i \",\"subject_\":\"emne \",\"call\":\"ringe op\",\"open\":\"åben\",\"_as_default\":\" som standard\",\"copy\":\"kopi\",\"copied\":\"kopieret\"},\"is\":{\"open_in_\":\"opið inn \",\"subject_\":\"viðfangsefni \",\"body_\":\"líkami \",\"call\":\"hringja\",\"open\":\"opið\",\"_default\":\" sjálfgefið\",\"_as_default\":\" sem sjálfgefið\",\"copy\":\"afrita\",\"copied\":\"afritað\"},\"zh\":{\"open_in_\":\"開啟 \",\"cc_\":\"副本 \",\"bcc_\":\"密件副本 \",\"subject_\":\"主旨 \",\"body_\":\"內文 \",\"call\":\"通話\",\"open\":\"開啟\",\"_default\":\" 預設\",\"_as_default\":\" 預設\",\"copy\":\"複製\",\"copied\":\"已複製\"},\"ja\":{\"open_in_\":\"開く \",\"subject_\":\"主題 \",\"body_\":\"本文 \",\"call\":\"通話 \",\"open\":\"開く \",\"_default\":\" 標準のアプリ\",\"_as_default\":\" 標準のアプリ\",\"copy\":\"リンクをコピー\",\"copied\":\"コピーしました\"},\"cs\":{\"open_in_\":\"otevřít v \",\"cc_\":\"kopie \",\"subject_\":\"předmět \",\"body_\":\"zpráva \",\"call\":\"volat\",\"open\":\"otevřít\",\"_default\":\" výchozí\",\"_as_default\":\" s výchozím nastavením\",\"copy\":\"kopírovat\",\"copied\":\"zkopírováno\"}}');\n;// CONCATENATED MODULE: ../src/mobile-detect.ts\nvar userAgent = function userAgent() {\n if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return \"mobile\";\n }\n\n return \"desktop\";\n};\n;// CONCATENATED MODULE: ../src/mailgo.ts\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\n// polyfill\n// import { mailgoPolyfill } from \"./polyfill\";\n// constants\n // utils\n\n // i18n for mailgo\n\n\n // mobile detect\n\n // mailgo scss, with toString (https://github.com/webpack-contrib/css-loader#tostring)\n\nvar mailgoCSS = __webpack_require__(801).toString(); // default language\n\n\nvar lang = defaultLang; // default strings\n\nvar defaultStrings = translations_namespaceObject[defaultLang]; // translation strings\n\nvar strings; // global mailgo config object\n\nvar config; // config to check if the client is mobile or desktop\n\nvar isMobile = false; // default config attributes\n\nvar mailtoEnabled = true;\nvar telEnabled = true;\nvar smsEnabled = false;\nvar desktopEnabled = true;\nvar mobileEnabled = true;\nvar validateEmailConfig = true;\nvar validateTelConfig = true;\nvar showFooterConfig = true;\nvar loadCSSConfig = true; // activeMailgoType\n\nvar activeMailgoType; // modals global object\n\nvar modalMailto, modalTel; // mailgo general variables\n\nvar url, href, lessSpamHref; // mailgo mail variables\n\nvar mail, cc, bcc, subject, bodyMail; // mailgo mail custom action variables\n\nvar customActionText, customActionTitle, customActionUrl; // mailgo tel variables\n\nvar tel, msg, telegramUsername, skypeUsername; // the DOM elements\n\nvar title, titleTel, detailCc, detailBcc, detailSubject, detailBody, detailMsg, ccValue, bccValue, subjectValue, bodyValue, msgValue, activatedLink; // mailgo buttons (actions)\n\nvar gmail, outlook, yahoo, mailgo_open, telegram, wa, skype, call, copyMail, copyTel, customAction;\n/**\n * mailgoInit\n * the function that creates the mailgo elements in DOM\n */\n\nvar mailgoInit = function mailgoInit() {\n // set the boolean for mobile/desktop\n isMobile = userAgent() === MOBILE; // responsive settings\n\n {\n var _config, _config2;\n\n if (typeof ((_config = config) === null || _config === void 0 ? void 0 : _config.desktop) !== \"undefined\") {\n desktopEnabled = config.desktop; // if it is a desktop and desktop is not enabled no init mailgo\n\n if (!isMobile && !desktopEnabled) {\n return;\n }\n }\n\n if (typeof ((_config2 = config) === null || _config2 === void 0 ? void 0 : _config2.mobile) !== \"undefined\") {\n mobileEnabled = config.mobile; // if it is a mobile and mobile is not enabled no init mailgo\n\n if (isMobile && !mobileEnabled) {\n return;\n }\n }\n } // set the mailgo language\n\n mailgoSetLanguage(); // mailgo, if mailgo not already exists\n\n var mailgoExists = !!document.getElementById(MAILGO_MAIL); // if mailgo is enabled for mailto and it not exists in DOM\n\n if (mailtoEnabled && !mailgoExists) {\n var _config3, _config4;\n\n // modal\n modalMailto = createElement();\n modalMailto.style.display = \"none\";\n modalMailto.id = MAILGO_MAIL;\n modalMailto.classList.add(\"m-modal\");\n modalMailto.setAttribute(\"role\", \"dialog\");\n modalMailto.setAttribute(\"tabindex\", \"-1\");\n modalMailto.setAttribute(\"aria-labelledby\", \"m-title\"); // if dark is in config\n\n if ((_config3 = config) !== null && _config3 !== void 0 && _config3.dark) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // background\n\n\n var modalBackground = createElement();\n modalBackground.className = \"m-modal-back\";\n modalMailto.appendChild(modalBackground); // modal content\n\n var modalContent = createElement();\n modalContent.className = \"m-modal-content\";\n modalMailto.appendChild(modalContent); // title (email address)\n\n title = createElement(\"strong\");\n title.id = \"m-title\";\n title.className = \"m-title\";\n modalContent.appendChild(title); // details\n\n var details = createElement();\n details.id = \"m-details\";\n details.className = \"m-details\";\n detailCc = createElement(pHTMLTag);\n detailCc.id = \"m-cc\";\n var ccSpan = createElement(spanHTMLTag);\n ccSpan.className = \"w-500\";\n ccSpan.appendChild(createTextNode(strings.cc_ || defaultStrings.cc_));\n ccValue = createElement(spanHTMLTag);\n ccValue.id = \"m-cc-value\";\n detailCc.appendChild(ccSpan);\n detailCc.appendChild(ccValue);\n details.appendChild(detailCc);\n detailBcc = createElement(pHTMLTag);\n detailBcc.id = \"m-bcc\";\n var bccSpan = createElement(spanHTMLTag);\n bccSpan.className = \"w-500\";\n bccSpan.appendChild(createTextNode(strings.bcc_ || defaultStrings.bcc_));\n bccValue = createElement(spanHTMLTag);\n bccValue.id = \"m-bcc-value\";\n detailBcc.appendChild(bccSpan);\n detailBcc.appendChild(bccValue);\n details.appendChild(detailBcc);\n detailSubject = createElement(pHTMLTag);\n detailSubject.id = \"m-subject\";\n var subjectSpan = createElement(spanHTMLTag);\n subjectSpan.className = \"w-500\";\n subjectSpan.appendChild(createTextNode(strings.subject_ || defaultStrings.subject_));\n subjectValue = createElement(spanHTMLTag);\n subjectValue.id = \"m-subject-value\";\n detailSubject.appendChild(subjectSpan);\n detailSubject.appendChild(subjectValue);\n details.appendChild(detailSubject);\n detailBody = createElement(pHTMLTag);\n detailBody.id = \"m-body\";\n var bodySpan = createElement(spanHTMLTag);\n bodySpan.className = \"w-500\";\n bodySpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n bodyValue = createElement(spanHTMLTag);\n bodyValue.id = \"m-body-value\";\n detailBody.appendChild(bodySpan);\n detailBody.appendChild(bodyValue);\n details.appendChild(detailBody);\n modalContent.appendChild(details); // Gmail\n\n gmail = createElement(aHTMLTag);\n gmail.id = \"m-gmail\";\n gmail.href = \"#mailgo-gmail\";\n gmail.classList.add(\"m-open\");\n gmail.classList.add(\"m-gmail\");\n gmail.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var gmailSpan = createElement(spanHTMLTag);\n gmailSpan.className = \"w-500\";\n gmailSpan.appendChild(createTextNode(strings.gmail || defaultStrings.gmail));\n gmail.appendChild(gmailSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"gmail\")) {\n modalContent.appendChild(gmail);\n } // Outlook\n\n\n outlook = createElement(aHTMLTag);\n outlook.id = \"m-outlook\";\n outlook.href = \"#mailgo-outlook\";\n outlook.classList.add(\"m-open\");\n outlook.classList.add(\"m-outlook\");\n outlook.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var outlookSpan = createElement(spanHTMLTag);\n outlookSpan.className = \"w-500\";\n outlookSpan.appendChild(createTextNode(strings.outlook || defaultStrings.outlook));\n outlook.appendChild(outlookSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"outlook\")) {\n modalContent.appendChild(outlook);\n } // Outlook\n\n\n yahoo = createElement(aHTMLTag);\n yahoo.id = \"m-yahoo\";\n yahoo.href = \"#mailgo-yahoo\";\n yahoo.classList.add(\"m-open\");\n yahoo.classList.add(\"m-yahoo\");\n yahoo.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var yahooSpan = createElement(spanHTMLTag);\n yahooSpan.className = \"w-500\";\n yahooSpan.appendChild(createTextNode(strings.yahoo || defaultStrings.yahoo));\n yahoo.appendChild(yahooSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"yahoo\")) {\n modalContent.appendChild(yahoo);\n } // open default\n\n\n mailgo_open = createElement(aHTMLTag);\n mailgo_open.id = \"m-open\";\n mailgo_open.href = \"#mailgo-open\";\n mailgo_open.classList.add(\"m-open\");\n mailgo_open.classList.add(\"m-default\");\n var openSpan = createElement(spanHTMLTag);\n openSpan.className = \"w-500\";\n openSpan.appendChild(createTextNode(strings.open || defaultStrings.open));\n mailgo_open.appendChild(openSpan);\n mailgo_open.appendChild(createTextNode(strings._default || defaultStrings._default));\n modalContent.appendChild(mailgo_open); // copy\n\n copyMail = createElement(aHTMLTag);\n copyMail.id = \"m-copy\";\n copyMail.href = \"#mailgo-copy\";\n copyMail.classList.add(\"m-copy\");\n copyMail.classList.add(\"w-500\");\n copyMail.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n modalContent.appendChild(copyMail); // custom action\n\n customAction = createElement(aHTMLTag);\n customAction.id = \"m-custom-action\";\n customAction.href = \"#mailgo-custom-action\";\n customAction.classList.add(\"m-open\");\n customAction.classList.add(\"m-custom-action\");\n\n if (mailgoConfigAttributeEnabled(\"action\", \"custom\")) {\n modalContent.appendChild(customAction);\n } // hide mailgo.dev in footer only if showFooter is defined and equal to false\n\n\n if (typeof ((_config4 = config) === null || _config4 === void 0 ? void 0 : _config4.showFooter) !== \"undefined\") {\n showFooterConfig = config.showFooter;\n }\n\n if (showFooterConfig) {\n modalContent.appendChild(byElement());\n } // add the modal at the end of the body\n\n\n document.body.appendChild(modalMailto); // every click outside the modal will hide the modal\n\n modalBackground.addEventListener(\"click\", hideMailgo);\n } // mailgo tel, if mailgo-tel not already exists\n\n\n var mailgoTelExists = !!document.getElementById(MAILGO_TEL); // if mailgo is enabled for tel/callto and it not exists in DOM\n\n if (telEnabled && !mailgoTelExists) {\n var _config5, _config6;\n\n // modal\n modalTel = createElement();\n modalTel.style.display = \"none\";\n modalTel.id = MAILGO_TEL;\n modalTel.classList.add(\"m-modal\");\n modalTel.setAttribute(\"role\", \"dialog\");\n modalTel.setAttribute(\"tabindex\", \"-1\");\n modalTel.setAttribute(\"aria-labelledby\", \"m-tel-title\"); // if dark is in config\n\n if ((_config5 = config) !== null && _config5 !== void 0 && _config5.dark) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // background\n\n\n var _modalBackground = createElement();\n\n _modalBackground.className = \"m-modal-back\";\n modalTel.appendChild(_modalBackground); // modal content\n\n var _modalContent = createElement();\n\n _modalContent.className = \"m-modal-content\";\n modalTel.appendChild(_modalContent); // title (telephone number)\n\n titleTel = createElement(\"strong\");\n titleTel.id = \"m-tel-title\";\n titleTel.className = \"m-title\";\n\n _modalContent.appendChild(titleTel); // details\n\n\n var detailsTel = createElement();\n detailsTel.id = \"m-tel-details\";\n detailsTel.className = \"m-details\";\n detailMsg = createElement(pHTMLTag);\n detailMsg.id = \"m-msg\";\n var msgSpan = createElement(spanHTMLTag);\n msgSpan.className = \"w-500\";\n msgSpan.appendChild(createTextNode(strings.body_ || defaultStrings.body_));\n msgValue = createElement(spanHTMLTag);\n msgValue.id = \"m-msg-value\";\n detailMsg.appendChild(msgSpan);\n detailMsg.appendChild(msgValue);\n detailsTel.appendChild(detailMsg);\n\n _modalContent.appendChild(detailsTel); // Telegram\n\n\n telegram = createElement(aHTMLTag);\n telegram.id = \"m-tg\";\n telegram.href = \"#mailgo-telegram\";\n telegram.classList.add(\"m-open\");\n telegram.classList.add(\"m-tg\"); // by default not display\n\n telegram.style.display = \"none\";\n telegram.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var telegramSpan = createElement(spanHTMLTag);\n telegramSpan.className = \"w-500\";\n telegramSpan.appendChild(createTextNode(strings.telegram || defaultStrings.telegram));\n telegram.appendChild(telegramSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"telegram\")) {\n _modalContent.appendChild(telegram);\n } // WhatsApp\n\n\n wa = createElement(aHTMLTag);\n wa.id = \"m-wa\";\n wa.href = \"#mailgo-whatsapp\";\n wa.classList.add(\"m-open\");\n wa.classList.add(\"m-wa\");\n wa.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var waSpan = createElement(spanHTMLTag);\n waSpan.className = \"w-500\";\n waSpan.appendChild(createTextNode(strings.whatsapp || defaultStrings.whatsapp));\n wa.appendChild(waSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"whatsapp\")) {\n _modalContent.appendChild(wa);\n } // Skype\n\n\n skype = createElement(aHTMLTag);\n skype.id = \"m-skype\";\n skype.href = \"#mailgo-skype\";\n skype.classList.add(\"m-open\");\n skype.classList.add(\"m-skype\");\n skype.appendChild(createTextNode(strings.open_in_ || defaultStrings.open_in_));\n var skypeSpan = createElement(spanHTMLTag);\n skypeSpan.className = \"w-500\";\n skypeSpan.appendChild(createTextNode(strings.skype || defaultStrings.skype));\n skype.appendChild(skypeSpan);\n\n if (mailgoConfigAttributeEnabled(\"action\", \"skype\")) {\n _modalContent.appendChild(skype);\n } // call default\n\n\n call = createElement(aHTMLTag);\n call.id = \"m-call\";\n call.href = \"#mailgo-open\";\n call.classList.add(\"m-open\");\n call.classList.add(\"m-default\");\n var callSpan = createElement(spanHTMLTag);\n callSpan.className = \"w-500\";\n callSpan.appendChild(createTextNode(strings.call || defaultStrings.call));\n call.appendChild(callSpan);\n call.appendChild(createTextNode(strings._as_default || defaultStrings._as_default));\n\n _modalContent.appendChild(call); // copy\n\n\n copyTel = createElement(aHTMLTag);\n copyTel.id = \"m-tel-copy\";\n copyTel.href = \"#mailgo-copy\";\n copyTel.classList.add(\"m-copy\");\n copyTel.classList.add(\"w-500\");\n copyTel.appendChild(createTextNode(strings.copy || defaultStrings.copy));\n\n _modalContent.appendChild(copyTel); // hide mailgo.dev in footer only if showFooter is defined and equal to false\n\n\n if (typeof ((_config6 = config) === null || _config6 === void 0 ? void 0 : _config6.showFooter) !== \"undefined\") {\n showFooterConfig = config.showFooter;\n }\n\n if (showFooterConfig) {\n _modalContent.appendChild(byElement());\n } // add the modal at the end of the body\n\n\n document.body.appendChild(modalTel); // every click outside the modal will hide the modal\n\n _modalBackground.addEventListener(\"click\", hideMailgo);\n } // event listener on body, if the element is mailgo-compatible the mailgo modal will be rendered\n\n\n document.addEventListener(\"click\", mailgoClickListener);\n};\n/**\n * mailgoClickListener\n * function to check if an element is mailgo-enabled or not referencing to\n * mail:\n * document.querySelectorAll(\n * 'a[href^=\"mailto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * tel:\n * document.querySelectorAll(\n * 'a[href^=\"tel:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"callto:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n * or\n * document.querySelectorAll(\n * 'a[href^=\"sms:\" i]:not(.no-mailgo), a[href=\"#mailgo\"], a.mailgo'\n * );\n */\n\n\nfunction mailgoClickListener(event) {\n // check if the mailgo HTML exists in the body\n if (!document.body.contains(modalMailto) && !document.body.contains(modalTel)) {\n return false;\n } // if a mailgo is already showing do nothing\n\n\n if (mailgoIsShowing()) {\n return false;\n } // the path of the event\n\n\n var path = event.composedPath && event.composedPath() || composedPath(event.target);\n\n if (path) {\n path.forEach(function (element) {\n if (element instanceof HTMLDocument || element instanceof Window) {\n return false;\n } // go here only if one of the mailgo modals are enabled\n\n\n if (mailtoEnabled || telEnabled || smsEnabled) {\n var localMailgoType = getMailgoTypeByElement(element); // go on if the localMailgoType is not null\n\n if (localMailgoType) {\n var _activeMailgoType;\n\n // set the active mailgo type\n activeMailgoType = localMailgoType;\n var activeMailgoModalType = (_activeMailgoType = activeMailgoType) === null || _activeMailgoType === void 0 ? void 0 : _activeMailgoType.type;\n\n if (activeMailgoModalType) {\n // check if the setting is enabled and if so go with pre-render\n if (mailtoEnabled && activeMailgoModalType === MAILGO_MAIL || telEnabled && activeMailgoModalType === MAILGO_TEL || smsEnabled && activeMailgoModalType === MAILGO_SMS) {\n // stop the normal execution of the element click\n event.preventDefault(); // render mailgo\n\n mailgoPreRender(element);\n return true;\n }\n }\n }\n }\n });\n }\n\n return false;\n}\n/**\n * mailgoPreRender\n * function to pre-render a mailgo, it helps populating elements needed by modal\n */\n\n\nfunction mailgoPreRender(mailgoElementOrUrl) {\n var _activeMailgoType2, _activeMailgoType3, _config9;\n\n var mailgoElement; // get the type and installation from current mailgo type\n\n var type = (_activeMailgoType2 = activeMailgoType) === null || _activeMailgoType2 === void 0 ? void 0 : _activeMailgoType2.type;\n var installation = (_activeMailgoType3 = activeMailgoType) === null || _activeMailgoType3 === void 0 ? void 0 : _activeMailgoType3.installation; // if type is not defined return\n\n if (!type) return false;\n\n if (typeof mailgoElementOrUrl === \"string\") {\n // if the parameter is a string it is the url\n href = mailgoElementOrUrl;\n } else {\n // if the paramenter is an HTMLLinkElement get the href attribute and the element\n href = mailgoElementOrUrl.getAttribute(\"href\");\n mailgoElement = mailgoElementOrUrl;\n } // mailgo mail\n\n\n if (type === MAILGO_MAIL) {\n var _config7;\n\n // if the installation is classic\n if (installation === CLASSIC) {\n if (validateUrl(href, MAILTO)) {\n mail = decodeURIComponent(href.split(\"?\")[0].split(MAILTO)[1].trim());\n } else if (validateUrl(href, MAILGO)) {\n mail = decodeURIComponent(href.split(\"?\")[0].split(MAILGO)[1].trim());\n }\n\n try {\n url = new URL(href);\n var urlParams = url.searchParams; // optional parameters for the email\n\n cc = urlParams.get(\"cc\");\n bcc = urlParams.get(\"bcc\");\n subject = urlParams.get(\"subject\");\n bodyMail = urlParams.get(\"body\");\n } catch (error) {\n console.log(error);\n }\n } else if (installation === LESS_SPAM) {\n // if the installation is less-spam\n // mail = data-address + @ + data-domain\n mail = mailgoElement.getAttribute(\"data-address\") && mailgoElement.getAttribute(\"data-domain\") ? mailgoElement.getAttribute(\"data-address\") + \"@\" + mailgoElement.getAttribute(\"data-domain\") : null;\n\n try {\n url = new URL(MAILTO + encodeURIComponent(mail));\n } catch (error) {\n console.log(error);\n }\n\n var parameters = []; // cc = data-cc-address + @ + data-cc-domain\n\n cc = mailgoElement.getAttribute(\"data-cc-address\") ? mailgoElement.getAttribute(\"data-cc-address\") + \"@\" + mailgoElement.getAttribute(\"data-cc-domain\") : null; // if cc is defined add it to parameters\n\n if (cc) parameters.push(\"cc=\" + cc); // bcc = data-bcc-address + @ + data-bcc-domain\n\n bcc = mailgoElement.getAttribute(\"data-bcc-address\") ? mailgoElement.getAttribute(\"data-bcc-address\") + \"@\" + mailgoElement.getAttribute(\"data-bcc-domain\") : null; // if bcc is defined add it to parameters\n\n if (bcc) parameters.push(\"bcc=\" + bcc); // subject = data-subject\n\n subject = mailgoElement.getAttribute(\"data-subject\"); // if subject is defined add it to parameters\n\n if (subject) parameters.push(\"subject=\" + subject); // body = data-body\n\n bodyMail = mailgoElement.getAttribute(\"data-body\"); // if body is defined add it to parameters\n\n if (bodyMail) parameters.push(\"body=\" + bodyMail); // set the lessSpamHref\n\n lessSpamHref = buildLessSpamHref(MAILTO + encodeURIComponent(mail), parameters);\n } // set custom action text, title and url\n\n\n customActionText = \"\";\n customActionTitle = \"\";\n customActionUrl = \"\";\n\n if (mailgoConfigAttributeEnabled(\"action\", \"custom\") && mailgoElement) {\n var _mailgoElement$getAtt, _mailgoElement$getAtt2;\n\n customActionText = (_mailgoElement$getAtt = mailgoElement.getAttribute(\"data-custom-action-text\")) !== null && _mailgoElement$getAtt !== void 0 ? _mailgoElement$getAtt : customActionText;\n\n if (customActionText) {\n customActionTitle = customActionText;\n customActionText = truncate(customActionText, customActionTextMaxLength);\n }\n\n customActionUrl = (_mailgoElement$getAtt2 = mailgoElement.getAttribute(\"data-custom-action-url\")) !== null && _mailgoElement$getAtt2 !== void 0 ? _mailgoElement$getAtt2 : customActionUrl;\n } // if is in config use it\n\n\n if (typeof ((_config7 = config) === null || _config7 === void 0 ? void 0 : _config7.validateEmail) !== \"undefined\") {\n validateEmailConfig = config.validateEmail;\n }\n\n if (validateEmailConfig) {\n // validate the email address\n if (!validateEmails(mail.split(\",\"))) {\n return false;\n } // if cc, bcc are not valid cc, bcc = \"\"\n\n\n if (cc && !validateEmails(cc.split(\",\"))) cc = \"\";\n if (bcc && !validateEmails(bcc.split(\",\"))) bcc = \"\";\n }\n } // mailgo tel\n else if (type === MAILGO_TEL) {\n var _config8;\n\n if (installation === CLASSIC) {\n if (validateUrl(href, TEL)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(TEL)[1].trim());\n } else if (validateUrl(href, CALLTO)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(CALLTO)[1].trim());\n } else if (validateUrl(href, SMS)) {\n tel = decodeURIComponent(href.split(\"?\")[0].split(SMS)[1].trim());\n }\n\n try {\n url = new URL(href);\n var _urlParams = url.searchParams; // optional parameters for the phone number\n\n msg = _urlParams.get(\"body\");\n } catch (error) {\n console.log(error);\n }\n } else if (installation == LESS_SPAM) {\n tel = mailgoElement.getAttribute(\"data-tel\");\n msg = mailgoElement.getAttribute(\"data-msg\");\n\n try {\n url = new URL(TEL + encodeURIComponent(tel));\n } catch (error) {\n console.log(error);\n }\n\n var _parameters = []; // if msg is defined add it to parameters\n\n if (msg) _parameters.push(\"body=\" + msg); // set the lessSpamHref\n\n lessSpamHref = buildLessSpamHref(TEL + encodeURIComponent(tel), _parameters);\n } // if is in config use it\n\n\n if (typeof ((_config8 = config) === null || _config8 === void 0 ? void 0 : _config8.validateTel) !== \"undefined\") {\n validateTelConfig = config.validateTel;\n } // validate the phone number\n\n\n if (validateTelConfig) {\n if (!validateTel(tel)) return false;\n } // Telegram username\n\n\n if (mailgoElement && mailgoElement.hasAttribute(\"data-telegram\")) {\n telegramUsername = mailgoElement.getAttribute(\"data-telegram\");\n } else {\n telegramUsername = null;\n } // Telegram username\n\n\n if (mailgoElement && mailgoElement.hasAttribute(\"data-skype\")) {\n skypeUsername = mailgoElement.getAttribute(\"data-skype\");\n } else {\n skypeUsername = null;\n }\n } // if dark is in config or contained in the element\n\n\n if ((_config9 = config) !== null && _config9 !== void 0 && _config9.dark || mailgoElement.classList.contains(\"dark\")) {\n enableDarkMode();\n } else {\n disableDarkMode();\n } // render mailgo\n\n\n mailgoRender();\n return true;\n}\n/**\n * mailgoDirectRender\n * function to render a mailgo directly from a URL\n */\n\n\nfunction mailgoDirectRender(directUrl) {\n // start mailgo\n mailgo();\n\n if (validateUrl(directUrl, MAILTO) || validateUrl(directUrl, MAILGO)) {\n activeMailgoType = {\n type: MAILGO_MAIL,\n installation: CLASSIC\n };\n return mailgoPreRender(directUrl);\n } else if (validateUrl(directUrl, TEL) || validateUrl(directUrl, CALLTO) || validateUrl(directUrl, SMS)) {\n activeMailgoType = {\n type: MAILGO_TEL,\n installation: CLASSIC\n };\n return mailgoPreRender(directUrl);\n }\n\n return false;\n}\n/**\n * mailgoRender\n * function to render a mailgo (mail or tel)\n */\n\n\nfunction mailgoRender() {\n var _activeMailgoType4;\n\n // get the type from current mailgo type\n var type = (_activeMailgoType4 = activeMailgoType) === null || _activeMailgoType4 === void 0 ? void 0 : _activeMailgoType4.type; // if type is not defined return\n\n if (!type) return false; // mailgo mail\n\n if (type === MAILGO_MAIL) {\n // the title of the modal (email address)\n title.textContent = mail.split(\",\").join(\"\\n\"); // add the details if provided\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"cc\") && cc) {\n detailCc.style.display = \"block\";\n ccValue.textContent = cc.split(\",\").join(\"\\n\");\n } else {\n detailCc.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"bcc\") && bcc) {\n detailBcc.style.display = \"block\";\n bccValue.textContent = bcc.split(\",\").join(\"\\n\");\n } else {\n detailBcc.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"subject\") && subject) {\n detailSubject.style.display = \"block\";\n subjectValue.textContent = subject;\n } else {\n detailSubject.style.display = \"none\";\n }\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"body\") && bodyMail) {\n detailBody.style.display = \"block\";\n bodyValue.textContent = bodyMail;\n } else {\n detailBody.style.display = \"none\";\n } // custom action text, title and visibility\n\n\n customAction.textContent = customActionText;\n customAction.title = customActionTitle;\n customAction.style.display = customActionText ? \"block\" : \"none\"; // add the actions\n\n gmail.addEventListener(\"click\", openGmail);\n outlook.addEventListener(\"click\", openOutlook);\n yahoo.addEventListener(\"click\", openYahooMail);\n mailgo_open.addEventListener(\"click\", openDefault);\n copyMail.addEventListener(\"click\", copy);\n customAction.addEventListener(\"click\", openCustomAction);\n } // mailgo tel\n else if (type === MAILGO_TEL) {\n // the title of the modal (tel)\n titleTel.textContent = tel;\n\n if (mailgoConfigAttributeEnabled(\"detail\", \"msg\") && msg) {\n detailMsg.style.display = \"block\";\n msgValue.textContent = msg;\n } else {\n detailMsg.style.display = \"none\";\n } // add the actions to buttons\n\n\n wa.addEventListener(\"click\", openWhatsApp); // telegram must be shown only if data-telegram is provided\n\n if (telegramUsername) {\n document.getElementById(\"m-tg\").style.display = \"block\";\n telegram.addEventListener(\"click\", openTelegram);\n } else {\n document.getElementById(\"m-tg\").style.display = \"none\";\n }\n\n skype.addEventListener(\"click\", openSkype);\n call.addEventListener(\"click\", openDefault);\n copyTel.addEventListener(\"click\", copy);\n } // show the mailgo\n\n\n showMailgo(type); // add listener keyDown\n\n document.addEventListener(\"keydown\", mailgoKeydown);\n return true;\n} // actions\n\n\nvar openGmail = function openGmail(event) {\n var _activeMailgoType5;\n\n event.preventDefault();\n var urlString;\n var installation = (_activeMailgoType5 = activeMailgoType) === null || _activeMailgoType5 === void 0 ? void 0 : _activeMailgoType5.installation;\n\n if (installation === CLASSIC) {\n try {\n urlString = url.toString();\n } catch (e) {\n urlString = href;\n }\n } else if (installation === LESS_SPAM) {\n urlString = lessSpamHref;\n } // Gmail url\n\n\n var gmailUrl = \"https://mail.google.com/mail/?extsrc=mailto&url=\" + encodeURIComponent(urlString); // open the link\n\n window.open(gmailUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n};\n\nvar openOutlook = function openOutlook(event) {\n var _config10;\n\n event.preventDefault(); // Outlook starting url\n\n var startingOutlookUrl = \"https://outlook.live.com/owa/?path=/mail/action/compose&to=\"; // let the user to decide to open Office365 Outlook instead of the classic outlook.live.com\n\n if ((_config10 = config) !== null && _config10 !== void 0 && _config10.office365) {\n startingOutlookUrl = \"https://outlook.office365.com/owa/?path=/mail/action/compose&to=\";\n } // Outlook url\n\n\n var outlookUrl = startingOutlookUrl + encodeURIComponent(mail); // the details if provided\n\n if (subject) {\n outlookUrl = outlookUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n }\n\n if (bodyMail) {\n outlookUrl = outlookUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n } // open the link\n\n\n window.open(outlookUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n};\n\nvar openYahooMail = function openYahooMail(event) {\n event.preventDefault(); // Yahoo url\n\n var yahooUrl = \"https://compose.mail.yahoo.com/?to=\" + mail; // the details if provided\n\n if (subject) {\n yahooUrl = yahooUrl.concat(\"&subject=\" + encodeURIComponent(subject));\n }\n\n if (bodyMail) {\n yahooUrl = yahooUrl.concat(\"&body=\" + encodeURIComponent(bodyMail));\n } // open the link\n\n\n window.open(yahooUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n};\n\nvar openTelegram = function openTelegram(event) {\n event.preventDefault(); // check if telegramUsername exists\n\n if (telegramUsername) {\n // Telegram url\n var tgUrl = \"https://t.me/\" + encodeURIComponent(telegramUsername); // open the url\n\n window.open(tgUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n }\n};\n\nvar openSkype = function openSkype(event) {\n event.preventDefault();\n var skype = skypeUsername || tel; // Telegram url\n\n var skypeUrl = \"skype:\" + encodeURIComponent(skype); // open the url\n\n window.open(skypeUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n};\n\nvar openWhatsApp = function openWhatsApp(event) {\n event.preventDefault(); // WhatsApp API doesn't work with non number digits and leading 0s: https://faq.whatsapp.com/general/chats/how-to-use-click-to-chat/\n\n var whatappTel = tel.replace(notNumber, \"\").replace(leadingZeros, \"\"); // WhatsApp url\n\n var waUrl = \"https://wa.me/\" + encodeURIComponent(whatappTel); // the details if provided\n\n if (msg) {\n waUrl = waUrl.concat(\"?text=\" + encodeURIComponent(msg));\n } // open the url\n\n\n window.open(waUrl, \"_blank\", \"noopener, noreferrer\"); // hide the modal\n\n hideMailgo();\n};\n\nvar openDefault = function openDefault(event) {\n var _activeMailgoType6;\n\n event.preventDefault();\n var installation = (_activeMailgoType6 = activeMailgoType) === null || _activeMailgoType6 === void 0 ? void 0 : _activeMailgoType6.installation; // if the installation is classic the browser can follow the default behaviour\n\n if (installation === CLASSIC) {\n window.location.href = href;\n } else if (installation === LESS_SPAM) {\n // if the installation is less-spam use the built less-spam href\n window.location.href = lessSpamHref;\n }\n\n hideMailgo();\n};\n\nvar copy = function copy(event) {\n event.preventDefault(); // the correct copyButton (mail or tel)\n\n if (mailgoIsShowing()) {\n var _activeMailgoType7;\n\n var activeCopy;\n var type = (_activeMailgoType7 = activeMailgoType) === null || _activeMailgoType7 === void 0 ? void 0 : _activeMailgoType7.type;\n\n if (type === MAILGO_MAIL) {\n // in case it is showing mail modal copy email address\n copyToClipboard(mail);\n activeCopy = copyMail;\n } else {\n // in case it is showing tel modal copy phone number\n copyToClipboard(tel);\n activeCopy = copyTel;\n }\n\n activeCopy.textContent = strings.copied || defaultStrings.copied;\n setTimeout(function () {\n activeCopy.textContent = strings.copy || defaultStrings.copy; // hide after the timeout\n\n hideMailgo();\n }, 999);\n }\n};\n\nvar openCustomAction = function openCustomAction(event) {\n event === null || event === void 0 ? void 0 : event.preventDefault();\n\n if (customActionUrl) {\n var customActionUrlEncoded = encodeURI(customActionUrl);\n window.open(customActionUrlEncoded, \"_blank\", \"noopener, noreferrer\");\n }\n\n hideMailgo();\n}; // function to find if a link is a mailto, tel, callto or sms\n\n\nvar validateUrl = function validateUrl(url) {\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : MAILTO;\n var regexValidate = new RegExp(\"^\" + type + \"((.)+)\", \"gi\");\n return regexValidate.test(url);\n}; // function that returns if an element is a mailgo\n\n\nfunction getMailgoTypeByElement(element) {\n var _element$classList, _element$classList2, _element$classList3;\n\n var linkElement = element;\n\n if (!linkElement.getAttribute) {\n return null;\n }\n\n var elementHref = linkElement.getAttribute(\"href\"); // return null if there is no-mailgo in class\n\n if ((_element$classList = element.classList) !== null && _element$classList !== void 0 && _element$classList.contains(NO_MAILGO)) {\n return null;\n } // the case of classic type of mailgo, like a href=mailto:... or a href=tel:... and the class=mailgo with a useful href\n\n\n if (elementHref || (_element$classList2 = element.classList) !== null && _element$classList2 !== void 0 && _element$classList2.contains(\"mailgo\")) {\n if (validateUrl(elementHref, MAILTO) || validateUrl(elementHref, MAILGO)) {\n // a mailto: or mailgo:\n return {\n type: MAILGO_MAIL,\n installation: CLASSIC\n };\n } else if (validateUrl(elementHref, TEL) || validateUrl(elementHref, CALLTO)) {\n // a tel: or callto:\n return {\n type: MAILGO_TEL,\n installation: CLASSIC\n };\n } else if (validateUrl(elementHref, SMS)) {\n // a sms:\n return {\n type: MAILGO_SMS,\n installation: CLASSIC\n };\n }\n }\n\n if (elementHref === \"#mailgo\" || (_element$classList3 = element.classList) !== null && _element$classList3 !== void 0 && _element$classList3.contains(\"mailgo\")) {\n // less-spam installation of mailgo, check to the attributes\n if (element.hasAttribute(\"data-address\") && element.hasAttribute(\"data-domain\")) {\n // less-spam mailto with data-address and data-domain\n return {\n type: MAILGO_MAIL,\n installation: LESS_SPAM\n };\n } else if (element.hasAttribute(\"data-tel\")) {\n // less-spam tel with data-tel\n return {\n type: MAILGO_TEL,\n installation: LESS_SPAM\n };\n } else if (element.hasAttribute(\"data-msg\")) {\n // less-spam sms with data-msd\n return {\n type: MAILGO_SMS,\n installation: LESS_SPAM\n };\n }\n }\n\n return null;\n}\n/**\n * mailgoKeydown\n * function to manage the keydown event when the modal is showing, return a boolean that represents if a useful key has been pressed\n */\n\n\nvar mailgoKeydown = function mailgoKeydown(keyboardEvent) {\n // if mailgo is showing\n if (mailgoIsShowing()) {\n var _activeMailgoType8;\n\n var type = (_activeMailgoType8 = activeMailgoType) === null || _activeMailgoType8 === void 0 ? void 0 : _activeMailgoType8.type;\n\n if (type === MAILGO_MAIL) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n return true;\n\n case 71:\n // g -> open GMail\n openGmail();\n return true;\n\n case 79:\n // o -> open Outlook\n openOutlook();\n return true;\n\n case 89:\n // y -> open Yahoo Mail\n openYahooMail();\n return true;\n\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n return true;\n\n case 67:\n // c -> copy\n copy();\n return true;\n\n case 65:\n // a -> custom Action\n openCustomAction();\n return true;\n\n default:\n return false;\n }\n } else if (type === MAILGO_TEL) {\n switch (keyboardEvent.keyCode) {\n case 27:\n // Escape\n hideMailgo();\n return true;\n\n case 84:\n // t -> open Telegram\n openTelegram();\n return true;\n\n case 87:\n // w -> open WhatsApp\n openWhatsApp();\n return true;\n\n case 83:\n // s -> open Skype\n openSkype();\n return true;\n\n case 32:\n case 13:\n // spacebar or enter -> open default\n openDefault();\n return true;\n\n case 67:\n // c -> copy\n copy();\n return true;\n\n default:\n return false;\n }\n }\n }\n\n return false;\n}; // show the modal\n\n\nvar showMailgo = function showMailgo(type) {\n // show the correct modal\n setModalDisplay(type, \"flex\");\n}; // hide the modal\n\n\nvar hideMailgo = function hideMailgo() {\n // hide all the modals\n setModalDisplay(MAILGO_MAIL, \"none\");\n setModalDisplay(MAILGO_TEL, \"none\"); // remove listener keyDown\n\n document.removeEventListener(\"keydown\", mailgoKeydown);\n}; // is the mailgo modal hidden?\n\n\nvar mailgoIsShowing = function mailgoIsShowing() {\n return mailtoEnabled && getModalDisplay(MAILGO_MAIL) === \"flex\" || (telEnabled || smsEnabled) && getModalDisplay(MAILGO_TEL) === \"flex\";\n};\n\nvar byElement = function byElement() {\n // by element in the footer\n var by = createElement(aHTMLTag);\n by.href = \"https://mailgo.dev?ref=mailgo-modal\";\n by.className = \"m-by\";\n by.target = \"_blank\";\n by.rel = \"noopener noreferrer\";\n by.appendChild(createTextNode(\"mailgo.dev\"));\n return by;\n}; // create element\n\n\nvar createElement = function createElement() {\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"div\";\n return document.createElement(element);\n}; // create text node\n\n\nvar createTextNode = function createTextNode(element) {\n return document.createTextNode(element);\n}; // get the correct HTMLElement from a type\n\n\nvar getModalHTMLElement = function getModalHTMLElement() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n\n if (type === MAILGO_TEL) {\n return modalTel;\n } else {\n return modalMailto;\n }\n}; // get display value\n\n\nvar getModalDisplay = function getModalDisplay() {\n var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n return getModalHTMLElement(ref).style.display;\n}; // set display value\n\n\nvar setModalDisplay = function setModalDisplay() {\n var ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : MAILGO_MAIL;\n var value = arguments.length > 1 ? arguments[1] : undefined;\n var modal = getModalHTMLElement(ref);\n\n if (modal) {\n modal.style.display = value;\n\n if (value === \"flex\") {\n // \"save\" the activated link.\n activatedLink = document.activeElement;\n modal.setAttribute(\"aria-hidden\", \"false\"); // Focus on the modal container.\n\n modal.setAttribute(\"tabindex\", \"0\");\n modal.focus();\n setFocusLoop(modal);\n } else {\n modal.setAttribute(\"aria-hidden\", \"true\"); // focus back the activated link for getting back to the context.\n\n modal.setAttribute(\"tabindex\", \"-1\");\n activatedLink.focus();\n }\n }\n}; // enable dark mode\n\n\nvar enableDarkMode = function enableDarkMode() {\n var _activeMailgoType9;\n\n // get the type from current mailgo type\n var type = (_activeMailgoType9 = activeMailgoType) === null || _activeMailgoType9 === void 0 ? void 0 : _activeMailgoType9.type;\n\n if (type) {\n getModalHTMLElement(type).classList.add(\"m-dark\");\n }\n}; // disable dark mode\n\n\nvar disableDarkMode = function disableDarkMode() {\n var _activeMailgoType10;\n\n // get the type from current mailgo type\n var type = (_activeMailgoType10 = activeMailgoType) === null || _activeMailgoType10 === void 0 ? void 0 : _activeMailgoType10.type;\n\n if (type) {\n getModalHTMLElement(type).classList.remove(\"m-dark\");\n }\n}; // custom composedPath if path or event.composedPath() are not defined\n\n\nvar composedPath = function composedPath(el) {\n var path = [];\n\n while (el) {\n path.push(el);\n\n if (el.tagName === \"HTML\") {\n path.push(document);\n path.push(window);\n return path;\n }\n\n el = el.parentElement;\n }\n}; // function to recreate a mailto: or tel: href from less-spam\n\n\nvar buildLessSpamHref = function buildLessSpamHref(type, parameters) {\n lessSpamHref = type;\n\n if (parameters && parameters.length > 0) {\n var joinedParams = parameters.join(\"&\");\n lessSpamHref = lessSpamHref.concat(\"?\" + joinedParams);\n }\n\n return lessSpamHref;\n}; // function to check an attribute is enabled or not, by default considering it enabled\n\n\nvar mailgoConfigAttributeEnabled = function mailgoConfigAttributeEnabled(type, attribute) {\n // by default all the actions and attribute are enabled\n if (!config) {\n return true;\n } // if the attribute type is action consider the actions config attribute\n\n\n if (type === \"action\") {\n var _config11, _config12;\n\n if (config && !((_config11 = config) !== null && _config11 !== void 0 && _config11.actions)) {\n return true;\n }\n\n if (config && config.actions && ((_config12 = config) === null || _config12 === void 0 ? void 0 : _config12.actions[attribute]) === false) {\n return false;\n }\n } else if (type === \"detail\") {\n var _config13, _config14;\n\n // else consider the details attribute\n if (config && !((_config13 = config) !== null && _config13 !== void 0 && _config13.details)) {\n return true;\n }\n\n if (config && config.details && ((_config14 = config) === null || _config14 === void 0 ? void 0 : _config14.details[attribute]) === false) {\n return false;\n }\n }\n\n return true;\n}; // manage the language of mailgo\n\n\nvar mailgoSetLanguage = function mailgoSetLanguage() {\n var _config15;\n\n var languageType = \"default lang\"; // if a language is defined in configuration use it\n\n if ((_config15 = config) !== null && _config15 !== void 0 && _config15.lang && languages_namespaceObject.indexOf(config.lang) !== -1) {\n lang = config.lang;\n languageType = \"config lang\";\n } else {\n // else if is defined use it!\n // keep the lang from html\n var htmlLang = document.documentElement.lang; // find the correct language using the lang attribute, not just a === because there a are cases like fr-FR or fr_FR in html lang attribute\n\n languages_namespaceObject.forEach(function (language) {\n if (new RegExp(\"^\" + language, \"gi\").test(htmlLang)) {\n lang = language;\n languageType = \"html lang\";\n }\n });\n } // strings\n\n\n strings = translations_namespaceObject[lang];\n return languageType;\n};\n\nvar mailgoStyle = function mailgoStyle() {\n if (!document.getElementById(\"mailgo-style\")) {\n // mailgo style\n var mailgoCSSElement = createElement(\"style\");\n mailgoCSSElement.id = \"mailgo-style\";\n mailgoCSSElement.type = \"text/css\";\n mailgoCSSElement.appendChild(createTextNode(mailgoCSS));\n document.head.appendChild(mailgoCSSElement);\n }\n};\n\nfunction mailgoValidateEmail(email) {\n return validateEmail(email);\n} // mailgo\n\n\nfunction mailgo(mailgoConfig) {\n try {\n var _window;\n\n // polyfill mailgo\n // mailgoPolyfill();\n // set the global config merging window mailgConfig and mailgoConfig passed as a parameter\n config = _objectSpread(_objectSpread({}, mailgoConfig), ((_window = window) === null || _window === void 0 ? void 0 : _window.mailgoConfig) || null); // if the window is defined...\n\n if (typeof window !== \"undefined\") {\n var _config16, _config17, _config18, _config19, _config20;\n\n // if is set in config use it (load the mailgo CSS)\n if (typeof ((_config16 = config) === null || _config16 === void 0 ? void 0 : _config16.loadCSS) !== \"undefined\") {\n loadCSSConfig = config.loadCSS;\n } // if is set in config use it (enable mailto)\n\n\n if (typeof ((_config17 = config) === null || _config17 === void 0 ? void 0 : _config17.mailto) !== \"undefined\") {\n mailtoEnabled = config.mailto;\n } // if is set in config use it (enable tel)\n\n\n if (typeof ((_config18 = config) === null || _config18 === void 0 ? void 0 : _config18.tel) !== \"undefined\") {\n telEnabled = config.tel;\n } // if is set in config use it (enable sms)\n\n\n if (typeof ((_config19 = config) === null || _config19 === void 0 ? void 0 : _config19.sms) !== \"undefined\") {\n smsEnabled = config.sms;\n } // if load css enabled load it!\n\n\n if (loadCSSConfig) {\n // add the style for mailgo\n mailgoStyle();\n } // if is set an initEvent add the listener\n\n\n if ((_config20 = config) !== null && _config20 !== void 0 && _config20.initEvent) {\n var _config21;\n\n if ((_config21 = config) !== null && _config21 !== void 0 && _config21.listenerOptions) {\n // listener options specified\n document.addEventListener(config.initEvent, mailgoInit, config.listenerOptions);\n } else {\n // no listener options\n document.addEventListener(config.initEvent, mailgoInit);\n }\n } else {\n mailgoInit();\n }\n\n return true;\n }\n } catch (error) {\n console.log(error);\n }\n\n return false;\n} // define the methods also for window element\n\n\nif (typeof window !== \"undefined\") {\n window.getMailgoTypeByElement = getMailgoTypeByElement;\n window.mailgoClickListener = mailgoClickListener;\n window.mailgoCheckRender = mailgoClickListener; // for compatibility with old version of mailgo\n\n window.mailgoPreRender = mailgoPreRender;\n window.mailgoDirectRender = mailgoDirectRender;\n window.mailgoRender = mailgoRender;\n window.mailgoValidateEmail = mailgoValidateEmail;\n window.mailgo = mailgo;\n}\n\n\n/* harmony default export */ var src_mailgo = (mailgo);\n;// CONCATENATED MODULE: ./mailgo.lib.ts\n// webpack > lib/mailgo.js\n\n\n\n// start function\nconst start = src_mailgo;\n\n// compatibility with old version of mailgo\nconst mailgoCheckRender = mailgoClickListener;\n\n\n\n/* harmony default export */ var mailgo_lib = (src_mailgo);\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/make namespace object */\n/******/ \t!function() {\n/******/ \t\t// define __esModule on exports\n/******/ \t\t__webpack_require__.r = function(exports) {\n/******/ \t\t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t\t}\n/******/ \t\t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \t// This entry module doesn't tell about it's top-level declarations so it can't be inlined\n/******/ \tvar __webpack_exports__ = __webpack_require__(507);\n/******/ \t\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=mailgo.js.map","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `