@tatchi-xyz/sdk 0.49.0 → 0.51.0

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.
Files changed (183) hide show
  1. package/dist/cjs/core/EmailRecovery/index.js +1 -1
  2. package/dist/cjs/core/TatchiPasskey/emailRecovery.js +1 -1
  3. package/dist/cjs/core/TatchiPasskey/index.js +2 -2
  4. package/dist/cjs/core/TatchiPasskey/login.js +1 -1
  5. package/dist/cjs/core/TatchiPasskey/registration.js +1 -1
  6. package/dist/cjs/core/WalletIframe/client/router.js +1 -1
  7. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +1 -1
  8. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +1 -1
  9. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +1 -1
  10. package/dist/cjs/core/WebAuthnManager/SignerWorkerManager/index.js +1 -1
  11. package/dist/cjs/core/defaultConfigs.js +1 -4
  12. package/dist/cjs/core/defaultConfigs.js.map +1 -1
  13. package/dist/cjs/core/rpcCalls.js +1 -1
  14. package/dist/cjs/core/threshold/thresholdEd25519AuthSession.js +1 -1
  15. package/dist/cjs/core/threshold/thresholdSessionPolicy.js +1 -1
  16. package/dist/cjs/index.js +1 -1
  17. package/dist/{esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css → cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css} +1 -1
  18. package/dist/{esm/react/components/AccountMenuButton/LinkedDevicesModal-BCrFe5p3.css.map → cjs/react/components/AccountMenuButton/LinkedDevicesModal-BRtht0XI.css.map} +1 -1
  19. package/dist/{esm/react/components/AccountMenuButton/ProfileDropdown-BrM8Eemu.css → cjs/react/components/AccountMenuButton/ProfileDropdown-fqba9J6J.css} +1 -1
  20. package/dist/{esm/react/components/AccountMenuButton/ProfileDropdown-BrM8Eemu.css.map → cjs/react/components/AccountMenuButton/ProfileDropdown-fqba9J6J.css.map} +1 -1
  21. package/dist/{esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css → cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css} +1 -1
  22. package/dist/{esm/react/components/AccountMenuButton/Web3AuthProfileButton-DXFRw8ND.css.map → cjs/react/components/AccountMenuButton/Web3AuthProfileButton-k8_FAYFq.css.map} +1 -1
  23. package/dist/{esm/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css → cjs/react/components/AccountMenuButton/icons/TouchIcon-MNIglhTw.css} +1 -1
  24. package/dist/{esm/react/components/AccountMenuButton/icons/TouchIcon-BRVcqcso.css.map → cjs/react/components/AccountMenuButton/icons/TouchIcon-MNIglhTw.css.map} +1 -1
  25. package/dist/{esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-C-pi9121.css → cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-CL3fN9ai.css} +1 -1
  26. package/dist/{esm/react/components/PasskeyAuthMenu/PasskeyAuthMenu-C-pi9121.css.map → cjs/react/components/PasskeyAuthMenu/PasskeyAuthMenu-CL3fN9ai.css.map} +1 -1
  27. package/dist/{esm/react/components/ShowQRCode-CL4gsszN.css → cjs/react/components/ShowQRCode-CB0UCQ_h.css} +1 -1
  28. package/dist/{esm/react/components/ShowQRCode-CL4gsszN.css.map → cjs/react/components/ShowQRCode-CB0UCQ_h.css.map} +1 -1
  29. package/dist/cjs/react/hooks/useNearClient.js +1 -1
  30. package/dist/cjs/react/src/core/EmailRecovery/index.js +1 -1
  31. package/dist/cjs/react/src/core/TatchiPasskey/emailRecovery.js +1 -1
  32. package/dist/cjs/react/src/core/TatchiPasskey/index.js +2 -2
  33. package/dist/cjs/react/src/core/TatchiPasskey/login.js +1 -1
  34. package/dist/cjs/react/src/core/TatchiPasskey/registration.js +1 -1
  35. package/dist/cjs/react/src/core/WalletIframe/client/router.js +1 -1
  36. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +1 -1
  37. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +1 -1
  38. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +1 -1
  39. package/dist/cjs/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +1 -1
  40. package/dist/cjs/react/src/core/defaultConfigs.js +1 -4
  41. package/dist/cjs/react/src/core/defaultConfigs.js.map +1 -1
  42. package/dist/cjs/react/src/core/rpcCalls.js +1 -1
  43. package/dist/cjs/react/src/core/threshold/thresholdEd25519AuthSession.js +1 -1
  44. package/dist/cjs/react/src/core/threshold/thresholdSessionPolicy.js +1 -1
  45. package/dist/cjs/react/src/threshold/defaultsThreshold.js +9 -0
  46. package/dist/cjs/react/src/threshold/defaultsThreshold.js.map +1 -0
  47. package/dist/cjs/react/src/threshold/participants.js +3 -3
  48. package/dist/cjs/react/src/threshold/participants.js.map +1 -1
  49. package/dist/cjs/server/core/AuthService.js +21 -8
  50. package/dist/cjs/server/core/AuthService.js.map +1 -1
  51. package/dist/cjs/server/core/ThresholdService/config.js +4 -4
  52. package/dist/cjs/server/core/ThresholdService/stores/CloudflareDurableObjectStore.js +2 -1
  53. package/dist/cjs/server/core/ThresholdService/stores/CloudflareDurableObjectStore.js.map +1 -1
  54. package/dist/cjs/server/core/ThresholdService/validation.js +5 -5
  55. package/dist/cjs/server/router/cloudflare.js +11 -47
  56. package/dist/cjs/server/router/cloudflare.js.map +1 -1
  57. package/dist/cjs/server/router/express.js +1 -45
  58. package/dist/cjs/server/router/express.js.map +1 -1
  59. package/dist/cjs/server/sdk/src/core/defaultConfigs.js +1 -6
  60. package/dist/cjs/server/sdk/src/core/defaultConfigs.js.map +1 -1
  61. package/dist/cjs/server/sdk/src/threshold/defaultsThreshold.js +11 -0
  62. package/dist/cjs/server/sdk/src/threshold/defaultsThreshold.js.map +1 -0
  63. package/dist/cjs/server/sdk/src/threshold/participants.js +1 -1
  64. package/dist/cjs/server/sdk/src/threshold/participants.js.map +1 -1
  65. package/dist/cjs/threshold/defaultsThreshold.js +9 -0
  66. package/dist/cjs/threshold/defaultsThreshold.js.map +1 -0
  67. package/dist/cjs/threshold/participants.js +3 -3
  68. package/dist/cjs/threshold/participants.js.map +1 -1
  69. package/dist/esm/core/EmailRecovery/index.js +1 -1
  70. package/dist/esm/core/TatchiPasskey/emailRecovery.js +1 -1
  71. package/dist/esm/core/TatchiPasskey/index.js +2 -2
  72. package/dist/esm/core/TatchiPasskey/login.js +1 -1
  73. package/dist/esm/core/TatchiPasskey/registration.js +1 -1
  74. package/dist/esm/core/WalletIframe/client/router.js +1 -1
  75. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +1 -1
  76. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +1 -1
  77. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +1 -1
  78. package/dist/esm/core/WebAuthnManager/SignerWorkerManager/index.js +1 -1
  79. package/dist/esm/core/defaultConfigs.js +2 -3
  80. package/dist/esm/core/defaultConfigs.js.map +1 -1
  81. package/dist/esm/core/rpcCalls.js +1 -1
  82. package/dist/esm/core/threshold/thresholdEd25519AuthSession.js +1 -1
  83. package/dist/esm/core/threshold/thresholdSessionPolicy.js +1 -1
  84. package/dist/esm/index.js +1 -1
  85. package/dist/esm/react/hooks/useNearClient.js +1 -1
  86. package/dist/esm/react/src/core/EmailRecovery/index.js +1 -1
  87. package/dist/esm/react/src/core/TatchiPasskey/emailRecovery.js +1 -1
  88. package/dist/esm/react/src/core/TatchiPasskey/index.js +2 -2
  89. package/dist/esm/react/src/core/TatchiPasskey/login.js +1 -1
  90. package/dist/esm/react/src/core/TatchiPasskey/registration.js +1 -1
  91. package/dist/esm/react/src/core/WalletIframe/client/router.js +1 -1
  92. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/checkCanRegisterUser.js +1 -1
  93. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signDelegateAction.js +1 -1
  94. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/handlers/signTransactionsWithActions.js +1 -1
  95. package/dist/esm/react/src/core/WebAuthnManager/SignerWorkerManager/index.js +1 -1
  96. package/dist/esm/react/src/core/defaultConfigs.js +2 -3
  97. package/dist/esm/react/src/core/defaultConfigs.js.map +1 -1
  98. package/dist/esm/react/src/core/rpcCalls.js +1 -1
  99. package/dist/esm/react/src/core/threshold/thresholdEd25519AuthSession.js +1 -1
  100. package/dist/esm/react/src/core/threshold/thresholdSessionPolicy.js +1 -1
  101. package/dist/esm/react/src/threshold/defaultsThreshold.js +7 -0
  102. package/dist/esm/react/src/threshold/defaultsThreshold.js.map +1 -0
  103. package/dist/esm/react/src/threshold/participants.js +1 -1
  104. package/dist/esm/react/src/threshold/participants.js.map +1 -1
  105. package/dist/esm/sdk/{EmailRecovery-DpG2EQDF.js → EmailRecovery-2Uh2k7N5.js} +3 -3
  106. package/dist/esm/sdk/{EmailRecovery-cdBwoR1C.js → EmailRecovery-CzYKlWlX.js} +1 -1
  107. package/dist/esm/sdk/{IndexedDBManager-D3i0zcNn.js → IndexedDBManager-sIBkDe6K.js} +1 -1
  108. package/dist/esm/sdk/{createAdapters-Cd82ruyc.js → createAdapters-Brv4hH3j.js} +1 -1
  109. package/dist/esm/sdk/{defaultConfigs-BgjIYavi.js → defaultConfigs-CdODeJtR.js} +1 -3
  110. package/dist/esm/sdk/defaultsThreshold-DQOQn9gv.js +6 -0
  111. package/dist/esm/sdk/{emailRecovery-Cdrq7VHg.js → emailRecovery-sEZeDPiB.js} +7 -6
  112. package/dist/esm/sdk/{getDeviceNumber-DDzTSBNN.js → getDeviceNumber-CNnhFdYo.js} +6 -3
  113. package/dist/esm/sdk/getDeviceNumber-CNnhFdYo.js.map +1 -0
  114. package/dist/esm/sdk/{host-mode-BIUqo9hg.js → host-mode-BH5NpIt_.js} +1 -1
  115. package/dist/esm/sdk/{linkDevice-BAu6ztGb.js → linkDevice-CvJ6haa6.js} +7 -6
  116. package/dist/esm/sdk/{localOnly-DO0wqplt.js → localOnly-BzSP07eQ.js} +4 -4
  117. package/dist/esm/sdk/{login-BrbG-W7_.js → login-B9oqUzJ-.js} +3 -3
  118. package/dist/esm/sdk/offline-export-app.js +204 -204
  119. package/dist/esm/sdk/offline-export-app.js.map +1 -1
  120. package/dist/esm/sdk/{registration-BOwlGsk5.js → registration-HAehZPUz.js} +2 -2
  121. package/dist/esm/sdk/{router-BUUlXomz.js → router-DM7zMT-v.js} +2 -1
  122. package/dist/esm/sdk/{rpcCalls-D-0naH80.js → rpcCalls-CWXiIHoR.js} +3 -2
  123. package/dist/esm/sdk/{rpcCalls-BQyx4G4W.js → rpcCalls-Dt0H_wKo.js} +1 -1
  124. package/dist/esm/sdk/{scanDevice-DXvt5czx.js → scanDevice-Cx5RiyDD.js} +6 -5
  125. package/dist/esm/sdk/{syncAccount-CN0kdxIk.js → syncAccount-Cax4lalw.js} +3 -3
  126. package/dist/esm/sdk/{syncAccount-o4MHkYCi.js → syncAccount-JFb9Hq2k.js} +6 -5
  127. package/dist/esm/sdk/{transactions-BTFYyLh-.js → transactions-B0mSqlo-.js} +5 -4
  128. package/dist/esm/sdk/{transactions-DO83NFx7.js → transactions-B2mbIBXn.js} +2 -2
  129. package/dist/esm/sdk/{transactions-DO83NFx7.js.map → transactions-B2mbIBXn.js.map} +1 -1
  130. package/dist/esm/sdk/wallet-iframe-host.js +27 -26
  131. package/dist/esm/server/core/AuthService.js +21 -8
  132. package/dist/esm/server/core/AuthService.js.map +1 -1
  133. package/dist/esm/server/core/ThresholdService/config.js +1 -1
  134. package/dist/esm/server/core/ThresholdService/stores/CloudflareDurableObjectStore.js +2 -1
  135. package/dist/esm/server/core/ThresholdService/stores/CloudflareDurableObjectStore.js.map +1 -1
  136. package/dist/esm/server/core/ThresholdService/validation.js +1 -1
  137. package/dist/esm/server/router/cloudflare.js +11 -47
  138. package/dist/esm/server/router/cloudflare.js.map +1 -1
  139. package/dist/esm/server/router/express.js +1 -45
  140. package/dist/esm/server/router/express.js.map +1 -1
  141. package/dist/esm/server/sdk/src/core/defaultConfigs.js +3 -4
  142. package/dist/esm/server/sdk/src/core/defaultConfigs.js.map +1 -1
  143. package/dist/esm/server/sdk/src/threshold/defaultsThreshold.js +8 -0
  144. package/dist/esm/server/sdk/src/threshold/defaultsThreshold.js.map +1 -0
  145. package/dist/esm/server/sdk/src/threshold/participants.js +1 -1
  146. package/dist/esm/server/sdk/src/threshold/participants.js.map +1 -1
  147. package/dist/esm/threshold/defaultsThreshold.js +7 -0
  148. package/dist/esm/threshold/defaultsThreshold.js.map +1 -0
  149. package/dist/esm/threshold/participants.js +1 -1
  150. package/dist/esm/threshold/participants.js.map +1 -1
  151. package/dist/esm/wasm_vrf_worker/pkg/wasm_vrf_worker_bg.wasm +0 -0
  152. package/dist/types/src/core/defaultConfigs.d.ts +1 -3
  153. package/dist/types/src/core/defaultConfigs.d.ts.map +1 -1
  154. package/dist/types/src/server/core/AuthService.d.ts +2 -0
  155. package/dist/types/src/server/core/AuthService.d.ts.map +1 -1
  156. package/dist/types/src/server/core/ThresholdService/stores/CloudflareDurableObjectStore.d.ts.map +1 -1
  157. package/dist/types/src/server/router/cloudflare/routes/health.d.ts.map +1 -1
  158. package/dist/types/src/threshold/defaultsThreshold.d.ts +4 -0
  159. package/dist/types/src/threshold/defaultsThreshold.d.ts.map +1 -0
  160. package/dist/types/src/threshold/participants.d.ts +1 -2
  161. package/dist/types/src/threshold/participants.d.ts.map +1 -1
  162. package/dist/workers/wasm_vrf_worker_bg.wasm +0 -0
  163. package/package.json +1 -1
  164. package/dist/esm/sdk/getDeviceNumber-DDzTSBNN.js.map +0 -1
  165. /package/dist/{cjs → esm}/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css +0 -0
  166. /package/dist/{cjs → esm}/react/components/AccountMenuButton/LinkedDevicesModal-C-RBcCPI.css.map +0 -0
  167. /package/dist/{cjs → esm}/react/components/AccountMenuButton/ProfileDropdown-PbPeG87E.css +0 -0
  168. /package/dist/{cjs → esm}/react/components/AccountMenuButton/ProfileDropdown-PbPeG87E.css.map +0 -0
  169. /package/dist/{cjs → esm}/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css +0 -0
  170. /package/dist/{cjs → esm}/react/components/AccountMenuButton/Web3AuthProfileButton-QsQWyQ9D.css.map +0 -0
  171. /package/dist/{cjs → esm}/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css +0 -0
  172. /package/dist/{cjs → esm}/react/components/AccountMenuButton/icons/TouchIcon-C-RcGfr5.css.map +0 -0
  173. /package/dist/{cjs → esm}/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D-AbLBb1.css +0 -0
  174. /package/dist/{cjs → esm}/react/components/PasskeyAuthMenu/PasskeyAuthMenu-D-AbLBb1.css.map +0 -0
  175. /package/dist/{cjs → esm}/react/components/ShowQRCode-DGCJv1Cw.css +0 -0
  176. /package/dist/{cjs → esm}/react/components/ShowQRCode-DGCJv1Cw.css.map +0 -0
  177. /package/dist/esm/sdk/{browser-CH0Ca-MX.js → browser-C-W52ASM.js} +0 -0
  178. /package/dist/esm/sdk/{collectAuthenticationCredentialForVrfChallenge-DziJEs0K.js → collectAuthenticationCredentialForVrfChallenge-DoFrUJB-.js} +0 -0
  179. /package/dist/esm/sdk/{delegateAction-DZzVi1bn.js → delegateAction-RocJOMZZ.js} +0 -0
  180. /package/dist/esm/sdk/{getDeviceNumber-y3mMtky6.js → getDeviceNumber-C1YzVd1u.js} +0 -0
  181. /package/dist/esm/sdk/{iframe-host-BVt1hvOt.js → iframe-host-Cjfha7dm.js} +0 -0
  182. /package/dist/esm/sdk/{relay-BCEyWFew.js → relay-DS3eAJdt.js} +0 -0
  183. /package/dist/esm/sdk/{signNEP413-D6ToBnSM.js → signNEP413-DcBCCiZN.js} +0 -0
@@ -1,6 +1,6 @@
1
1
  const require_accountIds = require('../types/accountIds.js');
2
- const require_base64 = require('../../utils/base64.js');
3
2
  const require_index = require('../IndexedDBManager/index.js');
