{"version":3,"mappings":"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","names":["initializeBrowserObservability","isTouchDevice","getPlatform","isTauri","platformFetch","Telemetry","initMonochromeIcons","ErrorBoundary","render","FatalError","interfaceLanguageReady","prepareNotificationLaunch","perfMark","Root","WEBVIEW_FETCH_HOSTS","Set","originalFetch","window","fetch","Proxy","apply","target","thisArg","args","url","resolvedUrl","URL","Request","String","document","baseURI","error","Promise","reject","href","includes","has","hostname","setTimeout","then","m","initializeLexical","catch","err","console","warn","renderApp","root","getElementById","documentElement","dataset","platform","touchDevice","addEventListener","modality","capture","passive","import","env","MODE","_$createComponent","fallback","reset","children","observabilityReady","languageReady","main","all","surface","log","__APP_VERSION__","hot","recoverFromFailedLoad"],"ignoreList":[],"sources":["index.tsx"],"sourcesContent":["import { initializeBrowserObservability } from './observability/browser';\nimport './index.css';\n\nimport '@fontsource-variable/inter';\nimport '@fontsource-variable/roboto-mono';\nimport '@fontsource-variable/playfair-display';\n// SolidDevtools retains disposed memos, causes memory leak\n// import 'solid-devtools';\n// initializeLexical deferred below\nimport { isTouchDevice } from '@core/mobile/isTouchDevice';\nimport { getPlatform, isTauri } from '@core/util/platform';\nimport { platformFetch } from '@core/util/platformFetch';\n// recoverFromFailedLoad deferred\nimport { Telemetry } from '@macro-inc/observability';\nimport { initMonochromeIcons } from '@ui/utils/monochromeIcons';\nimport { ErrorBoundary, render } from 'solid-js/web';\nimport { FatalError } from './components/app/FatalError';\nimport { interfaceLanguageReady } from './lib/i18n';\nimport { prepareNotificationLaunch } from './lib/tauri/notification-launch';\nimport { perfMark } from './observability/perf-marks';\nimport { Root } from './routes/Root';\n\nperfMark('boot.entry-evaluated');\n\n// Third-party APIs that allow any origin and require requests from the user's\n// browser. The native HTTP client's scope doesn't list them and rejects them.\nconst WEBVIEW_FETCH_HOSTS = new Set(['api.klipy.com']);\n\n// Override global fetch with platformFetch for Tauri compatibility\n// Skip localhost requests (dev server) to avoid breaking HMR\nif (isTauri()) {\n  const originalFetch = window.fetch;\n  window.fetch = new Proxy(originalFetch, {\n    apply: (target, thisArg, args) => {\n      const url = args[0];\n      // Resolve bundled asset paths before checking the existing localhost bypass.\n      let resolvedUrl: URL;\n      try {\n        resolvedUrl = new URL(\n          url instanceof Request ? url.url : String(url),\n          document.baseURI\n        );\n      } catch (error) {\n        return Promise.reject(error);\n      }\n      if (\n        resolvedUrl.href.includes('localhost') ||\n        WEBVIEW_FETCH_HOSTS.has(resolvedUrl.hostname)\n      ) {\n        return target.apply(thisArg, args as Parameters<typeof fetch>);\n      }\n      return platformFetch.apply(thisArg, args as Parameters<typeof fetch>);\n    },\n  });\n}\n\nif (typeof window !== 'undefined') {\n  setTimeout(() => {\n    import('@core/component/LexicalMarkdown/init')\n      .then(m => m.initializeLexical())\n      .catch(err => console.warn('Deferred initializeLexical failed:', err));\n  }, 2000);\n}\ninitMonochromeIcons();\n\nconst renderApp = () => {\n  const root = document.getElementById('root');\n  if (!root) return console.error('Root element not found');\n  document.documentElement.dataset.platform = getPlatform();\n  document.documentElement.dataset.touchDevice = isTouchDevice()\n    ? 'true'\n    : 'false';\n\n  // Track current input modality (keyboard / mouse / touch) on the document element.\n  // Used by hotkeys and other modality-aware behaviors.\n  // Use capture phase to ensure we catch events even if they're stopped by handlers\n  document.addEventListener(\n    'keydown',\n    () => {\n      document.documentElement.dataset.modality = 'keyboard';\n    },\n    { capture: true }\n  );\n\n  document.addEventListener(\n    'mousedown',\n    () => {\n      document.documentElement.dataset.modality = 'mouse';\n    },\n    { capture: true }\n  );\n\n  document.addEventListener(\n    'touchstart',\n    () => {\n      document.documentElement.dataset.modality = 'touch';\n    },\n    { capture: true, passive: true }\n  );\n\n  if (import.meta.env.MODE === 'development') {\n    return render(\n      () => (\n        <ErrorBoundary\n          fallback={(error, reset) => (\n            <FatalError error={error} reset={reset} />\n          )}\n        >\n          <Root />\n        </ErrorBoundary>\n      ),\n      root\n    );\n  }\n\n  render(() => <Root />, root);\n};\n\nasync function observabilityReady() {\n  await initializeBrowserObservability();\n  perfMark('boot.observability-ready');\n}\n\nasync function languageReady() {\n  await interfaceLanguageReady(1000);\n  perfMark('boot.language-ready');\n}\n\nasync function main() {\n  perfMark('boot.main');\n  // A translated interface waits for its messages (already loading, cached\n  // after the first visit) so the first screen isn't English for a moment.\n  await Promise.all([observabilityReady(), languageReady()]);\n  try {\n    await prepareNotificationLaunch();\n  } catch (error) {\n    Telemetry.error(error, { surface: 'notification-launch' });\n  }\n\n  console.log('App Version ', import.meta.env.__APP_VERSION__);\n\n  // during `vite dev` (but not dev builds), don't inject analytics/observability\n  if (!import.meta.hot) {\n    // this event is emitted when dynamically loading a module or its CSS\n    // fails, for example when you're using the app and a new version is\n    // deployed. Reloads once, or offers the reload on the rail's update button\n    // (a toast on touch layouts).\n    window.addEventListener('vite:preloadError', () => {\n      import('@core/util/reloadForNewerBuild').then(m => m.recoverFromFailedLoad());\n    });\n  }\n\n  perfMark('boot.render-start');\n  renderApp();\n  perfMark('boot.render-returned');\n}\n\nmain().catch((error) => Telemetry.error(error, { surface: 'app-startup' }));\n"],"file":"/opt/macro/apps/web/src/index.tsx"}