@verbb/formie-browser 1.0.13 → 1.0.14

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 (381) hide show
  1. package/CHANGELOG.md +50 -0
  2. package/dist/chunks/{address-country-Rx6GQTND.js → address-country-Dn71jroa.js} +10 -4
  3. package/dist/chunks/{address-finder-k7_BXaRe.js → address-finder-O49uDRoR.js} +2 -2
  4. package/dist/chunks/{address-state-BwE01m2_.js → address-state-ByYatUur.js} +154 -143
  5. package/dist/chunks/{api-DqpfkZWL.js → api-D6kJ7kXZ.js} +183 -179
  6. package/dist/chunks/{api-BUb6P-xu.js → api-DYYsVIub.js} +77 -47
  7. package/dist/chunks/{api-sPqGbOww.js → api-ghNr2uxX.js} +15 -9
  8. package/dist/chunks/{bpoint-Dlq34XH1.js → bpoint-D0RKFM4F.js} +3 -3
  9. package/dist/chunks/calculations-YEoVCG2q.js +310 -0
  10. package/dist/chunks/{captcha-eu-CGm8Lbrj.js → captcha-eu-DERJbXnH.js} +5 -4
  11. package/dist/chunks/{checkbox-radio-BY2aTCOG.js → checkbox-radio-gsm8QPJg.js} +74 -75
  12. package/dist/chunks/{combobox-C0EuExSI.js → combobox-CWNdx4Fk.js} +290 -279
  13. package/dist/chunks/conditions-DqNHLTbN.js +464 -0
  14. package/dist/chunks/country-from-ip-DDj_mFki.js +29 -0
  15. package/dist/chunks/csrf-DxHg_ZYt.js +61 -0
  16. package/dist/chunks/{custom-google-maps-BsaSirEZ.js → custom-google-maps-C4l2S3GO.js} +9 -3
  17. package/dist/chunks/{custom-link-CJ1-FjEM.js → custom-link-CLazgKYH.js} +8 -2
  18. package/dist/chunks/{custom-maps-DYW_pBid.js → custom-maps-DqcAlD0v.js} +10 -4
  19. package/dist/chunks/{date-picker-F9BUBDSW.js → date-picker-RUnevF7l.js} +455 -432
  20. package/dist/chunks/{dist-D6i-VNgM.js → dist-ZLeW0zZ3.js} +1281 -453
  21. package/dist/chunks/{eway-D9_m8ooj.js → eway-or6dtjoT.js} +3 -3
  22. package/dist/chunks/field-references.resolver-Ca8MguFv.js +104 -0
  23. package/dist/chunks/{file-upload-rqfZNqlH.js → file-upload-Bm-TXyNB.js} +104 -96
  24. package/dist/chunks/friendly-captcha-v1-GFqCt1Mh.js +34 -0
  25. package/dist/chunks/{friendly-captcha-v2-CLSAbkqx.js → friendly-captcha-v2-WoW246JG.js} +6 -5
  26. package/dist/chunks/{friendly-challenge-8uPatWqk.js → friendly-challenge-DPG9MJb1.js} +111 -102
  27. package/dist/chunks/{go-cardless-DAT3ZaQf.js → go-cardless-DzJ-0FKg.js} +2 -2
  28. package/dist/chunks/google-address-C1P1nTDM.js +163 -0
  29. package/dist/chunks/{hcaptcha-CGLAmgjO.js → hcaptcha-D0T8aIHz.js} +3 -3
  30. package/dist/chunks/{hidden-D7_Ch-QN.js → hidden-BZhXnNPe.js} +8 -2
  31. package/dist/chunks/http-C2QdHuWO.js +27 -0
  32. package/dist/chunks/{leaflet-src-j-lHNmhR.js → leaflet-src-DE6rv6M-.js} +42 -46
  33. package/dist/chunks/{loqate-CJPzBmSm.js → loqate-DD1S7PY9.js} +2 -2
  34. package/dist/chunks/{mollie-Bibhl67p.js → mollie-DG8Ju83x.js} +2 -2
  35. package/dist/chunks/{moneris-H2wSqk9h.js → moneris-C8m3Fvqu.js} +3 -3
  36. package/dist/chunks/opayo-B3EvrVxw.js +188 -0
  37. package/dist/chunks/{paddle-DkvIxQdG.js → paddle-BIYR9Um3.js} +3 -3
  38. package/dist/chunks/{password-validation-D06uH9va.js → password-validation-C8_uO_c_.js} +18 -12
  39. package/dist/chunks/{paypal-CQpAF7Ua.js → paypal-B_yxIo2d.js} +7 -5
  40. package/dist/chunks/{payway-CwDkC7YZ.js → payway-CeOzS0sL.js} +3 -3
  41. package/dist/chunks/{phone-country-D3ayr60L.js → phone-country-bAqje17P.js} +80 -63
  42. package/dist/chunks/{place-kit-BGHklIZ-.js → place-kit-BE5gi3vo.js} +3 -3
  43. package/dist/chunks/{placekit-autocomplete.esm-DWVabQlq.js → placekit-autocomplete.esm-CZZERYur.js} +11 -15
  44. package/dist/chunks/{recaptcha-enterprise-XPId5-bS.js → recaptcha-enterprise-CruXddZq.js} +4 -4
  45. package/dist/chunks/{recaptcha-shared-CLYJvojk.js → recaptcha-shared-AQRMDMme.js} +1 -1
  46. package/dist/chunks/{recaptcha-v2-checkbox-Cy-0PEPc.js → recaptcha-v2-checkbox-CCnJYCnG.js} +4 -4
  47. package/dist/chunks/{recaptcha-v2-invisible-BwRH540O.js → recaptcha-v2-invisible-BuVqRRYn.js} +4 -4
  48. package/dist/chunks/{recaptcha-v3-No4Ykrhk.js → recaptcha-v3-CloqhO2A.js} +4 -4
  49. package/dist/chunks/{repeater-BVnPUqTj.js → repeater-DwE27jI1.js} +25 -19
  50. package/dist/chunks/request-profile-DhwkeCpS.js +10 -0
  51. package/dist/chunks/rich-text-uV4o_pGk.js +361 -0
  52. package/dist/chunks/{chunk-3b4jIN3o.js → rolldown-runtime-DtPi1Y-2.js} +2 -2
  53. package/dist/chunks/{sdk-BhHAYgga.js → sdk-lkwSvlpM.js} +282 -234
  54. package/dist/chunks/{shared-Bx9s0i0P.js → shared-OKhSay59.js} +27 -21
  55. package/dist/chunks/{signature-IOhuicje.js → signature-7cldFbqj.js} +138 -112
  56. package/dist/chunks/{snaptcha-DKx98oon.js → snaptcha-C04kNGYQ.js} +2 -2
  57. package/dist/chunks/{square-DwdcOI1G.js → square-DEzxv9D9.js} +8 -6
  58. package/dist/chunks/{stripe-DaoG2FT1.js → stripe-CVPQGDz3.js} +10 -11
  59. package/dist/chunks/{summary-Dks0gXS3.js → summary-BF_8mrXI.js} +47 -45
  60. package/dist/chunks/{survey-likert-DkE6bR7B.js → survey-likert-fk1hUPff.js} +7 -1
  61. package/dist/chunks/{survey-rank-DN6x4IZM.js → survey-rank-BsLGl2LX.js} +37 -25
  62. package/dist/chunks/{survey-rating-BnsNL9U5.js → survey-rating-DVS6e6fM.js} +17 -5
  63. package/dist/chunks/{table-CAjCJHrL.js → table-DnIBdeKF.js} +21 -15
  64. package/dist/chunks/{text-limit-BGaY0jhI.js → text-limit-LGMPhFuC.js} +40 -34
  65. package/dist/chunks/{theme-classes-Tv7q7ToE.js → theme-classes-DAQuEqdP.js} +1 -1
  66. package/dist/chunks/{turnstile-DJakPzQD.js → turnstile-n9DNyPxi.js} +3 -3
  67. package/dist/chunks/{upload-manager-W-QDgxKD.js → upload-manager-BbiUosZq.js} +410 -350
  68. package/dist/chunks/{utils-Vqp8i_RM.js → utils-DpUBPadZ.js} +20 -14
  69. package/dist/css/formie-base.css +104 -1
  70. package/dist/css/theme/_messages.css +2 -0
  71. package/dist/css/theme/_tokens.css +31 -25
  72. package/dist/css/theme/forms/_form.css +5 -1
  73. package/dist/index.d.ts +5 -4
  74. package/dist/index.d.ts.map +1 -1
  75. package/dist/index.js +1778 -1427
  76. package/dist/js/contracts/client.d.ts +5 -3
  77. package/dist/js/contracts/client.d.ts.map +1 -1
  78. package/dist/js/contracts/common.d.ts +2 -2
  79. package/dist/js/contracts/common.d.ts.map +1 -1
  80. package/dist/js/contracts/modules.d.ts +37 -12
  81. package/dist/js/contracts/modules.d.ts.map +1 -1
  82. package/dist/js/contracts/schema.d.ts +20 -38
  83. package/dist/js/contracts/schema.d.ts.map +1 -1
  84. package/dist/js/contracts/theme.d.ts +4 -1
  85. package/dist/js/contracts/theme.d.ts.map +1 -1
  86. package/dist/js/core/client-rendered-modules.d.ts +17 -0
  87. package/dist/js/core/client-rendered-modules.d.ts.map +1 -0
  88. package/dist/js/core/create-formie-client.d.ts.map +1 -1
  89. package/dist/js/core/field-error-aria.d.ts +23 -0
  90. package/dist/js/core/field-error-aria.d.ts.map +1 -0
  91. package/dist/js/core/hydrate-modules.d.ts +10 -8
  92. package/dist/js/core/hydrate-modules.d.ts.map +1 -1
  93. package/dist/js/core/submit-result-state.d.ts.map +1 -1
  94. package/dist/js/core/submit-result-ui.d.ts.map +1 -1
  95. package/dist/js/core/validation-focus.d.ts.map +1 -1
  96. package/dist/js/modules/address/address-finder.d.ts +1 -1
  97. package/dist/js/modules/address/address-finder.d.ts.map +1 -1
  98. package/dist/js/modules/address/factories.d.ts +3 -3
  99. package/dist/js/modules/address/factories.d.ts.map +1 -1
  100. package/dist/js/modules/address/google-address.d.ts +2 -1
  101. package/dist/js/modules/address/google-address.d.ts.map +1 -1
  102. package/dist/js/modules/address/index.d.ts +2 -2
  103. package/dist/js/modules/address/index.d.ts.map +1 -1
  104. package/dist/js/modules/address/loqate.d.ts +1 -1
  105. package/dist/js/modules/address/loqate.d.ts.map +1 -1
  106. package/dist/js/modules/address/place-kit.d.ts +1 -1
  107. package/dist/js/modules/address/place-kit.d.ts.map +1 -1
  108. package/dist/js/modules/captchas/captcha-eu.d.ts +1 -1
  109. package/dist/js/modules/captchas/captcha-eu.d.ts.map +1 -1
  110. package/dist/js/modules/captchas/factories.d.ts +11 -11
  111. package/dist/js/modules/captchas/factories.d.ts.map +1 -1
  112. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts +1 -1
  113. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts.map +1 -1
  114. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts +1 -1
  115. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts.map +1 -1
  116. package/dist/js/modules/captchas/hcaptcha.d.ts +1 -1
  117. package/dist/js/modules/captchas/hcaptcha.d.ts.map +1 -1
  118. package/dist/js/modules/captchas/index.d.ts +2 -2
  119. package/dist/js/modules/captchas/index.d.ts.map +1 -1
  120. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts +1 -1
  121. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -1
  122. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts +1 -1
  123. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts.map +1 -1
  124. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts +1 -1
  125. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts.map +1 -1
  126. package/dist/js/modules/captchas/recaptcha-v3.d.ts +1 -1
  127. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -1
  128. package/dist/js/modules/captchas/snaptcha.d.ts +1 -1
  129. package/dist/js/modules/captchas/snaptcha.d.ts.map +1 -1
  130. package/dist/js/modules/captchas/turnstile.d.ts +1 -1
  131. package/dist/js/modules/captchas/turnstile.d.ts.map +1 -1
  132. package/dist/js/modules/fields/address-country.d.ts +2 -2
  133. package/dist/js/modules/fields/address-country.d.ts.map +1 -1
  134. package/dist/js/modules/fields/address-state.d.ts +2 -2
  135. package/dist/js/modules/fields/address-state.d.ts.map +1 -1
  136. package/dist/js/modules/fields/calculations.d.ts +2 -2
  137. package/dist/js/modules/fields/calculations.d.ts.map +1 -1
  138. package/dist/js/modules/fields/checkbox-radio.d.ts +2 -2
  139. package/dist/js/modules/fields/checkbox-radio.d.ts.map +1 -1
  140. package/dist/js/modules/fields/combobox.d.ts +2 -2
  141. package/dist/js/modules/fields/combobox.d.ts.map +1 -1
  142. package/dist/js/modules/fields/conditions/config.d.ts.map +1 -1
  143. package/dist/js/modules/fields/conditions/effects.d.ts +1 -0
  144. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -1
  145. package/dist/js/modules/fields/conditions/evaluator.d.ts +4 -1
  146. package/dist/js/modules/fields/conditions/evaluator.d.ts.map +1 -1
  147. package/dist/js/modules/fields/conditions/references.d.ts.map +1 -1
  148. package/dist/js/modules/fields/conditions/submission-context.d.ts +15 -0
  149. package/dist/js/modules/fields/conditions/submission-context.d.ts.map +1 -0
  150. package/dist/js/modules/fields/conditions/types.d.ts +3 -1
  151. package/dist/js/modules/fields/conditions/types.d.ts.map +1 -1
  152. package/dist/js/modules/fields/conditions/values.d.ts +1 -1
  153. package/dist/js/modules/fields/conditions/values.d.ts.map +1 -1
  154. package/dist/js/modules/fields/conditions.d.ts +2 -2
  155. package/dist/js/modules/fields/conditions.d.ts.map +1 -1
  156. package/dist/js/modules/fields/custom-google-maps.d.ts +2 -2
  157. package/dist/js/modules/fields/custom-google-maps.d.ts.map +1 -1
  158. package/dist/js/modules/fields/custom-link.d.ts +2 -2
  159. package/dist/js/modules/fields/custom-link.d.ts.map +1 -1
  160. package/dist/js/modules/fields/custom-maps.d.ts +2 -2
  161. package/dist/js/modules/fields/custom-maps.d.ts.map +1 -1
  162. package/dist/js/modules/fields/date-picker.d.ts +2 -2
  163. package/dist/js/modules/fields/date-picker.d.ts.map +1 -1
  164. package/dist/js/modules/fields/file-upload.d.ts +2 -2
  165. package/dist/js/modules/fields/file-upload.d.ts.map +1 -1
  166. package/dist/js/modules/fields/hidden.d.ts +2 -2
  167. package/dist/js/modules/fields/hidden.d.ts.map +1 -1
  168. package/dist/js/modules/fields/index.d.ts +2 -2
  169. package/dist/js/modules/fields/index.d.ts.map +1 -1
  170. package/dist/js/modules/fields/password-validation.d.ts +2 -2
  171. package/dist/js/modules/fields/password-validation.d.ts.map +1 -1
  172. package/dist/js/modules/fields/phone-country.d.ts +2 -2
  173. package/dist/js/modules/fields/phone-country.d.ts.map +1 -1
  174. package/dist/js/modules/fields/repeater.d.ts +2 -2
  175. package/dist/js/modules/fields/repeater.d.ts.map +1 -1
  176. package/dist/js/modules/fields/rich-text.d.ts +2 -2
  177. package/dist/js/modules/fields/rich-text.d.ts.map +1 -1
  178. package/dist/js/modules/fields/shared.d.ts +1 -0
  179. package/dist/js/modules/fields/shared.d.ts.map +1 -1
  180. package/dist/js/modules/fields/signature.d.ts +2 -2
  181. package/dist/js/modules/fields/signature.d.ts.map +1 -1
  182. package/dist/js/modules/fields/summary.d.ts +2 -2
  183. package/dist/js/modules/fields/summary.d.ts.map +1 -1
  184. package/dist/js/modules/fields/survey-likert.d.ts +2 -2
  185. package/dist/js/modules/fields/survey-likert.d.ts.map +1 -1
  186. package/dist/js/modules/fields/survey-rank.d.ts +2 -2
  187. package/dist/js/modules/fields/survey-rank.d.ts.map +1 -1
  188. package/dist/js/modules/fields/survey-rating.d.ts +2 -2
  189. package/dist/js/modules/fields/survey-rating.d.ts.map +1 -1
  190. package/dist/js/modules/fields/table.d.ts +2 -2
  191. package/dist/js/modules/fields/table.d.ts.map +1 -1
  192. package/dist/js/modules/fields/text-limit.d.ts +2 -2
  193. package/dist/js/modules/fields/text-limit.d.ts.map +1 -1
  194. package/dist/js/modules/fields/upload-manager.d.ts +2 -2
  195. package/dist/js/modules/fields/upload-manager.d.ts.map +1 -1
  196. package/dist/js/modules/loader.d.ts +10 -4
  197. package/dist/js/modules/loader.d.ts.map +1 -1
  198. package/dist/js/modules/payments/bpoint.d.ts +1 -1
  199. package/dist/js/modules/payments/bpoint.d.ts.map +1 -1
  200. package/dist/js/modules/payments/eway.d.ts +1 -1
  201. package/dist/js/modules/payments/eway.d.ts.map +1 -1
  202. package/dist/js/modules/payments/factories.d.ts +7 -7
  203. package/dist/js/modules/payments/factories.d.ts.map +1 -1
  204. package/dist/js/modules/payments/go-cardless.d.ts +1 -1
  205. package/dist/js/modules/payments/go-cardless.d.ts.map +1 -1
  206. package/dist/js/modules/payments/index.d.ts +2 -2
  207. package/dist/js/modules/payments/index.d.ts.map +1 -1
  208. package/dist/js/modules/payments/mollie.d.ts +1 -1
  209. package/dist/js/modules/payments/mollie.d.ts.map +1 -1
  210. package/dist/js/modules/payments/moneris.d.ts +1 -1
  211. package/dist/js/modules/payments/moneris.d.ts.map +1 -1
  212. package/dist/js/modules/payments/opayo.d.ts +1 -1
  213. package/dist/js/modules/payments/opayo.d.ts.map +1 -1
  214. package/dist/js/modules/payments/paddle.d.ts +1 -1
  215. package/dist/js/modules/payments/paddle.d.ts.map +1 -1
  216. package/dist/js/modules/payments/paypal.d.ts +1 -1
  217. package/dist/js/modules/payments/paypal.d.ts.map +1 -1
  218. package/dist/js/modules/payments/payway.d.ts +1 -1
  219. package/dist/js/modules/payments/payway.d.ts.map +1 -1
  220. package/dist/js/modules/payments/square.d.ts +1 -1
  221. package/dist/js/modules/payments/square.d.ts.map +1 -1
  222. package/dist/js/modules/payments/stripe.d.ts +1 -1
  223. package/dist/js/modules/payments/stripe.d.ts.map +1 -1
  224. package/dist/js/modules/payments/utils.d.ts +6 -0
  225. package/dist/js/modules/payments/utils.d.ts.map +1 -1
  226. package/dist/js/modules/registry.d.ts +6 -4
  227. package/dist/js/modules/registry.d.ts.map +1 -1
  228. package/dist/js/submit/pipeline.d.ts.map +1 -1
  229. package/dist/js/theme/browser-theme-state.generated.d.ts +24 -0
  230. package/dist/js/theme/browser-theme-state.generated.d.ts.map +1 -0
  231. package/dist/js/theme/theme-classes.d.ts +3 -3
  232. package/dist/js/theme/theme-classes.d.ts.map +1 -1
  233. package/dist/js/transport/forms-api.d.ts +5 -3
  234. package/dist/js/transport/forms-api.d.ts.map +1 -1
  235. package/dist/js/utils/country-from-ip.d.ts +2 -2
  236. package/dist/js/utils/country-from-ip.d.ts.map +1 -1
  237. package/dist/js/utils/csrf.d.ts +17 -0
  238. package/dist/js/utils/csrf.d.ts.map +1 -0
  239. package/dist/js/utils/field-references.parser.d.ts +1 -0
  240. package/dist/js/utils/field-references.parser.d.ts.map +1 -1
  241. package/dist/js/utils/field-references.resolver.d.ts.map +1 -1
  242. package/dist/js/utils/field-references.types.d.ts +1 -0
  243. package/dist/js/utils/field-references.types.d.ts.map +1 -1
  244. package/dist/js/utils/http.d.ts +3 -1
  245. package/dist/js/utils/http.d.ts.map +1 -1
  246. package/dist/js/utils/request-profile.d.ts +4 -0
  247. package/dist/js/utils/request-profile.d.ts.map +1 -0
  248. package/dist/js/utils/unload-warning.d.ts.map +1 -1
  249. package/dist/js/validation/rules/email.d.ts.map +1 -1
  250. package/dist/js/validation/rules/match.d.ts.map +1 -1
  251. package/dist/js/validation/rules/number.d.ts.map +1 -1
  252. package/dist/js/validation/rules/required.d.ts.map +1 -1
  253. package/dist/js/validation/rules/shared.d.ts.map +1 -1
  254. package/dist/js/validation/rules/url.d.ts.map +1 -1
  255. package/dist/js/validation/skip.d.ts +7 -0
  256. package/dist/js/validation/skip.d.ts.map +1 -0
  257. package/dist/js/validation/submit-readiness.d.ts.map +1 -1
  258. package/dist/js/validation/validator.d.ts.map +1 -1
  259. package/package.json +43 -12
  260. package/src/css/formie-base.css +104 -1
  261. package/src/css/theme/_messages.css +2 -0
  262. package/src/css/theme/_tokens.css +31 -25
  263. package/src/css/theme/forms/_form.css +5 -1
  264. package/src/index.ts +13 -8
  265. package/src/js/contracts/client.ts +5 -3
  266. package/src/js/contracts/common.ts +5 -6
  267. package/src/js/contracts/modules.ts +41 -12
  268. package/src/js/contracts/schema.ts +21 -43
  269. package/src/js/contracts/theme.ts +6 -1
  270. package/src/js/core/client-rendered-modules.ts +69 -0
  271. package/src/js/core/create-formie-client.ts +116 -77
  272. package/src/js/core/field-error-aria.ts +93 -0
  273. package/src/js/core/hydrate-modules.ts +54 -29
  274. package/src/js/core/submit-result-state.ts +34 -45
  275. package/src/js/core/submit-result-ui.ts +21 -65
  276. package/src/js/core/validation-focus.ts +20 -20
  277. package/src/js/modules/address/address-finder.ts +1 -1
  278. package/src/js/modules/address/factories.ts +15 -13
  279. package/src/js/modules/address/google-address.ts +10 -6
  280. package/src/js/modules/address/index.ts +2 -2
  281. package/src/js/modules/address/loqate.ts +1 -1
  282. package/src/js/modules/address/place-kit.ts +1 -1
  283. package/src/js/modules/captchas/captcha-eu.ts +2 -2
  284. package/src/js/modules/captchas/factories.ts +66 -42
  285. package/src/js/modules/captchas/friendly-captcha-v1.ts +12 -2
  286. package/src/js/modules/captchas/friendly-captcha-v2.ts +4 -2
  287. package/src/js/modules/captchas/hcaptcha.ts +5 -5
  288. package/src/js/modules/captchas/index.ts +2 -2
  289. package/src/js/modules/captchas/recaptcha-enterprise.ts +2 -2
  290. package/src/js/modules/captchas/recaptcha-v2-checkbox.ts +3 -3
  291. package/src/js/modules/captchas/recaptcha-v2-invisible.ts +2 -2
  292. package/src/js/modules/captchas/recaptcha-v3.ts +2 -2
  293. package/src/js/modules/captchas/snaptcha.ts +1 -1
  294. package/src/js/modules/captchas/turnstile.ts +3 -3
  295. package/src/js/modules/fields/address-country.ts +6 -4
  296. package/src/js/modules/fields/address-state.ts +20 -12
  297. package/src/js/modules/fields/calculations.ts +5 -3
  298. package/src/js/modules/fields/checkbox-radio.ts +24 -42
  299. package/src/js/modules/fields/combobox.ts +25 -9
  300. package/src/js/modules/fields/conditions/config.ts +17 -20
  301. package/src/js/modules/fields/conditions/effects.ts +23 -26
  302. package/src/js/modules/fields/conditions/evaluator.ts +21 -29
  303. package/src/js/modules/fields/conditions/references.ts +16 -5
  304. package/src/js/modules/fields/conditions/submission-context.ts +80 -0
  305. package/src/js/modules/fields/conditions/types.ts +3 -1
  306. package/src/js/modules/fields/conditions/values.ts +31 -6
  307. package/src/js/modules/fields/conditions.ts +59 -18
  308. package/src/js/modules/fields/custom-google-maps.ts +5 -3
  309. package/src/js/modules/fields/custom-link.ts +5 -3
  310. package/src/js/modules/fields/custom-maps.ts +5 -3
  311. package/src/js/modules/fields/date-picker.ts +34 -4
  312. package/src/js/modules/fields/file-upload.ts +19 -10
  313. package/src/js/modules/fields/hidden.ts +5 -3
  314. package/src/js/modules/fields/index.ts +2 -2
  315. package/src/js/modules/fields/password-validation.ts +5 -3
  316. package/src/js/modules/fields/phone-country.ts +33 -6
  317. package/src/js/modules/fields/repeater.ts +5 -3
  318. package/src/js/modules/fields/rich-text.ts +20 -4
  319. package/src/js/modules/fields/shared.ts +13 -0
  320. package/src/js/modules/fields/signature.ts +24 -4
  321. package/src/js/modules/fields/summary.ts +8 -20
  322. package/src/js/modules/fields/survey-likert.ts +5 -3
  323. package/src/js/modules/fields/survey-rank.ts +21 -3
  324. package/src/js/modules/fields/survey-rating.ts +17 -3
  325. package/src/js/modules/fields/table.ts +5 -3
  326. package/src/js/modules/fields/text-limit.ts +5 -3
  327. package/src/js/modules/fields/upload-manager.ts +190 -49
  328. package/src/js/modules/loader.ts +345 -281
  329. package/src/js/modules/payments/bpoint.ts +2 -2
  330. package/src/js/modules/payments/eway.ts +2 -2
  331. package/src/js/modules/payments/factories.ts +53 -52
  332. package/src/js/modules/payments/go-cardless.ts +1 -1
  333. package/src/js/modules/payments/index.ts +2 -2
  334. package/src/js/modules/payments/mollie.ts +1 -1
  335. package/src/js/modules/payments/moneris.ts +2 -2
  336. package/src/js/modules/payments/opayo.ts +21 -8
  337. package/src/js/modules/payments/paddle.ts +10 -6
  338. package/src/js/modules/payments/payment.ts +22 -18
  339. package/src/js/modules/payments/paypal.ts +1 -1
  340. package/src/js/modules/payments/payway.ts +2 -2
  341. package/src/js/modules/payments/square.ts +2 -2
  342. package/src/js/modules/payments/stripe.ts +5 -5
  343. package/src/js/modules/payments/utils.ts +14 -0
  344. package/src/js/modules/registry.ts +19 -11
  345. package/src/js/submit/pipeline.ts +10 -11
  346. package/src/js/theme/browser-theme-state.generated.ts +25 -0
  347. package/src/js/theme/theme-classes.ts +3 -3
  348. package/src/js/transport/forms-api.ts +66 -67
  349. package/src/js/utils/country-from-ip.ts +14 -9
  350. package/src/js/utils/csrf.ts +136 -0
  351. package/src/js/utils/field-references.parser.ts +13 -113
  352. package/src/js/utils/field-references.resolver.ts +27 -64
  353. package/src/js/utils/field-references.row-scope.ts +1 -1
  354. package/src/js/utils/field-references.types.ts +1 -0
  355. package/src/js/utils/http.ts +5 -5
  356. package/src/js/utils/request-profile.ts +10 -0
  357. package/src/js/utils/unload-warning.ts +12 -4
  358. package/src/js/validation/rules/email.ts +3 -5
  359. package/src/js/validation/rules/match.ts +2 -1
  360. package/src/js/validation/rules/minmax.ts +4 -43
  361. package/src/js/validation/rules/number.ts +3 -47
  362. package/src/js/validation/rules/pattern.ts +3 -8
  363. package/src/js/validation/rules/required.ts +2 -1
  364. package/src/js/validation/rules/shared.ts +5 -1
  365. package/src/js/validation/rules/url.ts +3 -10
  366. package/src/js/validation/skip.ts +9 -0
  367. package/src/js/validation/submit-readiness.ts +9 -2
  368. package/src/js/validation/validator.ts +35 -59
  369. package/dist/chunks/calculations-Dv3hYb8_.js +0 -299
  370. package/dist/chunks/conditions-CPH1snCx.js +0 -424
  371. package/dist/chunks/country-from-ip-BwxKaBuJ.js +0 -26
  372. package/dist/chunks/field-references.resolver-CHwn0G0L.js +0 -145
  373. package/dist/chunks/friendly-captcha-v1-C_2reOXr.js +0 -31
  374. package/dist/chunks/google-address-BH3Zhi06.js +0 -161
  375. package/dist/chunks/http-D-JExro7.js +0 -27
  376. package/dist/chunks/opayo-CR0DtsLa.js +0 -179
  377. package/dist/chunks/rich-text-Bg_--4TG.js +0 -349
  378. package/dist/js/modules/fields/conditions/transforms.d.ts +0 -3
  379. package/dist/js/modules/fields/conditions/transforms.d.ts.map +0 -1
  380. package/src/js/modules/fields/conditions/transforms.ts +0 -206
  381. package/src/js/modules/payments/stub-payment-module.ts +0 -87
