@worldcoin/idkit 2.4.2 → 4.0.0-dev.fe98789
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +42 -59
- package/dist/index.cjs +1764 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +57 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.js +1724 -0
- package/dist/index.js.map +1 -0
- package/package.json +46 -100
- package/LICENSE +0 -7
- package/build/chunk-PWFTYFSZ.js +0 -373
- package/build/config-SH5TbLYj.d.cts +0 -57
- package/build/config-SH5TbLYj.d.ts +0 -57
- package/build/index.cjs +0 -2697
- package/build/index.d.cts +0 -57
- package/build/index.d.ts +0 -57
- package/build/index.js +0 -2285
- package/build/internal.cjs +0 -413
- package/build/internal.d.cts +0 -68
- package/build/internal.d.ts +0 -68
- package/build/internal.js +0 -20
- package/src/index.ts +0 -28
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/hooks/common.ts","../src/hooks/useIDKitFlow.ts","../src/hooks/useIDKitRequest.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/WorldIcon.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/widget/IDKitRequestWidget.tsx","../src/widget/IDKitSessionWidget.tsx"],"names":["IDKitErrorCodes","useState","useRef","useCallback","useEffect","IDKit","createPortal","jsx","jsxs","Fragment","QRCodeUtil","useMemo","memo","getVisualStage"],"mappings":"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A;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;AA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","file":"index.cjs","sourcesContent":["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\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 return IDKitErrorCodes.GenericError;\n}\n","import { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n IDKit,\n IDKitErrorCodes,\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 [state, setState] = useState<HookState<TResult>>(\n createInitialHookState,\n );\n // Mutable handle so event handlers (reset) can cancel the active polling loop.\n const abortRef = useRef<AbortController | null>(null);\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 setState(createInitialHookState);\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 const controller = new AbortController();\n abortRef.current = controller;\n\n const setFailed = (errorCode: IDKitErrorCodes) => {\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 await IDKit.init();\n ensureNotAborted(controller.signal);\n\n const request = await createFlowHandleRef.current();\n ensureNotAborted(controller.signal);\n\n setState((prev) => {\n if (prev.connectorURI === request.connectorURI) {\n return prev;\n }\n return { ...prev, connectorURI: request.connectorURI };\n });\n\n const pollInterval = configRef.current.polling?.interval ?? 1000;\n const timeout = configRef.current.polling?.timeout ?? 300000;\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 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 return;\n }\n\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]);\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 isOpen: state.isOpen,\n };\n}\n","import { IDKit, type IDKitResult } from \"@worldcoin/idkit-core\";\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 () =>\n 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 allow_legacy_proofs: config.allow_legacy_proofs,\n override_connect_base_url: config.override_connect_base_url,\n environment: config.environment,\n }).preset(config.preset),\n config,\n );\n}\n","import {\n IDKit,\n IDKitErrorCodes,\n type IDKitResultSession,\n} from \"@worldcoin/idkit-core\";\nimport type {\n IDKitSessionHookConfig,\n UseIDKitSessionHookResult,\n} from \"../types\";\nimport { useIDKitFlow } from \"./useIDKitFlow\";\n\nfunction assertSessionId(sessionId: string | undefined): string | undefined {\n if (sessionId === undefined) {\n return undefined;\n }\n\n if (sessionId.trim().length === 0) {\n throw IDKitErrorCodes.MalformedRequest;\n }\n\n return sessionId;\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 override_connect_base_url: config.override_connect_base_url,\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 override_connect_base_url: config.override_connect_base_url,\n environment: config.environment,\n });\n return builder.preset(config.preset);\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-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 56px;\n height: 56px;\n border-radius: 50%;\n border: 1.2px solid var(--idkit-border);\n margin-bottom: 16px;\n}\n.idkit-worldid-icon svg {\n width: 32px;\n height: 32px;\n color: var(--idkit-text);\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/* Mobile deep-link button */\n.idkit-deeplink-btn {\n display: flex;\n width: 100%;\n align-items: 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;\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 svg {\n width: 20px;\n height: 20px;\n flex-shrink: 0;\n}\n.idkit-deeplink-btn span {\n flex: 1;\n text-align: center;\n}\n\n/* Loading spinner */\n.idkit-spinner {\n animation: idkit-spin 1s linear infinite;\n}\n.idkit-spinner svg {\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: block;\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 \"Something went wrong\": \"Something went wrong\",\n \"Request cancelled\": \"Request cancelled\",\n \"You've cancelled the request in World App.\":\n \"You've cancelled the request in World App.\",\n \"Connection lost\": \"Connection lost\",\n \"Please check your connection and try again.\":\n \"Please check your connection and try again.\",\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 \"Open World App\": \"Open World App\",\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 \"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 \"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 \"Something went wrong\": \"Algo sali\\u00f3 mal\",\n \"Request cancelled\": \"Solicitud cancelada\",\n \"You've cancelled the request in World App.\":\n \"Has cancelado la solicitud en World App.\",\n \"Connection lost\": \"Conexion perdida\",\n \"Please check your connection and try again.\":\n \"Por favor verifica tu conexion e intenta de nuevo.\",\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 \"Open World App\": \"Abrir World App\",\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 \"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 \"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 \"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 App.\":\n \"\\u0e04\\u0e38\\u0e13\\u0e44\\u0e14\\u0e49\\u0e22\\u0e01\\u0e40\\u0e25\\u0e34\\u0e01\\u0e04\\u0e33\\u0e02\\u0e2d\\u0e43\\u0e19 World App\",\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 \"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 \"Open World App\": \"\\u0e40\\u0e1b\\u0e34\\u0e14 World App\",\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 \"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 \"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 { 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 string>(\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 { SVGProps } from \"react\";\n\nexport function WorldcoinIcon(props: SVGProps<SVGSVGElement>) {\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"32\"\n height=\"32\"\n viewBox=\"0 0 32 32\"\n fill=\"none\"\n {...props}\n >\n <path\n d=\"M30.7367 9.77239C29.9301 7.86586 28.7772 6.15721 27.3084 4.68831C25.8397 3.21941 24.1275 2.06636 22.225 1.2596C20.2502 0.422405 18.1574 0 15.9962 0C13.8388 0 11.7422 0.422405 9.76742 1.2596C7.86112 2.06636 6.15268 3.21941 4.68395 4.68831C3.21522 6.15721 2.06231 7.86966 1.25565 9.77239C0.422354 11.7436 0 13.8404 0 15.9981C0 18.1558 0.422354 20.2526 1.25945 22.2276C2.06611 24.1341 3.21903 25.8428 4.68775 27.3117C6.15648 28.7806 7.86873 29.9336 9.77122 30.7404C11.746 31.5738 13.8388 32 16 32C18.1574 32 20.254 31.5776 22.2288 30.7404C24.1351 29.9336 25.8435 28.7806 27.3122 27.3117C28.781 25.8428 29.9339 24.1303 30.7405 22.2276C31.5738 20.2526 32 18.1596 32 15.9981C31.9962 13.8404 31.57 11.7436 30.7367 9.77239ZM10.6844 14.4949C11.3503 11.9377 13.679 10.0464 16.4452 10.0464H27.552C28.2673 11.4278 28.7239 12.9309 28.9027 14.4949H10.6844ZM28.9027 17.5012C28.7239 19.0653 28.2635 20.5684 27.552 21.9498H16.4452C13.6828 21.9498 11.3541 20.0585 10.6844 17.5012H28.9027ZM6.81094 6.81175C9.26516 4.35724 12.526 3.0063 15.9962 3.0063C19.4663 3.0063 22.7272 4.35724 25.1815 6.81175C25.2576 6.88786 25.3298 6.96397 25.4021 7.04008H16.4452C14.0518 7.04008 11.8031 7.97241 10.1099 9.66583C8.77812 10.9977 7.91819 12.6759 7.60999 14.4988H3.09346C3.42449 11.5952 4.71439 8.90855 6.81094 6.81175ZM15.9962 28.9937C12.526 28.9937 9.26516 27.6428 6.81094 25.1883C4.71439 23.0915 3.42449 20.4048 3.09346 17.5051H7.60999C7.91439 19.3279 8.77812 21.0061 10.1099 22.338C11.8031 24.0314 14.0518 24.9637 16.4452 24.9637H25.4059C25.3337 25.0398 25.2576 25.1159 25.1853 25.1921C22.731 27.639 19.4663 28.9937 15.9962 28.9937Z\"\n fill=\"currentColor\"\n />\n </svg>\n );\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 { useMedia } from \"../../hooks/useMedia\";\nimport { QRCode } from \"../../widget/QRCode\";\nimport { QRPlaceholderIcon } from \"../Icons/QRPlaceholderIcon\";\nimport { WorldcoinIcon } from \"../Icons/WorldIcon\";\n\ntype QRStateProps = {\n qrData: string | null;\n};\n\nexport function QRState({ qrData }: QRStateProps): ReactElement {\n const media = useMedia();\n const [copiedLink, setCopiedLink] = 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: deep-link button */}\n <div className=\"idkit-mobile-only\">\n <a href={qrData ?? undefined} className=\"idkit-deeplink-btn\">\n <WorldcoinIcon />\n <span>{__(\"Open World App\")}</span>\n </a>\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={media === \"mobile\" ? 160 : 200} />\n </div>\n ) : (\n <div className=\"idkit-qr-placeholder\">\n <QRPlaceholderIcon />\n </div>\n )}\n </div>\n </div>\n </div>\n </>\n );\n}\n","import type { ReactElement } from \"react\";\nimport { __ } from \"../../lang\";\nimport { useMedia } from \"../../hooks/useMedia\";\nimport { WorldcoinIcon } from \"../Icons/WorldIcon\";\nimport { LoadingIcon } from \"../Icons/LoadingIcon\";\nimport { QRState } from \"./QRState\";\n\ntype WorldIDStateProps = {\n connectorURI: string | null;\n isAwaitingUserConfirmation: boolean;\n};\n\nexport function WorldIDState({\n connectorURI,\n isAwaitingUserConfirmation,\n}: WorldIDStateProps): ReactElement {\n const media = useMedia();\n\n return (\n <div\n style={{\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n textAlign: \"center\",\n }}\n >\n {/* World logo */}\n <div className=\"idkit-worldid-icon\">\n <WorldcoinIcon />\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 qrData={connectorURI} />\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};\n\ntype ErrorVariant = \"cancelled\" | \"connection\" | \"generic\";\n\nconst errorCodeVariants: Partial<Record<IDKitErrorCodes, ErrorVariant>> = {\n [IDKitErrorCodes.UserRejected]: \"cancelled\",\n [IDKitErrorCodes.VerificationRejected]: \"cancelled\",\n [IDKitErrorCodes.FailedByHostApp]: \"cancelled\",\n [IDKitErrorCodes.Cancelled]: \"cancelled\",\n [IDKitErrorCodes.ConnectionFailed]: \"connection\",\n};\n\nconst variantConfig = {\n cancelled: {\n title: \"Request cancelled\" as const,\n message: \"You've cancelled the request in World App.\" as const,\n Icon: WarningIcon,\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 },\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 },\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 onRetry,\n}: ErrorStateProps): ReactElement {\n const variant = getVariant(errorCode);\n const { title, message, Icon } = variantConfig[variant];\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={onRetry}>\n {__(\"Try Again\")}\n </button>\n </div>\n );\n}\n","import { useEffect, useRef, type ReactElement } from \"react\";\nimport type { IDKitErrorCodes } from \"@worldcoin/idkit-core\";\nimport type { IDKitRequestWidgetProps } from \"../types\";\nimport { useIDKitRequest } from \"../hooks/useIDKitRequest\";\nimport { IDKitModal } from \"./IDKitModal\";\nimport { WorldIDState } from \"../components/States/WorldIDState\";\nimport { SuccessState } from \"../components/States/SuccessState\";\nimport { ErrorState } from \"../components/States/ErrorState\";\nimport { setLocalizationConfig } from \"../lang\";\n\ntype VisualStage = \"worldid\" | \"success\" | \"error\";\n\nfunction getVisualStage(isSuccess: boolean, isError: boolean): VisualStage {\n if (isSuccess) {\n return \"success\";\n }\n\n if (isError) {\n return \"error\";\n }\n\n return \"worldid\";\n}\n\nexport function IDKitRequestWidget({\n open,\n onOpenChange,\n onSuccess,\n onError,\n autoClose = true,\n language,\n ...config\n}: IDKitRequestWidgetProps): ReactElement | null {\n const flow = useIDKitRequest(config);\n const { open: openFlow, reset: resetFlow } = flow;\n\n const lastResultRef = useRef<unknown>(null);\n const lastErrorCodeRef = useRef<IDKitErrorCodes | null>(null);\n\n // Set language config\n useEffect(() => {\n if (language) {\n setLocalizationConfig({ language });\n }\n }, [language]);\n\n useEffect(() => {\n if (open) {\n openFlow();\n return;\n }\n\n resetFlow();\n }, [open, openFlow, resetFlow]);\n\n useEffect(() => {\n if (!flow.result || flow.result === lastResultRef.current) {\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 }, [onSuccess, flow.result]);\n\n useEffect(() => {\n if (!flow.errorCode || flow.errorCode === lastErrorCodeRef.current) {\n return;\n }\n\n lastErrorCodeRef.current = flow.errorCode;\n void Promise.resolve(onError?.(flow.errorCode)).catch(() => {\n // Swallow host callback errors to keep widget flow stable.\n });\n }, [flow.errorCode, onError]);\n\n // Auto-close on success\n useEffect(() => {\n if (flow.isSuccess && autoClose) {\n const timer = setTimeout(() => onOpenChange(false), 2500);\n return () => clearTimeout(timer);\n }\n }, [flow.isSuccess, autoClose, onOpenChange]);\n\n const stage = getVisualStage(flow.isSuccess, flow.isError);\n\n return (\n <IDKitModal open={open} onOpenChange={onOpenChange}>\n {stage === \"worldid\" && (\n <WorldIDState\n connectorURI={flow.connectorURI}\n isAwaitingUserConfirmation={flow.isAwaitingUserConfirmation}\n />\n )}\n {stage === \"success\" && <SuccessState />}\n {stage === \"error\" && (\n <ErrorState\n errorCode={flow.errorCode}\n onRetry={() => {\n resetFlow();\n openFlow();\n }}\n />\n )}\n </IDKitModal>\n );\n}\n","import { useEffect, useRef, type ReactElement } from \"react\";\nimport type { IDKitErrorCodes } from \"@worldcoin/idkit-core\";\nimport type { IDKitSessionWidgetProps } from \"../types\";\nimport { useIDKitSession } from \"../hooks/useIDKitSession\";\nimport { IDKitModal } from \"./IDKitModal\";\nimport { WorldIDState } from \"../components/States/WorldIDState\";\nimport { SuccessState } from \"../components/States/SuccessState\";\nimport { ErrorState } from \"../components/States/ErrorState\";\nimport { setLocalizationConfig } from \"../lang\";\n\ntype VisualStage = \"worldid\" | \"success\" | \"error\";\n\nfunction getVisualStage(isSuccess: boolean, isError: boolean): VisualStage {\n if (isSuccess) {\n return \"success\";\n }\n\n if (isError) {\n return \"error\";\n }\n\n return \"worldid\";\n}\n\nexport function IDKitSessionWidget({\n open,\n onOpenChange,\n onSuccess,\n onError,\n autoClose = true,\n language,\n ...config\n}: IDKitSessionWidgetProps): ReactElement | null {\n const flow = useIDKitSession(config);\n const { open: openFlow, reset: resetFlow } = flow;\n\n const lastResultRef = useRef<unknown>(null);\n const lastErrorCodeRef = useRef<IDKitErrorCodes | null>(null);\n\n // Set language config\n useEffect(() => {\n if (language) {\n setLocalizationConfig({ language });\n }\n }, [language]);\n\n useEffect(() => {\n if (open) {\n openFlow();\n return;\n }\n\n resetFlow();\n }, [open, openFlow, resetFlow]);\n\n useEffect(() => {\n if (!flow.result || flow.result === lastResultRef.current) {\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 }, [onSuccess, flow.result]);\n\n useEffect(() => {\n if (!flow.errorCode || flow.errorCode === lastErrorCodeRef.current) {\n return;\n }\n\n lastErrorCodeRef.current = flow.errorCode;\n void Promise.resolve(onError?.(flow.errorCode)).catch(() => {\n // Swallow host callback errors to keep widget flow stable.\n });\n }, [flow.errorCode, onError]);\n\n // Auto-close on success\n useEffect(() => {\n if (flow.isSuccess && autoClose) {\n const timer = setTimeout(() => onOpenChange(false), 2500);\n return () => clearTimeout(timer);\n }\n }, [flow.isSuccess, autoClose, onOpenChange]);\n\n const stage = getVisualStage(flow.isSuccess, flow.isError);\n\n return (\n <IDKitModal open={open} onOpenChange={onOpenChange}>\n {stage === \"worldid\" && (\n <WorldIDState\n connectorURI={flow.connectorURI}\n isAwaitingUserConfirmation={flow.isAwaitingUserConfirmation}\n />\n )}\n {stage === \"success\" && <SuccessState />}\n {stage === \"error\" && (\n <ErrorState\n errorCode={flow.errorCode}\n onRetry={() => {\n resetFlow();\n openFlow();\n }}\n />\n )}\n </IDKitModal>\n );\n}\n"]}
|
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { IDKitErrorCodes, IDKitRequestConfig, Preset, IDKitResult, IDKitSessionConfig, IDKitResultSession } from '@worldcoin/idkit-core';
|
|
2
|
+
export { ConstraintNode, CredentialRequest, CredentialRequestType, CredentialType, IDKit, IDKitErrorCode, IDKitErrorCodes, IDKitRequestConfig, IDKitResult, IDKitResultSession, IDKitSessionConfig, Preset, ResponseItemSession, ResponseItemV3, ResponseItemV4, RpContext, all, any, documentLegacy, orbLegacy, secureDocumentLegacy } from '@worldcoin/idkit-core';
|
|
3
|
+
import { ReactElement } from 'react';
|
|
4
|
+
|
|
5
|
+
type PollingConfig = {
|
|
6
|
+
polling?: {
|
|
7
|
+
interval?: number;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
type IDKitHookResult<TResult> = {
|
|
12
|
+
open: () => void;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
isAwaitingUserConnection: boolean;
|
|
15
|
+
isAwaitingUserConfirmation: boolean;
|
|
16
|
+
isSuccess: boolean;
|
|
17
|
+
isError: boolean;
|
|
18
|
+
connectorURI: string | null;
|
|
19
|
+
result: TResult | null;
|
|
20
|
+
errorCode: IDKitErrorCodes | null;
|
|
21
|
+
isOpen: boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type IDKitRequestHookConfig = IDKitRequestConfig & PollingConfig & {
|
|
25
|
+
preset: Preset;
|
|
26
|
+
};
|
|
27
|
+
type UseIDKitRequestHookResult = IDKitHookResult<IDKitResult>;
|
|
28
|
+
|
|
29
|
+
type IDKitSessionHookConfig = IDKitSessionConfig & PollingConfig & {
|
|
30
|
+
preset: Preset;
|
|
31
|
+
existing_session_id?: string;
|
|
32
|
+
};
|
|
33
|
+
type UseIDKitSessionHookResult = IDKitHookResult<IDKitResultSession>;
|
|
34
|
+
|
|
35
|
+
type SupportedLanguage = "en" | "es" | "th";
|
|
36
|
+
|
|
37
|
+
type MaybePromise<T> = Promise<T> | T;
|
|
38
|
+
type WidgetSharedProps<TResult> = {
|
|
39
|
+
open: boolean;
|
|
40
|
+
onOpenChange: (open: boolean) => void;
|
|
41
|
+
onSuccess?: (result: TResult) => MaybePromise<void>;
|
|
42
|
+
onError?: (errorCode: IDKitErrorCodes) => MaybePromise<void>;
|
|
43
|
+
autoClose?: boolean;
|
|
44
|
+
language?: SupportedLanguage;
|
|
45
|
+
};
|
|
46
|
+
type IDKitRequestWidgetProps = IDKitRequestHookConfig & WidgetSharedProps<IDKitResult>;
|
|
47
|
+
type IDKitSessionWidgetProps = IDKitSessionHookConfig & WidgetSharedProps<IDKitResultSession>;
|
|
48
|
+
|
|
49
|
+
declare function useIDKitRequest(config: IDKitRequestHookConfig): UseIDKitRequestHookResult;
|
|
50
|
+
|
|
51
|
+
declare function useIDKitSession(config: IDKitSessionHookConfig): UseIDKitSessionHookResult;
|
|
52
|
+
|
|
53
|
+
declare function IDKitRequestWidget({ open, onOpenChange, onSuccess, onError, autoClose, language, ...config }: IDKitRequestWidgetProps): ReactElement | null;
|
|
54
|
+
|
|
55
|
+
declare function IDKitSessionWidget({ open, onOpenChange, onSuccess, onError, autoClose, language, ...config }: IDKitSessionWidgetProps): ReactElement | null;
|
|
56
|
+
|
|
57
|
+
export { type IDKitHookResult, type IDKitRequestHookConfig, IDKitRequestWidget, type IDKitRequestWidgetProps, type IDKitSessionHookConfig, IDKitSessionWidget, type IDKitSessionWidgetProps, type PollingConfig, type SupportedLanguage, type UseIDKitRequestHookResult, type UseIDKitSessionHookResult, useIDKitRequest, useIDKitSession };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { IDKitErrorCodes, IDKitRequestConfig, Preset, IDKitResult, IDKitSessionConfig, IDKitResultSession } from '@worldcoin/idkit-core';
|
|
2
|
+
export { ConstraintNode, CredentialRequest, CredentialRequestType, CredentialType, IDKit, IDKitErrorCode, IDKitErrorCodes, IDKitRequestConfig, IDKitResult, IDKitResultSession, IDKitSessionConfig, Preset, ResponseItemSession, ResponseItemV3, ResponseItemV4, RpContext, all, any, documentLegacy, orbLegacy, secureDocumentLegacy } from '@worldcoin/idkit-core';
|
|
3
|
+
import { ReactElement } from 'react';
|
|
4
|
+
|
|
5
|
+
type PollingConfig = {
|
|
6
|
+
polling?: {
|
|
7
|
+
interval?: number;
|
|
8
|
+
timeout?: number;
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
type IDKitHookResult<TResult> = {
|
|
12
|
+
open: () => void;
|
|
13
|
+
reset: () => void;
|
|
14
|
+
isAwaitingUserConnection: boolean;
|
|
15
|
+
isAwaitingUserConfirmation: boolean;
|
|
16
|
+
isSuccess: boolean;
|
|
17
|
+
isError: boolean;
|
|
18
|
+
connectorURI: string | null;
|
|
19
|
+
result: TResult | null;
|
|
20
|
+
errorCode: IDKitErrorCodes | null;
|
|
21
|
+
isOpen: boolean;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
type IDKitRequestHookConfig = IDKitRequestConfig & PollingConfig & {
|
|
25
|
+
preset: Preset;
|
|
26
|
+
};
|
|
27
|
+
type UseIDKitRequestHookResult = IDKitHookResult<IDKitResult>;
|
|
28
|
+
|
|
29
|
+
type IDKitSessionHookConfig = IDKitSessionConfig & PollingConfig & {
|
|
30
|
+
preset: Preset;
|
|
31
|
+
existing_session_id?: string;
|
|
32
|
+
};
|
|
33
|
+
type UseIDKitSessionHookResult = IDKitHookResult<IDKitResultSession>;
|
|
34
|
+
|
|
35
|
+
type SupportedLanguage = "en" | "es" | "th";
|
|
36
|
+
|
|
37
|
+
type MaybePromise<T> = Promise<T> | T;
|
|
38
|
+
type WidgetSharedProps<TResult> = {
|
|
39
|
+
open: boolean;
|
|
40
|
+
onOpenChange: (open: boolean) => void;
|
|
41
|
+
onSuccess?: (result: TResult) => MaybePromise<void>;
|
|
42
|
+
onError?: (errorCode: IDKitErrorCodes) => MaybePromise<void>;
|
|
43
|
+
autoClose?: boolean;
|
|
44
|
+
language?: SupportedLanguage;
|
|
45
|
+
};
|
|
46
|
+
type IDKitRequestWidgetProps = IDKitRequestHookConfig & WidgetSharedProps<IDKitResult>;
|
|
47
|
+
type IDKitSessionWidgetProps = IDKitSessionHookConfig & WidgetSharedProps<IDKitResultSession>;
|
|
48
|
+
|
|
49
|
+
declare function useIDKitRequest(config: IDKitRequestHookConfig): UseIDKitRequestHookResult;
|
|
50
|
+
|
|
51
|
+
declare function useIDKitSession(config: IDKitSessionHookConfig): UseIDKitSessionHookResult;
|
|
52
|
+
|
|
53
|
+
declare function IDKitRequestWidget({ open, onOpenChange, onSuccess, onError, autoClose, language, ...config }: IDKitRequestWidgetProps): ReactElement | null;
|
|
54
|
+
|
|
55
|
+
declare function IDKitSessionWidget({ open, onOpenChange, onSuccess, onError, autoClose, language, ...config }: IDKitSessionWidgetProps): ReactElement | null;
|
|
56
|
+
|
|
57
|
+
export { type IDKitHookResult, type IDKitRequestHookConfig, IDKitRequestWidget, type IDKitRequestWidgetProps, type IDKitSessionHookConfig, IDKitSessionWidget, type IDKitSessionWidgetProps, type PollingConfig, type SupportedLanguage, type UseIDKitRequestHookResult, type UseIDKitSessionHookResult, useIDKitRequest, useIDKitSession };
|