{"version":3,"file":"static/chunks/app/(goodies)/effective-portfolio/page-9f95bd8a1a508a71.js","mappings":"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","sources":["webpack://_N_E/?46db","webpack://_N_E/../../src/icons/arrow-right.ts","webpack://_N_E/../../src/icons/github.ts","webpack://_N_E/../../src/icons/linkedin.ts","webpack://_N_E/../../src/icons/pause.ts","webpack://_N_E/../../src/icons/play.ts","webpack://_N_E/../../src/icons/star.ts","webpack://_N_E/../../src/icons/x.ts","webpack://_N_E/./src/components/ColorModeContainer/ColorModeContainer.tsx","webpack://_N_E/./src/components/ColorModeContainer/index.ts","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/SignupForm.tsx","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/SuccessModal.tsx","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/SignupProvider.tsx","webpack://_N_E/./src/components/InPortal/InPortal.tsx","webpack://_N_E/./src/components/InPortal/index.ts","webpack://_N_E/./src/components/List/index.ts","webpack://_N_E/./src/components/ModalBase/OverlayBase.tsx","webpack://_N_E/./src/components/ModalBase/ModalBase.tsx","webpack://_N_E/./src/components/ModalBase/index.ts","webpack://_N_E/./src/components/Paper/Paper.tsx","webpack://_N_E/./src/components/Paper/index.ts","webpack://_N_E/./src/hooks/use-focus-on-mount.ts","webpack://_N_E/./src/hooks/use-interval.ts","webpack://_N_E/./node_modules/.pnpm/next@15.1.3_@babel+core@7.24.6_react-dom@19.0.0-rc-f994737d14-20240522_react@19.0.0-rc-f99473_henqbhbmro4if2cwhftw2bam2a/node_modules/next/dist/api/app-dynamic.js","webpack://_N_E/../../src/shared/lib/app-dynamic.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/dynamic-bailout-to-csr.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/loadable.tsx","webpack://_N_E/../../src/shared/lib/lazy-dynamic/preload-chunks.tsx","webpack://_N_E/./node_modules/.pnpm/use-sound@5.0.0_react@19.0.0-rc-f994737d14-20240522/node_modules/use-sound/dist/use-sound.esm.js","webpack://_N_E/./src/app/(goodies)/effective-portfolio/page.linaria.module.css","webpack://_N_E/./src/components/FakeTweet/FakeTweet.linaria.module.css","webpack://_N_E/./src/components/FakeTweet/Metric.linaria.module.css","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/FAQ.linaria.module.css","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/Hero.linaria.module.css","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/SignupForm.linaria.module.css","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/SuccessModal.linaria.module.css","webpack://_N_E/./src/components/Goodies/EffectivePortfolio/Swoops.linaria.module.css","webpack://_N_E/./src/components/ModalBase/ModalBase.linaria.module.css","webpack://_N_E/./src/components/ModalBase/OverlayBase.linaria.module.css"],"sourcesContent":["import(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/ColorModeContainer/ColorModeContainer.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Goodies/EffectivePortfolio/Hero.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Goodies/EffectivePortfolio/FAQ.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/FakeTweet/FakeTweet.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/app/(goodies)/effective-portfolio/page.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Goodies/EffectivePortfolio/SignupForm.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Goodies/EffectivePortfolio/SignupProvider.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Goodies/EffectivePortfolio/Swoops.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconBluesky.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconColorMode.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconRSS.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconSearch.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/Icons/IconSpeaker.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Link/Link.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Link/TextLink.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\",\"ListItem\"] */ \"/vercel/path0/src/components/List/List.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Paragraph/Paragraph.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/MaxWidthWrapper/MaxWidthWrapper.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Logo/Logo.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/Affirmation.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/FooterLink.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/FooterCategoryList.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/FooterNewsletterForm.tsx\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/SiteFooter/IconLink.tsx\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/SiteFooter/SiteFooter.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Spacer/Spacer.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/FakeTweet/Metric.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\" */ \"/vercel/path0/src/components/Spicy/Spicy.linaria.module.css\");\n;\nimport(/* webpackMode: \"eager\", webpackExports: [\"default\"] */ \"/vercel/path0/src/components/VideoGif/VideoGif.tsx\");\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name ArrowRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNSAxMmgxNCIgLz4KICA8cGF0aCBkPSJtMTIgNSA3IDctNyA3IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/arrow-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ArrowRight = createLucideIcon('ArrowRight', [\n ['path', { d: 'M5 12h14', key: '1ays0h' }],\n ['path', { d: 'm12 5 7 7-7 7', key: 'xquz4c' }],\n]);\n\nexport default ArrowRight;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Github\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTUgMjJ2LTRhNC44IDQuOCAwIDAgMC0xLTMuNWMzIDAgNi0yIDYtNS41LjA4LTEuMjUtLjI3LTIuNDgtMS0zLjUuMjgtMS4xNS4yOC0yLjM1IDAtMy41IDAgMC0xIDAtMyAxLjUtMi42NC0uNS01LjM2LS41LTggMEM2IDIgNSAyIDUgMmMtLjMgMS4xNS0uMyAyLjM1IDAgMy41QTUuNDAzIDUuNDAzIDAgMCAwIDQgOWMwIDMuNSAzIDUuNSA2IDUuNS0uMzkuNDktLjY4IDEuMDUtLjg1IDEuNjUtLjE3LjYtLjIyIDEuMjMtLjE1IDEuODV2NCIgLz4KICA8cGF0aCBkPSJNOSAxOGMtNC41MSAyLTUtMi03LTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/github\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=github instead. This icon will be removed in v1.0\n */\nconst Github = createLucideIcon('Github', [\n [\n 'path',\n {\n d: 'M15 22v-4a4.8 4.8 0 0 0-1-3.5c3 0 6-2 6-5.5.08-1.25-.27-2.48-1-3.5.28-1.15.28-2.35 0-3.5 0 0-1 0-3 1.5-2.64-.5-5.36-.5-8 0C6 2 5 2 5 2c-.3 1.15-.3 2.35 0 3.5A5.403 5.403 0 0 0 4 9c0 3.5 3 5.5 6 5.5-.39.49-.68 1.05-.85 1.65-.17.6-.22 1.23-.15 1.85v4',\n key: 'tonef',\n },\n ],\n ['path', { d: 'M9 18c-4.51 2-5-2-7-2', key: '9comsn' }],\n]);\n\nexport default Github;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Linkedin\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTYgOGE2IDYgMCAwIDEgNiA2djdoLTR2LTdhMiAyIDAgMCAwLTItMiAyIDIgMCAwIDAtMiAydjdoLTR2LTdhNiA2IDAgMCAxIDYtNnoiIC8+CiAgPHJlY3Qgd2lkdGg9IjQiIGhlaWdodD0iMTIiIHg9IjIiIHk9IjkiIC8+CiAgPGNpcmNsZSBjeD0iNCIgY3k9IjQiIHI9IjIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/linkedin\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n * @deprecated Brand icons have been deprecated and are due to be removed, please refer to https://github.com/lucide-icons/lucide/issues/670. We recommend using https://simpleicons.org/?q=linkedin instead. This icon will be removed in v1.0\n */\nconst Linkedin = createLucideIcon('Linkedin', [\n [\n 'path',\n {\n d: 'M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z',\n key: 'c2jq9f',\n },\n ],\n ['rect', { width: '4', height: '12', x: '2', y: '9', key: 'mk3on5' }],\n ['circle', { cx: '4', cy: '4', r: '2', key: 'bt5ra8' }],\n]);\n\nexport default Linkedin;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Pause\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB4PSIxNCIgeT0iNCIgd2lkdGg9IjQiIGhlaWdodD0iMTYiIHJ4PSIxIiAvPgogIDxyZWN0IHg9IjYiIHk9IjQiIHdpZHRoPSI0IiBoZWlnaHQ9IjE2IiByeD0iMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/pause\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Pause = createLucideIcon('Pause', [\n ['rect', { x: '14', y: '4', width: '4', height: '16', rx: '1', key: 'zuxfzm' }],\n ['rect', { x: '6', y: '4', width: '4', height: '16', rx: '1', key: '1okwgv' }],\n]);\n\nexport default Pause;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Play\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cG9seWdvbiBwb2ludHM9IjYgMyAyMCAxMiA2IDIxIDYgMyIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/play\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Play = createLucideIcon('Play', [\n ['polygon', { points: '6 3 20 12 6 21 6 3', key: '1oa8hb' }],\n]);\n\nexport default Play;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name Star\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTEuNTI1IDIuMjk1YS41My41MyAwIDAgMSAuOTUgMGwyLjMxIDQuNjc5YTIuMTIzIDIuMTIzIDAgMCAwIDEuNTk1IDEuMTZsNS4xNjYuNzU2YS41My41MyAwIDAgMSAuMjk0LjkwNGwtMy43MzYgMy42MzhhMi4xMjMgMi4xMjMgMCAwIDAtLjYxMSAxLjg3OGwuODgyIDUuMTRhLjUzLjUzIDAgMCAxLS43NzEuNTZsLTQuNjE4LTIuNDI4YTIuMTIyIDIuMTIyIDAgMCAwLTEuOTczIDBMNi4zOTYgMjEuMDFhLjUzLjUzIDAgMCAxLS43Ny0uNTZsLjg4MS01LjEzOWEyLjEyMiAyLjEyMiAwIDAgMC0uNjExLTEuODc5TDIuMTYgOS43OTVhLjUzLjUzIDAgMCAxIC4yOTQtLjkwNmw1LjE2NS0uNzU1YTIuMTIyIDIuMTIyIDAgMCAwIDEuNTk3LTEuMTZ6IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/star\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Star = createLucideIcon('Star', [\n [\n 'path',\n {\n d: 'M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z',\n key: 'r04s7s',\n },\n ],\n]);\n\nexport default Star;\n","import createLucideIcon from '../createLucideIcon';\n\n/**\n * @component @name X\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTggNiA2IDE4IiAvPgogIDxwYXRoIGQ9Im02IDYgMTIgMTIiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/x\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst X = createLucideIcon('X', [\n ['path', { d: 'M18 6 6 18', key: '1bl5f8' }],\n ['path', { d: 'm6 6 12 12', key: 'd8bk6v' }],\n]);\n\nexport default X;\n","/**\n This component allows us to create pockets of DOM that apply a specific color mode, regardless of the user's settings. For example, should always be dark.\n\n NOTE: Unlike ColorModeContainer in Course Platform, this one doesn’t inherit the default value from context. That's because it would lead to a FOUC: the context value isn't known during the initial SSR render. If I want a chunk of the site to be colored based on the global color mode preference, I should use the LIGHT_COLORS_CSS / DARK_COLORS_CSS strings. See `/app/email/[emailSlug]/page.tsx` for an example (the Content styled component).\n*/\n\nimport * as React from 'react';\nimport { styled } from '@linaria/react';\n\nimport {\n LIGHT_COLORS_CSS,\n DARK_COLORS_CSS,\n LIGHT_COLORS,\n ColorMode,\n} from '@/constants';\n\nexport interface Props extends React.HTMLAttributes {\n colorMode: ColorMode;\n // For light containers In Dark Mode, we set the background to --color-adaptive-white instead of the standard white, to make it easier on the eyes. Sometimes, though, this causes contrast issues with other elements. We can disable this behavior by setting useAdaptiveColors to false.\n useAdaptiveColors?: boolean;\n forwardedAs?: React.ElementType;\n}\n\nfunction ColorModeContainer(\n {\n colorMode,\n useAdaptiveColors = true,\n forwardedAs = 'div',\n ...delegated\n }: Props,\n ref: React.Ref\n) {\n const Wrapper = colorMode === 'light' ? LightWrapper : DarkWrapper;\n\n return (\n \n );\n}\n\nexport const LightWrapper = styled.div`\n ${LIGHT_COLORS_CSS}\n color: var(--color-text);\n background: var(--color-background);\n border-radius: 4px;\n color-scheme: light;\n\n /* The default background for our paper cards in Dark Mode is the “adaptive white” offwhite (specified below). In some cases, we *want* it to use the same white as Light Mode. This variable allows for that: */\n --color-original-white: ${LIGHT_COLORS['--color-background']};\n\n --selection-background-color: hsl(50deg 100% 78%);\n --selection-text-color: black;\n\n /*\n When displaying a light-colored section in dark mode, we don't want to overwrite \"adaptive\" colors. These colors are intended to soften contrast, and so it would be harsh to have true white in dark mode.\n */\n html[data-color-mode='dark'] &[data-use-adaptive-colors='true'] {\n --color-adaptive-white: inherit !important;\n --color-background: var(--color-adaptive-white);\n }\n`;\n\nexport const DarkWrapper = styled.div`\n ${DARK_COLORS_CSS}\n color: var(--color-text);\n background: var(--color-background);\n border-radius: 4px;\n color-scheme: dark;\n\n --selection-background-color: hsl(250deg 20% 60% / 0.35);\n --selection-text-color: white;\n`;\n\nexport default React.forwardRef(\n ColorModeContainer\n);\n","export {\n default,\n LightWrapper,\n DarkWrapper,\n} from './ColorModeContainer';\nexport type { Props } from './ColorModeContainer';\n","'use client';\n\nimport React from 'react';\nimport { styled } from '@linaria/react';\n\nimport { BREAKPOINTS } from '@/constants';\nimport {\n useNewsletterSignup,\n useConfetti,\n} from '@/helpers/newsletter.helpers';\nimport useFocusOnMount from '@/hooks/use-focus-on-mount';\n\nimport Spinner from '@/components/Spinner';\nimport ButtonRainbow from '@/components/ButtonRainbow';\nimport SubscribeGeyser from '@/components/SubscribeGeyser';\nimport SubscribeError from '@/components/SubscribeError';\n\nimport { useSignupContext } from './SignupProvider';\n\ninterface Props {\n focusOnMount: boolean;\n}\n\nconst SignupForm = ({ focusOnMount }: Props) => {\n const {\n confettiStatus,\n handleLoadConfetti,\n handleTriggerConfetti,\n } = useConfetti();\n\n const { handleSuccess } = useSignupContext();\n\n const inputRef = React.useRef(null);\n\n useFocusOnMount(inputRef, { enabled: focusOnMount });\n\n const {\n status,\n emailFields,\n error,\n numOfEncounteredErrors,\n emailId,\n honeypotElem,\n handleSubmit,\n } = useNewsletterSignup({\n tags: ['primaryNewsletter'],\n formName: 'effectivePortfolio',\n callbacks: {\n onStart: handleLoadConfetti,\n onSuccess: (email) => {\n handleTriggerConfetti();\n handleSuccess(email);\n },\n },\n });\n\n return (\n <>\n \n\n
\n {honeypotElem}\n\n \n\n \n \n \n {status === 'submitting' ? (\n \n ) : (\n 'Submit'\n )}\n \n \n\n \n \n You'll also be subscribed to my personal newsletter,\n sent roughly every couple of weeks. You can\n unsubscribe whenever you'd like.\n \n }\n />\n \n
\n \n );\n};\n\nconst Form = styled.form`\n max-width: 31.25rem;\n margin-top: 16px;\n margin-inline: auto;\n`;\n\nconst Label = styled.label`\n display: none;\n`;\n\nconst EmailInput = styled.input`\n display: block;\n flex: 1;\n height: 48px;\n padding-left: 8px;\n border: none;\n background: transparent;\n font-size: 1rem;\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n @media ${BREAKPOINTS.smAndLarger} {\n font-size: 1.125rem;\n }\n`;\n\nconst InputWrapper = styled.div`\n display: flex;\n align-items: flex-end;\n gap: 8px;\n background: #fff;\n border-radius: 4px;\n padding: 8px;\n box-shadow:\n -06px 0.6px 1px -7px rgba(0, 0, 0, 0.02),\n -1.4px 1.4px 2.5px -7px rgba(0, 0, 0, 0.028),\n -2.6px 2.6px 4.6px -7px rgba(0, 0, 0, 0.035),\n -5px 4.7px 8.3px -7px rgba(0, 0, 0, 0.042),\n -8px 8.8px 15.5px -7px rgba(0, 0, 0, 0.05),\n -15px 21px 37px -7px rgba(0, 0, 0, 0.07);\n`;\n\nconst SubmitButton = styled(ButtonRainbow)`\n width: 100px;\n font-size: 1rem;\n\n && {\n /* Arg busted class orders again! */\n min-height: 3rem;\n }\n\n &:disabled {\n opacity: 0.5;\n cursor: not-allowed;\n }\n\n @media ${BREAKPOINTS.smAndLarger} {\n width: 125px;\n height: 48px;\n font-size: 1.125rem;\n }\n`;\n\nconst AfterForm = styled.div`\n /* Necessary to prevent a layout shift when toggling between Disclaimer and ErrorMessage */\n min-height: 3rem;\n margin-top: 24px;\n padding: 0 8px;\n`;\n\nconst Disclaimer = styled.p`\n margin: 0;\n font-size: 0.9375rem;\n text-align: center;\n opacity: 0.75;\n text-wrap: balance;\n`;\n\nconst ErrorMessage = styled(SubscribeError)`\n --color-primary: var(--color-error);\n\n p {\n margin: 0;\n font-size: 0.9375rem;\n text-align: center;\n opacity: 0.75;\n text-wrap: balance;\n color: var(--color-error);\n }\n`;\n\nexport default SignupForm;\n","import React from 'react';\nimport { styled } from '@linaria/react';\nimport { X as XIcon, ArrowLeft } from 'lucide-react';\n\nimport { BREAKPOINTS } from '@/constants';\n\nimport ModalBase from '@/components/ModalBase';\nimport Paper from '@/components/Paper';\nimport ParagraphRaw from '@/components/Paragraph';\nimport Spacer from '@/components/Spacer';\nimport List, { ListItem } from '@/components/List';\nimport TextLink from '@/components/Link/TextLink';\n\nfunction SuccessModal({\n email,\n isOpen,\n handleDismiss,\n}: {\n email: string | null;\n isOpen: boolean;\n handleDismiss: () => void;\n}) {\n return (\n \n \n {isOpen && (\n \n \n \n )}\n \n

You've got it!

\n \n \n I've sent an email to {email} with links\n to download my book. It should arrive imminently!\n \n \n You might also be interested in checking out some of my\n blog posts? Here are some of the most popular:\n \n \n \n \n How to Learn Stuff Quickly\n \n \n \n \n An Interactive Guide to CSS Transitions\n \n \n \n \n CSS Variables for React Developers\n \n \n \n
\n \n \n );\n}\n\nconst Modal = styled(Paper)`\n background: var(--color-background);\n border-radius: 6px;\n width: 570px;\n max-width: 100vw;\n padding: 32px;\n outline: none;\n box-shadow:\n 0 2.8px 2.2px rgba(0, 0, 0, 0.02),\n -1px 6.7px 5.3px rgba(0, 0, 0, 0.028),\n -2px 12.5px 10px rgba(0, 0, 0, 0.035),\n -5px 22.3px 17.9px rgba(0, 0, 0, 0.042),\n -10px 41.8px 33.4px rgba(0, 0, 0, 0.05),\n -20px 100px 80px rgba(0, 0, 0, 0.07);\n transition: opacity 300ms;\n animation: fadeIn 400ms;\n\n @media ${BREAKPOINTS.smAndSmaller} {\n width: 100%;\n max-height: 100vh;\n max-height: 100svh;\n overflow: auto;\n }\n`;\n\nconst CloseButton = styled.button`\n position: absolute;\n top: 0;\n right: 0;\n padding: 16px;\n transform: translateY(-100%);\n color: var(--color-text);\n\n html[data-color-mode='dark'] & {\n color: white;\n }\n\n @media ${BREAKPOINTS.smAndSmaller} {\n html[data-color-mode] & {\n z-index: 2;\n transform: revert;\n color: black;\n }\n }\n`;\n\nconst Content = styled.div`\n animation: fadeIn 300ms 300ms both;\n`;\n\nconst StyledList = styled(List)`\n margin-bottom: 0;\n font-size: 1.125rem;\n`;\n\nconst Paragraph = styled(ParagraphRaw)`\n margin-bottom: 24px;\n font-size: 1.125rem;\n`;\nexport default SuccessModal;\n","'use client';\n\nimport * as React from 'react';\n\nimport SuccessModal from './SuccessModal';\n\ninterface SignupContextData {\n userEmail: string | null;\n isModalVisible: boolean;\n handleSuccess: (email: string) => void;\n handleDismiss: () => void;\n}\n\nconst SignupContext = React.createContext({\n userEmail: null,\n isModalVisible: false,\n handleSuccess: () => {},\n handleDismiss: () => {},\n});\n\nfunction SignupProvider({ children }: { children: React.ReactNode }) {\n const [userEmail, setUserEmail] = React.useState(\n null\n );\n const [isModalVisible, setIsModalVisible] =\n React.useState(false);\n\n const handleSuccess = React.useCallback((email: string) => {\n setUserEmail(email);\n setIsModalVisible(true);\n }, []);\n\n const handleDismiss = React.useCallback(() => {\n setIsModalVisible(false);\n }, []);\n\n return (\n \n {children}\n\n \n \n );\n}\n\nexport function useSignupContext() {\n return React.useContext(SignupContext);\n}\n\nexport default SignupProvider;\n","import * as React from 'react';\nimport ReactDOM from 'react-dom';\n\ninterface Props {\n id?: string;\n children: React.ReactNode;\n parent?: HTMLElement;\n}\n\nconst InPortal = ({ id, children, parent }: Props) => {\n const [hostElement, setHostElement] =\n React.useState(null);\n\n React.useEffect(() => {\n const actualParent = parent || document.body;\n\n const elm = id\n ? document.querySelector(`#${id}`)\n : document.createElement('div');\n\n if (!elm) {\n return;\n }\n\n setHostElement(elm);\n\n if (!id) {\n actualParent.appendChild(elm);\n }\n\n return () => {\n if (!id) {\n // In localhost, this error often masks other errors when a hot reload occurs. We'll wrap it in a try/catch to prevent this.\n try {\n actualParent.removeChild(elm);\n } catch (err) {\n // Swallow it.\n }\n }\n };\n }, [parent, id]);\n\n if (!hostElement) {\n return null;\n }\n\n return ReactDOM.createPortal(children, hostElement);\n};\n\nexport default React.memo(InPortal);\n","export { default } from './InPortal';\n","export { default, ListItem } from './List';\n","import * as React from 'react';\nimport { styled } from '@linaria/react';\n\nexport interface Props {\n isOpen: boolean;\n enterDuration?: number;\n exitDuration?: number;\n enterDelay?: number;\n exitDelay?: number;\n openOpacity?: number;\n handleDismiss: () => void;\n}\n\nfunction OverlayBase({\n isOpen,\n enterDuration = 1000,\n enterDelay = 0,\n exitDuration = 600,\n exitDelay = 400,\n openOpacity = 1,\n handleDismiss,\n}: Props) {\n return (\n \n );\n}\n\nconst Wrapper = styled.div`\n position: absolute;\n inset: 0;\n background-color: var(--color-muted-background);\n opacity: var(--opacity);\n transition: opacity var(--transition-duration);\n transition-delay: var(--transition-delay);\n pointer-events: auto;\n\n animation: fadeFromTransparent var(--transition-duration)\n var(--transition-delay) backwards;\n`;\n\nexport default OverlayBase;\n","import * as React from 'react';\nimport { styled } from '@linaria/react';\nimport FocusLock from 'react-focus-lock';\n\nimport InPortal from '@/components/InPortal';\nimport OverlayBase, { Props as OverlayProps } from './OverlayBase';\n\ntype DelegatedOverlayProps = Omit<\n OverlayProps,\n 'isOpen' | 'handleDismiss'\n>;\n\ninterface Props extends React.HTMLAttributes {\n isOpen: boolean;\n portalId?: string;\n skipPortal?: boolean;\n returnFocus?: boolean;\n allowScroll?: boolean;\n overlay?: React.ComponentType | null;\n overlayProps?: DelegatedOverlayProps;\n dismissDuration?: number;\n enableDismissAfter?: number;\n handleDismiss: () => void;\n children: React.ReactNode;\n}\n\nfunction ModalBase({\n isOpen,\n portalId,\n skipPortal,\n returnFocus = false,\n allowScroll = false,\n overlay: Overlay = OverlayBase,\n overlayProps = {},\n dismissDuration = 1000,\n enableDismissAfter = 0,\n handleDismiss,\n children,\n ...delegated\n}: Props) {\n const [isRendered, setIsRendered] = React.useState(isOpen);\n\n const lastOpenedTimestamp = React.useRef(0);\n React.useEffect(() => {\n if (isOpen) {\n lastOpenedTimestamp.current = Date.now();\n }\n }, [isOpen]);\n\n React.useEffect(() => {\n if (isOpen) {\n setIsRendered(true);\n return;\n }\n\n const timeoutId = setTimeout(() => {\n setIsRendered(false);\n }, dismissDuration);\n\n return () => {\n clearTimeout(timeoutId);\n };\n }, [isOpen, isRendered, dismissDuration]);\n\n const handleDismissRef = React.useRef(handleDismiss);\n handleDismissRef.current = handleDismiss;\n\n React.useEffect(() => {\n if (!isOpen) {\n return;\n }\n\n function handleKeyDown(ev: KeyboardEvent) {\n if (ev.key === 'Escape') {\n // In some cases, modals can't be dismissed for a short duration after opening, since doing so would create bugs or jank.\n const timeSinceOpen =\n Date.now() - lastOpenedTimestamp.current;\n const wasOpenedTooRecently =\n timeSinceOpen < enableDismissAfter;\n\n if (!wasOpenedTooRecently) {\n handleDismissRef.current();\n }\n }\n }\n\n document.addEventListener('keydown', handleKeyDown);\n\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [isOpen, enableDismissAfter]);\n\n if (!isRendered) {\n return null;\n }\n\n const elem = (\n \n {Overlay && (\n \n )}\n\n \n {children}\n \n \n );\n\n return skipPortal ? (\n elem\n ) : (\n {elem}\n );\n}\n\nconst Wrapper = styled.div`\n position: fixed;\n inset: 0;\n width: 100%;\n height: 100%;\n isolation: isolate;\n pointer-events: none;\n`;\n\nconst ChildWrapper = styled.div`\n position: absolute;\n inset: 0;\n width: fit-content;\n height: fit-content;\n margin: auto;\n pointer-events: auto;\n`;\n\nexport default ModalBase;\n","export { default } from './ModalBase';\n","// NOTE: Going forwards, I should use ColorModeContainer directly. This feels like too silly an abstraction. There are 100+ callsites though, so I'm not worrying about it for now.\n\nimport ColorModeContainer, {\n type Props as ColorModeProps,\n} from '@/components/ColorModeContainer';\n\ntype Props = Omit;\n\nfunction Paper(props: Props) {\n return ;\n}\n\nexport default Paper;\n","export { default } from './Paper';\n","import * as React from 'react';\n\ninterface Options {\n enabled?: boolean;\n delay?: number;\n preventScroll?: boolean;\n}\n\nfunction useFocusOnMount(\n inputRef: React.RefObject,\n { enabled = true, delay, preventScroll = true }: Options = {}\n) {\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n if (typeof delay === 'number' && delay > 0) {\n const timeoutId = window.setTimeout(() => {\n inputRef.current?.focus({\n preventScroll,\n });\n }, delay);\n\n return () => {\n window.clearTimeout(timeoutId);\n };\n }\n\n inputRef.current?.focus({\n preventScroll,\n });\n }, [inputRef, enabled, delay, preventScroll]);\n}\n\nexport default useFocusOnMount;\n","import React from 'react';\n\nconst useInterval = (callback: Function, delay: number | null) => {\n const intervalId = React.useRef(null);\n const savedCallback = React.useRef(callback);\n\n React.useEffect(() => {\n savedCallback.current = callback;\n });\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n\n if (typeof delay === 'number') {\n intervalId.current = window.setInterval(tick, delay);\n\n return () => {\n if (intervalId.current) {\n window.clearInterval(intervalId.current);\n }\n };\n }\n }, [delay]);\n\n return intervalId.current;\n};\n\nexport default useInterval;\n","export * from '../shared/lib/app-dynamic';\nexport { default } from '../shared/lib/app-dynamic';\n\n//# sourceMappingURL=app-dynamic.js.map","import type React from 'react'\nimport type { JSX } from 'react'\nimport Loadable from './lazy-dynamic/loadable'\n\nimport type {\n LoadableGeneratedOptions,\n DynamicOptionsLoadingProps,\n Loader,\n LoaderComponent,\n} from './lazy-dynamic/types'\n\nexport {\n type LoadableGeneratedOptions,\n type DynamicOptionsLoadingProps,\n type Loader,\n type LoaderComponent,\n}\n\nexport type DynamicOptions

= LoadableGeneratedOptions & {\n loading?: () => JSX.Element | null\n loader?: Loader

\n loadableGenerated?: LoadableGeneratedOptions\n modules?: string[]\n ssr?: boolean\n}\n\nexport type LoadableOptions

= DynamicOptions

\n\nexport type LoadableFn

= (\n opts: LoadableOptions

\n) => React.ComponentType

\n\nexport type LoadableComponent

= React.ComponentType

\n\nexport default function dynamic

(\n dynamicOptions: DynamicOptions

| Loader

,\n options?: DynamicOptions

\n): React.ComponentType

{\n const loadableOptions: LoadableOptions

= {}\n\n if (typeof dynamicOptions === 'function') {\n loadableOptions.loader = dynamicOptions\n }\n\n const mergedOptions = {\n ...loadableOptions,\n ...options,\n }\n\n return Loadable({\n ...mergedOptions,\n modules: mergedOptions.loadableGenerated?.modules,\n })\n}\n","'use client'\n\nimport type { ReactElement } from 'react'\nimport { BailoutToCSRError } from './bailout-to-csr'\n\ninterface BailoutToCSRProps {\n reason: string\n children: ReactElement\n}\n\n/**\n * If rendered on the server, this component throws an error\n * to signal Next.js that it should bail out to client-side rendering instead.\n */\nexport function BailoutToCSR({ reason, children }: BailoutToCSRProps) {\n if (typeof window === 'undefined') {\n throw new BailoutToCSRError(reason)\n }\n\n return children\n}\n","import { Suspense, Fragment, lazy } from 'react'\nimport { BailoutToCSR } from './dynamic-bailout-to-csr'\nimport type { ComponentModule } from './types'\nimport { PreloadChunks } from './preload-chunks'\n\n// Normalize loader to return the module as form { default: Component } for `React.lazy`.\n// Also for backward compatible since next/dynamic allows to resolve a component directly with loader\n// Client component reference proxy need to be converted to a module.\nfunction convertModule

(\n mod: React.ComponentType

| ComponentModule

| undefined\n): {\n default: React.ComponentType

\n} {\n // Check \"default\" prop before accessing it, as it could be client reference proxy that could break it reference.\n // Cases:\n // mod: { default: Component }\n // mod: Component\n // mod: { default: proxy(Component) }\n // mod: proxy(Component)\n const hasDefault = mod && 'default' in mod\n return {\n default: hasDefault\n ? (mod as ComponentModule

).default\n : (mod as React.ComponentType

),\n }\n}\n\nconst defaultOptions = {\n loader: () => Promise.resolve(convertModule(() => null)),\n loading: null,\n ssr: true,\n}\n\ninterface LoadableOptions {\n loader?: () => Promise | ComponentModule>\n loading?: React.ComponentType | null\n ssr?: boolean\n modules?: string[]\n}\n\nfunction Loadable(options: LoadableOptions) {\n const opts = { ...defaultOptions, ...options }\n const Lazy = lazy(() => opts.loader().then(convertModule))\n const Loading = opts.loading\n\n function LoadableComponent(props: any) {\n const fallbackElement = Loading ? (\n \n ) : null\n\n // If it's non-SSR or provided a loading component, wrap it in a suspense boundary\n const hasSuspenseBoundary = !opts.ssr || !!opts.loading\n const Wrap = hasSuspenseBoundary ? Suspense : Fragment\n const wrapProps = hasSuspenseBoundary ? { fallback: fallbackElement } : {}\n const children = opts.ssr ? (\n <>\n {/* During SSR, we need to preload the CSS from the dynamic component to avoid flash of unstyled content */}\n {typeof window === 'undefined' ? (\n \n ) : null}\n \n \n ) : (\n \n \n \n )\n\n return {children}\n }\n\n LoadableComponent.displayName = 'LoadableComponent'\n\n return LoadableComponent\n}\n\nexport default Loadable\n","'use client'\n\nimport { preload } from 'react-dom'\n\nimport { workAsyncStorage } from '../../../server/app-render/work-async-storage.external'\nimport { encodeURIPath } from '../encode-uri-path'\n\nexport function PreloadChunks({\n moduleIds,\n}: {\n moduleIds: string[] | undefined\n}) {\n // Early return in client compilation and only load requestStore on server side\n if (typeof window !== 'undefined') {\n return null\n }\n\n const workStore = workAsyncStorage.getStore()\n if (workStore === undefined) {\n return null\n }\n\n const allFiles = []\n\n // Search the current dynamic call unique key id in react loadable manifest,\n // and find the corresponding CSS files to preload\n if (workStore.reactLoadableManifest && moduleIds) {\n const manifest = workStore.reactLoadableManifest\n for (const key of moduleIds) {\n if (!manifest[key]) continue\n const chunks = manifest[key].files\n allFiles.push(...chunks)\n }\n }\n\n if (allFiles.length === 0) {\n return null\n }\n\n return (\n <>\n {allFiles.map((chunk) => {\n const href = `${workStore.assetPrefix}/_next/${encodeURIPath(chunk)}`\n const isCss = chunk.endsWith('.css')\n // If it's stylesheet we use `precedence` o help hoist with React Float.\n // For stylesheets we actually need to render the CSS because nothing else is going to do it so it needs to be part of the component tree.\n // The `preload` for stylesheet is not optional.\n if (isCss) {\n return (\n \n )\n } else {\n // If it's script we use ReactDOM.preload to preload the resources\n preload(href, {\n as: 'script',\n fetchPriority: 'low',\n })\n return null\n }\n })}\n \n )\n}\n","import React__default, { useEffect } from 'react';\n\nfunction _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}\nfunction _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\n\nfunction useOnMount(callback) {\n useEffect(callback, []);\n}\n\nvar _excluded = [\"id\", \"volume\", \"playbackRate\", \"soundEnabled\", \"interrupt\", \"onload\"];\nfunction useSound(src, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n _ref$volume = _ref.volume,\n volume = _ref$volume === void 0 ? 1 : _ref$volume,\n _ref$playbackRate = _ref.playbackRate,\n playbackRate = _ref$playbackRate === void 0 ? 1 : _ref$playbackRate,\n _ref$soundEnabled = _ref.soundEnabled,\n soundEnabled = _ref$soundEnabled === void 0 ? true : _ref$soundEnabled,\n _ref$interrupt = _ref.interrupt,\n interrupt = _ref$interrupt === void 0 ? false : _ref$interrupt,\n onload = _ref.onload,\n delegated = _objectWithoutPropertiesLoose(_ref, _excluded);\n var HowlConstructor = React__default.useRef(null);\n var isMounted = React__default.useRef(false);\n var _React$useState = React__default.useState(null),\n duration = _React$useState[0],\n setDuration = _React$useState[1];\n var _React$useState2 = React__default.useState(null),\n sound = _React$useState2[0],\n setSound = _React$useState2[1];\n var handleLoad = function handleLoad() {\n if (typeof onload === 'function') {\n // @ts-ignore\n onload.call(this);\n }\n if (isMounted.current) {\n // @ts-ignore\n setDuration(this.duration() * 1000);\n }\n // @ts-ignore\n setSound(this);\n };\n // We want to lazy-load Howler, since sounds can't play on load anyway.\n useOnMount(function () {\n import('howler').then(function (mod) {\n if (!isMounted.current) {\n var _mod$Howl;\n // Depending on the module system used, `mod` might hold\n // the export directly, or it might be under `default`.\n HowlConstructor.current = (_mod$Howl = mod.Howl) !== null && _mod$Howl !== void 0 ? _mod$Howl : mod[\"default\"].Howl;\n isMounted.current = true;\n new HowlConstructor.current(_extends({\n src: Array.isArray(src) ? src : [src],\n volume: volume,\n rate: playbackRate,\n onload: handleLoad\n }, delegated));\n }\n });\n return function () {\n isMounted.current = false;\n };\n });\n // When the `src` changes, we have to do a whole thing where we recreate\n // the Howl instance. This is because Howler doesn't expose a way to\n // tweak the sound\n React__default.useEffect(function () {\n if (HowlConstructor.current && sound) {\n setSound(new HowlConstructor.current(_extends({\n src: Array.isArray(src) ? src : [src],\n volume: volume,\n onload: handleLoad\n }, delegated)));\n }\n // The linter wants to run this effect whenever ANYTHING changes,\n // but very specifically I only want to recreate the Howl instance\n // when the `src` changes. Other changes should have no effect.\n // Passing array to the useEffect dependencies list will result in\n // ifinite loop so we need to stringify it, for more details check\n // https://github.com/facebook/react/issues/14476#issuecomment-471199055\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(src)]);\n // Whenever volume/playbackRate are changed, change those properties\n // on the sound instance.\n React__default.useEffect(function () {\n if (sound) {\n sound.volume(volume);\n // HACK: When a sprite is defined, `sound.rate()` throws an error, because Howler tries to reset the \"_default\" sprite, which doesn't exist. This is likely a bug within Howler, but I don’t have the bandwidth to investigate, so instead, we’re ignoring playbackRate changes when a sprite is defined.\n if (!delegated.sprite) {\n sound.rate(playbackRate);\n }\n }\n }, [sound, volume, playbackRate]);\n var play = React__default.useCallback(function (options) {\n if (typeof options === 'undefined') {\n options = {};\n }\n if (!sound || !soundEnabled && !options.forceSoundEnabled) {\n return;\n }\n if (interrupt) {\n sound.stop();\n }\n if (options.playbackRate) {\n sound.rate(options.playbackRate);\n }\n sound.play(options.id);\n }, [sound, soundEnabled, interrupt]);\n var stop = React__default.useCallback(function (id) {\n if (!sound) {\n return;\n }\n sound.stop(id);\n }, [sound]);\n var pause = React__default.useCallback(function (id) {\n if (!sound) {\n return;\n }\n sound.pause(id);\n }, [sound]);\n var returnedValue = [play, {\n sound: sound,\n stop: stop,\n pause: pause,\n duration: duration\n }];\n return returnedValue;\n}\n\nexport default useSound;\nexport { useSound };\n//# sourceMappingURL=use-sound.esm.js.map\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"w1i5jy4q\":\"w1i5jy4q\",\"mfezwav\":\"mfezwav\",\"m1nap8ey\":\"m1nap8ey\",\"pio1od1\":\"pio1od1\",\"s6aclnm\":\"s6aclnm\",\"g1mbyjf1\":\"g1mbyjf1\",\"t1sew0ni\":\"t1sew0ni\",\"w15igm9q\":\"w15igm9q\",\"gnppwrk\":\"gnppwrk\",\"d18eur8i\":\"d18eur8i\",\"d1nu6vn7\":\"d1nu6vn7\",\"eb0a9h3\":\"eb0a9h3\",\"lzrt5bi\":\"lzrt5bi\",\"lhkow3a\":\"lhkow3a\",\"s1105gtp\":\"s1105gtp\",\"d1rvg8g9\":\"d1rvg8g9\",\"s8weasd\":\"s8weasd\",\"l1iewaz5\":\"l1iewaz5\",\"s1rc36o2\":\"s1rc36o2\",\"l1yjb7o9\":\"l1yjb7o9\",\"wmg42f9\":\"wmg42f9\",\"b263yt7\":\"b263yt7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"w9k8ad0\":\"w9k8ad0\",\"h1bbn24u\":\"h1bbn24u\",\"a1ctc0de\":\"a1ctc0de\",\"u17gblgm\":\"u17gblgm\",\"deka6wx\":\"deka6wx\",\"h1ojho81\":\"h1ojho81\",\"byuz1xq\":\"byuz1xq\",\"i1nwews8\":\"i1nwews8\",\"dk2b67r\":\"dk2b67r\",\"d1snbv5z\":\"d1snbv5z\",\"m19yrx4v\":\"m19yrx4v\",\"d11cf9en\":\"d11cf9en\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrujtsv\":\"wrujtsv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"qbnpxkp\":\"qbnpxkp\",\"a5u57sb\":\"a5u57sb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"w1x8gtnt\":\"w1x8gtnt\",\"b1m0e7wp\":\"b1m0e7wp\",\"byuko56\":\"byuko56\",\"t13hzy4d\":\"t13hzy4d\",\"t1v7pzcq\":\"t1v7pzcq\",\"i16vjf55\":\"i16vjf55\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"f12b3kq4\":\"f12b3kq4\",\"lirfd81\":\"lirfd81\",\"e169160j\":\"e169160j\",\"i1hjb0zj\":\"i1hjb0zj\",\"s14om598\":\"s14om598\",\"ak6to5l\":\"ak6to5l\",\"dzy170w\":\"dzy170w\",\"e19h36xv\":\"e19h36xv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"m1plcw01\":\"m1plcw01\",\"fadeIn\":\"fadeIn\",\"cbvzy9c\":\"cbvzy9c\",\"c6eauv7\":\"c6eauv7\",\"shbadrx\":\"shbadrx\",\"pkucsh2\":\"pkucsh2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"coe7un\":\"coe7un\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wvvtqhu\":\"wvvtqhu\",\"c4b5hm0\":\"c4b5hm0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"whslyen\":\"whslyen\",\"fadeFromTransparent\":\"fadeFromTransparent\"};"],"names":["LightWrapper","styled","name","class","propsAsIs","DarkWrapper","React","HTMLDivElement","ColorModeContainer","ref","Props","useAdaptiveColors","forwardedAs","delegated","colorMode","String","Form","Label","EmailInput","InputWrapper","SubmitButton","_exp2","ButtonRainbow","AfterForm","Disclaimer","ErrorMessage","SubscribeError","SignupForm","focusOnMount","confettiStatus","handleLoadConfetti","handleTriggerConfetti","useConfetti","handleSuccess","useSignupContext","inputRef","HTMLInputElement","useFocusOnMount","enabled","status","emailFields","error","numOfEncounteredErrors","emailId","honeypotElem","handleSubmit","useNewsletterSignup","tags","formName","callbacks","onStart","onSuccess","email","Modal","_exp","Paper","CloseButton","Content","StyledList","List","Paragraph","ParagraphRaw","SuccessModal","isOpen","handleDismiss","exitDelay","opacity","SignupContext","userEmail","isModalVisible","children","setUserEmail","SignupProvider","setIsModalVisible","Provider","value","InPortal","id","parent","hostElement","setHostElement","actualParent","document","body","elm","querySelector","createElement","appendChild","removeChild","err","ReactDOM","Wrapper","OverlayBase","enterDuration","enterDelay","exitDuration","openOpacity","pointerEvents","ChildWrapper","ModalBase","portalId","skipPortal","returnFocus","allowScroll","overlay","Overlay","overlayProps","dismissDuration","enableDismissAfter","isRendered","setIsRendered","lastOpenedTimestamp","current","Date","now","timeoutId","setTimeout","clearTimeout","handleDismissRef","addEventListener","handleKeyDown","removeEventListener","ev","key","timeSinceOpen","elem","props","delay","preventScroll","window","focus","callback","intervalId","useInterval","savedCallback","setInterval","tick","clearInterval","dynamic","dynamicOptions","options","mergedOptions","loadableOptions","loader","Loadable","modules","loadableGenerated","BailoutToCSR","reason","BailoutToCSRError","convertModule","mod","default","defaultOptions","Promise","resolve","loading","ssr","opts","Lazy","lazy","then","Loading","LoadableComponent","fallbackElement","isLoading","pastDelay","hasSuspenseBoundary","Wrap","Suspense","Fragment","PreloadChunks","moduleIds","fallback","wrapProps","displayName","workStore","workAsyncStorage","getStore","undefined","allFiles","reactLoadableManifest","manifest","chunks","files","push","length","map","href","assetPrefix","encodeURIPath","chunk","endsWith","isCss","link","precedence","rel","as","preload","fetchPriority"],"sourceRoot":"","ignoreList":[23,28]}