{"version":3,"sources":["../package.json","../src/idkit.ts","../src/hooks/common.ts","../src/hooks/useIDKitFlow.ts","../src/hooks/useIDKitRequest.ts","../src/hooks/inviteCodeCommon.ts","../src/hooks/useIDKitInviteCodeFlow.ts","../src/hooks/useIDKitInviteCodeRequest.ts","../src/hooks/useIDKitSession.ts","../src/styles/widgetStyles.ts","../src/widget/ShadowHost.tsx","../src/components/Icons/XMarkIcon.tsx","../src/lang/translations/en.ts","../src/lang/translations/es.ts","../src/lang/translations/th.ts","../src/lang/translations/index.ts","../src/lang/localization.ts","../src/lang/index.ts","../src/widget/IDKitModal.tsx","../src/hooks/useMedia.ts","../src/components/Icons/HumanBadgeIcon.tsx","../src/components/Icons/LoadingIcon.tsx","../src/widget/QRCode.tsx","../src/components/Icons/QRPlaceholderIcon.tsx","../src/components/States/QRState.tsx","../src/components/States/WorldIDState.tsx","../src/components/Icons/CheckIcon.tsx","../src/components/States/SuccessState.tsx","../src/components/Icons/ErrorIcon.tsx","../src/components/Icons/WarningIcon.tsx","../src/components/States/ErrorState.tsx","../src/components/States/HostAppVerificationState.tsx","../src/widget/IDKitWidgetBase.tsx","../src/widget/IDKitRequestWidget.tsx","../src/components/States/InviteCodeState.tsx","../src/widget/IDKitInviteCodeWidgetBase.tsx","../src/widget/IDKitInviteCodeRequestWidget.tsx","../src/widget/IDKitSessionWidget.tsx"],"names":["createIDKitNamespace","IDKitErrorCodes","useMemo","isInWorldAppCheck","useState","useRef","useCallback","useEffect","isDebug","createPortal","jsx","jsxs","Fragment","QRCodeUtil","memo","getVisualStage"],"mappings":"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AA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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","file":"index.cjs","sourcesContent":["{\n  \"name\": \"@worldcoin/idkit\",\n  \"version\": \"4.3.0\",\n  \"description\": \"React SDK for World ID built on @worldcoin/idkit-core\",\n  \"type\": \"module\",\n  \"main\": \"./dist/index.cjs\",\n  \"module\": \"./dist/index.js\",\n  \"types\": \"./dist/index.d.ts\",\n  \"exports\": {\n    \".\": {\n      \"types\": \"./dist/index.d.ts\",\n      \"import\": \"./dist/index.js\",\n      \"require\": \"./dist/index.cjs\"\n    },\n    \"./signing\": {\n      \"types\": \"./dist/signing.d.ts\",\n      \"import\": \"./dist/signing.js\",\n      \"require\": \"./dist/signing.cjs\"\n    },\n    \"./hashing\": {\n      \"types\": \"./dist/hashing.d.ts\",\n      \"import\": \"./dist/hashing.js\",\n      \"require\": \"./dist/hashing.cjs\"\n    },\n    \"./session\": {\n      \"types\": \"./dist/session.d.ts\",\n      \"import\": \"./dist/session.js\",\n      \"require\": \"./dist/session.cjs\"\n    }\n  },\n  \"typesVersions\": {\n    \"*\": {\n      \"signing\": [\n        \"./dist/signing.d.ts\"\n      ],\n      \"hashing\": [\n        \"./dist/hashing.d.ts\"\n      ],\n      \"session\": [\n        \"./dist/session.d.ts\"\n      ]\n    }\n  },\n  \"files\": [\n    \"dist\",\n    \"README.md\"\n  ],\n  \"scripts\": {\n    \"build\": \"tsup\",\n    \"dev\": \"tsup --watch\",\n    \"type-check\": \"tsc --noEmit\",\n    \"test\": \"vitest run\",\n    \"test:watch\": \"vitest\"\n  },\n  \"keywords\": [\n    \"worldcoin\",\n    \"world-id\",\n    \"idkit\",\n    \"react\"\n  ],\n  \"author\": \"Tools for Humanity\",\n  \"license\": \"MIT\",\n  \"repository\": {\n    \"type\": \"git\",\n    \"url\": \"https://github.com/worldcoin/idkit\",\n    \"directory\": \"js/packages/react\"\n  },\n  \"peerDependencies\": {\n    \"react\": \">=18\",\n    \"react-dom\": \">=18\"\n  },\n  \"dependencies\": {\n    \"@worldcoin/idkit-core\": \"workspace:*\",\n    \"qrcode\": \"^1.5.4\"\n  },\n  \"devDependencies\": {\n    \"@testing-library/dom\": \"^10.4.1\",\n    \"@testing-library/jest-dom\": \"^6.6.3\",\n    \"@testing-library/react\": \"^16.1.0\",\n    \"@types/qrcode\": \"^1.5.5\",\n    \"@types/react\": \"^18.3.12\",\n    \"@types/react-dom\": \"^18.3.1\",\n    \"happy-dom\": \"20.0.0\",\n    \"react\": \"^18.3.1\",\n    \"react-dom\": \"^18.3.1\",\n    \"tsup\": \"^8.5.1\",\n    \"typescript\": \"^5.9.3\",\n    \"vitest\": \"^4.0.18\"\n  }\n}\n","import { createIDKitNamespace } from \"@worldcoin/idkit-core\";\nimport packageJson from \"../package.json\";\n\nexport const IDKit = createIDKitNamespace({\n  package_name: \"idkit_react\",\n  package_version: packageJson.version,\n});\n","import { IDKitErrorCodes } from \"@worldcoin/idkit-core\";\n\ntype IDKitHookStatus =\n  | \"idle\"\n  | \"waiting_for_connection\"\n  | \"awaiting_confirmation\"\n  | \"confirmed\"\n  | \"failed\";\n\nexport type HookState<TResult> = {\n  isOpen: boolean;\n  status: IDKitHookStatus;\n  connectorURI: string | null;\n  result: TResult | null;\n  errorCode: IDKitErrorCodes | null;\n};\n\nexport function createInitialHookState<TResult>(): HookState<TResult> {\n  return {\n    isOpen: false,\n    status: \"idle\",\n    connectorURI: null,\n    result: null,\n    errorCode: null,\n  };\n}\n\nexport function ensureNotAborted(signal?: AbortSignal): void {\n  if (signal?.aborted) {\n    throw IDKitErrorCodes.Cancelled;\n  }\n}\n\nexport async function delay(ms: number, signal?: AbortSignal): Promise<void> {\n  if (!signal) {\n    await new Promise((resolve) => setTimeout(resolve, ms));\n    return;\n  }\n\n  await new Promise<void>((resolve, reject) => {\n    const timeout = setTimeout(() => {\n      signal.removeEventListener(\"abort\", abortHandler);\n      resolve();\n    }, ms);\n\n    const abortHandler = () => {\n      clearTimeout(timeout);\n      signal.removeEventListener(\"abort\", abortHandler);\n      reject(IDKitErrorCodes.Cancelled);\n    };\n\n    signal.addEventListener(\"abort\", abortHandler, { once: true });\n  });\n}\n\nconst knownErrorCodes = new Set<string>(Object.values(IDKitErrorCodes));\n\nfunction asKnownErrorCode(value: unknown): IDKitErrorCodes | null {\n  if (typeof value === \"string\" && knownErrorCodes.has(value)) {\n    return value as IDKitErrorCodes;\n  }\n\n  return null;\n}\n\nfunction getErrorMessage(error: unknown): string | null {\n  if (typeof error === \"string\") {\n    return error;\n  }\n\n  if (error instanceof Error) {\n    return error.message;\n  }\n\n  if (typeof error === \"object\" && error !== null && \"message\" in error) {\n    const message = (error as { message?: unknown }).message;\n    return typeof message === \"string\" ? message : null;\n  }\n\n  return null;\n}\n\nfunction errorCodeFromMessage(message: string): IDKitErrorCodes | null {\n  const normalized = message.toLowerCase();\n\n  if (\n    normalized.includes(\"invalid rp id\") ||\n    normalized.includes(\"valid rp id must start with\") ||\n    normalized.includes(\"expected hex string\")\n  ) {\n    return IDKitErrorCodes.InvalidRpIdFormat;\n  }\n\n  if (normalized.includes(\"created_at cannot be in the future\")) {\n    return IDKitErrorCodes.TimestampTooFarInFuture;\n  }\n\n  if (\n    normalized.includes(\"expires_at must be greater than created_at\") ||\n    normalized.includes(\"invalid timestamp\") ||\n    normalized.includes(\"failed to format timestamp\")\n  ) {\n    return IDKitErrorCodes.InvalidTimestamp;\n  }\n\n  return null;\n}\n\nexport function toErrorCode(error: unknown): IDKitErrorCodes {\n  const directCode = asKnownErrorCode(error);\n  if (directCode) {\n    return directCode;\n  }\n\n  if (typeof error === \"object\" && error !== null && \"code\" in error) {\n    const nestedCode = asKnownErrorCode((error as { code?: unknown }).code);\n    if (nestedCode) {\n      return nestedCode;\n    }\n  }\n\n  const message = getErrorMessage(error);\n  if (message) {\n    const messageCode = errorCodeFromMessage(message);\n    if (messageCode) {\n      return messageCode;\n    }\n  }\n\n  return IDKitErrorCodes.GenericError;\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n  IDKitErrorCodes,\n  isInWorldApp as isInWorldAppCheck,\n  isDebug,\n  type IDKitDebugReport,\n  type IDKitRequest,\n} from \"@worldcoin/idkit-core\";\nimport type { FlowConfig, IDKitHookResult } from \"../types\";\nimport {\n  createInitialHookState,\n  delay,\n  ensureNotAborted,\n  toErrorCode,\n  type HookState,\n} from \"./common\";\n\nexport function useIDKitFlow<TResult>(\n  createFlowHandle: () => Promise<IDKitRequest>,\n  config: FlowConfig,\n): IDKitHookResult<TResult> {\n  const isInWorldApp = useMemo(() => isInWorldAppCheck(), []);\n\n  const [state, setState] = useState<HookState<TResult>>(\n    createInitialHookState,\n  );\n  const [runId, setRunId] = useState(0);\n  // Mutable handle so event handlers (reset) can cancel the active polling loop.\n  const abortRef = useRef<AbortController | null>(null);\n  // Live request handle so getDebugReport() can read the latest report on demand.\n  const requestRef = useRef<IDKitRequest | null>(null);\n  // Snapshot captured the instant a failure is recorded. It deliberately\n  // outlives reset()/close (which only null `requestRef`) and is cleared when a\n  // new attempt starts, so the host can always read the report for the error\n  // currently being surfaced — even across the reset/re-render the widget does\n  // around its onError callback.\n  const debugReportRef = useRef<IDKitDebugReport | undefined>(undefined);\n  // Refs keep the effect stable (deps: [state.isOpen]) while always reading the latest values.\n  const createFlowHandleRef = useRef(createFlowHandle);\n  const configRef = useRef(config);\n\n  // Updated every render so the effect reads fresh closures/config without re-triggering.\n  createFlowHandleRef.current = createFlowHandle;\n  configRef.current = config;\n\n  const reset = useCallback(() => {\n    abortRef.current?.abort();\n    abortRef.current = null;\n    requestRef.current = null;\n    // NOTE: `debugReportRef` is intentionally NOT cleared here. The host may\n    // read the report after reset (the widget resets/re-renders around its\n    // onError callback). The snapshot is cleared when a new attempt starts.\n    setState(createInitialHookState);\n    setRunId((id) => id + 1);\n  }, []);\n\n  const getDebugReport = useCallback(\n    (): IDKitDebugReport | undefined =>\n      debugReportRef.current ?? requestRef.current?.getDebugReport(),\n    [],\n  );\n\n  const open = useCallback(() => {\n    setState((prev) => {\n      if (prev.isOpen) {\n        return prev;\n      }\n\n      return {\n        isOpen: true,\n        status: \"waiting_for_connection\",\n        connectorURI: null,\n        result: null,\n        errorCode: null,\n      };\n    });\n  }, []);\n\n  useEffect(() => {\n    if (!state.isOpen) {\n      return;\n    }\n\n    // A new attempt is starting; drop any snapshot left by a previous run.\n    debugReportRef.current = undefined;\n\n    const controller = new AbortController();\n    abortRef.current = controller;\n\n    const setFailed = (errorCode: IDKitErrorCodes) => {\n      // Capture the report now, while `requestRef` is still populated — a later\n      // reset/close must not be able to wipe it before the host reads it.\n      // Guarded so debug-report capture can never destabilize error handling.\n      try {\n        debugReportRef.current = requestRef.current?.getDebugReport();\n      } catch {\n        debugReportRef.current = undefined;\n      }\n      setState((prev) => {\n        if (prev.status === \"failed\" && prev.errorCode === errorCode) {\n          return prev;\n        }\n\n        return {\n          ...prev,\n          status: \"failed\",\n          errorCode,\n        };\n      });\n    };\n\n    void (async () => {\n      try {\n        if (isDebug()) console.debug(\"[IDKit] Creating flow handle…\");\n        const request = await createFlowHandleRef.current();\n        requestRef.current = request;\n        ensureNotAborted(controller.signal);\n        if (isDebug())\n          console.debug(\"[IDKit] Flow created\", {\n            connectorURI: request.connectorURI,\n            requestId: request.requestId,\n          });\n\n        const connectorURI = isInWorldApp ? null : request.connectorURI;\n        setState((prev) => {\n          if (prev.connectorURI === connectorURI) {\n            return prev;\n          }\n          return { ...prev, connectorURI };\n        });\n\n        const pollInterval = configRef.current.polling?.interval ?? 1000;\n        const timeout = configRef.current.polling?.timeout ?? 900_000;\n        const startedAt = Date.now();\n\n        while (true) {\n          ensureNotAborted(controller.signal);\n\n          if (Date.now() - startedAt > timeout) {\n            setFailed(IDKitErrorCodes.Timeout);\n            return;\n          }\n\n          const nextStatus = await request.pollOnce();\n          ensureNotAborted(controller.signal);\n\n          if (nextStatus.type === \"confirmed\") {\n            const confirmedResult = nextStatus.result;\n            if (!confirmedResult) {\n              setFailed(IDKitErrorCodes.UnexpectedResponse);\n              return;\n            }\n\n            setState((prev) => ({\n              ...prev,\n              status: \"confirmed\",\n              result: confirmedResult as TResult,\n              errorCode: null,\n            }));\n            return;\n          }\n\n          if (nextStatus.type === \"failed\") {\n            if (isDebug())\n              console.warn(\"[IDKit] Poll returned failed\", nextStatus);\n            setFailed(nextStatus.error ?? IDKitErrorCodes.GenericError);\n            return;\n          }\n\n          setState((prev) => {\n            if (prev.status === nextStatus.type) {\n              return prev;\n            }\n            return { ...prev, status: nextStatus.type };\n          });\n\n          await delay(pollInterval, controller.signal);\n        }\n      } catch (error) {\n        if (controller.signal.aborted) {\n          if (isDebug()) console.debug(\"[IDKit] Flow aborted\");\n          return;\n        }\n\n        if (isDebug()) console.error(\"[IDKit] Flow error:\", error);\n        setFailed(toErrorCode(error));\n      }\n    })();\n\n    return () => {\n      controller.abort();\n      if (abortRef.current === controller) {\n        abortRef.current = null;\n      }\n    };\n  }, [state.isOpen, runId, isInWorldApp]);\n\n  return {\n    open,\n    reset,\n    isAwaitingUserConnection: state.status === \"waiting_for_connection\",\n    isAwaitingUserConfirmation: state.status === \"awaiting_confirmation\",\n    isSuccess: state.status === \"confirmed\",\n    isError: state.status === \"failed\",\n    connectorURI: state.connectorURI,\n    result: state.result,\n    errorCode: state.errorCode,\n    getDebugReport,\n    isOpen: state.isOpen,\n    isInWorldApp,\n  };\n}\n","import { type IDKitResult } from \"@worldcoin/idkit-core\";\nimport { IDKit } from \"../idkit\";\nimport type {\n  IDKitRequestHookConfig,\n  UseIDKitRequestHookResult,\n} from \"../types\";\nimport { useIDKitFlow } from \"./useIDKitFlow\";\n\nexport function useIDKitRequest(\n  config: IDKitRequestHookConfig,\n): UseIDKitRequestHookResult {\n  return useIDKitFlow<IDKitResult>(() => {\n    const builder = IDKit.request({\n      app_id: config.app_id,\n      action: config.action,\n      rp_context: config.rp_context,\n      action_description: config.action_description,\n      bridge_url: config.bridge_url,\n      return_to: config.return_to,\n      allow_legacy_proofs: config.allow_legacy_proofs,\n      require_user_presence: config.require_user_presence ?? false,\n      override_connect_base_url: config.override_connect_base_url,\n      environment: config.environment,\n    });\n    if (\"constraints\" in config && config.constraints) {\n      return builder.constraints(config.constraints);\n    }\n    return builder.preset(config.preset!);\n  }, config);\n}\n","import type { IDKitErrorCodes } from \"@worldcoin/idkit-core\";\n\ntype IDKitHookStatus =\n  | \"idle\"\n  | \"waiting_for_connection\"\n  | \"awaiting_confirmation\"\n  | \"confirmed\"\n  | \"failed\";\n\nexport type InviteCodeHookState<TResult> = {\n  isOpen: boolean;\n  status: IDKitHookStatus;\n  connectorURI: string | null;\n  codeExpiresAt: number | null;\n  result: TResult | null;\n  errorCode: IDKitErrorCodes | null;\n};\n\nexport function createInitialInviteCodeHookState<\n  TResult,\n>(): InviteCodeHookState<TResult> {\n  return {\n    isOpen: false,\n    status: \"idle\",\n    connectorURI: null,\n    codeExpiresAt: null,\n    result: null,\n    errorCode: null,\n  };\n}\n","import { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport {\n  IDKitErrorCodes,\n  isInWorldApp as isInWorldAppCheck,\n  isDebug,\n  type IDKitDebugReport,\n  type IDKitInviteCodeRequest,\n} from \"@worldcoin/idkit-core\";\nimport type { FlowConfig, IDKitInviteCodeHookResult } from \"../types\";\nimport { delay, ensureNotAborted, toErrorCode } from \"./common\";\nimport {\n  createInitialInviteCodeHookState,\n  type InviteCodeHookState,\n} from \"./inviteCodeCommon\";\n\nexport function useIDKitInviteCodeFlow<TResult>(\n  createFlowHandle: () => Promise<IDKitInviteCodeRequest>,\n  config: FlowConfig,\n): IDKitInviteCodeHookResult<TResult> {\n  const isInWorldApp = useMemo(() => isInWorldAppCheck(), []);\n\n  const [state, setState] = useState<InviteCodeHookState<TResult>>(\n    createInitialInviteCodeHookState,\n  );\n  const [runId, setRunId] = useState(0);\n  // Mutable handle so event handlers (reset) can cancel the active polling loop.\n  const abortRef = useRef<AbortController | null>(null);\n  // Live request handle so getDebugReport() can read the latest report on demand.\n  const requestRef = useRef<IDKitInviteCodeRequest | null>(null);\n  // Snapshot captured the instant a failure is recorded. It deliberately\n  // outlives reset()/close (which only null `requestRef`) and is cleared when a\n  // new attempt starts, so the host can always read the report for the error\n  // currently being surfaced — even across the reset/re-render the widget does\n  // around its onError callback.\n  const debugReportRef = useRef<IDKitDebugReport | undefined>(undefined);\n  // Refs keep the effect stable (deps: [state.isOpen]) while always reading the latest values.\n  const createFlowHandleRef = useRef(createFlowHandle);\n  const configRef = useRef(config);\n\n  // Updated every render so the effect reads fresh closures/config without re-triggering.\n  createFlowHandleRef.current = createFlowHandle;\n  configRef.current = config;\n\n  const reset = useCallback(() => {\n    abortRef.current?.abort();\n    abortRef.current = null;\n    requestRef.current = null;\n    // NOTE: `debugReportRef` is intentionally NOT cleared here. The host may\n    // read the report after reset (the widget resets/re-renders around its\n    // onError callback). The snapshot is cleared when a new attempt starts.\n    setState(createInitialInviteCodeHookState);\n    setRunId((id) => id + 1);\n  }, []);\n\n  const getDebugReport = useCallback(\n    (): IDKitDebugReport | undefined =>\n      debugReportRef.current ?? requestRef.current?.getDebugReport(),\n    [],\n  );\n\n  const open = useCallback(() => {\n    setState((prev) => {\n      if (prev.isOpen) {\n        return prev;\n      }\n\n      return {\n        isOpen: true,\n        status: \"waiting_for_connection\",\n        connectorURI: null,\n        codeExpiresAt: null,\n        result: null,\n        errorCode: null,\n      };\n    });\n  }, []);\n\n  useEffect(() => {\n    if (!state.isOpen) {\n      return;\n    }\n\n    // A new attempt is starting; drop any snapshot left by a previous run.\n    debugReportRef.current = undefined;\n\n    const controller = new AbortController();\n    abortRef.current = controller;\n\n    const setFailed = (errorCode: IDKitErrorCodes) => {\n      // Capture the report now, while `requestRef` is still populated — a later\n      // reset/close must not be able to wipe it before the host reads it.\n      // Guarded so debug-report capture can never destabilize error handling.\n      try {\n        debugReportRef.current = requestRef.current?.getDebugReport();\n      } catch {\n        debugReportRef.current = undefined;\n      }\n      setState((prev) => {\n        if (prev.status === \"failed\" && prev.errorCode === errorCode) {\n          return prev;\n        }\n\n        return {\n          ...prev,\n          status: \"failed\",\n          errorCode,\n        };\n      });\n    };\n\n    void (async () => {\n      try {\n        if (isDebug())\n          console.debug(\"[IDKit] Creating invite-code flow handle…\");\n        const request = await createFlowHandleRef.current();\n        requestRef.current = request;\n        ensureNotAborted(controller.signal);\n        if (isDebug())\n          console.debug(\"[IDKit] Invite-code flow created\", {\n            connectorURI: request.connectorURI,\n            expiresAt: request.expiresAt,\n            requestId: request.requestId,\n          });\n\n        const connectorURI = request.connectorURI;\n        const codeExpiresAt = request.expiresAt;\n        setState((prev) => {\n          if (\n            prev.connectorURI === connectorURI &&\n            prev.codeExpiresAt === codeExpiresAt\n          ) {\n            return prev;\n          }\n          return { ...prev, connectorURI, codeExpiresAt };\n        });\n\n        const pollInterval = configRef.current.polling?.interval ?? 1000;\n        const timeout = configRef.current.polling?.timeout ?? 900_000;\n        const startedAt = Date.now();\n\n        while (true) {\n          ensureNotAborted(controller.signal);\n\n          if (Date.now() - startedAt > timeout) {\n            setFailed(IDKitErrorCodes.Timeout);\n            return;\n          }\n\n          const nextStatus = await request.pollOnce();\n          ensureNotAborted(controller.signal);\n\n          if (nextStatus.type === \"confirmed\") {\n            const confirmedResult = nextStatus.result;\n            if (!confirmedResult) {\n              setFailed(IDKitErrorCodes.UnexpectedResponse);\n              return;\n            }\n\n            setState((prev) => ({\n              ...prev,\n              status: \"confirmed\",\n              result: confirmedResult as TResult,\n              errorCode: null,\n            }));\n            return;\n          }\n\n          if (nextStatus.type === \"failed\") {\n            if (isDebug())\n              console.warn(\n                \"[IDKit] Invite-code poll returned failed\",\n                nextStatus,\n              );\n            setFailed(nextStatus.error ?? IDKitErrorCodes.GenericError);\n            return;\n          }\n\n          setState((prev) => {\n            if (prev.status === nextStatus.type) {\n              return prev;\n            }\n            return { ...prev, status: nextStatus.type };\n          });\n\n          await delay(pollInterval, controller.signal);\n        }\n      } catch (error) {\n        if (controller.signal.aborted) {\n          if (isDebug()) console.debug(\"[IDKit] Invite-code flow aborted\");\n          return;\n        }\n\n        if (isDebug()) console.error(\"[IDKit] Invite-code flow error:\", error);\n        setFailed(toErrorCode(error));\n      }\n    })();\n\n    return () => {\n      controller.abort();\n      if (abortRef.current === controller) {\n        abortRef.current = null;\n      }\n    };\n  }, [state.isOpen, runId, isInWorldApp]);\n\n  return {\n    open,\n    reset,\n    isAwaitingUserConnection: state.status === \"waiting_for_connection\",\n    isAwaitingUserConfirmation: state.status === \"awaiting_confirmation\",\n    isSuccess: state.status === \"confirmed\",\n    isError: state.status === \"failed\",\n    connectorURI: state.connectorURI,\n    codeExpiresAt: state.codeExpiresAt,\n    result: state.result,\n    errorCode: state.errorCode,\n    getDebugReport,\n    isOpen: state.isOpen,\n    isInWorldApp,\n  };\n}\n","import { type IDKitResult } from \"@worldcoin/idkit-core\";\nimport { IDKit } from \"../idkit\";\nimport type {\n  IDKitInviteCodeRequestHookConfig,\n  UseIDKitInviteCodeRequestHookResult,\n} from \"../types\";\nimport { useIDKitInviteCodeFlow } from \"./useIDKitInviteCodeFlow\";\n\nexport function useIDKitInviteCodeRequest(\n  config: IDKitInviteCodeRequestHookConfig,\n): UseIDKitInviteCodeRequestHookResult {\n  return useIDKitInviteCodeFlow<IDKitResult>(() => {\n    const builder = IDKit.requestWithInviteCode({\n      app_id: config.app_id,\n      action: config.action,\n      rp_context: config.rp_context,\n      action_description: config.action_description,\n      bridge_url: config.bridge_url,\n      return_to: config.return_to,\n      allow_legacy_proofs: config.allow_legacy_proofs,\n      require_user_presence: config.require_user_presence ?? false,\n      override_connect_base_url: config.override_connect_base_url,\n      environment: config.environment,\n    });\n    if (\"constraints\" in config && config.constraints) {\n      return builder.constraints(config.constraints);\n    }\n    return builder.preset(config.preset!);\n  }, config);\n}\n","import {\n  IDKitErrorCodes,\n  type IDKitResultSession,\n} from \"@worldcoin/idkit-core\";\nimport { IDKit } from \"../idkit\";\nimport type {\n  IDKitSessionHookConfig,\n  UseIDKitSessionHookResult,\n} from \"../types\";\nimport { useIDKitFlow } from \"./useIDKitFlow\";\n\nconst SESSION_ID_PATTERN = /^session_[0-9a-fA-F]{128}$/;\n\nfunction assertSessionId(\n  sessionId: string | undefined,\n): `session_${string}` | undefined {\n  if (sessionId === undefined) {\n    return undefined;\n  }\n\n  if (sessionId.trim().length === 0 || !SESSION_ID_PATTERN.test(sessionId)) {\n    throw IDKitErrorCodes.MalformedRequest;\n  }\n\n  return sessionId as `session_${string}`;\n}\n\nexport function useIDKitSession(\n  config: IDKitSessionHookConfig,\n): UseIDKitSessionHookResult {\n  return useIDKitFlow<IDKitResultSession>(() => {\n    const existingSessionId = assertSessionId(config.existing_session_id);\n    const builder = existingSessionId\n      ? IDKit.proveSession(existingSessionId, {\n          app_id: config.app_id,\n          rp_context: config.rp_context,\n          action_description: config.action_description,\n          bridge_url: config.bridge_url,\n          require_user_presence: config.require_user_presence ?? false,\n          override_connect_base_url: config.override_connect_base_url,\n          return_to: config.return_to,\n          environment: config.environment,\n        })\n      : IDKit.createSession({\n          app_id: config.app_id,\n          rp_context: config.rp_context,\n          action_description: config.action_description,\n          bridge_url: config.bridge_url,\n          require_user_presence: config.require_user_presence ?? false,\n          override_connect_base_url: config.override_connect_base_url,\n          return_to: config.return_to,\n          environment: config.environment,\n        });\n    return builder.constraints(config.constraints);\n  }, config);\n}\n","export const WIDGET_STYLES = `\n@font-face {\n  font-family: 'TWK Lausanne';\n  src: url('https://world-id-assets.com/fonts/TWKLausanne-200.woff2') format('woff2');\n  font-weight: 200;\n  font-style: normal;\n  font-display: swap;\n}\n@font-face {\n  font-family: 'TWK Lausanne';\n  src: url('https://world-id-assets.com/fonts/TWKLausanne-300.woff2') format('woff2');\n  font-weight: 300;\n  font-style: normal;\n  font-display: swap;\n}\n@font-face {\n  font-family: 'TWK Lausanne';\n  src: url('https://world-id-assets.com/fonts/TWKLausanne-400.woff2') format('woff2');\n  font-weight: 400;\n  font-style: normal;\n  font-display: swap;\n}\n@font-face {\n  font-family: 'TWK Lausanne';\n  src: url('https://world-id-assets.com/fonts/TWKLausanne-500.woff2') format('woff2');\n  font-weight: 500;\n  font-style: normal;\n  font-display: swap;\n}\n@font-face {\n  font-family: 'TWK Lausanne';\n  src: url('https://world-id-assets.com/fonts/TWKLausanne-600.woff2') format('woff2');\n  font-weight: 600;\n  font-style: normal;\n  font-display: swap;\n}\n\n/* CSS Custom Properties */\n:host {\n  --idkit-font: 'TWK Lausanne', ui-sans-serif, system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;\n  --idkit-bg: #ffffff;\n  --idkit-text: #0d151d;\n  --idkit-text-muted: #657080;\n  --idkit-text-secondary: #9eafc0;\n  --idkit-border: #EBECEF;\n  --idkit-border-light: #f1f5f8;\n  --idkit-surface: #f8fafc;\n  --idkit-success: #00C230;\n  --idkit-error: #9BA3AE;\n  --idkit-warning: #FFAE00;\n  --idkit-btn-bg: #0d151d;\n  --idkit-btn-text: #ffffff;\n}\n:host(.dark) {\n  --idkit-bg: #0d151d;\n  --idkit-text: #ffffff;\n  --idkit-text-muted: #9eafc0;\n  --idkit-text-secondary: #657080;\n  --idkit-border: rgba(235, 236, 239, 0.15);\n  --idkit-border-light: rgba(241, 245, 248, 0.1);\n  --idkit-surface: rgba(255, 255, 255, 0.05);\n  --idkit-btn-bg: #ffffff;\n  --idkit-btn-text: #0d151d;\n}\n\n/* Animations */\n@keyframes idkit-fade-in {\n  from { opacity: 0; }\n  to { opacity: 1; }\n}\n@keyframes idkit-scale-in {\n  from { opacity: 0; transform: scale(0.9); }\n  to { opacity: 1; transform: scale(1); }\n}\n@keyframes idkit-slide-up {\n  from { transform: translateY(100%); }\n  to { transform: translateY(0); }\n}\n@keyframes idkit-spin {\n  from { transform: rotate(0deg); }\n  to { transform: rotate(360deg); }\n}\n@keyframes idkit-pulse {\n  0%, 100% { opacity: 1; }\n  50% { opacity: 0.5; }\n}\n\n/* Backdrop */\n.idkit-backdrop {\n  position: fixed;\n  inset: 0;\n  background: rgba(0, 0, 0, 0.5);\n  backdrop-filter: blur(12px);\n  -webkit-backdrop-filter: blur(12px);\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  z-index: 2147483646;\n  padding: 16px;\n  animation: idkit-fade-in 0.2s ease-out;\n}\n\n/* Modal */\n.idkit-modal {\n  position: relative;\n  width: 100%;\n  max-width: 448px;\n  min-height: 35rem;\n  background: var(--idkit-bg);\n  border-radius: 24px;\n  box-shadow: 0 24px 60px rgba(15, 23, 42, 0.28), 0 0 0 1px rgba(0, 0, 0, 0.04);\n  font-family: var(--idkit-font);\n  color: var(--idkit-text);\n  display: flex;\n  flex-direction: column;\n  overflow: hidden;\n  animation: idkit-scale-in 0.25s ease-out;\n}\n\n/* Close button */\n.idkit-close {\n  position: absolute;\n  top: 24px;\n  right: 24px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 32px;\n  height: 32px;\n  border: 1.2px solid var(--idkit-border);\n  border-radius: 50%;\n  background: transparent;\n  color: var(--idkit-text);\n  cursor: pointer;\n  padding: 0;\n  z-index: 1;\n  transition: background 0.15s ease;\n}\n.idkit-close:hover {\n  background: var(--idkit-surface);\n}\n.idkit-close svg {\n  width: 16px;\n  height: 16px;\n}\n\n/* Content area */\n.idkit-content {\n  flex: 1;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  padding: 24px 24px 24px;\n  text-align: center;\n}\n\n/* Footer */\n.idkit-footer {\n  border-top: 1px solid #F5F5F7;\n  padding: 28px 32px;\n  text-align: center;\n}\n:host(.dark) .idkit-footer {\n  border-top-color: rgba(245, 245, 247, 0.15);\n}\n.idkit-footer a {\n  color: var(--idkit-text-muted);\n  font-size: 14px;\n  text-decoration: none;\n  transition: color 0.15s ease;\n}\n.idkit-footer a:hover {\n  color: var(--idkit-text);\n}\n\n/* World ID State */\n.idkit-worldid-state {\n  width: 100%;\n  min-width: 0;\n}\n\n.idkit-worldid-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  width: 48px;\n  height: 48px;\n  margin-bottom: 16px;\n}\n.idkit-worldid-icon img {\n  display: block;\n  width: 100%;\n  height: 100%;\n}\n\n.idkit-heading {\n  margin: 0;\n  font-size: 24px;\n  font-weight: 600;\n  line-height: 1.2;\n  color: var(--idkit-text);\n}\n\n.idkit-subtext {\n  margin: 12px 0 0;\n  font-size: 16px;\n  line-height: 1.4;\n  color: var(--idkit-text-muted);\n}\n\n/* QR Container */\n.idkit-qr-container {\n  position: relative;\n  width: 100%;\n  margin-top: 40px;\n}\n\n.idkit-qr-overlay {\n  position: absolute;\n  inset: 0;\n  display: flex;\n  flex-direction: column;\n  align-items: center;\n  justify-content: center;\n  gap: 24px;\n  z-index: 2;\n}\n\n.idkit-qr-blur {\n  transition: filter 0.5s ease-in-out, opacity 0.5s ease-in-out;\n}\n.idkit-qr-blur.blurred {\n  filter: blur(16px);\n  opacity: 0.4;\n}\n\n.idkit-qr-wrapper {\n  display: inline-flex;\n  align-items: center;\n  justify-content: center;\n  border-radius: 16px;\n  border: 1px solid var(--idkit-border-light);\n  padding: 12px;\n}\n\n.idkit-qr-inner {\n  color: var(--idkit-text);\n}\n\n/* QR Code SVG colors for finder patterns */\n.idkit-qr-inner .qr-finder-dark { color: #000000; }\n.idkit-qr-inner .qr-finder-light { color: #ffffff; }\n:host(.dark) .idkit-qr-inner .qr-finder-dark { color: #000000; }\n:host(.dark) .idkit-qr-inner .qr-finder-light { color: #ffffff; }\n.idkit-qr-inner .qr-dot { color: #000000; }\n:host(.dark) .idkit-qr-inner .qr-dot { color: #ffffff; }\n\n/* QR Placeholder */\n.idkit-qr-placeholder {\n  width: 200px;\n  height: 200px;\n  display: flex;\n  align-items: center;\n  justify-content: center;\n}\n.idkit-qr-placeholder svg {\n  width: 200px;\n  height: 200px;\n  animation: idkit-pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;\n}\n\n/* Copy toast — absolutely positioned so it never shifts layout */\n.idkit-copy-toast {\n  position: absolute;\n  bottom: 100%;\n  left: 50%;\n  transform: translateX(-50%);\n  margin-bottom: 8px;\n  opacity: 0;\n  transition: opacity 0.25s ease-in-out;\n  pointer-events: none;\n  white-space: nowrap;\n}\n.idkit-copy-toast.visible {\n  opacity: 1;\n  transition: opacity 0.2s ease-in-out 0.05s;\n}\n.idkit-copy-toast > span {\n  display: inline-block;\n  border-radius: 8px;\n  border: 1px solid var(--idkit-border-light);\n  padding: 4px 8px;\n  font-size: 14px;\n  color: var(--idkit-text-secondary);\n}\n\n/* Simulator callout (staging only) */\n.idkit-simulator-callout {\n  margin: 12px 0 0;\n  font-size: 14px;\n  color: var(--idkit-text-secondary);\n  text-align: center;\n}\n.idkit-simulator-callout a {\n  color: var(--idkit-text-muted);\n  text-decoration: underline;\n  text-underline-offset: 2px;\n}\n.idkit-simulator-callout a:hover {\n  color: var(--idkit-text);\n}\n\n/* Mobile deep-link button */\n.idkit-deeplink-btn {\n  box-sizing: border-box;\n  display: inline-flex;\n  width: auto;\n  max-width: 100%;\n  align-items: center;\n  justify-content: center;\n  gap: 8px;\n  border-radius: 16px;\n  border: 1px solid transparent;\n  background: var(--idkit-btn-bg);\n  color: var(--idkit-btn-text);\n  padding: 16px 32px;\n  font-family: var(--idkit-font);\n  font-size: 16px;\n  font-weight: 500;\n  text-decoration: none;\n  cursor: pointer;\n  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);\n}\n.idkit-deeplink-btn img {\n  width: 20px;\n  height: 20px;\n  flex-shrink: 0;\n}\n.idkit-deeplink-btn span {\n  flex: 0 1 auto;\n  min-width: 0;\n}\n\n.idkit-mobile-handoff {\n  display: flex;\n  width: 100%;\n  flex-direction: column;\n  align-items: center;\n  gap: 16px;\n}\n.idkit-mobile-handoff .idkit-deeplink-btn {\n  width: 100%;\n}\n.idkit-handoff-divider {\n  display: flex;\n  width: 100%;\n  align-items: center;\n  gap: 16px;\n  color: var(--idkit-text-muted);\n  font-size: 12px;\n  font-weight: 500;\n}\n.idkit-handoff-divider > span:first-child,\n.idkit-handoff-divider > span:last-child {\n  height: 1px;\n  flex: 1;\n  background: var(--idkit-border-light);\n}\n.idkit-qr-toggle-btn {\n  box-sizing: border-box;\n  width: 100%;\n  border: 1px solid var(--idkit-border);\n  border-radius: 16px;\n  background: transparent;\n  color: var(--idkit-text);\n  padding: 16px 32px;\n  font-family: var(--idkit-font);\n  font-size: 16px;\n  font-weight: 500;\n  cursor: pointer;\n}\n.idkit-mobile-qr {\n  position: relative;\n}\n.idkit-mobile-qr .idkit-copy-toast {\n  top: 100%;\n  bottom: auto;\n  margin: 8px 0 0;\n}\n\n/* Loading spinner */\n.idkit-spinner {\n  animation: idkit-spin 1s linear infinite;\n}\n.idkit-spinner svg {\n  display: block;\n  width: 24px;\n  height: 24px;\n}\n\n.idkit-connecting-text {\n  text-align: center;\n}\n.idkit-connecting-text p:first-child {\n  font-weight: 500;\n  color: var(--idkit-text-muted);\n  margin: 0;\n}\n.idkit-connecting-text p:last-child {\n  font-size: 14px;\n  font-weight: 300;\n  color: var(--idkit-text-muted);\n  margin: 4px 0 0;\n}\n\n/* Success State */\n.idkit-success-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-bottom: 24px;\n}\n.idkit-success-icon svg {\n  width: 96px;\n  height: 96px;\n}\n\n/* Error State */\n.idkit-error-icon {\n  display: flex;\n  align-items: center;\n  justify-content: center;\n  margin-bottom: 24px;\n}\n.idkit-error-icon svg {\n  width: 96px;\n  height: 96px;\n}\n\n.idkit-error-title {\n  margin: 0;\n  font-size: 24px;\n  font-weight: 600;\n  color: var(--idkit-text);\n}\n\n.idkit-error-message {\n  margin: 8px auto 0;\n  max-width: 224px;\n  font-size: 16px;\n  color: var(--idkit-text-muted);\n  line-height: 1.4;\n}\n\n/* Retry button */\n.idkit-retry-btn {\n  display: inline-flex;\n  align-items: center;\n  border-radius: 9999px;\n  border: 1.2px solid var(--idkit-border);\n  background: transparent;\n  padding: 12px 32px;\n  font-family: var(--idkit-font);\n  font-size: 16px;\n  font-weight: 600;\n  color: var(--idkit-text);\n  cursor: pointer;\n  transition: box-shadow 0.3s ease;\n  margin-top: 32px;\n}\n.idkit-retry-btn:hover {\n  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);\n}\n\n/* Success subtext: old SDK used text-lg (18px) */\n.idkit-success-icon ~ .idkit-subtext {\n  font-size: 18px;\n  line-height: 1.56;\n}\n\n/* Responsive: mobile full-screen bottom-anchored */\n@media (max-width: 1024px) {\n  .idkit-backdrop {\n    align-items: flex-end;\n    padding: 0;\n  }\n  .idkit-modal {\n    max-width: 100%;\n    min-height: auto;\n    max-height: 95vh;\n    border-radius: 24px 24px 0 0;\n    animation: idkit-slide-up 0.3s ease-out;\n  }\n\n  /* Hide desktop QR on mobile */\n  .idkit-desktop-only {\n    display: none;\n  }\n  .idkit-mobile-only {\n    display: flex;\n    justify-content: center;\n    width: 100%;\n  }\n}\n\n@media (min-width: 1025px) {\n  .idkit-mobile-only {\n    display: none;\n  }\n  .idkit-desktop-only {\n    display: block;\n    position: relative;\n  }\n  .idkit-subtext {\n    margin-top: 8px;\n  }\n}\n`;\n","import { useEffect, useState, type ReactElement, type ReactNode } from \"react\";\nimport { createPortal } from \"react-dom\";\n\ntype ShadowHostProps = {\n  children: ReactNode;\n};\n\nexport function ShadowHost({ children }: ShadowHostProps): ReactElement | null {\n  const [root, setRoot] = useState<ShadowRoot | null>(null);\n\n  useEffect(() => {\n    if (typeof document === \"undefined\") {\n      return;\n    }\n\n    const host = document.createElement(\"div\");\n    host.setAttribute(\"data-idkit-shadow-host\", \"true\");\n    document.body.appendChild(host);\n\n    const shadowRoot = host.attachShadow({ mode: \"open\" });\n    setRoot(shadowRoot);\n\n    return () => {\n      host.remove();\n      setRoot(null);\n    };\n  }, []);\n\n  if (!root) {\n    return null;\n  }\n\n  return createPortal(children, root);\n}\n","import type { SVGProps } from \"react\";\n\nexport function XMarkIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 24 24\"\n      {...props}\n    >\n      <path\n        strokeWidth=\"1.5\"\n        stroke=\"currentColor\"\n        strokeLinecap=\"round\"\n        strokeLinejoin=\"round\"\n        d=\"m16.243 7.758-8.485 8.485m8.485 0L7.758 7.758\"\n      />\n    </svg>\n  );\n}\n","import type { TranslationStrings } from \"../types\";\n\nexport const en: TranslationStrings = {\n  \"All set!\": \"All set!\",\n  \"Your World ID is now connected\": \"Your World ID is now connected\",\n  \"Already verified\": \"Already verified\",\n  \"You've already verified for this action.\":\n    \"You've already verified for this action.\",\n  \"Something went wrong\": \"Something went wrong\",\n  \"Request cancelled\": \"Request cancelled\",\n  \"You've cancelled the request in World ID App.\":\n    \"You've cancelled the request in World ID App.\",\n  \"Verification unavailable\": \"Verification unavailable\",\n  \"This verification request couldn't be completed. Please contact the website owner.\":\n    \"This verification request couldn't be completed. Please contact the website owner.\",\n  \"Connection lost\": \"Connection lost\",\n  \"Please check your connection and try again.\":\n    \"Please check your connection and try again.\",\n  \"Verification declined\": \"Verification declined\",\n  \"Failed to verify your credential proof. Please contact the website owner.\":\n    \"Failed to verify your credential proof. Please contact the website owner.\",\n  \"Verification requirements not met\": \"Verification requirements not met\",\n  \"Your World ID doesn't meet the requirements for this verification.\":\n    \"Your World ID doesn't meet the requirements for this verification.\",\n  \"Presence check failed\": \"Presence check failed\",\n  \"World ID App couldn't confirm your presence for this request.\":\n    \"World ID App couldn't confirm your presence for this request.\",\n  \"We couldn't complete your request. Please try again.\":\n    \"We couldn't complete your request. Please try again.\",\n  \"Try Again\": \"Try Again\",\n  Close: \"Close\",\n  \"Open World ID App\": \"Open World ID App\",\n  \"Display QR Code\": \"Display QR Code\",\n  \"Hide QR Code\": \"Hide QR Code\",\n  or: \"or\",\n  \"QR Code copied\": \"QR Code copied\",\n  \"Connect your World ID\": \"Connect your World ID\",\n  \"Use phone camera to scan the QR code\":\n    \"Use phone camera to scan the QR code\",\n  \"Connecting...\": \"Connecting...\",\n  \"Please continue in app\": \"Please continue in app\",\n  \"Transmitting verification to host app. Please wait...\":\n    \"Transmitting verification to host app. Please wait...\",\n  \"You will be redirected to the app, please return to this page once you're done\":\n    \"You will be redirected to the app, please return to this page once you're done\",\n  \"Scan with your phone to continue verifying\":\n    \"Scan with your phone to continue verifying\",\n  \"Open Connector URL\": \"Open Connector URL\",\n  \"Or enter this code in World ID App\": \"Or enter this code in World ID App\",\n  Copy: \"Copy\",\n  \"Expires in\": \"Expires in\",\n  \"Terms & Privacy\": \"Terms & Privacy\",\n};\n","import type { TranslationStrings } from \"../types\";\n\nexport const es: TranslationStrings = {\n  \"All set!\": \"\\u00a1Todo listo!\",\n  \"Your World ID is now connected\": \"Tu World ID ahora est\\u00e1 conectado\",\n  \"Already verified\": \"Ya verificado\",\n  \"You've already verified for this action.\":\n    \"Ya has verificado para esta accion.\",\n  \"Something went wrong\": \"Algo sali\\u00f3 mal\",\n  \"Request cancelled\": \"Solicitud cancelada\",\n  \"You've cancelled the request in World ID App.\":\n    \"Has cancelado la solicitud en World ID App.\",\n  \"Verification unavailable\": \"Verificacion no disponible\",\n  \"This verification request couldn't be completed. Please contact the website owner.\":\n    \"No se pudo completar esta solicitud de verificacion. Por favor contacta al propietario del sitio web.\",\n  \"Connection lost\": \"Conexion perdida\",\n  \"Please check your connection and try again.\":\n    \"Por favor verifica tu conexion e intenta de nuevo.\",\n  \"Verification declined\": \"Verificaci\\u00f3n rechazada\",\n  \"Failed to verify your credential proof. Please contact the website owner.\":\n    \"No se pudo verificar tu prueba de credencial. Por favor contacta al propietario del sitio web.\",\n  \"Verification requirements not met\":\n    \"No se cumplen los requisitos de verificacion\",\n  \"Your World ID doesn't meet the requirements for this verification.\":\n    \"Tu World ID no cumple los requisitos para esta verificacion.\",\n  \"Presence check failed\": \"Fallo la comprobacion de presencia\",\n  \"World ID App couldn't confirm your presence for this request.\":\n    \"World ID App no pudo confirmar tu presencia para esta solicitud.\",\n  \"We couldn't complete your request. Please try again.\":\n    \"No pudimos completar tu solicitud. Por favor intenta de nuevo.\",\n  \"Try Again\": \"Intentar de nuevo\",\n  Close: \"Cerrar\",\n  \"Open World ID App\": \"Abrir World ID App\",\n  \"Display QR Code\": \"Mostrar c\\u00f3digo QR\",\n  \"Hide QR Code\": \"Ocultar c\\u00f3digo QR\",\n  or: \"o\",\n  \"QR Code copied\": \"C\\u00f3digo QR copiado\",\n  \"Connect your World ID\": \"Conecta tu World ID\",\n  \"Use phone camera to scan the QR code\":\n    \"Usa la c\\u00e1mara del tel\\u00e9fono para escanear el c\\u00f3digo QR\",\n  \"Connecting...\": \"Conectando...\",\n  \"Please continue in app\": \"Por favor contin\\u00faa en la aplicaci\\u00f3n\",\n  \"Transmitting verification to host app. Please wait...\":\n    \"Enviando verificaci\\u00f3n a la aplicaci\\u00f3n anfitriona. Por favor espera...\",\n  \"You will be redirected to the app, please return to this page once you're done\":\n    \"Ser\\u00e1s redirigido a la aplicaci\\u00f3n, por favor regresa a esta p\\u00e1gina una vez que hayas terminado\",\n  \"Scan with your phone to continue verifying\":\n    \"Escanea con tu tel\\u00e9fono para continuar con la verificaci\\u00f3n\",\n  \"Open Connector URL\": \"Abrir URL del conector\",\n  \"Or enter this code in World ID App\":\n    \"O introduce este c\\u00f3digo en World ID App\",\n  Copy: \"Copiar\",\n  \"Expires in\": \"Expira en\",\n  \"Terms & Privacy\": \"T\\u00e9rminos y privacidad\",\n};\n","import type { TranslationStrings } from \"../types\";\n\nexport const th: TranslationStrings = {\n  \"All set!\": \"\\u0e40\\u0e23\\u0e35\\u0e22\\u0e1a\\u0e23\\u0e49\\u0e2d\\u0e22!\",\n  \"Your World ID is now connected\":\n    \"World ID \\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d\\u0e41\\u0e25\\u0e49\\u0e27\",\n  \"Already verified\":\n    \"\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e41\\u0e25\\u0e49\\u0e27\",\n  \"You've already verified for this action.\":\n    \"\\u0e04\\u0e38\\u0e13\\u0e44\\u0e14\\u0e49\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e2a\\u0e33\\u0e2b\\u0e23\\u0e31\\u0e1a\\u0e01\\u0e32\\u0e23\\u0e14\\u0e33\\u0e40\\u0e19\\u0e34\\u0e19\\u0e01\\u0e32\\u0e23\\u0e19\\u0e35\\u0e49\\u0e41\\u0e25\\u0e49\\u0e27\",\n  \"Something went wrong\":\n    \"\\u0e40\\u0e01\\u0e34\\u0e14\\u0e02\\u0e49\\u0e2d\\u0e1c\\u0e34\\u0e14\\u0e1e\\u0e25\\u0e32\\u0e14\",\n  \"Request cancelled\":\n    \"\\u0e04\\u0e33\\u0e02\\u0e2d\\u0e16\\u0e39\\u0e01\\u0e22\\u0e01\\u0e40\\u0e25\\u0e34\\u0e01\",\n  \"You've cancelled the request in World ID App.\":\n    \"\\u0e04\\u0e38\\u0e13\\u0e44\\u0e14\\u0e49\\u0e22\\u0e01\\u0e40\\u0e25\\u0e34\\u0e01\\u0e04\\u0e33\\u0e02\\u0e2d\\u0e43\\u0e19 World ID App\",\n  \"Verification unavailable\":\n    \"\\u0e44\\u0e21\\u0e48\\u0e2a\\u0e32\\u0e21\\u0e32\\u0e23\\u0e16\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e44\\u0e14\\u0e49\",\n  \"This verification request couldn't be completed. Please contact the website owner.\":\n    \"\\u0e44\\u0e21\\u0e48\\u0e2a\\u0e32\\u0e21\\u0e32\\u0e23\\u0e16\\u0e14\\u0e33\\u0e40\\u0e19\\u0e34\\u0e19\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e19\\u0e35\\u0e49\\u0e44\\u0e14\\u0e49 \\u0e42\\u0e1b\\u0e23\\u0e14\\u0e15\\u0e34\\u0e14\\u0e15\\u0e48\\u0e2d\\u0e40\\u0e08\\u0e49\\u0e32\\u0e02\\u0e2d\\u0e07\\u0e40\\u0e27\\u0e47\\u0e1a\\u0e44\\u0e0b\\u0e15\\u0e4c\",\n  \"Connection lost\":\n    \"\\u0e01\\u0e32\\u0e23\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d\\u0e02\\u0e32\\u0e14\\u0e2b\\u0e32\\u0e22\",\n  \"Please check your connection and try again.\":\n    \"\\u0e01\\u0e23\\u0e38\\u0e13\\u0e32\\u0e15\\u0e23\\u0e27\\u0e08\\u0e2a\\u0e2d\\u0e1a\\u0e01\\u0e32\\u0e23\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d\\u0e41\\u0e25\\u0e49\\u0e27\\u0e25\\u0e2d\\u0e07\\u0e2d\\u0e35\\u0e01\\u0e04\\u0e23\\u0e31\\u0e49\\u0e07\",\n  \"Verification declined\":\n    \"\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e16\\u0e39\\u0e01\\u0e1b\\u0e0f\\u0e34\\u0e40\\u0e2a\\u0e18\",\n  \"Failed to verify your credential proof. Please contact the website owner.\":\n    \"\\u0e44\\u0e21\\u0e48\\u0e2a\\u0e32\\u0e21\\u0e32\\u0e23\\u0e16\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e2b\\u0e25\\u0e31\\u0e01\\u0e10\\u0e32\\u0e19\\u0e02\\u0e2d\\u0e07 Credential \\u0e44\\u0e14\\u0e49 \\u0e42\\u0e1b\\u0e23\\u0e14\\u0e15\\u0e34\\u0e14\\u0e15\\u0e48\\u0e2d\\u0e40\\u0e08\\u0e49\\u0e32\\u0e02\\u0e2d\\u0e07\\u0e40\\u0e27\\u0e47\\u0e1a\\u0e44\\u0e0b\\u0e15\\u0e4c\",\n  \"Verification requirements not met\":\n    \"\\u0e44\\u0e21\\u0e48\\u0e40\\u0e1b\\u0e47\\u0e19\\u0e44\\u0e1b\\u0e15\\u0e32\\u0e21\\u0e02\\u0e49\\u0e2d\\u0e01\\u0e33\\u0e2b\\u0e19\\u0e14\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\",\n  \"Your World ID doesn't meet the requirements for this verification.\":\n    \"World ID \\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\\u0e44\\u0e21\\u0e48\\u0e15\\u0e23\\u0e07\\u0e15\\u0e32\\u0e21\\u0e02\\u0e49\\u0e2d\\u0e01\\u0e33\\u0e2b\\u0e19\\u0e14\\u0e2a\\u0e33\\u0e2b\\u0e23\\u0e31\\u0e1a\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e19\\u0e35\\u0e49\",\n  \"Presence check failed\":\n    \"\\u0e01\\u0e32\\u0e23\\u0e15\\u0e23\\u0e27\\u0e08\\u0e2a\\u0e2d\\u0e1a\\u0e01\\u0e32\\u0e23\\u0e21\\u0e35\\u0e2d\\u0e22\\u0e39\\u0e48\\u0e25\\u0e49\\u0e21\\u0e40\\u0e2b\\u0e25\\u0e27\",\n  \"World ID App couldn't confirm your presence for this request.\":\n    \"World ID App \\u0e44\\u0e21\\u0e48\\u0e2a\\u0e32\\u0e21\\u0e32\\u0e23\\u0e16\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e01\\u0e32\\u0e23\\u0e21\\u0e35\\u0e2d\\u0e22\\u0e39\\u0e48\\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\\u0e2a\\u0e33\\u0e2b\\u0e23\\u0e31\\u0e1a\\u0e04\\u0e33\\u0e02\\u0e2d\\u0e19\\u0e35\\u0e49\\u0e44\\u0e14\\u0e49\",\n  \"We couldn't complete your request. Please try again.\":\n    \"\\u0e40\\u0e23\\u0e32\\u0e44\\u0e21\\u0e48\\u0e2a\\u0e32\\u0e21\\u0e32\\u0e23\\u0e16\\u0e14\\u0e33\\u0e40\\u0e19\\u0e34\\u0e19\\u0e01\\u0e32\\u0e23\\u0e15\\u0e32\\u0e21\\u0e04\\u0e33\\u0e02\\u0e2d\\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\\u0e44\\u0e14\\u0e49 \\u0e01\\u0e23\\u0e38\\u0e13\\u0e32\\u0e25\\u0e2d\\u0e07\\u0e2d\\u0e35\\u0e01\\u0e04\\u0e23\\u0e31\\u0e49\\u0e07\",\n  \"Try Again\":\n    \"\\u0e25\\u0e2d\\u0e07\\u0e2d\\u0e35\\u0e01\\u0e04\\u0e23\\u0e31\\u0e49\\u0e07\",\n  Close: \"\\u0e1b\\u0e34\\u0e14\",\n  \"Open World ID App\": \"\\u0e40\\u0e1b\\u0e34\\u0e14 World ID App\",\n  \"Display QR Code\": \"\\u0e41\\u0e2a\\u0e14\\u0e07 QR Code\",\n  \"Hide QR Code\": \"\\u0e0b\\u0e48\\u0e2d\\u0e19 QR Code\",\n  or: \"\\u0e2b\\u0e23\\u0e37\\u0e2d\",\n  \"QR Code copied\":\n    \"\\u0e04\\u0e31\\u0e14\\u0e25\\u0e2d\\u0e01 QR Code \\u0e41\\u0e25\\u0e49\\u0e27\",\n  \"Connect your World ID\":\n    \"\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d World ID \\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\",\n  \"Use phone camera to scan the QR code\":\n    \"\\u0e43\\u0e0a\\u0e49\\u0e01\\u0e25\\u0e49\\u0e2d\\u0e07\\u0e42\\u0e17\\u0e23\\u0e28\\u0e31\\u0e1e\\u0e17\\u0e4c\\u0e40\\u0e1e\\u0e37\\u0e48\\u0e2d\\u0e2a\\u0e41\\u0e01\\u0e19 QR code\",\n  \"Connecting...\":\n    \"\\u0e01\\u0e33\\u0e25\\u0e31\\u0e07\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d...\",\n  \"Please continue in app\":\n    \"\\u0e01\\u0e23\\u0e38\\u0e13\\u0e32\\u0e14\\u0e33\\u0e40\\u0e19\\u0e34\\u0e19\\u0e01\\u0e32\\u0e23\\u0e15\\u0e48\\u0e2d\\u0e43\\u0e19\\u0e41\\u0e2d\\u0e1b\",\n  \"Transmitting verification to host app. Please wait...\":\n    \"\\u0e01\\u0e33\\u0e25\\u0e31\\u0e07\\u0e2a\\u0e48\\u0e07\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e44\\u0e1b\\u0e22\\u0e31\\u0e07\\u0e41\\u0e2d\\u0e1b\\u0e42\\u0e2e\\u0e2a\\u0e15\\u0e4c \\u0e01\\u0e23\\u0e38\\u0e13\\u0e32\\u0e23\\u0e2d\\u0e2a\\u0e31\\u0e01\\u0e04\\u0e23\\u0e39\\u0e48...\",\n  \"You will be redirected to the app, please return to this page once you're done\":\n    \"\\u0e04\\u0e38\\u0e13\\u0e08\\u0e30\\u0e16\\u0e39\\u0e01\\u0e19\\u0e33\\u0e44\\u0e1b\\u0e22\\u0e31\\u0e07\\u0e41\\u0e2d\\u0e1b \\u0e01\\u0e23\\u0e38\\u0e13\\u0e32\\u0e01\\u0e25\\u0e31\\u0e1a\\u0e21\\u0e32\\u0e17\\u0e35\\u0e48\\u0e2b\\u0e19\\u0e49\\u0e32\\u0e19\\u0e35\\u0e49\\u0e40\\u0e21\\u0e37\\u0e48\\u0e2d\\u0e40\\u0e2a\\u0e23\\u0e47\\u0e08\\u0e41\\u0e25\\u0e49\\u0e27\",\n  \"Scan with your phone to continue verifying\":\n    \"\\u0e2a\\u0e41\\u0e01\\u0e19\\u0e14\\u0e49\\u0e27\\u0e22\\u0e42\\u0e17\\u0e23\\u0e28\\u0e31\\u0e1e\\u0e17\\u0e4c\\u0e02\\u0e2d\\u0e07\\u0e04\\u0e38\\u0e13\\u0e40\\u0e1e\\u0e37\\u0e48\\u0e2d\\u0e14\\u0e33\\u0e40\\u0e19\\u0e34\\u0e19\\u0e01\\u0e32\\u0e23\\u0e22\\u0e37\\u0e19\\u0e22\\u0e31\\u0e19\\u0e15\\u0e48\\u0e2d\",\n  \"Open Connector URL\":\n    \"\\u0e40\\u0e1b\\u0e34\\u0e14 URL \\u0e15\\u0e31\\u0e27\\u0e40\\u0e0a\\u0e37\\u0e48\\u0e2d\\u0e21\\u0e15\\u0e48\\u0e2d\",\n  \"Or enter this code in World ID App\":\n    \"\\u0e2b\\u0e23\\u0e37\\u0e2d\\u0e1b\\u0e49\\u0e2d\\u0e19\\u0e23\\u0e2b\\u0e31\\u0e2a\\u0e19\\u0e35\\u0e49\\u0e43\\u0e19 World ID App\",\n  Copy: \"\\u0e04\\u0e31\\u0e14\\u0e25\\u0e2d\\u0e01\",\n  \"Expires in\": \"\\u0e2b\\u0e21\\u0e14\\u0e2d\\u0e32\\u0e22\\u0e38\\u0e43\\u0e19\",\n  \"Terms & Privacy\":\n    \"\\u0e02\\u0e49\\u0e2d\\u0e01\\u0e33\\u0e2b\\u0e19\\u0e14\\u0e41\\u0e25\\u0e30\\u0e04\\u0e27\\u0e32\\u0e21\\u0e40\\u0e1b\\u0e47\\u0e19\\u0e2a\\u0e48\\u0e27\\u0e19\\u0e15\\u0e31\\u0e27\",\n};\n","import { en } from \"./en\";\nimport { es } from \"./es\";\nimport { th } from \"./th\";\nimport type { Translations } from \"../types\";\n\nexport const translations: Translations = {\n  en,\n  es,\n  th,\n};\n","import { translations } from \"./translations\";\nimport type {\n  LocalizationConfig,\n  SupportedLanguage,\n  TranslationStrings,\n} from \"./types\";\n\nlet currentConfig: LocalizationConfig = {};\n\nexport const setLocalizationConfig = (config: LocalizationConfig): void => {\n  currentConfig = config;\n};\n\nexport const getLocalizationConfig = (): LocalizationConfig => currentConfig;\n\nconst detectBrowserLanguage = (): SupportedLanguage | undefined => {\n  if (typeof navigator === \"undefined\") return undefined;\n\n  for (const lang of navigator.languages) {\n    const [language] = lang.split(\"-\");\n    const normalizedLang = language.toLowerCase() as SupportedLanguage;\n    if (normalizedLang in translations) {\n      return normalizedLang;\n    }\n  }\n\n  return undefined;\n};\n\nexport const getCurrentLanguage = (): SupportedLanguage => {\n  const config = getLocalizationConfig();\n\n  if (config.language && config.language in translations) {\n    return config.language;\n  }\n\n  const browserLang = detectBrowserLanguage();\n  if (browserLang) {\n    return browserLang;\n  }\n\n  return \"en\";\n};\n\nexport const getTranslations = (): TranslationStrings | undefined => {\n  const currentLang = getCurrentLanguage();\n  return translations[currentLang];\n};\n","import { getTranslations } from \"./localization\";\nimport type { TranslationKey, TranslationStrings } from \"./types\";\n\nconst getLang = (): TranslationStrings | undefined => {\n  return getTranslations();\n};\n\ntype HasPlaceholder<T extends string> = T extends `${string}:${string}`\n  ? true\n  : false;\n\ntype GetPlaceholderName<T extends string> = T extends `:${infer Name}`\n  ? Name extends `${infer Word}${\" \" | \",\" | \":\" | \"!\" | \"?\" | \".\"}${string}`\n    ? Word\n    : Name\n  : never;\n\ntype GetAllPlaceholders<T extends string> = T extends `${string}:${infer After}`\n  ? GetAllPlaceholders<After> | GetPlaceholderName<`:${After}`>\n  : never;\n\ntype TranslationParams<T extends string> =\n  GetAllPlaceholders<T> extends never\n    ? never\n    : { [K in GetAllPlaceholders<T>]: string };\n\nconst replaceParams = (\n  str: string,\n  params?: Record<string, string>,\n): string => {\n  if (!params) return str;\n\n  let result = str;\n  for (const [key, value] of Object.entries(params)) {\n    result = result.replace(`:${key}`, value);\n  }\n  return result;\n};\n\nexport function __<T extends TranslationKey>(\n  str: T,\n  ...args: HasPlaceholder<T> extends true ? [params: TranslationParams<T>] : []\n): string {\n  const [params] = args;\n\n  if (typeof navigator === \"undefined\" && typeof window === \"undefined\") {\n    return replaceParams(str, params);\n  }\n\n  const translated = getLang()?.[str as keyof TranslationStrings] ?? str;\n  return replaceParams(translated, params);\n}\n\nexport {\n  setLocalizationConfig,\n  getLocalizationConfig,\n  getCurrentLanguage,\n} from \"./localization\";\nexport type { SupportedLanguage, TranslationStrings } from \"./types\";\n","import { useEffect, type ReactElement, type ReactNode } from \"react\";\nimport { WIDGET_STYLES } from \"../styles/widgetStyles\";\nimport { ShadowHost } from \"./ShadowHost\";\nimport { XMarkIcon } from \"../components/Icons/XMarkIcon\";\nimport { __ } from \"../lang\";\n\ntype IDKitModalProps = {\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n  children: ReactNode;\n};\n\nfunction ModalContent({\n  onOpenChange,\n  children,\n}: Omit<IDKitModalProps, \"open\">): ReactElement {\n  return (\n    <>\n      <style>{WIDGET_STYLES}</style>\n      <div\n        className=\"idkit-backdrop\"\n        role=\"presentation\"\n        onClick={() => onOpenChange(false)}\n      >\n        <section\n          className=\"idkit-modal\"\n          role=\"dialog\"\n          aria-modal=\"true\"\n          onClick={(event) => event.stopPropagation()}\n        >\n          {/* Close button */}\n          <button\n            type=\"button\"\n            className=\"idkit-close\"\n            onClick={() => onOpenChange(false)}\n            aria-label=\"Close\"\n          >\n            <XMarkIcon />\n          </button>\n\n          {/* Content area */}\n          <div className=\"idkit-content\">{children}</div>\n\n          {/* Footer */}\n          <footer className=\"idkit-footer\">\n            <a\n              href=\"https://developer.world.org/privacy-statement\"\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              {__(\"Terms & Privacy\")}\n            </a>\n          </footer>\n        </section>\n      </div>\n    </>\n  );\n}\n\nexport function IDKitModal({\n  open,\n  onOpenChange,\n  children,\n}: IDKitModalProps): ReactElement | null {\n  useEffect(() => {\n    if (!open || typeof document === \"undefined\") {\n      return;\n    }\n\n    const handleEsc = (event: KeyboardEvent) => {\n      if (event.key === \"Escape\") {\n        onOpenChange(false);\n      }\n    };\n\n    window.addEventListener(\"keydown\", handleEsc);\n    return () => window.removeEventListener(\"keydown\", handleEsc);\n  }, [onOpenChange, open]);\n\n  if (!open || typeof document === \"undefined\") {\n    return null;\n  }\n\n  const content = (\n    <ModalContent onOpenChange={onOpenChange}>{children}</ModalContent>\n  );\n\n  return <ShadowHost>{content}</ShadowHost>;\n}\n","import { useEffect, useState } from \"react\";\n\nexport function useMedia(): \"desktop\" | \"mobile\" {\n  const getInitialState = (): \"desktop\" | \"mobile\" => {\n    if (typeof window !== \"undefined\") {\n      return window.matchMedia(\"(max-width: 1024px)\").matches\n        ? \"mobile\"\n        : \"desktop\";\n    }\n    return \"desktop\";\n  };\n\n  const [media, setMedia] = useState<\"desktop\" | \"mobile\">(getInitialState);\n\n  useEffect(() => {\n    const mql = window.matchMedia(\"(max-width: 1024px)\");\n    const handleChange = (e: MediaQueryList | MediaQueryListEvent) =>\n      setMedia(e.matches ? \"mobile\" : \"desktop\");\n\n    handleChange(mql);\n    mql.addEventListener(\"change\", handleChange);\n    return () => {\n      mql.removeEventListener(\"change\", handleChange);\n    };\n  }, []);\n\n  return media;\n}\n","import type { ReactElement } from \"react\";\nimport humanBadgeIcon from \"./HumanBadgeIcon.svg\";\n\nexport function HumanBadgeIcon(): ReactElement {\n  return <img alt=\"\" src={humanBadgeIcon} width={32} height={32} />;\n}\n","import type { SVGProps } from \"react\";\n\nexport function LoadingIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 24 24\"\n      {...props}\n    >\n      <circle\n        cx=\"12\"\n        cy=\"12\"\n        r=\"10.75\"\n        stroke=\"#191C20\"\n        strokeOpacity=\".16\"\n        strokeWidth=\"2.5\"\n      />\n      <path\n        fill=\"#191C20\"\n        d=\"M17.28 2.633c.338-.6.127-1.368-.505-1.642A12 12 0 0 0 7.459.892c-.638.261-.864 1.024-.539 1.632.326.607 1.08.827 1.725.584a9.504 9.504 0 0 1 6.897.073c.64.257 1.399.053 1.737-.548Z\"\n      />\n    </svg>\n  );\n}\n","import { memo, useMemo, type ReactElement } from \"react\";\nimport QRCodeUtil from \"qrcode/lib/core/qrcode.js\";\n\nconst generateMatrix = (data: string): Array<number[]> => {\n  const arr = (\n    QRCodeUtil as {\n      create: (\n        data: string,\n        opts: { errorCorrectionLevel: string },\n      ) => { modules: { data: Uint8Array } };\n    }\n  ).create(data, { errorCorrectionLevel: \"M\" }).modules.data;\n  const sqrt = Math.sqrt(arr.length);\n\n  return arr.reduce(\n    (rows: Array<number[]>, key: number, index: number) => {\n      if (index % sqrt === 0) rows.push([key]);\n      else rows[rows.length - 1].push(key);\n      return rows;\n    },\n    [] as Array<number[]>,\n  );\n};\n\ntype QRCodeProps = {\n  data: string;\n  size?: number;\n};\n\nfunction QRCodeInner({ data, size = 200 }: QRCodeProps): ReactElement {\n  const dots = useMemo(() => {\n    const elements: ReactElement[] = [];\n    const matrix = generateMatrix(data);\n    const cellSize = size / matrix.length;\n    const qrList = [\n      { x: 0, y: 0 },\n      { x: 1, y: 0 },\n      { x: 0, y: 1 },\n    ];\n\n    qrList.forEach(({ x, y }) => {\n      const x1 = (matrix.length - 7) * cellSize * x;\n      const y1 = (matrix.length - 7) * cellSize * y;\n\n      for (let i = 0; i < 3; i++) {\n        elements.push(\n          <rect\n            fill=\"currentColor\"\n            x={x1 + cellSize * i}\n            y={y1 + cellSize * i}\n            key={`${i}-${x}-${y}`}\n            width={cellSize * (7 - i * 2)}\n            height={cellSize * (7 - i * 2)}\n            rx={(i - 2) * -5}\n            ry={(i - 2) * -5}\n            className={\n              i % 3 === 0\n                ? \"qr-finder-dark\"\n                : i % 3 === 1\n                  ? \"qr-finder-light\"\n                  : \"qr-finder-dark\"\n            }\n          />,\n        );\n      }\n    });\n\n    matrix.forEach((row, i) => {\n      row.forEach((_, j) => {\n        if (!matrix[i][j]) return;\n        if (\n          (i < 7 && j < 7) ||\n          (i > matrix.length - 8 && j < 7) ||\n          (i < 7 && j > matrix.length - 8)\n        )\n          return;\n\n        elements.push(\n          <circle\n            fill=\"currentColor\"\n            r={cellSize / 2.2}\n            key={`circle-${i}-${j}`}\n            cx={i * cellSize + cellSize / 2}\n            cy={j * cellSize + cellSize / 2}\n            className=\"qr-dot\"\n          />,\n        );\n      });\n    });\n\n    return elements;\n  }, [size, data]);\n\n  return (\n    <svg height={size} width={size} data-test-id=\"qr-code\">\n      {dots}\n    </svg>\n  );\n}\n\nexport const QRCode = memo(QRCodeInner);\n","import type { SVGProps } from \"react\";\n\nexport function QRPlaceholderIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      xmlns=\"http://www.w3.org/2000/svg\"\n      fill=\"none\"\n      viewBox=\"0 0 200 200\"\n      {...props}\n    >\n      <path\n        fill=\"#EBECEF\"\n        fillRule=\"evenodd\"\n        d=\"M12.1 0C5.417 0 0 5.417 0 12.1v18.505c0 6.682 5.417 12.1 12.1 12.1h18.505c6.682 0 12.1-5.418 12.1-12.1V12.1c0-6.683-5.418-12.1-12.1-12.1H12.1Zm18.505 11.388H12.1a.712.712 0 0 0-.712.712v18.505c0 .393.319.712.712.712h18.505a.712.712 0 0 0 .712-.712V12.1a.712.712 0 0 0-.712-.712Z\"\n        clipRule=\"evenodd\"\n      />\n      <path\n        fill=\"#EBECEF\"\n        d=\"M197.026 200c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-17.616c0-.778-.313-1.525-.871-2.076a2.996 2.996 0 0 0-2.103-.86h-5.948c-.789 0-1.545.31-2.103.86a2.918 2.918 0 0 0-.871 2.076v8.808h-11.897v-11.744h-11.896v-23.487h11.896v8.808c0 .778.314 1.525.872 2.076.557.55 1.314.86 2.102.86h5.949c.788 0 1.545-.31 2.103-.86a2.922 2.922 0 0 0 .871-2.076v-8.808h8.922c.789 0 1.545-.309 2.103-.86a2.916 2.916 0 0 0 .871-2.076v-5.872c0-.779-.313-1.525-.871-2.076a2.992 2.992 0 0 0-2.103-.86h-29.741c-.789 0-1.545.309-2.103.86a2.916 2.916 0 0 0-.871 2.076v8.808h-23.792v-11.744h8.922c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-5.872c0-.778-.313-1.525-.871-2.076a2.996 2.996 0 0 0-2.103-.86h-5.948c-.789 0-1.546.31-2.103.86a2.918 2.918 0 0 0-.871 2.076v8.808H119.7c-.789 0-1.545.309-2.103.86a2.916 2.916 0 0 0-.871 2.076v5.872c0 .779.313 1.525.871 2.076.558.551 1.314.86 2.103.86h20.819v8.808c0 .778.313 1.525.871 2.076.557.55 1.314.86 2.103.86h8.922v8.808c0 .778.313 1.525.871 2.076.558.55 1.314.859 2.103.859h8.922v11.744h-20.818c-.789 0-1.546.31-2.103.86a2.916 2.916 0 0 0-.871 2.076v5.872c0 .779.313 1.526.871 2.076a2.99 2.99 0 0 0 2.103.86h17.844c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-8.808h11.896v8.808c0 .779.314 1.526.872 2.076a2.99 2.99 0 0 0 2.102.86h17.845Z\"\n      />\n      <path\n        fill=\"#EBECEF\"\n        fillRule=\"evenodd\"\n        d=\"M157.295 12.1c0-6.683 5.418-12.1 12.1-12.1H187.9c6.683 0 12.1 5.417 12.1 12.1v18.505c0 6.682-5.417 12.1-12.1 12.1h-18.505c-6.682 0-12.1-5.418-12.1-12.1V12.1Zm12.1-.712H187.9c.393 0 .712.319.712.712v18.505a.712.712 0 0 1-.712.712h-18.505a.712.712 0 0 1-.712-.712V12.1c0-.393.319-.712.712-.712ZM12.1 157.295c-6.683 0-12.1 5.418-12.1 12.1V187.9c0 6.683 5.417 12.1 12.1 12.1h18.505c6.682 0 12.1-5.417 12.1-12.1v-18.505c0-6.682-5.418-12.1-12.1-12.1H12.1Zm19.217 12.1a.712.712 0 0 0-.712-.712H12.1a.712.712 0 0 0-.712.712V187.9c0 .393.319.712.712.712h18.505a.712.712 0 0 0 .712-.712v-18.505Z\"\n        clipRule=\"evenodd\"\n      />\n      <path\n        fill=\"#EBECEF\"\n        d=\"M6.05 89.68A6.05 6.05 0 0 0 0 95.73v9.252a6.05 6.05 0 0 0 6.05 6.05h9.253a6.05 6.05 0 0 0 6.05-6.05V95.73c0-.678-.112-1.33-.318-1.94.445.105.908.16 1.385.16h27.758a6.05 6.05 0 0 0 6.05-6.05v-9.252a6.05 6.05 0 0 0-6.05-6.05H22.42a6.05 6.05 0 0 0-6.05 6.05V87.9c0 .678.112 1.33.317 1.939a6.065 6.065 0 0 0-1.385-.16H6.05Zm102.135-40.926a6.05 6.05 0 0 1 6.05-6.05h9.253a6.05 6.05 0 0 1 6.049 6.05v9.253a6.05 6.05 0 0 1-6.049 6.05h-9.253a6.05 6.05 0 0 1-6.05-6.05v-9.253ZM67.616 184.698a6.05 6.05 0 0 1 6.05-6.05h9.252c.678 0 1.33.111 1.939.317a6.064 6.064 0 0 1-.16-1.385v-9.253a6.05 6.05 0 0 1 6.05-6.049H100a6.05 6.05 0 0 1 6.05 6.049v9.253a6.05 6.05 0 0 1-6.05 6.05h-9.253c-.678 0-1.33-.112-1.938-.317.104.444.159.908.159 1.385v9.252a6.05 6.05 0 0 1-6.05 6.05h-9.253a6.05 6.05 0 0 1-6.05-6.05v-9.252Zm78.291-120.285a6.05 6.05 0 0 1 6.05-6.05h41.993a6.05 6.05 0 0 1 6.05 6.05v9.252a6.05 6.05 0 0 1-6.05 6.05h-41.993a6.05 6.05 0 0 1-6.05-6.05v-9.252ZM95.018 0a6.05 6.05 0 0 0-6.05 6.05v17.082a6.05 6.05 0 0 0 6.05 6.05h9.252a6.05 6.05 0 0 0 6.05-6.05V6.05A6.05 6.05 0 0 0 104.27 0h-9.252Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        fillRule=\"evenodd\"\n        d=\"M12.1 0C5.417 0 0 5.417 0 12.1v18.505c0 6.682 5.417 12.1 12.1 12.1h18.505c6.682 0 12.1-5.418 12.1-12.1V12.1c0-6.683-5.418-12.1-12.1-12.1H12.1Zm18.505 11.388H12.1a.712.712 0 0 0-.712.712v18.505c0 .393.319.712.712.712h18.505a.712.712 0 0 0 .712-.712V12.1a.712.712 0 0 0-.712-.712Z\"\n        clipRule=\"evenodd\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M197.026 200c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-17.616c0-.778-.313-1.525-.871-2.076a2.996 2.996 0 0 0-2.103-.86h-5.948c-.789 0-1.545.31-2.103.86a2.918 2.918 0 0 0-.871 2.076v8.808h-11.897v-11.744h-11.896v-23.487h11.896v8.808c0 .778.314 1.525.872 2.076.557.55 1.314.86 2.102.86h5.949c.788 0 1.545-.31 2.103-.86a2.922 2.922 0 0 0 .871-2.076v-8.808h8.922c.789 0 1.545-.309 2.103-.86a2.916 2.916 0 0 0 .871-2.076v-5.872c0-.779-.313-1.525-.871-2.076a2.992 2.992 0 0 0-2.103-.86h-29.741c-.789 0-1.545.309-2.103.86a2.916 2.916 0 0 0-.871 2.076v8.808h-23.792v-11.744h8.922c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-5.872c0-.778-.313-1.525-.871-2.076a2.996 2.996 0 0 0-2.103-.86h-5.948c-.789 0-1.546.31-2.103.86a2.918 2.918 0 0 0-.871 2.076v8.808H119.7c-.789 0-1.545.309-2.103.86a2.916 2.916 0 0 0-.871 2.076v5.872c0 .779.313 1.525.871 2.076.558.551 1.314.86 2.103.86h20.819v8.808c0 .778.313 1.525.871 2.076.557.55 1.314.86 2.103.86h8.922v8.808c0 .778.313 1.525.871 2.076.558.55 1.314.859 2.103.859h8.922v11.744h-20.818c-.789 0-1.546.31-2.103.86a2.916 2.916 0 0 0-.871 2.076v5.872c0 .779.313 1.526.871 2.076a2.99 2.99 0 0 0 2.103.86h17.844c.789 0 1.545-.309 2.103-.86.558-.55.871-1.297.871-2.076v-8.808h11.896v8.808c0 .779.314 1.526.872 2.076a2.99 2.99 0 0 0 2.102.86h17.845Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        fillRule=\"evenodd\"\n        d=\"M157.295 12.1c0-6.683 5.418-12.1 12.1-12.1H187.9c6.683 0 12.1 5.417 12.1 12.1v18.505c0 6.682-5.417 12.1-12.1 12.1h-18.505c-6.682 0-12.1-5.418-12.1-12.1V12.1Zm12.1-.712H187.9c.393 0 .712.319.712.712v18.505a.712.712 0 0 1-.712.712h-18.505a.712.712 0 0 1-.712-.712V12.1c0-.393.319-.712.712-.712Z\"\n        clipRule=\"evenodd\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        fillRule=\"evenodd\"\n        d=\"M12.1 157.295c-6.683 0-12.1 5.418-12.1 12.1V187.9c0 6.683 5.417 12.1 12.1 12.1h18.505c6.682 0 12.1-5.417 12.1-12.1v-18.505c0-6.682-5.418-12.1-12.1-12.1H12.1Zm19.217 12.1a.712.712 0 0 0-.712-.712H12.1a.712.712 0 0 0-.712.712V187.9c0 .393.319.712.712.712h18.505a.712.712 0 0 0 .712-.712v-18.505Z\"\n        clipRule=\"evenodd\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M6.05 89.68A6.05 6.05 0 0 0 0 95.73v9.252a6.05 6.05 0 0 0 6.05 6.05h9.253a6.05 6.05 0 0 0 6.05-6.05V95.73c0-.678-.112-1.33-.318-1.94.445.105.908.16 1.385.16h27.758a6.05 6.05 0 0 0 6.05-6.05v-9.252a6.05 6.05 0 0 0-6.05-6.05H22.42a6.05 6.05 0 0 0-6.05 6.05V87.9c0 .678.112 1.33.317 1.939a6.065 6.065 0 0 0-1.385-.16H6.05Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M108.185 48.754a6.05 6.05 0 0 1 6.05-6.05h9.253a6.05 6.05 0 0 1 6.049 6.05v9.253a6.05 6.05 0 0 1-6.049 6.05h-9.253a6.05 6.05 0 0 1-6.05-6.05v-9.253Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M67.616 184.698a6.05 6.05 0 0 1 6.05-6.05h9.252c.678 0 1.33.111 1.939.317a6.064 6.064 0 0 1-.16-1.385v-9.253a6.05 6.05 0 0 1 6.05-6.049H100a6.05 6.05 0 0 1 6.05 6.049v9.253a6.05 6.05 0 0 1-6.05 6.05h-9.253c-.678 0-1.33-.112-1.938-.317.104.444.159.908.159 1.385v9.252a6.05 6.05 0 0 1-6.05 6.05h-9.253a6.05 6.05 0 0 1-6.05-6.05v-9.252Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M145.907 64.413a6.05 6.05 0 0 1 6.05-6.05h41.993a6.05 6.05 0 0 1 6.05 6.05v9.252a6.05 6.05 0 0 1-6.05 6.05h-41.993a6.05 6.05 0 0 1-6.05-6.05v-9.252Z\"\n      />\n      <path\n        fill=\"url(#idkit_qr_placeholder_gradient)\"\n        d=\"M95.018 0a6.05 6.05 0 0 0-6.05 6.05v17.082a6.05 6.05 0 0 0 6.05 6.05h9.252a6.05 6.05 0 0 0 6.05-6.05V6.05A6.05 6.05 0 0 0 104.27 0h-9.252Z\"\n      />\n      <defs>\n        <linearGradient\n          id=\"idkit_qr_placeholder_gradient\"\n          x1=\"0\"\n          x2=\"200\"\n          y1=\"0\"\n          y2=\"200\"\n          gradientUnits=\"userSpaceOnUse\"\n        >\n          <stop offset=\".37\" stopColor=\"#fff\" stopOpacity=\"0\" />\n          <stop offset=\".5\" stopColor=\"#fff\" stopOpacity=\".85\" />\n          <stop offset=\".63\" stopColor=\"#fff\" stopOpacity=\"0\" />\n        </linearGradient>\n      </defs>\n    </svg>\n  );\n}\n","import { useCallback, useState, type ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { QRCode } from \"../../widget/QRCode\";\nimport { QRPlaceholderIcon } from \"../Icons/QRPlaceholderIcon\";\nimport { HumanBadgeIcon } from \"../Icons/HumanBadgeIcon\";\n\ntype QRStateProps = {\n  qrData: string | null;\n  showSimulatorCallout?: boolean;\n};\n\nexport function QRState({\n  qrData,\n  showSimulatorCallout,\n}: QRStateProps): ReactElement {\n  const [copiedLink, setCopiedLink] = useState(false);\n  const [showMobileQR, setShowMobileQR] = useState(false);\n\n  const copyLink = useCallback(() => {\n    if (!qrData) return;\n    void navigator.clipboard.writeText(qrData);\n    setCopiedLink(true);\n    setTimeout(() => setCopiedLink(false), 2000);\n  }, [qrData]);\n\n  return (\n    <>\n      {/* Mobile and tablet: deep link with a QR fallback */}\n      <div className=\"idkit-mobile-only\">\n        <div className=\"idkit-mobile-handoff\">\n          <a href={qrData ?? undefined} className=\"idkit-deeplink-btn\">\n            <HumanBadgeIcon />\n            <span>{__(\"Open World ID App\")}</span>\n          </a>\n          <div className=\"idkit-handoff-divider\">\n            <span aria-hidden=\"true\" />\n            <span>{__(\"or\")}</span>\n            <span aria-hidden=\"true\" />\n          </div>\n          <button\n            type=\"button\"\n            className=\"idkit-qr-toggle-btn\"\n            aria-expanded={showMobileQR}\n            onClick={() => setShowMobileQR((show) => !show)}\n          >\n            {showMobileQR ? __(\"Hide QR Code\") : __(\"Display QR Code\")}\n          </button>\n          {showMobileQR && (\n            <div className=\"idkit-mobile-qr\">\n              <div\n                className={`idkit-copy-toast ${copiedLink ? \"visible\" : \"hidden\"}`}\n              >\n                <span>{__(\"QR Code copied\")}</span>\n              </div>\n              <div className=\"idkit-qr-wrapper\">\n                <div className=\"idkit-qr-inner\">\n                  {qrData ? (\n                    <div\n                      onClick={copyLink}\n                      onKeyDown={(event) => {\n                        if (event.key === \"Enter\") copyLink();\n                      }}\n                      role=\"button\"\n                      tabIndex={0}\n                      style={{ cursor: \"pointer\" }}\n                    >\n                      <QRCode data={qrData} size={160} />\n                    </div>\n                  ) : (\n                    <div className=\"idkit-qr-placeholder\">\n                      <QRPlaceholderIcon />\n                    </div>\n                  )}\n                </div>\n              </div>\n            </div>\n          )}\n        </div>\n      </div>\n\n      {/* Desktop: QR code */}\n      <div className=\"idkit-desktop-only\">\n        <div\n          className={`idkit-copy-toast ${copiedLink ? \"visible\" : \"hidden\"}`}\n          style={{\n            textAlign: \"center\",\n            fontSize: \"14px\",\n            color: \"var(--idkit-text-secondary)\",\n          }}\n        >\n          <span>{__(\"QR Code copied\")}</span>\n        </div>\n        <div className=\"idkit-qr-wrapper\">\n          <div className=\"idkit-qr-inner\">\n            {qrData ? (\n              <div\n                onClick={copyLink}\n                onKeyDown={(e) => {\n                  if (e.key === \"Enter\") copyLink();\n                }}\n                role=\"button\"\n                tabIndex={0}\n                style={{ cursor: \"pointer\" }}\n              >\n                <QRCode data={qrData} size={200} />\n              </div>\n            ) : (\n              <div className=\"idkit-qr-placeholder\">\n                <QRPlaceholderIcon />\n              </div>\n            )}\n          </div>\n        </div>\n        {showSimulatorCallout && qrData && (\n          <p className=\"idkit-simulator-callout\">\n            Testing in staging?{\" \"}\n            <a\n              href={`https://simulator.worldcoin.org?connect_url=${encodeURIComponent(qrData)}`}\n              target=\"_blank\"\n              rel=\"noopener noreferrer\"\n            >\n              Use the simulator\n            </a>\n          </p>\n        )}\n      </div>\n    </>\n  );\n}\n","import type { ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { useMedia } from \"../../hooks/useMedia\";\nimport { HumanBadgeIcon } from \"../Icons/HumanBadgeIcon\";\nimport { LoadingIcon } from \"../Icons/LoadingIcon\";\nimport { QRState } from \"./QRState\";\n\ntype WorldIDStateProps = {\n  connectorURI: string | null;\n  isAwaitingUserConfirmation: boolean;\n  showSimulatorCallout?: boolean;\n};\n\nexport function WorldIDState({\n  connectorURI,\n  isAwaitingUserConfirmation,\n  showSimulatorCallout,\n}: WorldIDStateProps): ReactElement {\n  const media = useMedia();\n\n  return (\n    <div\n      className=\"idkit-worldid-state\"\n      style={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        textAlign: \"center\",\n      }}\n    >\n      {/* Verified-human badge */}\n      <div className=\"idkit-worldid-icon\">\n        <HumanBadgeIcon />\n      </div>\n\n      {/* Heading */}\n      <h2 className=\"idkit-heading\">{__(\"Connect your World ID\")}</h2>\n\n      {/* Subtext: different for mobile vs desktop */}\n      <p className=\"idkit-subtext\">\n        {media === \"mobile\"\n          ? __(\n              \"You will be redirected to the app, please return to this page once you're done\",\n            )\n          : __(\"Use phone camera to scan the QR code\")}\n      </p>\n\n      {/* QR Container */}\n      <div className=\"idkit-qr-container\">\n        {isAwaitingUserConfirmation && (\n          <div className=\"idkit-qr-overlay\">\n            <div className=\"idkit-spinner\">\n              <LoadingIcon />\n            </div>\n            <div className=\"idkit-connecting-text\">\n              <p>{__(\"Connecting...\")}</p>\n              <p>{__(\"Please continue in app\")}</p>\n            </div>\n          </div>\n        )}\n\n        <div\n          className={`idkit-qr-blur ${isAwaitingUserConfirmation ? \"blurred\" : \"\"}`}\n        >\n          <div style={{ display: \"flex\", justifyContent: \"center\" }}>\n            <QRState\n              qrData={connectorURI}\n              showSimulatorCallout={showSimulatorCallout}\n            />\n          </div>\n        </div>\n      </div>\n    </div>\n  );\n}\n","import type { SVGProps } from \"react\";\n\nexport function CheckIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      width=\"88\"\n      height=\"88\"\n      viewBox=\"0 0 88 88\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect width=\"88\" height=\"88\" rx=\"44\" fill=\"#00C230\" />\n      <rect\n        opacity=\"0.2\"\n        width=\"88\"\n        height=\"88\"\n        rx=\"44\"\n        fill=\"url(#idkit_check_radial)\"\n      />\n      <rect\n        x=\"0.5\"\n        y=\"0.5\"\n        width=\"87\"\n        height=\"87\"\n        rx=\"43.5\"\n        stroke=\"url(#idkit_check_linear)\"\n      />\n      <path d=\"M29.5 45.5L37.5 53.5L57.5 33.5\" stroke=\"white\" strokeWidth=\"3\" />\n      <defs>\n        <radialGradient\n          id=\"idkit_check_radial\"\n          cx=\"0\"\n          cy=\"0\"\n          r=\"1\"\n          gradientUnits=\"userSpaceOnUse\"\n          gradientTransform=\"translate(20 -1.6729e-06) rotate(63.4349) scale(98.387 97.9627)\"\n        >\n          <stop stopColor=\"white\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </radialGradient>\n        <linearGradient\n          id=\"idkit_check_linear\"\n          x1=\"44\"\n          y1=\"0\"\n          x2=\"44\"\n          y2=\"88\"\n          gradientUnits=\"userSpaceOnUse\"\n        >\n          <stop stopColor=\"white\" stopOpacity=\"0.3\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </linearGradient>\n      </defs>\n    </svg>\n  );\n}\n","import type { ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { CheckIcon } from \"../Icons/CheckIcon\";\n\nexport function SuccessState(): ReactElement {\n  return (\n    <div\n      style={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        textAlign: \"center\",\n      }}\n    >\n      <div className=\"idkit-success-icon\">\n        <CheckIcon />\n      </div>\n      <h2 className=\"idkit-heading\">{__(\"All set!\")}</h2>\n      <p className=\"idkit-subtext\" style={{ maxWidth: 260 }}>\n        {__(\"Your World ID is now connected\")}\n      </p>\n    </div>\n  );\n}\n","import type { SVGProps } from \"react\";\n\nexport function ErrorIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      width=\"88\"\n      height=\"88\"\n      viewBox=\"0 0 88 88\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect width=\"88\" height=\"88\" rx=\"44\" fill=\"#9BA3AE\" />\n      <rect\n        opacity=\"0.2\"\n        width=\"88\"\n        height=\"88\"\n        rx=\"44\"\n        fill=\"url(#idkit_error_radial)\"\n      />\n      <rect\n        x=\"0.5\"\n        y=\"0.5\"\n        width=\"87\"\n        height=\"87\"\n        rx=\"43.5\"\n        stroke=\"url(#idkit_error_linear)\"\n      />\n      <path\n        d=\"M33.0146 53.9853L43.4999 43.5M53.9851 33.0147L43.4999 43.5M43.4999 43.5L33.0146 33.0147M43.4999 43.5L53.9851 53.9853\"\n        stroke=\"white\"\n        strokeWidth=\"3\"\n      />\n      <defs>\n        <radialGradient\n          id=\"idkit_error_radial\"\n          cx=\"0\"\n          cy=\"0\"\n          r=\"1\"\n          gradientUnits=\"userSpaceOnUse\"\n          gradientTransform=\"translate(20 -1.6729e-06) rotate(63.4349) scale(98.387 97.9627)\"\n        >\n          <stop stopColor=\"white\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </radialGradient>\n        <linearGradient\n          id=\"idkit_error_linear\"\n          x1=\"44\"\n          y1=\"0\"\n          x2=\"44\"\n          y2=\"88\"\n          gradientUnits=\"userSpaceOnUse\"\n        >\n          <stop stopColor=\"white\" stopOpacity=\"0.3\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </linearGradient>\n      </defs>\n    </svg>\n  );\n}\n","import type { SVGProps } from \"react\";\n\nexport function WarningIcon(props: SVGProps<SVGSVGElement>) {\n  return (\n    <svg\n      width=\"88\"\n      height=\"88\"\n      viewBox=\"0 0 88 88\"\n      fill=\"none\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n      {...props}\n    >\n      <rect width=\"88\" height=\"88\" rx=\"44\" fill=\"#FFAE00\" />\n      <rect\n        opacity=\"0.2\"\n        width=\"88\"\n        height=\"88\"\n        rx=\"44\"\n        fill=\"url(#idkit_warning_radial)\"\n      />\n      <rect\n        x=\"0.5\"\n        y=\"0.5\"\n        width=\"87\"\n        height=\"87\"\n        rx=\"43.5\"\n        stroke=\"url(#idkit_warning_linear)\"\n      />\n      <path\n        d=\"M64.1707 59.5415H22.8298L43.4998 22.3354L64.1707 59.5415ZM42.1208 51.3003L42.1218 54.0503H44.8992L44.8982 51.3003H42.1208ZM42.1248 46.7085H44.8748V36.6255H42.1248V46.7085Z\"\n        fill=\"white\"\n      />\n      <defs>\n        <radialGradient\n          id=\"idkit_warning_radial\"\n          cx=\"0\"\n          cy=\"0\"\n          r=\"1\"\n          gradientUnits=\"userSpaceOnUse\"\n          gradientTransform=\"translate(20 -1.6729e-06) rotate(63.4349) scale(98.387 97.9627)\"\n        >\n          <stop stopColor=\"white\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </radialGradient>\n        <linearGradient\n          id=\"idkit_warning_linear\"\n          x1=\"44\"\n          y1=\"0\"\n          x2=\"44\"\n          y2=\"88\"\n          gradientUnits=\"userSpaceOnUse\"\n        >\n          <stop stopColor=\"white\" stopOpacity=\"0.3\" />\n          <stop offset=\"1\" stopColor=\"white\" stopOpacity=\"0\" />\n        </linearGradient>\n      </defs>\n    </svg>\n  );\n}\n","import type { ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { IDKitErrorCodes } from \"@worldcoin/idkit-core\";\nimport { ErrorIcon } from \"../Icons/ErrorIcon\";\nimport { WarningIcon } from \"../Icons/WarningIcon\";\n\ntype ErrorStateProps = {\n  errorCode: IDKitErrorCodes | null;\n  onRetry: () => void;\n  onClose: () => void;\n};\n\ntype ErrorVariant =\n  | \"already_verified\"\n  | \"cancelled\"\n  | \"configuration_error\"\n  | \"connection\"\n  | \"host_verification\"\n  | \"identity_attributes_not_matched\"\n  | \"user_presence_failed\"\n  | \"generic\";\n\nconst errorCodeVariants: Partial<Record<IDKitErrorCodes, ErrorVariant>> = {\n  [IDKitErrorCodes.UserRejected]: \"cancelled\",\n  [IDKitErrorCodes.VerificationRejected]: \"cancelled\",\n  [IDKitErrorCodes.Cancelled]: \"cancelled\",\n  [IDKitErrorCodes.UserPresenceFailed]: \"user_presence_failed\",\n  [IDKitErrorCodes.ConnectionFailed]: \"connection\",\n  [IDKitErrorCodes.FailedByHostApp]: \"host_verification\",\n  [IDKitErrorCodes.InvalidRpSignature]: \"configuration_error\",\n  [IDKitErrorCodes.NullifierReplayed]: \"already_verified\",\n  [IDKitErrorCodes.DuplicateNonce]: \"configuration_error\",\n  [IDKitErrorCodes.UnknownRp]: \"configuration_error\",\n  [IDKitErrorCodes.InactiveRp]: \"configuration_error\",\n  [IDKitErrorCodes.TimestampTooOld]: \"configuration_error\",\n  [IDKitErrorCodes.TimestampTooFarInFuture]: \"configuration_error\",\n  [IDKitErrorCodes.InvalidTimestamp]: \"configuration_error\",\n  [IDKitErrorCodes.RpSignatureExpired]: \"configuration_error\",\n  [IDKitErrorCodes.IdentityAttributesNotMatched]:\n    \"identity_attributes_not_matched\",\n  [IDKitErrorCodes.InvalidRpIdFormat]: \"configuration_error\",\n};\n\nconst variantConfig = {\n  already_verified: {\n    title: \"Already verified\" as const,\n    message: \"You've already verified for this action.\" as const,\n    Icon: WarningIcon,\n    actionLabel: \"Close\" as const,\n    action: \"close\" as const,\n  },\n  cancelled: {\n    title: \"Request cancelled\" as const,\n    message: \"You've cancelled the request in World ID App.\" as const,\n    Icon: WarningIcon,\n    actionLabel: \"Try Again\" as const,\n    action: \"retry\" as const,\n  },\n  configuration_error: {\n    title: \"Verification unavailable\" as const,\n    message:\n      \"This verification request couldn't be completed. Please contact the website owner.\" as const,\n    Icon: ErrorIcon,\n    actionLabel: \"Close\" as const,\n    action: \"close\" as const,\n  },\n  connection: {\n    title: \"Connection lost\" as const,\n    message: \"Please check your connection and try again.\" as const,\n    Icon: ErrorIcon, // placeholder — swap for WifiOffIcon later\n    actionLabel: \"Try Again\" as const,\n    action: \"retry\" as const,\n  },\n  host_verification: {\n    title: \"Verification declined\" as const,\n    message:\n      \"Failed to verify your credential proof. Please contact the website owner.\" as const,\n    Icon: ErrorIcon,\n    actionLabel: \"Try Again\" as const,\n    action: \"retry\" as const,\n  },\n  identity_attributes_not_matched: {\n    title: \"Verification requirements not met\" as const,\n    message:\n      \"Your World ID doesn't meet the requirements for this verification.\" as const,\n    Icon: WarningIcon,\n    actionLabel: \"Close\" as const,\n    action: \"close\" as const,\n  },\n  user_presence_failed: {\n    title: \"Presence check failed\" as const,\n    message:\n      \"World ID App couldn't confirm your presence for this request.\" as const,\n    Icon: WarningIcon,\n    actionLabel: \"Close\" as const,\n    action: \"close\" as const,\n  },\n  generic: {\n    title: \"Something went wrong\" as const,\n    message: \"We couldn't complete your request. Please try again.\" as const,\n    Icon: ErrorIcon,\n    actionLabel: \"Try Again\" as const,\n    action: \"retry\" as const,\n  },\n};\n\nfunction getVariant(errorCode: IDKitErrorCodes | null): ErrorVariant {\n  if (!errorCode) {\n    return \"generic\";\n  }\n\n  return errorCodeVariants[errorCode] ?? \"generic\";\n}\n\nexport function ErrorState({\n  errorCode,\n  onClose,\n  onRetry,\n}: ErrorStateProps): ReactElement {\n  const variant = getVariant(errorCode);\n  const { title, message, Icon, action, actionLabel } = variantConfig[variant];\n  const handleAction = action === \"close\" ? onClose : onRetry;\n\n  return (\n    <div\n      style={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        textAlign: \"center\",\n      }}\n    >\n      <div className=\"idkit-error-icon\">\n        <Icon />\n      </div>\n      <p className=\"idkit-error-title\">{__(title)}</p>\n      <p className=\"idkit-error-message\">{__(message)}</p>\n      <button type=\"button\" className=\"idkit-retry-btn\" onClick={handleAction}>\n        {__(actionLabel)}\n      </button>\n    </div>\n  );\n}\n","import { useEffect, useRef, type ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { LoadingIcon } from \"../Icons/LoadingIcon\";\n\ntype Props = {\n  onVerify: () => Promise<void> | void;\n};\n\nexport function HostAppVerificationState({ onVerify }: Props): ReactElement {\n  const calledRef = useRef(false);\n\n  useEffect(() => {\n    if (calledRef.current) return;\n    calledRef.current = true;\n\n    void onVerify();\n    // eslint-disable-next-line react-hooks/exhaustive-deps\n  }, []);\n\n  return (\n    <div\n      style={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        textAlign: \"center\",\n      }}\n    >\n      <div className=\"idkit-spinner\">\n        <LoadingIcon />\n      </div>\n      <p className=\"idkit-subtext\">\n        {__(\"Transmitting verification to host app. Please wait...\")}\n      </p>\n    </div>\n  );\n}\n","import {\n  useCallback,\n  useEffect,\n  useRef,\n  useState,\n  type ReactElement,\n} from \"react\";\nimport { IDKitErrorCodes, type IDKitDebugReport } from \"@worldcoin/idkit-core\";\nimport type { IDKitHookResult } from \"../types\";\nimport { IDKitModal } from \"./IDKitModal\";\nimport { WorldIDState } from \"../components/States/WorldIDState\";\nimport { SuccessState } from \"../components/States/SuccessState\";\nimport { ErrorState } from \"../components/States/ErrorState\";\nimport { HostAppVerificationState } from \"../components/States/HostAppVerificationState\";\nimport { setLocalizationConfig } from \"../lang\";\nimport type { SupportedLanguage } from \"../lang/types\";\n\ntype VisualStage = \"worldid\" | \"host_verification\" | \"success\" | \"error\";\n\nfunction getVisualStage(\n  isSuccess: boolean,\n  isError: boolean,\n  isHostVerifying: boolean,\n): VisualStage {\n  if (isError) return \"error\";\n  if (isHostVerifying) return \"host_verification\";\n  if (isSuccess) return \"success\";\n  return \"worldid\";\n}\n\ntype MaybePromise<T> = Promise<T> | T;\n\ntype HostVerifyRun<TResult> = {\n  result: TResult;\n  gen: number;\n};\n\nexport type IDKitWidgetBaseProps<TResult> = {\n  flow: IDKitHookResult<TResult>;\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n  handleVerify?: (result: TResult) => MaybePromise<void>;\n  onSuccess: (result: TResult) => MaybePromise<void>;\n  onError?: (\n    errorCode: IDKitErrorCodes,\n    debugReport?: IDKitDebugReport,\n  ) => MaybePromise<void>;\n  autoClose?: boolean;\n  language?: SupportedLanguage;\n  showSimulatorCallout: boolean;\n};\n\nexport function IDKitWidgetBase<TResult>({\n  flow,\n  open,\n  onOpenChange,\n  handleVerify,\n  onSuccess,\n  onError,\n  autoClose = true,\n  language,\n  showSimulatorCallout,\n}: IDKitWidgetBaseProps<TResult>): ReactElement | null {\n  const { open: openFlow, reset: resetFlow } = flow;\n\n  const [hostVerifyResult, setHostVerifyResult] = useState<\n    \"passed\" | \"failed\" | null\n  >(null);\n  const lastResultRef = useRef<TResult | null>(null);\n  const lastErrorCodeRef = useRef<IDKitErrorCodes | null>(null);\n  const handleVerifyRef = useRef(handleVerify);\n  const hostVerifyRunRef = useRef<HostVerifyRun<TResult> | null>(null);\n  // Generation counter: changed on start/cancel to ignore stale handleVerify\n  // completions after close, retry, or a newer proof.\n  const verifyGenRef = useRef(0);\n\n  handleVerifyRef.current = handleVerify;\n\n  const cancelHostVerifyRun = useCallback(() => {\n    hostVerifyRunRef.current = null;\n    verifyGenRef.current++;\n  }, []);\n\n  const startHostVerify = useCallback((result: TResult) => {\n    const currentHandleVerify = handleVerifyRef.current;\n\n    if (!currentHandleVerify || hostVerifyRunRef.current?.result === result) {\n      return;\n    }\n\n    const gen = ++verifyGenRef.current;\n    const run = { result, gen };\n    hostVerifyRunRef.current = run;\n\n    return Promise.resolve(currentHandleVerify(result))\n      .then(() => {\n        if (hostVerifyRunRef.current === run && verifyGenRef.current === gen) {\n          hostVerifyRunRef.current = null;\n          setHostVerifyResult(\"passed\");\n        }\n      })\n      .catch(() => {\n        if (hostVerifyRunRef.current === run && verifyGenRef.current === gen) {\n          hostVerifyRunRef.current = null;\n          setHostVerifyResult(\"failed\");\n        }\n      });\n  }, []);\n\n  // Set language config\n  useEffect(() => {\n    if (language) {\n      setLocalizationConfig({ language });\n    }\n  }, [language]);\n\n  useEffect(() => {\n    if (open) {\n      setHostVerifyResult(null);\n      openFlow();\n      return;\n    }\n\n    setHostVerifyResult(null);\n    lastResultRef.current = null;\n    lastErrorCodeRef.current = null;\n    cancelHostVerifyRun();\n    resetFlow();\n  }, [open, openFlow, resetFlow, cancelHostVerifyRun]);\n\n  const isSuccess =\n    flow.isSuccess && (!handleVerify || hostVerifyResult === \"passed\");\n  const isError = flow.isError || hostVerifyResult === \"failed\";\n  const isHostVerifying =\n    flow.isSuccess && Boolean(handleVerify) && hostVerifyResult === null;\n  const effectiveErrorCode =\n    flow.errorCode ??\n    (hostVerifyResult === \"failed\" ? IDKitErrorCodes.FailedByHostApp : null);\n\n  useEffect(() => {\n    // Skip while closed/closing (see the error effect below for the rationale):\n    // auto-close nulls the dedupe refs in the same commit, which would otherwise\n    // re-fire onSuccess for the same result.\n    if (\n      !open ||\n      !isSuccess ||\n      !flow.result ||\n      flow.result === lastResultRef.current\n    ) {\n      return;\n    }\n\n    lastResultRef.current = flow.result;\n    void Promise.resolve(onSuccess(flow.result)).catch(() => {\n      // Swallow host callback errors to keep widget flow stable.\n    });\n  }, [open, flow.result, isSuccess, onSuccess]);\n\n  useEffect(() => {\n    // Skip while closed/closing. When the widget auto-closes on error (World\n    // App path), the open-effect's close branch nulls `lastErrorCodeRef` in the\n    // same commit — and effects run open-effect → error-effect — so without this\n    // `!open` guard the error effect would re-run with a now-null dedupe ref but\n    // a still-set `effectiveErrorCode` (the hook's reset hasn't propagated yet)\n    // and deliver `onError` a second time. Errors are only delivered while open.\n    if (\n      !open ||\n      !effectiveErrorCode ||\n      effectiveErrorCode === lastErrorCodeRef.current\n    ) {\n      return;\n    }\n\n    lastErrorCodeRef.current = effectiveErrorCode;\n    // Only flow/bridge errors carry a debug report; host-app verify failures don't.\n    const debugReport = flow.errorCode ? flow.getDebugReport() : undefined;\n    const errorResult = debugReport\n      ? onError?.(effectiveErrorCode, debugReport)\n      : onError?.(effectiveErrorCode);\n    void Promise.resolve(errorResult).catch(() => {\n      // Swallow host callback errors to keep widget flow stable.\n    });\n  }, [open, effectiveErrorCode, flow, onError]);\n\n  // In World App context there's no UI to render HostAppVerificationState,\n  // so invoke handleVerify programmatically when the proof arrives.\n  useEffect(() => {\n    if (!open || !flow.isInWorldApp || !isHostVerifying || !flow.result) {\n      return;\n    }\n\n    void startHostVerify(flow.result);\n  }, [open, flow.isInWorldApp, isHostVerifying, flow.result, startHostVerify]);\n\n  // In World App there's no visible UI, so auto-close immediately on success or error.\n  // In bridge flow, only auto-close on success after the 2.5s delay (errors show retry UI).\n  useEffect(() => {\n    if (flow.isInWorldApp && (isSuccess || isError)) {\n      onOpenChange(false);\n    } else if (isSuccess && autoClose) {\n      const timer = setTimeout(() => onOpenChange(false), 2500);\n      return () => clearTimeout(timer);\n    }\n  }, [isSuccess, isError, autoClose, onOpenChange, flow.isInWorldApp]);\n\n  // In World App context, the host app handles all UI — render nothing.\n  if (flow.isInWorldApp) {\n    return null;\n  }\n\n  const stage = getVisualStage(isSuccess, isError, isHostVerifying);\n\n  return (\n    <IDKitModal open={open} onOpenChange={onOpenChange}>\n      {stage === \"worldid\" && (\n        <WorldIDState\n          connectorURI={flow.connectorURI}\n          isAwaitingUserConfirmation={flow.isAwaitingUserConfirmation}\n          showSimulatorCallout={showSimulatorCallout}\n        />\n      )}\n      {stage === \"host_verification\" && (\n        <HostAppVerificationState\n          onVerify={() => startHostVerify(flow.result!)}\n        />\n      )}\n      {stage === \"success\" && <SuccessState />}\n      {stage === \"error\" && (\n        <ErrorState\n          errorCode={effectiveErrorCode}\n          onClose={() => onOpenChange(false)}\n          onRetry={() => {\n            setHostVerifyResult(null);\n            lastResultRef.current = null;\n            lastErrorCodeRef.current = null;\n            cancelHostVerifyRun();\n            resetFlow();\n            openFlow();\n          }}\n        />\n      )}\n    </IDKitModal>\n  );\n}\n","import type { ReactElement } from \"react\";\nimport type { IDKitRequestWidgetProps } from \"../types\";\nimport { useIDKitRequest } from \"../hooks/useIDKitRequest\";\nimport { IDKitWidgetBase } from \"./IDKitWidgetBase\";\n\nexport function IDKitRequestWidget({\n  open,\n  onOpenChange,\n  handleVerify,\n  onSuccess,\n  onError,\n  autoClose,\n  language,\n  ...config\n}: IDKitRequestWidgetProps): ReactElement | null {\n  if (typeof onSuccess !== \"function\") {\n    throw new Error(\"IDKitRequestWidget requires an onSuccess callback.\");\n  }\n\n  const flow = useIDKitRequest(config);\n\n  return (\n    <IDKitWidgetBase\n      flow={flow}\n      open={open}\n      onOpenChange={onOpenChange}\n      handleVerify={handleVerify}\n      onSuccess={onSuccess}\n      onError={onError}\n      autoClose={autoClose}\n      language={language}\n      showSimulatorCallout={config.environment === \"staging\"}\n    />\n  );\n}\n","import { useEffect, useState, type ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { useMedia } from \"../../hooks/useMedia\";\nimport { HumanBadgeIcon } from \"../Icons/HumanBadgeIcon\";\nimport { LoadingIcon } from \"../Icons/LoadingIcon\";\nimport { QRCode } from \"../../widget/QRCode\";\n\ntype InviteCodeStateProps = {\n  connectorURI: string | null;\n  codeExpiresAt: number | null;\n  isAwaitingUserConfirmation: boolean;\n};\n\nfunction useNowInSeconds(): number {\n  const [now, setNow] = useState(() => Math.floor(Date.now() / 1000));\n  useEffect(() => {\n    const id = setInterval(() => {\n      setNow(Math.floor(Date.now() / 1000));\n    }, 1000);\n    return () => clearInterval(id);\n  }, []);\n  return now;\n}\n\nexport function InviteCodeState({\n  connectorURI,\n  codeExpiresAt,\n  isAwaitingUserConfirmation,\n}: InviteCodeStateProps): ReactElement {\n  const media = useMedia();\n  const now = useNowInSeconds();\n  const inviteCode = connectorURI\n    ? new URL(connectorURI).searchParams.get(\"c\")\n    : null;\n  const secondsRemaining =\n    codeExpiresAt !== null ? Math.max(0, codeExpiresAt - now) : null;\n\n  return (\n    <div\n      style={{\n        display: \"flex\",\n        flexDirection: \"column\",\n        alignItems: \"center\",\n        textAlign: \"center\",\n      }}\n    >\n      <div className=\"idkit-worldid-icon\">\n        <HumanBadgeIcon />\n      </div>\n\n      <h2 className=\"idkit-heading\">{__(\"Connect your World ID\")}</h2>\n\n      <p className=\"idkit-subtext\">\n        {media === \"mobile\"\n          ? __(\n              \"You will be redirected to the app, please return to this page once you're done\",\n            )\n          : __(\"Scan with your phone to continue verifying\")}\n      </p>\n\n      {/* Mobile: deep-link button */}\n      <div className=\"idkit-mobile-only\">\n        <a href={connectorURI ?? undefined} className=\"idkit-deeplink-btn\">\n          <HumanBadgeIcon />\n          <span>{__(\"Open World ID App\")}</span>\n        </a>\n      </div>\n\n      {/* Desktop: QR code */}\n      <div className=\"idkit-desktop-only\">\n        <div className=\"idkit-qr-container\">\n          {isAwaitingUserConfirmation && (\n            <div className=\"idkit-qr-overlay\">\n              <div className=\"idkit-spinner\">\n                <LoadingIcon />\n              </div>\n              <div className=\"idkit-connecting-text\">\n                <p>{__(\"Connecting...\")}</p>\n                <p>{__(\"Please continue in app\")}</p>\n              </div>\n            </div>\n          )}\n\n          <div\n            className={`idkit-qr-blur ${isAwaitingUserConfirmation ? \"blurred\" : \"\"}`}\n          >\n            <div className=\"idkit-qr-wrapper\">\n              <div className=\"idkit-qr-inner\">\n                {connectorURI ? <QRCode data={connectorURI} /> : null}\n              </div>\n            </div>\n          </div>\n        </div>\n      </div>\n\n      {connectorURI && (\n        <a\n          href={connectorURI}\n          target=\"_blank\"\n          rel=\"noopener noreferrer\"\n          style={{\n            marginTop: 12,\n            padding: \"8px 16px\",\n            borderRadius: 8,\n            border: \"1px solid var(--idkit-border, rgba(0,0,0,0.1))\",\n            background: \"var(--idkit-surface, transparent)\",\n            color: \"var(--idkit-text-primary)\",\n            fontSize: 14,\n            textDecoration: \"none\",\n            cursor: \"pointer\",\n          }}\n        >\n          {__(\"Open Connector URL\")}\n        </a>\n      )}\n\n      {inviteCode && (\n        <div\n          style={{\n            marginTop: 16,\n            display: \"flex\",\n            flexDirection: \"column\",\n            alignItems: \"center\",\n            gap: 8,\n          }}\n        >\n          <p\n            style={{\n              margin: 0,\n              fontSize: 14,\n              color: \"var(--idkit-text-secondary)\",\n            }}\n          >\n            {__(\"Or enter this code in World ID App\")}\n          </p>\n          <div\n            style={{\n              display: \"flex\",\n              alignItems: \"center\",\n              gap: 8,\n            }}\n          >\n            <code\n              style={{\n                fontFamily:\n                  \"ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace\",\n                fontSize: 24,\n                fontWeight: 600,\n                letterSpacing: \"0.1em\",\n                padding: \"8px 16px\",\n                borderRadius: 8,\n                background: \"var(--idkit-surface-muted, rgba(0,0,0,0.04))\",\n                color: \"var(--idkit-text-primary)\",\n                userSelect: \"all\",\n              }}\n            >\n              {inviteCode}\n            </code>\n            <button\n              type=\"button\"\n              onClick={() => {\n                if (typeof navigator !== \"undefined\" && navigator.clipboard) {\n                  void navigator.clipboard.writeText(inviteCode);\n                }\n              }}\n              style={{\n                padding: \"6px 12px\",\n                borderRadius: 6,\n                border: \"1px solid var(--idkit-border, rgba(0,0,0,0.1))\",\n                background: \"var(--idkit-surface, transparent)\",\n                color: \"var(--idkit-text-primary)\",\n                fontSize: 12,\n                cursor: \"pointer\",\n              }}\n            >\n              {__(\"Copy\")}\n            </button>\n          </div>\n        </div>\n      )}\n\n      {secondsRemaining !== null && (\n        <div\n          style={{\n            marginTop: 12,\n            fontSize: 14,\n            color: \"var(--idkit-text-secondary)\",\n          }}\n        >\n          {__(\"Expires in\")} {secondsRemaining}s\n        </div>\n      )}\n    </div>\n  );\n}\n","import {\n  useCallback,\n  useEffect,\n  useRef,\n  useState,\n  type ReactElement,\n} from \"react\";\nimport { IDKitErrorCodes, type IDKitDebugReport } from \"@worldcoin/idkit-core\";\nimport type { IDKitInviteCodeHookResult } from \"../types\";\nimport { IDKitModal } from \"./IDKitModal\";\nimport { InviteCodeState } from \"../components/States/InviteCodeState\";\nimport { SuccessState } from \"../components/States/SuccessState\";\nimport { ErrorState } from \"../components/States/ErrorState\";\nimport { HostAppVerificationState } from \"../components/States/HostAppVerificationState\";\nimport { setLocalizationConfig } from \"../lang\";\nimport type { SupportedLanguage } from \"../lang/types\";\n\ntype VisualStage = \"invite_code\" | \"host_verification\" | \"success\" | \"error\";\n\nfunction getVisualStage(\n  isSuccess: boolean,\n  isError: boolean,\n  isHostVerifying: boolean,\n): VisualStage {\n  if (isError) return \"error\";\n  if (isHostVerifying) return \"host_verification\";\n  if (isSuccess) return \"success\";\n  return \"invite_code\";\n}\n\ntype MaybePromise<T> = Promise<T> | T;\n\ntype HostVerifyRun<TResult> = {\n  result: TResult;\n  gen: number;\n};\n\nexport type IDKitInviteCodeWidgetBaseProps<TResult> = {\n  flow: IDKitInviteCodeHookResult<TResult>;\n  open: boolean;\n  onOpenChange: (open: boolean) => void;\n  handleVerify?: (result: TResult) => MaybePromise<void>;\n  onSuccess: (result: TResult) => MaybePromise<void>;\n  onError?: (\n    errorCode: IDKitErrorCodes,\n    debugReport?: IDKitDebugReport,\n  ) => MaybePromise<void>;\n  autoClose?: boolean;\n  language?: SupportedLanguage;\n};\n\nexport function IDKitInviteCodeWidgetBase<TResult>({\n  flow,\n  open,\n  onOpenChange,\n  handleVerify,\n  onSuccess,\n  onError,\n  autoClose = true,\n  language,\n}: IDKitInviteCodeWidgetBaseProps<TResult>): ReactElement | null {\n  const { open: openFlow, reset: resetFlow } = flow;\n\n  const [hostVerifyResult, setHostVerifyResult] = useState<\n    \"passed\" | \"failed\" | null\n  >(null);\n  const lastResultRef = useRef<TResult | null>(null);\n  const lastErrorCodeRef = useRef<IDKitErrorCodes | null>(null);\n  const handleVerifyRef = useRef(handleVerify);\n  const hostVerifyRunRef = useRef<HostVerifyRun<TResult> | null>(null);\n  // Generation counter: changed on start/cancel to ignore stale handleVerify\n  // completions after close, retry, or a newer proof.\n  const verifyGenRef = useRef(0);\n\n  handleVerifyRef.current = handleVerify;\n\n  const cancelHostVerifyRun = useCallback(() => {\n    hostVerifyRunRef.current = null;\n    verifyGenRef.current++;\n  }, []);\n\n  const startHostVerify = useCallback((result: TResult) => {\n    const currentHandleVerify = handleVerifyRef.current;\n\n    if (!currentHandleVerify || hostVerifyRunRef.current?.result === result) {\n      return;\n    }\n\n    const gen = ++verifyGenRef.current;\n    const run = { result, gen };\n    hostVerifyRunRef.current = run;\n\n    return Promise.resolve(currentHandleVerify(result))\n      .then(() => {\n        if (hostVerifyRunRef.current === run && verifyGenRef.current === gen) {\n          hostVerifyRunRef.current = null;\n          setHostVerifyResult(\"passed\");\n        }\n      })\n      .catch(() => {\n        if (hostVerifyRunRef.current === run && verifyGenRef.current === gen) {\n          hostVerifyRunRef.current = null;\n          setHostVerifyResult(\"failed\");\n        }\n      });\n  }, []);\n\n  // Set language config\n  useEffect(() => {\n    if (language) {\n      setLocalizationConfig({ language });\n    }\n  }, [language]);\n\n  useEffect(() => {\n    if (open) {\n      setHostVerifyResult(null);\n      openFlow();\n      return;\n    }\n\n    setHostVerifyResult(null);\n    lastResultRef.current = null;\n    lastErrorCodeRef.current = null;\n    cancelHostVerifyRun();\n    resetFlow();\n  }, [open, openFlow, resetFlow, cancelHostVerifyRun]);\n\n  const isSuccess =\n    flow.isSuccess && (!handleVerify || hostVerifyResult === \"passed\");\n  const isError = flow.isError || hostVerifyResult === \"failed\";\n  const isHostVerifying =\n    flow.isSuccess && Boolean(handleVerify) && hostVerifyResult === null;\n  const effectiveErrorCode =\n    flow.errorCode ??\n    (hostVerifyResult === \"failed\" ? IDKitErrorCodes.FailedByHostApp : null);\n\n  useEffect(() => {\n    // Skip while closed/closing (see the error effect below for the rationale):\n    // auto-close nulls the dedupe refs in the same commit, which would otherwise\n    // re-fire onSuccess for the same result.\n    if (\n      !open ||\n      !isSuccess ||\n      !flow.result ||\n      flow.result === lastResultRef.current\n    ) {\n      return;\n    }\n\n    lastResultRef.current = flow.result;\n    void Promise.resolve(onSuccess(flow.result)).catch(() => {\n      // Swallow host callback errors to keep widget flow stable.\n    });\n  }, [open, flow.result, isSuccess, onSuccess]);\n\n  useEffect(() => {\n    // Skip while closed/closing. When the widget auto-closes on error (World\n    // App path), the open-effect's close branch nulls `lastErrorCodeRef` in the\n    // same commit — and effects run open-effect → error-effect — so without this\n    // `!open` guard the error effect would re-run with a now-null dedupe ref but\n    // a still-set `effectiveErrorCode` (the hook's reset hasn't propagated yet)\n    // and deliver `onError` a second time. Errors are only delivered while open.\n    if (\n      !open ||\n      !effectiveErrorCode ||\n      effectiveErrorCode === lastErrorCodeRef.current\n    ) {\n      return;\n    }\n\n    lastErrorCodeRef.current = effectiveErrorCode;\n    // Only flow/bridge errors carry a debug report; host-app verify failures don't.\n    const debugReport = flow.errorCode ? flow.getDebugReport() : undefined;\n    const errorResult = debugReport\n      ? onError?.(effectiveErrorCode, debugReport)\n      : onError?.(effectiveErrorCode);\n    void Promise.resolve(errorResult).catch(() => {\n      // Swallow host callback errors to keep widget flow stable.\n    });\n  }, [open, effectiveErrorCode, flow, onError]);\n\n  // In World App context there's no UI to render HostAppVerificationState,\n  // so invoke handleVerify programmatically when the proof arrives.\n  useEffect(() => {\n    if (!open || !flow.isInWorldApp || !isHostVerifying || !flow.result) {\n      return;\n    }\n\n    void startHostVerify(flow.result);\n  }, [open, flow.isInWorldApp, isHostVerifying, flow.result, startHostVerify]);\n\n  // In World App there's no visible UI, so auto-close immediately on success or error.\n  // In bridge flow, only auto-close on success after the 2.5s delay (errors show retry UI).\n  useEffect(() => {\n    if (flow.isInWorldApp && (isSuccess || isError)) {\n      onOpenChange(false);\n    } else if (isSuccess && autoClose) {\n      const timer = setTimeout(() => onOpenChange(false), 2500);\n      return () => clearTimeout(timer);\n    }\n  }, [isSuccess, isError, autoClose, onOpenChange, flow.isInWorldApp]);\n\n  // In World App context, the host app handles all UI — render nothing.\n  if (flow.isInWorldApp) {\n    return null;\n  }\n\n  const stage = getVisualStage(isSuccess, isError, isHostVerifying);\n\n  return (\n    <IDKitModal open={open} onOpenChange={onOpenChange}>\n      {stage === \"invite_code\" && (\n        <InviteCodeState\n          connectorURI={flow.connectorURI}\n          codeExpiresAt={flow.codeExpiresAt}\n          isAwaitingUserConfirmation={flow.isAwaitingUserConfirmation}\n        />\n      )}\n      {stage === \"host_verification\" && (\n        <HostAppVerificationState\n          onVerify={() => startHostVerify(flow.result!)}\n        />\n      )}\n      {stage === \"success\" && <SuccessState />}\n      {stage === \"error\" && (\n        <ErrorState\n          errorCode={effectiveErrorCode}\n          onClose={() => onOpenChange(false)}\n          onRetry={() => {\n            setHostVerifyResult(null);\n            lastResultRef.current = null;\n            lastErrorCodeRef.current = null;\n            cancelHostVerifyRun();\n            resetFlow();\n            openFlow();\n          }}\n        />\n      )}\n    </IDKitModal>\n  );\n}\n","import type { ReactElement } from \"react\";\nimport type { IDKitInviteCodeRequestWidgetProps } from \"../types\";\nimport { useIDKitInviteCodeRequest } from \"../hooks/useIDKitInviteCodeRequest\";\nimport { IDKitInviteCodeWidgetBase } from \"./IDKitInviteCodeWidgetBase\";\n\nexport function IDKitInviteCodeRequestWidget({\n  open,\n  onOpenChange,\n  handleVerify,\n  onSuccess,\n  onError,\n  autoClose,\n  language,\n  ...config\n}: IDKitInviteCodeRequestWidgetProps): ReactElement | null {\n  if (typeof onSuccess !== \"function\") {\n    throw new Error(\n      \"IDKitInviteCodeRequestWidget requires an onSuccess callback.\",\n    );\n  }\n\n  const flow = useIDKitInviteCodeRequest(config);\n\n  return (\n    <IDKitInviteCodeWidgetBase\n      flow={flow}\n      open={open}\n      onOpenChange={onOpenChange}\n      handleVerify={handleVerify}\n      onSuccess={onSuccess}\n      onError={onError}\n      autoClose={autoClose}\n      language={language}\n    />\n  );\n}\n","import type { ReactElement } from \"react\";\nimport type { IDKitSessionWidgetProps } from \"../types\";\nimport { useIDKitSession } from \"../hooks/useIDKitSession\";\nimport { IDKitWidgetBase } from \"./IDKitWidgetBase\";\n\nexport function IDKitSessionWidget({\n  open,\n  onOpenChange,\n  handleVerify,\n  onSuccess,\n  onError,\n  autoClose,\n  language,\n  ...config\n}: IDKitSessionWidgetProps): ReactElement | null {\n  if (typeof onSuccess !== \"function\") {\n    throw new Error(\"IDKitSessionWidget requires an onSuccess callback.\");\n  }\n\n  const flow = useIDKitSession(config);\n\n  return (\n    <IDKitWidgetBase\n      flow={flow}\n      open={open}\n      onOpenChange={onOpenChange}\n      handleVerify={handleVerify}\n      onSuccess={onSuccess}\n      onError={onError}\n      autoClose={autoClose}\n      language={language}\n      showSimulatorCallout={config.environment === \"staging\"}\n    />\n  );\n}\n"]}