{"version":3,"file":"root-CKY5_0RJ.js","sources":["../../../node_modules/@remix-run/react/dist/esm/scroll-restoration.js","../../../node_modules/framer-motion/dist/es/utils/use-is-mounted.mjs","../../../node_modules/framer-motion/dist/es/utils/use-force-update.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PopChild.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/PresenceChild.mjs","../../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../node_modules/framer-motion/dist/es/components/AnimatePresence/index.mjs","../../../node_modules/stackframe/stackframe.js","../../../node_modules/error-stack-parser/error-stack-parser.js","../../../node_modules/@cloudinary/react/index.js","../../../app/components/cloudinary-video.tsx","../../../app/components/kifs.tsx","../../../node_modules/lru-cache/dist/esm/index.js","../../../node_modules/mdx-bundler/dist/client.js","../../../node_modules/mdx-bundler/client/index.js","../../../app/utils/seo.ts","../../../node_modules/@conform-to/zod/_virtual/_rollupPluginBabelHelpers.mjs","../../../node_modules/@conform-to/dom/_virtual/_rollupPluginBabelHelpers.mjs","../../../node_modules/@conform-to/dom/formdata.mjs","../../../node_modules/@conform-to/dom/util.mjs","../../../node_modules/@conform-to/dom/submission.mjs","../../../node_modules/zod/lib/index.mjs","../../../node_modules/@conform-to/zod/coercion.mjs","../../../node_modules/@conform-to/zod/parse.mjs","../../../node_modules/@epic-web/client-hints/dist/index.js","../../../node_modules/@epic-web/client-hints/dist/color-scheme.js","../../../node_modules/@epic-web/client-hints/dist/time-zone.js","../../../app/utils/request-info.ts","../../../app/utils/client-hints.tsx","../../../app/utils/theme.tsx","../../../app/utils/mdx.tsx","../../../app/utils/providers.tsx","../../../app/utils/use-root-data.ts","../../../app/components/blurrable-image.tsx","../../../app/components/clipboard-copy-button.tsx","../../../app/components/article-card.tsx","../../../app/components/sections/header-section.tsx","../../../app/components/sections/blog-section.tsx","../../../app/components/errors.tsx","../../../app/external-links.tsx","../../../app/components/icon-link.tsx","../../../app/components/footer.tsx","../../../node_modules/@reach/utils/dist/reach-utils.mjs","../../../node_modules/@reach/portal/dist/reach-portal.mjs","../../../node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../../../node_modules/@reach/rect/dist/reach-rect.mjs","../../../node_modules/tabbable/dist/index.esm.js","../../../node_modules/@reach/popover/dist/reach-popover.mjs","../../../node_modules/@reach/auto-id/dist/reach-auto-id.mjs","../../../node_modules/@reach/descendants/dist/reach-descendants.mjs","../../../node_modules/@reach/dropdown/dist/reach-dropdown.mjs","../../../node_modules/react-is/cjs/react-is.production.min.js","../../../node_modules/react-is/index.js","../../../node_modules/@reach/menu-button/dist/reach-menu-button.mjs","../../../app/components/navbar.tsx","../../../app/components/notification-message.tsx","../../../app/styles/app.css?url","../../../app/styles/no-script.css?url","../../../app/styles/prose.css?url","../../../app/styles/tailwind.css?url","../../../app/styles/vendors.css?url","../../../app/utils/nonce-provider.ts","../../../app/utils/gtm.ts","../../../app/root.tsx"],"sourcesContent":["/**\n * @remix-run/react v2.9.2\n *\n * Copyright (c) Remix Software Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE.md file in the root directory of this source tree.\n *\n * @license MIT\n */\nimport { extends as _extends } from './_virtual/_rollupPluginBabelHelpers.js';\nimport * as React from 'react';\nimport { useLocation, useMatches, UNSAFE_useScrollRestoration } from 'react-router-dom';\nimport { useRemixContext } from './components.js';\n\nlet STORAGE_KEY = \"positions\";\n\n/**\n * This component will emulate the browser's scroll restoration on location\n * changes.\n *\n * @see https://remix.run/components/scroll-restoration\n */\nfunction ScrollRestoration({\n getKey,\n ...props\n}) {\n let {\n isSpaMode\n } = useRemixContext();\n let location = useLocation();\n let matches = useMatches();\n UNSAFE_useScrollRestoration({\n getKey,\n storageKey: STORAGE_KEY\n });\n\n // In order to support `getKey`, we need to compute a \"key\" here so we can\n // hydrate that up so that SSR scroll restoration isn't waiting on React to\n // hydrate. *However*, our key on the server is not the same as our key on\n // the client! So if the user's getKey implementation returns the SSR\n // location key, then let's ignore it and let our inline