{"version":3,"file":"AppMeta-D2BLEShT.js","sources":["../../../node_modules/@mantine/hooks/esm/use-document-visibility/use-document-visibility.mjs","../../../node_modules/@mantine/hooks/esm/use-mounted/use-mounted.mjs","../../../app/helpers/pwa.ts","../../../node_modules/@fontsource-variable/bricolage-grotesque/files/bricolage-grotesque-latin-standard-normal.woff2?url","../../../node_modules/@fontsource-variable/manrope/files/manrope-latin-wght-normal.woff2?url","../../../app/components/AppMeta.tsx"],"sourcesContent":["'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useDocumentVisibility() {\n const [documentVisibility, setDocumentVisibility] = useState(\"visible\");\n useEffect(() => {\n const listener = () => setDocumentVisibility(document.visibilityState);\n document.addEventListener(\"visibilitychange\", listener);\n return () => document.removeEventListener(\"visibilitychange\", listener);\n }, []);\n return documentVisibility;\n}\n\nexport { useDocumentVisibility };\n//# sourceMappingURL=use-document-visibility.mjs.map\n","'use client';\nimport { useState, useEffect } from 'react';\n\nfunction useMounted() {\n const [mounted, setMounted] = useState(false);\n useEffect(() => setMounted(true), []);\n return mounted;\n}\n\nexport { useMounted };\n//# sourceMappingURL=use-mounted.mjs.map\n","import { useDocumentVisibility, useMediaQuery } from \"@mantine/hooks\";\nimport { useMounted } from \"@mantine/hooks\";\n\nexport const useIsStandalone = (): boolean | undefined => {\n const mounted = useMounted();\n const isStandalone = useMediaQuery(\"(display-mode: standalone)\");\n if (mounted) {\n return isStandalone;\n }\n};\n\nexport const useInstallPromptEvent = (): Event | null => {\n const [event, setEvent] = useState<Event | null>(null);\n useEffect(() => {\n const capturedEvent = window.installPromptEvent;\n if (capturedEvent) {\n setEvent(capturedEvent);\n }\n addEventListener(\"beforeinstallprompt\", event => {\n event.preventDefault();\n setEvent(event);\n });\n return () => {\n removeEventListener(\"beforeinstallprompt\", setEvent);\n };\n }, []);\n return event;\n};\n\nexport const useClearAppBadge = () => {\n const isStandalone = useIsStandalone();\n const visibility = useDocumentVisibility();\n useEffect(() => {\n if (\n isStandalone &&\n visibility === \"visible\" &&\n \"clearAppBadge\" in navigator\n ) {\n void navigator.clearAppBadge();\n }\n }, [isStandalone, visibility]);\n};\n","export default \"__VITE_ASSET__Cu8MbTEF__\"","export default \"__VITE_ASSET__CoSZXsjk__\"","import bricolageGrotesqueSrc from \"@fontsource-variable/bricolage-grotesque/files/bricolage-grotesque-latin-standard-normal.woff2?url\";\nimport manropeWoff2Src from \"@fontsource-variable/manrope/files/manrope-latin-wght-normal.woff2?url\";\nimport { useDocumentVisibility } from \"@mantine/hooks\";\n\nconst APP_META_SITE_TYPE = \"website\";\nconst APP_META_SITE_NAME = \"it's kai\";\nconst APP_META_SITE_DESCRIPTION =\n \"welcome to my little corner of the internet :)\";\nconst APP_META_SITE_IMAGE = \"/banner.png\";\nconst APP_META_TITLE_SEPARATOR = \"|\";\n\nexport interface AppMetaProps {\n siteName?: string;\n title?: string | string[];\n description?: string | null;\n imageUrl?: string | null;\n manifestUrl?: string | null;\n noIndex?: boolean;\n}\n\nconst AppMeta: FC<AppMetaProps> = ({\n description = APP_META_SITE_DESCRIPTION,\n imageUrl = APP_META_SITE_IMAGE,\n manifestUrl = \"/site.webmanifest\",\n noIndex,\n siteName = APP_META_SITE_NAME,\n title: titleProp,\n}) => {\n const isStandalone = useIsStandalone();\n const pageVisibility = useDocumentVisibility();\n const pageTitle = useMemo<string>(() => {\n const components = Array.isArray(titleProp) ? titleProp : [titleProp];\n return components\n .reverse()\n .filter(component => !!component)\n .join(` ${APP_META_TITLE_SEPARATOR} `);\n }, [titleProp]);\n const siteTitle = useMemo<string>(\n () =>\n [pageTitle, siteName]\n .filter(component => !!component)\n .join(` ${APP_META_TITLE_SEPARATOR} `),\n [pageTitle, siteName],\n );\n const tabTitle = useMemo<string>(() => {\n let title = pageTitle;\n if (\n pageVisibility === \"hidden\" &&\n !title &&\n siteName === APP_META_SITE_NAME\n ) {\n title = \"🥺 come back\";\n }\n if (isStandalone) {\n return title;\n }\n return [title, siteName]\n .filter(component => !!component)\n .join(` ${APP_META_TITLE_SEPARATOR} `);\n }, [pageTitle, pageVisibility, siteName, isStandalone]);\n\n return (\n <Head>\n <title head-key=\"title\">{tabTitle}</title>\n {!!manifestUrl && (\n <link head-key=\"manifest\" rel=\"manifest\" href={manifestUrl} />\n )}\n {!!description && (\n <meta head-key=\"description\" name=\"description\" content={description} />\n )}\n <meta property=\"og:site_name\" content={siteName} />\n <meta property=\"og:type\" content={APP_META_SITE_TYPE} />\n {!!pageTitle && <meta property=\"og:title\" content={pageTitle} />}\n {!!description && (\n <meta property=\"og:description\" content={description} />\n )}\n {!!imageUrl && <meta property=\"og:image\" content={imageUrl} />}\n <meta name=\"twitter:card\" content=\"summary\" />\n <meta name=\"twitter:title\" content={siteTitle} />\n {!!description && (\n <meta name=\"twitter:description\" content={description} />\n )}\n {!!imageUrl && <meta name=\"twitter:image\" content={imageUrl} />}\n {noIndex && <meta name=\"robots\" content=\"noindex\" />}\n <link\n rel=\"preload\"\n as=\"font\"\n type=\"font/woff2\"\n href={manropeWoff2Src}\n crossOrigin=\"anonymous\"\n />\n <link\n as=\"font\"\n type=\"font/woff2\"\n href={bricolageGrotesqueSrc}\n crossOrigin=\"anonymous\"\n />\n </Head>\n );\n};\n\nexport default AppMeta;\n"],"names":["useDocumentVisibility","documentVisibility","setDocumentVisibility","useState","useEffect","listener","useMounted","mounted","setMounted","useIsStandalone","isStandalone","useMediaQuery","useInstallPromptEvent","event","setEvent","capturedEvent","useClearAppBadge","visibility","bricolageGrotesqueSrc","manropeWoff2Src","APP_META_SITE_TYPE","APP_META_SITE_NAME","APP_META_SITE_DESCRIPTION","APP_META_SITE_IMAGE","APP_META_TITLE_SEPARATOR","AppMeta","description","imageUrl","manifestUrl","noIndex","siteName","title","titleProp","pageVisibility","pageTitle","useMemo","Array","isArray","reverse","filter","component","join","siteTitle","tabTitle","Head","children","_jsx","rel","href","name","content","property","as","type","crossOrigin"],"mappings":"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","x_google_ignoreList":[0,1,3,4]}