@@ -86,19 +86,23 @@ var s = class {
86
86
  onReceive(e) {
87
87
  if (!o(e.origin, this.origins)) return;
88
88
  let t = e.data;
89
- !t || !t._frc || this.send(t);
89
+ t && t._frc && this.send(t);
90
90
  }
91
91
  registerTarget(e) {
92
92
  this.targets[e.id] = e;
93
93
  }
94
94
  registerTargetIFrame(t, n, r, i) {
95
- let o = e(), s = new Promise((e) => setTimeout(() => e("timeout"), i)), c = new a({
95
+ let o = e(), s, c = new Promise((e) => {
96
+ s = setTimeout(() => e("timeout"), i);
97
+ }), l = new a({
96
98
  id: n,
97
99
  element: r,
98
100
  type: t,
99
- onReady: () => o.resolve("registered")
101
+ onReady: () => {
102
+ clearTimeout(s), o.resolve("registered");
103
+ }
100
104
  });
101
- return this.registerTarget(c), Promise.race([o.promise, s]);
105
+ return this.registerTarget(l), Promise.race([o.promise, c]);
102
106
  }
103
107
  removeTarget(e) {
104
108
  delete this.targets[e];
@@ -117,30 +121,30 @@ function l(e) {
117
121
  }
118
122
  return t;
119
123
  }
120
- var u = "frc_sc", d = "frc_sid", f = "__", p = !1, m = "0", h = "__" + c(10);
121
- function g(e) {
122
- if (!p) {
124
+ var u = "frc_sc", d = "frc_sid", f = "__", p = "0", m = "__" + c(10);
125
+ function h(e) {
126
+ {
123
127
  let t = 0;
124
128
  try {
125
129
  t = parseInt(sessionStorage.getItem(u) || "", 10);
126
130
  } catch {}
127
- isNaN(t) && (t = 0), e && t++, m = t.toString();
131
+ isNaN(t) && (t = 0), e && t++, p = t.toString();
128
132
  try {
129
- sessionStorage.setItem(u, m);
133
+ sessionStorage.setItem(u, p);
130
134
  } catch {}
131
135
  }
132
- return m;
136
+ return p;
133
137
  }
134
- function _() {
138
+ function g() {
135
139
  let e;
136
140
  try {
137
141
  e = sessionStorage.getItem(d);
138
142
  } catch {
139
- return h;
143
+ return m;
140
144
  }
141
145
  return e || (e = c(12), sessionStorage.setItem(d, e)), e;
142
146
  }
143
- var v = class {
147
+ var _ = class {
144
148
  constructor(e) {
145
149
  this.mem = /* @__PURE__ */ new Map(), this.storePrefix = e;
146
150
  }
@@ -158,11 +162,11 @@ var v = class {
158
162
  t === void 0 ? (this.mem.delete(e), sessionStorage.removeItem(n)) : (this.mem.set(e, t), sessionStorage.setItem(n, t));
159
163
  } catch {}
160
164
  }
161
- }, y = typeof navigator < "u" && navigator.userAgentData !== void 0;
162
- function b() {
165
+ }, v = typeof navigator < "u" && navigator.userAgentData !== void 0;
166
+ function y() {
163
167
  return [document.querySelectorAll(".frc-captcha"), document.querySelectorAll(".frc-risk-intelligence")];
164
168
  }
165
- function x(e) {
169
+ function b(e) {
166
170
  let t = e;
167
171
  for (; t;) {
168
172
  if (t.tagName === "FORM") return t;
@@ -179,24 +183,24 @@ function x(e) {
179
183
  }
180
184
  return null;
181
185
  }
182
- function S(e, t) {
186
+ function x(e, t) {
183
187
  e.addEventListener("focusin", t, {
184
188
  once: !0,
185
189
  passive: !0
186
190
  });
187
191
  }
188
- function ee(e, t) {
192
+ function S(e, t) {
189
193
  let n = document.createElement("input");
190
194
  return n.type = "hidden", n.style.display = "none", n.name = t, e.appendChild(n), n;
191
195
  }
192
- function te(e, t, n) {
196
+ function ee(e, t, n) {
193
197
  e.style[t] === "" && (e.style[t] = n);
194
198
  }
195
- function ne(e) {
196
- let t = te;
199
+ function te(e) {
200
+ let t = ee;
197
201
  t(e, "position", "relative"), t(e, "height", "70px"), t(e, "padding", "0"), t(e, "width", "316px"), t(e, "maxWidth", "100%"), t(e, "maxHeight", "100%"), t(e, "overflow", "hidden"), t(e, "borderRadius", "4px");
198
202
  }
199
- function re(e) {
203
+ function ne(e) {
200
204
  e.removeAttribute("style");
201
205
  }
202
206
  function C(e) {
@@ -209,7 +213,7 @@ function w(e, t) {
209
213
  detail: t
210
214
  }) : (n = document.createEvent("CustomEvent"), n.initCustomEvent(t.name, !0, !1, t)), e.dispatchEvent(n);
211
215
  }
212
- function ie(e) {
216
+ function re(e) {
213
217
  for (; !e.lang || typeof e.lang != "string";) if (e = e.parentElement, !e) return null;
214
218
  return e.lang;
215
219
  }
@@ -218,171 +222,199 @@ var T = {
218
222
  title: "التحقق من مكافحة الروبوتات",
219
223
  connecting: "التحقق من مكافحة الروبوتات قيد الاتصال…",
220
224
  retrying: "استغرق الاتصال بالتحقق من مكافحة الروبوتات وقتًا طويلاً.\n\nإعادة المحاولة…",
221
- failed: "فشل الاتصال بالتحقق من مكافحة الروبوتات."
225
+ failed: "فشل الاتصال بالتحقق من مكافحة الروبوتات.",
226
+ newTab: "يفتح في تبويب جديد"
222
227
  },
223
228
  bg: {
224
229
  title: "Проверка срещу роботи",
225
230
  connecting: "Зарежда се задачата…",
226
231
  retrying: "Неуспешно свързване.\n\nОпит за повторно свързване…",
227
- failed: "Неуспешно свързване."
232
+ failed: "Неуспешно свързване.",
233
+ newTab: "отваря се в нов раздел"
228
234
  },
229
235
  ca: {
230
236
  title: "Verificació anti-robot",
231
237
  connecting: "Carregant el desafiament…",
232
238
  retrying: "Errada de conexió.\n\nReintentant…",
233
- failed: "Errada de conexió."
239
+ failed: "Errada de conexió.",
240
+ newTab: "s'obre en una pestanya nova"
234
241
  },
235
242
  cs: {
236
243
  title: "Ověření proti robotům",
237
244
  connecting: "Připojování kontroly proti robotům…",
238
245
  retrying: "Připojení kontroly proti robotům trvalo příliš dlouho.\n\nOpakuji pokus…",
239
- failed: "Kontrola proti robotům se nepodařilo připojit."
246
+ failed: "Kontrola proti robotům se nepodařilo připojit.",
247
+ newTab: "otevře se na nové kartě"
240
248
  },
241
249
  da: {
242
250
  title: "Anti-robot-verifikation",
243
251
  connecting: "Anti-robot-kontrol forbinder…",
244
252
  retrying: "Anti-robot-kontrol tog for lang tid at oprette forbindelse.\n\nPrøver igen…",
245
- failed: "Anti-robot-kontrol kunne ikke oprette forbindelse."
253
+ failed: "Anti-robot-kontrol kunne ikke oprette forbindelse.",
254
+ newTab: "åbner i ny fane"
246
255
  },
247
256
  nl: {
248
257
  title: "Anti-robotcheck",
249
258
  connecting: "Verbinden met Anti-robotcheck…",
250
259
  retrying: "Verbinden met Anti-robotcheck mislukt.\n\nOpnieuw aan het proberen…",
251
- failed: "Verbinden met Anti-robotcheck mislukt."
260
+ failed: "Verbinden met Anti-robotcheck mislukt.",
261
+ newTab: "opent in nieuw tabblad"
252
262
  },
253
263
  en: {
254
264
  title: "Anti-Robot verification",
255
265
  connecting: "Anti-Robot check connecting…",
256
266
  retrying: "Anti-Robot check took too long to connect.\n\nRetrying…",
257
- failed: "Anti-Robot check failed to connect."
267
+ failed: "Anti-Robot check failed to connect.",
268
+ newTab: "opens in new tab"
258
269
  },
259
270
  fi: {
260
271
  title: "Robottien torjunnan vahvistus",
261
272
  connecting: "Robottien torjunnan tarkistus käynnissä…",
262
273
  retrying: "Robottien torjunnan tarkistus kesti liian kauan.\n\nYritetään uudelleen…",
263
- failed: "Robottien torjunnan tarkistus epäonnistui."
274
+ failed: "Robottien torjunnan tarkistus epäonnistui.",
275
+ newTab: "avautuu uuteen välilehteen"
264
276
  },
265
277
  fr: {
266
278
  title: "Vérification anti-robot",
267
279
  connecting: "Connexion à la vérification anti-robot…",
268
280
  retrying: "La connexion à la vérification anti-robot a pris trop de temps.\n\nNouvelle tentative…",
269
- failed: "Échec de la connexion à la vérification anti-robot."
281
+ failed: "Échec de la connexion à la vérification anti-robot.",
282
+ newTab: "s'ouvre dans un nouvel onglet"
270
283
  },
271
284
  de: {
272
285
  title: "Anti-Roboter-Verifizierung",
273
286
  connecting: "Verbindung zur Anti-Roboter-Verifizierung wird hergestellt…",
274
287
  retrying: "Verbindung zur Anti-Roboter-Verifizierung hat zu lange gedauert.\n\nErneuter Versuch…",
275
- failed: "Verbindung zur Anti-Roboter-Verifizierung ist fehlgeschlagen."
288
+ failed: "Verbindung zur Anti-Roboter-Verifizierung ist fehlgeschlagen.",
289
+ newTab: "öffnet in neuem Tab"
276
290
  },
277
291
  hi: {
278
292
  title: "एंटी-रोबोट सत्यापन",
279
293
  connecting: "चुनौती लोड हो रही है…",
280
294
  retrying: "कनेक्शन विफल.\n\nपुनः प्रयास कर रहे हैं…",
281
- failed: "कनेक्शन विफल."
295
+ failed: "कनेक्शन विफल.",
296
+ newTab: "नए टैब में खुलता है"
282
297
  },
283
298
  hu: {
284
299
  title: "Robotellenőrzés",
285
300
  connecting: "Robotellenőrzés csatlakozás…",
286
301
  retrying: "A robotellenőrzés túl sokáig tartott a csatlakozáshoz.\n\nÚjrapróbálom…",
287
- failed: "A robotellenőrzés nem tudott csatlakozni."
302
+ failed: "A robotellenőrzés nem tudott csatlakozni.",
303
+ newTab: "új lapon nyílik meg"
288
304
  },
289
305
  id: {
290
306
  title: "Verifikasi Anti-Robot",
291
307
  connecting: "Pemeriksaan Anti-Robot sedang terhubung…",
292
308
  retrying: "Pemeriksaan Anti-Robot memakan waktu terlalu lama untuk terhubung.\n\nMencoba lagi…",
293
- failed: "Pemeriksaan Anti-Robot gagal terhubung."
309
+ failed: "Pemeriksaan Anti-Robot gagal terhubung.",
310
+ newTab: "terbuka di tab baru"
294
311
  },
295
312
  ja: {
296
313
  title: "ロボット防止認証",
297
314
  connecting: "チャレンジを読み込んでいます…",
298
315
  retrying: "接続失敗.\n\n再試行中…",
299
- failed: "接続失敗."
316
+ failed: "接続失敗.",
317
+ newTab: "新しいタブで開きます"
300
318
  },
301
319
  it: {
302
320
  title: "Verifica anti-robot",
303
321
  connecting: "Connessione verifica anti-robot in corso…",
304
322
  retrying: "La connessione alla verifica anti-robot ha richiesto troppo tempo.\n\nRiprovando…",
305
- failed: "Impossibile connettersi alla verifica anti-robot."
323
+ failed: "Impossibile connettersi alla verifica anti-robot.",
324
+ newTab: "si apre in una nuova scheda"
306
325
  },
307
326
  nb: {
308
327
  title: "Anti-robot-verifisering",
309
328
  connecting: "Laster inn utfordring…",
310
329
  retrying: "Klarte ikke å koble til.\n\nPrøver igjen…",
311
- failed: "Klarte ikke å koble til."
330
+ failed: "Klarte ikke å koble til.",
331
+ newTab: "åpnes i ny fane"
312
332
  },
313
333
  pl: {
314
334
  title: "Weryfikacja antyrobotowa",
315
335
  connecting: "Łączenie się z kontrolą antyrobotową…",
316
336
  retrying: "Łączenie się z kontrolą antyrobotową trwało zbyt długo. \n\nPonowna próba…",
317
- failed: "Nie udało się połączyć z kontrolą antyrobotową."
337
+ failed: "Nie udało się połączyć z kontrolą antyrobotową.",
338
+ newTab: "otwiera się w nowej karcie"
318
339
  },
319
340
  ro: {
320
341
  title: "Verificare anti-robot",
321
342
  connecting: "Se incarca testul…",
322
343
  retrying: "Conexiunea a esuat.\n\nReincercare…",
323
- failed: "Conexiunea a esuat."
344
+ failed: "Conexiunea a esuat.",
345
+ newTab: "se deschide într-o filă nouă"
324
346
  },
325
347
  pt: {
326
348
  title: "Verificação anti-robô",
327
349
  connecting: "Verificação anti-robô a ligar…",
328
350
  retrying: "A verificação anti-robô demorou demasiado tempo a ligar-se.\n\nA tentar novamente…",
329
- failed: "A verificação anti-robô não conseguiu ligar-se."
351
+ failed: "A verificação anti-robô não conseguiu ligar-se.",
352
+ newTab: "abre num novo separador"
330
353
  },
331
354
  ru: {
332
355
  title: "Проверка антиробота",
333
356
  connecting: "Подключение к проверке антиробота…",
334
357
  retrying: "Подключение к проверке антиробота заняло слишком много времени.\n\nПовторяем попытку…",
335
- failed: "Не удалось подключиться к проверке антиробота."
358
+ failed: "Не удалось подключиться к проверке антиробота.",
359
+ newTab: "откроется в новой вкладке"
336
360
  },
337
361
  sk: {
338
362
  title: "Overovanie proti robotom",
339
363
  connecting: "Pripojenie kontroly proti robotom…",
340
364
  retrying: "Pripojenie kontroly proti robotom trvalo príliš dlho.\n\nOpakujem pokus…",
341
- failed: "Pripojenie kontroly proti robotom sa nepodarilo."
365
+ failed: "Pripojenie kontroly proti robotom sa nepodarilo.",
366
+ newTab: "otvorí sa na novej karte"
342
367
  },
343
368
  sl: {
344
369
  title: "Preverjanje proti robotom",
345
370
  connecting: "Nalaganje izziva…",
346
371
  retrying: "Povezava ni uspela.\n\nPonovni poskus…",
347
- failed: "Povezava ni uspela."
372
+ failed: "Povezava ni uspela.",
373
+ newTab: "odpre se v novem zavihku"
348
374
  },
349
375
  es: {
350
376
  title: "Verificación antirrobot",
351
377
  connecting: "Conectando verificación antirrobot…",
352
378
  retrying: "La verificación antirrobot tardó demasiado en conectarse.\n\nReintentando…",
353
- failed: "Error al conectar la verificación antirrobot."
379
+ failed: "Error al conectar la verificación antirrobot.",
380
+ newTab: "se abre en una pestaña nueva"
354
381
  },
355
382
  sv: {
356
383
  title: "Anti-robotverifiering",
357
384
  connecting: "Anti-robotverifiering ansluter…",
358
385
  retrying: "Anti-robotverifiering tog för lång tid att ansluta.\n\nFörsöker igen…",
359
- failed: "Anti-robotverifiering kunde inte ansluta."
386
+ failed: "Anti-robotverifiering kunde inte ansluta.",
387
+ newTab: "öppnas i ny flik"
360
388
  },
361
389
  th: {
362
390
  title: "การตรวจสอบป้องกันบอท",
363
391
  connecting: "กำลังโหลดการท้าทาย…",
364
392
  retrying: "เชื่อมต่อไม่สำเร็จ.\n\nกำลังลองใหม่…",
365
- failed: "เชื่อมต่อไม่สำเร็จ."
393
+ failed: "เชื่อมต่อไม่สำเร็จ.",
394
+ newTab: "เปิดในแท็บใหม่"
366
395
  },
367
396
  tr: {
368
397
  title: "Robot önleme doğrulaması",
369
398
  connecting: "Robot önleme kontrolü bağlanıyor…",
370
399
  retrying: "Robot önleme kontrolü bağlanmak için çok uzun sürdü.\n\nYeniden deniyor…",
371
- failed: "Robot önleme kontrolü bağlanamadı."
400
+ failed: "Robot önleme kontrolü bağlanamadı.",
401
+ newTab: "yeni sekmede açılır"
372
402
  },
373
403
  vi: {
374
404
  title: "Xác minh chống robot",
375
405
  connecting: "Kiểm tra robot đang kết nối…",
376
406
  retrying: "Kiểm tra chống robot mất quá nhiều thời gian để kết nối.\n\nĐang thử lại…",
377
- failed: "Kiểm tra chống robot không thể kết nối."
407
+ failed: "Kiểm tra chống robot không thể kết nối.",
408
+ newTab: "mở trong tab mới"
378
409
  },
379
410
  zh: {
380
411
  title: "反机器人验证",
381
412
  connecting: "反机器人验证正在连接…",
382
413
  retrying: "反机器人验证连接耗时过长。\n\n正在重试…",
383
- failed: "反机器人验证连接失败。"
414
+ failed: "反机器人验证连接失败。",
415
+ newTab: "在新标签页中打开"
384
416
  }
385
- }, ae = [
417
+ }, ie = [
386
418
  "ar",
387
419
  "he",
388
420
  "fa",
@@ -395,87 +427,89 @@ function E(e) {
395
427
  return e.toLowerCase().split("-")[0].split("_")[0];
396
428
  }
397
429
  function D(e) {
398
- return e = E(e), ae.indexOf(e) !== -1;
430
+ return e = E(e), ie.indexOf(e) !== -1;
399
431
  }
400
- function O(e) {
432
+ function ae(e) {
401
433
  return e = E(e), (T[e] || T.en).title + " - Widget";
402
434
  }
403
- function k(e, t) {
435
+ function O(e, t) {
404
436
  return e = E(e), (T[e] || T.en)[t];
405
437
  }
406
- var A = "FrcFrameId", j = "frc-i-agent", oe = "frc-i-widget", se = "frc-widget-placeholder";
407
- function ce(e, t, n) {
408
- let i = {
438
+ var oe = "FrcFrameId", k = "frc-i-agent", se = "frc-i-widget", ce = "frc-widget-placeholder";
439
+ function le(e, t, n, i) {
440
+ let a = {
409
441
  origin: document.location.origin,
410
- sess_id: _(),
411
- sess_c: g(!0),
442
+ sess_id: g(),
443
+ sess_c: h(!0),
412
444
  comm_id: t,
413
- sdk_v: "1.0.0",
445
+ sdk_v: "1.1.1",
414
446
  v: "1",
415
447
  agent_id: t,
416
448
  ts: Date.now().toString()
417
- }, a = document.createElement("iframe");
418
- a.className = j, a.dataset[A] = t, a.src = n + "?" + r(i), a.frcSDK = e;
419
- let o = a.style;
420
- return o.width = o.height = o.border = o.visibility = "0", o.display = "none", a;
449
+ };
450
+ i && (a.guard_c = i);
451
+ let o = document.createElement("iframe");
452
+ o.className = k, o.dataset[oe] = t, o.src = n + "?" + r(a), o.frcSDK = e;
453
+ let s = o.style;
454
+ return s.width = s.height = s.border = s.visibility = "0", s.display = "none", o;
421
455
  }
422
- function le(e, t, n, i) {
423
- let a = document.createElement("iframe"), o = N(i), s = {
456
+ function ue(e, t, n, i, a) {
457
+ let o = document.createElement("iframe"), s = j(i), c = {
424
458
  origin: document.location.origin,
425
- sess_id: _(),
426
- sess_c: g(!0),
459
+ sess_id: g(),
460
+ sess_c: h(!0),
427
461
  comm_id: t,
428
- sdk_v: "1.0.0",
462
+ sdk_v: "1.1.1",
429
463
  v: "1",
430
464
  agent_id: e,
431
- lang: o,
465
+ lang: s,
432
466
  sitekey: i.sitekey || "",
433
467
  ts: Date.now().toString()
434
468
  };
435
- i.theme && (s.theme = i.theme), y && (a.allow = "clipboard-write"), a.frameBorder = "0", a.src = n + "?" + r(s), a.className = oe, a.title = O(o), a.dataset[A] = t;
436
- let c = a.style;
437
- return c.border = c.visibility = "0", c.position = "absolute", c.height = c.width = "100%", c.userSelect = "none", c["-webkit-tap-highlight-color"] = "transparent", c.display = "none", i.element.appendChild(a), a;
469
+ i.theme && (c.theme = i.theme), a && (c.guard_c = a), v && (o.allow = "clipboard-write"), o.frameBorder = "0", o.src = n + "?" + r(c), o.className = se, o.title = ae(s), o.dataset[oe] = t;
470
+ let l = o.style;
471
+ return l.border = l.visibility = "0", l.position = "absolute", l.height = l.width = "100%", l.userSelect = "none", l["-webkit-tap-highlight-color"] = "transparent", l.display = "none", i.element.appendChild(o), o;
438
472
  }
439
- function ue(e) {
473
+ function de(e) {
440
474
  let t = document.createElement("div");
441
- t.classList.add(se);
475
+ t.classList.add(ce);
442
476
  let n = t.style, r = e.theme === "dark" || e.theme === "auto" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches;
443
- return n.color = r ? "#fff" : "#222", n.backgroundColor = r ? "#171717" : "#fafafa", n.borderRadius = "4px", n.border = "1px solid", n.borderColor = "#ddd", n.padding = "8px", n.height = n.width = "100%", n.fontSize = "14px", n.boxSizing = "border-box", M(n), e.element.appendChild(t), t;
477
+ return n.color = r ? "#fff" : "#222", n.backgroundColor = r ? "#171717" : "#fafafa", n.borderRadius = "4px", n.border = "1px solid", n.borderColor = "#ddd", n.padding = "8px", n.height = n.width = "100%", n.fontSize = "14px", n.boxSizing = "border-box", A(n), e.element.appendChild(t), t;
444
478
  }
445
- function M(e) {
479
+ function A(e) {
446
480
  e.textDecoration = e.fontStyle = "none", e.fontWeight = "500", e.fontFamily = "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif", e.lineHeight = "1", e.letterSpacing = "-0.0125rem";
447
481
  }
448
- function de(e) {
482
+ function fe(e) {
449
483
  let t = document.createElement("div");
450
484
  t.classList.add("frc-banner");
451
- let n = N(e), r = e.theme === "dark" || e.theme === "auto" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches, i = "#565656", a = "#a2a2a2";
485
+ let n = j(e), r = e.theme === "dark" || e.theme === "auto" && window.matchMedia && window.matchMedia("(prefers-color-scheme: dark)").matches, i = "#565656", a = "#a2a2a2";
452
486
  r && (i = "#a2a2a2", a = "#565656");
453
487
  let o = t.style;
454
488
  o.position = "absolute", o.bottom = "6px", D(n) ? o.left = "6px" : o.right = "6px", o.lineHeight = "1";
455
489
  let s = document.createElement("a");
456
490
  s.href = "https://friendlycaptcha.com", s.rel = "noopener";
457
491
  let c = s.style;
458
- M(c), c.color = i, c.fontSize = "10px", c.userSelect = "none", c.textDecorationLine = "underline", c.textDecorationThickness = "1px", c.textDecorationColor = a, c.letterSpacing = "-0.0125rem", s.target = "_blank", s.textContent = "Friendly Captcha", s.onmouseenter = () => c.textDecorationColor = i, s.onmouseleave = () => c.textDecorationColor = a, t.appendChild(s), e.element.appendChild(t);
492
+ A(c), c.color = i, c.fontSize = "10px", c.userSelect = "none", c.textDecorationLine = "underline", c.textDecorationThickness = "1px", c.textDecorationColor = a, c.letterSpacing = "-0.0125rem", s.target = "_blank", s.textContent = "Friendly Captcha", s.ariaLabel = "Friendly Captcha (" + O(n, "newTab") + ")", s.onmouseenter = () => c.textDecorationColor = i, s.onmouseleave = () => c.textDecorationColor = a, t.appendChild(s), e.element.appendChild(t);
459
493
  }
460
- function N(e) {
494
+ function j(e) {
461
495
  let t = e.language;
462
- return (!t || t === "html") && (t = ie(e.element) || ""), t;
496
+ return (!t || t === "html") && (t = re(e.element) || ""), t;
463
497
  }
464
- function fe(e, t, n) {
498
+ function pe(e, t, n) {
465
499
  let r = (e, t) => {
466
500
  let n = document.createElement("a");
467
501
  n.href = e, n.target = "_blank", n.rel = "noopener", n.textContent = t;
468
502
  let r = n.style;
469
- return M(r), r.textDecoration = "underline", r.color = "#565656", n.onmouseenter = () => r.textDecoration = "none", n.onmouseleave = () => r.textDecoration = "underline", n;
470
- }, i = k(n, "failed"), a = [r(`${t}/connectionTest`, i)];
503
+ return A(r), r.textDecoration = "underline", r.color = "#565656", n.onmouseenter = () => r.textDecoration = "none", n.onmouseleave = () => r.textDecoration = "underline", n;
504
+ }, i = O(n, "failed"), a = [r(`${t}/connectionTest`, i)];
471
505
  e.textContent = "", a.forEach((t) => e.appendChild(t));
472
506
  }
473
- function P() {
507
+ function M() {
474
508
  let e = window.performance;
475
509
  return e ? e.now() : 0;
476
510
  }
477
- function pe(e, t, n, r) {
478
- let i = P(), a = n.getBoundingClientRect(), o = {
511
+ function me(e, t, n, r) {
512
+ let i = M(), a = n.getBoundingClientRect(), o = {
479
513
  v: 1,
480
514
  tt: e,
481
515
  pnow: i,
@@ -500,19 +534,19 @@ function pe(e, t, n, r) {
500
534
  it: r.isTrusted
501
535
  }), o;
502
536
  }
503
- function F(e, ...t) {
537
+ function N(e, ...t) {
504
538
  for (let r = 0; r < t.length; r++) {
505
539
  let i = t[r];
506
540
  for (var n in i) i.hasOwnProperty(n) && (e[n] = i[n]);
507
541
  }
508
542
  return e;
509
543
  }
510
- var me = "frc-captcha-response", he = class {
544
+ var he = "frc-captcha-response", ge = class {
511
545
  constructor(e) {
512
546
  this.state = "init", this.response = ".UNINITIALIZED", this.focusEventPending = !1, this.isDestroyed = !1, this.id = e.id;
513
547
  let t = e.createOpts;
514
548
  if (this.e = t.element, this.ready = e.registered, !this.e) throw Error("No element provided to mount widget under.");
515
- this.e.frcWidget = this, this.formFieldName = t.formFieldName === void 0 ? me : t.formFieldName, this.sitekey = t.sitekey, this._reset = e.callbacks.onReset, this._destroy = e.callbacks.onDestroy, this._trigger = e.callbacks.onTrigger, this.startMode = e.createOpts.startMode || "focus", this.formFieldName !== null && (this.hiddenFormEl = ee(this.e, this.formFieldName)), this.setState({
549
+ this.e.frcWidget = this, this.formFieldName = t.formFieldName === void 0 ? he : t.formFieldName, this.sitekey = t.sitekey, this._reset = e.callbacks.onReset, this._destroy = e.callbacks.onDestroy, this._trigger = e.callbacks.onTrigger, this.startMode = e.createOpts.startMode || "focus", this.formFieldName !== null && (this.hiddenFormEl = S(this.e, this.formFieldName)), this.setState({
516
550
  response: ".UNCONNECTED",
517
551
  state: "init"
518
552
  }), this.ready.then(() => {
@@ -521,8 +555,8 @@ var me = "frc-captcha-response", he = class {
521
555
  }
522
556
  handleStartMode() {
523
557
  if (this.startMode === "focus" && !this.focusEventPending && !this.isDestroyed) {
524
- let e = x(this.e);
525
- e && (this.focusEventPending = !0, S(e, (e) => {
558
+ let e = b(this.e);
559
+ e && (this.focusEventPending = !0, x(e, (e) => {
526
560
  this.trigger("focus", { ev: e }), this.focusEventPending = !1;
527
561
  }));
528
562
  } else this.startMode === "auto" && this.trigger("auto");
@@ -543,7 +577,7 @@ var me = "frc-captcha-response", he = class {
543
577
  }
544
578
  trigger(e, t = {}) {
545
579
  if (this.isDestroyed) throw Error("Can not start destroyed widget.");
546
- let n = pe(e, this.startMode, this.e, t.ev);
580
+ let n = me(e, this.startMode, this.e, t.ev);
547
581
  this._trigger({ trigger: n });
548
582
  }
549
583
  start() {
@@ -569,7 +603,7 @@ var me = "frc-captcha-response", he = class {
569
603
  state: this.state,
570
604
  id: this.id
571
605
  };
572
- F(t, e), w(this.e, t);
606
+ N(t, e), w(this.e, t);
573
607
  }
574
608
  addEventListener(e, t, n) {
575
609
  this.e.addEventListener(e, t, n);
@@ -586,9 +620,9 @@ var me = "frc-captcha-response", he = class {
586
620
  getElement() {
587
621
  return this.e;
588
622
  }
589
- }, ge = function(e) {
590
- return typeof e == "function";
591
623
  }, _e = function(e) {
624
+ return typeof e == "function";
625
+ }, ve = function(e) {
592
626
  let t = [], n = /* @__PURE__ */ new Map(), r = function() {
593
627
  return t.splice(0, t.length);
594
628
  }, i = window, a = (function() {
@@ -601,7 +635,7 @@ var me = "frc-captcha-response", he = class {
601
635
  return i;
602
636
  }
603
637
  })(), o = Function.prototype.toString, s = function(...e) {
604
- let t = ge(this) ? n.get(this) : !1, r = this === s ? o : t || this;
638
+ let t = _e(this) ? n.get(this) : !1, r = this === s ? o : t || this;
605
639
  return o.apply(r, e);
606
640
  };
607
641
  Function.prototype.toString = s;
@@ -609,17 +643,17 @@ var me = "frc-captcha-response", he = class {
609
643
  return (a.Error || i.Error)("FriendlyCaptcha_DummyTrace").stack || "";
610
644
  }, l = "prototype", u = i.EventTarget ? i.EventTarget[l].dispatchEvent : {}, d = [
611
645
  [
612
- "Document.prototype.documentElement",
646
+ "Document." + l + ".documentElement",
613
647
  i.Document[l],
614
648
  "documentElement"
615
649
  ],
616
650
  [
617
- "Element.prototype.shadowRoot",
651
+ "Element." + l + ".shadowRoot",
618
652
  i.Element[l],
619
653
  "shadowRoot"
620
654
  ],
621
655
  [
622
- "Node.prototype.nodeType",
656
+ "Node." + l + ".nodeType",
623
657
  i.Node[l],
624
658
  "nodeType"
625
659
  ],
@@ -629,22 +663,22 @@ var me = "frc-captcha-response", he = class {
629
663
  "is"
630
664
  ],
631
665
  [
632
- "Array.prototype.slice",
666
+ "Array." + l + ".slice",
633
667
  i.Array[l],
634
668
  "slice"
635
669
  ],
636
670
  [
637
- "Document.prototype.querySelectorAll",
671
+ "Document." + l + ".querySelectorAll",
638
672
  i.Document[l],
639
673
  "querySelectorAll"
640
674
  ],
641
675
  [
642
- "Document.prototype.createElement",
676
+ "Document." + l + ".createElement",
643
677
  i.Document[l],
644
678
  "createElement"
645
679
  ],
646
680
  [
647
- "EventTarget.prototype.dispatchEvent",
681
+ "EventTarget." + l + ".dispatchEvent",
648
682
  u,
649
683
  "dispatchEvent"
650
684
  ]
@@ -664,7 +698,7 @@ var me = "frc-captcha-response", he = class {
664
698
  if (r - s >= 1e3 && (l = 0, s = r), l < 50) {
665
699
  let n = {
666
700
  d: r,
667
- pnow: P(),
701
+ pnow: M(),
668
702
  n: e,
669
703
  st: c()
670
704
  };
@@ -677,12 +711,12 @@ var me = "frc-captcha-response", he = class {
677
711
  e && (u.length = e.length, u.name = e.name);
678
712
  } catch {}
679
713
  try {
680
- let e = F({}, a);
714
+ let e = N({}, a);
681
715
  o ? e.get = u : e.value = u, Object.defineProperty(r, i, e), n.set(u, o ? a.get : a.value);
682
716
  } catch {}
683
717
  }), r;
684
718
  };
685
- function I() {
719
+ function P() {
686
720
  let e = [
687
721
  0,
688
722
  0,
@@ -700,26 +734,26 @@ function I() {
700
734
  }
701
735
  };
702
736
  }
703
- var L = "addEventListener", R = Math, ve;
704
- function z() {
737
+ var F = "addEventListener", I = Math, ye;
738
+ function L() {
705
739
  return /Android/i.test(navigator.userAgent);
706
740
  }
707
- function B(e, t, n = !1, r) {
708
- let i = I(), a = !1, o;
741
+ function R(e, t, n = !1, r) {
742
+ let i = P(), a = !1, o;
709
743
  return C(() => {
710
- r ||= document.body, r[L](e, (e) => {
744
+ r ||= document.body, r[F](e, (e) => {
711
745
  (!a || n) && (o = e.timeStamp, a = !0);
712
- }), r[L](t, (e) => {
746
+ }), r[F](t, (e) => {
713
747
  a &&= (i.add(e.timeStamp - o), !1);
714
748
  });
715
749
  }), i.s;
716
750
  }
717
- function ye(e) {
751
+ function be(e) {
718
752
  let t = [];
719
- for (let n = 0; n < e.length; n++) t.push(0), document[L](e[n], (e) => t[n]++);
753
+ for (let n = 0; n < e.length; n++) t.push(0), document[F](e[n], (e) => t[n]++);
720
754
  return t;
721
755
  }
722
- function be() {
756
+ function xe() {
723
757
  let e = [
724
758
  0,
725
759
  0,
@@ -743,55 +777,55 @@ function be() {
743
777
  33: 7,
744
778
  34: 7
745
779
  };
746
- return document[L]("keydown", (n) => {
780
+ return document[F]("keydown", (n) => {
747
781
  let r = n.keyCode;
748
782
  t[r] ? e[t[r]]++ : r >= 112 && r <= 123 && e[0]++;
749
783
  }), e;
750
784
  }
751
- function V(e, t, n, r) {
752
- return R.sqrt(R.pow(e - t, 2) + R.pow(n - r, 2));
785
+ function z(e, t, n, r) {
786
+ return I.sqrt(I.pow(e - t, 2) + I.pow(n - r, 2));
753
787
  }
754
- function H(e, t, n) {
755
- return R.sqrt(R.pow(e, 2) + R.pow(t, 2) + R.pow(n, 2));
788
+ function B(e, t, n) {
789
+ return I.sqrt(I.pow(e, 2) + I.pow(t, 2) + I.pow(n, 2));
756
790
  }
757
- function U(e, t) {
791
+ function V(e, t) {
758
792
  let n = t - e;
759
793
  return n += n > 180 ? -360 : n < -180 ? 360 : 0, n;
760
794
  }
761
- var xe = class {
795
+ var Se = class {
762
796
  constructor(e) {
763
797
  this.rn = 0, this.i = 0, this.smel = {
764
798
  n: 0,
765
799
  ts: 0,
766
800
  d: 0
767
801
  };
768
- let t = this.smel, n = (e) => {
769
- t.n || (t.fts = e.timeStamp, t.fxy = [
802
+ let t = "mouse", n = this.smel, r = (e) => {
803
+ n.n || (n.fts = e.timeStamp, n.fxy = [
770
804
  e.clientX,
771
805
  e.clientY,
772
806
  e.screenX,
773
807
  e.screenY
774
- ]), t.n++, e.type === "mouseleave" && (t.d += e.timeStamp - t.ts), t.ts = e.timeStamp, t.xy = [e.clientX, e.clientY];
775
- }, r = document;
808
+ ]), n.n++, e.type === t + "leave" && (n.d += e.timeStamp - n.ts), n.ts = e.timeStamp, n.xy = [e.clientX, e.clientY];
809
+ }, i = document;
776
810
  C(() => {
777
- let e = r.body;
778
- e[L]("mouseenter", n), e[L]("mouseleave", n);
811
+ let e = i.body;
812
+ e[F](t + "enter", r), e[F](t + "leave", r);
779
813
  }), this.bh = {
780
814
  onoff: {
781
- kdu: B("keydown", "keyup"),
782
- cse: B("compositionstart", "compositionend"),
783
- mdu: B("mousedown", "mouseup"),
784
- mle: B("mouseleave", "mouseenter"),
785
- med: B("mouseenter", "mousedown", !0),
786
- semd: B("scrollend", "mousedown", !0, r),
787
- se: B("scroll", "scrollend", !1, r),
788
- pdc: B("pointerdown", "pointercancel", !0),
789
- mmc: B("mousemove", "click", !0),
790
- tse: B("touchstart", "touchend"),
791
- fikd: B("focusin", "keydown", !0)
815
+ kdu: R("keydown", "keyup"),
816
+ cse: R("compositionstart", "compositionend"),
817
+ mdu: R(t + "down", t + "up"),
818
+ mle: R(t + "leave", t + "enter"),
819
+ med: R(t + "enter", t + "down", !0),
820
+ semd: R("scrollend", t + "down", !0, i),
821
+ se: R("scroll", "scrollend", !1, i),
822
+ pdc: R("pointerdown", "pointercancel", !0),
823
+ mmc: R(t + "move", "click", !0),
824
+ tse: R("touchstart", "touchend"),
825
+ fikd: R("focusin", "keydown", !0)
792
826
  },
793
- nev: ye([
794
- "mouseout",
827
+ nev: be([
828
+ t + "out",
795
829
  "pointercancel",
796
830
  "focus",
797
831
  "focusin",
@@ -806,29 +840,29 @@ var xe = class {
806
840
  "wheel",
807
841
  "resize"
808
842
  ]),
809
- nk: be(),
843
+ nk: xe(),
810
844
  mov: this.setupMovementMetrics(),
811
845
  dm: this.setupMotionMetrics(),
812
846
  do: this.setupOrientationMetrics()
813
- }, this.dep = e.disableEvalPatching || !1, this.takeTraceRecords = _e(e);
847
+ }, this.dep = e.disableEvalPatching || !1, this.takeTraceRecords = ve(e);
814
848
  }
815
849
  setupMovementMetrics() {
816
- let e, t = [], n = I(), r = I(), i = I(), a = {
850
+ let e, t = [], n = P(), r = P(), i = P(), a = {
817
851
  t: n.s,
818
852
  v: i.s,
819
853
  d: r.s,
820
854
  ns: 0
821
855
  }, o = () => {
822
856
  let o = t[t.length - 1];
823
- if (t.length >= 1e4 / 50 || o && (o[0] && this.tm.timeStamp === o[1] || !o[0] && this.mm.timeStamp === o[1])) {
857
+ if (t.length >= 200 || o && (o[0] && this.tm.timeStamp === o[1] || !o[0] && this.mm.timeStamp === o[1])) {
824
858
  if (clearInterval(e), e = void 0, t.length === 1) {
825
859
  a.ns++, t = [];
826
860
  return;
827
861
  }
828
862
  let s = t[0];
829
- n.add(o[1] - s[1]), r.add(V(o[2], s[2], o[3], s[3]));
863
+ n.add(o[1] - s[1]), r.add(z(o[2], s[2], o[3], s[3]));
830
864
  for (let e = 1; e < t.length; e++) {
831
- let n = t[e], r = t[e - 1], a = V(n[2], r[2], n[3], r[3]) * 1e3, o = n[1] - r[1];
865
+ let n = t[e], r = t[e - 1], a = z(n[2], r[2], n[3], r[3]) * 1e3, o = n[1] - r[1];
832
866
  i.add(a / o);
833
867
  }
834
868
  t = [];
@@ -852,9 +886,9 @@ var xe = class {
852
886
  }, s = -1;
853
887
  return C(() => {
854
888
  let t = document.body;
855
- t[L]("mousemove", (t) => {
889
+ t[F]("mousemove", (t) => {
856
890
  this.mm = t, e === void 0 && (o(), e = setInterval(o, 50));
857
- }), t[L]("touchmove", (t) => {
891
+ }), t[F]("touchmove", (t) => {
858
892
  this.tm = t;
859
893
  let n = t.touches[0];
860
894
  if (n) {
@@ -866,7 +900,7 @@ var xe = class {
866
900
  }), a;
867
901
  }
868
902
  setupMotionMetrics() {
869
- let e = I(), t = I(), n = {
903
+ let e = P(), t = P(), n = {
870
904
  n: 0,
871
905
  ts: 0,
872
906
  ac: e.s,
@@ -874,25 +908,25 @@ var xe = class {
874
908
  i: 0,
875
909
  g: !1
876
910
  };
877
- return z() && window[L]("devicemotion", (r) => {
911
+ return L() && window[F]("devicemotion", (r) => {
878
912
  n.ts = r.timeStamp, n.i = r.interval, n.g = !r.acceleration;
879
913
  let i = r.acceleration || r.accelerationIncludingGravity;
880
- i && e.add(H(i.x, i.y, i.z));
914
+ i && e.add(B(i.x, i.y, i.z));
881
915
  let a = r.rotationRate;
882
- a && t.add(H(a.alpha, a.beta, a.gamma));
916
+ a && t.add(B(a.alpha, a.beta, a.gamma));
883
917
  }), n;
884
918
  }
885
919
  setupOrientationMetrics() {
886
- let e = I(), t = I(), n = {
920
+ let e = P(), t = P(), n = {
887
921
  fts: 0,
888
922
  ts: 0,
889
923
  gd: e.s,
890
924
  bd: t.s
891
925
  };
892
- if (!z()) return n;
926
+ if (!L()) return n;
893
927
  let r;
894
- return window[L]("deviceorientation", (i) => {
895
- i.gamma == null || i.beta == null || i.alpha == null || (n.ts = i.timeStamp, n.a = i.alpha, n.b = i.beta, n.g = i.gamma, r ? (e.add(U(i.gamma, n.g)), t.add(U(n.b, i.beta))) : (n.fts = n.ts, r = !0));
928
+ return window[F]("deviceorientation", (i) => {
929
+ i.gamma != null && i.beta != null && i.alpha != null && (n.ts = i.timeStamp, n.a = i.alpha, n.b = i.beta, n.g = i.gamma, r ? (e.add(V(i.gamma, n.g)), t.add(V(n.b, i.beta))) : (n.fts = n.ts, r = !0));
896
930
  }), n;
897
931
  }
898
932
  gmm() {
@@ -945,11 +979,11 @@ var xe = class {
945
979
  fe: !!window.frameElement,
946
980
  dep: this.dep,
947
981
  wid: e,
948
- sc: parseInt(g(!1)),
949
- sid: _(),
982
+ sc: parseInt(h(!1)),
983
+ sid: g(),
950
984
  conv: 0,
951
985
  t: {
952
- pnow: P(),
986
+ pnow: M(),
953
987
  pto: r && r.timeOrigin || 0,
954
988
  ts: Date.now()
955
989
  },
@@ -977,32 +1011,38 @@ var xe = class {
977
1011
  };
978
1012
  }
979
1013
  };
980
- function Se(e) {
981
- return ve ||= new xe(e);
1014
+ function Ce(e) {
1015
+ return ye ||= new Se(e);
982
1016
  }
983
- var W = (e) => e.map((e) => `https://${e}.frcapi.com`).join(","), G = {
984
- eu: W([
1017
+ var H = (e) => e.map((e) => `https://${e}.frcapi.com`).join(","), U = {
1018
+ eu: H([
985
1019
  "eu",
986
1020
  "eu0",
987
1021
  "eu1"
988
1022
  ]),
989
- global: W([
1023
+ global: H([
990
1024
  "global",
991
1025
  "global0",
992
1026
  "global1"
993
1027
  ])
994
- }, K = (e) => e.split(",").map((e) => e.trim()).filter((e) => !!e), Ce = (e) => K(G[e] || e);
995
- function q(e) {
996
- let t = K(e || G.global).reduce((e, t) => e.concat(Ce(t)), []).map(i);
997
- return t.length > 0 ? t : K(G.global).map(i);
1028
+ }, W = (e) => e.split(",").map((e) => e.trim()).filter((e) => !!e), we = (e) => W(U[e] || e);
1029
+ function G(e) {
1030
+ let t = W(e || U.global).reduce((e, t) => e.concat(we(t)), []).map(i);
1031
+ return t.length > 0 ? t : W(U.global).map(i);
1032
+ }
1033
+ function K(e) {
1034
+ let t = document.querySelector(`meta[name="frc-${e}"]`);
1035
+ return t ? t.content : void 0;
998
1036
  }
999
- function we() {
1000
- let e = document.querySelector("meta[name=\"frc-disable-eval-patching\"]");
1001
- return e ? !!e.content : !1;
1037
+ function Te() {
1038
+ return !!K("disable-eval-patching");
1002
1039
  }
1003
- function J() {
1004
- let e = document.querySelector("meta[name=\"frc-api-endpoint\"]");
1005
- if (e) return e.content;
1040
+ function Ee() {
1041
+ return K("guard-context");
1042
+ }
1043
+ function q() {
1044
+ let e = K("api-endpoint");
1045
+ if (e) return e;
1006
1046
  let t = document.currentScript;
1007
1047
  if (t) {
1008
1048
  let e = t.dataset.frcApiEndpoint;
@@ -1014,35 +1054,35 @@ function J() {
1014
1054
  if (e) return e;
1015
1055
  }
1016
1056
  }
1017
- function Te() {
1057
+ function De() {
1018
1058
  let e = window.Intl;
1019
1059
  if (!e || !e.DateTimeFormat) return;
1020
1060
  let t = new e.DateTimeFormat();
1021
- if (!(!t || !t.resolvedOptions)) return t.resolvedOptions().timeZone;
1061
+ if (t && t.resolvedOptions) return t.resolvedOptions().timeZone;
1022
1062
  }
1023
- var Y = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
1024
- function Ee(e) {
1025
- return window.TextEncoder ? De(new TextEncoder().encode(e)) : "";
1063
+ var J = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";
1064
+ function Oe(e) {
1065
+ return window.TextEncoder ? ke(new TextEncoder().encode(e)) : "";
1026
1066
  }
1027
- function De(e) {
1067
+ function ke(e) {
1028
1068
  let t = e.length, n = "";
1029
1069
  for (let r = 0; r < t; r += 3) {
1030
1070
  let t = e[r + 0], i = e[r + 1], a = e[r + 2], o = "";
1031
- o += Y.charAt(t >>> 2), o += Y.charAt((t & 3) << 4 | i >>> 4), o += Y.charAt((i & 15) << 2 | a >>> 6), o += Y.charAt(a & 63), n += o;
1071
+ o += J.charAt(t >>> 2), o += J.charAt((t & 3) << 4 | i >>> 4), o += J.charAt((i & 15) << 2 | a >>> 6), o += J.charAt(a & 63), n += o;
1032
1072
  }
1033
1073
  return t % 3 == 2 ? n = n.substring(0, n.length - 1) + "=" : t % 3 == 1 && (n = n.substring(0, n.length - 2) + "=="), n;
1034
1074
  }
1035
- var Oe = "frc-risk-intelligence-token", ke = class {
1075
+ var Ae = "frc-risk-intelligence-token", je = class {
1036
1076
  constructor(e) {
1037
1077
  if (this.timeout = null, this.data = null, this.e = e.element, !this.e) throw Error("No element provided for mounting Risk Intelligence handle.");
1038
- this.e.frcRiskIntelligence = this, this.formFieldName = e.formFieldName === void 0 ? Oe : e.formFieldName, this.formFieldName !== null && (this.hiddenFormEl = ee(this.e, this.formFieldName)), this.startMode = e.startMode || "focus", this.requestRiskIntelligence = e.riskIntelligence, this.handleStartMode();
1078
+ this.e.frcRiskIntelligence = this, this.formFieldName = e.formFieldName === void 0 ? Ae : e.formFieldName, this.formFieldName !== null && (this.hiddenFormEl = S(this.e, this.formFieldName)), this.startMode = e.startMode || "focus", this.requestRiskIntelligence = e.riskIntelligence, this.handleStartMode();
1039
1079
  }
1040
1080
  handleStartMode() {
1041
1081
  if (this.startMode === "none") console.warn("Risk Intelligence <div> found with data-start=\"none\" (no-op), skipping...", this.e);
1042
1082
  else if (this.startMode === "auto") this.request();
1043
1083
  else {
1044
- let e = x(this.e);
1045
- e ? S(e, () => {
1084
+ let e = b(this.e);
1085
+ e ? x(e, () => {
1046
1086
  this.request();
1047
1087
  }) : console.warn("Risk Intelligence <div> with startMode of \"focus\" found without a parent <form> element, skipping...", this.e);
1048
1088
  }
@@ -1082,32 +1122,38 @@ var Oe = "frc-risk-intelligence-token", ke = class {
1082
1122
  this.e.removeEventListener(e, t, n);
1083
1123
  }
1084
1124
  };
1085
- function Ae(e) {
1125
+ function Me(e) {
1086
1126
  return e.length === 0 ? [] : [e[0]].concat(l(e.slice(1)));
1087
1127
  }
1088
- function X(e, t) {
1128
+ function Y(e, t) {
1089
1129
  let n = t.length;
1090
1130
  if (n === 0) return -1;
1091
1131
  if (e <= 2 || n === 1) return 0;
1092
1132
  let r = n - 1, i = e - 2;
1093
1133
  return i <= r ? i : 1 + Math.floor(Math.random() * r);
1094
1134
  }
1095
- function je(e, n, r) {
1135
+ function Ne(e, n, r) {
1096
1136
  let a = i(e), o = i(n), s = t(e, a) ? e.slice(a.length) : e;
1097
1137
  s.length === 0 ? s = "/" : t(s, "/") || (s = "/" + s);
1098
1138
  let c = s.indexOf("?") === -1 ? "?" : "&";
1099
1139
  return o + s + c + "retry=" + r;
1100
1140
  }
1101
- var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId", Pe = "FrcAgentOriginKey", Fe = 1e3 * 60 * 60 * 36, Ie = 5, Q, $ = 0, Le = class {
1141
+ var Pe = "/api/v2/captcha/agent", Fe = "/api/v2/captcha/widget", X = "FrcFrameId", Ie = "FrcAgentOriginKey", Le = 1296e5, Re = [
1142
+ 3e3,
1143
+ 5e3,
1144
+ 8e3,
1145
+ 18e3,
1146
+ 38e3
1147
+ ], Z = Re.length, Q, $ = 0, ze = class {
1102
1148
  constructor(t = {}) {
1103
- if (this.agents = /* @__PURE__ */ new Map(), this.agentState = /* @__PURE__ */ new Map(), this.widgets = /* @__PURE__ */ new Map(), this._attached = e(), this.attached = this._attached.promise, this.riskIntelligencePromises = /* @__PURE__ */ new Map(), this.clearRiskIntelligencePromises = /* @__PURE__ */ new Map(), this.riskIntelligenceHandles = [], this.apiEndpoint = t.apiEndpoint, Q ||= new s(), Q.listen((e) => this.onReceiveMessage(e)), this.bus = Q, $++, $ > 1 && console.warn("Multiple Friendly Captcha SDKs created, this is not recommended. Please use a single SDK instance."), this.signals = Se({ disableEvalPatching: t.disableEvalPatching || we() }), t.startAgent) {
1104
- let e = q(this.apiEndpoint || J()), t = this.getRetryOrigins(e);
1149
+ if (this.agents = /* @__PURE__ */ new Map(), this.agentState = /* @__PURE__ */ new Map(), this.widgets = /* @__PURE__ */ new Map(), this._attached = e(), this.attached = this._attached.promise, this.riskIntelligencePromises = /* @__PURE__ */ new Map(), this.clearRiskIntelligencePromises = /* @__PURE__ */ new Map(), this.riskIntelligenceHandles = [], this.apiEndpoint = t.apiEndpoint, this.guardContext = t.guardContext || Ee(), Q ||= new s(), Q.listen((e) => this.onReceiveMessage(e)), this.bus = Q, $++, $ > 1 && console.warn("Multiple Friendly Captcha SDKs created, this is not recommended. Please use a single SDK instance."), this.signals = Ce({ disableEvalPatching: t.disableEvalPatching || Te() }), t.startAgent) {
1150
+ let e = G(this.apiEndpoint || q()), t = this.getRetryOrigins(e);
1105
1151
  this.ensureAgentIFrame(t);
1106
1152
  }
1107
1153
  this.setupPeriodicRefresh();
1108
1154
  }
1109
1155
  getRetryOrigins(e) {
1110
- return Ae(e);
1156
+ return Me(e);
1111
1157
  }
1112
1158
  onReceiveMessage(e) {
1113
1159
  if (e.type === "root_set_response") {
@@ -1145,7 +1191,7 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1145
1191
  return;
1146
1192
  }
1147
1193
  let n = t.getElement(), r = n.querySelector("iframe");
1148
- r && (r.title = O(e.language));
1194
+ r && (r.title = ae(e.language));
1149
1195
  let i = n.querySelector(".frc-banner");
1150
1196
  if (i) {
1151
1197
  let t = i.style;
@@ -1187,29 +1233,29 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1187
1233
  }));
1188
1234
  }
1189
1235
  ensureAgentIFrame(e) {
1190
- let t = 1, n = e[X(t, e)], r = n + Me, i = Ie, a = this.agents.get(n);
1191
- if (a && a.dataset[Z]) return a.dataset[Z];
1192
- let o = document.getElementsByClassName(j);
1236
+ let t = 1, n = e[Y(t, e)], r = n + Pe, i = Z, a = this.agents.get(n);
1237
+ if (a && a.dataset[X]) return a.dataset[X];
1238
+ let o = document.getElementsByClassName(k);
1193
1239
  for (let e = 0; e < o.length; e++) {
1194
1240
  let t = o[e];
1195
- if (t.dataset[Pe] === n && t.dataset[Z]) return this.agents.set(n, t), t.dataset[Z];
1241
+ if (t.dataset[Ie] === n && t.dataset[X]) return this.agents.set(n, t), t.dataset[X];
1196
1242
  }
1197
- let s = "a_" + c(12), l = ce(this, s, r);
1198
- l.dataset[Pe] = n;
1243
+ let s = "a_" + c(12), l = le(this, s, r, this.guardContext);
1244
+ l.dataset[Ie] = n;
1199
1245
  let u = l.src, d = n;
1200
1246
  this.agents.set(n, l), this.agentState.set(s, {
1201
- store: new v(n),
1247
+ store: new _(n),
1202
1248
  origin: n
1203
1249
  }), document.body.appendChild(l);
1204
1250
  let f = () => {
1205
1251
  this.bus.registerTargetIFrame("agent", s, l, this.getRetryTimeout(t)).then((r) => {
1206
- if (r === "timeout") {
1252
+ if (this.agents.get(n) === l && r === "timeout") {
1207
1253
  if (t >= i) {
1208
1254
  console.error(`[Friendly Captcha] Failed to load agent iframe after ${t - 1} retries.`), l.remove(), this.agents.delete(n);
1209
1255
  return;
1210
1256
  }
1211
1257
  let r = t + 1;
1212
- d = e[X(r, e)] || d, console.warn("[Friendly Captcha] Retrying agent iframe load."), l.src = je(u, d, r - 1), t = r, f();
1258
+ d = e[Y(r, e)] || d, console.warn("[Friendly Captcha] Retrying agent iframe load."), l.src = Ne(u, d, r - 1), t = r, f();
1213
1259
  }
1214
1260
  });
1215
1261
  };
@@ -1225,13 +1271,13 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1225
1271
  let r = e.getElement().querySelector("iframe");
1226
1272
  r.src += t;
1227
1273
  });
1228
- }, Fe);
1274
+ }, Le);
1229
1275
  }
1230
1276
  getRetryTimeout(e) {
1231
- return (1.5 + e ** 1.8) * 1e3;
1277
+ return Re[Math.min(Math.max(e, 1), Z) - 1];
1232
1278
  }
1233
1279
  attach(e) {
1234
- let [t, n] = b();
1280
+ let [t, n] = y();
1235
1281
  for (let e = 0; e < n.length; e++) {
1236
1282
  let t = n[e];
1237
1283
  if (t && !t.frcRiskIntelligence) {
@@ -1240,7 +1286,7 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1240
1286
  console.warn("Risk Intelligence <div> found with no sitekey, skipping...", t);
1241
1287
  continue;
1242
1288
  }
1243
- this.riskIntelligenceHandles.push(new ke({
1289
+ this.riskIntelligenceHandles.push(new je({
1244
1290
  element: t,
1245
1291
  formFieldName: e.formFieldName,
1246
1292
  startMode: e.start,
@@ -1272,18 +1318,18 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1272
1318
  return this._attached.resolve(i), this.attached = Promise.resolve(i), r;
1273
1319
  }
1274
1320
  createWidget(t) {
1275
- let n = q(t.apiEndpoint || this.apiEndpoint || J()), r = this.getRetryOrigins(n), a = 1;
1321
+ let n = G(t.apiEndpoint || this.apiEndpoint || q()), r = this.getRetryOrigins(n), a = 1;
1276
1322
  this.bus.addOrigins(n);
1277
- let o = r[X(a, r)] || n[0], s = this.ensureAgentIFrame(r), l = "w_" + c(12), u = (e) => {
1323
+ let o = r[Y(a, r)] || n[0], s = this.ensureAgentIFrame(r), l = "w_" + c(12), u = (e) => {
1278
1324
  let t = {
1279
1325
  from_id: l,
1280
1326
  to_id: s,
1281
1327
  _frc: 1
1282
1328
  };
1283
- this.bus.send(F(t, e));
1329
+ this.bus.send(N(t, e));
1284
1330
  }, d = {
1285
1331
  onDestroy: () => {
1286
- u({ type: "root_destroy_widget" }), this.bus.removeTarget(l), this.widgets.delete(l), t.element.innerHTML = "", re(t.element);
1332
+ u({ type: "root_destroy_widget" }), this.bus.removeTarget(l), this.widgets.delete(l), t.element.innerHTML = "", ne(t.element);
1287
1333
  },
1288
1334
  onReset: () => {
1289
1335
  u({ type: "root_reset_widget" });
@@ -1294,27 +1340,27 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1294
1340
  trigger: e.trigger
1295
1341
  });
1296
1342
  }
1297
- }, f = e(), p = new he({
1343
+ }, f = e(), p = new ge({
1298
1344
  id: l,
1299
1345
  createOpts: t,
1300
1346
  callbacks: d,
1301
1347
  registered: f.promise
1302
1348
  });
1303
1349
  this.widgets.set(l, p);
1304
- let m = le(s, l, o + Ne, t), h = Ie, g = m.src, _ = o, v = ue(t);
1305
- ne(t.element), de(t);
1306
- let y = N(t);
1350
+ let m = ue(s, l, o + Fe, t, this.guardContext), h = Z, g = m.src, _ = o, v = de(t);
1351
+ te(t.element), fe(t);
1352
+ let y = j(t);
1307
1353
  D(y) && (t.element.dir = "rtl");
1308
1354
  let b = v.style;
1309
- v.textContent = k(y, "connecting");
1355
+ v.textContent = O(y, "connecting");
1310
1356
  function x(e) {
1311
- let n = Ee(JSON.stringify({
1312
- sdk_v: "1.0.0",
1357
+ let n = Oe(JSON.stringify({
1358
+ sdk_v: "1.1.1",
1313
1359
  sitekey: t.sitekey || "",
1314
1360
  retry: a + "",
1315
1361
  endpoint: _,
1316
1362
  ua: navigator.userAgent,
1317
- tz: Te() || ""
1363
+ tz: De() || ""
1318
1364
  })), r = ".ERROR.UNREACHABLE";
1319
1365
  n && (r += "~" + n), p.setState({
1320
1366
  state: "error",
@@ -1327,20 +1373,22 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1327
1373
  }
1328
1374
  let S = () => {
1329
1375
  this.bus.registerTargetIFrame("widget", l, m, this.getRetryTimeout(a)).then((e) => {
1330
- if (e === "timeout") {
1331
- if (a >= h) {
1332
- console.error(`[Friendly Captcha] Failed to load widget iframe after ${a - 1} retries.`), x("Widget load timeout, stopped retrying"), b.borderColor = "#f00", b.fontSize = "12px", fe(v, i(m.src), y);
1333
- return;
1334
- }
1335
- let e = a + 1;
1336
- _ = r[X(e, r)] || _, b.backgroundColor = "#fee", b.color = "#222", v.textContent = k(y, "retrying") + ` (${a})`, console.warn(`[Friendly Captcha] Retrying widget ${l} iframe load.`), x("Widget load timeout, will retry"), m.src = je(g, _, e - 1), a = e, S();
1337
- } else e === "registered" && (t.element.removeChild(v), m.style.display = "");
1376
+ if (!p.isDestroyed) {
1377
+ if (e === "timeout") {
1378
+ if (a >= h) {
1379
+ console.error(`[Friendly Captcha] Failed to load widget iframe after ${a - 1} retries.`), x("Widget load timeout, stopped retrying"), b.borderColor = "#f00", b.fontSize = "12px", pe(v, i(m.src), y);
1380
+ return;
1381
+ }
1382
+ let e = a + 1, t = Y(e, r);
1383
+ _ = r[t] || _, b.backgroundColor = "#fee", b.color = "#222", v.textContent = O(y, "retrying") + ` (${a})`, console.warn(`[Friendly Captcha] Retrying widget ${l} iframe load.`), x("Widget load timeout, will retry"), m.src = Ne(g, _, e - 1), a = e, S();
1384
+ } else e === "registered" && (t.element.removeChild(v), m.style.display = "");
1385
+ }
1338
1386
  });
1339
1387
  };
1340
1388
  return S(), f.resolve(), p;
1341
1389
  }
1342
1390
  riskIntelligence(t) {
1343
- let n = q(t.apiEndpoint || this.apiEndpoint || J()), r = this.getRetryOrigins(n);
1391
+ let n = G(t.apiEndpoint || this.apiEndpoint || q()), r = this.getRetryOrigins(n);
1344
1392
  this.bus.addOrigins(n);
1345
1393
  let i = this.ensureAgentIFrame(r), a = c(8);
1346
1394
  this.bus.send({
@@ -1356,7 +1404,7 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1356
1404
  return this.riskIntelligencePromises.set(a, o), o.promise;
1357
1405
  }
1358
1406
  clearRiskIntelligence(t) {
1359
- let n = q(t?.apiEndpoint || this.apiEndpoint || J()), r = this.getRetryOrigins(n);
1407
+ let n = G(t?.apiEndpoint || this.apiEndpoint || q()), r = this.getRetryOrigins(n);
1360
1408
  this.bus.addOrigins(n);
1361
1409
  let i = this.ensureAgentIFrame(r), a = c(8);
1362
1410
  this.bus.send({
@@ -1392,6 +1440,6 @@ var Me = "/api/v2/captcha/agent", Ne = "/api/v2/captcha/widget", Z = "FrcFrameId
1392
1440
  e.remove();
1393
1441
  }), this.agents.clear();
1394
1442
  }
1395
- }, Re = "frc:widget.statechange", ze = "frc:widget.complete", Be = "frc:widget.expire", Ve = "frc:widget.error", He = "frc:widget.reset", Ue = "frc:riskintelligence.complete", We = "frc:riskintelligence.error", Ge = "frc:riskintelligence.expire";
1443
+ }, Be = "frc:widget.statechange", Ve = "frc:widget.complete", He = "frc:widget.expire", Ue = "frc:widget.error", We = "frc:widget.reset", Ge = "frc:riskintelligence.complete", Ke = "frc:riskintelligence.error", qe = "frc:riskintelligence.expire";
1396
1444
  //#endregion
1397
- export { Ue as FRCRiskIntelligenceCompleteEventName, We as FRCRiskIntelligenceErrorEventName, Ge as FRCRiskIntelligenceExpireEventName, ze as FRCWidgetCompleteEventName, Ve as FRCWidgetErrorEventName, Be as FRCWidgetExpireEventName, He as FRCWidgetResetEventName, Re as FRCWidgetStateChangeEventName, Le as FriendlyCaptchaSDK };
1445
+ export { Ge as FRCRiskIntelligenceCompleteEventName, Ke as FRCRiskIntelligenceErrorEventName, qe as FRCRiskIntelligenceExpireEventName, Ve as FRCWidgetCompleteEventName, Ue as FRCWidgetErrorEventName, He as FRCWidgetExpireEventName, We as FRCWidgetResetEventName, Be as FRCWidgetStateChangeEventName, ze as FriendlyCaptchaSDK };