3
+ const require_base64 = require('../../utils/base64.js');
4
4
  const require_emailRecoveryPendingStore = require('./emailRecoveryPendingStore.js');
5
5
 
6
6
  //#region src/core/EmailRecovery/index.ts
@@ -1,8 +1,8 @@
1
1
  const require_validation = require('../../utils/validation.js');
2
2
  const require_accountIds = require('../types/accountIds.js');
3
- const require_errors = require('../../utils/errors.js');
4
3
  const require_participants = require('../../threshold/participants.js');
5
4
  const require_index = require('../IndexedDBManager/index.js');
5
+ const require_errors = require('../../utils/errors.js');
6
6
  const require_rpc = require('../types/rpc.js');
7
7
  const require_vrf_worker = require('../types/vrf-worker.js');
8
8
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
@@ -1,9 +1,9 @@
1
1
  const require_accountIds = require('../types/accountIds.js');
2
+ const require_index = require('../IndexedDBManager/index.js');
2
3
  const require_errors = require('../../utils/errors.js');
3
4
  const require_theme = require('../../utils/theme.js');
4
- const require_defaultConfigs = require('../defaultConfigs.js');
5
- const require_index = require('../IndexedDBManager/index.js');
6
5
  const require_NearClient = require('../NearClient.js');
6
+ const require_defaultConfigs = require('../defaultConfigs.js');
7
7
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
8
8
  const require_actions = require('../types/actions.js');
9
9
  const require_authenticatorOptions = require('../types/authenticatorOptions.js');
@@ -1,6 +1,6 @@
1
- const require_errors = require('../../utils/errors.js');
2
1
  const require_participants = require('../../threshold/participants.js');
3
2
  const require_index = require('../IndexedDBManager/index.js');
3
+ const require_errors = require('../../utils/errors.js');
4
4
  const require_vrf_worker = require('../types/vrf-worker.js');
5
5
  const require_touchIdPrompt = require('../WebAuthnManager/touchIdPrompt.js');
6
6
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
@@ -1,8 +1,8 @@
1
1
  const require_validation = require('../../utils/validation.js');
2
2
  const require_signer_worker = require('../types/signer-worker.js');
3
- const require_errors = require('../../utils/errors.js');
4
3
  const require_participants = require('../../threshold/participants.js');
5
4
  const require_index = require('../IndexedDBManager/index.js');
5
+ const require_errors = require('../../utils/errors.js');
6
6
  const require_rpc = require('../types/rpc.js');
7
7
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
8
8
  const require_rpcCalls = require('../rpcCalls.js');
@@ -1,8 +1,8 @@
1
1
  const require_validation = require('../../../utils/validation.js');
2
2
  const require_signer_worker = require('../../types/signer-worker.js');
3
3
  const require_errors = require('../../../utils/errors.js');
4
- const require_defaultConfigs = require('../../defaultConfigs.js');
5
4
  const require_NearClient = require('../../NearClient.js');
5
+ const require_defaultConfigs = require('../../defaultConfigs.js');
6
6
  const require_sdkSentEvents = require('../../types/sdkSentEvents.js');
7
7
  const require_overlay = require('../../OfflineExport/overlay.js');
8
8
  const require_on_events_progress_bus = require('./on-events-progress-bus.js');
@@ -1,7 +1,7 @@
1
1
  const require_validation = require('../../../../utils/validation.js');
2
2
  const require_errors = require('../../../../utils/errors.js');
3
- const require_defaultConfigs = require('../../../defaultConfigs.js');
4
3
  const require_credentialsHelpers = require('../../credentialsHelpers.js');
4
+ const require_defaultConfigs = require('../../../defaultConfigs.js');
5
5
  const require_sdkSentEvents = require('../../../types/sdkSentEvents.js');
6
6
  const require_rpcCalls = require('../../../rpcCalls.js');
7
7
 
@@ -2,9 +2,9 @@ const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.
2
2
  const require_validation = require('../../../../utils/validation.js');
3
3
  const require_accountIds = require('../../../types/accountIds.js');
4
4
  const require_signer_worker = require('../../../types/signer-worker.js');
5
- const require_defaultConfigs = require('../../../defaultConfigs.js');
6
5
  const require_participants = require('../../../../threshold/participants.js');
7
6
  const require_credentialsHelpers = require('../../credentialsHelpers.js');
7
+ const require_defaultConfigs = require('../../../defaultConfigs.js');
8
8
  const require_actions = require('../../../types/actions.js');
9
9
  const require_getDeviceNumber = require('../getDeviceNumber.js');
10
10
  const require_sessionHandshake = require('../sessionHandshake.js');
@@ -1,10 +1,10 @@
1
1
  const require_rolldown_runtime = require('../../../../_virtual/rolldown_runtime.js');
2
2
  const require_accountIds = require('../../../types/accountIds.js');
3
3
  const require_signer_worker = require('../../../types/signer-worker.js');
4
- const require_defaultConfigs = require('../../../defaultConfigs.js');
5
4
  const require_participants = require('../../../../threshold/participants.js');
6
5
  const require_NearClient = require('../../../NearClient.js');
7
6
  const require_credentialsHelpers = require('../../credentialsHelpers.js');
7
+ const require_defaultConfigs = require('../../../defaultConfigs.js');
8
8
  const require_actions = require('../../../types/actions.js');
9
9
  const require_getDeviceNumber = require('../getDeviceNumber.js');
10
10
  const require_sessionHandshake = require('../sessionHandshake.js');
@@ -1,7 +1,7 @@
1
1
  const require_validation = require('../../../utils/validation.js');
2
2
  const require_signer_worker = require('../../types/signer-worker.js');
3
- const require_errors = require('../../../utils/errors.js');
4
3
  const require_index = require('../../IndexedDBManager/index.js');
4
+ const require_errors = require('../../../utils/errors.js');
5
5
  const require_config = require('../../../config.js');
6
6
  const require_workers = require('../../sdkPaths/workers.js');
7
7
  const require_touchIdPrompt = require('../touchIdPrompt.js');
@@ -1,5 +1,6 @@
1
1
  const require_validation = require('../utils/validation.js');
2
2
  const require_signer_worker = require('./types/signer-worker.js');
3
+ const require_defaultsThreshold = require('../threshold/defaultsThreshold.js');
3
4
 
4
5
  //#region src/core/defaultConfigs.ts
5
6
  const PASSKEY_MANAGER_DEFAULT_CONFIGS = {
@@ -41,8 +42,6 @@ const PASSKEY_MANAGER_DEFAULT_CONFIGS = {
41
42
  rpIdOverride: "example.localhost"
42
43
  }
43
44
  };
