@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
@@ -1,12 +1,12 @@
1
1
  import { s as e } from "./event-names-BCI2FLD8.js";
2
- import { t } from "./api-DqpfkZWL.js";
3
- import { r as n, t as r } from "./theme-classes-Tv7q7ToE.js";
2
+ import { t } from "./api-D6kJ7kXZ.js";
3
+ import { i as n, t as r } from "./theme-classes-DAQuEqdP.js";
4
4
  import { r as i } from "./scripts-CbQ7agX3.js";
5
5
  import { t as a } from "./styles-BfoIZwJp.js";
6
6
  //#endregion
7
7
  //#region src/js/modules/payments/stripe.ts
8
8
  a("stripe", ["@layer formie-theme{.formie-stripe-placeholder{justify-content:center;align-items:center;gap:var(--formie-space-2);width:100%;min-height:12rem;padding:var(--formie-space-4);border:var(--formie-border-width) solid var(--formie-color-border-control);border-radius:var(--formie-radius-sm);background:var(--formie-color-surface);color:var(--formie-color-text-muted);text-align:center;box-sizing:border-box;flex-direction:column;display:flex}.formie-stripe-placeholder[hidden]{display:none}}"]);
9
- var o = "FORMIE_STRIPE_SCRIPT", s = e("stripe", "confirm"), c = "[data-formie-stripe-elements-placeholder]", l = new Set([
9
+ var o = "FORMIE_STRIPE_SCRIPT", s = e("stripe", "confirm"), c = "[data-formie-stripe-elements-placeholder]", l = /* @__PURE__ */ new Set([
10
10
  "BIF",
11
11
  "CLP",
12
12
  "DJF",
@@ -17,7 +17,6 @@ var o = "FORMIE_STRIPE_SCRIPT", s = e("stripe", "confirm"), c = "[data-formie-st
17
17
  "MGA",
18
18
  "PYG",
19
19
  "RWF",
20
- "UGX",
21
20
  "VND",
22
21
  "VUV",
23
22
  "XAF",
@@ -25,7 +24,7 @@ var o = "FORMIE_STRIPE_SCRIPT", s = e("stripe", "confirm"), c = "[data-formie-st
25
24
  "XPF"
26
25
  ]);
27
26
  function u(e, t) {
28
- return l.has(t.toUpperCase()) ? Math.ceil(e) : Math.ceil(e * 100);
27
+ return l.has(t.toUpperCase()) ? Math.ceil(e) : Math.round((e + 2 ** -52) * 100);
29
28
  }
30
29
  function d(e, t) {
31
30
  e && (n(e, t, "fieldErrors", "fieldError"), e.querySelectorAll("[data-payment-placeholder-error]").forEach((e) => {
@@ -35,10 +34,10 @@ function d(e, t) {
35
34
  function f(e, t, n = "Loading payment options...") {
36
35
  if (!e) return;
37
36
  d(e, t), e.removeAttribute("hidden"), e.innerHTML = "";
38
- let r = document.createElement("div");
39
- r.className = "formie-loading";
40
37
  let i = document.createElement("div");
41
- i.textContent = n, e.append(r, i);
38
+ r(i, t, "loading");
39
+ let a = document.createElement("div");
40
+ a.textContent = n, e.append(i, a);
42
41
  }
43
42
  function p(e, t, n) {
44
43
  if (!e) return;
@@ -47,7 +46,7 @@ function p(e, t, n) {
47
46
  i.setAttribute("data-payment-placeholder-error", ""), i.textContent = n, r(i, t, "fieldError"), e.appendChild(i);
48
47
  }
49
48
  var m = t({
50
- id: "stripe",
49
+ moduleId: "formie:stripe",
51
50
  defaultRequiredInputSuffixes: ["stripePaymentIntentId"],
52
51
  load: async (e) => {
53
52
  let { provider: t } = e.options, n = t.publishableKey;
@@ -122,11 +121,11 @@ var m = t({
122
121
  let t = e.field;
123
122
  t.__formieStripeWidget = null, t.__formieStripeElements = void 0, t.__formieStripeInstance = null, t.__formieStripeLastClientSecret = void 0, t.__formieStripeEvaluateAndRender = null, t.__formieStripeDynamicUnbind?.(), t.__formieStripeDynamicUnbind = null;
124
123
  },
125
- onBeforeAuthorize: async (e) => {
124
+ onBeforePayment: async (e) => {
126
125
  let { widget: t, services: n, field: r } = e, i = r, a = t;
127
126
  if (a?.elements || (i.__formieStripeEvaluateAndRender?.(), a = i.__formieStripeWidget || null), !a?.elements) return !1;
128
127
  let o = await a.elements.submit();
129
- return o?.error ? (n.addError(o.error.message), !1) : !0;
128
+ return !o?.error || (n.addError(o.error.message), !1);
130
129
  },
131
130
  setup: async (e) => {
132
131
  let { services: t, options: n } = e, r = n.provider, i = e.target;
@@ -1,37 +1,33 @@
1
1
  import { t as e } from "./debug-BV0DvdHx.js";
2
- import { i as t } from "./theme-classes-Tv7q7ToE.js";
3
- import { n } from "./http-D-JExro7.js";
2
+ import { a as t } from "./theme-classes-DAQuEqdP.js";
3
+ import { r as n } from "./http-C2QdHuWO.js";
4
4
  import { t as r } from "./async-nPFRNQ06.js";
5
5
  import { t as i } from "./styles-BfoIZwJp.js";
6
- import { r as a, t as o } from "./shared-Bx9s0i0P.js";
6
+ import { i as a, n as o } from "./shared-OKhSay59.js";
7
7
  //#region src/css/theme/fields/_summary.css?inline
8
- var s = "@layer formie-theme{.formie-summary-container{padding:var(--formie-summary-padding);border:var(--formie-border-width) solid var(--formie-color-border);border-radius:var(--formie-radius-sm)}.formie-summary-heading{color:var(--formie-color-heading)}.formie-summary-blocks{gap:var(--formie-gap-summary);display:grid}.formie-summary-blocks[data-formie-loading=true]{min-height:calc(var(--formie-loading-size) + var(--formie-space-4));position:relative}.formie-summary-blocks[data-formie-loading=true]>*{opacity:0;pointer-events:none}.formie-summary-blocks[data-formie-loading=true]:before{content:\"\";background:var(--formie-color-bg);border-radius:inherit;z-index:1;display:block;position:absolute;inset:0}.formie-summary-blocks[data-formie-loading=true]:after{width:var(--formie-loading-size);height:var(--formie-loading-size);content:\"\";border:var(--formie-loading-border-width) solid var(--formie-loading-color);border-radius:var(--formie-radius-full);z-index:2;animation:formie-loading-spin var(--formie-loading-speed) linear infinite;border-top-color:#0000;border-right-color:#0000;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}", c = "[data-formie-summary-blocks]", l = "[data-formie-summary-container]", u = "formie/fields/get-summary-html", d = "data-formie-theme-config", f = "data-formie-frontend-theme", p = "summary", m = e("fields", "summary");
9
- i(p, [s]);
10
- function h() {
8
+ var s = "@layer formie-theme{.formie-summary-container{padding:var(--formie-summary-padding);border:var(--formie-border-width) solid var(--formie-color-border);border-radius:var(--formie-radius-sm)}.formie-summary-heading{color:var(--formie-color-heading)}.formie-summary-blocks{gap:var(--formie-gap-summary);display:grid}.formie-summary-blocks[data-formie-loading=true]{min-height:calc(var(--formie-loading-size) + var(--formie-space-4));position:relative}.formie-summary-blocks[data-formie-loading=true]>*{opacity:0;pointer-events:none}.formie-summary-blocks[data-formie-loading=true]:before{content:\"\";background:var(--formie-color-bg);border-radius:inherit;z-index:1;display:block;position:absolute;inset:0}.formie-summary-blocks[data-formie-loading=true]:after{width:var(--formie-loading-size);height:var(--formie-loading-size);content:\"\";border:var(--formie-loading-border-width) solid var(--formie-loading-color);border-radius:var(--formie-radius-full);z-index:2;animation:formie-loading-spin var(--formie-loading-speed) linear infinite;border-top-color:#0000;border-right-color:#0000;display:block;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}}", c = "[data-formie-summary-blocks]", l = "[data-formie-summary-container]", u = "formie/fields/get-summary-html", d = "summary", f = e("fields", "summary");
9
+ i(d, [s]);
10
+ function p() {
11
11
  let e = new URL(window.location.href);
12
12
  return e.hash = "", e.toString();
13
13
  }
14
- function g(e, t) {
15
- return {
16
- accessToken: e.querySelector("[data-formie-summary-token]")?.value?.trim() || null,
17
- themeConfig: t.getAttribute(d)?.trim() || null,
18
- frontendTheme: t.getAttribute(f)?.trim() || null
19
- };
14
+ function m(e) {
15
+ return { accessToken: e.querySelector("[data-formie-summary-token]")?.value?.trim() || null };
20
16
  }
21
- async function _(e, t, r) {
17
+ async function h(e, t, r) {
22
18
  if (!t.accessToken) throw Error("Summary field requires an access token.");
23
19
  let i = new FormData(e);
24
- return i.set("action", u), i.set("accessToken", t.accessToken), t.themeConfig && i.set("themeConfig", t.themeConfig), t.frontendTheme && i.set("frontendTheme", t.frontendTheme), n(h(), {
20
+ return i.set("action", u), i.set("accessToken", t.accessToken), n(p(), {
25
21
  method: "POST",
26
22
  body: i,
27
23
  signal: r,
28
24
  headers: { Accept: "text/html" }
29
25
  });
30
26
  }
31
- function v(e, n) {
27
+ function g(e, n) {
32
28
  let i = e.closest("form");
33
- if (!(i instanceof HTMLFormElement)) return m.warn("Missing form ancestor; skipping field."), () => {};
34
- let a = !1, s = !0, u = !1, d = 0, f = 0, h = null, v = () => {
29
+ if (!(i instanceof HTMLFormElement)) return f.warn("Missing form ancestor; skipping field."), () => {};
30
+ let a = !1, s = !0, u = !1, p = 0, g = 0, _ = null, v = () => {
35
31
  let t = e.querySelector(c);
36
32
  return t instanceof HTMLElement ? t : null;
37
33
  }, y = () => {
@@ -47,72 +43,78 @@ function v(e, n) {
47
43
  n.removeAttribute("data-formie-loading"), n.removeAttribute("aria-busy"), t(n, i, "loading", !1);
48
44
  }
49
45
  };
50
- b(!!g(e, i).accessToken);
46
+ b(!!m(e).accessToken);
51
47
  let x = () => {
52
- !u || a && !s || (m.log("Queueing fetch."), S());
48
+ !u || a && !s || (f.log("Queueing fetch."), S());
53
49
  }, S = r(async () => {
54
- let t = g(e, i);
50
+ let t = m(e);
55
51
  if (!v() || !t.accessToken) {
56
- m.warn("Missing state for fetch.", t), b(!1);
52
+ f.warn("Missing state for fetch.", t), b(!1);
57
53
  return;
58
54
  }
59
- f += 1;
60
- let n = f, r = d;
61
- h?.abort(), h = new AbortController(), b(!0);
55
+ g += 1;
56
+ let n = g, r = p;
57
+ _?.abort(), _ = new AbortController(), b(!0);
62
58
  try {
63
- let c = await _(i, t, h.signal);
64
- if (n !== f) return;
65
- let u = y(), g = document.createElement("template");
66
- g.innerHTML = c.trim();
67
- let v = g.content.querySelector(l);
68
- u && v instanceof HTMLElement ? u.replaceWith(v) : u && (u.innerHTML = c), a = !0, s = d !== r, m.log("Fetch complete.", {
59
+ let c = await h(i, t, _.signal);
60
+ if (n !== g) return;
61
+ let u = y(), m = document.createElement("template");
62
+ m.innerHTML = c.trim();
63
+ let v = m.content.querySelector(l);
64
+ u && v instanceof HTMLElement ? u.replaceWith(v) : u && (u.innerHTML = c), a = !0, s = p !== r, f.log("Fetch complete.", {
69
65
  isDirty: s,
70
- dirtyVersion: d,
66
+ dirtyVersion: p,
71
67
  requestVersion: n
72
- }), o(e, p, "fetch-summary", {
68
+ }), o(e, d, "fetch-summary", {
73
69
  summary: e,
74
70
  html: c
75
71
  });
76
72
  } catch (e) {
77
73
  if (e instanceof DOMException && e.name === "AbortError") {
78
- m.log("Fetch aborted.");
74
+ f.log("Fetch aborted.");
79
75
  return;
80
76
  }
81
77
  console.error("[formie] Failed to load summary field HTML.", e);
82
78
  } finally {
83
- n === f && (b(!1), h = null, s && x());
79
+ n === g && (b(!1), _ = null, s && x());
84
80
  }
85
81
  }, 300), C = (t) => {
86
82
  let n = t?.target;
87
- n instanceof Node && e.contains(n) || (s = !0, d += 1, m.log("Marked dirty.", { dirtyVersion: d }));
83
+ n instanceof Node && e.contains(n) || (s = !0, p += 1, f.log("Marked dirty.", { dirtyVersion: p }));
88
84
  }, w = (e) => {
89
85
  C(e), x();
90
86
  }, T = () => {
91
- s = !0, m.log("Submit result received; refreshing."), x();
87
+ s = !0, f.log("Submit result received; refreshing."), x();
92
88
  }, E = () => {
93
- s = !0, m.log("Page navigation received; refreshing."), x();
89
+ s = !0, f.log("Page navigation received; refreshing."), x();
94
90
  }, D = new IntersectionObserver((t) => {
95
- u = !!t[0]?.isIntersecting, u && (m.log("Field became visible."), o(e, p, "field-visible", { summary: e }), x());
91
+ u = !!t[0]?.isIntersecting, u && (f.log("Field became visible."), o(e, d, "field-visible", { summary: e }), x());
96
92
  }, {
97
93
  root: i,
98
94
  rootMargin: "50px"
99
95
  });
100
96
  return D.observe(e), i.addEventListener("input", w), i.addEventListener("change", w), n.addEventListener("formie:page:navigate:after", E), n.addEventListener("formie:submit:result", T), () => {
101
- h?.abort(), D.disconnect(), i.removeEventListener("input", w), i.removeEventListener("change", w), n.removeEventListener("formie:page:navigate:after", E), n.removeEventListener("formie:submit:result", T), m.log("Field destroyed.");
97
+ _?.abort(), D.disconnect(), i.removeEventListener("input", w), i.removeEventListener("change", w), n.removeEventListener("formie:page:navigate:after", E), n.removeEventListener("formie:submit:result", T), f.log("Field destroyed.");
102
98
  };
103
99
  }
104
- var y = {
105
- id: p,
100
+ var _ = {
101
+ moduleId: `formie:${d}`,
102
+ version: 2,
103
+ surfaces: [
104
+ "server-rendered",
105
+ "client-rendered",
106
+ "cp-edit"
107
+ ],
106
108
  kind: "field",
107
109
  match: (e) => !!e.target.querySelector(c),
108
110
  setup: async (e) => {
109
- let t = a(e).map((t) => v(t, e.root));
110
- return m.log("Module setup.", { fieldCount: t.length }), await e.emit("formie:module:summary:init", { count: t.length }), { destroy: () => {
111
+ let t = a(e).map((t) => g(t, e.root));
112
+ return f.log("Module setup.", { fieldCount: t.length }), await e.emit("formie:module:summary:init", { count: t.length }), { destroy: () => {
111
113
  t.forEach((e) => {
112
114
  e();
113
- }), m.log("Module destroy.", { fieldCount: t.length }), e.emit("formie:module:summary:destroy", {});
115
+ }), f.log("Module destroy.", { fieldCount: t.length }), e.emit("formie:module:summary:destroy", {});
114
116
  } };
115
117
  }
116
118
  };
117
119
  //#endregion
118
- export { y as summaryModule };
120
+ export { _ as summaryModule };
@@ -5,7 +5,13 @@ import { t as n } from "./_survey-presentations-RbSqcQph.js";
5
5
  var r = "[data-formie-likert-field-layout]", i = "survey-likert", a = e("fields", "survey-likert");
6
6
  t(i, [n]);
7
7
  var o = {
8
- id: i,
8
+ moduleId: `formie:${i}`,
9
+ version: 2,
10
+ surfaces: [
11
+ "server-rendered",
12
+ "client-rendered",
13
+ "cp-edit"
14
+ ],
9
15
  kind: "field",
10
16
  match: (e) => e.target instanceof HTMLElement && (e.target.matches(r) || !!e.target.querySelector(r)),
11
17
  setup: async (e) => {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./debug-BV0DvdHx.js";
2
2
  import { t } from "./styles-BfoIZwJp.js";
3
- import { t as n } from "./shared-Bx9s0i0P.js";
3
+ import { n } from "./shared-OKhSay59.js";
4
4
  import { t as r } from "./_survey-presentations-RbSqcQph.js";
5
5
  //#region src/js/modules/fields/survey-rank.ts
6
6
  var i = "[data-formie-survey-rank]", a = "[data-formie-survey-rank-list]", o = "[data-formie-survey-rank-item]", s = "[data-formie-rank-handle]", c = "formie-rank-placeholder", l = .42, u = "survey-rank", d = e("fields", "survey-rank");
@@ -72,43 +72,55 @@ function w(e, t) {
72
72
  function T(e) {
73
73
  let t = e.querySelector(a);
74
74
  if (!(t instanceof HTMLElement)) return d.warn("Missing rank list; skipping field."), () => {};
75
- let r = null, i = null, o = null, c = null, l = null, h = null, g = null, T = null, E = null, D = !1, O = [], k = () => {
76
- if (r && i ? (t.insertBefore(r, i), i.remove()) : i && i.remove(), r && o && (w(r, o), r.removeAttribute("data-formie-rank-dragging")), l && h !== null) try {
77
- l.releasePointerCapture(h);
75
+ let r = p(t), i = e.closest("form"), o = null, c = null, l = null, h = null, g = null, T = null, E = null, D = null, O = null, k = !1, A = [], j = () => {
76
+ if (o && c ? (t.insertBefore(o, c), c.remove()) : c && c.remove(), o && l && (w(o, l), o.removeAttribute("data-formie-rank-dragging")), g && T !== null) try {
77
+ g.releasePointerCapture(T);
78
78
  } catch {}
79
- r = null, i = null, o = null, c = null, l = null, h = null, g = null, T = null, E = null, t.removeAttribute("data-formie-rank-sorting"), D && (f(t), n(e, u, "reorder", { rankField: e })), D = !1;
80
- }, A = (e) => {
81
- if (!r || !i || !c || e.pointerId !== h) return;
82
- e.preventDefault(), C(r, e, c);
83
- let n = _(r), a = E === null || n >= E;
84
- E = n;
85
- let o = v(r, t, i, a);
86
- o !== g && (g = o, y(t, i, r, o));
87
- }, j = (e) => {
88
- e.pointerId === h && (document.removeEventListener("pointermove", A), document.removeEventListener("pointerup", j), document.removeEventListener("pointercancel", j), i && T !== null && (D = m(t, i) !== T), k());
79
+ o = null, c = null, l = null, h = null, g = null, T = null, E = null, D = null, O = null, t.removeAttribute("data-formie-rank-sorting"), k && (f(t), n(e, u, "reorder", { rankField: e })), k = !1;
80
+ }, M = (e) => {
81
+ if (!o || !c || !h || e.pointerId !== T) return;
82
+ e.preventDefault(), C(o, e, h);
83
+ let n = _(o), r = O === null || n >= O;
84
+ O = n;
85
+ let i = v(o, t, c, r);
86
+ i !== E && (E = i, y(t, c, o, i));
87
+ }, N = (e) => {
88
+ e.pointerId === T && (document.removeEventListener("pointermove", M), document.removeEventListener("pointerup", N), document.removeEventListener("pointercancel", N), c && D !== null && (k = m(t, c) !== D), j());
89
89
  };
90
- return p(t).forEach((e) => {
90
+ p(t).forEach((e) => {
91
91
  if (!e.querySelector(s)) return;
92
92
  let n = (n) => {
93
93
  if (n.button !== 0 || n.target instanceof HTMLInputElement) return;
94
94
  n.preventDefault();
95
- let a = e.getBoundingClientRect();
96
- r = e, l = e, h = n.pointerId, c = {
97
- x: n.clientX - a.left,
98
- y: n.clientY - a.top
99
- }, o = x(e), i = b(t, e), T = m(t, i), D = !1, S(e, a), e.setAttribute("data-formie-rank-dragging", "true"), t.setAttribute("data-formie-rank-sorting", "true"), e.setPointerCapture(n.pointerId), E = _(e), g = v(e, t, i, !0), document.addEventListener("pointermove", A), document.addEventListener("pointerup", j), document.addEventListener("pointercancel", j);
95
+ let r = e.getBoundingClientRect();
96
+ o = e, g = e, T = n.pointerId, h = {
97
+ x: n.clientX - r.left,
98
+ y: n.clientY - r.top
99
+ }, l = x(e), c = b(t, e), D = m(t, c), k = !1, S(e, r), e.setAttribute("data-formie-rank-dragging", "true"), t.setAttribute("data-formie-rank-sorting", "true"), e.setPointerCapture(n.pointerId), O = _(e), E = v(e, t, c, !0), document.addEventListener("pointermove", M), document.addEventListener("pointerup", N), document.addEventListener("pointercancel", N);
100
100
  };
101
- e.addEventListener("pointerdown", n), O.push(() => {
101
+ e.addEventListener("pointerdown", n), A.push(() => {
102
102
  e.removeEventListener("pointerdown", n);
103
103
  });
104
- }), f(t), () => {
105
- document.removeEventListener("pointermove", A), document.removeEventListener("pointerup", j), document.removeEventListener("pointercancel", j), O.forEach((e) => {
104
+ });
105
+ let P = (e) => {
106
+ queueMicrotask(() => {
107
+ e.defaultPrevented || (document.removeEventListener("pointermove", M), document.removeEventListener("pointerup", N), document.removeEventListener("pointercancel", N), j(), r.forEach((e) => t.appendChild(e)), f(t));
108
+ });
109
+ };
110
+ return i?.addEventListener("reset", P), f(t), () => {
111
+ i?.removeEventListener("reset", P), document.removeEventListener("pointermove", M), document.removeEventListener("pointerup", N), document.removeEventListener("pointercancel", N), A.forEach((e) => {
106
112
  e();
107
- }), k();
113
+ }), j();
108
114
  };
109
115
  }
110
116
  var E = {
111
- id: u,
117
+ moduleId: `formie:${u}`,
118
+ version: 2,
119
+ surfaces: [
120
+ "server-rendered",
121
+ "client-rendered",
122
+ "cp-edit"
123
+ ],
112
124
  kind: "field",
113
125
  match: (e) => e.target instanceof HTMLElement && (e.target.matches(i) || !!e.target.querySelector(i)),
114
126
  setup: async (e) => {
@@ -1,6 +1,6 @@
1
1
  import { t as e } from "./debug-BV0DvdHx.js";
2
2
  import { t } from "./styles-BfoIZwJp.js";
3
- import { t as n } from "./shared-Bx9s0i0P.js";
3
+ import { n } from "./shared-OKhSay59.js";
4
4
  import { t as r } from "./_survey-presentations-RbSqcQph.js";
5
5
  //#region src/js/modules/fields/survey-rating.ts
6
6
  var i = "[data-formie-survey-rating]", a = "[data-formie-survey-rating-stars]", o = "[data-formie-rating-option]", s = "input[data-formie-rating-input]", c = "data-formie-rating-pressed-while-checked", l = "survey-rating", u = e("fields", "survey-rating");
@@ -25,7 +25,7 @@ function p(e) {
25
25
  let n = Array.from(t.querySelectorAll(o)).indexOf(e);
26
26
  n >= 0 && t.setAttribute("data-formie-rating-hover", String(n + 1));
27
27
  };
28
- return t.querySelectorAll(o).forEach((e) => {
28
+ t.querySelectorAll(o).forEach((e) => {
29
29
  if (!(e instanceof HTMLElement)) return;
30
30
  let t = e.querySelector(s), n = () => {
31
31
  if (t instanceof HTMLInputElement) {
@@ -62,14 +62,26 @@ function p(e) {
62
62
  i.addEventListener("click", a), r.push(() => {
63
63
  i.removeEventListener("click", a), i.removeAttribute(c);
64
64
  });
65
- }), f(t), () => {
66
- r.forEach((e) => {
65
+ });
66
+ let m = e.closest("form"), h = (e) => {
67
+ queueMicrotask(() => {
68
+ e.defaultPrevented || (i(), d(t).forEach((e) => e.removeAttribute(c)), f(t));
69
+ });
70
+ };
71
+ return m?.addEventListener("reset", h), f(t), () => {
72
+ m?.removeEventListener("reset", h), r.forEach((e) => {
67
73
  e();
68
74
  }), i(), t.removeAttribute("data-formie-rating-value");
69
75
  };
70
76
  }
71
77
  var m = {
72
- id: l,
78
+ moduleId: `formie:${l}`,
79
+ version: 2,
80
+ surfaces: [
81
+ "server-rendered",
82
+ "client-rendered",
83
+ "cp-edit"
84
+ ],
73
85
  kind: "field",
74
86
  match: (e) => e.target instanceof HTMLElement && (e.target.matches(i) || !!e.target.querySelector(i)),
75
87
  setup: async (e) => {
@@ -1,11 +1,11 @@
1
1
  import { n as e } from "./async-nPFRNQ06.js";
2
2
  import { t } from "./styles-BfoIZwJp.js";
3
- import { a as n, o as r, t as i } from "./shared-Bx9s0i0P.js";
3
+ import { n, o as r, s as i } from "./shared-OKhSay59.js";
4
4
  //#region src/css/theme/fields/_table.css?inline
5
5
  var a = "@layer formie-theme{.formie-table-wrapper{-webkit-overflow-scrolling:touch;max-width:100%;overflow:auto hidden}.formie-table{width:var(--formie-table-width);margin-bottom:var(--formie-table-margin-bottom);border-collapse:var(--formie-table-border-collapse)}.formie-table th{text-align:var(--formie-table-th-text-align);font-size:var(--formie-table-th-font-size);font-weight:var(--formie-table-th-font-weight);color:var(--formie-table-th-color,var(--formie-color-text-muted))}.formie-table th,.formie-table td{padding:var(--formie-table-row-padding);vertical-align:top}.formie-table th:first-child,.formie-table td:first-child{padding-left:0}.formie-table th:last-child,.formie-table td:last-child{padding-right:0}.formie-table [data-col-remove]{width:calc(var(--formie-button-icon-button-size) + (var(--formie-table-row-padding) * 2));min-width:calc(var(--formie-button-icon-button-size) + (var(--formie-table-row-padding) * 2));white-space:nowrap;text-align:center;vertical-align:middle}.formie-table [data-formie-table-column-type=checkbox]{text-align:center;vertical-align:middle}.formie-table [data-formie-table-column-type=checkbox] .formie-checkbox-option{width:100%;min-height:var(--formie-check-size);justify-content:center;align-items:center;margin:0;display:flex}.formie-table [data-formie-table-column-type=checkbox] .formie-checkbox-option-label{width:var(--formie-check-size);min-width:var(--formie-check-size);height:var(--formie-check-size);margin:0 auto;padding-left:0;font-size:0;line-height:0;display:block}.formie-table [data-formie-table-column-type=checkbox] .formie-checkbox-option-label:before{position:static}.formie-table-color-input{min-width:4rem;padding:var(--formie-space-1)}.formie-table-multiline-input{min-height:calc(var(--formie-control-height) + var(--formie-space-2))}.formie-table-remove-button{vertical-align:middle;display:inline-flex}.formie-button.formie-table-add-button{width:auto;max-width:100%;padding-left:var(--formie-table-add-button-padding-left);justify-content:center;justify-self:start;align-items:center;display:inline-flex;position:relative}.formie-button.formie-table-add-button:before{content:\"\";width:var(--formie-table-add-button-width);height:var(--formie-table-add-button-height);left:var(--formie-table-add-button-left);-webkit-mask-image:var(--formie-table-add-button-icon-mask);-webkit-mask-image:var(--formie-table-add-button-icon-mask);mask-image:var(--formie-table-add-button-icon-mask);background-color:currentColor;display:block;position:absolute;top:50%;transform:translateY(-50%);-webkit-mask-position:50%;mask-position:50%;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}}", o = "[data-formie-table-field-layout]", s = "[data-formie-table]", c = "[data-formie-table-body]", l = "[data-formie-table-row]", u = "[data-formie-table-add]", d = "[data-formie-table-remove]", f = "data-formie-template-id", p = "data-formie-table-row-id", m = "table";
6
6
  t(m, [a]);
7
7
  function h(e, t) {
8
- return n(e, t);
8
+ return r(e, t);
9
9
  }
10
10
  function g(e) {
11
11
  return e.querySelectorAll(l).length;
@@ -21,46 +21,52 @@ function v(e, t) {
21
21
  let n = parseInt(e.getAttribute("data-formie-max-rows") || "", 10);
22
22
  e.disabled = n > 0 && t >= n;
23
23
  }
24
- function y(t, n) {
24
+ function y(t, r) {
25
25
  let a = t.querySelector(s), o = t.querySelector(c), y = t.querySelector(u);
26
26
  if (!(a instanceof HTMLElement) || !(o instanceof HTMLElement)) return () => {};
27
27
  let b = /* @__PURE__ */ new Map(), x = _(t), S = () => {
28
28
  t.querySelectorAll(d).forEach((e) => {
29
29
  if (!(e instanceof HTMLElement) || b.has(e)) return;
30
- let n = (n) => {
31
- n.preventDefault();
32
- let r = e.closest(l);
33
- if (!(r instanceof HTMLElement)) return;
30
+ let r = (r) => {
31
+ r.preventDefault();
32
+ let i = e.closest(l);
33
+ if (!(i instanceof HTMLElement)) return;
34
34
  let a = parseInt((y instanceof HTMLButtonElement ? y.getAttribute("data-formie-min-rows") : "") || "", 10);
35
- a > 0 && g(t) <= a || (r.remove(), v(y instanceof HTMLButtonElement ? y : null, g(t)), i(t, m, "remove", {
35
+ a > 0 && g(t) <= a || (i.remove(), v(y instanceof HTMLButtonElement ? y : null, g(t)), n(t, m, "remove", {
36
36
  table: t,
37
- row: r
37
+ row: i
38
38
  }));
39
39
  };
40
- e.addEventListener("click", n), b.set(e, n);
40
+ e.addEventListener("click", r), b.set(e, r);
41
41
  });
42
42
  }, C = async () => {
43
- if (n.static || !(y instanceof HTMLButtonElement) || !y.getAttribute("data-formie-table-add")) return;
43
+ if (r.static || !(y instanceof HTMLButtonElement) || !y.getAttribute("data-formie-table-add")) return;
44
44
  let a = y.getAttribute(f) || t.getAttribute(f), s = parseInt(y.getAttribute("data-formie-max-rows") || "", 10);
45
45
  if (s > 0 && g(t) >= s) return;
46
46
  let c = h(t, a);
47
47
  if (!c) return;
48
- let l = r(c).replaceAll("__ROW__", String(x++)), u = document.createElement("tr");
49
- u.setAttribute("data-formie-table-row", "true"), u.setAttribute(p, String(x - 1)), u.innerHTML = l, o.appendChild(u), await e(50), S(), v(y, g(t)), i(t, m, "append", {
48
+ let l = i(c).replaceAll("__ROW__", String(x++)), u = document.createElement("tr");
49
+ u.setAttribute("data-formie-table-row", "true"), u.setAttribute(p, String(x - 1)), u.innerHTML = l, o.appendChild(u), await e(50), S(), v(y, g(t)), n(t, m, "append", {
50
50
  table: t,
51
51
  row: u
52
52
  });
53
53
  }, w = (e) => {
54
54
  e.preventDefault(), C();
55
55
  };
56
- return y instanceof HTMLButtonElement && !n.static && y.addEventListener("click", w), S(), v(y instanceof HTMLButtonElement ? y : null, g(t)), i(t, m, "init", { table: t }), () => {
56
+ return y instanceof HTMLButtonElement && !r.static && y.addEventListener("click", w), S(), v(y instanceof HTMLButtonElement ? y : null, g(t)), n(t, m, "init", { table: t }), () => {
57
57
  y instanceof HTMLButtonElement && y.removeEventListener("click", w), b.forEach((e, t) => {
58
58
  t.removeEventListener("click", e);
59
59
  });
60
60
  };
61
61
  }
62
62
  var b = {
63
- id: m,
63
+ moduleId: `formie:${m}`,
64
+ version: 2,
65
+ surfaces: [
66
+ "server-rendered",
67
+ "client-rendered",
68
+ "cp-edit"
69
+ ],
64
70
  kind: "field",
65
71
  match: (e) => e.target instanceof HTMLElement && (e.target.matches(o) || !!e.target.querySelector(o)),
66
72
  setup: async (e) => {
@@ -1,7 +1,7 @@
1
- import { i as e } from "./i18n-BY1ds1BL.js";
2
- import { t } from "./styles-BfoIZwJp.js";
3
- import { c as n, i as r, l as i } from "./shared-Bx9s0i0P.js";
4
- import { n as a } from "./dist-D6i-VNgM.js";
1
+ import { p as e } from "./dist-ZLeW0zZ3.js";
2
+ import { i as t } from "./i18n-BY1ds1BL.js";
3
+ import { t as n } from "./styles-BfoIZwJp.js";
4
+ import { a as r, l as i, u as a } from "./shared-OKhSay59.js";
5
5
  //#region src/css/theme/fields/_text-limit.css?inline
6
6
  var o = "@layer formie-theme{.formie-limit-number{font-weight:var(--formie-font-weight-semibold);color:var(--formie-color-text)}.formie-limit-number-error{color:var(--formie-color-danger)}}", s = "input[data-formie-single-line-text-input], textarea[data-formie-multi-line-text-input]", c = [
7
7
  "textMinCharacterLimit",
@@ -9,7 +9,7 @@ var o = "@layer formie-theme{.formie-limit-number{font-weight:var(--formie-font-
9
9
  "textMinWordLimit",
10
10
  "textMaxWordLimit"
11
11
  ], l = "text-limit", u = "data-formie-text-limit-allow-overtype", d = "{count, plural, one{character allowed} other{characters allowed}}", f = "{count, plural, one{character left} other{characters left}}", p = "{count, plural, one{character over limit} other{characters over limit}}", m = "{count, plural, one{word allowed} other{words allowed}}", h = "{count, plural, one{word left} other{words left}}", g = "{count, plural, one{word over limit} other{words over limit}}", _ = /* @__PURE__ */ new WeakMap();
12
- t("text-limit", [o]);
12
+ n("text-limit", [o]);
13
13
  function v(e) {
14
14
  return e instanceof HTMLInputElement || e instanceof HTMLTextAreaElement;
15
15
  }
@@ -28,33 +28,33 @@ function S(e) {
28
28
  function C(e) {
29
29
  return e.value === "";
30
30
  }
31
- function w(e) {
32
- i(e, l, (e) => {
33
- e.addValidator("textMinCharacterLimit", ({ input: e }) => {
34
- if (!v(e)) return !0;
35
- let t = y(e, "data-formie-min-chars");
36
- return !t || C(e) ? !0 : a(e.value).graphemeCount >= t;
31
+ function w(t) {
32
+ a(t, l, (t) => {
33
+ t.addValidator("textMinCharacterLimit", ({ input: t }) => {
34
+ if (!v(t)) return !0;
35
+ let n = y(t, "data-formie-min-chars");
36
+ return !n || C(t) ? !0 : e(t.value).graphemeCount >= n;
37
37
  }, ({ label: e, input: t, t: n }) => t.getAttribute("data-formie-validation-min-characters-message") || n("{label} must be no less than {min} characters.", {
38
38
  label: e,
39
39
  min: t.getAttribute("data-formie-min-chars") || ""
40
- })), e.addValidator("textMaxCharacterLimit", ({ input: e }) => {
41
- if (!v(e) || S(e)) return !0;
42
- let t = y(e, "data-formie-max-chars");
43
- return !t || C(e) ? !0 : a(e.value).graphemeCount <= t;
40
+ })), t.addValidator("textMaxCharacterLimit", ({ input: t }) => {
41
+ if (!v(t) || S(t)) return !0;
42
+ let n = y(t, "data-formie-max-chars");
43
+ return !n || C(t) ? !0 : e(t.value).graphemeCount <= n;
44
44
  }, ({ label: e, input: t, t: n }) => t.getAttribute("data-formie-validation-max-characters-message") || n("{label} must be no greater than {max} characters.", {
45
45
  label: e,
46
46
  max: t.getAttribute("data-formie-max-chars") || ""
47
- })), e.addValidator("textMinWordLimit", ({ input: e }) => {
48
- if (!v(e)) return !0;
49
- let t = y(e, "data-formie-min-words");
50
- return !t || e.value.trim() === "" ? !0 : a(e.value).wordCount >= t;
47
+ })), t.addValidator("textMinWordLimit", ({ input: t }) => {
48
+ if (!v(t)) return !0;
49
+ let n = y(t, "data-formie-min-words");
50
+ return !n || t.value.trim() === "" || e(t.value).wordCount >= n;
51
51
  }, ({ label: e, input: t, t: n }) => t.getAttribute("data-formie-validation-min-words-message") || n("{label} must be no less than {min} words.", {
52
52
  label: e,
53
53
  min: t.getAttribute("data-formie-min-words") || ""
54
- })), e.addValidator("textMaxWordLimit", ({ input: e }) => {
55
- if (!v(e) || S(e)) return !0;
56
- let t = y(e, "data-formie-max-words");
57
- return !t || e.value.trim() === "" ? !0 : a(e.value).wordCount <= t;
54
+ })), t.addValidator("textMaxWordLimit", ({ input: t }) => {
55
+ if (!v(t) || S(t)) return !0;
56
+ let n = y(t, "data-formie-max-words");
57
+ return !n || t.value.trim() === "" || e(t.value).wordCount <= n;
58
58
  }, ({ label: e, input: t, t: n }) => t.getAttribute("data-formie-validation-max-words-message") || n("{label} must be no greater than {max} words.", {
59
59
  label: e,
60
60
  max: t.getAttribute("data-formie-max-words") || ""
@@ -62,7 +62,7 @@ function w(e) {
62
62
  });
63
63
  }
64
64
  function T(e) {
65
- n(e, l, c);
65
+ i(e, l, c);
66
66
  }
67
67
  function E(e) {
68
68
  if (_.has(e)) return _.get(e) || null;
@@ -79,24 +79,30 @@ function D(e, t, n) {
79
79
  function O(e, t) {
80
80
  return e === "character" ? t === "allowed" ? d : t === "over" ? p : f : t === "allowed" ? m : t === "over" ? g : h;
81
81
  }
82
- function k(t, n, r, i, a) {
82
+ function k(e, n, r, i, a) {
83
83
  let o = D(n, r, a), s = o === "allowed" ? i : Math.abs(r), c = document.createElement("span");
84
84
  c.className = o === "over" ? "formie-limit-number formie-limit-number-error" : "formie-limit-number", c.textContent = String(s);
85
85
  let l = O(a, o);
86
- t.replaceChildren(c, document.createTextNode(` ${e(l, { count: s })}`));
86
+ e.replaceChildren(c, document.createTextNode(` ${t(l, { count: s })}`));
87
87
  }
88
- function A(e) {
89
- let t = y(e, "data-formie-max-chars"), n = y(e, "data-formie-max-words"), r = E(e);
90
- if (!r) return;
91
- let i = a(e.value);
92
- if (t > 0) {
93
- k(r, e, t - i.graphemeCount, t, "character");
88
+ function A(t) {
89
+ let n = y(t, "data-formie-max-chars"), r = y(t, "data-formie-max-words"), i = E(t);
90
+ if (!i) return;
91
+ let a = e(t.value);
92
+ if (n > 0) {
93
+ k(i, t, n - a.graphemeCount, n, "character");
94
94
  return;
95
95
  }
96
- n > 0 && k(r, e, n - i.wordCount, n, "word");
96
+ r > 0 && k(i, t, r - a.wordCount, r, "word");
97
97
  }
98
98
  var j = {
99
- id: "text-limit",
99
+ moduleId: "formie:text-limit",
100
+ version: 2,
101
+ surfaces: [
102
+ "server-rendered",
103
+ "client-rendered",
104
+ "cp-edit"
105
+ ],
100
106
  kind: "field",
101
107
  match: (e) => !!e.target.querySelector(s),
102
108
  setup: async (e) => {
@@ -41,4 +41,4 @@ function u(e, t, n, r) {
41
41
  });
42
42
  }
43
43
  //#endregion
44
- export { u as i, o as n, l as r, c as t };
44
+ export { u as a, l as i, s as n, o as r, c as t };
@@ -1,4 +1,4 @@
1
- import { a as e, i as t, o as n, r, t as i } from "./api-BUb6P-xu.js";
1
+ import { a as e, i as t, o as n, r, t as i } from "./api-DYYsVIub.js";
2
2
  import { r as a } from "./scripts-CbQ7agX3.js";
3
3
  //#region src/js/modules/captchas/turnstile.ts
4
4
  function o(e) {
@@ -16,7 +16,7 @@ async function s(t) {
16
16
  });
17
17
  }
18
18
  var c = i({
19
- id: "turnstile",
19
+ moduleId: "formie:turnstile",
20
20
  defaultPlaceholderSelector: "[data-turnstile-placeholder]",
21
21
  defaultTokenFieldNames: ["cf-turnstile-response"],
22
22
  load: ({ options: e }) => s(e.provider),
@@ -42,7 +42,7 @@ var c = i({
42
42
  }
43
43
  });
44
44
  },
45
- screen: ({ api: e, widget: t, placeholder: n, services: r, provider: i, stageCtx: a }) => {
45
+ challenge: ({ api: e, widget: t, placeholder: n, services: r, provider: i, stageCtx: a }) => {
46
46
  if (!r.tokens.has()) return e.execute(t), r.tokens.wait(o(i)).then((e) => {
47
47
  if (!e) {
48
48
  let e = r.errors.getDefaultMessage();