{"version":3,"file":"app-438852e1a97eebabf2bd.js","mappings":"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","sources":["webpack://cara/./node_modules/@emotion/sheet/dist/emotion-sheet.esm.js","webpack://cara/./node_modules/stylis/src/Utility.js","webpack://cara/./node_modules/stylis/src/Tokenizer.js","webpack://cara/./node_modules/stylis/src/Enum.js","webpack://cara/./node_modules/stylis/src/Serializer.js","webpack://cara/./node_modules/stylis/src/Parser.js","webpack://cara/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://cara/./node_modules/stylis/src/Middleware.js","webpack://cara/./node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","webpack://cara/./node_modules/@emotion/react/dist/emotion-element-5486c51c.browser.esm.js","webpack://cara/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://cara/./node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","webpack://cara/./node_modules/@emotion/serialize/dist/emotion-serialize.esm.js","webpack://cara/./node_modules/@emotion/hash/dist/emotion-hash.esm.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://cara/./node_modules/@emotion/styled/node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","webpack://cara/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://cara/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://cara/./node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","webpack://cara/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://cara/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://cara/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://cara/./node_modules/@mdx-js/react/dist/esm.js","webpack://cara/./node_modules/@theme-ui/parse-props/dist/theme-ui-parse-props.esm.js","webpack://cara/./node_modules/@theme-ui/core/dist/theme-ui-core.esm.js","webpack://cara/./node_modules/@theme-ui/css/dist/theme-ui-css.esm.js","webpack://cara/./node_modules/@theme-ui/mdx/dist/theme-ui-mdx.esm.js","webpack://cara/./node_modules/deepmerge/dist/cjs.js","webpack://cara/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://cara/./node_modules/gatsby-react-router-scroll/index.js","webpack://cara/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://cara/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://cara/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://cara/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://cara/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://cara/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://cara/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://cara/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://cara/./.cache/api-runner-browser-plugins.js","webpack://cara/./.cache/api-runner-browser.js","webpack://cara/./.cache/emitter.js","webpack://cara/./node_modules/mitt/dist/mitt.es.js","webpack://cara/./.cache/normalize-page-path.js","webpack://cara/./.cache/find-path.js","webpack://cara/./.cache/static-query.js","webpack://cara/./.cache/gatsby-browser-entry.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://cara/./.cache/prefetch.js","webpack://cara/./.cache/loader.js","webpack://cara/./.cache/head/components/fire-callback-in-effect.js","webpack://cara/./.cache/head/constants.js","webpack://cara/./.cache/head/utils.js","webpack://cara/./.cache/head/head-export-handler-for-browser.js","webpack://cara/./.cache/page-renderer.js","webpack://cara/./.cache/route-announcer-props.js","webpack://cara/./.cache/navigation.js","webpack://cara/./node_modules/shallow-compare/es/index.js","webpack://cara/./.cache/ensure-resources.js","webpack://cara/./.cache/production-app.js","webpack://cara/./.cache/public-page-renderer-prod.js","webpack://cara/./.cache/public-page-renderer.js","webpack://cara/./.cache/react-dom-utils.js","webpack://cara/./.cache/react-lifecycles-compat.js","webpack://cara/./.cache/redirect-utils.js","webpack://cara/./.cache/register-service-worker.js","webpack://cara/./.cache/strip-prefix.js","webpack://cara/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://cara/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://cara/./node_modules/@theme-ui/color-modes/dist/theme-ui-color-modes.esm.js","webpack://cara/./node_modules/@theme-ui/theme-provider/dist/theme-ui-theme-provider.esm.js","webpack://cara/./node_modules/@theme-ui/preset-base/dist/theme-ui-preset-base.esm.js","webpack://cara/./node_modules/@theme-ui/preset-funk/dist/theme-ui-preset-funk.esm.js","webpack://cara/./node_modules/@theme-ui/preset-future/dist/theme-ui-preset-future.esm.js","webpack://cara/./node_modules/@theme-ui/preset-roboto/dist/theme-ui-preset-roboto.esm.js","webpack://cara/./node_modules/@theme-ui/preset-bootstrap/dist/theme-ui-preset-bootstrap.esm.js","webpack://cara/./node_modules/@theme-ui/preset-bulma/dist/theme-ui-preset-bulma.esm.js","webpack://cara/./node_modules/@theme-ui/preset-polaris/dist/theme-ui-preset-polaris.esm.js","webpack://cara/./node_modules/@theme-ui/preset-tailwind/dist/theme-ui-preset-tailwind.esm.js","webpack://cara/./node_modules/@theme-ui/preset-sketchy/dist/theme-ui-preset-sketchy.esm.js","webpack://cara/./src/gatsby-plugin-theme-ui/index.js","webpack://cara/./src/@lekoarts/gatsby-theme-cara/components/project-card.tsx","webpack://cara/./node_modules/@lekoarts/gatsby-theme-cara/src/gatsby-plugin-theme-ui/components.js","webpack://cara/./node_modules/gatsby-plugin-theme-ui/src/hooks/configOptions.js","webpack://cara/./node_modules/gatsby-plugin-theme-ui/src/provider.js","webpack://cara/./node_modules/gatsby-plugin-theme-ui/gatsby-browser.js","webpack://cara/./.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/e92f8988d65cf25c087d226e6c0ef06f.js","webpack://cara/./node_modules/gatsby-plugin-mdx/context.js","webpack://cara/./node_modules/gatsby-plugin-mdx/loaders/mdx-scopes.js","webpack://cara/./node_modules/gatsby-plugin-mdx/wrap-root-element.js","webpack://cara/./node_modules/gatsby-plugin-mdx/gatsby-browser.js","webpack://cara/./node_modules/gatsby-plugin-mdx/loaders/mdx-components.js","webpack://cara/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://cara/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://cara/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://cara/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://cara/./node_modules/invariant/browser.js","webpack://cara/./node_modules/react-is/cjs/react-is.production.min.js","webpack://cara/./node_modules/react-is/index.js","webpack://cara/./node_modules/theme-ui/dist/theme-ui.esm.js","webpack://cara/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://cara/./node_modules/@babel/runtime/helpers/extends.js","webpack://cara/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://cara/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://cara/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://cara/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://cara/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://cara/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://cara/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://cara/./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 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\n /*: EmotionCache */\ncreateCache(options\n/*: Options */\n) {\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 /*: HTMLStyleElement */\n ) {\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 /* : Node */\n\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 /*: HTMLStyleElement */\n ) {\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 selector: string,\n serialized: SerializedStyles,\n sheet: StyleSheet,\n shouldCache: boolean\n ) => string | void */\n\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\n /*: void */\n insert(selector\n /*: string */\n , serialized\n /*: SerializedStyles */\n , sheet\n /*: StyleSheet */\n , shouldCache\n /*: boolean */\n ) {\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 /*: EmotionCache */\n = {\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","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 * 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\n/* import { type EmotionCache } from '@emotion/utils' */\nvar EmotionCacheContext\n/*: React.Context */\n= /* #__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/*: EmotionCache | null*/\n{\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache\n/* > */\n(func\n/*: (props: Props, cache: EmotionCache, ref: Ref) => React.Node */\n)\n/*: React.AbstractComponent */\n{\n return /*#__PURE__*/forwardRef(function (props\n /*: Props */\n , ref\n /*: Ref */\n ) {\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\n/*: Object */\n, theme\n/*: Object | (Object => Object) */\n) {\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});\n/*\ntype ThemeProviderProps = {\n theme: Object | (Object => Object),\n children: React.Node\n}\n*/\n\nvar ThemeProvider = function ThemeProvider(props\n/*: ThemeProviderProps */\n) {\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\n/* */\n(Component\n/*: React.AbstractComponent */\n)\n/*: React.AbstractComponent<$Diff> */\n{\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = 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\n var WithTheme = /*#__PURE__*/React.forwardRef(render);\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\n/*: React.ElementType */\n, props\n/*: Object */\n) {\n\n var newProps\n /*: any */\n = {};\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(\n/* */\nfunction (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 key in props) {\n if (hasOwn.call(props, key) && key !== 'css' && key !== typePropName && (!isDevelopment )) {\n newProps[key] = props[key];\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","import { h as hasOwn, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext, i as isDevelopment } from './emotion-element-5486c51c.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-5486c51c.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\n/*: typeof React.createElement */\n= function jsx\n/*: typeof React.createElement */\n(type\n/*: React.ElementType */\n, props\n/*: Object */\n) {\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// 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\n/*: React.AbstractComponent<\nGlobalProps\n> */\n= /* #__PURE__ */withEmotionCache(function (props\n/*: GlobalProps */\n, 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\n /*: HTMLStyleElement | null*/\n = 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\n/* import type { Interpolation, SerializedStyles } from '@emotion/utils' */\n\nfunction css()\n/*: SerializedStyles */\n{\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\n/*\ntype Keyframes = {|\n name: string,\n styles: string,\n anim: 1,\n toString: () => string\n|} & string\n*/\n\nvar keyframes = function\n /*: Keyframes */\nkeyframes() {\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\n/*\ntype ClassNameArg =\n | string\n | boolean\n | { [key: string]: boolean }\n | Array\n | null\n | void\n*/\n\nvar classnames = function\n /*: string */\nclassnames(args\n/*: Array */\n) {\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\n/*: Object */\n, css\n/*: (...args: Array) => string */\n, className\n/*: string */\n) {\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/*\ntype Props = {\n children: ({\n css: (...args: any) => string,\n cx: (...args: Array) => string,\n theme: Object\n }) => React.Node\n} */\n\n\nvar ClassNames\n/*: React.AbstractComponent*/\n= /* #__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","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 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","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\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;\\n{]+)\\s*(;|$)/g;\n// keyframes are stored on the SerializedStyles object as a linked list\n\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 }\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","function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","import memoize from '@emotion/memoize';\n\n// eslint-disable-next-line no-undef\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport * as React from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\n/* import type {\n ElementType,\n StatelessFunctionalComponent,\n AbstractComponent\n} from 'react' */\n/*\nexport type Interpolations = Array\n\nexport type StyledElementType =\n | string\n | AbstractComponent<{ ...Props, className: string }, mixed>\n\nexport type StyledOptions = {\n label?: string,\n shouldForwardProp?: string => boolean,\n target?: string\n}\n\nexport type StyledComponent = StatelessFunctionalComponent & {\n defaultProps: any,\n toString: () => string,\n withComponent: (\n nextTag: StyledElementType,\n nextOptions?: StyledOptions\n ) => StyledComponent\n}\n\nexport type PrivateStyledComponent = StyledComponent & {\n __emotion_real: StyledComponent,\n __emotion_base: any,\n __emotion_styles: any,\n __emotion_forwardProp: any\n}\n*/\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key\n/*: string */\n) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag\n/*: ElementType */\n) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag\n/*: PrivateStyledComponent */\n, options\n/*: StyledOptions | void */\n, isReal\n/*: boolean */\n) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName\n /*: string */\n ) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n/*\nexport type CreateStyledComponent = (\n ...args: Interpolations\n) => StyledComponent\n\nexport type CreateStyled = {\n (\n tag: StyledElementType,\n options?: StyledOptions\n ): (...args: Interpolations) => StyledComponent,\n [key: string]: CreateStyledComponent,\n bind: () => CreateStyled\n}\n*/\n\nvar isDevelopment = false;\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 createStyled\n/*: CreateStyled */\n= function createStyled\n/*: CreateStyled */\n(tag\n/*: any */\n, options\n/* ?: StyledOptions */\n) {\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n /* return function(): PrivateStyledComponent { */\n\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n\n styles.push(args[i], args[0][i]);\n }\n }\n\n var Styled\n /*: PrivateStyledComponent */\n = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = React.useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if (finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\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 FinalTag === 'string'\n }), /*#__PURE__*/React.createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && isDevelopment) {\n return 'NO_COMPONENT_SELECTOR';\n }\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag\n /*: StyledElementType */\n , nextOptions\n /* ?: StyledOptions */\n ) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport { createStyled as default };\n","import createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport { newStyled 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 {\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","\"use strict\";\n\nexports.__esModule = true;\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? (0, _invariant2.default)(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","import React from 'react';\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n\nvar MDXContext = /*#__PURE__*/React.createContext({});\nvar withMDXComponents = function withMDXComponents(Component) {\n return function (props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n components: allComponents\n }));\n };\n};\nvar useMDXComponents = function useMDXComponents(components) {\n var contextComponents = React.useContext(MDXContext);\n var allComponents = contextComponents;\n\n if (components) {\n allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components);\n }\n\n return allComponents;\n};\nvar MDXProvider = function MDXProvider(props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(MDXContext.Provider, {\n value: allComponents\n }, props.children);\n};\n\nvar TYPE_PROP_NAME = 'mdxType';\nvar DEFAULTS = {\n inlineCode: 'code',\n wrapper: function wrapper(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, {}, children);\n }\n};\nvar MDXCreateElement = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var propComponents = props.components,\n mdxType = props.mdxType,\n originalType = props.originalType,\n parentName = props.parentName,\n etc = _objectWithoutProperties(props, [\"components\", \"mdxType\", \"originalType\", \"parentName\"]);\n\n var components = useMDXComponents(propComponents);\n var type = mdxType;\n var Component = components[\"\".concat(parentName, \".\").concat(type)] || components[type] || DEFAULTS[type] || originalType;\n\n if (propComponents) {\n return /*#__PURE__*/React.createElement(Component, _objectSpread2(_objectSpread2({\n ref: ref\n }, etc), {}, {\n components: propComponents\n }));\n }\n\n return /*#__PURE__*/React.createElement(Component, _objectSpread2({\n ref: ref\n }, etc));\n});\nMDXCreateElement.displayName = 'MDXCreateElement';\nfunction createElement (type, props) {\n var args = arguments;\n var mdxType = props && props.mdxType;\n\n if (typeof type === 'string' || mdxType) {\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = MDXCreateElement;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.originalType = type;\n newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType;\n createElementArgArray[1] = newProps;\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 return React.createElement.apply(null, args);\n}\n\nexport { MDXContext, MDXProvider, createElement as mdx, useMDXComponents, withMDXComponents };\n","import { css } from '@theme-ui/css';\n\nvar getCSS = function getCSS(props) {\n return function (theme) {\n var styles = css(props.sx)(theme);\n var raw = typeof props.css === 'function' ? props.css(theme) : props.css;\n return [styles, raw];\n };\n};\n\nvar parseProps = function parseProps(props) {\n if (!props || !props.sx && !props.css) return props;\n var next = {};\n\n for (var key in props) {\n if (key === 'sx') continue;\n next[key] = props[key];\n }\n\n next.css = getCSS(props);\n return next;\n};\n\nexport default parseProps;\n","import { jsx as jsx$1, ThemeContext } from '@emotion/react';\nimport { createContext, useContext } from 'react';\nimport deepmerge from 'deepmerge';\nimport packageInfo from '@emotion/react/package.json';\nimport parseProps from '@theme-ui/parse-props';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar __EMOTION_VERSION__ = packageInfo.version;\nvar jsx = function jsx(type, props) {\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return jsx$1.apply(void 0, [type, parseProps(props)].concat(children));\n};\n/**\n * @internal for Babel JSX pragma\n * @see https://github.com/system-ui/theme-ui/issues/1603\n */\n\nvar createElement = jsx;\n\n/**\n * @internal\n */\nvar __themeUiDefaultContextValue = {\n __EMOTION_VERSION__: __EMOTION_VERSION__,\n theme: {}\n};\n/**\n * @internal\n */\n\nvar __ThemeUIContext = /*#__PURE__*/createContext(__themeUiDefaultContextValue);\nvar useThemeUI = function useThemeUI() {\n return useContext(__ThemeUIContext);\n};\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\nvar FORWARD_REF = canUseSymbol ? Symbol.for('react.forward_ref') : 0xeac7;\nvar deepmergeOptions = {\n isMergeableObject: function isMergeableObject(n) {\n return !!n && typeof n === 'object' && n.$$typeof !== REACT_ELEMENT && n.$$typeof !== FORWARD_REF;\n },\n arrayMerge: function arrayMerge(_leftArray, rightArray) {\n return rightArray;\n }\n};\n/**\n * Deeply merge themes\n */\n\nvar merge = function merge(a, b) {\n return deepmerge(a, b, deepmergeOptions);\n};\n\nfunction mergeAll() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return deepmerge.all(args, deepmergeOptions);\n}\n\nmerge.all = mergeAll;\n\n/**\n * @internal\n */\nvar __ThemeUIInternalBaseThemeProvider = function __ThemeUIInternalBaseThemeProvider(_ref) {\n var context = _ref.context,\n children = _ref.children;\n return jsx(ThemeContext.Provider, {\n value: context.theme\n }, jsx(__ThemeUIContext.Provider, {\n value: context,\n children: children\n }));\n};\nfunction ThemeProvider(_ref2) {\n var theme = _ref2.theme,\n children = _ref2.children;\n var outer = useThemeUI();\n\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\n var context = typeof theme === 'function' ? _extends({}, outer, {\n theme: theme(outer.theme)\n }) : merge.all({}, outer, {\n theme: theme\n });\n return jsx(__ThemeUIInternalBaseThemeProvider, {\n context: context,\n children: children\n });\n}\n\nexport { ThemeProvider, __ThemeUIContext, __ThemeUIInternalBaseThemeProvider, __themeUiDefaultContextValue, createElement, jsx, merge, useThemeUI };\n","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\n/**\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 */\n\nvar THEME_UI_DEFAULT_KEY = '__default';\n\nvar hasDefault = function hasDefault(x) {\n return typeof x === 'object' && x !== null && THEME_UI_DEFAULT_KEY in x;\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 */\n\n\nfunction get(obj, path, fallback, p, undef) {\n var pathArray = path && typeof path === 'string' ? path.split('.') : [path];\n\n for (p = 0; p < pathArray.length; p++) {\n obj = obj ? obj[pathArray[p]] : undef;\n }\n\n if (obj === undef) return fallback;\n return hasDefault(obj) ? obj[THEME_UI_DEFAULT_KEY] : obj;\n}\nvar getObjectWithVariants = function getObjectWithVariants(obj, theme) {\n if (obj && obj['variant']) {\n var result = {};\n\n for (var key in obj) {\n var x = obj[key];\n\n if (key === 'variant') {\n var val = typeof x === 'function' ? x(theme) : x;\n var variant = getObjectWithVariants(get(theme, val), theme);\n result = _extends({}, result, variant);\n } else {\n result[key] = x;\n }\n }\n\n return result;\n }\n\n return obj;\n};\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar 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};\nvar 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};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n caretColor: 'colors',\n columnRuleColor: '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 outlineColor: 'colors',\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};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n if (typeof value === 'string' && value.startsWith('-')) {\n var valueWithoutMinus = value.substring(1);\n\n var _n = get(scale, valueWithoutMinus, valueWithoutMinus);\n\n if (typeof _n === 'number') {\n return _n * -1;\n }\n\n return \"-\" + _n;\n }\n\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return Number(n) * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginBlock', 'marginBlockEnd', 'marginBlockStart', 'marginInline', 'marginInlineEnd', 'marginInlineStart', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\n\nvar responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = theme && theme.breakpoints || defaultBreakpoints;\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return n.includes('@media') ? n : \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var k in styles) {\n var key = k;\n var value = styles[key];\n\n if (typeof value === 'function') {\n value = value(theme || {});\n }\n\n if (value === false || value == null) {\n continue;\n }\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\n\nvar css = function css(args) {\n if (args === void 0) {\n args = {};\n }\n\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, 'theme' in props ? props.theme : props); // 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\n var obj = getObjectWithVariants(typeof args === 'function' ? args(theme) : args, theme);\n var styles = responsive(obj)(theme);\n var result = {};\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (val && typeof val === 'object') {\n if (hasDefault(val)) {\n result[key] = val[THEME_UI_DEFAULT_KEY];\n continue;\n } // On type level, val can also be an array here,\n // but we transform all arrays in `responsive` function.\n\n\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = key in aliases ? aliases[key] : key;\n var scaleName = prop in scales ? scales[prop] : undefined;\n var scale = scaleName ? theme == null ? void 0 : theme[scaleName] : get(theme, prop, {});\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (prop in multiples) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\n\nexport { THEME_UI_DEFAULT_KEY, css, defaultBreakpoints, get, getObjectWithVariants, multiples, scales };\n","import { jsx } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { useEffect, createElement } from 'react';\nimport styled from '@emotion/styled';\nimport { useMDXComponents, MDXProvider as MDXProvider$1 } from '@mdx-js/react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"theme\"];\n// mdx components\nvar 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', // mdx\n'inlineCode', 'thematicBreak', // other\n'div', // theme-ui\n'root'];\nvar aliases = {\n inlineCode: 'code',\n thematicBreak: 'hr',\n root: 'div'\n};\n\nvar isAlias = function isAlias(x) {\n return x in aliases;\n};\n\nvar alias = function alias(n) {\n return isAlias(n) ? aliases[n] : n;\n};\n\nvar propOverrides = {\n th: {\n align: 'textAlign'\n },\n td: {\n align: 'textAlign'\n }\n};\nvar themed = function themed(key) {\n return function (_ref) {\n var theme = _ref.theme,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var propsStyle = propOverrides[key];\n var extraStyles = propsStyle ? Object.keys(rest).filter(function (prop) {\n return propsStyle[prop] !== undefined;\n }).reduce(function (acc, prop) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[propsStyle[prop]] = rest[prop], _extends2));\n }, {}) : undefined;\n return css(_extends({}, get(theme, \"styles.\" + key), extraStyles))(theme);\n };\n}; // opt out of typechecking whenever `as` prop is used\n\nvar Themed = styled('div')(themed('div'));\n/**\n * @deprecated since 0.6.0.\n *\n * `Styled` was renamed to `Themed` to avoid confusion with styled components.\n */\n\nvar Styled = styled('div')(themed('div'));\n\nvar warnStyled = function warnStyled(tag) {\n return function (props) {\n useEffect(function () {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[theme-ui] The Styled component from \"@theme-ui/mdx\" is deprecated and will be removed in a future version. It has been renamed to Themed with the same API.');\n }\n }, []);\n return /*#__PURE__*/createElement(alias(tag), props);\n };\n};\n\nvar components = {};\ntags.forEach(function (tag) {\n // fixme?\n components[tag] = styled(alias(tag))(themed(tag));\n Themed[tag] = components[tag];\n Styled[tag] = styled(warnStyled(tag))(themed(tag));\n});\n\nvar createComponents = function createComponents(comps) {\n var next = _extends({}, components);\n\n var componentKeys = Object.keys(comps);\n componentKeys.forEach(function (key) {\n next[key] = styled(comps[key])(themed(key));\n });\n return next;\n};\n\nvar MDXProvider = function MDXProvider(_ref2) {\n var components = _ref2.components,\n children = _ref2.children;\n var outer = useMDXComponents();\n return jsx(MDXProvider$1, {\n components: createComponents(_extends({}, outer, components)),\n children: children\n });\n};\n\nexport { MDXProvider, Styled, Themed, components, themed };\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;\n\n// TODO(v5): Remove legacy setting and default to \"always\"\nconst applyTrailingSlashOption = (input, option = `legacy`) => {\n const hasHtmlSuffix = input.endsWith(`.html`);\n const hasXmlSuffix = input.endsWith(`.xml`);\n const hasPdfSuffix = input.endsWith(`.pdf`);\n if (input === `/`) return input;\n\n if (hasHtmlSuffix || hasXmlSuffix || hasPdfSuffix) {\n option = `never`;\n }\n\n if (option === `always`) {\n return input.endsWith(`/`) ? input : `${input}/`;\n }\n\n if (option === `never`) {\n return input.endsWith(`/`) ? input.slice(0, -1) : input;\n }\n\n return input;\n};\n\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\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); }\n\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; }\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\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\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\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\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\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\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\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\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\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\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\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\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\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\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\n\nvar _gatsbyScript = require(\"gatsby-script\");\n\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n\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\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname)); // Clear scripts after we've used them to avoid leaky behavior\n\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\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.\n\n\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\n\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;\n\nvar _integration = require(\"@builder.io/partytown/integration\");\n\nvar _getForwards = require(\"./get-forwards\");\n\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\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n\n if (existingSnippet) {\n existingSnippet.remove();\n }\n\n if (existingSandbox) {\n existingSandbox.remove();\n }\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-lekoarts-gatsby-theme-cara-templates-cara-tsx\": () => import(\"./../../../src/@lekoarts/gatsby-theme-cara/templates/cara.tsx\" /* webpackChunkName: \"component---src-lekoarts-gatsby-theme-cara-templates-cara-tsx\" */),\n \"component---src-pages-404-jsx\": () => import(\"./../../../src/pages/404.jsx\" /* webpackChunkName: \"component---src-pages-404-jsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-mdx/gatsby-browser.js'),\n options: {\"plugins\":[],\"lessBabel\":true,\"extensions\":[\".mdx\"],\"defaultLayouts\":{},\"gatsbyRemarkPlugins\":[],\"remarkPlugins\":[],\"rehypePlugins\":[],\"mediaTypes\":[\"text/markdown\",\"text/x-markdown\"],\"root\":\"/codebuild/output/src2762398445/src/personal-website\",\"commonmark\":false,\"JSFrontmatterEngine\":false,\"engines\":{}},\n },{\n plugin: require('../node_modules/gatsby-plugin-theme-ui/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Jimmy Longley\",\"short_name\":\"Cara\",\"description\":\"I'm Jimmy, a software developer based in Seattle, WA with a passion for books, travel, learning, and all things web.\",\"start_url\":\"/\",\"background_color\":\"#141821\",\"display\":\"standalone\",\"icons\":[],\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":null},\n },{\n plugin: require('../node_modules/gatsby-plugin-gatsby-cloud/gatsby-browser.js'),\n options: {\"plugins\":[]},\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","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/lib/utils\"\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","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nconst StaticQueryContext = React.createContext({})\nlet StaticQueryServerContext = null\nif (React.createServerContext) {\n StaticQueryServerContext = React.createServerContext(`StaticQuery`, {})\n}\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\n// TODO(v5): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\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 let context\n\n // Can we get a better check here?\n if (\n StaticQueryServerContext &&\n Object.keys(StaticQueryServerContext._currentValue).length\n ) {\n context = React.useContext(StaticQueryServerContext)\n } else {\n context = React.useContext(StaticQueryContext)\n }\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 {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\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 default as Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport {\n StaticQuery,\n StaticQueryContext,\n useStaticQuery,\n StaticQueryServerContext,\n} from \"./static-query\"\n\nexport * from \"gatsby-script\"\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nfunction _toConsumableArray(r) {\n return arrayWithoutHoles(r) || iterableToArray(r) || unsupportedIterableToArray(r) || nonIterableSpread();\n}\nexport { _toConsumableArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return arrayLikeToArray(r);\n}\nexport { _arrayWithoutHoles as default };","function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nexport { _iterableToArray as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableSpread as default };","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 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\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 }\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.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 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 {\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 let inFlightPromise\n if (global.hasPartialHydration) {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n this.loadPartialHydrationJson(pagePath),\n ]).then(([appData, { payload: pageData }, result]) => {\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n const finalResult = {}\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 const componentChunkPromise = this.loadComponent(\n pageData.componentChunkName,\n `head`\n ).then(head => {\n finalResult.createdAt = new Date()\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appData\n ? appData.webpackCompilationHash\n : ``,\n })\n\n const pageResources = toPageResources(pageData, null, head)\n\n if (result.payload && typeof result.payload === `string`) {\n pageResources.partialHydration = result.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(result.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 }\n\n // undefined if final result is an error\n return pageResources\n })\n\n // Necessary for head component\n const staticQueryBatchPromise = Promise.all(\n (pageData.staticQueryHashes || []).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([componentChunkPromise, staticQueryBatchPromise])\n .then(([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = {\n ...pageResources,\n staticQueryResults: staticQueryResults,\n }\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 } else {\n inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\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 const componentChunkPromise = Promise.all([\n this.loadComponent(componentChunkName),\n this.loadComponent(componentChunkName, `head`),\n ]).then(([component, head]) => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component, head)\n }\n // undefined if final result is an error\n return pageResources\n })\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.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([componentChunkPromise, 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 // 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 // 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","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]\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 pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid\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.\n * @param {string} tagName\n */\nexport function warnForInvalidTags(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}`\n\n warnOnce(warning)\n }\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","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 { VALID_NODE_NAMES } from \"./constants\"\nimport {\n headExportValidator,\n filterHeadProps,\n warnForInvalidTags,\n diffNodes,\n} from \"./utils\"\n\nconst hiddenRoot = document.createElement(`div`)\n\nconst removePrevHeadElements = () => {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nconst onHeadRendered = () => {\n const validHeadNodes = []\n\n const seenIds = new Map()\n for (const node of hiddenRoot.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!VALID_NODE_NAMES.includes(nodeName)) {\n warnForInvalidTags(nodeName)\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // Create an element for scripts to make script work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n const script = document.createElement(`script`)\n for (const attr of clonedNode.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = clonedNode.innerHTML\n clonedNode = script\n }\n\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[indexOfPreviouslyInsertedNode].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n }\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 // We set up observer to be able to regenerate after react-refresh\n // updates our hidden element.\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 Head = pageComponent.Head\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 \n \n \n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\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 { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\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_EXPERIMENTAL_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(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.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 \"gatsby\"\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} 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 class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n if (pageResources.partialHydration) {\n return (\n \n {children}\n \n )\n } else {\n const staticQueryResults = getStaticQueryResults()\n return (\n \n \n {children}\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","/* global HAS_REACT_18 */\n\nconst map = new WeakMap()\n\n/**\n * Since react 18, render and hydrate moved to react-dom/client\n * returns correct hydrate and render function based on installed react-dom version\n */\n\nexport function reactDOMUtils() {\n let render\n let hydrate\n\n if (HAS_REACT_18) {\n const reactDomClient = require(`react-dom/client`)\n\n 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 hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n } else {\n const reactDomClient = require(`react-dom`)\n render = reactDomClient.render\n hydrate = reactDomClient.hydrate\n }\n\n return { render, hydrate }\n}\n","exports.polyfill = Component => Component\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","/**\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","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\"; // when we don't have localisation in our manifest, we tree shake everything away\n\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\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _gatsby = require(\"gatsby\");\n\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\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n\n return pathname.startsWith(startUrl);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\n\nexports.default = _default;","import React, { useState, useEffect, useMemo, useLayoutEffect } from 'react';\nimport { useThemeUI, jsx, __ThemeUIInternalBaseThemeProvider } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { Global } from '@emotion/react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar toVarName = function toVarName(key) {\n return \"--theme-ui-\" + key.replace('-__default', '');\n};\n\nvar toVarValue = function toVarValue(key) {\n return \"var(\" + toVarName(key) + \")\";\n};\n\nvar join = function join() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(Boolean).join('-');\n};\n\nvar reservedKeys = new Set(['useCustomProperties', 'initialColorModeName', 'printColorModeName', 'initialColorMode', 'useLocalStorage', 'config']); // convert theme values to custom properties\n\nvar toCustomProperties = function toCustomProperties(obj, parent) {\n var next = Array.isArray(obj) ? [] : {};\n\n for (var key in obj) {\n var value = obj[key];\n var name = join(parent, key);\n\n if (value && typeof value === 'object') {\n next[key] = toCustomProperties(value, name);\n continue;\n }\n\n if (reservedKeys.has(key)) {\n next[key] = value;\n continue;\n }\n\n next[key] = toVarValue(name);\n }\n\n return next;\n};\n/**\n * @internal\n * Recursively transforms an object into CSS variables excluding \"modes\" key.\n */\n\nvar __objectToVars = function __objectToVars(parent, obj) {\n var vars = {};\n\n for (var key in obj) {\n if (key === 'modes') continue;\n var name = join(parent, key);\n var value = obj[key];\n\n if (value && typeof value === 'object') {\n vars = _extends({}, vars, __objectToVars(name, value));\n } else {\n vars[toVarName(name)] = value;\n }\n }\n\n return vars;\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 */\n\nvar __createColorStyles = function __createColorStyles(theme) {\n if (theme === void 0) {\n theme = {};\n }\n\n var _ref = theme.config || theme || {},\n useCustomProperties = _ref.useCustomProperties,\n initialColorModeName = _ref.initialColorModeName,\n printColorModeName = _ref.printColorModeName,\n useRootStyles = _ref.useRootStyles;\n\n var colors = theme.rawColors || theme.colors;\n if (!colors || useRootStyles === false) return {};\n\n if (useCustomProperties === false) {\n return css({\n color: 'text',\n bg: 'background'\n })(theme);\n }\n\n var modes = colors.modes || {};\n\n var styles = __createColorProperties(colors, modes);\n\n if (printColorModeName) {\n var mode = printColorModeName === 'initial' || printColorModeName === initialColorModeName ? colors : modes[printColorModeName];\n styles['@media print'] = __objectToVars('colors', mode);\n }\n\n var colorToVarValue = function colorToVarValue(color) {\n return toVarValue(\"colors-\" + color);\n };\n\n return css(_extends({}, styles, {\n color: colorToVarValue('text'),\n bg: colorToVarValue('background')\n }))(theme);\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 */\n\nfunction __createColorProperties(colors, modes) {\n var styles = __objectToVars('colors', colors);\n\n Object.keys(modes).forEach(function (mode) {\n var className = \".theme-ui-\" + mode;\n var key = \"&\" + className + \", \" + className + \" &\";\n styles[key] = __objectToVars('colors', modes[mode]);\n });\n return styles;\n}\n\nvar STORAGE_KEY = 'theme-ui-color-mode';\nvar storage = {\n get: function 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: function 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};\n\nvar getPreferredColorScheme = function getPreferredColorScheme() {\n if (typeof window !== 'undefined' && window.matchMedia) {\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n\n if (window.matchMedia('(prefers-color-scheme: light)').matches) {\n return 'light';\n }\n }\n\n return null;\n};\n\nvar useClientsideEffect = typeof window === 'undefined' ? function () {} : useLayoutEffect;\n\nvar TopLevelColorModeProvider = function TopLevelColorModeProvider(_ref) {\n var outerCtx = _ref.outerCtx,\n children = _ref.children;\n var outerTheme = outerCtx.theme || {};\n\n var _ref2 = outerTheme.config || outerTheme,\n initialColorModeName = _ref2.initialColorModeName,\n useColorSchemeMediaQuery = _ref2.useColorSchemeMediaQuery,\n useLocalStorage = _ref2.useLocalStorage;\n\n var _useState = useState(function () {\n var preferredMode = useColorSchemeMediaQuery !== false && getPreferredColorScheme();\n return preferredMode || initialColorModeName;\n }),\n colorMode = _useState[0],\n setColorMode = _useState[1]; // on first render, we read the color mode from localStorage and\n // clear the class on document element body\n\n\n useClientsideEffect(function () {\n var stored = useLocalStorage !== false && storage.get();\n\n if (typeof document !== 'undefined') {\n document.documentElement.classList.remove('theme-ui-' + stored);\n }\n\n if (stored && stored !== colorMode) {\n colorMode = stored;\n setColorMode(stored);\n }\n }, []); // when mode changes, we save it to localStorage\n\n useEffect(function () {\n if (colorMode && useLocalStorage !== false) {\n storage.set(colorMode);\n }\n }, [colorMode, useLocalStorage]);\n\n if (process.env.NODE_ENV !== 'production') {\n var _outerTheme$colors;\n\n if ((_outerTheme$colors = outerTheme.colors) != null && _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 }\n\n var newTheme = useThemeWithAppliedColorMode({\n colorMode: colorMode,\n outerTheme: outerTheme\n });\n\n var newCtx = _extends({}, outerCtx, {\n theme: newTheme,\n colorMode: colorMode,\n setColorMode: setColorMode\n });\n\n return /*#__PURE__*/React.createElement(__ThemeUIInternalBaseThemeProvider, {\n context: newCtx\n }, /*#__PURE__*/React.createElement(GlobalColorStyles, {\n theme: newTheme\n }), children);\n};\n\nfunction useColorMode() {\n var _useThemeUI = useThemeUI(),\n colorMode = _useThemeUI.colorMode,\n setColorMode = _useThemeUI.setColorMode;\n\n if (typeof setColorMode !== 'function') {\n throw new Error(\"[useColorMode] requires the ColorModeProvider component\");\n } // We're allowing the user to specify a narrower type for its color mode name.\n\n\n return [colorMode, setColorMode];\n}\n\nvar omitModes = function omitModes(colors) {\n var res = _extends({}, colors);\n\n delete res.modes;\n return res;\n};\n\nfunction copyRawColors(colors, outerThemeRawColors) {\n for (var _i = 0, _Object$entries = Object.entries(colors); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (typeof value === 'string' && !value.startsWith('var(')) {\n outerThemeRawColors[key] = value;\n } else if (typeof value === 'object') {\n var newValue = _extends({}, outerThemeRawColors[key]);\n\n copyRawColors(value, newValue);\n outerThemeRawColors[key] = newValue;\n }\n }\n}\n\nfunction useThemeWithAppliedColorMode(_ref3) {\n var outerTheme = _ref3.outerTheme,\n colorMode = _ref3.colorMode;\n var theme = useMemo(function () {\n var res = _extends({}, outerTheme);\n\n var modes = get(res, 'colors.modes', {});\n var currentColorMode = get(modes, colorMode, {});\n\n if (colorMode) {\n res.colors = _extends({}, res.colors, currentColorMode);\n }\n\n var _ref4 = outerTheme.config || outerTheme,\n useCustomProperties = _ref4.useCustomProperties,\n _ref4$initialColorMod = _ref4.initialColorModeName,\n initialColorModeName = _ref4$initialColorMod === void 0 ? '__default' : _ref4$initialColorMod;\n\n var outerThemeRawColors = outerTheme.rawColors || outerTheme.colors || {};\n\n if (useCustomProperties !== false) {\n var alreadyHasRawColors = res.rawColors != null;\n var colors = res.colors || {};\n\n if (alreadyHasRawColors) {\n outerThemeRawColors = _extends({}, outerThemeRawColors);\n copyRawColors(colors, outerThemeRawColors);\n\n if (outerThemeRawColors.modes) {\n outerThemeRawColors.modes[initialColorModeName] = omitModes(outerThemeRawColors);\n }\n\n res.rawColors = outerThemeRawColors;\n } else {\n if (!('modes' in outerThemeRawColors)) {\n res.rawColors = colors;\n } else {\n var _extends2;\n\n var _modes = _extends((_extends2 = {}, _extends2[initialColorModeName] = omitModes(outerThemeRawColors), _extends2), outerThemeRawColors.modes);\n\n res.rawColors = _extends({}, colors, {\n modes: _modes\n });\n /* modes doesn't match index signature by design */\n }\n }\n\n res.colors = toCustomProperties(omitModes(outerThemeRawColors), 'colors');\n }\n\n return res;\n }, [colorMode, outerTheme]);\n return theme;\n}\n\nfunction GlobalColorStyles(_ref5) {\n var theme = _ref5.theme;\n return jsx(Global, {\n styles: function styles() {\n return {\n html: __createColorStyles(theme)\n };\n }\n });\n}\n\nfunction NestedColorModeProvider(_ref6) {\n var _newTheme$config2;\n\n var outerCtx = _ref6.outerCtx,\n children = _ref6.children;\n var newTheme = useThemeWithAppliedColorMode({\n outerTheme: outerCtx.theme,\n colorMode: outerCtx.colorMode\n }); // Nested theme providers need to be rerendered after hydration for the correct\n // color mode to apply.\n\n var _useState2 = useState( // 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 function () {\n var _newTheme$config;\n\n return ((_newTheme$config = newTheme.config) == null ? void 0 : _newTheme$config.useLocalStorage) !== false;\n }),\n needsRerender = _useState2[0],\n setNeedsRerender = _useState2[1];\n\n useClientsideEffect(function () {\n return void setNeedsRerender(false);\n }, []);\n var themeColors = newTheme.rawColors || newTheme.colors;\n var useCustomProperties = (_newTheme$config2 = newTheme.config) == null ? void 0 : _newTheme$config2.useCustomProperties;\n var colorVars = useMemo(function () {\n if (useCustomProperties === false) {\n return {};\n }\n\n var colors = themeColors || {};\n return css(__createColorProperties(colors, colors.modes || {}))(newTheme);\n }, [newTheme, themeColors, useCustomProperties]);\n return /*#__PURE__*/React.createElement(__ThemeUIInternalBaseThemeProvider, {\n context: _extends({}, outerCtx, {\n theme: newTheme\n })\n }, jsx('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: children\n }));\n}\n\nvar ColorModeProvider = function ColorModeProvider(_ref7) {\n var children = _ref7.children;\n var outerCtx = useThemeUI();\n var isTopLevelColorModeProvider = typeof outerCtx.setColorMode !== 'function';\n return isTopLevelColorModeProvider ? /*#__PURE__*/React.createElement(TopLevelColorModeProvider, {\n outerCtx: outerCtx\n }, children) : /*#__PURE__*/React.createElement(NestedColorModeProvider, {\n outerCtx: outerCtx\n }, children);\n};\nvar 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) {} })();\";\nvar InitializeColorMode = function InitializeColorMode() {\n return jsx('script', {\n key: 'theme-ui-no-flash',\n dangerouslySetInnerHTML: {\n __html: noflash\n }\n });\n};\n\nexport { ColorModeProvider, InitializeColorMode, useColorMode };\n","import React from 'react';\nimport { useThemeUI, ThemeProvider as ThemeProvider$1, jsx, __themeUiDefaultContextValue } from '@theme-ui/core';\nimport { css } from '@theme-ui/css';\nimport { ColorModeProvider } from '@theme-ui/color-modes';\nimport { MDXProvider } from '@theme-ui/mdx';\nimport { Global } from '@emotion/react';\n\nvar RootStyles = function RootStyles() {\n return jsx(Global, {\n styles: function styles(emotionTheme) {\n var _theme$config;\n\n var theme = emotionTheme;\n\n var _ref = theme.config || theme,\n useRootStyles = _ref.useRootStyles;\n\n if (useRootStyles === false || theme.styles && !theme.styles.root) {\n return null;\n }\n\n var boxSizing = ((_theme$config = theme.config) == null ? void 0 : _theme$config.useBorderBox) === false ? undefined : 'border-box';\n return css({\n '*': {\n boxSizing: boxSizing\n },\n html: {\n variant: 'styles.root'\n },\n body: {\n margin: 0\n }\n })(theme);\n }\n });\n};\n\nvar ThemeProvider = function ThemeProvider(_ref2) {\n var theme = _ref2.theme,\n components = _ref2.components,\n children = _ref2.children;\n var outer = useThemeUI();\n var isTopLevel = outer === __themeUiDefaultContextValue;\n return /*#__PURE__*/React.createElement(ThemeProvider$1, {\n theme: theme\n }, /*#__PURE__*/React.createElement(ColorModeProvider, null, isTopLevel && /*#__PURE__*/React.createElement(RootStyles, null), /*#__PURE__*/React.createElement(MDXProvider, {\n components: components\n }, children)));\n};\n\nexport { ThemeProvider };\n","import { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar heading = {\n color: 'text',\n fontFamily: 'heading',\n lineHeight: 'heading',\n fontWeight: 'heading'\n};\nvar base = makeTheme({\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fonts: {\n body: 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif',\n heading: 'inherit',\n monospace: 'Menlo, monospace'\n },\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 96],\n fontWeights: {\n body: 400,\n heading: 700,\n bold: 700\n },\n lineHeights: {\n body: 1.5,\n heading: 1.125\n },\n colors: {\n text: '#000',\n background: '#fff',\n primary: '#07c',\n secondary: '#30c',\n muted: '#f6f6f6'\n },\n styles: {\n root: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body'\n },\n h1: _extends({}, heading, {\n fontSize: 5\n }),\n h2: _extends({}, heading, {\n fontSize: 4\n }),\n h3: _extends({}, heading, {\n fontSize: 3\n }),\n h4: _extends({}, heading, {\n fontSize: 2\n }),\n h5: _extends({}, heading, {\n fontSize: 1\n }),\n h6: _extends({}, heading, {\n fontSize: 0\n }),\n p: {\n color: 'text',\n fontFamily: 'body',\n fontWeight: 'body',\n lineHeight: 'body'\n },\n a: {\n color: 'primary'\n },\n pre: {\n fontFamily: 'monospace',\n overflowX: 'auto',\n code: {\n color: 'inherit'\n }\n },\n code: {\n fontFamily: 'monospace',\n fontSize: 'inherit'\n },\n table: {\n width: '100%',\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n th: {\n textAlign: 'left',\n borderBottomStyle: 'solid'\n },\n td: {\n textAlign: 'left',\n borderBottomStyle: 'solid'\n },\n img: {\n maxWidth: '100%'\n }\n }\n});\n\nexport default base;\nexport { base };\n","import base from '@theme-ui/preset-base';\nimport { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar funk = makeTheme(_extends({}, base, {\n fonts: {\n body: 'Poppins, sans-serif',\n heading: 'Poppins, sans-serif',\n monospace: 'Menlo, monospace'\n },\n lineHeights: {\n body: 1.625,\n heading: 1.25\n },\n fontWeights: {\n body: 400,\n heading: 900,\n bold: 700\n },\n colors: _extends({}, base.colors, {\n primary: '#609',\n secondary: '#306'\n }),\n styles: _extends({}, base.styles)\n}));\n\nexport default funk;\nexport { funk };\n","import base from '@theme-ui/preset-base';\nimport { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar future = makeTheme(_extends({}, base, {\n colors: {\n text: '#000',\n background: '#fff',\n primary: '#11e',\n secondary: '#c0c',\n highlight: '#e0e',\n muted: '#f6f6ff',\n modes: {\n dark: {\n text: '#fff',\n background: '#000',\n primary: '#0fc',\n secondary: '#0cf',\n highlight: '#f0c',\n muted: '#011'\n }\n }\n },\n fonts: {\n body: '\"Avenir Next\", system-ui, sans-serif',\n heading: 'inherit',\n monospace: 'Menlo, monospace'\n },\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700\n },\n lineHeights: {\n body: 1.75,\n heading: 1.25\n }\n}));\n\nexport default future;\nexport { future };\n","import base from '@theme-ui/preset-base';\nimport { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar roboto = makeTheme(_extends({}, base, {\n colors: {\n text: '#202124',\n background: '#fff',\n primary: '#1a73e8',\n secondary: '#9c27b0',\n muted: '#f1f3f4'\n },\n fonts: {\n body: 'Roboto, system-ui, sans-serif',\n heading: 'Roboto, system-ui, sans-serif',\n monospace: '\"Roboto Mono\", monospace'\n },\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 600\n }\n}));\n\nexport default roboto;\nexport { roboto };\n","import { makeStyles, makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar baseColors = {\n white: '#fff',\n black: '#000',\n gray: ['#fff', // 0 index\n '#f8f9fa', '#e9ecef', '#dee2e6', '#ced4da', '#adb5bd', '#6c757d', '#495057', '#343a40', '#212529'],\n blue: '#007bff',\n indigo: '#6610f2',\n purple: '#6f42c1',\n pink: '#e83e8c',\n red: '#dc3545',\n orange: '#fd7e14',\n yellow: '#ffc107',\n green: '#28a745',\n teal: '#20c997',\n cyan: '#17a2b8' // gray: gray[6],\n\n};\nvar colors = _extends({}, baseColors, {\n grayDark: baseColors.gray[8],\n text: baseColors.gray[9],\n background: baseColors.white,\n primary: baseColors.blue,\n secondary: baseColors.gray[6],\n muted: baseColors.gray[3],\n success: baseColors.green,\n info: baseColors.cyan,\n warning: baseColors.yellow,\n danger: baseColors.red,\n light: baseColors.gray[1],\n dark: baseColors.gray[8],\n textMuted: baseColors.gray[6]\n});\nvar space = [0, 0.25, 0.5, 1, 1.5, 3].map(function (n) {\n return n + 'rem';\n});\nvar breakpoints = ['576px', '768px', '992px', '1200px'];\nvar fonts = {\n body: '-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", Arial, \"Noto Sans\", sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\", \"Noto Color Emoji\"',\n heading: 'inherit',\n monospace: 'SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace',\n // NOTE(@mxstbr): TypeScript does not let us do the self-references below if we don't provide \"default\" values\n sans: ''\n};\nfonts.sans = fonts.body;\nvar fontWeights = {\n body: 400,\n heading: 500,\n bold: 700,\n light: 300,\n // NOTE(@mxstbr): TypeScript does not let us do the self-references below if we don't provide \"default\" values\n normal: 0,\n display: 0\n};\nfontWeights.normal = fontWeights.body;\nfontWeights.display = fontWeights.light;\nvar fontSizes = ['0.75rem', // '80%',\n'0.875rem', '1rem', '1.25rem', '1.5rem', '1.75rem', '2rem', '2.5rem', '3.5rem', '4.5rem', '5.5rem', '6rem'];\nfontSizes.lead = fontSizes[3];\nvar lineHeights = {\n body: 1.5,\n heading: 1.2\n};\nvar sizes = {\n // container widths\n sm: 540,\n md: 720,\n lg: 960,\n xl: 1140\n};\nvar radii = {\n default: '0.25rem',\n sm: '0.2rem',\n lg: '0.3rem',\n pill: '50rem'\n};\nvar shadows = {\n default: '0 .5rem 1rem rgba(0, 0, 0, .15)',\n sm: '0 .125rem .25rem rgba(0, 0, 0, .075)',\n lg: '0 1rem 3rem rgba(0, 0, 0, .175)'\n};\nvar heading = {\n fontFamily: 'heading',\n fontWeight: 'heading',\n lineHeight: 'heading',\n mt: 0,\n mb: 2\n};\nvar display = {\n fontWeight: 'display',\n lineHeight: 'heading'\n}; // variants\n\nvar text = {\n heading: heading,\n display: display\n};\nvar styles = makeStyles({\n root: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body'\n },\n a: {\n color: 'primary',\n textDecoration: 'none',\n ':hover': {\n textDecoration: 'underline'\n }\n },\n p: {\n mb: 3,\n lineHeight: 'body'\n },\n h1: _extends({}, heading, {\n fontSize: 7\n }),\n h2: _extends({}, heading, {\n fontSize: 6\n }),\n h3: _extends({}, heading, {\n fontSize: 5\n }),\n h4: _extends({}, heading, {\n fontSize: 4\n }),\n h5: _extends({}, heading, {\n fontSize: 3\n }),\n h6: _extends({}, heading, {\n fontSize: 2\n }),\n blockquote: {\n fontSize: 3,\n mb: 3\n },\n table: {\n // todo\n width: '100%',\n marginBottom: 3,\n color: 'gray.9',\n borderCollapse: 'collapse'\n },\n th: {\n verticalAlign: 'bottom',\n borderTopWidth: 2,\n borderTopStyle: 'solid',\n borderTopColor: 'gray.3',\n borderBottomWidth: 2,\n borderBottomStyle: 'solid',\n borderBottomColor: 'gray.3',\n padding: '.75rem',\n textAlign: 'inherit'\n },\n td: {\n borderBottomWidth: 2,\n borderBottomStyle: 'solid',\n borderBottomColor: 'gray.3',\n verticalAlign: 'top',\n padding: '.75rem'\n },\n inlineCode: {\n color: 'pink'\n },\n img: {\n maxWidth: '100%',\n height: 'auto'\n }\n});\nvar bootstrap = makeTheme({\n breakpoints: breakpoints,\n colors: colors,\n space: space,\n fonts: fonts,\n fontSizes: fontSizes,\n fontWeights: fontWeights,\n lineHeights: lineHeights,\n sizes: sizes,\n shadows: shadows,\n radii: radii,\n text: text,\n styles: styles\n});\n\nexport default bootstrap;\nexport { baseColors, bootstrap, breakpoints, colors, fontSizes, fontWeights, fonts, lineHeights, radii, shadows, sizes, space, styles };\n","import { makeStyles, makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar baseColors = {\n black: 'hsl(0, 0%, 4%)',\n blackBis: 'hsl(0, 0%, 7%)',\n blackTer: 'hsl(0, 0%, 14%)',\n // (sic)\n greyDarker: 'hsl(0, 0%, 21%)',\n greyDark: 'hsl(0, 0%, 29%)',\n grey: 'hsl(0, 0%, 48%)',\n greyLight: 'hsl(0, 0%, 71%)',\n greyLighter: 'hsl(0, 0%, 86%)',\n whiteTer: 'hsl(0, 0%, 96%)',\n whiteBis: 'hsl(0, 0%, 98%)',\n white: 'hsl(0, 0%, 100%)',\n orange: 'hsl(14, 100%, 53%)',\n yellow: 'hsl(48, 100%, 67%)',\n green: 'hsl(141, 71%, 48%)',\n turquoise: 'hsl(171, 100%, 41%)',\n cyan: 'hsl(204, 86%, 53%)',\n blue: 'hsl(217, 71%, 53%)',\n purple: 'hsl(271, 100%, 71%)',\n red: 'hsl(348, 100%, 61%)'\n};\nvar colors = _extends({}, baseColors, {\n text: baseColors.greyDark,\n background: baseColors.white,\n primary: baseColors.blue,\n muted: baseColors.whiteTer,\n // bulma-specific\n info: baseColors.cyan,\n success: baseColors.green,\n warning: baseColors.yellow,\n danger: baseColors.red,\n light: baseColors.whiteTer,\n dark: baseColors.greyDarker,\n modes: {\n invert: {}\n }\n});\nvar fonts = {\n body: 'BlinkMacSystemFont, -apple-system, \"Segoe UI\", \"Roboto\", \"Oxygen\", \"Ubuntu\", \"Cantarell\", \"Fira Sans\", \"Droid Sans\", \"Helvetica Neue\", \"Helvetica\", \"Arial\", sans-serif',\n heading: 'inherit',\n monospace: 'monospace'\n};\nvar fontSizes = ['0.75rem', '0.875rem', // tweener\n'1rem', '1.25rem', '1.5rem', '1.75rem', '2rem', '2.5rem', '3rem'];\nvar fontWeights = {\n body: 400,\n heading: 700,\n bold: 700,\n light: 300,\n medium: 500,\n semibold: 500\n};\nvar lineHeights = {\n body: 1.5,\n heading: 1.125\n}; // guesstimate\n\nvar space = [0, 0.5, 1, 1.5, 2, 2.5, 3].map(function (n) {\n return n + 'rem';\n});\nvar heading = {\n fontFamily: 'heading',\n fontWeight: 'heading',\n lineHeight: 'heading',\n m: 0,\n mb: 1\n}; // needs works\n\nvar styles = makeStyles({\n root: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body'\n },\n a: {\n color: 'primary',\n textDecoration: 'none',\n ':hover': {\n textDecoration: 'underline'\n }\n },\n h1: _extends({}, heading, {\n fontSize: 6,\n mt: 2\n }),\n h2: _extends({}, heading, {\n fontSize: 5,\n mt: 2\n }),\n h3: _extends({}, heading, {\n fontSize: 4,\n mt: 3\n }),\n h4: _extends({}, heading, {\n fontSize: 3\n }),\n h5: _extends({}, heading, {\n fontSize: 2\n }),\n h6: _extends({}, heading, {\n fontSize: 1,\n mb: 2\n }),\n code: {},\n pre: {},\n hr: {\n bg: 'muted',\n border: 0,\n height: '1px',\n m: 3\n }\n});\nvar bulma = makeTheme({\n colors: colors,\n fonts: fonts,\n fontSizes: fontSizes,\n fontWeights: fontWeights,\n space: space,\n styles: styles\n});\n\nexport default bulma;\nexport { baseColors, bulma, colors, fontSizes, fontWeights, fonts, lineHeights, space, styles };\n","import base from '@theme-ui/preset-base';\nimport { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar text = 'system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif';\nvar polaris = makeTheme(_extends({}, base, {\n colors: {\n text: '#454f5b',\n background: '#fff',\n primary: '#5c6ac4',\n secondary: '#006fbb',\n highlight: '#47c1bf',\n muted: '#e6e6e6',\n gray: '#dfe3e8',\n accent: '#f49342',\n darken: '#00044c',\n modes: {\n dark: {\n text: '#3e4155',\n background: '#000639',\n primary: '#9c6ade',\n secondary: '#b4e1fa',\n highlight: '#b7ecec',\n muted: '#e6e6e6'\n }\n }\n },\n fonts: {\n body: text,\n heading: text,\n monospace: 'Menlo, monospace'\n },\n fontWeights: {\n body: 400,\n heading: 600,\n bold: 700\n },\n lineHeights: {\n body: 1.75,\n heading: 1.25\n }\n}));\n\nexport default polaris;\nexport { polaris };\n","import { makeColorsScale, makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar borderWidths = {\n px: '1px',\n '0': '0',\n '2': '2px',\n '4': '4px',\n '8': '8px'\n};\nvar breakpoints = ['640px', '768px', '1024px', '1280px'];\nvar baseColors = makeColorsScale({\n transparent: 'transparent',\n black: '#000',\n white: '#fff',\n gray: ['', '#f7fafc', '#edf2f7', '#e2e8f0', '#cbd5e0', '#a0aec0', '#718096', '#4a5568', '#2d3748', '#1a202c'],\n red: ['', '#fff5f5', '#fed7d7', '#feb2b2', '#fc8181', '#f56565', '#e53e3e', '#c53030', '#9b2c2c', '#742a2a'],\n orange: ['', '#fffaf0', '#feebc8', '#fbd38d', '#f6ad55', '#ed8936', '#dd6b20', '#c05621', '#9c4221', '#7b341e'],\n yellow: ['', '#fffff0', '#fefcbf', '#faf089', '#f6e05e', '#ecc94b', '#d69e2e', '#b7791f', '#975a16', '#744210'],\n green: ['', '#f0fff4', '#c6f6d5', '#9ae6b4', '#68d391', '#48bb78', '#38a169', '#2f855a', '#276749', '#22543d'],\n teal: ['', '#e6fffa', '#b2f5ea', '#81e6d9', '#4fd1c5', '#38b2ac', '#319795', '#2c7a7b', '#285e61', '#234e52'],\n blue: ['', '#ebf8ff', '#bee3f8', '#90cdf4', '#63b3ed', '#4299e1', '#3182ce', '#2b6cb0', '#2c5282', '#2a4365'],\n indigo: ['', '#ebf4ff', '#c3dafe', '#a3bffa', '#7f9cf5', '#667eea', '#5a67d8', '#4c51bf', '#434190', '#3c366b'],\n purple: ['', '#faf5ff', '#e9d8fd', '#d6bcfa', '#b794f4', '#9f7aea', '#805ad5', '#6b46c1', '#553c9a', '#44337a'],\n pink: ['', '#fff5f7', '#fed7e2', '#fbb6ce', '#f687b3', '#ed64a6', '#d53f8c', '#b83280', '#97266d', '#702459']\n});\nvar commonButtonStyles = {\n py: 2,\n px: 3,\n cursor: \"pointer\",\n fontSize: \"100%\",\n lineHeight: \"inherit\"\n};\nvar buttons = {\n simple: _extends({}, commonButtonStyles, {\n backgroundColor: \"primary\",\n border: \"none\",\n color: \"white\",\n fontWeight: \"bold\",\n borderRadius: \"default\",\n '&:hover': {\n backgroundColor: \"primaryHover\"\n }\n }),\n pill: _extends({}, commonButtonStyles, {\n backgroundColor: \"primary\",\n border: \"none\",\n color: \"white\",\n fontWeight: \"bold\",\n borderRadius: \"full\",\n '&:hover': {\n backgroundColor: \"primaryHover\"\n }\n }),\n outline: _extends({}, commonButtonStyles, {\n backgroundColor: \"transparent\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primary\",\n color: \"primary\",\n fontWeight: \"semibold\",\n borderRadius: \"default\",\n '&:hover': {\n backgroundColor: \"primary\",\n color: \"white\",\n borderColor: \"transparent\"\n }\n }),\n bordered: _extends({}, commonButtonStyles, {\n backgroundColor: \"primary\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"primaryHover\",\n color: \"white\",\n fontWeight: \"bold\",\n borderRadius: \"default\",\n '&:hover': {\n backgroundColor: \"primaryHover\"\n }\n }),\n disabled: _extends({}, commonButtonStyles, {\n backgroundColor: \"primary\",\n border: \"none\",\n opacity: 0.5,\n cursor: \"not-allowed\",\n color: \"white\",\n fontWeight: \"bold\",\n borderRadius: \"default\"\n }),\n '3D': _extends({}, commonButtonStyles, {\n backgroundColor: \"primary\",\n border: \"none\",\n borderBottomWidth: \"4px\",\n borderBottomStyle: \"solid\",\n borderBottomColor: \"primaryHover\",\n color: \"white\",\n fontWeight: \"bold\",\n borderRadius: \"default\",\n transition: \"transform 0.3s ease-in-out\",\n '&:hover': {\n transform: \"translateY(-1px)\"\n }\n }),\n elevated: _extends({}, commonButtonStyles, {\n backgroundColor: \"white\",\n borderWidth: \"1px\",\n borderStyle: \"solid\",\n borderColor: \"gray.4\",\n color: \"text\",\n fontWeight: \"bold\",\n borderRadius: \"default\",\n boxShadow: \"default\",\n '&:hover': {\n backgroundColor: \"gray.1\"\n }\n })\n};\nvar colors = makeColorsScale(_extends({}, baseColors, {\n grayDark: baseColors.gray[8],\n text: baseColors.gray[8],\n background: baseColors.white,\n primary: baseColors.blue[7],\n primaryHover: baseColors.blue[8],\n secondary: baseColors.gray[6],\n muted: baseColors.gray[3],\n success: baseColors.green[3],\n info: baseColors.blue[4],\n warning: baseColors.yellow[3],\n danger: baseColors.red[3],\n light: baseColors.gray[1],\n dark: baseColors.gray[8],\n textMuted: baseColors.gray[6]\n}));\nvar baseFonts = {\n sans: 'system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,\"Helvetica Neue\",Arial,\"Noto Sans\",sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\",\"Segoe UI Symbol\",\"Noto Color Emoji\"',\n serif: 'Georgia,Cambria,\"Times New Roman\",Times,serif',\n mono: 'Menlo,Monaco,Consolas,\"Liberation Mono\",\"Courier New\",monospace'\n};\nvar fonts = _extends({}, baseFonts, {\n body: baseFonts.sans,\n heading: 'inherit',\n monospace: baseFonts.mono\n});\nvar fontSizes = ['0.875rem', '1rem', '1.25rem', '1.5rem', '1.875rem', '2.25rem', '3rem', '4rem', '4.5rem'];\nvar baseFontWeights = {\n hairline: 100,\n thin: 200,\n light: 300,\n normal: 400,\n medium: 500,\n semibold: 600,\n bold: 700,\n extrabold: 800,\n black: 900\n};\nvar fontWeights = _extends({}, baseFontWeights, {\n body: baseFontWeights.normal,\n heading: baseFontWeights.bold\n});\nvar commonInputStyles = {\n py: 2,\n px: 3,\n fontSize: \"100%\",\n borderRadius: \"default\",\n appearance: \"none\",\n lineHeight: \"tight\"\n};\nvar inputs = {\n shadow: _extends({}, commonInputStyles, {\n border: \"none\",\n color: \"gray.7\",\n boxShadow: \"default\",\n '&:focus': {\n outline: \"none\",\n boxShadow: \"outline\"\n }\n }),\n inline: _extends({}, commonInputStyles, {\n backgroundColor: \"gray.2\",\n borderWidth: \"2px\",\n borderStyle: \"solid\",\n borderColor: \"gray.2\",\n color: \"gray.7\",\n '&:focus': {\n outline: \"none\",\n borderColor: \"primary\",\n backgroundColor: \"white\"\n }\n }),\n underline: _extends({}, commonInputStyles, {\n backgroundColor: \"transparent\",\n border: \"none\",\n borderBottomWidth: \"2px\",\n borderBottomStyle: \"solid\",\n borderBottomColor: \"primary\",\n borderRadius: \"0px\",\n color: \"gray.7\",\n '&:focus': {\n outline: \"none\",\n borderColor: \"primary\",\n backgroundColor: \"white\"\n }\n })\n};\nvar letterSpacings = {\n tighter: '-0.05em',\n tight: '-0.025em',\n normal: '0',\n wide: '0.025em',\n wider: '0.05em',\n widest: '0.1em'\n};\nvar baseLineHeights = {\n none: '1',\n tight: '1.25',\n snug: '1.375',\n normal: '1.5',\n relaxed: '1.625',\n loose: '2'\n};\nvar lineHeights = _extends({}, baseLineHeights, {\n body: baseLineHeights.relaxed,\n heading: baseLineHeights.tight\n});\nvar radii = {\n none: '0',\n sm: '0.125rem',\n default: '0.25rem',\n md: '0.375rem',\n lg: '0.5rem',\n full: '9999px'\n};\nvar tailwindSpacing = {\n px: '1px',\n '0': '0',\n '1': '0.25rem',\n '2': '0.5rem',\n '3': '0.75rem',\n '4': '1rem',\n '5': '1.25rem',\n '6': '1.5rem',\n '8': '2rem',\n '10': '2.5rem',\n '12': '3rem',\n '16': '4rem',\n '20': '5rem',\n '24': '6rem',\n '32': '8rem',\n '40': '10rem',\n '48': '12rem',\n '56': '14rem',\n '64': '16rem'\n};\nvar tailwindMaxWidth = {\n xs: '20rem',\n sm: '24rem',\n md: '28rem',\n lg: '32rem',\n xl: '36rem',\n '2xl': '42rem',\n '3xl': '48rem',\n '4xl': '56rem',\n '5xl': '64rem',\n '6xl': '72rem'\n};\nvar tailwindWidth = {\n '1/2': '50%',\n '1/3': '33.333333%',\n '2/3': '66.666667%',\n '1/4': '25%',\n '2/4': '50%',\n '3/4': '75%',\n '1/5': '20%',\n '2/5': '40%',\n '3/5': '60%',\n '4/5': '80%',\n '1/6': '16.666667%',\n '2/6': '33.333333%',\n '3/6': '50%',\n '4/6': '66.666667%',\n '5/6': '83.333333%',\n '1/12': '8.333333%',\n '2/12': '16.666667%',\n '3/12': '25%',\n '4/12': '33.333333%',\n '5/12': '41.666667%',\n '6/12': '50%',\n '7/12': '58.333333%',\n '8/12': '66.666667%',\n '9/12': '75%',\n '10/12': '83.333333%',\n '11/12': '91.666667%'\n};\nvar sizes = _extends({}, tailwindSpacing, tailwindMaxWidth, tailwindWidth, {\n full: '100%',\n screenHeight: '100vh',\n screenWidth: '100vw'\n});\nvar shadows = {\n xs: '0 0 0 1px rgba(0, 0, 0, 0.05)',\n sm: '0 1px 2px 0 rgba(0, 0, 0, 0.05)',\n default: '0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06)',\n md: '0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06)',\n lg: '0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05)',\n xl: '0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04)',\n '2xl': '0 25px 50px -12px rgba(0, 0, 0, 0.25)',\n inner: 'inset 0 2px 4px 0 rgba(0, 0, 0, 0.06)',\n outline: '0 0 0 3px rgba(66, 153, 225, 0.5)',\n none: 'none'\n};\nvar space = ['0', '0.25rem', '0.5rem', '1rem', '2rem', '4rem', '8rem', '16rem', '32rem'];\nvar zIndices = {\n auto: 'auto',\n '0': 0,\n '10': 10,\n '20': 20,\n '30': 30,\n '40': 40,\n '50': 50\n};\nvar heading = {\n fontFamily: 'heading',\n fontWeight: 'heading',\n lineHeight: 'heading',\n m: 0,\n mb: 1\n};\nvar styles = {\n root: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body'\n },\n a: {\n color: 'primary',\n textDecoration: 'none',\n ':hover': {\n textDecoration: 'underline'\n }\n },\n h1: _extends({}, heading, {\n fontSize: 6,\n mt: 2\n }),\n h2: _extends({}, heading, {\n fontSize: 5,\n mt: 2\n }),\n h3: _extends({}, heading, {\n fontSize: 4,\n mt: 3\n }),\n h4: _extends({}, heading, {\n fontSize: 3\n }),\n h5: _extends({}, heading, {\n fontSize: 2\n }),\n h6: _extends({}, heading, {\n fontSize: 1,\n mb: 2\n }),\n code: {},\n pre: {},\n hr: {\n bg: 'muted',\n border: 0,\n height: '1px',\n m: 3\n }\n};\nvar transforms = {\n transformOrigin: {\n center: 'center',\n top: 'top',\n 'top-right': 'top right',\n right: 'right',\n 'bottom-right': 'bottom right',\n bottom: 'bottom',\n 'bottom-left': 'bottom left',\n left: 'left',\n 'top-left': 'top left'\n },\n translate: _extends({}, tailwindSpacing, {\n '-full': '-100%',\n '-1/2': '-50%',\n '1/2': '50%',\n full: '100%'\n }),\n scale: {\n '0': '0',\n '50': '.5',\n '75': '.75',\n '90': '.9',\n '95': '.95',\n '100': '1',\n '105': '1.05',\n '110': '1.1',\n '125': '1.25',\n '150': '1.5'\n },\n rotate: {\n '-180': '-180deg',\n '-90': '-90deg',\n '-45': '-45deg',\n '0': '0',\n '45': '45deg',\n '90': '90deg',\n '180': '180deg'\n },\n skew: {\n '-12': '-12deg',\n '-6': '-6deg',\n '-3': '-3deg',\n '0': '0',\n '3': '3deg',\n '6': '6deg',\n '12': '12deg'\n }\n};\nvar transitions = {\n property: {\n none: 'none',\n all: 'all',\n default: 'background-color, border-color, color, fill, stroke, opacity, box-shadow, transform',\n colors: 'background-color, border-color, color, fill, stroke',\n opacity: 'opacity',\n shadow: 'box-shadow',\n transform: 'transform'\n },\n timingFunction: {\n linear: 'linear',\n in: 'cubic-bezier(0.4, 0, 1, 1)',\n out: 'cubic-bezier(0, 0, 0.2, 1)',\n 'in-out': 'cubic-bezier(0.4, 0, 0.2, 1)'\n },\n duration: {\n '75': '75ms',\n '100': '100ms',\n '150': '150ms',\n '200': '200ms',\n '300': '300ms',\n '500': '500ms',\n '700': '700ms',\n '1000': '1000ms'\n }\n};\nvar tailwind = makeTheme({\n borderWidths: borderWidths,\n breakpoints: breakpoints,\n colors: colors,\n fonts: fonts,\n fontSizes: fontSizes,\n fontWeights: fontWeights,\n letterSpacings: letterSpacings,\n lineHeights: lineHeights,\n sizes: sizes,\n shadows: shadows,\n space: space,\n radii: radii,\n zIndices: zIndices,\n styles: styles,\n buttons: buttons,\n inputs: inputs,\n transforms: transforms,\n transitions: transitions\n});\n\nexport default tailwind;\nexport { baseColors, baseFontWeights, baseFonts, baseLineHeights, borderWidths, breakpoints, buttons, colors, fontSizes, fontWeights, fonts, inputs, letterSpacings, lineHeights, radii, shadows, sizes, space, styles, tailwind, transforms, transitions, zIndices };\n","import { makeTheme } from '@theme-ui/css/utils';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar defaultBorderStyles = {\n border: 'thick',\n color: 'text',\n borderRadius: 'sketchy0'\n};\n\nvar buttonStyles = _extends({}, defaultBorderStyles, {\n transition: 'all 250ms ease',\n bg: 'muted',\n boxShadow: 'default',\n fontFamily: 'inherit',\n '&:hover': {\n boxShadow: 'hover'\n }\n});\n\nvar formStyles = {\n borderRadius: 'sketchy3',\n borderColor: 'text',\n fontFamily: 'inherit',\n '&:focus': {\n boxShadow: 'outline',\n outline: 'none'\n }\n};\nvar variants = {\n buttons: {\n primary: buttonStyles,\n danger: _extends({}, buttonStyles, {\n borderColor: 'primary',\n backgroundColor: 'primaryLight'\n }),\n info: _extends({}, buttonStyles, {\n borderColor: 'blueDark',\n backgroundColor: 'blue'\n }),\n warning: _extends({}, buttonStyles, {\n borderColor: 'yellowDark',\n backgroundColor: 'yellow'\n }),\n success: _extends({}, buttonStyles, {\n borderColor: 'greenDark',\n backgroundColor: 'green'\n })\n },\n forms: {\n input: formStyles,\n select: formStyles,\n textarea: formStyles,\n slider: {\n bg: 'muted'\n },\n radio: _extends({\n bg: 'transparent',\n border: 'thin',\n borderRadius: 'circle'\n }, {\n 'input:focus ~ &': {\n bg: 'transparent',\n border: 'thick'\n },\n '> path': {\n fill: 'none',\n d: ''\n },\n 'input:checked ~ &': {\n '> path': {\n fill: 'text',\n d: 'path(\"M 10.652237623048844 7.578611366838201 C 11.6115227800823 7.22981180626388, 13.889540717124019 6.621252514969635, 15.006068983724713 7.026960398489625 C 16.122597250325406 7.432668282009615, 17.24515580522389 8.872089685429708, 17.35140722265301 10.01285866795814 C 17.457658640082126 11.153627650486571, 16.03912316416566 12.76488553177375, 15.643577488299421 13.871574293660212 C 15.248031812433185 14.978263055546673, 15.70404673710284 15.989337062262969, 14.978133167455589 16.65299123927691 C 14.252219597808338 17.316645416290854, 12.610153195677707 17.94949960782212, 11.288096070415921 17.85349935574386 C 9.966038945154136 17.7574991036656, 7.781697843868845 17.274206036451343, 7.045790415884869 16.07698972680735 C 6.309882987900893 14.879773417163358, 6.667167006900895 11.870389393142492, 6.8726515025120625 10.670201497879903 C 7.07813599812323 9.470013602617314, 7.509354351285175 9.623932126594248, 8.278697389551876 8.87586235523182 C 9.048040427818577 8.127792583869393, 10.800397347992876 6.511149736417917, 11.488709732112266 6.181782869705334 C 12.177022116231656 5.85241600299275, 12.362948941900267 6.800560104746367, 12.408571694268218 6.899661154956319 M 13.086326549703468 6.334372159562634 C 14.045726949181018 6.585576587705861, 14.02815772607352 8.130937315240134, 14.793913170925268 8.926035996194482 C 15.559668615777017 9.72113467714883, 17.46622859426858 9.94150723842843, 17.680859218813964 11.104964245288727 C 17.89548984335935 12.268421252149023, 16.762624629428604 14.78314657395292, 16.081696918197572 15.906778037356261 C 15.400769206966542 17.030409500759603, 14.496037988376179 17.905210314899808, 13.59529295142778 17.846753025708782 C 12.694547914479381 17.788295736517757, 11.830922537359877 15.961407961261365, 10.677226696507184 15.556034302210117 C 9.52353085565449 15.150660643158869, 7.46854225335996 16.452930254273024, 6.673117906311619 15.414511071401293 C 5.877693559263278 14.376091888529562, 5.510665357146541 10.851337607072976, 5.904680614217136 9.325519204979734 C 6.29869587128773 7.799700802886492, 8.005394513273384 6.6233206129496365, 9.037209448735185 6.2596006588418405 C 10.069024384196986 5.8958807047340445, 11.66025806903873 7.303422381948635, 12.095570226987942 7.143199480332959 C 12.530882384937154 6.982976578717284, 11.801551634336983 5.127314121350047, 11.649082396430458 5.298263249147787\")'\n }\n }\n }),\n checkbox: _extends({\n color: 'text',\n borderRadius: 'sketchy1',\n border: 'thin'\n }, {\n '> path': {\n d: \"path('')\"\n },\n 'input:checked ~ &': {\n '> path': {\n fill: 'text',\n strokeWidth: 1,\n d: 'path(\"M 4.919908 9.946009 C 6.78687 12.35396, 11.267954 19.167892, 11.244466681494456 17.627486 M 4.769042 9.779518 C 8.798076303434634 11.73868628417444, 10.99146627954846 17.425105, 10.675698 20.863192 M 9.268309 20.523752 C 20.141903 2.909804, 34.051755 -1.122666, 30.36023 -3.770398 M 9.805838 17.521756 C 20.949272 9.844316, 22.870222 0.34781, 29.66209 -4.694285\")'\n }\n },\n 'input:focus ~ &': {\n background: 'transparent',\n border: 'thick',\n '> path': {\n strokeWidth: 2\n }\n }\n })\n },\n messages: {\n danger: _extends({}, defaultBorderStyles, {\n borderColor: 'primary',\n backgroundColor: 'primaryLight'\n }),\n info: _extends({}, defaultBorderStyles, {\n borderColor: 'blueDark',\n backgroundColor: 'blue'\n }),\n warning: _extends({}, defaultBorderStyles, {\n borderColor: 'yellowDark',\n backgroundColor: 'yellow'\n }),\n success: _extends({}, defaultBorderStyles, {\n borderColor: 'greenDark',\n backgroundColor: 'green'\n })\n },\n alerts: {\n danger: _extends({}, defaultBorderStyles, {\n borderColor: 'primary',\n backgroundColor: 'primaryLight'\n }),\n info: _extends({}, defaultBorderStyles, {\n borderColor: 'blueDark',\n backgroundColor: 'blue'\n }),\n warning: _extends({}, defaultBorderStyles, {\n borderColor: 'yellowDark',\n backgroundColor: 'yellow'\n }),\n success: _extends({}, defaultBorderStyles, {\n borderColor: 'greenDark',\n backgroundColor: 'green'\n })\n },\n links: {\n nav: {\n borderRadius: 'sketchy1',\n textDecoration: 'none',\n px: 2,\n py: 1,\n textTransform: 'uppercase',\n letterSpacing: '0.2em',\n '&:hover': {\n bg: 'primaryLight'\n }\n }\n },\n badges: {\n primary: {\n borderRadius: 'sketchy1',\n color: 'background',\n bg: 'primary'\n },\n outline: {\n borderRadius: 'sketchy1',\n color: 'primary',\n bg: 'transparent',\n boxShadow: 'inset 0 0 0 1px'\n }\n },\n cards: {\n primary: {\n color: 'text',\n borderRadius: 'sketchy1',\n boxShadow: 'default',\n border: 'thick',\n fontFamily: 'inherit'\n }\n }\n};\n\nvar scalesAndStyles = makeTheme({\n colors: {\n text: '#000200',\n background: '#FAFAF9',\n muted: 'rgba(0,0,0,.1)',\n primary: '#F25F5C',\n primaryDark: '#B51916',\n primaryLight: '#FCBAB1',\n blue: '#B6DEE2',\n blueDark: '#247BA0',\n greenDark: '#2D5948',\n green: '#B2E4DC',\n yellowDark: '#FFDA3A',\n yellow: '#FCF5C7'\n },\n fonts: {\n body: '\"Architects Daughter\", system-ui, -apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, \"Helvetica Neue\", sans-serif',\n heading: 'inherit',\n monospace: 'Menlo, monospace'\n },\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72],\n sizes: {\n container: 800\n },\n lineHeights: {\n body: 1.5,\n heading: 1.25\n },\n radii: {\n sketchy0: '225px 25px 225px / 25px 225px',\n sketchy1: '15px 255px 15px / 225px 15px',\n sketchy2: '10px 125px 20px / 205px 25px',\n sketchy3: '225px 15px 15px / 15px 225px',\n sketchy4: '80px 15px 105px / 25px 250px',\n circle: '200px 185px 160px / 195px 160px'\n },\n borders: {\n thick: '2px solid var(--theme-ui-colors-text, black)',\n thin: '1px solid var(--theme-ui-colors-text, black)'\n },\n shadows: {\n outline: '0 0 0px 1px black rgba(0,0,0,.4)',\n default: '15px 24px 25px -18px rgba(0,0,0,.4)',\n hover: '2px 8px 10px -6px rgba(0,0,0,.4)'\n },\n styles: {\n root: {\n fontFamily: 'body',\n lineHeight: 'body'\n },\n a: {\n color: 'primary',\n '&:hover': {\n color: 'primaryDark'\n }\n },\n pre: {\n fontFamily: 'monospace',\n fontSize: 1,\n p: 3,\n color: 'text',\n bg: 'muted',\n overflow: 'auto'\n },\n code: {\n fontFamily: 'monospace',\n fontSize: 1\n },\n inlineCode: {\n fontFamily: 'monospace',\n color: 'blueDark'\n },\n table: {\n borderCollapse: 'separate',\n borderSpacing: 0\n },\n th: {\n border: 'thick',\n borderRadius: 'sketchy3',\n borderBottomWidth: '1px',\n p: 2\n },\n td: {\n border: 'thick',\n borderRadius: 'sketchy1',\n p: 2\n },\n hr: {\n border: 0,\n borderBottom: 'thin'\n },\n img: {\n maxWidth: '100%'\n }\n }\n});\n\nvar presetSketchy = _extends({}, scalesAndStyles, variants);\n\nexport default presetSketchy;\n","import { merge } from \"theme-ui\";\nimport { tailwind } from \"@theme-ui/presets\";\n\nconst theme = merge(tailwind, {\n initialColorModeName: `light`,\n config: {\n useCustomProperties: true,\n },\n colors: {\n text: tailwind.colors.gray[3],\n heading: tailwind.colors.white,\n textMuted: tailwind.colors.gray[5],\n background: \"#1f1c38\",\n divider: tailwind.colors.indigo[9],\n primary: tailwind.colors.indigo[4],\n secondary: tailwind.colors.indigo[1],\n icon_brightest: tailwind.colors.indigo[4],\n icon_darker: tailwind.colors.indigo[6],\n icon_darkest: tailwind.colors.indigo[8],\n icon_indigo1: tailwind.colors.indigo[1],\n icon_indigo2: tailwind.colors.indigo[2],\n icon_indigo3: tailwind.colors.indigo[3],\n icon_indigo4: tailwind.colors.indigo[4],\n },\n breakpoints: [`400px`, `600px`, `900px`, `1200px`, `1600px`],\n footer: {\n textAlign: `center`,\n display: `block`,\n position: `absolute`,\n bottom: 0,\n color: `textMuted`,\n px: [2, 3],\n py: [3, 4],\n },\n styles: {\n root: {\n margin: 0,\n padding: 0,\n boxSizing: `border-box`,\n textRendering: `optimizeLegibility`,\n WebkitFontSmoothing: `antialiased`,\n MozOsxFontSmoothing: `grayscale`,\n color: `text`,\n backgroundColor: `background`,\n a: {\n color: `primary`,\n textDecoration: `none`,\n transition: `all 0.3s ease-in-out`,\n \"&:hover\": {\n color: `primary`,\n textDecoration: `none`,\n },\n },\n },\n p: {\n fontSize: [1, 2],\n letterSpacing: `-0.003em`,\n lineHeight: `body`,\n \"--baseline-multiplier\": 0.179,\n \"--x-height-multiplier\": 0.35,\n color: `text`,\n },\n blockquote: {\n marginLeft: 0,\n p: {\n fontSize: [2, 3],\n fontWeight: `medium`,\n color: `heading`,\n },\n },\n h1: {\n fontSize: [6, 7, 8],\n mt: 2,\n mb: 3,\n textShadow: `rgba(255, 255, 255, 0.15) 0px 5px 35px`,\n letterSpacing: `wide`,\n color: `heading`,\n },\n h2: {\n fontSize: [4, 5, 6],\n mt: 2,\n mb: 2,\n color: `heading`,\n },\n h3: {\n fontSize: [3, 4, 5],\n mt: 3,\n color: `heading`,\n },\n h4: {\n fontSize: [2, 3, 4],\n color: `heading`,\n },\n h5: {\n fontSize: [1, 2, 3],\n color: `heading`,\n },\n h6: {\n fontSize: 1,\n mb: 2,\n color: `heading`,\n },\n },\n layout: {\n container: {\n maxWidth: `5xl`,\n },\n },\n buttons: {\n toggle: {\n color: `background`,\n border: `none`,\n backgroundColor: `text`,\n cursor: `pointer`,\n alignSelf: `center`,\n px: 3,\n py: 2,\n ml: 3,\n },\n },\n texts: {\n bigger: {\n p: {\n fontSize: [2, 3, 4],\n },\n },\n },\n});\n\nexport default theme;\n","/** @jsx jsx */\nimport { jsx } from \"theme-ui\";\n\ntype ProjectCardProps = {\n link: string;\n title: string;\n children: React.ReactNode;\n};\n\nconst ProjectCard = ({ link, title, children }: ProjectCardProps) => (\n \n \n {title}\n \n
\n {children}\n
\n \n);\n\nexport default ProjectCard;\n","import * as React from \"react\"\nimport ProjectCard from \"../components/project-card\"\n\nconst components = {\n // eslint-disable-next-line react/display-name\n ProjectCard: ({ link, title, bg, children, ...props }) => (\n \n {children}\n \n ),\n}\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 { ThemeProvider, merge } from 'theme-ui'\nimport React from 'react'\n\nimport localTheme from './index'\nimport components from './components'\nimport useThemeUiConfig from './hooks/configOptions'\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 {children}\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 \n)\n","import * as React from 'react';\nexport default {\n React\n};","import React, { createContext, useContext } from \"react\"\n\nconst GatsbyMDXScopeContext = createContext({})\n\nexport const useMDXScope = scope => {\n const contextScope = useContext(GatsbyMDXScopeContext)\n return scope || contextScope\n}\n\nexport const MDXScopeProvider = ({ __mdxScope, children }) =>\n React.createElement(\n GatsbyMDXScopeContext.Provider,\n { value: __mdxScope },\n children\n )\n","var scope_0 = require('/codebuild/output/src2762398445/src/personal-website/.cache/caches/gatsby-plugin-mdx/mdx-scopes-dir/e92f8988d65cf25c087d226e6c0ef06f.js').default;export default\n Object.assign({}, scope_0 )\n ","import React from \"react\"\nimport { MDXProvider, withMDXComponents } from \"@mdx-js/react\"\nimport { MDXScopeProvider } from \"./context\"\n\n/**\n * so, this import is weird right?\n *\n * # What it looks like:\n * we're importing a webpack loader directly into our runtime bundle\n *\n * # What it's actually doing:\n * We configure the `mdx-components` loader in gatsby-node's\n * `onCreateWebpackConfig`. The configuration sets the loader to handle its\n * own file, so if we import `./loaders/mdx-components`, the `mdx-components`\n * loader handles loading itself.\n *\n * # Why does this work?\n * The loader doesn't use the file argument to itself and instead returns\n * a generated file that includes the `gatsby-config` mdxPlugins wrapped in\n * require() statements. This results in the `mdxPlugins` being required\n * and available to the code after this import.\n *\n * # Have a better solution to this?\n * Submit a PR\n */\nimport { plugins as mdxPlugins } from \"./loaders/mdx-components\"\nimport scopeContexts from \"./loaders/mdx-scopes\"\n\nconst componentsAndGuards = {}\n\nconst componentFromGuards = arr =>\n function GatsbyMDXComponentFinder(props) {\n const { Component } = arr.find(({ guard }) => (guard ? guard(props) : true))\n return \n }\n\nmdxPlugins.forEach(({ guards = {}, components }) => {\n Object.entries(components).forEach(([componentName, Component]) => {\n if (componentsAndGuards[componentName]) {\n componentsAndGuards.push({ guard: guards[componentName], Component })\n } else {\n componentsAndGuards[componentName] = [\n { guard: guards[componentName], Component },\n ]\n }\n })\n})\n\nconst components = Object.entries(componentsAndGuards)\n .map(([name, arr]) => {\n return {\n [name]: componentFromGuards(\n arr.concat({ guard: undefined, Component: name })\n ),\n }\n })\n .reduce((acc, obj) => {\n return { ...acc, ...obj }\n }, {})\n\n// merge any components in wrapRootElement above this wrapRoot\nconst MDXConsumer = withMDXComponents(\n ({ components: componentsFromContext, children }) => (\n \n \n {children}\n \n \n )\n)\n\nconst WrapRootElement = ({ element }) => {element}\n\nexport default WrapRootElement\n","import wrap from \"./wrap-root-element\"\nexport const wrapRootElement = wrap\n","module.exports = {plugins: []}","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext, createContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n});\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n {\n value: { baseuri: uri, basepath: basepath, navigate: props.navigate }\n },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch, resolve , BaseContext };","'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","/** @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","import { jsx as jsx$1 } from '@theme-ui/core';\nexport { __ThemeUIContext, createElement, merge, useThemeUI } from '@theme-ui/core';\nexport { InitializeColorMode, useColorMode } from '@theme-ui/color-modes';\nexport { Styled, Themed, components } from '@theme-ui/mdx';\nexport { ThemeProvider } from '@theme-ui/theme-provider';\nexport * from '@theme-ui/components';\nexport { css, get } from '@theme-ui/css';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar BaseStyles = function BaseStyles(props) {\n return jsx('div', _extends({}, props, {\n sx: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body',\n variant: 'styles'\n }\n }));\n};\nvar jsx = jsx$1;\n\nexport { BaseStyles, jsx };\n","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n return (module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(t, o) {\n t.prototype = Object.create(o.prototype), t.prototype.constructor = t, setPrototypeOf(t, o);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(t, e) {\n return (module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.5.4 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(w,1e4),e.addEventListener(\\\"pt0\\\",f),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):w())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.5.4\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function w(t,n){for(f(),t=0;t {\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 `