44
- const THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID = 1;
45
- const THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID = 2;
46
45
  const DEFAULT_EMAIL_RECOVERY_CONTRACTS = {
47
46
  emailRecovererGlobalContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.emailRecovererGlobalContract,
48
47
  zkEmailVerifierContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.zkEmailVerifierContract,
@@ -103,7 +102,5 @@ function buildConfigsFromEnv(overrides = {}) {
103
102
  //#endregion
104
103
  exports.DEFAULT_EMAIL_RECOVERY_CONTRACTS = DEFAULT_EMAIL_RECOVERY_CONTRACTS;
105
104
  exports.PASSKEY_MANAGER_DEFAULT_CONFIGS = PASSKEY_MANAGER_DEFAULT_CONFIGS;
106
- exports.THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID = THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID;
107
- exports.THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID = THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID;
108
105
  exports.buildConfigsFromEnv = buildConfigsFromEnv;
109
106
  //# sourceMappingURL=defaultConfigs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaultConfigs.js","names":["PASSKEY_MANAGER_DEFAULT_CONFIGS: TatchiConfigs","DEFAULT_EMAIL_RECOVERY_CONTRACTS: EmailRecoveryContracts","toTrimmedString","coerceSignerMode","merged: TatchiConfigs"],"sources":["../../../src/core/defaultConfigs.ts"],"sourcesContent":["import type { EmailRecoveryContracts, TatchiConfigs, TatchiConfigsInput } from './types/tatchi';\nimport { coerceSignerMode } from './types/signer-worker';\nimport { toTrimmedString } from '@/utils';\n\n// Default SDK configs suitable for local dev.\n// Cross-origin wallet isolation is recommended; set iframeWallet in your app config when you have a dedicated origin.\n// Consumers can shallow-merge overrides by field.\n\nexport const PASSKEY_MANAGER_DEFAULT_CONFIGS: TatchiConfigs = {\n // You can provide a single URL or a comma-separated list for failover.\n // First URL is treated as primary, subsequent URLs are fallbacks.\n nearRpcUrl: 'https://test.rpc.fastnear.com, https://rpc.testnet.near.org',\n nearNetwork: 'testnet',\n contractId: 'w3a-v1.testnet',\n nearExplorerUrl: 'https://testnet.nearblocks.io',\n signerMode: { mode: 'local-signer' },\n // Warm signing session defaults used by login/unlock flows.\n // Enforcement (TTL/uses) is owned by the VRF worker; signer workers remain one-shot.\n signingSessionDefaults: {\n ttlMs: 0, // 0 minutes\n remainingUses: 0, // default to requiring a touchID prompt for each transaction\n },\n relayer: {\n // accountId: 'w3a-v1.testnet',\n // No default relayer URL. Force apps to configure via env/overrides.\n // Using an empty string triggers early validation errors in code paths that require it.\n url: '',\n delegateActionRoute: '/signed-delegate',\n emailRecovery: {\n // Require at least 0.01 NEAR available to start email recovery.\n minBalanceYocto: '10000000000000000000000', // 0.01 NEAR\n // Poll every 4 seconds for verification status / access key.\n pollingIntervalMs: 4000,\n // Stop polling after 30 minutes.\n maxPollingDurationMs: 30 * 60 * 1000,\n // Expire pending recovery records after 30 minutes.\n pendingTtlMs: 30 * 60 * 1000,\n // Default recovery mailbox for examples / docs.\n mailtoAddress: 'recover@web3authn.org',\n },\n },\n vrfWorkerConfigs: {\n shamir3pass: {\n // default Shamir's P in vrf-wasm-worker, needs to match relay server's Shamir P\n p: '3N5w46AIGjGT2v5Vua_TMD5Ywfa9U2F7-WzW8SNDsIM',\n // No default relay server URL to avoid accidental localhost usage in non-dev envs\n // Defaults to relayer.url when undefined\n relayServerUrl: '',\n applyServerLockRoute: '/vrf/apply-server-lock',\n removeServerLockRoute: '/vrf/remove-server-lock',\n }\n },\n emailRecoveryContracts: {\n emailRecovererGlobalContract: 'w3a-email-recoverer-v1.testnet',\n zkEmailVerifierContract: 'zk-email-verifier-v1.testnet',\n emailDkimVerifierContract: 'email-dkim-verifier-v1.testnet',\n },\n // Configure iframeWallet in application code to point at your dedicated wallet origin when available.\n iframeWallet: {\n walletOrigin: 'https://wallet.example.localhost',\n walletServicePath: '/wallet-service',\n sdkBasePath: '/sdk',\n rpIdOverride: 'example.localhost',\n }\n};\n\n// Default threshold participant identifiers (2P FROST).\n// These are intentionally exported as standalone constants so apps can reuse them when wiring\n// threshold signing across client + server environments.\nexport const THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID = 1 as const;\nexport const THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID = 2 as const;\nexport const THRESHOLD_ED25519_2P_PARTICIPANT_IDS = [\n THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID,\n THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID,\n] as const;\n\n// Threshold node roles.\n// Coordinator is the default because it exposes the public `/threshold-ed25519/sign/*` endpoints.\nexport const DEFAULT_EMAIL_RECOVERY_CONTRACTS: EmailRecoveryContracts = {\n emailRecovererGlobalContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.emailRecovererGlobalContract,\n zkEmailVerifierContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.zkEmailVerifierContract,\n emailDkimVerifierContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.emailDkimVerifierContract,\n};\n\n// Merge defaults with overrides\nexport function buildConfigsFromEnv(overrides: TatchiConfigsInput = {}): TatchiConfigs {\n\n const defaults = PASSKEY_MANAGER_DEFAULT_CONFIGS;\n const relayerUrl = overrides.relayer?.url ?? defaults.relayer?.url ?? '';\n // Prefer explicit override for relayer URL; fall back to default preset.\n // Used below to default VRF relayServerUrl when it is undefined.\n const relayServerUrlDefault = relayerUrl;\n const overrideShamirRelayServerUrl = overrides.vrfWorkerConfigs?.shamir3pass?.relayServerUrl;\n const resolvedShamirRelayServerUrl = overrideShamirRelayServerUrl !== undefined\n ? toTrimmedString(overrideShamirRelayServerUrl) ?? ''\n : toTrimmedString(defaults.vrfWorkerConfigs?.shamir3pass?.relayServerUrl) || relayServerUrlDefault;\n const signerMode = coerceSignerMode(overrides.signerMode, defaults.signerMode);\n const merged: TatchiConfigs = {\n nearRpcUrl: overrides.nearRpcUrl ?? defaults.nearRpcUrl,\n nearNetwork: overrides.nearNetwork ?? defaults.nearNetwork,\n contractId: overrides.contractId ?? defaults.contractId,\n nearExplorerUrl: overrides.nearExplorerUrl ?? defaults.nearExplorerUrl,\n signerMode,\n signingSessionDefaults: {\n ttlMs: overrides.signingSessionDefaults?.ttlMs\n ?? defaults.signingSessionDefaults?.ttlMs,\n remainingUses: overrides.signingSessionDefaults?.remainingUses\n ?? defaults.signingSessionDefaults?.remainingUses,\n },\n relayer: {\n url: relayerUrl,\n delegateActionRoute: overrides.relayer?.delegateActionRoute\n ?? defaults.relayer?.delegateActionRoute,\n emailRecovery: {\n minBalanceYocto: overrides.relayer?.emailRecovery?.minBalanceYocto\n ?? defaults.relayer?.emailRecovery?.minBalanceYocto,\n pollingIntervalMs: overrides.relayer?.emailRecovery?.pollingIntervalMs\n ?? defaults.relayer?.emailRecovery?.pollingIntervalMs,\n maxPollingDurationMs: overrides.relayer?.emailRecovery?.maxPollingDurationMs\n ?? defaults.relayer?.emailRecovery?.maxPollingDurationMs,\n pendingTtlMs: overrides.relayer?.emailRecovery?.pendingTtlMs\n ?? defaults.relayer?.emailRecovery?.pendingTtlMs,\n mailtoAddress: overrides.relayer?.emailRecovery?.mailtoAddress\n ?? defaults.relayer?.emailRecovery?.mailtoAddress,\n },\n },\n authenticatorOptions: overrides.authenticatorOptions ?? defaults.authenticatorOptions,\n vrfWorkerConfigs: {\n shamir3pass: {\n p: overrides.vrfWorkerConfigs?.shamir3pass?.p\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.p,\n relayServerUrl: resolvedShamirRelayServerUrl,\n applyServerLockRoute: overrides.vrfWorkerConfigs?.shamir3pass?.applyServerLockRoute\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.applyServerLockRoute,\n removeServerLockRoute: overrides.vrfWorkerConfigs?.shamir3pass?.removeServerLockRoute\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.removeServerLockRoute,\n },\n },\n emailRecoveryContracts: {\n emailRecovererGlobalContract: overrides.emailRecoveryContracts?.emailRecovererGlobalContract\n ?? defaults.emailRecoveryContracts?.emailRecovererGlobalContract,\n zkEmailVerifierContract: overrides.emailRecoveryContracts?.zkEmailVerifierContract\n ?? defaults.emailRecoveryContracts?.zkEmailVerifierContract,\n emailDkimVerifierContract: overrides.emailRecoveryContracts?.emailDkimVerifierContract\n ?? defaults.emailRecoveryContracts?.emailDkimVerifierContract,\n },\n iframeWallet: {\n // Preserve explicit empty-string walletOrigin (\"\") because it is used as a sentinel\n // to disable iframe-wallet mode in tests and some apps.\n walletOrigin: overrides.iframeWallet?.walletOrigin\n ?? defaults.iframeWallet?.walletOrigin,\n rpIdOverride: overrides.iframeWallet?.rpIdOverride\n ?? defaults.iframeWallet?.rpIdOverride,\n // IMPORTANT: the following fields are often wired from CI env vars like `VITE_SDK_BASE_PATH`.\n // When a GitHub Actions env var is missing, expressions like `${{ vars.VITE_SDK_BASE_PATH }}`\n // frequently become the empty string at build-time. Treat empty strings as \"unset\" so we\n // fall back to SDK defaults instead of accidentally generating root-relative URLs like:\n // https://wallet.example.com/w3a-components.css (wrong; should be /sdk/w3a-components.css)\n walletServicePath: toTrimmedString(overrides.iframeWallet?.walletServicePath)\n || toTrimmedString(defaults.iframeWallet?.walletServicePath)\n || '/wallet-service',\n sdkBasePath: toTrimmedString(overrides.iframeWallet?.sdkBasePath)\n || toTrimmedString(defaults.iframeWallet?.sdkBasePath)\n || '/sdk',\n }\n };\n if (!merged.contractId) {\n throw new Error('[configPresets] Missing required config: contractId');\n }\n if (!merged.relayer.url) {\n throw new Error('[configPresets] Missing required config: relayer.url');\n }\n return merged;\n}\n"],"mappings":";;;;AAQA,MAAaA,kCAAiD;CAG5D,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,iBAAiB;CACjB,YAAY,EAAE,MAAM;CAGpB,wBAAwB;EACtB,OAAO;EACP,eAAe;;CAEjB,SAAS;EAIP,KAAK;EACL,qBAAqB;EACrB,eAAe;GAEb,iBAAiB;GAEjB,mBAAmB;GAEnB,sBAAsB,OAAU;GAEhC,cAAc,OAAU;GAExB,eAAe;;;CAGnB,kBAAkB,EAChB,aAAa;EAEX,GAAG;EAGH,gBAAgB;EAChB,sBAAsB;EACtB,uBAAuB;;CAG3B,wBAAwB;EACtB,8BAA8B;EAC9B,yBAAyB;EACzB,2BAA2B;;CAG7B,cAAc;EACZ,cAAc;EACd,mBAAmB;EACnB,aAAa;EACb,cAAc;;;AAOlB,MAAa,0CAA0C;AACvD,MAAa,2CAA2C;AAQxD,MAAaC,mCAA2D;CACtE,8BAA8B,gCAAgC,uBAAuB;CACrF,yBAAyB,gCAAgC,uBAAuB;CAChF,2BAA2B,gCAAgC,uBAAuB;;AAIpF,SAAgB,oBAAoB,YAAgC,IAAmB;CAErF,MAAM,WAAW;CACjB,MAAM,aAAa,UAAU,SAAS,OAAO,SAAS,SAAS,OAAO;CAGtE,MAAM,wBAAwB;CAC9B,MAAM,+BAA+B,UAAU,kBAAkB,aAAa;CAC9E,MAAM,+BAA+B,iCAAiC,SAClEC,mCAAgB,iCAAiC,KACjDA,mCAAgB,SAAS,kBAAkB,aAAa,mBAAmB;CAC/E,MAAM,aAAaC,uCAAiB,UAAU,YAAY,SAAS;CACnE,MAAMC,SAAwB;EAC5B,YAAY,UAAU,cAAc,SAAS;EAC7C,aAAa,UAAU,eAAe,SAAS;EAC/C,YAAY,UAAU,cAAc,SAAS;EAC7C,iBAAiB,UAAU,mBAAmB,SAAS;EACvD;EACA,wBAAwB;GACtB,OAAO,UAAU,wBAAwB,SACpC,SAAS,wBAAwB;GACtC,eAAe,UAAU,wBAAwB,iBAC5C,SAAS,wBAAwB;;EAExC,SAAS;GACP,KAAK;GACL,qBAAqB,UAAU,SAAS,uBACnC,SAAS,SAAS;GACvB,eAAe;IACb,iBAAiB,UAAU,SAAS,eAAe,mBAC9C,SAAS,SAAS,eAAe;IACtC,mBAAmB,UAAU,SAAS,eAAe,qBAChD,SAAS,SAAS,eAAe;IACtC,sBAAsB,UAAU,SAAS,eAAe,wBACnD,SAAS,SAAS,eAAe;IACtC,cAAc,UAAU,SAAS,eAAe,gBAC3C,SAAS,SAAS,eAAe;IACtC,eAAe,UAAU,SAAS,eAAe,iBAC5C,SAAS,SAAS,eAAe;;;EAG1C,sBAAsB,UAAU,wBAAwB,SAAS;EACjE,kBAAkB,EAChB,aAAa;GACX,GAAG,UAAU,kBAAkB,aAAa,KACvC,SAAS,kBAAkB,aAAa;GAC7C,gBAAgB;GAChB,sBAAsB,UAAU,kBAAkB,aAAa,wBAC1D,SAAS,kBAAkB,aAAa;GAC7C,uBAAuB,UAAU,kBAAkB,aAAa,yBAC3D,SAAS,kBAAkB,aAAa;;EAGjD,wBAAwB;GACtB,8BAA8B,UAAU,wBAAwB,gCAC3D,SAAS,wBAAwB;GACtC,yBAAyB,UAAU,wBAAwB,2BACtD,SAAS,wBAAwB;GACtC,2BAA2B,UAAU,wBAAwB,6BACxD,SAAS,wBAAwB;;EAExC,cAAc;GAGZ,cAAc,UAAU,cAAc,gBACjC,SAAS,cAAc;GAC5B,cAAc,UAAU,cAAc,gBACjC,SAAS,cAAc;GAM5B,mBAAmBF,mCAAgB,UAAU,cAAc,sBACtDA,mCAAgB,SAAS,cAAc,sBACvC;GACL,aAAaA,mCAAgB,UAAU,cAAc,gBAChDA,mCAAgB,SAAS,cAAc,gBACvC;;;AAGT,KAAI,CAAC,OAAO,WACV,OAAM,IAAI,MAAM;AAElB,KAAI,CAAC,OAAO,QAAQ,IAClB,OAAM,IAAI,MAAM;AAElB,QAAO"}
1
+ {"version":3,"file":"defaultConfigs.js","names":["PASSKEY_MANAGER_DEFAULT_CONFIGS: TatchiConfigs","DEFAULT_EMAIL_RECOVERY_CONTRACTS: EmailRecoveryContracts","toTrimmedString","coerceSignerMode","merged: TatchiConfigs"],"sources":["../../../src/core/defaultConfigs.ts"],"sourcesContent":["import type { EmailRecoveryContracts, TatchiConfigs, TatchiConfigsInput } from './types/tatchi';\nimport { coerceSignerMode } from './types/signer-worker';\nimport { toTrimmedString } from '@/utils';\nexport {\n THRESHOLD_ED25519_CLIENT_PARTICIPANT_ID,\n THRESHOLD_ED25519_RELAYER_PARTICIPANT_ID,\n THRESHOLD_ED25519_2P_PARTICIPANT_IDS,\n} from '../threshold/defaultsThreshold';\n\n// Default SDK configs suitable for local dev.\n// Cross-origin wallet isolation is recommended; set iframeWallet in your app config when you have a dedicated origin.\n// Consumers can shallow-merge overrides by field.\n\nexport const PASSKEY_MANAGER_DEFAULT_CONFIGS: TatchiConfigs = {\n // You can provide a single URL or a comma-separated list for failover.\n // First URL is treated as primary, subsequent URLs are fallbacks.\n nearRpcUrl: 'https://test.rpc.fastnear.com, https://rpc.testnet.near.org',\n nearNetwork: 'testnet',\n contractId: 'w3a-v1.testnet',\n nearExplorerUrl: 'https://testnet.nearblocks.io',\n signerMode: { mode: 'local-signer' },\n // Warm signing session defaults used by login/unlock flows.\n // Enforcement (TTL/uses) is owned by the VRF worker; signer workers remain one-shot.\n signingSessionDefaults: {\n ttlMs: 0, // 0 minutes\n remainingUses: 0, // default to requiring a touchID prompt for each transaction\n },\n relayer: {\n // accountId: 'w3a-v1.testnet',\n // No default relayer URL. Force apps to configure via env/overrides.\n // Using an empty string triggers early validation errors in code paths that require it.\n url: '',\n delegateActionRoute: '/signed-delegate',\n emailRecovery: {\n // Require at least 0.01 NEAR available to start email recovery.\n minBalanceYocto: '10000000000000000000000', // 0.01 NEAR\n // Poll every 4 seconds for verification status / access key.\n pollingIntervalMs: 4000,\n // Stop polling after 30 minutes.\n maxPollingDurationMs: 30 * 60 * 1000,\n // Expire pending recovery records after 30 minutes.\n pendingTtlMs: 30 * 60 * 1000,\n // Default recovery mailbox for examples / docs.\n mailtoAddress: 'recover@web3authn.org',\n },\n },\n vrfWorkerConfigs: {\n shamir3pass: {\n // default Shamir's P in vrf-wasm-worker, needs to match relay server's Shamir P\n p: '3N5w46AIGjGT2v5Vua_TMD5Ywfa9U2F7-WzW8SNDsIM',\n // No default relay server URL to avoid accidental localhost usage in non-dev envs\n // Defaults to relayer.url when undefined\n relayServerUrl: '',\n applyServerLockRoute: '/vrf/apply-server-lock',\n removeServerLockRoute: '/vrf/remove-server-lock',\n }\n },\n emailRecoveryContracts: {\n emailRecovererGlobalContract: 'w3a-email-recoverer-v1.testnet',\n zkEmailVerifierContract: 'zk-email-verifier-v1.testnet',\n emailDkimVerifierContract: 'email-dkim-verifier-v1.testnet',\n },\n // Configure iframeWallet in application code to point at your dedicated wallet origin when available.\n iframeWallet: {\n walletOrigin: 'https://wallet.example.localhost',\n walletServicePath: '/wallet-service',\n sdkBasePath: '/sdk',\n rpIdOverride: 'example.localhost',\n }\n};\n\n// Threshold node roles.\n// Coordinator is the default because it exposes the public `/threshold-ed25519/sign/*` endpoints.\nexport const DEFAULT_EMAIL_RECOVERY_CONTRACTS: EmailRecoveryContracts = {\n emailRecovererGlobalContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.emailRecovererGlobalContract,\n zkEmailVerifierContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.zkEmailVerifierContract,\n emailDkimVerifierContract: PASSKEY_MANAGER_DEFAULT_CONFIGS.emailRecoveryContracts.emailDkimVerifierContract,\n};\n\n// Merge defaults with overrides\nexport function buildConfigsFromEnv(overrides: TatchiConfigsInput = {}): TatchiConfigs {\n\n const defaults = PASSKEY_MANAGER_DEFAULT_CONFIGS;\n const relayerUrl = overrides.relayer?.url ?? defaults.relayer?.url ?? '';\n // Prefer explicit override for relayer URL; fall back to default preset.\n // Used below to default VRF relayServerUrl when it is undefined.\n const relayServerUrlDefault = relayerUrl;\n const overrideShamirRelayServerUrl = overrides.vrfWorkerConfigs?.shamir3pass?.relayServerUrl;\n const resolvedShamirRelayServerUrl = overrideShamirRelayServerUrl !== undefined\n ? toTrimmedString(overrideShamirRelayServerUrl) ?? ''\n : toTrimmedString(defaults.vrfWorkerConfigs?.shamir3pass?.relayServerUrl) || relayServerUrlDefault;\n const signerMode = coerceSignerMode(overrides.signerMode, defaults.signerMode);\n const merged: TatchiConfigs = {\n nearRpcUrl: overrides.nearRpcUrl ?? defaults.nearRpcUrl,\n nearNetwork: overrides.nearNetwork ?? defaults.nearNetwork,\n contractId: overrides.contractId ?? defaults.contractId,\n nearExplorerUrl: overrides.nearExplorerUrl ?? defaults.nearExplorerUrl,\n signerMode,\n signingSessionDefaults: {\n ttlMs: overrides.signingSessionDefaults?.ttlMs\n ?? defaults.signingSessionDefaults?.ttlMs,\n remainingUses: overrides.signingSessionDefaults?.remainingUses\n ?? defaults.signingSessionDefaults?.remainingUses,\n },\n relayer: {\n url: relayerUrl,\n delegateActionRoute: overrides.relayer?.delegateActionRoute\n ?? defaults.relayer?.delegateActionRoute,\n emailRecovery: {\n minBalanceYocto: overrides.relayer?.emailRecovery?.minBalanceYocto\n ?? defaults.relayer?.emailRecovery?.minBalanceYocto,\n pollingIntervalMs: overrides.relayer?.emailRecovery?.pollingIntervalMs\n ?? defaults.relayer?.emailRecovery?.pollingIntervalMs,\n maxPollingDurationMs: overrides.relayer?.emailRecovery?.maxPollingDurationMs\n ?? defaults.relayer?.emailRecovery?.maxPollingDurationMs,\n pendingTtlMs: overrides.relayer?.emailRecovery?.pendingTtlMs\n ?? defaults.relayer?.emailRecovery?.pendingTtlMs,\n mailtoAddress: overrides.relayer?.emailRecovery?.mailtoAddress\n ?? defaults.relayer?.emailRecovery?.mailtoAddress,\n },\n },\n authenticatorOptions: overrides.authenticatorOptions ?? defaults.authenticatorOptions,\n vrfWorkerConfigs: {\n shamir3pass: {\n p: overrides.vrfWorkerConfigs?.shamir3pass?.p\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.p,\n relayServerUrl: resolvedShamirRelayServerUrl,\n applyServerLockRoute: overrides.vrfWorkerConfigs?.shamir3pass?.applyServerLockRoute\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.applyServerLockRoute,\n removeServerLockRoute: overrides.vrfWorkerConfigs?.shamir3pass?.removeServerLockRoute\n ?? defaults.vrfWorkerConfigs?.shamir3pass?.removeServerLockRoute,\n },\n },\n emailRecoveryContracts: {\n emailRecovererGlobalContract: overrides.emailRecoveryContracts?.emailRecovererGlobalContract\n ?? defaults.emailRecoveryContracts?.emailRecovererGlobalContract,\n zkEmailVerifierContract: overrides.emailRecoveryContracts?.zkEmailVerifierContract\n ?? defaults.emailRecoveryContracts?.zkEmailVerifierContract,\n emailDkimVerifierContract: overrides.emailRecoveryContracts?.emailDkimVerifierContract\n ?? defaults.emailRecoveryContracts?.emailDkimVerifierContract,\n },\n iframeWallet: {\n // Preserve explicit empty-string walletOrigin (\"\") because it is used as a sentinel\n // to disable iframe-wallet mode in tests and some apps.\n walletOrigin: overrides.iframeWallet?.walletOrigin\n ?? defaults.iframeWallet?.walletOrigin,\n rpIdOverride: overrides.iframeWallet?.rpIdOverride\n ?? defaults.iframeWallet?.rpIdOverride,\n // IMPORTANT: the following fields are often wired from CI env vars like `VITE_SDK_BASE_PATH`.\n // When a GitHub Actions env var is missing, expressions like `${{ vars.VITE_SDK_BASE_PATH }}`\n // frequently become the empty string at build-time. Treat empty strings as \"unset\" so we\n // fall back to SDK defaults instead of accidentally generating root-relative URLs like:\n // https://wallet.example.com/w3a-components.css (wrong; should be /sdk/w3a-components.css)\n walletServicePath: toTrimmedString(overrides.iframeWallet?.walletServicePath)\n || toTrimmedString(defaults.iframeWallet?.walletServicePath)\n || '/wallet-service',\n sdkBasePath: toTrimmedString(overrides.iframeWallet?.sdkBasePath)\n || toTrimmedString(defaults.iframeWallet?.sdkBasePath)\n || '/sdk',\n }\n };\n if (!merged.contractId) {\n throw new Error('[configPresets] Missing required config: contractId');\n }\n if (!merged.relayer.url) {\n throw new Error('[configPresets] Missing required config: relayer.url');\n }\n return merged;\n}\n"],"mappings":";;;;;AAaA,MAAaA,kCAAiD;CAG5D,YAAY;CACZ,aAAa;CACb,YAAY;CACZ,iBAAiB;CACjB,YAAY,EAAE,MAAM;CAGpB,wBAAwB;EACtB,OAAO;EACP,eAAe;;CAEjB,SAAS;EAIP,KAAK;EACL,qBAAqB;EACrB,eAAe;GAEb,iBAAiB;GAEjB,mBAAmB;GAEnB,sBAAsB,OAAU;GAEhC,cAAc,OAAU;GAExB,eAAe;;;CAGnB,kBAAkB,EAChB,aAAa;EAEX,GAAG;EAGH,gBAAgB;EAChB,sBAAsB;EACtB,uBAAuB;;CAG3B,wBAAwB;EACtB,8BAA8B;EAC9B,yBAAyB;EACzB,2BAA2B;;CAG7B,cAAc;EACZ,cAAc;EACd,mBAAmB;EACnB,aAAa;EACb,cAAc;;;AAMlB,MAAaC,mCAA2D;CACtE,8BAA8B,gCAAgC,uBAAuB;CACrF,yBAAyB,gCAAgC,uBAAuB;CAChF,2BAA2B,gCAAgC,uBAAuB;;AAIpF,SAAgB,oBAAoB,YAAgC,IAAmB;CAErF,MAAM,WAAW;CACjB,MAAM,aAAa,UAAU,SAAS,OAAO,SAAS,SAAS,OAAO;CAGtE,MAAM,wBAAwB;CAC9B,MAAM,+BAA+B,UAAU,kBAAkB,aAAa;CAC9E,MAAM,+BAA+B,iCAAiC,SAClEC,mCAAgB,iCAAiC,KACjDA,mCAAgB,SAAS,kBAAkB,aAAa,mBAAmB;CAC/E,MAAM,aAAaC,uCAAiB,UAAU,YAAY,SAAS;CACnE,MAAMC,SAAwB;EAC5B,YAAY,UAAU,cAAc,SAAS;EAC7C,aAAa,UAAU,eAAe,SAAS;EAC/C,YAAY,UAAU,cAAc,SAAS;EAC7C,iBAAiB,UAAU,mBAAmB,SAAS;EACvD;EACA,wBAAwB;GACtB,OAAO,UAAU,wBAAwB,SACpC,SAAS,wBAAwB;GACtC,eAAe,UAAU,wBAAwB,iBAC5C,SAAS,wBAAwB;;EAExC,SAAS;GACP,KAAK;GACL,qBAAqB,UAAU,SAAS,uBACnC,SAAS,SAAS;GACvB,eAAe;IACb,iBAAiB,UAAU,SAAS,eAAe,mBAC9C,SAAS,SAAS,eAAe;IACtC,mBAAmB,UAAU,SAAS,eAAe,qBAChD,SAAS,SAAS,eAAe;IACtC,sBAAsB,UAAU,SAAS,eAAe,wBACnD,SAAS,SAAS,eAAe;IACtC,cAAc,UAAU,SAAS,eAAe,gBAC3C,SAAS,SAAS,eAAe;IACtC,eAAe,UAAU,SAAS,eAAe,iBAC5C,SAAS,SAAS,eAAe;;;EAG1C,sBAAsB,UAAU,wBAAwB,SAAS;EACjE,kBAAkB,EAChB,aAAa;GACX,GAAG,UAAU,kBAAkB,aAAa,KACvC,SAAS,kBAAkB,aAAa;GAC7C,gBAAgB;GAChB,sBAAsB,UAAU,kBAAkB,aAAa,wBAC1D,SAAS,kBAAkB,aAAa;GAC7C,uBAAuB,UAAU,kBAAkB,aAAa,yBAC3D,SAAS,kBAAkB,aAAa;;EAGjD,wBAAwB;GACtB,8BAA8B,UAAU,wBAAwB,gCAC3D,SAAS,wBAAwB;GACtC,yBAAyB,UAAU,wBAAwB,2BACtD,SAAS,wBAAwB;GACtC,2BAA2B,UAAU,wBAAwB,6BACxD,SAAS,wBAAwB;;EAExC,cAAc;GAGZ,cAAc,UAAU,cAAc,gBACjC,SAAS,cAAc;GAC5B,cAAc,UAAU,cAAc,gBACjC,SAAS,cAAc;GAM5B,mBAAmBF,mCAAgB,UAAU,cAAc,sBACtDA,mCAAgB,SAAS,cAAc,sBACvC;GACL,aAAaA,mCAAgB,UAAU,cAAc,gBAChDA,mCAAgB,SAAS,cAAc,gBACvC;;;AAGT,KAAI,CAAC,OAAO,WACV,OAAM,IAAI,MAAM;AAElB,KAAI,CAAC,OAAO,QAAQ,IAClB,OAAM,IAAI,MAAM;AAElB,QAAO"}
@@ -1,9 +1,9 @@
1
1
  const require_validation = require('../utils/validation.js');
2
2
  const require_base64 = require('../utils/base64.js');
3
3
  const require_errors = require('../utils/errors.js');
4
- const require_defaultConfigs = require('./defaultConfigs.js');
5
4
  const require_rpc = require('./types/rpc.js');
6
5
  const require_vrf_worker = require('./types/vrf-worker.js');
6
+ const require_defaultConfigs = require('./defaultConfigs.js');
7
7
  const require_sdkSentEvents = require('./types/sdkSentEvents.js');
8
8
  const require_actions = require('./types/actions.js');
9
9
 
@@ -1,6 +1,6 @@
1
1
  const require_validation = require('../../utils/validation.js');
2
- const require_base64 = require('../../utils/base64.js');
3
2
  const require_participants = require('../../threshold/participants.js');
3
+ const require_base64 = require('../../utils/base64.js');
4
4
  const require_credentialsHelpers = require('../WebAuthnManager/credentialsHelpers.js');
5
5
 
6
6
  //#region src/core/threshold/thresholdEd25519AuthSession.ts
@@ -1,6 +1,6 @@
1
+ const require_participants = require('../../threshold/participants.js');
1
2
  const require_base64 = require('../../utils/base64.js');
2
3
  const require_digests = require('../../utils/digests.js');
3
- const require_participants = require('../../threshold/participants.js');
4
4
 
5
5
  //#region src/core/threshold/thresholdSessionPolicy.ts
6
6
  const THRESHOLD_SESSION_POLICY_VERSION = "threshold_session_v1";
package/dist/cjs/index.js CHANGED
@@ -1,9 +1,9 @@
1
1
  const require_accountIds = require('./core/types/accountIds.js');
2
2
  const require_base64 = require('./utils/base64.js');
3
- const require_defaultConfigs = require('./core/defaultConfigs.js');
4
3
  const require_rpc = require('./core/types/rpc.js');
5
4
  const require_NearClient = require('./core/NearClient.js');
6
5
  const require_config = require('./config.js');
6
+ const require_defaultConfigs = require('./core/defaultConfigs.js');
7
7
  const require_sdkSentEvents = require('./core/types/sdkSentEvents.js');
8
8
  const require_actions = require('./core/types/actions.js');
9
9
  const require_rpcCalls = require('./core/rpcCalls.js');
@@ -449,4 +449,4 @@
449
449
  }
450
450
 
451
451
 
452
- /*# sourceMappingURL=LinkedDevicesModal-BCrFe5p3.css.map*/
452
+ /*# sourceMappingURL=LinkedDevicesModal-BRtht0XI.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"LinkedDevicesModal-BCrFe5p3.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/LinkedDevicesModal.css"],"sourcesContent":["/* Linked Devices Modal Styles */\n\n.w3a-access-keys-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n /* Ensure this modal stays below the wallet iframe overlay */\n z-index: var(--w3a-z-underlay-backdrop, calc(var(--w3a-wallet-overlay-z, 2147483646) - var(--w3a-wallet-underlay-backdrop-offset, 2)));\n background: oklch(0.2 0.01 240 / 0.8);\n backdrop-filter: blur(8px);\n display: flex;\n justify-content: center;\n align-items: center;\n animation: backdrop-opacity 32ms ease-in;\n will-change: opacity;\n}\n\n.w3a-access-keys-modal-inner {\n position: relative;\n z-index: var(--w3a-z-underlay-content, calc(var(--w3a-wallet-overlay-z, 2147483646) - var(--w3a-wallet-underlay-content-offset, 1)));\n display: grid;\n place-items: center;\n height: 100%;\n width: 100%;\n max-width: 480;\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n overflow: visible;\n}\n\n.w3a-access-keys-modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n overflow: visible;\n min-height: 200px;\n max-width: 480px;\n min-width: 340px;\n background: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n}\n\n.w3a-access-keys-modal-close {\n position: absolute;\n top: 1rem;\n right: 1rem;\n background: none;\n border: none;\n font-size: 1rem;\n font-weight: 600;\n color: var(--w3a-colors-textMuted);\n cursor: pointer;\n padding: 24px;\n border-radius: 2rem;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n}\n\n.w3a-access-keys-modal-close:hover {\n color: var(--w3a-colors-textPrimary);\n background: var(--w3a-colors-surface);\n}\n\n.w3a-access-keys-modal-header {\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n align-items: center;\n padding: 1rem;\n}\n\n.w3a-access-keys-modal-title {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--w3a-colors-textPrimary);\n margin: 0;\n}\n\n.w3a-access-keys-modal-subtitle {\n font-size: 1rem;\n font-weight: 600;\n color: var(--w3a-colors-textPrimary);\n margin: 16px 0 8px;\n}\n\n.w3a-access-keys-section {\n margin-top: 12px;\n}\n\n.theme-light .w3a-access-key-current {\n color: var(--w3a-colors-blue500, var(--w3a-colors-primary));\n}\n\n.theme-dark .w3a-access-key-current {\n color: var(--w3a-colors-primary, var(--w3a-colors-blue500));\n}\n\n\n/* Loading, error, and empty states */\n.w3a-access-keys-error,\n.w3a-access-keys-empty {\n text-align: center;\n padding: 32px;\n color: var(--w3a-colors-textMuted);\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.w3a-access-keys-error { color: var(--w3a-colors-error); }\n\n.w3a-access-keys-error .w3a-btn {\n margin-top: 16px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .w3a-access-keys-modal-outer {\n padding: 8px;\n }\n\n .w3a-access-keys-modal-inner {\n max-width: 100%;\n max-height: 90vh;\n /* Prefer dynamic viewport height on capable browsers */\n @supports (height: 1dvh) {\n max-height: 90dvh;\n }\n }\n\n .w3a-access-keys-modal-header {\n padding: 16px;\n }\n\n .w3a-access-keys-modal-content {\n padding: 0 16px 16px;\n max-width: 480px;\n }\n}\n\n@media (max-width: 480px) {\n .w3a-key-item {\n max-width: 100%;\n }\n}\n\n/* Linked Devices List */\n.w3a-keys-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n overflow-x: visible;\n}\n\n.w3a-key-item {\n box-sizing: border-box;\n display: grid;\n align-items: center;\n background: var(--w3a-colors-surface);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 1rem;\n padding: 1rem;\n transition: all 0.2s ease;\n overflow: visible;\n animation: fadeInKeyItem 0.2s ease-in;\n}\n\n.w3a-key-content {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n}\n\n.w3a-key-details {\n flex: 1;\n min-width: 0;\n font-size: 0.9rem;\n font-weight: 500;\n line-height: 1rem;\n display: grid;\n gap: 0.5rem;\n}\n\n.w3a-key-details .mono {\n word-break: break-all;\n}\n\n.w3a-key-details .body {\n margin-bottom: 0;\n}\n\n.w3a-key-details .body:last-child {\n margin-bottom: 0;\n}\n\n.w3a-key-status {\n flex-shrink: 0;\n}\n\n.w3a-status-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 92px;\n padding: 2px 8px;\n background: transparent;\n color: var(--w3a-colors-success);\n border: 1px solid var(--w3a-colors-success);\n border-radius: 12px;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n.theme-light .w3a-status-badge.w3a-full-access {\n color: var(--w3a-colors-blue500);\n border-color: var(--w3a-colors-blue500);\n}\n\n.w3a-key-header {\n display: flex;\n align-items: center;\n gap: var(--w3a-spacing-sm);\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-copyable-key {\n cursor: pointer;\n flex: 1;\n margin: 0;\n transition: all 0.2s ease;\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-copyable-key:hover {\n cursor: pointer;\n color: var(--w3a-colors-primary);\n}\n\n/* Tooltip styles */\n.w3a-copyable-key {\n position: relative;\n}\n\n.w3a-copy-tooltip {\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n border: 1px solid var(--w3a-colors-textMuted);\n padding: 0.25rem 0.5rem;\n border-radius: 1rem;\n font-size: 0.75rem;\n white-space: nowrap;\n z-index: 1000;\n margin-bottom: 0.25rem;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n animation: tooltipFadeIn 0.1s ease-in-out;\n pointer-events: none;\n}\n\n.w3a-copy-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: var(--w3a-colors-surface);\n}\n\n/* Registered timestamp styling */\n.w3a-registered {\n font-size: 0.9rem;\n color: var(--w3a-colors-textPrimary);\n}\n\n/* Theme-specific contrast for registered timestamps */\n.theme-dark .w3a-registered {\n color: var(--w3a-colors-textPrimary);\n}\n.theme-light .w3a-registered {\n color: var(--w3a-colors-textPrimary);\n}\n\n/* Inline device row layout */\n.w3a-device-row {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Device badge */\n.w3a-device-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n border-radius: 999px;\n border: 1px solid var(--w3a-colors-borderPrimary);\n color: #fff;\n background: var(--w3a-colors-buttonBackground);\n font-size: 0.825rem;\n font-weight: 600;\n line-height: 1;\n}\n\n.w3a-current-device-text {\n opacity: 0.85;\n}\n\n.w3a-separator {\n opacity: 0.6;\n}\n\n@keyframes tooltipFadeIn {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n@keyframes copiedPulse {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.05);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n/* Button System */\n.w3a-btn {\n padding: 4px 8px;\n border: none;\n border-radius: 8px;\n font-size: 0.9rem;\n font-weight: 500;\n min-width: 2rem;\n min-height: 2rem;\n cursor: pointer;\n transition: all 0.2s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 2px;\n}\n\n.w3a-btn-primary {\n background: var(--w3a-colors-primary);\n color: #fff;\n}\n\n.w3a-btn-primary:hover:not(:disabled) {\n background: var(--w3a-colors-primaryHover);\n box-shadow: 0 2px 4px var(--w3a-shadows-sm);\n}\n\n.w3a-btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n.w3a-btn-danger {\n background: var(--w3a-colors-error);\n color: #fff;\n}\n\n.w3a-btn-danger:hover:not(:disabled) {\n background: var(--w3a-colors-error);\n box-shadow: 0 2px 4px var(--w3a-shadows-sm);\n}\n\n.w3a-btn-danger:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n.w3a-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid var(--w3a-colors-borderPrimary);\n border-top: 2px solid var(--w3a-colors-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n/* Button-local spinner: match text size inside small buttons */\n.w3a-btn .w3a-spinner,\n.w3a-btn-primary .w3a-spinner,\n.w3a-btn-danger .w3a-spinner,\n.w3a-btn-disabled .w3a-spinner {\n width: 1em;\n height: 1em;\n border-width: 2px;\n margin-left: 0;\n}\n\n/* Danger button spinner: use white instead of primary/blue */\n.w3a-btn-danger .w3a-spinner {\n border-color: rgba(255, 255, 255, 0.4);\n border-top-color: #ffffff;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes fadeInKeyItem {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdrop-opacity {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"LinkedDevicesModal-BRtht0XI.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/LinkedDevicesModal.css"],"sourcesContent":["/* Linked Devices Modal Styles */\n\n.w3a-access-keys-modal-backdrop {\n position: fixed;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n /* Ensure this modal stays below the wallet iframe overlay */\n z-index: var(--w3a-z-underlay-backdrop, calc(var(--w3a-wallet-overlay-z, 2147483646) - var(--w3a-wallet-underlay-backdrop-offset, 2)));\n background: oklch(0.2 0.01 240 / 0.8);\n backdrop-filter: blur(8px);\n display: flex;\n justify-content: center;\n align-items: center;\n animation: backdrop-opacity 32ms ease-in;\n will-change: opacity;\n}\n\n.w3a-access-keys-modal-inner {\n position: relative;\n z-index: var(--w3a-z-underlay-content, calc(var(--w3a-wallet-overlay-z, 2147483646) - var(--w3a-wallet-underlay-content-offset, 1)));\n display: grid;\n place-items: center;\n height: 100%;\n width: 100%;\n max-width: 480;\n border-radius: 12px;\n box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);\n overflow: visible;\n}\n\n.w3a-access-keys-modal-content {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 1rem;\n overflow: visible;\n min-height: 200px;\n max-width: 480px;\n min-width: 340px;\n background: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n}\n\n.w3a-access-keys-modal-close {\n position: absolute;\n top: 1rem;\n right: 1rem;\n background: none;\n border: none;\n font-size: 1rem;\n font-weight: 600;\n color: var(--w3a-colors-textMuted);\n cursor: pointer;\n padding: 24px;\n border-radius: 2rem;\n transition: all 0.2s ease;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 32px;\n height: 32px;\n}\n\n.w3a-access-keys-modal-close:hover {\n color: var(--w3a-colors-textPrimary);\n background: var(--w3a-colors-surface);\n}\n\n.w3a-access-keys-modal-header {\n display: flex;\n justify-content: space-between;\n box-sizing: border-box;\n align-items: center;\n padding: 1rem;\n}\n\n.w3a-access-keys-modal-title {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--w3a-colors-textPrimary);\n margin: 0;\n}\n\n.w3a-access-keys-modal-subtitle {\n font-size: 1rem;\n font-weight: 600;\n color: var(--w3a-colors-textPrimary);\n margin: 16px 0 8px;\n}\n\n.w3a-access-keys-section {\n margin-top: 12px;\n}\n\n.theme-light .w3a-access-key-current {\n color: var(--w3a-colors-blue500, var(--w3a-colors-primary));\n}\n\n.theme-dark .w3a-access-key-current {\n color: var(--w3a-colors-primary, var(--w3a-colors-blue500));\n}\n\n\n/* Loading, error, and empty states */\n.w3a-access-keys-error,\n.w3a-access-keys-empty {\n text-align: center;\n padding: 32px;\n color: var(--w3a-colors-textMuted);\n flex: 1;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n\n.w3a-access-keys-error { color: var(--w3a-colors-error); }\n\n.w3a-access-keys-error .w3a-btn {\n margin-top: 16px;\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .w3a-access-keys-modal-outer {\n padding: 8px;\n }\n\n .w3a-access-keys-modal-inner {\n max-width: 100%;\n max-height: 90vh;\n /* Prefer dynamic viewport height on capable browsers */\n @supports (height: 1dvh) {\n max-height: 90dvh;\n }\n }\n\n .w3a-access-keys-modal-header {\n padding: 16px;\n }\n\n .w3a-access-keys-modal-content {\n padding: 0 16px 16px;\n max-width: 480px;\n }\n}\n\n@media (max-width: 480px) {\n .w3a-key-item {\n max-width: 100%;\n }\n}\n\n/* Linked Devices List */\n.w3a-keys-list {\n display: flex;\n flex-direction: column;\n gap: 8px;\n flex: 1;\n overflow-x: visible;\n}\n\n.w3a-key-item {\n box-sizing: border-box;\n display: grid;\n align-items: center;\n background: var(--w3a-colors-surface);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 1rem;\n padding: 1rem;\n transition: all 0.2s ease;\n overflow: visible;\n animation: fadeInKeyItem 0.2s ease-in;\n}\n\n.w3a-key-content {\n display: flex;\n flex-direction: row;\n justify-content: center;\n align-items: center;\n gap: 1rem;\n}\n\n.w3a-key-details {\n flex: 1;\n min-width: 0;\n font-size: 0.9rem;\n font-weight: 500;\n line-height: 1rem;\n display: grid;\n gap: 0.5rem;\n}\n\n.w3a-key-details .mono {\n word-break: break-all;\n}\n\n.w3a-key-details .body {\n margin-bottom: 0;\n}\n\n.w3a-key-details .body:last-child {\n margin-bottom: 0;\n}\n\n.w3a-key-status {\n flex-shrink: 0;\n}\n\n.w3a-status-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 92px;\n padding: 2px 8px;\n background: transparent;\n color: var(--w3a-colors-success);\n border: 1px solid var(--w3a-colors-success);\n border-radius: 12px;\n font-size: 0.75rem;\n font-weight: 500;\n}\n\n.theme-light .w3a-status-badge.w3a-full-access {\n color: var(--w3a-colors-blue500);\n border-color: var(--w3a-colors-blue500);\n}\n\n.w3a-key-header {\n display: flex;\n align-items: center;\n gap: var(--w3a-spacing-sm);\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-copyable-key {\n cursor: pointer;\n flex: 1;\n margin: 0;\n transition: all 0.2s ease;\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-copyable-key:hover {\n cursor: pointer;\n color: var(--w3a-colors-primary);\n}\n\n/* Tooltip styles */\n.w3a-copyable-key {\n position: relative;\n}\n\n.w3a-copy-tooltip {\n position: absolute;\n bottom: 100%;\n left: 50%;\n transform: translateX(-50%);\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n border: 1px solid var(--w3a-colors-textMuted);\n padding: 0.25rem 0.5rem;\n border-radius: 1rem;\n font-size: 0.75rem;\n white-space: nowrap;\n z-index: 1000;\n margin-bottom: 0.25rem;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.15);\n animation: tooltipFadeIn 0.1s ease-in-out;\n pointer-events: none;\n}\n\n.w3a-copy-tooltip::after {\n content: '';\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n border: 4px solid transparent;\n border-top-color: var(--w3a-colors-surface);\n}\n\n/* Registered timestamp styling */\n.w3a-registered {\n font-size: 0.9rem;\n color: var(--w3a-colors-textPrimary);\n}\n\n/* Theme-specific contrast for registered timestamps */\n.theme-dark .w3a-registered {\n color: var(--w3a-colors-textPrimary);\n}\n.theme-light .w3a-registered {\n color: var(--w3a-colors-textPrimary);\n}\n\n/* Inline device row layout */\n.w3a-device-row {\n display: inline-flex;\n align-items: center;\n gap: 8px;\n}\n\n/* Device badge */\n.w3a-device-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n padding: 4px 8px;\n border-radius: 999px;\n border: 1px solid var(--w3a-colors-borderPrimary);\n color: #fff;\n background: var(--w3a-colors-buttonBackground);\n font-size: 0.825rem;\n font-weight: 600;\n line-height: 1;\n}\n\n.w3a-current-device-text {\n opacity: 0.85;\n}\n\n.w3a-separator {\n opacity: 0.6;\n}\n\n@keyframes tooltipFadeIn {\n from {\n opacity: 0;\n transform: translateX(-50%) translateY(4px);\n }\n to {\n opacity: 1;\n transform: translateX(-50%) translateY(0);\n }\n}\n\n@keyframes copiedPulse {\n 0% {\n transform: scale(1);\n }\n 50% {\n transform: scale(1.05);\n }\n 100% {\n transform: scale(1);\n }\n}\n\n/* Button System */\n.w3a-btn {\n padding: 4px 8px;\n border: none;\n border-radius: 8px;\n font-size: 0.9rem;\n font-weight: 500;\n min-width: 2rem;\n min-height: 2rem;\n cursor: pointer;\n transition: all 0.2s ease;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n gap: 2px;\n}\n\n.w3a-btn-primary {\n background: var(--w3a-colors-primary);\n color: #fff;\n}\n\n.w3a-btn-primary:hover:not(:disabled) {\n background: var(--w3a-colors-primaryHover);\n box-shadow: 0 2px 4px var(--w3a-shadows-sm);\n}\n\n.w3a-btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n.w3a-btn-danger {\n background: var(--w3a-colors-error);\n color: #fff;\n}\n\n.w3a-btn-danger:hover:not(:disabled) {\n background: var(--w3a-colors-error);\n box-shadow: 0 2px 4px var(--w3a-shadows-sm);\n}\n\n.w3a-btn-danger:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n transform: none;\n}\n\n.w3a-spinner {\n width: 16px;\n height: 16px;\n border: 2px solid var(--w3a-colors-borderPrimary);\n border-top: 2px solid var(--w3a-colors-primary);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n}\n\n/* Button-local spinner: match text size inside small buttons */\n.w3a-btn .w3a-spinner,\n.w3a-btn-primary .w3a-spinner,\n.w3a-btn-danger .w3a-spinner,\n.w3a-btn-disabled .w3a-spinner {\n width: 1em;\n height: 1em;\n border-width: 2px;\n margin-left: 0;\n}\n\n/* Danger button spinner: use white instead of primary/blue */\n.w3a-btn-danger .w3a-spinner {\n border-color: rgba(255, 255, 255, 0.4);\n border-top-color: #ffffff;\n}\n\n@keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n}\n\n@keyframes fadeInKeyItem {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n\n@keyframes backdrop-opacity {\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -65,4 +65,4 @@ body[data-w3a-theme-pulse="1"] .w3a-profile-dropdown-menu {
65
65
  }
66
66
 
67
67
 
68
- /*# sourceMappingURL=ProfileDropdown-BrM8Eemu.css.map*/
68
+ /*# sourceMappingURL=ProfileDropdown-fqba9J6J.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"ProfileDropdown-BrM8Eemu.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/ProfileDropdown.css"],"sourcesContent":["/* ProfileDropdown component-specific styles */\n\n/* Dropdown (grid height animation with data-state) */\n.w3a-profile-dropdown-morphed {\n position: static;\n box-sizing: border-box;\n margin-top: 0;\n opacity: 0;\n visibility: hidden;\n display: grid;\n grid-template-rows: 0fr;\n grid-template-columns: 1fr;\n transition: opacity 120ms linear, grid-template-rows 140ms cubic-bezier(0.16, 1, 0.3, 1);\n border-top: 1px solid var(--w3a-colors-borderPrimary);\n}\n\n.w3a-profile-dropdown-morphed[data-state=\"open\"] {\n opacity: 1;\n visibility: visible;\n grid-template-rows: 1fr;\n grid-template-columns: 1fr;\n pointer-events: auto;\n --stagger-base: 40ms;\n}\n\n.w3a-profile-dropdown-morphed[data-state=\"closed\"] {\n pointer-events: none;\n border-top-width: 0;\n grid-template-rows: 0fr;\n height: 0;\n min-height: 0;\n width: 0;\n min-width: 0;\n max-width: 0;\n overflow: hidden;\n margin: 0;\n padding: 0;\n}\n\n.w3a-profile-dropdown-morphed.hidden {\n display: none;\n}\n\n/* Inner clip and container */\n.w3a-profile-dropdown-menu {\n overflow: hidden;\n min-height: 0;\n min-width: 0;\n}\n\n/* Global theme pulse when toggling theme */\n@keyframes w3a-theme-pulse {\n 0% { filter: none; }\n 50% { filter: brightness(1.05) saturate(1.06); }\n 100% { filter: none; }\n}\nbody[data-w3a-theme-pulse=\"1\"] .w3a-profile-dropdown-menu {\n animation: w3a-theme-pulse 220ms ease;\n}\n\n/* Logout menu item specific styling */\n.w3a-logout-menu-item {\n border-top: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 0px 0px 2rem 2rem;\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"ProfileDropdown-fqba9J6J.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/ProfileDropdown.css"],"sourcesContent":["/* ProfileDropdown component-specific styles */\n\n/* Dropdown (grid height animation with data-state) */\n.w3a-profile-dropdown-morphed {\n position: static;\n box-sizing: border-box;\n margin-top: 0;\n opacity: 0;\n visibility: hidden;\n display: grid;\n grid-template-rows: 0fr;\n grid-template-columns: 1fr;\n transition: opacity 120ms linear, grid-template-rows 140ms cubic-bezier(0.16, 1, 0.3, 1);\n border-top: 1px solid var(--w3a-colors-borderPrimary);\n}\n\n.w3a-profile-dropdown-morphed[data-state=\"open\"] {\n opacity: 1;\n visibility: visible;\n grid-template-rows: 1fr;\n grid-template-columns: 1fr;\n pointer-events: auto;\n --stagger-base: 40ms;\n}\n\n.w3a-profile-dropdown-morphed[data-state=\"closed\"] {\n pointer-events: none;\n border-top-width: 0;\n grid-template-rows: 0fr;\n height: 0;\n min-height: 0;\n width: 0;\n min-width: 0;\n max-width: 0;\n overflow: hidden;\n margin: 0;\n padding: 0;\n}\n\n.w3a-profile-dropdown-morphed.hidden {\n display: none;\n}\n\n/* Inner clip and container */\n.w3a-profile-dropdown-menu {\n overflow: hidden;\n min-height: 0;\n min-width: 0;\n}\n\n/* Global theme pulse when toggling theme */\n@keyframes w3a-theme-pulse {\n 0% { filter: none; }\n 50% { filter: brightness(1.05) saturate(1.06); }\n 100% { filter: none; }\n}\nbody[data-w3a-theme-pulse=\"1\"] .w3a-profile-dropdown-menu {\n animation: w3a-theme-pulse 220ms ease;\n}\n\n/* Logout menu item specific styling */\n.w3a-logout-menu-item {\n border-top: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 0px 0px 2rem 2rem;\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA"}
@@ -74,4 +74,4 @@
74
74
  }
75
75
 
76
76
 
77
- /*# sourceMappingURL=Web3AuthProfileButton-DXFRw8ND.css.map*/
77
+ /*# sourceMappingURL=Web3AuthProfileButton-k8_FAYFq.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"Web3AuthProfileButton-DXFRw8ND.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/Web3AuthProfileButton.css"],"sourcesContent":["* {\n box-sizing: border-box;\n}\n\n.w3a-profile-button-morphable {\n position: relative;\n background-color: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n box-shadow: var(--w3a-shadows-sm);\n font-size: 14px;\n font-weight: 500;\n color: var(--w3a-colors-textPrimary);\n cursor: pointer;\n outline: none;\n overflow: visible;\n width: fit-content;\n transition: none;\n}\n\n.w3a-profile-button-morphable:hover {\n border-color: var(--w3a-colors-borderHover);\n}\n\n.w3a-profile-button-icon {\n flex-shrink: 0;\n}\n\n.w3a-profile-button-icon svg {\n overflow: visible;\n}\n\n.w3a-profile-button-username {\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n}\n\n.w3a-profile-button-icon {\n color: var(--w3a-colors-textSecondary);\n}\n\n.w3a-profile-button-username {\n display: block; color: var(--w3a-colors-textSecondary);\n}\n\n.w3a-profile-button-username.hidden {\n display: none;\n}\n\n.w3a-user-account--toggle-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n transition: opacity 0.15s ease-in-out;\n}\n\n.w3a-user-account--toggle-text {\n flex: 1;\n}\n\n.w3a-user-account--toggle-title {\n font-weight: 500;\n color: var(--w3a-colors-textPrimary);\n font-size: 14px;\n margin: 0;\n}\n\n.w3a-user-account--toggle-description {\n font-size: 14px;\n color: var(--w3a-colors-textMuted);\n margin: 0;\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"Web3AuthProfileButton-k8_FAYFq.css","names":[],"sources":["../../../../../src/react/components/AccountMenuButton/Web3AuthProfileButton.css"],"sourcesContent":["* {\n box-sizing: border-box;\n}\n\n.w3a-profile-button-morphable {\n position: relative;\n background-color: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n box-shadow: var(--w3a-shadows-sm);\n font-size: 14px;\n font-weight: 500;\n color: var(--w3a-colors-textPrimary);\n cursor: pointer;\n outline: none;\n overflow: visible;\n width: fit-content;\n transition: none;\n}\n\n.w3a-profile-button-morphable:hover {\n border-color: var(--w3a-colors-borderHover);\n}\n\n.w3a-profile-button-icon {\n flex-shrink: 0;\n}\n\n.w3a-profile-button-icon svg {\n overflow: visible;\n}\n\n.w3a-profile-button-username {\n white-space: nowrap;\n overflow: hidden;\n display: inline-block;\n}\n\n.w3a-profile-button-icon {\n color: var(--w3a-colors-textSecondary);\n}\n\n.w3a-profile-button-username {\n display: block; color: var(--w3a-colors-textSecondary);\n}\n\n.w3a-profile-button-username.hidden {\n display: none;\n}\n\n.w3a-user-account--toggle-content {\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n justify-content: space-between;\n transition: opacity 0.15s ease-in-out;\n}\n\n.w3a-user-account--toggle-text {\n flex: 1;\n}\n\n.w3a-user-account--toggle-title {\n font-weight: 500;\n color: var(--w3a-colors-textPrimary);\n font-size: 14px;\n margin: 0;\n}\n\n.w3a-user-account--toggle-description {\n font-size: 14px;\n color: var(--w3a-colors-textMuted);\n margin: 0;\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA"}
@@ -38,4 +38,4 @@
38
38
  }
39
39
 
40
40
 
41
- /*# sourceMappingURL=TouchIcon-BRVcqcso.css.map*/
41
+ /*# sourceMappingURL=TouchIcon-MNIglhTw.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"TouchIcon-BRVcqcso.css","names":[],"sources":["../../../../../../src/react/components/AccountMenuButton/icons/TouchIcon.css"],"sourcesContent":["/* TouchIcon specific styles and animations */\n\n.w3a-fingerprint-icon {\n transition: transform 400ms ease;\n}\n\n.w3a-fingerprint-icon path {\n /* Normalize path length so dash animations are simple */\n stroke: currentColor;\n}\n\n.w3a-fingerprint-icon.open path {\n /* Draw the fingerprint when expanding/opening */\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n animation: w3a-fp-open 1.6s ease-out 0.1s both;\n}\n\n/* Animate when closing the menu */\n.w3a-fingerprint-icon.closed path {\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n animation: w3a-fp-close 1.6s ease-out 0.1s both;\n}\n\n@keyframes w3a-fp-open {\n from { stroke-dashoffset: 1; }\n to { stroke-dashoffset: 0; }\n}\n\n@keyframes w3a-fp-close {\n from { stroke-dashoffset: 1; }\n to { stroke-dashoffset: 0; }\n}\n\n.w3a-fingerprint-icon:hover {\n transform: rotate(180deg) scale(1.2);\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA"}
1
+ {"version":3,"file":"TouchIcon-MNIglhTw.css","names":[],"sources":["../../../../../../src/react/components/AccountMenuButton/icons/TouchIcon.css"],"sourcesContent":["/* TouchIcon specific styles and animations */\n\n.w3a-fingerprint-icon {\n transition: transform 400ms ease;\n}\n\n.w3a-fingerprint-icon path {\n /* Normalize path length so dash animations are simple */\n stroke: currentColor;\n}\n\n.w3a-fingerprint-icon.open path {\n /* Draw the fingerprint when expanding/opening */\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n animation: w3a-fp-open 1.6s ease-out 0.1s both;\n}\n\n/* Animate when closing the menu */\n.w3a-fingerprint-icon.closed path {\n stroke-dasharray: 1;\n stroke-dashoffset: 1;\n animation: w3a-fp-close 1.6s ease-out 0.1s both;\n}\n\n@keyframes w3a-fp-open {\n from { stroke-dashoffset: 1; }\n to { stroke-dashoffset: 0; }\n}\n\n@keyframes w3a-fp-close {\n from { stroke-dashoffset: 1; }\n to { stroke-dashoffset: 0; }\n}\n\n.w3a-fingerprint-icon:hover {\n transform: rotate(180deg) scale(1.2);\n}\n"],"mappings":"AAAA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA"}
@@ -1098,4 +1098,4 @@
1098
1098
  }
1099
1099
 
1100
1100
 
1101
- /*# sourceMappingURL=PasskeyAuthMenu-C-pi9121.css.map*/
1101
+ /*# sourceMappingURL=PasskeyAuthMenu-CL3fN9ai.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"PasskeyAuthMenu-C-pi9121.css","names":[],"sources":["../../../../../src/react/components/PasskeyAuthMenu/PasskeyAuthMenu.css"],"sourcesContent":["/* Root container */\n.w3a-no-animation {\n animation: none !important;\n transition: none !important;\n}\n\n.w3a-signup-menu-root {\n /* CSS sentinel (used by tests/diagnostics to confirm stylesheet is applied) */\n --w3a-pam2-css-ready: 1;\n position: relative;\n /* relative position to anchor back button */\n width: min(100dvw, 420px);\n max-width: 100dvw;\n min-width: 330px;\n min-height: 250px;\n color: var(--w3a-colors-textPrimary);\n background: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 3rem;\n box-shadow: var(--w3a-shadows-lg);\n padding: var(--w3a-spacing-lg);\n padding-top: calc(var(--w3a-spacing-lg) + 4px);\n position: relative;\n display: flex;\n flex-direction: column;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1), min-height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n will-change: height, min-height;\n}\n\n/* Back button */\n.w3a-back-button {\n position: absolute;\n top: 1rem;\n left: 1rem;\n width: 48px;\n height: 48px;\n padding: 0;\n aspect-ratio: 1 / 1;\n display: grid;\n place-items: center;\n line-height: 0;\n border-radius: 50%;\n color: var(--w3a-colors-textPrimary);\n background: transparent;\n cursor: pointer;\n border: none;\n z-index: 3;\n transition: transform 120ms ease, background-color 160ms ease, opacity 220ms ease;\n opacity: 0;\n pointer-events: none;\n filter: blur(0.2px);\n}\n\n.w3a-back-button.is-visible {\n opacity: 1;\n pointer-events: auto;\n filter: none;\n}\n\n.w3a-back-button:hover {\n transform: scale(1.02);\n background: var(--w3a-colors-surface);\n}\n\n.w3a-back-button:active {\n transform: scale(0.96);\n}\n\n/* Header */\n.w3a-header {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n opacity: 1;\n height: auto;\n overflow: hidden;\n transition: opacity 240ms ease-out, height 260ms cubic-bezier(0.2, 0.8, 0.2, 1), padding 260ms cubic-bezier(0.2, 0.8, 0.2, 1), margin 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n pointer-events: auto;\n position: relative;\n will-change: height, opacity;\n}\n\n/* Hide header when waiting or scan device is active */\n.w3a-signup-menu-root[data-waiting=\"true\"] .w3a-header,\n.w3a-signup-menu-root[data-scan-device=\"true\"] .w3a-header {\n opacity: 0;\n height: 0px;\n padding-top: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n pointer-events: none;\n}\n\n/* Hide header when email recovery is active */\n.w3a-signup-menu-root[data-email-recovery=\"true\"] .w3a-header {\n opacity: 0;\n height: 0px;\n padding-top: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n pointer-events: none;\n}\n\n/* Adjust content area when header is hidden */\n.w3a-signup-menu-root[data-waiting=\"true\"] .w3a-content-area,\n.w3a-signup-menu-root[data-scan-device=\"true\"] .w3a-content-area {\n flex: 1 1 auto;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Adjust content area when email recovery is active */\n.w3a-signup-menu-root[data-email-recovery=\"true\"] .w3a-content-area {\n flex: 1 1 auto;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Specific height adjustments for different states */\n.w3a-signup-menu-root[data-waiting=\"true\"] {\n min-height: 200px;\n}\n\n.w3a-signup-menu-root[data-scan-device=\"true\"] {\n min-height: 300px;\n}\n\n.w3a-signup-menu-root[data-email-recovery=\"true\"] {\n min-height: 320px;\n}\n\n.w3a-title {\n font-size: 24px;\n font-weight: 700;\n margin: 0.5rem 0.75rem;\n}\n\n.w3a-subhead {\n font-size: 1rem;\n font-weight: 500;\n line-height: 1;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n margin: 0;\n margin-bottom: 1rem;\n margin-left: 0.75rem;\n}\n\n/* Content switcher container */\n.w3a-content-switcher {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n /* ensure smooth height animations without spillover */\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n will-change: height;\n}\n\n/* Content area container */\n.w3a-content-area {\n position: relative;\n /* do not force-stretch; let content define intrinsic height */\n flex: 0 1 auto;\n display: flex;\n flex-direction: column;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Intrinsic sizer wrapper inside content area used for height measurement */\n.w3a-content-sizer {\n display: block;\n width: 100%;\n}\n\n/* Default content */\n.w3a-signin-menu {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0px;\n min-height: 250px;\n width: 100%;\n}\n\n@keyframes content-enter {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(6px);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n/* Social providers row */\n.w3a-social-row {\n display: flex;\n gap: 8px;\n margin-bottom: var(--w3a-spacing-sm);\n}\n\n.w3a-social-btn {\n height: 48px;\n flex: 1 1 0;\n min-width: 0;\n display: grid;\n place-items: center;\n cursor: pointer;\n color: var(--w3a-colors-textSecondary, #64748b);\n overflow: hidden;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n border-radius: var(--w3a-border-radius-xl);\n /* no shadow requested */\n box-shadow: none;\n}\n\n.w3a-social-btn svg {\n color: var(--w3a-colors-textSecondary, #64748b);\n}\n\n.w3a-social-btn:hover {\n background: var(--w3a-colors-surface2);\n box-shadow: var(--w3a-shadows-sm);\n}\n\n.w3a-social-btn:hover svg {\n color: var(--w3a-colors-textPrimary, #1e293b);\n}\n\n/* Passkey row */\n.w3a-passkey-row {\n position: relative;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.w3a-input-pill {\n position: relative;\n display: flex;\n flex: 1;\n align-items: center;\n padding: 0rem 1rem;\n height: 54px;\n gap: 8px;\n border: none;\n background: var(--w3a-colors-surface);\n border-radius: 2rem 2rem 2rem 2rem;\n box-shadow: none;\n overflow-x: hidden;\n transition: border-radius 150ms ease-in-out;\n}\n\n.w3a-input-pill.is-enabled {\n border-radius: 2rem 0.25rem 0.25rem 2rem;\n transition: border-radius 150ms ease-in-out;\n}\n\n.w3a-input-wrap {\n position: relative;\n flex: 1;\n height: 32px;\n display: flex;\n align-items: center;\n min-width: 0;\n /* allow input to shrink inside flex container without clipping */\n}\n\n.w3a-input {\n width: 100%;\n height: 32px;\n border: none;\n outline: none;\n background: transparent;\n color: var(--w3a-colors-textPrimary);\n font-size: 16px;\n padding: 0;\n min-width: 0;\n /* prevent overflow clipping in flex layouts */\n}\n\n/* Absolute status message anchored to bottom-right of the input area */\n.w3a-input::placeholder {\n /* Improve contrast for placeholders on dark */\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 35%);\n opacity: 0.95;\n}\n\n.w3a-postfix {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n color: var(--w3a-colors-textSecondary);\n font-size: 16px;\n white-space: nowrap;\n pointer-events: none;\n visibility: hidden;\n /* React enables once measured */\n will-change: left;\n transition: left 32ms ease;\n}\n\n.w3a-postfix.is-existing {\n color: var(--w3a-colors-success);\n}\n\n/* On focus, keep postfix subtle for readability */\n.w3a-input:focus~.w3a-postfix {\n color: var(--w3a-colors-textMuted);\n}\n\n.w3a-arrow-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 0;\n /* hidden footprint by default */\n padding: 0;\n background: transparent;\n border: 0;\n border-radius: 2rem 0.25rem 0.25rem 2rem;\n color: #fff;\n line-height: 0;\n cursor: pointer;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n margin-left: -1rem;\n z-index: 1;\n border: 6px solid var(--w3a-colors-colorBackground, #fff);\n height: 64px;\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn.is-enabled {\n width: 100px;\n /* expand when enabled */\n /* Prefer themed primary; fall back to legacy then a sane default */\n background: var(--w3a-colors-primary, #2563eb);\n border-radius: 2rem;\n /* border-radius: 2rem; */\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn.no-transition,\n.w3a-arrow-btn.no-transition.is-enabled {\n transition: none;\n}\n\n.w3a-arrow-btn .w3a-arrow-icon {\n color: #fff;\n}\n\n.w3a-arrow-btn.is-enabled:hover {\n /* transform: scale(1.02); */\n background: var(--w3a-colors-primaryHover, #1d4ed8);\n}\n\n.w3a-arrow-btn.is-enabled:active {\n transform: scale(0.96);\n}\n\n.w3a-arrow-btn:disabled {\n width: 0;\n cursor: not-allowed;\n opacity: 0.5;\n background: var(--w3a-colors-borderSecondary);\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn .w3a-arrow-label {\n margin-left: 8px;\n font-weight: 600;\n line-height: 1;\n}\n\n/* Animated arrow inside the continue button */\n.w3a-arrow-btn .stripe-arrow {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.w3a-arrow-btn .stripe-arrow>.HoverArrow {\n position: relative;\n margin-top: 0.1rem;\n margin-left: 8px;\n stroke-width: 2;\n fill: none;\n stroke: currentColor;\n}\n\n/* Horizontal line: fades in on hover of the button */\n.w3a-arrow-btn .stripe-arrow>.HoverArrow .HoverArrow__linePath {\n opacity: 0;\n transition: opacity 120ms cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n/* Chevron: nudges right and slightly scales on hover */\n.w3a-arrow-btn .stripe-arrow>.HoverArrow .HoverArrow__tipPath {\n transition: transform 120ms cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.w3a-arrow-btn.is-enabled:hover .stripe-arrow>.HoverArrow .HoverArrow__linePath,\n.w3a-arrow-btn.is-enabled:focus-visible .stripe-arrow>.HoverArrow .HoverArrow__linePath {\n opacity: 1;\n}\n\n.w3a-arrow-btn.is-enabled:hover .stripe-arrow>.HoverArrow .HoverArrow__tipPath,\n.w3a-arrow-btn.is-enabled:focus-visible .stripe-arrow>.HoverArrow .HoverArrow__tipPath {\n transform: translateX(3px);\n}\n\n/* Segmented control */\n.w3a-seg {\n position: relative;\n min-height: 54px;\n overflow: hidden;\n padding: 5px;\n border: none;\n background: var(--w3a-colors-surface2);\n border-radius: var(--w3a-border-radius-xl);\n}\n\n.w3a-seg-active {\n position: absolute;\n top: 5px;\n bottom: 5px;\n left: 0;\n border-radius: var(--w3a-border-radius-xl);\n transition:\n transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1),\n width 220ms ease,\n opacity 150ms ease;\n will-change: transform, width;\n pointer-events: none;\n}\n\n.w3a-seg-grid {\n display: flex;\n gap: 4px;\n height: 100%;\n position: relative;\n z-index: 1;\n}\n\n.w3a-seg-btn {\n flex: 1 1 0;\n min-width: 0;\n min-height: 44px;\n border-radius: 1rem;\n background: transparent;\n /* Make inactive tabs more legible and clearly tappable */\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 45%);\n font-weight: 600;\n cursor: pointer;\n border: none;\n /* Immediate taps on mobile; opt-out of double-tap zoom heuristics */\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n transition: color 200ms ease, transform 120ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n white-space: normal;\n padding: 0 14px;\n font-size: clamp(13px, 3.6vw, 15px);\n}\n\n.w3a-seg-btn:hover {\n transform: scale(1.02);\n}\n\n.w3a-seg-btn:active {\n transform: scale(0.98);\n}\n\n.w3a-seg-btn.is-active {\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-seg-btn:focus-visible {\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--w3a-colors-focus), transparent 60%);\n}\n\n@media (max-width: 420px) {\n .w3a-signup-menu-root {\n padding: 1rem;\n padding-top: calc(1rem + 4px);\n border-radius: 2rem;\n max-width: calc(100dvw - 0.25rem);\n }\n\n @supports (width: 1dvw) {\n .w3a-signup-menu-root {\n max-width: calc(100dvw - 0.25rem);\n }\n }\n\n .w3a-title {\n font-size: 20px;\n }\n\n .w3a-subhead {\n font-size: 0.9rem;\n margin-bottom: 0.75rem;\n }\n\n .w3a-input-pill {\n height: 48px;\n }\n\n .w3a-arrow-btn {\n height: 60px;\n }\n\n .w3a-arrow-btn.is-enabled {\n width: 60px;\n }\n\n .w3a-seg {\n min-height: 48px;\n padding: 4px;\n }\n\n .w3a-seg-grid {\n gap: 3px;\n }\n\n .w3a-seg-active {\n top: 4px;\n bottom: 4px;\n }\n\n .w3a-seg-btn {\n min-height: 42px;\n padding: 0 12px;\n font-size: clamp(12px, 3.4vw, 14px);\n }\n\n .w3a-back-button {\n top: -0.5rem;\n left: -0.5rem;\n }\n}\n\n/* Waiting state */\n.w3a-waiting {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: transparent;\n text-align: center;\n min-height: 200px;\n /* Quick fade with configurable delay for smoother handoff */\n animation: content-enter 200ms ease-out;\n animation-delay: var(--w3a-waiting-delay, 0ms);\n animation-fill-mode: both;\n}\n\n.w3a-waiting-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n}\n\n.w3a-waiting-text {\n font-size: 18px;\n font-weight: 600;\n}\n\n.w3a-waiting-subtext {\n font-size: 12px;\n font-weight: 500;\n line-height: 1.35;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 25%);\n}\n\n.w3a-waiting-sdk-events {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.35;\n white-space: pre-wrap;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 15%);\n}\n\n.w3a-spinner {\n width: 36px;\n height: 36px;\n border-radius: 999px;\n border: 3px solid rgba(255, 255, 255, 0.15);\n border-top-color: var(--w3a-colors-primary);\n animation: w3a-spin 0.9s linear infinite;\n}\n\n/* Scan device content wrapper */\n.w3a-scan-device-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: transparent;\n text-align: center;\n min-height: 300px;\n width: 100%;\n overflow: hidden;\n animation: content-enter 240ms ease-out;\n animation-fill-mode: both;\n}\n\n/* Ensure QR code content stays within bounds */\n.w3a-scan-device-content .qr-code-container,\n.w3a-scan-device-content .qr-modal-backdrop,\n.w3a-scan-device-content .qr-modal-content {\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n}\n\n.w3a-scan-device-content .qr-code-display {\n max-width: 280px;\n width: 100%;\n}\n\n/* Status message row */\n.w3a-status-row {\n position: absolute;\n font-size: 0.75rem;\n bottom: -10px;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.w3a-status-message {\n font-size: 11px;\n font-weight: 500;\n}\n\n/* Section divider */\n.w3a-section-divider {\n display: flex;\n align-items: center;\n margin: var(--w3a-spacing-md) 0;\n position: relative;\n}\n\n.w3a-section-divider::before,\n.w3a-section-divider::after {\n content: '';\n flex: 1;\n height: 1px;\n background: var(--w3a-colors-borderSecondary);\n}\n\n.w3a-section-divider-text {\n padding: 0 var(--w3a-spacing-sm);\n font-size: 12px;\n color: var(--w3a-colors-textSecondary);\n font-weight: 500;\n background: var(--w3a-colors-colorBackground);\n}\n\n/* Labels and helper text */\n.w3a-field-label {\n font-size: 12px;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 35%);\n margin: 6px 2px 6px;\n font-weight: 600;\n}\n\n.w3a-seg-help {\n font-size: 12px;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 25%);\n margin: 0;\n margin-left: 0.75rem;\n}\n\n.w3a-seg-help-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 8px;\n}\n\n/* Tooltip for account existence status */\n.w3a-input-wrap .w3a-tooltip {\n position: absolute;\n right: 0;\n padding: 4px 8px;\n border-radius: 1rem;\n font-size: 0.7rem;\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n opacity: 0;\n transform: translateX(50px) scale(0.9);\n pointer-events: none;\n transition: opacity 180ms ease, transform 200ms ease;\n z-index: 2;\n}\n\n.w3a-input-wrap .w3a-tooltip.is-visible {\n opacity: 0.8;\n transform: translateX(0px) scale(1);\n}\n\n.w3a-input-wrap .w3a-tooltip.is-error {\n color: var(--w3a-colors-error);\n background: var(--w3a-colors-colorBackground);\n /* background: color-mix(in srgb, var(--w3a-colors-error), transparent 90%); */\n}\n\n.w3a-input-wrap .w3a-tooltip.is-success {\n color: var(--w3a-colors-blue400);\n background: var(--w3a-colors-colorBackground);\n /* background: color-mix(in srgb, var(--w3a-colors-blue400), transparent 90%); */\n}\n\n@keyframes w3a-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes w3a-ellipsis-dot {\n\n 0%,\n 80%,\n 100% {\n opacity: 0;\n }\n\n 40% {\n opacity: 1;\n }\n}\n\n.w3a-ellipsis {\n display: inline-block;\n}\n\n.w3a-ellipsis-dot {\n display: inline-block;\n opacity: 0;\n animation: w3a-ellipsis-dot 1.2s infinite;\n}\n\n.w3a-ellipsis-dot:nth-child(2) {\n animation-delay: 0.15s;\n}\n\n.w3a-ellipsis-dot:nth-child(3) {\n animation-delay: 0.3s;\n}\n\n/* Pop/bounce-in animation (kept for legacy classes) */\n@keyframes w3a-input-msg-pop {\n 0% {\n opacity: 0;\n transform: translateY(8px) scale(0.98);\n }\n\n 60% {\n opacity: 1;\n transform: translateY(-2px) scale(1.02);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .w3a-input-msg.is-error {\n animation: none;\n }\n\n .w3a-ellipsis-dot {\n animation: none;\n opacity: 1;\n }\n}\n\n/* Button System */\n.w3a-scan-device-row {}\n\n.w3a-secondary-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.w3a-link-device-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n height: 48px;\n width: 100%;\n max-width: 100%;\n background: var(--w3a-colors-surface) !important;\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n cursor: pointer;\n color: var(--w3a-colors-textPrimary);\n font-family: var(--w3a-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n font-weight: 500;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Hover/focus elevated state (theme-reactive via CSS vars) */\n.w3a-link-device-btn:hover:not(:disabled),\n.w3a-link-device-btn:focus-visible {\n background: var(--w3a-colors-surface2) !important;\n}\n\n.w3a-link-device-btn-primary {\n background: var(--w3a-colors-buttonBackground, var(--w3a-colors-primary, #3b82f6)) !important;\n border-color: transparent;\n border-radius: 2rem;\n color: var(--w3a-colors-textButton, white);\n}\n\n.w3a-link-device-btn-primary:hover:not(:disabled),\n.w3a-link-device-btn-primary:focus-visible {\n background: var(--w3a-colors-buttonHoverBackground, var(--w3a-colors-primaryHover, #2563eb)) !important;\n color: var(--w3a-colors-textButton, white);\n}\n\n.w3a-link-device-btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* Button-local spinner: match text size inside buttons */\n.w3a-link-device-btn .w3a-spinner {\n width: 1em;\n height: 1em;\n border-width: 2px;\n}\n\n.w3a-link-device-btn-primary .w3a-spinner {\n border-color: rgba(255, 255, 255, 0.35);\n border-top-color: #ffffff;\n}\n\n/* Email recovery slide */\n.w3a-email-recovery-content {\n width: 100%;\n padding-top: 1rem;\n}\n\n.w3a-email-recovery-slide {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 260px;\n animation: content-enter 240ms ease-out;\n animation-fill-mode: both;\n}\n\n.w3a-email-recovery-title {\n font-size: 20px;\n font-weight: 700;\n margin: 0.5rem 0.5rem;\n display: flex;\n justify-content: center;\n}\n\n.w3a-email-recovery-help {\n font-size: 0.95rem;\n line-height: 1.2;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n margin: 0 0.25rem;\n}\n\n.w3a-email-recovery-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n padding: 0 0.25rem;\n font-size: 0.85rem;\n}\n\n.w3a-email-recovery-meta-label {\n opacity: 0.85;\n}\n\n.w3a-email-recovery-meta-value {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 0.85rem;\n opacity: 0.9;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 70%;\n text-align: right;\n}\n\n.w3a-email-recovery-input-pill {\n height: 54px;\n padding: 0 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n transition: box-shadow 160ms ease, border-color 160ms ease;\n}\n\n.w3a-email-recovery-input-pill:focus-within {\n border-color: var(--w3a-colors-primary, #3b82f6);\n}\n\n.w3a-email-recovery-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 4px;\n}\n\n.w3a-email-recovery-summary {\n font-size: 0.875rem;\n line-height: 1.2;\n padding: 0 0.25rem;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.w3a-email-recovery-warning {\n color: color-mix(in srgb, var(--w3a-colors-error), var(--w3a-colors-textPrimary) 30%);\n}\n\n.w3a-email-recovery-from-warning {\n margin-top: 1rem;\n font-weight: 600;\n}\n\n[data-w3a-theme=\"light\"] .w3a-email-recovery-from-warning {\n color: #d80;\n}\n\n[data-w3a-theme=\"dark\"] .w3a-email-recovery-from-warning {\n color: #ea5;\n}\n\n.w3a-email-recovery-link {\n font-size: 0.875rem;\n color: var(--w3a-colors-primary, #3b82f6);\n text-decoration: none;\n padding: 0;\n}\n\n.w3a-email-recovery-link:hover {\n text-decoration: underline;\n}\n\n.w3a-email-recovery-status {\n font-size: 0.875rem;\n padding: 0.75rem 0.875rem;\n border-radius: 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n margin-bottom: 4px;\n}\n\n.w3a-email-recovery-status.is-error {\n border-color: color-mix(in srgb, var(--w3a-colors-error), var(--w3a-colors-borderPrimary) 60%);\n color: var(--w3a-colors-error);\n}\n\n.w3a-email-recovery-elapsed {\n margin-left: 6px;\n opacity: 0.75;\n}\n\n.w3a-email-recovery-saved-emails {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.w3a-email-recovery-email-chip {\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n color: var(--w3a-colors-textPrimary);\n padding: 6px 10px;\n border-radius: 999px;\n font-size: 0.85rem;\n cursor: pointer;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.w3a-email-recovery-email-chip-static {\n cursor: default;\n}\n\n.w3a-email-recovery-email-chip:hover:not(:disabled) {\n background: var(--w3a-colors-surface2);\n}\n\n.w3a-email-recovery-email-chip:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.w3a-email-recovery-toast {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0.75rem 0.875rem;\n border-radius: 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n font-size: 0.875rem;\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-email-recovery-toast a {\n color: var(--w3a-colors-primary, #3b82f6);\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n}\n\n.w3a-email-recovery-toast a:hover {\n text-decoration: underline;\n}\n\n.w3a-email-recovery-toast-close {\n margin-left: auto;\n width: 28px;\n height: 28px;\n border-radius: 999px;\n border: none;\n background: transparent;\n color: var(--w3a-colors-textSecondary);\n cursor: pointer;\n display: grid;\n place-items: center;\n}\n\n.w3a-email-recovery-toast-close:hover {\n background: var(--w3a-colors-surface2);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA"}
1
+ {"version":3,"file":"PasskeyAuthMenu-CL3fN9ai.css","names":[],"sources":["../../../../../src/react/components/PasskeyAuthMenu/PasskeyAuthMenu.css"],"sourcesContent":["/* Root container */\n.w3a-no-animation {\n animation: none !important;\n transition: none !important;\n}\n\n.w3a-signup-menu-root {\n /* CSS sentinel (used by tests/diagnostics to confirm stylesheet is applied) */\n --w3a-pam2-css-ready: 1;\n position: relative;\n /* relative position to anchor back button */\n width: min(100dvw, 420px);\n max-width: 100dvw;\n min-width: 330px;\n min-height: 250px;\n color: var(--w3a-colors-textPrimary);\n background: var(--w3a-colors-colorBackground);\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 3rem;\n box-shadow: var(--w3a-shadows-lg);\n padding: var(--w3a-spacing-lg);\n padding-top: calc(var(--w3a-spacing-lg) + 4px);\n position: relative;\n display: flex;\n flex-direction: column;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1), min-height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n will-change: height, min-height;\n}\n\n/* Back button */\n.w3a-back-button {\n position: absolute;\n top: 1rem;\n left: 1rem;\n width: 48px;\n height: 48px;\n padding: 0;\n aspect-ratio: 1 / 1;\n display: grid;\n place-items: center;\n line-height: 0;\n border-radius: 50%;\n color: var(--w3a-colors-textPrimary);\n background: transparent;\n cursor: pointer;\n border: none;\n z-index: 3;\n transition: transform 120ms ease, background-color 160ms ease, opacity 220ms ease;\n opacity: 0;\n pointer-events: none;\n filter: blur(0.2px);\n}\n\n.w3a-back-button.is-visible {\n opacity: 1;\n pointer-events: auto;\n filter: none;\n}\n\n.w3a-back-button:hover {\n transform: scale(1.02);\n background: var(--w3a-colors-surface);\n}\n\n.w3a-back-button:active {\n transform: scale(0.96);\n}\n\n/* Header */\n.w3a-header {\n display: flex;\n align-items: center;\n justify-content: flex-start;\n opacity: 1;\n height: auto;\n overflow: hidden;\n transition: opacity 240ms ease-out, height 260ms cubic-bezier(0.2, 0.8, 0.2, 1), padding 260ms cubic-bezier(0.2, 0.8, 0.2, 1), margin 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n pointer-events: auto;\n position: relative;\n will-change: height, opacity;\n}\n\n/* Hide header when waiting or scan device is active */\n.w3a-signup-menu-root[data-waiting=\"true\"] .w3a-header,\n.w3a-signup-menu-root[data-scan-device=\"true\"] .w3a-header {\n opacity: 0;\n height: 0px;\n padding-top: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n pointer-events: none;\n}\n\n/* Hide header when email recovery is active */\n.w3a-signup-menu-root[data-email-recovery=\"true\"] .w3a-header {\n opacity: 0;\n height: 0px;\n padding-top: 0px;\n padding-bottom: 0px;\n margin-top: 0px;\n margin-bottom: 0px;\n pointer-events: none;\n}\n\n/* Adjust content area when header is hidden */\n.w3a-signup-menu-root[data-waiting=\"true\"] .w3a-content-area,\n.w3a-signup-menu-root[data-scan-device=\"true\"] .w3a-content-area {\n flex: 1 1 auto;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Adjust content area when email recovery is active */\n.w3a-signup-menu-root[data-email-recovery=\"true\"] .w3a-content-area {\n flex: 1 1 auto;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Specific height adjustments for different states */\n.w3a-signup-menu-root[data-waiting=\"true\"] {\n min-height: 200px;\n}\n\n.w3a-signup-menu-root[data-scan-device=\"true\"] {\n min-height: 300px;\n}\n\n.w3a-signup-menu-root[data-email-recovery=\"true\"] {\n min-height: 320px;\n}\n\n.w3a-title {\n font-size: 24px;\n font-weight: 700;\n margin: 0.5rem 0.75rem;\n}\n\n.w3a-subhead {\n font-size: 1rem;\n font-weight: 500;\n line-height: 1;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n margin: 0;\n margin-bottom: 1rem;\n margin-left: 0.75rem;\n}\n\n/* Content switcher container */\n.w3a-content-switcher {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n /* ensure smooth height animations without spillover */\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n will-change: height;\n}\n\n/* Content area container */\n.w3a-content-area {\n position: relative;\n /* do not force-stretch; let content define intrinsic height */\n flex: 0 1 auto;\n display: flex;\n flex-direction: column;\n transition: height 260ms cubic-bezier(0.2, 0.8, 0.2, 1);\n}\n\n/* Intrinsic sizer wrapper inside content area used for height measurement */\n.w3a-content-sizer {\n display: block;\n width: 100%;\n}\n\n/* Default content */\n.w3a-signin-menu {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 0px;\n min-height: 250px;\n width: 100%;\n}\n\n@keyframes content-enter {\n from {\n opacity: 0;\n transform: scale(0.98) translateY(6px);\n }\n\n to {\n opacity: 1;\n transform: scale(1) translateY(0);\n }\n}\n\n@keyframes fade-in {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n/* Social providers row */\n.w3a-social-row {\n display: flex;\n gap: 8px;\n margin-bottom: var(--w3a-spacing-sm);\n}\n\n.w3a-social-btn {\n height: 48px;\n flex: 1 1 0;\n min-width: 0;\n display: grid;\n place-items: center;\n cursor: pointer;\n color: var(--w3a-colors-textSecondary, #64748b);\n overflow: hidden;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n border-radius: var(--w3a-border-radius-xl);\n /* no shadow requested */\n box-shadow: none;\n}\n\n.w3a-social-btn svg {\n color: var(--w3a-colors-textSecondary, #64748b);\n}\n\n.w3a-social-btn:hover {\n background: var(--w3a-colors-surface2);\n box-shadow: var(--w3a-shadows-sm);\n}\n\n.w3a-social-btn:hover svg {\n color: var(--w3a-colors-textPrimary, #1e293b);\n}\n\n/* Passkey row */\n.w3a-passkey-row {\n position: relative;\n display: flex;\n align-items: center;\n gap: 0.25rem;\n}\n\n.w3a-input-pill {\n position: relative;\n display: flex;\n flex: 1;\n align-items: center;\n padding: 0rem 1rem;\n height: 54px;\n gap: 8px;\n border: none;\n background: var(--w3a-colors-surface);\n border-radius: 2rem 2rem 2rem 2rem;\n box-shadow: none;\n overflow-x: hidden;\n transition: border-radius 150ms ease-in-out;\n}\n\n.w3a-input-pill.is-enabled {\n border-radius: 2rem 0.25rem 0.25rem 2rem;\n transition: border-radius 150ms ease-in-out;\n}\n\n.w3a-input-wrap {\n position: relative;\n flex: 1;\n height: 32px;\n display: flex;\n align-items: center;\n min-width: 0;\n /* allow input to shrink inside flex container without clipping */\n}\n\n.w3a-input {\n width: 100%;\n height: 32px;\n border: none;\n outline: none;\n background: transparent;\n color: var(--w3a-colors-textPrimary);\n font-size: 16px;\n padding: 0;\n min-width: 0;\n /* prevent overflow clipping in flex layouts */\n}\n\n/* Absolute status message anchored to bottom-right of the input area */\n.w3a-input::placeholder {\n /* Improve contrast for placeholders on dark */\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 35%);\n opacity: 0.95;\n}\n\n.w3a-postfix {\n position: absolute;\n top: 50%;\n left: 0;\n transform: translateY(-50%);\n color: var(--w3a-colors-textSecondary);\n font-size: 16px;\n white-space: nowrap;\n pointer-events: none;\n visibility: hidden;\n /* React enables once measured */\n will-change: left;\n transition: left 32ms ease;\n}\n\n.w3a-postfix.is-existing {\n color: var(--w3a-colors-success);\n}\n\n/* On focus, keep postfix subtle for readability */\n.w3a-input:focus~.w3a-postfix {\n color: var(--w3a-colors-textMuted);\n}\n\n.w3a-arrow-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 0;\n /* hidden footprint by default */\n padding: 0;\n background: transparent;\n border: 0;\n border-radius: 2rem 0.25rem 0.25rem 2rem;\n color: #fff;\n line-height: 0;\n cursor: pointer;\n opacity: 0;\n visibility: hidden;\n pointer-events: none;\n margin-left: -1rem;\n z-index: 1;\n border: 6px solid var(--w3a-colors-colorBackground, #fff);\n height: 64px;\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn.is-enabled {\n width: 100px;\n /* expand when enabled */\n /* Prefer themed primary; fall back to legacy then a sane default */\n background: var(--w3a-colors-primary, #2563eb);\n border-radius: 2rem;\n /* border-radius: 2rem; */\n opacity: 1;\n visibility: visible;\n pointer-events: auto;\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn.no-transition,\n.w3a-arrow-btn.no-transition.is-enabled {\n transition: none;\n}\n\n.w3a-arrow-btn .w3a-arrow-icon {\n color: #fff;\n}\n\n.w3a-arrow-btn.is-enabled:hover {\n /* transform: scale(1.02); */\n background: var(--w3a-colors-primaryHover, #1d4ed8);\n}\n\n.w3a-arrow-btn.is-enabled:active {\n transform: scale(0.96);\n}\n\n.w3a-arrow-btn:disabled {\n width: 0;\n cursor: not-allowed;\n opacity: 0.5;\n background: var(--w3a-colors-borderSecondary);\n transition: transform 150ms ease,\n background-color 150ms ease,\n border-radius 150ms ease,\n opacity 150ms ease,\n width 150ms ease-in-out;\n}\n\n.w3a-arrow-btn .w3a-arrow-label {\n margin-left: 8px;\n font-weight: 600;\n line-height: 1;\n}\n\n/* Animated arrow inside the continue button */\n.w3a-arrow-btn .stripe-arrow {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n}\n\n.w3a-arrow-btn .stripe-arrow>.HoverArrow {\n position: relative;\n margin-top: 0.1rem;\n margin-left: 8px;\n stroke-width: 2;\n fill: none;\n stroke: currentColor;\n}\n\n/* Horizontal line: fades in on hover of the button */\n.w3a-arrow-btn .stripe-arrow>.HoverArrow .HoverArrow__linePath {\n opacity: 0;\n transition: opacity 120ms cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n/* Chevron: nudges right and slightly scales on hover */\n.w3a-arrow-btn .stripe-arrow>.HoverArrow .HoverArrow__tipPath {\n transition: transform 120ms cubic-bezier(0.215, 0.61, 0.355, 1);\n}\n\n.w3a-arrow-btn.is-enabled:hover .stripe-arrow>.HoverArrow .HoverArrow__linePath,\n.w3a-arrow-btn.is-enabled:focus-visible .stripe-arrow>.HoverArrow .HoverArrow__linePath {\n opacity: 1;\n}\n\n.w3a-arrow-btn.is-enabled:hover .stripe-arrow>.HoverArrow .HoverArrow__tipPath,\n.w3a-arrow-btn.is-enabled:focus-visible .stripe-arrow>.HoverArrow .HoverArrow__tipPath {\n transform: translateX(3px);\n}\n\n/* Segmented control */\n.w3a-seg {\n position: relative;\n min-height: 54px;\n overflow: hidden;\n padding: 5px;\n border: none;\n background: var(--w3a-colors-surface2);\n border-radius: var(--w3a-border-radius-xl);\n}\n\n.w3a-seg-active {\n position: absolute;\n top: 5px;\n bottom: 5px;\n left: 0;\n border-radius: var(--w3a-border-radius-xl);\n transition:\n transform 320ms cubic-bezier(0.2, 0.8, 0.2, 1),\n width 220ms ease,\n opacity 150ms ease;\n will-change: transform, width;\n pointer-events: none;\n}\n\n.w3a-seg-grid {\n display: flex;\n gap: 4px;\n height: 100%;\n position: relative;\n z-index: 1;\n}\n\n.w3a-seg-btn {\n flex: 1 1 0;\n min-width: 0;\n min-height: 44px;\n border-radius: 1rem;\n background: transparent;\n /* Make inactive tabs more legible and clearly tappable */\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 45%);\n font-weight: 600;\n cursor: pointer;\n border: none;\n /* Immediate taps on mobile; opt-out of double-tap zoom heuristics */\n touch-action: manipulation;\n -webkit-tap-highlight-color: transparent;\n transition: color 200ms ease, transform 120ms ease;\n display: flex;\n align-items: center;\n justify-content: center;\n text-align: center;\n white-space: normal;\n padding: 0 14px;\n font-size: clamp(13px, 3.6vw, 15px);\n}\n\n.w3a-seg-btn:hover {\n transform: scale(1.02);\n}\n\n.w3a-seg-btn:active {\n transform: scale(0.98);\n}\n\n.w3a-seg-btn.is-active {\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-seg-btn:focus-visible {\n box-shadow: 0 0 0 2px color-mix(in srgb, var(--w3a-colors-focus), transparent 60%);\n}\n\n@media (max-width: 420px) {\n .w3a-signup-menu-root {\n padding: 1rem;\n padding-top: calc(1rem + 4px);\n border-radius: 2rem;\n max-width: calc(100dvw - 0.25rem);\n }\n\n @supports (width: 1dvw) {\n .w3a-signup-menu-root {\n max-width: calc(100dvw - 0.25rem);\n }\n }\n\n .w3a-title {\n font-size: 20px;\n }\n\n .w3a-subhead {\n font-size: 0.9rem;\n margin-bottom: 0.75rem;\n }\n\n .w3a-input-pill {\n height: 48px;\n }\n\n .w3a-arrow-btn {\n height: 60px;\n }\n\n .w3a-arrow-btn.is-enabled {\n width: 60px;\n }\n\n .w3a-seg {\n min-height: 48px;\n padding: 4px;\n }\n\n .w3a-seg-grid {\n gap: 3px;\n }\n\n .w3a-seg-active {\n top: 4px;\n bottom: 4px;\n }\n\n .w3a-seg-btn {\n min-height: 42px;\n padding: 0 12px;\n font-size: clamp(12px, 3.4vw, 14px);\n }\n\n .w3a-back-button {\n top: -0.5rem;\n left: -0.5rem;\n }\n}\n\n/* Waiting state */\n.w3a-waiting {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: transparent;\n text-align: center;\n min-height: 200px;\n /* Quick fade with configurable delay for smoother handoff */\n animation: content-enter 200ms ease-out;\n animation-delay: var(--w3a-waiting-delay, 0ms);\n animation-fill-mode: both;\n}\n\n.w3a-waiting-message {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 6px;\n}\n\n.w3a-waiting-text {\n font-size: 18px;\n font-weight: 600;\n}\n\n.w3a-waiting-subtext {\n font-size: 12px;\n font-weight: 500;\n line-height: 1.35;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 25%);\n}\n\n.w3a-waiting-sdk-events {\n font-size: 11px;\n font-weight: 500;\n line-height: 1.35;\n white-space: pre-wrap;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 15%);\n}\n\n.w3a-spinner {\n width: 36px;\n height: 36px;\n border-radius: 999px;\n border: 3px solid rgba(255, 255, 255, 0.15);\n border-top-color: var(--w3a-colors-primary);\n animation: w3a-spin 0.9s linear infinite;\n}\n\n/* Scan device content wrapper */\n.w3a-scan-device-content {\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n gap: 16px;\n background: transparent;\n text-align: center;\n min-height: 300px;\n width: 100%;\n overflow: hidden;\n animation: content-enter 240ms ease-out;\n animation-fill-mode: both;\n}\n\n/* Ensure QR code content stays within bounds */\n.w3a-scan-device-content .qr-code-container,\n.w3a-scan-device-content .qr-modal-backdrop,\n.w3a-scan-device-content .qr-modal-content {\n max-width: 100%;\n max-height: 100%;\n overflow: hidden;\n}\n\n.w3a-scan-device-content .qr-code-display {\n max-width: 280px;\n width: 100%;\n}\n\n/* Status message row */\n.w3a-status-row {\n position: absolute;\n font-size: 0.75rem;\n bottom: -10px;\n right: 0;\n display: flex;\n align-items: center;\n justify-content: flex-end;\n}\n\n.w3a-status-message {\n font-size: 11px;\n font-weight: 500;\n}\n\n/* Section divider */\n.w3a-section-divider {\n display: flex;\n align-items: center;\n margin: var(--w3a-spacing-md) 0;\n position: relative;\n}\n\n.w3a-section-divider::before,\n.w3a-section-divider::after {\n content: '';\n flex: 1;\n height: 1px;\n background: var(--w3a-colors-borderSecondary);\n}\n\n.w3a-section-divider-text {\n padding: 0 var(--w3a-spacing-sm);\n font-size: 12px;\n color: var(--w3a-colors-textSecondary);\n font-weight: 500;\n background: var(--w3a-colors-colorBackground);\n}\n\n/* Labels and helper text */\n.w3a-field-label {\n font-size: 12px;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 35%);\n margin: 6px 2px 6px;\n font-weight: 600;\n}\n\n.w3a-seg-help {\n font-size: 12px;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 25%);\n margin: 0;\n margin-left: 0.75rem;\n}\n\n.w3a-seg-help-row {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-top: 8px;\n}\n\n/* Tooltip for account existence status */\n.w3a-input-wrap .w3a-tooltip {\n position: absolute;\n right: 0;\n padding: 4px 8px;\n border-radius: 1rem;\n font-size: 0.7rem;\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n opacity: 0;\n transform: translateX(50px) scale(0.9);\n pointer-events: none;\n transition: opacity 180ms ease, transform 200ms ease;\n z-index: 2;\n}\n\n.w3a-input-wrap .w3a-tooltip.is-visible {\n opacity: 0.8;\n transform: translateX(0px) scale(1);\n}\n\n.w3a-input-wrap .w3a-tooltip.is-error {\n color: var(--w3a-colors-error);\n background: var(--w3a-colors-colorBackground);\n /* background: color-mix(in srgb, var(--w3a-colors-error), transparent 90%); */\n}\n\n.w3a-input-wrap .w3a-tooltip.is-success {\n color: var(--w3a-colors-blue400);\n background: var(--w3a-colors-colorBackground);\n /* background: color-mix(in srgb, var(--w3a-colors-blue400), transparent 90%); */\n}\n\n@keyframes w3a-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n}\n\n@keyframes w3a-ellipsis-dot {\n\n 0%,\n 80%,\n 100% {\n opacity: 0;\n }\n\n 40% {\n opacity: 1;\n }\n}\n\n.w3a-ellipsis {\n display: inline-block;\n}\n\n.w3a-ellipsis-dot {\n display: inline-block;\n opacity: 0;\n animation: w3a-ellipsis-dot 1.2s infinite;\n}\n\n.w3a-ellipsis-dot:nth-child(2) {\n animation-delay: 0.15s;\n}\n\n.w3a-ellipsis-dot:nth-child(3) {\n animation-delay: 0.3s;\n}\n\n/* Pop/bounce-in animation (kept for legacy classes) */\n@keyframes w3a-input-msg-pop {\n 0% {\n opacity: 0;\n transform: translateY(8px) scale(0.98);\n }\n\n 60% {\n opacity: 1;\n transform: translateY(-2px) scale(1.02);\n }\n\n 100% {\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n}\n\n@media (prefers-reduced-motion: reduce) {\n .w3a-input-msg.is-error {\n animation: none;\n }\n\n .w3a-ellipsis-dot {\n animation: none;\n opacity: 1;\n }\n}\n\n/* Button System */\n.w3a-scan-device-row {}\n\n.w3a-secondary-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n}\n\n.w3a-link-device-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n box-sizing: border-box;\n overflow: hidden;\n gap: 0.5rem;\n padding: 0.5rem 1rem;\n height: 48px;\n width: 100%;\n max-width: 100%;\n background: var(--w3a-colors-surface) !important;\n border: 1px solid var(--w3a-colors-borderPrimary);\n border-radius: 2rem;\n cursor: pointer;\n color: var(--w3a-colors-textPrimary);\n font-family: var(--w3a-font-family, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif);\n font-weight: 500;\n font-size: 0.875rem;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n/* Hover/focus elevated state (theme-reactive via CSS vars) */\n.w3a-link-device-btn:hover:not(:disabled),\n.w3a-link-device-btn:focus-visible {\n background: var(--w3a-colors-surface2) !important;\n}\n\n.w3a-link-device-btn-primary {\n background: var(--w3a-colors-buttonBackground, var(--w3a-colors-primary, #3b82f6)) !important;\n border-color: transparent;\n border-radius: 2rem;\n color: var(--w3a-colors-textButton, white);\n}\n\n.w3a-link-device-btn-primary:hover:not(:disabled),\n.w3a-link-device-btn-primary:focus-visible {\n background: var(--w3a-colors-buttonHoverBackground, var(--w3a-colors-primaryHover, #2563eb)) !important;\n color: var(--w3a-colors-textButton, white);\n}\n\n.w3a-link-device-btn-primary:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n/* Button-local spinner: match text size inside buttons */\n.w3a-link-device-btn .w3a-spinner {\n width: 1em;\n height: 1em;\n border-width: 2px;\n}\n\n.w3a-link-device-btn-primary .w3a-spinner {\n border-color: rgba(255, 255, 255, 0.35);\n border-top-color: #ffffff;\n}\n\n/* Email recovery slide */\n.w3a-email-recovery-content {\n width: 100%;\n padding-top: 1rem;\n}\n\n.w3a-email-recovery-slide {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-height: 260px;\n animation: content-enter 240ms ease-out;\n animation-fill-mode: both;\n}\n\n.w3a-email-recovery-title {\n font-size: 20px;\n font-weight: 700;\n margin: 0.5rem 0.5rem;\n display: flex;\n justify-content: center;\n}\n\n.w3a-email-recovery-help {\n font-size: 0.95rem;\n line-height: 1.2;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n margin: 0 0.25rem;\n}\n\n.w3a-email-recovery-meta {\n display: flex;\n align-items: baseline;\n justify-content: space-between;\n gap: 8px;\n padding: 0 0.25rem;\n font-size: 0.85rem;\n}\n\n.w3a-email-recovery-meta-label {\n opacity: 0.85;\n}\n\n.w3a-email-recovery-meta-value {\n font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, \"Liberation Mono\", \"Courier New\", monospace;\n font-size: 0.85rem;\n opacity: 0.9;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 70%;\n text-align: right;\n}\n\n.w3a-email-recovery-input-pill {\n height: 54px;\n padding: 0 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n transition: box-shadow 160ms ease, border-color 160ms ease;\n}\n\n.w3a-email-recovery-input-pill:focus-within {\n border-color: var(--w3a-colors-primary, #3b82f6);\n}\n\n.w3a-email-recovery-actions {\n display: flex;\n flex-direction: column;\n gap: 8px;\n margin-top: 4px;\n}\n\n.w3a-email-recovery-summary {\n font-size: 0.875rem;\n line-height: 1.2;\n padding: 0 0.25rem;\n color: color-mix(in srgb, var(--w3a-colors-textSecondary), var(--w3a-colors-textPrimary) 20%);\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.w3a-email-recovery-warning {\n color: color-mix(in srgb, var(--w3a-colors-error), var(--w3a-colors-textPrimary) 30%);\n}\n\n.w3a-email-recovery-from-warning {\n margin-top: 1rem;\n font-weight: 600;\n}\n\n[data-w3a-theme=\"light\"] .w3a-email-recovery-from-warning {\n color: #d80;\n}\n\n[data-w3a-theme=\"dark\"] .w3a-email-recovery-from-warning {\n color: #ea5;\n}\n\n.w3a-email-recovery-link {\n font-size: 0.875rem;\n color: var(--w3a-colors-primary, #3b82f6);\n text-decoration: none;\n padding: 0;\n}\n\n.w3a-email-recovery-link:hover {\n text-decoration: underline;\n}\n\n.w3a-email-recovery-status {\n font-size: 0.875rem;\n padding: 0.75rem 0.875rem;\n border-radius: 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface2);\n color: var(--w3a-colors-textPrimary);\n margin-bottom: 4px;\n}\n\n.w3a-email-recovery-status.is-error {\n border-color: color-mix(in srgb, var(--w3a-colors-error), var(--w3a-colors-borderPrimary) 60%);\n color: var(--w3a-colors-error);\n}\n\n.w3a-email-recovery-elapsed {\n margin-left: 6px;\n opacity: 0.75;\n}\n\n.w3a-email-recovery-saved-emails {\n display: flex;\n flex-wrap: wrap;\n gap: 8px;\n}\n\n.w3a-email-recovery-email-chip {\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n color: var(--w3a-colors-textPrimary);\n padding: 6px 10px;\n border-radius: 999px;\n font-size: 0.85rem;\n cursor: pointer;\n max-width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.w3a-email-recovery-email-chip-static {\n cursor: default;\n}\n\n.w3a-email-recovery-email-chip:hover:not(:disabled) {\n background: var(--w3a-colors-surface2);\n}\n\n.w3a-email-recovery-email-chip:disabled {\n opacity: 0.6;\n cursor: not-allowed;\n}\n\n.w3a-email-recovery-toast {\n display: flex;\n align-items: center;\n gap: 8px;\n padding: 0.75rem 0.875rem;\n border-radius: 1rem;\n border: 1px solid var(--w3a-colors-borderPrimary);\n background: var(--w3a-colors-surface);\n font-size: 0.875rem;\n color: var(--w3a-colors-textPrimary);\n}\n\n.w3a-email-recovery-toast a {\n color: var(--w3a-colors-primary, #3b82f6);\n text-decoration: none;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n max-width: 100%;\n}\n\n.w3a-email-recovery-toast a:hover {\n text-decoration: underline;\n}\n\n.w3a-email-recovery-toast-close {\n margin-left: auto;\n width: 28px;\n height: 28px;\n border-radius: 999px;\n border: none;\n background: transparent;\n color: var(--w3a-colors-textSecondary);\n cursor: pointer;\n display: grid;\n place-items: center;\n}\n\n.w3a-email-recovery-toast-close:hover {\n background: var(--w3a-colors-surface2);\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA"}
@@ -110,4 +110,4 @@
110
110
  }
111
111
 
112
112
 
113
- /*# sourceMappingURL=ShowQRCode-CL4gsszN.css.map*/
113
+ /*# sourceMappingURL=ShowQRCode-CB0UCQ_h.css.map*/
@@ -1 +1 @@
1
- {"version":3,"file":"ShowQRCode-CL4gsszN.css","names":[],"sources":["../../../../src/react/components/ShowQRCode.css"],"sourcesContent":[".qr-code-container {\n padding-top: 1rem;\n}\n\n/* Modal Header */\n.qr-header {\n position: relative;\n display: grid;\n place-content: center;\n padding: 0rem;\n}\n\n.qr-title {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--w3a-colors-textPrimary, #1e293b);\n padding-top: 0rem;\n margin: 0;\n}\n\n.qr-body {\n padding: 0rem;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.qr-code-section {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* QR Code Display */\n.qr-code-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0rem;\n padding: 1rem;\n border-radius: 1.5rem;\n width: 100%;\n max-width: 300px;\n}\n\n.qr-instruction, .qr-status {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.5;\n color: var(--w3a-colors-textSecondary, #1e293b);\n text-align: center;\n}\n\n.qr-status {\n margin-bottom: 0.5rem;\n}\n\n.animated-ellipsis {\n display: inline-block;\n width: 1.2em;\n text-align: left;\n}\n\n.animated-ellipsis::after {\n content: \"...\";\n animation: ellipsis 1.5s infinite;\n}\n\n@keyframes ellipsis {\n 0% { content: \"...\"; }\n 25% { content: \"\"; }\n 50% { content: \".\"; }\n 75% { content: \"..\"; }\n 100% { content: \"...\"; }\n}\n\n.qr-code-image {\n max-width: 200px;\n height: auto;\n border-radius: var(--w3a-border-radius-md, 0.5rem);\n}\n\n.qr-loading {\n text-align: center;\n padding: 2rem;\n color: var(--w3a-colors-textSecondary, #64748b);\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .qr-modal-content {\n margin: 1rem;\n max-width: calc(100vw - 2rem);\n }\n\n @supports (width: 1dvw) {\n .qr-modal-content { max-width: calc(100dvw - 2rem); }\n }\n\n .qr-code-image {\n max-width: 200px;\n }\n\n .qr-code-display {\n padding: 1rem;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA"}
1
+ {"version":3,"file":"ShowQRCode-CB0UCQ_h.css","names":[],"sources":["../../../../src/react/components/ShowQRCode.css"],"sourcesContent":[".qr-code-container {\n padding-top: 1rem;\n}\n\n/* Modal Header */\n.qr-header {\n position: relative;\n display: grid;\n place-content: center;\n padding: 0rem;\n}\n\n.qr-title {\n font-size: 1.5rem;\n font-weight: 700;\n color: var(--w3a-colors-textPrimary, #1e293b);\n padding-top: 0rem;\n margin: 0;\n}\n\n.qr-body {\n padding: 0rem;\n flex: 1;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n.qr-code-section {\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n}\n\n/* QR Code Display */\n.qr-code-display {\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 0rem;\n padding: 1rem;\n border-radius: 1.5rem;\n width: 100%;\n max-width: 300px;\n}\n\n.qr-instruction, .qr-status {\n margin: 0;\n font-size: 1rem;\n font-weight: 500;\n line-height: 1.5;\n color: var(--w3a-colors-textSecondary, #1e293b);\n text-align: center;\n}\n\n.qr-status {\n margin-bottom: 0.5rem;\n}\n\n.animated-ellipsis {\n display: inline-block;\n width: 1.2em;\n text-align: left;\n}\n\n.animated-ellipsis::after {\n content: \"...\";\n animation: ellipsis 1.5s infinite;\n}\n\n@keyframes ellipsis {\n 0% { content: \"...\"; }\n 25% { content: \"\"; }\n 50% { content: \".\"; }\n 75% { content: \"..\"; }\n 100% { content: \"...\"; }\n}\n\n.qr-code-image {\n max-width: 200px;\n height: auto;\n border-radius: var(--w3a-border-radius-md, 0.5rem);\n}\n\n.qr-loading {\n text-align: center;\n padding: 2rem;\n color: var(--w3a-colors-textSecondary, #64748b);\n}\n\n/* Responsive Design */\n@media (max-width: 768px) {\n .qr-modal-content {\n margin: 1rem;\n max-width: calc(100vw - 2rem);\n }\n\n @supports (width: 1dvw) {\n .qr-modal-content { max-width: calc(100dvw - 2rem); }\n }\n\n .qr-code-image {\n max-width: 200px;\n }\n\n .qr-code-display {\n padding: 1rem;\n }\n}\n"],"mappings":"AAAA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA"}
@@ -1,6 +1,6 @@
1
1
  const require_rolldown_runtime = require('../_virtual/rolldown_runtime.js');
2
- const require_defaultConfigs = require('../src/core/defaultConfigs.js');
3
2
  const require_NearClient = require('../src/core/NearClient.js');
3
+ const require_defaultConfigs = require('../src/core/defaultConfigs.js');
4
4
  let react = require("react");
5
5
  react = require_rolldown_runtime.__toESM(react);
6
6
 
@@ -1,6 +1,6 @@
1
1
  const require_accountIds = require('../types/accountIds.js');
2
- const require_base64 = require('../../utils/base64.js');
3
2
  const require_index = require('../IndexedDBManager/index.js');
3
+ const require_base64 = require('../../utils/base64.js');
4
4
  const require_emailRecoveryPendingStore = require('./emailRecoveryPendingStore.js');
5
5
 
6
6
  //#region src/core/EmailRecovery/index.ts
@@ -1,8 +1,8 @@
1
1
  const require_validation = require('../../utils/validation.js');
2
2
  const require_accountIds = require('../types/accountIds.js');
3
- const require_errors = require('../../utils/errors.js');
4
3
  const require_participants = require('../../threshold/participants.js');
5
4
  const require_index = require('../IndexedDBManager/index.js');
5
+ const require_errors = require('../../utils/errors.js');
6
6
  const require_rpc = require('../types/rpc.js');
7
7
  const require_vrf_worker = require('../types/vrf-worker.js');
8
8
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
@@ -1,9 +1,9 @@
1
1
  const require_accountIds = require('../types/accountIds.js');
2
+ const require_index = require('../IndexedDBManager/index.js');
2
3
  const require_errors = require('../../utils/errors.js');
3
4
  const require_theme = require('../../utils/theme.js');
4
- const require_defaultConfigs = require('../defaultConfigs.js');
5
- const require_index = require('../IndexedDBManager/index.js');
6
5
  const require_NearClient = require('../NearClient.js');
6
+ const require_defaultConfigs = require('../defaultConfigs.js');
7
7
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');
8
8
  const require_actions = require('../types/actions.js');
9
9
  const require_authenticatorOptions = require('../types/authenticatorOptions.js');
@@ -1,6 +1,6 @@
1
- const require_errors = require('../../utils/errors.js');
2
1
  const require_participants = require('../../threshold/participants.js');
3
2
  const require_index = require('../IndexedDBManager/index.js');
3
+ const require_errors = require('../../utils/errors.js');
4
4
  const require_vrf_worker = require('../types/vrf-worker.js');
5
5
  const require_touchIdPrompt = require('../WebAuthnManager/touchIdPrompt.js');
6
6
  const require_sdkSentEvents = require('../types/sdkSentEvents.js');