@verbb/formie-browser 1.0.1 → 1.0.3

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 (361) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/chunks/address-finder-BjMuEiwF.js +37 -0
  3. package/dist/chunks/bpoint-KudsBCo2.js +26 -0
  4. package/dist/chunks/calculations-DlGSkQ3W.js +147 -0
  5. package/dist/chunks/captcha-eu-CterYFok.js +34 -0
  6. package/dist/chunks/checkbox-radio-CBvgk3hR.js +136 -0
  7. package/dist/chunks/conditions-DYy1-Hwt.js +459 -0
  8. package/dist/chunks/date-picker-BlD--zfe.js +4994 -0
  9. package/dist/chunks/eway-qwc-B5Us.js +74 -0
  10. package/dist/chunks/file-upload-CIgHrXfp.js +316 -0
  11. package/dist/chunks/friendly-captcha-v1-EDFac33c.js +33 -0
  12. package/dist/chunks/friendly-captcha-v2-BDpSvFGR.js +38 -0
  13. package/dist/chunks/go-cardless-DuDMVsnz.js +24 -0
  14. package/dist/chunks/google-address-Bmjp01pH.js +181 -0
  15. package/dist/chunks/hcaptcha-BTQ6An6g.js +56 -0
  16. package/dist/chunks/hidden-DbPdOxKb.js +31 -0
  17. package/dist/chunks/index-BEsfee-D.js +1839 -0
  18. package/dist/chunks/index-BP7Unm5Y.js +863 -0
  19. package/dist/chunks/index-BcqwpPNE.js +4314 -0
  20. package/dist/chunks/loqate-BdNGv93o.js +55 -0
  21. package/dist/chunks/mollie-DFOjTuGX.js +24 -0
  22. package/dist/chunks/moneris-BbFfl-EL.js +101 -0
  23. package/dist/chunks/opayo-CmgYa9ya.js +122 -0
  24. package/dist/chunks/paddle-BUi7w1_o.js +60 -0
  25. package/dist/chunks/paypal-A-ePfh6k.js +100 -0
  26. package/dist/chunks/payway-BqFCbhyo.js +56 -0
  27. package/dist/chunks/phone-country-DPMiqk4L.js +3765 -0
  28. package/dist/chunks/place-kit-CX7tamAg.js +42 -0
  29. package/dist/chunks/placekit-autocomplete.esm-LAwfbPZl.js +1299 -0
  30. package/dist/chunks/recaptcha-enterprise-DxF6cW95.js +71 -0
  31. package/dist/chunks/recaptcha-shared-DhGcbiaq.js +15 -0
  32. package/dist/chunks/recaptcha-v2-checkbox-R9EfbZ4k.js +41 -0
  33. package/dist/chunks/recaptcha-v2-invisible-DV9hswAp.js +59 -0
  34. package/dist/chunks/recaptcha-v3-V0xc-Edh.js +28 -0
  35. package/dist/chunks/repeater-DKUT6TGI.js +124 -0
  36. package/dist/chunks/rich-text-SH7KiaKH.js +304 -0
  37. package/dist/chunks/scripts-D9N2d5rN.js +36 -0
  38. package/dist/chunks/sdk-3SicTWby.js +1559 -0
  39. package/dist/chunks/shared-BmntPmnW.js +80 -0
  40. package/dist/chunks/signature-BA3tQsGT.js +550 -0
  41. package/dist/chunks/snaptcha-DV7p6J9k.js +8 -0
  42. package/dist/chunks/square-Bs-ndqYK.js +46 -0
  43. package/dist/chunks/stripe-DkZAHxtn.js +202 -0
  44. package/dist/chunks/styles-C3aqgtek.js +21 -0
  45. package/dist/chunks/summary-Dq2i9TQk.js +126 -0
  46. package/dist/chunks/table-Cu4WfVcw.js +95 -0
  47. package/dist/chunks/text-limit-2ycmB-Ae.js +135 -0
  48. package/dist/chunks/turnstile-CId90tRr.js +59 -0
  49. package/dist/chunks/utils-BntI3W4S.js +6149 -0
  50. package/dist/css/theme/forms/_form.css +28 -0
  51. package/dist/index.d.ts +30 -0
  52. package/dist/index.d.ts.map +1 -0
  53. package/dist/index.js +39 -3205
  54. package/dist/js/compatibility/dom-adapter.d.ts +12 -0
  55. package/dist/js/compatibility/dom-adapter.d.ts.map +1 -0
  56. package/dist/js/compatibility/event-map.d.ts +25 -0
  57. package/dist/js/compatibility/event-map.d.ts.map +1 -0
  58. package/dist/js/compatibility/validator-adapter.d.ts +17 -0
  59. package/dist/js/compatibility/validator-adapter.d.ts.map +1 -0
  60. package/dist/js/contracts/client.d.ts +40 -0
  61. package/dist/js/contracts/client.d.ts.map +1 -0
  62. package/dist/js/contracts/common.d.ts +5 -0
  63. package/dist/js/contracts/common.d.ts.map +1 -0
  64. package/dist/js/contracts/modules.d.ts +47 -0
  65. package/dist/js/contracts/modules.d.ts.map +1 -0
  66. package/dist/js/contracts/schema.d.ts +79 -0
  67. package/dist/js/contracts/schema.d.ts.map +1 -0
  68. package/dist/js/contracts/theme.d.ts +2 -0
  69. package/dist/js/contracts/theme.d.ts.map +1 -0
  70. package/dist/js/core/create-formie-client.d.ts +3 -0
  71. package/dist/js/core/create-formie-client.d.ts.map +1 -0
  72. package/dist/js/core/dom-events.d.ts +2 -0
  73. package/dist/js/core/dom-events.d.ts.map +1 -0
  74. package/dist/js/core/formie.d.ts +27 -0
  75. package/dist/js/core/formie.d.ts.map +1 -0
  76. package/dist/js/core/hydrate-modules.d.ts +22 -0
  77. package/dist/js/core/hydrate-modules.d.ts.map +1 -0
  78. package/dist/js/core/page-client-event.d.ts +9 -0
  79. package/dist/js/core/page-client-event.d.ts.map +1 -0
  80. package/dist/js/core/page-tab-errors.d.ts +2 -0
  81. package/dist/js/core/page-tab-errors.d.ts.map +1 -0
  82. package/dist/js/core/submit-flow.d.ts +21 -0
  83. package/dist/js/core/submit-flow.d.ts.map +1 -0
  84. package/dist/js/core/submit-result-state.d.ts +8 -0
  85. package/dist/js/core/submit-result-state.d.ts.map +1 -0
  86. package/dist/js/core/submit-result-ui.d.ts +10 -0
  87. package/dist/js/core/submit-result-ui.d.ts.map +1 -0
  88. package/dist/js/events/event-bus.d.ts +21 -0
  89. package/dist/js/events/event-bus.d.ts.map +1 -0
  90. package/dist/js/modules/address/address-finder.d.ts +2 -0
  91. package/dist/js/modules/address/address-finder.d.ts.map +1 -0
  92. package/dist/js/modules/address/api.d.ts +8 -0
  93. package/dist/js/modules/address/api.d.ts.map +1 -0
  94. package/dist/js/modules/address/constants.d.ts +15 -0
  95. package/dist/js/modules/address/constants.d.ts.map +1 -0
  96. package/dist/js/modules/address/factories.d.ts +35 -0
  97. package/dist/js/modules/address/factories.d.ts.map +1 -0
  98. package/dist/js/modules/address/google-address.d.ts +9 -0
  99. package/dist/js/modules/address/google-address.d.ts.map +1 -0
  100. package/dist/js/modules/address/host.d.ts +30 -0
  101. package/dist/js/modules/address/host.d.ts.map +1 -0
  102. package/dist/js/modules/address/index.d.ts +3 -0
  103. package/dist/js/modules/address/index.d.ts.map +1 -0
  104. package/dist/js/modules/address/loqate.d.ts +2 -0
  105. package/dist/js/modules/address/loqate.d.ts.map +1 -0
  106. package/dist/js/modules/address/place-kit.d.ts +2 -0
  107. package/dist/js/modules/address/place-kit.d.ts.map +1 -0
  108. package/dist/js/modules/captchas/api.d.ts +9 -0
  109. package/dist/js/modules/captchas/api.d.ts.map +1 -0
  110. package/dist/js/modules/captchas/captcha-eu.d.ts +2 -0
  111. package/dist/js/modules/captchas/captcha-eu.d.ts.map +1 -0
  112. package/dist/js/modules/captchas/constants.d.ts +5 -0
  113. package/dist/js/modules/captchas/constants.d.ts.map +1 -0
  114. package/dist/js/modules/captchas/factories.d.ts +63 -0
  115. package/dist/js/modules/captchas/factories.d.ts.map +1 -0
  116. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts +2 -0
  117. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts.map +1 -0
  118. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts +2 -0
  119. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts.map +1 -0
  120. package/dist/js/modules/captchas/hcaptcha.d.ts +2 -0
  121. package/dist/js/modules/captchas/hcaptcha.d.ts.map +1 -0
  122. package/dist/js/modules/captchas/host.d.ts +78 -0
  123. package/dist/js/modules/captchas/host.d.ts.map +1 -0
  124. package/dist/js/modules/captchas/index.d.ts +3 -0
  125. package/dist/js/modules/captchas/index.d.ts.map +1 -0
  126. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts +2 -0
  127. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -0
  128. package/dist/js/modules/captchas/recaptcha-shared.d.ts +26 -0
  129. package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -0
  130. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts +2 -0
  131. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts.map +1 -0
  132. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts +2 -0
  133. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts.map +1 -0
  134. package/dist/js/modules/captchas/recaptcha-v3.d.ts +2 -0
  135. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -0
  136. package/dist/js/modules/captchas/snaptcha.d.ts +2 -0
  137. package/dist/js/modules/captchas/snaptcha.d.ts.map +1 -0
  138. package/dist/js/modules/captchas/turnstile.d.ts +2 -0
  139. package/dist/js/modules/captchas/turnstile.d.ts.map +1 -0
  140. package/dist/js/modules/captchas/utils.d.ts +13 -0
  141. package/dist/js/modules/captchas/utils.d.ts.map +1 -0
  142. package/dist/js/modules/fields/calculations.d.ts +3 -0
  143. package/dist/js/modules/fields/calculations.d.ts.map +1 -0
  144. package/dist/js/modules/fields/checkbox-radio.d.ts +3 -0
  145. package/dist/js/modules/fields/checkbox-radio.d.ts.map +1 -0
  146. package/dist/js/modules/fields/conditions/config.d.ts +5 -0
  147. package/dist/js/modules/fields/conditions/config.d.ts.map +1 -0
  148. package/dist/js/modules/fields/conditions/effects.d.ts +4 -0
  149. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -0
  150. package/dist/js/modules/fields/conditions/evaluator.d.ts +6 -0
  151. package/dist/js/modules/fields/conditions/evaluator.d.ts.map +1 -0
  152. package/dist/js/modules/fields/conditions/references.d.ts +5 -0
  153. package/dist/js/modules/fields/conditions/references.d.ts.map +1 -0
  154. package/dist/js/modules/fields/conditions/transforms.d.ts +3 -0
  155. package/dist/js/modules/fields/conditions/transforms.d.ts.map +1 -0
  156. package/dist/js/modules/fields/conditions/types.d.ts +30 -0
  157. package/dist/js/modules/fields/conditions/types.d.ts.map +1 -0
  158. package/dist/js/modules/fields/conditions/values.d.ts +5 -0
  159. package/dist/js/modules/fields/conditions/values.d.ts.map +1 -0
  160. package/dist/js/modules/fields/conditions.d.ts +3 -0
  161. package/dist/js/modules/fields/conditions.d.ts.map +1 -0
  162. package/dist/js/modules/fields/date-picker.d.ts +3 -0
  163. package/dist/js/modules/fields/date-picker.d.ts.map +1 -0
  164. package/dist/js/modules/fields/file-upload.d.ts +3 -0
  165. package/dist/js/modules/fields/file-upload.d.ts.map +1 -0
  166. package/dist/js/modules/fields/hidden.d.ts +3 -0
  167. package/dist/js/modules/fields/hidden.d.ts.map +1 -0
  168. package/dist/js/modules/fields/index.d.ts +3 -0
  169. package/dist/js/modules/fields/index.d.ts.map +1 -0
  170. package/dist/js/modules/fields/phone-country.d.ts +3 -0
  171. package/dist/js/modules/fields/phone-country.d.ts.map +1 -0
  172. package/dist/js/modules/fields/repeater.d.ts +3 -0
  173. package/dist/js/modules/fields/repeater.d.ts.map +1 -0
  174. package/dist/js/modules/fields/rich-text.d.ts +3 -0
  175. package/dist/js/modules/fields/rich-text.d.ts.map +1 -0
  176. package/dist/js/modules/fields/shared.d.ts +20 -0
  177. package/dist/js/modules/fields/shared.d.ts.map +1 -0
  178. package/dist/js/modules/fields/signature.d.ts +3 -0
  179. package/dist/js/modules/fields/signature.d.ts.map +1 -0
  180. package/dist/js/modules/fields/summary.d.ts +3 -0
  181. package/dist/js/modules/fields/summary.d.ts.map +1 -0
  182. package/dist/js/modules/fields/table.d.ts +3 -0
  183. package/dist/js/modules/fields/table.d.ts.map +1 -0
  184. package/dist/js/modules/fields/text-limit.d.ts +3 -0
  185. package/dist/js/modules/fields/text-limit.d.ts.map +1 -0
  186. package/dist/js/modules/loader.d.ts +11 -0
  187. package/dist/js/modules/loader.d.ts.map +1 -0
  188. package/dist/js/modules/payments/api.d.ts +8 -0
  189. package/dist/js/modules/payments/api.d.ts.map +1 -0
  190. package/dist/js/modules/payments/bpoint.d.ts +2 -0
  191. package/dist/js/modules/payments/bpoint.d.ts.map +1 -0
  192. package/dist/js/modules/payments/constants.d.ts +5 -0
  193. package/dist/js/modules/payments/constants.d.ts.map +1 -0
  194. package/dist/js/modules/payments/eway.d.ts +9 -0
  195. package/dist/js/modules/payments/eway.d.ts.map +1 -0
  196. package/dist/js/modules/payments/factories.d.ts +54 -0
  197. package/dist/js/modules/payments/factories.d.ts.map +1 -0
  198. package/dist/js/modules/payments/go-cardless.d.ts +2 -0
  199. package/dist/js/modules/payments/go-cardless.d.ts.map +1 -0
  200. package/dist/js/modules/payments/host.d.ts +70 -0
  201. package/dist/js/modules/payments/host.d.ts.map +1 -0
  202. package/dist/js/modules/payments/index.d.ts +3 -0
  203. package/dist/js/modules/payments/index.d.ts.map +1 -0
  204. package/dist/js/modules/payments/mollie.d.ts +2 -0
  205. package/dist/js/modules/payments/mollie.d.ts.map +1 -0
  206. package/dist/js/modules/payments/moneris.d.ts +2 -0
  207. package/dist/js/modules/payments/moneris.d.ts.map +1 -0
  208. package/dist/js/modules/payments/opayo.d.ts +25 -0
  209. package/dist/js/modules/payments/opayo.d.ts.map +1 -0
  210. package/dist/js/modules/payments/paddle.d.ts +2 -0
  211. package/dist/js/modules/payments/paddle.d.ts.map +1 -0
  212. package/dist/js/modules/payments/paypal.d.ts +2 -0
  213. package/dist/js/modules/payments/paypal.d.ts.map +1 -0
  214. package/dist/js/modules/payments/payway.d.ts +2 -0
  215. package/dist/js/modules/payments/payway.d.ts.map +1 -0
  216. package/dist/js/modules/payments/square.d.ts +2 -0
  217. package/dist/js/modules/payments/square.d.ts.map +1 -0
  218. package/dist/js/modules/payments/stripe.d.ts +2 -0
  219. package/dist/js/modules/payments/stripe.d.ts.map +1 -0
  220. package/dist/js/modules/payments/utils.d.ts +17 -0
  221. package/dist/js/modules/payments/utils.d.ts.map +1 -0
  222. package/dist/js/modules/registry.d.ts +9 -0
  223. package/dist/js/modules/registry.d.ts.map +1 -0
  224. package/dist/js/modules/styles.d.ts +2 -0
  225. package/dist/js/modules/styles.d.ts.map +1 -0
  226. package/dist/js/submit/pipeline.d.ts +18 -0
  227. package/dist/js/submit/pipeline.d.ts.map +1 -0
  228. package/dist/js/theme/theme-classes.d.ts +10 -0
  229. package/dist/js/theme/theme-classes.d.ts.map +1 -0
  230. package/dist/js/transport/forms-api.d.ts +11 -0
  231. package/dist/js/transport/forms-api.d.ts.map +1 -0
  232. package/dist/js/utils/async.d.ts +8 -0
  233. package/dist/js/utils/async.d.ts.map +1 -0
  234. package/dist/js/utils/debug.d.ts +10 -0
  235. package/dist/js/utils/debug.d.ts.map +1 -0
  236. package/dist/js/utils/event-names.d.ts +13 -0
  237. package/dist/js/utils/event-names.d.ts.map +1 -0
  238. package/dist/js/utils/field-references.d.ts +6 -0
  239. package/dist/js/utils/field-references.d.ts.map +1 -0
  240. package/dist/js/utils/field-references.keys.d.ts +4 -0
  241. package/dist/js/utils/field-references.keys.d.ts.map +1 -0
  242. package/dist/js/utils/field-references.parser.d.ts +3 -0
  243. package/dist/js/utils/field-references.parser.d.ts.map +1 -0
  244. package/dist/js/utils/field-references.registry.d.ts +3 -0
  245. package/dist/js/utils/field-references.registry.d.ts.map +1 -0
  246. package/dist/js/utils/field-references.resolver.d.ts +4 -0
  247. package/dist/js/utils/field-references.resolver.d.ts.map +1 -0
  248. package/dist/js/utils/field-references.types.d.ts +27 -0
  249. package/dist/js/utils/field-references.types.d.ts.map +1 -0
  250. package/dist/js/utils/fields.d.ts +5 -0
  251. package/dist/js/utils/fields.d.ts.map +1 -0
  252. package/dist/js/utils/http.d.ts +9 -0
  253. package/dist/js/utils/http.d.ts.map +1 -0
  254. package/dist/js/utils/i18n.d.ts +7 -0
  255. package/dist/js/utils/i18n.d.ts.map +1 -0
  256. package/dist/js/utils/scripts.d.ts +13 -0
  257. package/dist/js/utils/scripts.d.ts.map +1 -0
  258. package/dist/js/utils/unload-warning.d.ts +10 -0
  259. package/dist/js/utils/unload-warning.d.ts.map +1 -0
  260. package/dist/js/validation/rules/email.d.ts +4 -0
  261. package/dist/js/validation/rules/email.d.ts.map +1 -0
  262. package/dist/js/validation/rules/match.d.ts +4 -0
  263. package/dist/js/validation/rules/match.d.ts.map +1 -0
  264. package/dist/js/validation/rules/number.d.ts +4 -0
  265. package/dist/js/validation/rules/number.d.ts.map +1 -0
  266. package/dist/js/validation/rules/required.d.ts +4 -0
  267. package/dist/js/validation/rules/required.d.ts.map +1 -0
  268. package/dist/js/validation/rules/shared.d.ts +7 -0
  269. package/dist/js/validation/rules/shared.d.ts.map +1 -0
  270. package/dist/js/validation/rules/url.d.ts +4 -0
  271. package/dist/js/validation/rules/url.d.ts.map +1 -0
  272. package/dist/js/validation/rules.d.ts +10 -0
  273. package/dist/js/validation/rules.d.ts.map +1 -0
  274. package/dist/js/validation/scope.d.ts +6 -0
  275. package/dist/js/validation/scope.d.ts.map +1 -0
  276. package/dist/js/validation/submit-readiness.d.ts +4 -0
  277. package/dist/js/validation/submit-readiness.d.ts.map +1 -0
  278. package/dist/js/validation/types.d.ts +44 -0
  279. package/dist/js/validation/types.d.ts.map +1 -0
  280. package/dist/js/validation/validator.d.ts +54 -0
  281. package/dist/js/validation/validator.d.ts.map +1 -0
  282. package/package.json +3 -2
  283. package/src/css/theme/forms/_form.css +28 -0
  284. package/src/js/core/create-formie-client.ts +6 -0
  285. package/src/js/core/submit-result-state.ts +17 -0
  286. package/src/js/modules/address/google-address.ts +33 -1
  287. package/src/js/modules/fields/conditions/effects.ts +79 -2
  288. package/src/js/modules/fields/conditions.ts +53 -11
  289. package/src/js/modules/fields/file-upload.ts +189 -97
  290. package/src/js/modules/fields/repeater.ts +1 -1
  291. package/src/js/modules/fields/rich-text.ts +2 -2
  292. package/src/js/modules/fields/signature.ts +1 -1
  293. package/src/js/modules/fields/summary.ts +1 -1
  294. package/src/js/modules/fields/table.ts +1 -1
  295. package/src/js/modules/fields/text-limit.ts +1 -1
  296. package/src/js/modules/payments/paypal.ts +1 -1
  297. package/src/js/modules/payments/payway.ts +1 -1
  298. package/src/js/modules/payments/stripe.ts +1 -1
  299. package/src/js/submit/pipeline.ts +3 -28
  300. package/src/js/validation/scope.ts +25 -0
  301. package/src/js/validation/submit-readiness.ts +157 -0
  302. package/src/js/validation/validator.ts +4 -0
  303. package/dist/chunks/address-finder-DfMCiW89.js +0 -47
  304. package/dist/chunks/api-CbqEMQT5.js +0 -181
  305. package/dist/chunks/api-DE7LfK-R.js +0 -960
  306. package/dist/chunks/api-DOfDzYC_.js +0 -538
  307. package/dist/chunks/async-B3DUf1GZ.js +0 -26
  308. package/dist/chunks/bpoint-Ciy3yY9Q.js +0 -34
  309. package/dist/chunks/calculations-CkYAqO_-.js +0 -197
  310. package/dist/chunks/captcha-eu-DnOWhMwr.js +0 -43
  311. package/dist/chunks/checkbox-radio-0x7Tc0br.js +0 -197
  312. package/dist/chunks/chunk-K6L4z4UQ.js +0 -24
  313. package/dist/chunks/conditions-4fXKhEJS.js +0 -609
  314. package/dist/chunks/date-picker-B6iZkjHS.js +0 -6204
  315. package/dist/chunks/debug-KnZeKYBI.js +0 -39
  316. package/dist/chunks/dist-D09GnXMW.js +0 -2663
  317. package/dist/chunks/event-names-DamGPtXR.js +0 -51
  318. package/dist/chunks/eway-DEAYcwT0.js +0 -86
  319. package/dist/chunks/field-references.keys-BpBZ_quS.js +0 -24
  320. package/dist/chunks/field-references.resolver-Ba6xhiJC.js +0 -183
  321. package/dist/chunks/file-upload-BIj85NFH.js +0 -428
  322. package/dist/chunks/friendly-captcha-v1-CqO4WVre.js +0 -40
  323. package/dist/chunks/friendly-captcha-v2-CyykcJcM.js +0 -47
  324. package/dist/chunks/friendly-challenge-Dg8XkStd.js +0 -1101
  325. package/dist/chunks/go-cardless-CuND59rR.js +0 -26
  326. package/dist/chunks/google-address--uR8WDSm.js +0 -208
  327. package/dist/chunks/hcaptcha-CmaFUesv.js +0 -72
  328. package/dist/chunks/hidden-CYnZYple.js +0 -36
  329. package/dist/chunks/http-18nn97DZ.js +0 -29
  330. package/dist/chunks/i18n-vUh-KGiH.js +0 -55
  331. package/dist/chunks/loqate-BICNJlVK.js +0 -97
  332. package/dist/chunks/mollie-DwlsgHZ1.js +0 -26
  333. package/dist/chunks/moneris-B_IFZFTx.js +0 -159
  334. package/dist/chunks/opayo-U2x_TOII.js +0 -192
  335. package/dist/chunks/paddle-BqXFrc79.js +0 -75
  336. package/dist/chunks/paypal-VowQ3ilP.js +0 -121
  337. package/dist/chunks/payway-VOO-ajyg.js +0 -75
  338. package/dist/chunks/phone-country-B6Me4lK0.js +0 -3317
  339. package/dist/chunks/place-kit-ldUl-u9w.js +0 -56
  340. package/dist/chunks/placekit-autocomplete.esm-D-lGeaZl.js +0 -1771
  341. package/dist/chunks/recaptcha-enterprise-DPJNyv1X.js +0 -72
  342. package/dist/chunks/recaptcha-shared-DTI4qWVR.js +0 -22
  343. package/dist/chunks/recaptcha-v2-checkbox-zFjpvJ5c.js +0 -49
  344. package/dist/chunks/recaptcha-v2-invisible-CnYtkNvz.js +0 -62
  345. package/dist/chunks/recaptcha-v3-EAlWhnkX.js +0 -33
  346. package/dist/chunks/repeater-BPm7Mkyn.js +0 -149
  347. package/dist/chunks/rich-text-CHSly1Hq.js +0 -438
  348. package/dist/chunks/scripts-BGD_iU_6.js +0 -41
  349. package/dist/chunks/sdk-B7u9fTlP.js +0 -2103
  350. package/dist/chunks/shared-DC6_1u8X.js +0 -85
  351. package/dist/chunks/signature-DNMCgrMd.js +0 -763
  352. package/dist/chunks/snaptcha-CCDunGeb.js +0 -8
  353. package/dist/chunks/square-BLqK51rS.js +0 -61
  354. package/dist/chunks/stripe-B6ZcDQdx.js +0 -273
  355. package/dist/chunks/styles-BIh6g7V_.js +0 -22
  356. package/dist/chunks/summary-BTG0uIOt.js +0 -189
  357. package/dist/chunks/table-BTYc0Qm8.js +0 -122
  358. package/dist/chunks/text-limit-CgBMu4sJ.js +0 -177
  359. package/dist/chunks/theme-classes-vSHpdCUO.js +0 -59
  360. package/dist/chunks/turnstile-DP0bdR7T.js +0 -68
  361. package/dist/chunks/utils-ByrEVYrJ.js +0 -49584
@@ -0,0 +1 @@
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../../../src/js/utils/i18n.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AA4DtE,wBAAgB,qBAAqB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE9D;AAED,wBAAgB,qBAAqB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlG;AAED,wBAAgB,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CASpG;AAED,wBAAgB,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,GAAE,uBAA4B,GAAG,MAAM,CAcrF;AAED,eAAO,MAAM,SAAS,UAAI,CAAC"}
@@ -0,0 +1,13 @@
1
+ type LoadExternalScriptOptions = {
2
+ id: string;
3
+ src: string;
4
+ async?: boolean;
5
+ defer?: boolean;
6
+ };
7
+ export declare function ensureGlobal<T = unknown>(globalName: string, timeoutMs?: number): Promise<T>;
8
+ export declare function loadExternalScript({ id, src, async, defer, }: LoadExternalScriptOptions): Promise<HTMLScriptElement>;
9
+ export declare function loadScriptAndEnsureGlobal<T = unknown>(globalName: string, options: LoadExternalScriptOptions & {
10
+ timeoutMs?: number;
11
+ }): Promise<T>;
12
+ export {};
13
+ //# sourceMappingURL=scripts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scripts.d.ts","sourceRoot":"","sources":["../../../src/js/utils/scripts.ts"],"names":[],"mappings":"AAIA,KAAK,yBAAyB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAIF,wBAAsB,YAAY,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,SAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAehG;AAED,wBAAsB,kBAAkB,CAAC,EACrC,EAAE,EACF,GAAG,EACH,KAAY,EACZ,KAAY,GACf,EAAE,yBAAyB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA6BxD;AAED,wBAAsB,yBAAyB,CAAC,CAAC,GAAG,OAAO,EACvD,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,yBAAyB,GAAG;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB,GACF,OAAO,CAAC,CAAC,CAAC,CAYZ"}
@@ -0,0 +1,10 @@
1
+ export type FormUnloadWarningGuard = {
2
+ captureBaseline: () => void;
3
+ scheduleBaselineCapture: () => void;
4
+ refreshDirtyState: () => boolean;
5
+ destroy: () => void;
6
+ };
7
+ export declare function createFormUnloadWarningGuard(form: HTMLFormElement, options?: {
8
+ shouldWarn?: () => boolean;
9
+ }): FormUnloadWarningGuard;
10
+ //# sourceMappingURL=unload-warning.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unload-warning.d.ts","sourceRoot":"","sources":["../../../src/js/utils/unload-warning.ts"],"names":[],"mappings":"AAmFA,MAAM,MAAM,sBAAsB,GAAG;IACjC,eAAe,EAAE,MAAM,IAAI,CAAC;IAC5B,uBAAuB,EAAE,MAAM,IAAI,CAAC;IACpC,iBAAiB,EAAE,MAAM,OAAO,CAAC;IACjC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,wBAAgB,4BAA4B,CACxC,IAAI,EAAE,eAAe,EACrB,OAAO,GAAE;IACL,UAAU,CAAC,EAAE,MAAM,OAAO,CAAC;CACzB,GACP,sBAAsB,CA8FxB"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const email: ValidationRuleDefinition;
3
+ export default email;
4
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/email.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,QAAA,MAAM,KAAK,EAAE,wBAaZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const match: ValidationRuleDefinition;
3
+ export default match;
4
+ //# sourceMappingURL=match.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"match.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/match.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAGlE,QAAA,MAAM,KAAK,EAAE,wBAoBZ,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const number: ValidationRuleDefinition;
3
+ export default number;
4
+ //# sourceMappingURL=number.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/number.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,QAAA,MAAM,MAAM,EAAE,wBAkDb,CAAC;AAEF,eAAe,MAAM,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const required: ValidationRuleDefinition;
3
+ export default required;
4
+ //# sourceMappingURL=required.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"required.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/required.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,QAAA,MAAM,QAAQ,EAAE,wBAyBf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { ValidationContext, ValidationInput } from '#validation/types';
2
+ export declare function stripTags(value: string): string;
3
+ export declare function countGraphemes(value: string): number;
4
+ export declare function getWordCount(value: string): number;
5
+ export declare function getLabelText(field: HTMLElement | null): string;
6
+ export declare function getComparableInput(ctx: ValidationContext): ValidationInput | null;
7
+ //# sourceMappingURL=shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE5E,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAG/C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOpD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,MAAM,CAE9D;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,iBAAiB,GAAG,eAAe,GAAG,IAAI,CAsBjF"}
@@ -0,0 +1,4 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const url: ValidationRuleDefinition;
3
+ export default url;
4
+ //# sourceMappingURL=url.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"url.d.ts","sourceRoot":"","sources":["../../../../src/js/validation/rules/url.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAElE,QAAA,MAAM,GAAG,EAAE,wBAkBV,CAAC;AAEF,eAAe,GAAG,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { ValidationRuleDefinition } from '#validation/types';
2
+ declare const _default: {
3
+ required: ValidationRuleDefinition;
4
+ email: ValidationRuleDefinition;
5
+ url: ValidationRuleDefinition;
6
+ number: ValidationRuleDefinition;
7
+ match: ValidationRuleDefinition;
8
+ };
9
+ export default _default;
10
+ //# sourceMappingURL=rules.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../../src/js/validation/rules.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;;;;;;;;AAOlE,wBAQqD"}
@@ -0,0 +1,6 @@
1
+ export declare function getFormPages(form: HTMLFormElement): HTMLElement[];
2
+ export declare function getValidationScope(form: HTMLFormElement): {
3
+ scope: Element;
4
+ final: boolean;
5
+ };
6
+ //# sourceMappingURL=scope.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scope.d.ts","sourceRoot":"","sources":["../../../src/js/validation/scope.ts"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,WAAW,EAAE,CAEjE;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAoB5F"}
@@ -0,0 +1,4 @@
1
+ import type { FormieValidator } from '#validation/validator';
2
+ export declare function syncSubmitReadiness(form: HTMLFormElement, validator: FormieValidator): void;
3
+ export declare function bindSubmitReadiness(form: HTMLFormElement, validator: FormieValidator, target: Element): () => void;
4
+ //# sourceMappingURL=submit-readiness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"submit-readiness.d.ts","sourceRoot":"","sources":["../../../src/js/validation/submit-readiness.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAqB7D,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,EAAE,eAAe,GAAG,IAAI,CA+C3F;AAED,wBAAgB,mBAAmB,CAC/B,IAAI,EAAE,eAAe,EACrB,SAAS,EAAE,eAAe,EAC1B,MAAM,EAAE,OAAO,GAChB,MAAM,IAAI,CAiFZ"}
@@ -0,0 +1,44 @@
1
+ export type ValidationInput = HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;
2
+ export type ValidationRule = {
3
+ type: string;
4
+ fieldId?: string | null;
5
+ fieldHandle?: string | null;
6
+ min?: number | null;
7
+ max?: number | null;
8
+ [key: string]: unknown;
9
+ };
10
+ export type ValidationRuleValue = ValidationRule | boolean;
11
+ export type ValidationRules = Record<string, ValidationRuleValue>;
12
+ export type ValidationConfig = {
13
+ live: boolean;
14
+ errorMessage?: string;
15
+ fieldContainerErrorClass: string[];
16
+ inputErrorClass: string[];
17
+ messagesClass: string[];
18
+ messageClass: string[];
19
+ fieldsSelector: string;
20
+ patterns: Record<string, RegExp>;
21
+ };
22
+ export type ValidationContext = {
23
+ t: (message: string, replacements?: Record<string, string | number>) => string;
24
+ input: ValidationInput;
25
+ label: string;
26
+ field: HTMLElement | null;
27
+ form: HTMLFormElement;
28
+ config: ValidationConfig;
29
+ rules: ValidationRules;
30
+ getRule: (rule: string) => ValidationRuleValue | false;
31
+ };
32
+ export type ValidationRuleDefinition = {
33
+ rule: (ctx: ValidationContext) => boolean;
34
+ message?: (ctx: ValidationContext) => string;
35
+ };
36
+ export type ValidationError = {
37
+ input: ValidationInput;
38
+ field: HTMLElement | null;
39
+ validator: string;
40
+ message: string;
41
+ handle: string | null;
42
+ result: boolean;
43
+ };
44
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/js/validation/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,eAAe,GAAG,gBAAgB,GAAG,iBAAiB,GAAG,mBAAmB,CAAC;AAEzF,MAAM,MAAM,cAAc,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,cAAc,GAAG,OAAO,CAAC;AAE3D,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,wBAAwB,EAAE,MAAM,EAAE,CAAC;IACnC,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC5B,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,KAAK,MAAM,CAAC;IAC/E,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,eAAe,CAAC;IACvB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,mBAAmB,GAAG,KAAK,CAAC;CAC1D,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,IAAI,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,OAAO,CAAC;IAC1C,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,iBAAiB,KAAK,MAAM,CAAC;CAChD,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,eAAe,CAAC;IACvB,KAAK,EAAE,WAAW,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,MAAM,EAAE,OAAO,CAAC;CACnB,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { ValidationConfig, ValidationContext, ValidationError, ValidationInput, ValidationRules } from '#validation/types';
2
+ type ValidatorDefinition = {
3
+ validate: (ctx: ValidationContext) => boolean;
4
+ errorMessage?: (ctx: ValidationContext) => string;
5
+ };
6
+ type ValidateOptions = {
7
+ includeHiddenPages?: boolean;
8
+ };
9
+ export declare class FormieValidator {
10
+ form: HTMLFormElement;
11
+ errors: ValidationError[];
12
+ validators: Record<string, ValidatorDefinition>;
13
+ boundListeners: boolean;
14
+ activated: WeakSet<ValidationInput>;
15
+ submitted: boolean;
16
+ initialValues: WeakMap<ValidationInput, string | boolean>;
17
+ onBlur: EventListener;
18
+ onChange: EventListener;
19
+ onInput: EventListener;
20
+ config: ValidationConfig;
21
+ constructor(form: HTMLFormElement, config?: Partial<ValidationConfig>);
22
+ init(): void;
23
+ inputs(inputOrSelector?: Element | null): ValidationInput[];
24
+ getInputValue(input: ValidationInput): string | boolean;
25
+ isDirty(input: ValidationInput): boolean;
26
+ shouldShowError(input: ValidationInput): boolean;
27
+ isValid(inputOrSelector?: Element | null, options?: ValidateOptions): boolean;
28
+ validate(inputOrSelector?: Element | null, options?: ValidateOptions): ValidationError[];
29
+ removeAllErrors(): void;
30
+ removeError(input: ValidationInput): void;
31
+ showError(input: ValidationInput, validatorName: string, errorMessage: string): void;
32
+ getValidatorCallbackOptions(input: ValidationInput): ValidationContext;
33
+ getErrorMessage(input: ValidationInput, validatorName: string, validator: ValidatorDefinition, opts: ValidationContext): string;
34
+ getErrors(): ValidationError[];
35
+ getFieldErrors(errors?: ValidationError[]): Record<string, string[]>;
36
+ getRule(field: HTMLElement | null, rule: string): ValidationRules[string] | false;
37
+ parseValidationRules(ruleString: string | null | undefined): ValidationRules;
38
+ destroy(): void;
39
+ isVisible(element: ValidationInput, options?: ValidateOptions): boolean;
40
+ blurHandler(event: Event): void;
41
+ changeHandler(event: Event): void;
42
+ inputHandler(event: Event): void;
43
+ submit(inputOrSelector?: Element | null, { final }?: {
44
+ final?: boolean;
45
+ }): ValidationError[];
46
+ resetLiveState(): void;
47
+ addEventListeners(): void;
48
+ removeEventListeners(): void;
49
+ emitEvent(target: Document | Element, type: string, detail?: Record<string, unknown>): void;
50
+ addValidator(name: string, validatorFunction: (ctx: ValidationContext) => boolean, errorMessage?: (ctx: ValidationContext) => string): void;
51
+ removeValidator(name: string): void;
52
+ }
53
+ export {};
54
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/js/validation/validator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verbb/formie-browser",
3
- "version": "1.0.1",
3
+ "version": "1.0.3",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -29,6 +29,7 @@
29
29
  ],
30
30
  "imports": {
31
31
  "#theme/*": "./src/js/theme/*",
32
+ "#theme-css/*": "./src/css/theme/*",
32
33
  "#theme-base/*": "./src/css/theme-base/*",
33
34
  "#icons/*": "./src/icons/*",
34
35
  "#contracts/*": "./src/js/contracts/*",
@@ -64,7 +65,7 @@
64
65
  "vite": "^8.0.10"
65
66
  },
66
67
  "dependencies": {
67
- "@verbb/formie-core": "1.0.1",
68
+ "@verbb/formie-core": "1.0.3",
68
69
  "@friendlycaptcha/sdk": "^1.0.0",
69
70
  "@placekit/autocomplete-js": "^2.2.1",
70
71
  "expression-language": "^2.5.4",
@@ -101,6 +101,34 @@
101
101
  .formie-row[data-formie-field-count="4"] {
102
102
  grid-template-columns: repeat(4, minmax(0, 1fr));
103
103
  }
104
+
105
+ .formie-row[data-formie-field-count="5"] {
106
+ grid-template-columns: repeat(5, minmax(0, 1fr));
107
+ }
108
+ }
109
+
110
+ .formie-row[data-formie-row-submit-inline] > .formie-row-submit {
111
+ display: flex;
112
+ flex-direction: column;
113
+ justify-content: flex-end;
114
+ }
115
+
116
+ @media (min-width: 40rem) {
117
+ .formie-row[data-formie-row-submit-inline] {
118
+ display: flex;
119
+ flex-wrap: nowrap;
120
+ align-items: stretch;
121
+ gap: var(--formie-gap-row);
122
+ }
123
+
124
+ .formie-row[data-formie-row-submit-inline] > [data-formie-field] {
125
+ flex: 1 1 0;
126
+ min-width: 0;
127
+ }
128
+
129
+ .formie-row[data-formie-row-submit-inline] > .formie-row-submit {
130
+ flex: 0 0 auto;
131
+ }
104
132
  }
105
133
 
106
134
  .formie-errors {
@@ -25,6 +25,7 @@ import { clearSubmissionOnUnload, requestGraphqlRender, requestRefreshTokens, re
25
25
  import { createDebug } from '#utils/debug';
26
26
  import { createFormUnloadWarningGuard } from '#utils/unload-warning';
27
27
  import { FormieValidator } from '#validation/validator';
28
+ import { bindSubmitReadiness } from '#validation/submit-readiness';
28
29
 
29
30
  type InternalInstanceState = {
30
31
  options: FormMountOptions;
@@ -1135,6 +1136,11 @@ export function createFormieClient(): FormieClient {
1135
1136
 
1136
1137
  if (form) {
1137
1138
  bindFormEvents(target, form, normalizedOptions, bus, validator, unbinds);
1139
+
1140
+ if (validator) {
1141
+ unbinds.push(bindSubmitReadiness(form, validator, target));
1142
+ }
1143
+
1138
1144
  await refreshTokensIfNeeded(target, normalizedOptions, form);
1139
1145
  }
1140
1146
 
@@ -6,6 +6,7 @@ import { addThemeClasses, removeThemeClasses, toggleThemeClasses } from '#theme/
6
6
  import { createDebug } from '#utils/debug';
7
7
  import { getFormStateEventName, normalizeFormieEventName } from '#utils/event-names';
8
8
  import type { FormieValidator } from '#validation/validator';
9
+ import { syncSubmitReadiness } from '#validation/submit-readiness';
9
10
 
10
11
  type FormWithValidationApi = HTMLFormElement & {
11
12
  formieValidation?: FormieValidator;
@@ -287,6 +288,14 @@ export function clearSubmitLoading(form: HTMLFormElement): void {
287
288
  button.removeAttribute('data-formie-loading-indicator');
288
289
  button.removeAttribute('data-formie-loading-text');
289
290
  });
291
+
292
+ if (form.dataset.formieDisableSubmitUntilValid === 'true') {
293
+ const formWithValidation = form as FormWithValidationApi;
294
+
295
+ if (formWithValidation.formieValidation) {
296
+ syncSubmitReadiness(form, formWithValidation.formieValidation);
297
+ }
298
+ }
290
299
  }
291
300
 
292
301
  export function applyPageState(form: HTMLFormElement, nextPageId: string): void {
@@ -337,6 +346,14 @@ export function applyPageState(form: HTMLFormElement, nextPageId: string): void
337
346
  // follow-up submits, and server recovery land on the same page.
338
347
  setHiddenInputValue(form, 'pageId', nextPageId);
339
348
  syncPageTabErrors(form);
349
+
350
+ if (form.dataset.formieDisableSubmitUntilValid === 'true') {
351
+ const formWithValidation = form as FormWithValidationApi;
352
+
353
+ if (formWithValidation.formieValidation) {
354
+ syncSubmitReadiness(form, formWithValidation.formieValidation);
355
+ }
356
+ }
340
357
  }
341
358
 
342
359
  function syncSubmissionIdentity(form: HTMLFormElement, result: FormSubmitResult): void {
@@ -8,6 +8,7 @@ type GoogleMaps = typeof google;
8
8
  type GoogleAddressProviderOptions = {
9
9
  apiKey?: string;
10
10
  options?: Record<string, unknown>;
11
+ countryDefaultValue?: string;
11
12
  };
12
13
 
13
14
  const SCRIPT_ID = 'FORMIE_GOOGLE_ADDRESS_SCRIPT';
@@ -194,6 +195,37 @@ function buildAddressFromComponents(formData: Record<string, string>): {
194
195
  };
195
196
  }
196
197
 
198
+ function hasCountryRestriction(options: Record<string, unknown>): boolean {
199
+ const componentRestrictions = options.componentRestrictions;
200
+
201
+ if (componentRestrictions && typeof componentRestrictions === 'object') {
202
+ const country = (componentRestrictions as { country?: unknown }).country;
203
+
204
+ if (Array.isArray(country) ? country.length > 0 : Boolean(country)) {
205
+ return true;
206
+ }
207
+ }
208
+
209
+ const includedRegionCodes = options.includedRegionCodes;
210
+
211
+ return Array.isArray(includedRegionCodes) && includedRegionCodes.length > 0;
212
+ }
213
+
214
+ export function buildGoogleAutocompleteOptions(provider: GoogleAddressProviderOptions): Record<string, unknown> {
215
+ const options = { types: ['geocode'], ...(provider.options || {}) };
216
+ const country = provider.countryDefaultValue?.trim().toLowerCase();
217
+
218
+ if (!country || hasCountryRestriction(options)) {
219
+ return options;
220
+ }
221
+
222
+ return {
223
+ ...options,
224
+ componentRestrictions: { country },
225
+ includedRegionCodes: [country.toUpperCase()],
226
+ };
227
+ }
228
+
197
229
  export const googleAddressModule = defineAddressModule<
198
230
  GoogleAddressProviderOptions,
199
231
  GoogleMaps,
@@ -218,7 +250,7 @@ export const googleAddressModule = defineAddressModule<
218
250
  return null;
219
251
  }
220
252
 
221
- const options = { types: ['geocode'], ...(provider.options || {}) };
253
+ const options = buildGoogleAutocompleteOptions(provider);
222
254
  const autocomplete = new PlaceAutocompleteElement(options);
223
255
  const inputHeight = window.getComputedStyle(input).height;
224
256
 
@@ -3,6 +3,9 @@ const PRESERVED_DISABLED_ATTR = 'data-formie-preserve-disabled';
3
3
  const CONDITIONAL_HIDDEN_ATTR = 'data-formie-conditionally-hidden';
4
4
  const PAGE_HIDDEN_ATTR = 'data-formie-page-hidden';
5
5
  const CONDITIONAL_HIDDEN_CLASS = 'formie-conditionally-hidden';
6
+ const CP_MUTED_CLASS = 'fui-cp-muted-conditional-field';
7
+ const CP_MUTED_EXPANDED_CLASS = 'fui-cp-muted-conditional-field--expanded';
8
+ const CP_MUTED_ATTR = 'data-formie-cp-muted';
6
9
  const PAGE_HIDDEN_CLASS = 'formie-page-hidden';
7
10
  const ROW_HIDDEN_ATTR = 'data-formie-row-hidden';
8
11
  const ROW_HIDDEN_CLASS = 'formie-row-hidden';
@@ -143,6 +146,19 @@ function syncRowState(row: Element): void {
143
146
  }
144
147
  }
145
148
 
149
+ function clearCpMutedState(node: Element): void {
150
+ node.removeAttribute(CP_MUTED_ATTR);
151
+ node.classList.remove(CP_MUTED_CLASS);
152
+ node.classList.remove(CP_MUTED_EXPANDED_CLASS);
153
+ }
154
+
155
+ function clearHideState(node: Element): void {
156
+ node.removeAttribute(CONDITIONAL_HIDDEN_ATTR);
157
+ node.removeAttribute(PAGE_HIDDEN_ATTR);
158
+ node.classList.remove(CONDITIONAL_HIDDEN_CLASS);
159
+ node.classList.remove(PAGE_HIDDEN_CLASS);
160
+ }
161
+
146
162
  function syncAncestorRows(node: Element): void {
147
163
  let currentRow = node.closest(ROW_SELECTOR);
148
164
 
@@ -152,8 +168,26 @@ function syncAncestorRows(node: Element): void {
152
168
  }
153
169
  }
154
170
 
155
- export function applyConditionVisibility(node: Element, hidden: boolean, clearOnHide: boolean): boolean {
156
- const stateChanged = setVisibilityState(node, hidden);
171
+ export function applyConditionVisibility(
172
+ node: Element,
173
+ hidden: boolean,
174
+ clearOnHide: boolean,
175
+ options: { displayMode?: 'hide' | 'muted' } = {},
176
+ ): boolean {
177
+ if (options.displayMode === 'muted') {
178
+ return applyMutedConditionVisibility(node, hidden);
179
+ }
180
+
181
+ let stateChanged = false;
182
+
183
+ if (node.hasAttribute(CP_MUTED_ATTR)
184
+ || node.classList.contains(CP_MUTED_CLASS)
185
+ || node.classList.contains(CP_MUTED_EXPANDED_CLASS)) {
186
+ clearCpMutedState(node);
187
+ stateChanged = true;
188
+ }
189
+
190
+ stateChanged = setVisibilityState(node, hidden) || stateChanged;
157
191
 
158
192
  syncDisabledState(node, hidden);
159
193
  syncAncestorRows(node);
@@ -164,3 +198,46 @@ export function applyConditionVisibility(node: Element, hidden: boolean, clearOn
164
198
 
165
199
  return stateChanged;
166
200
  }
201
+
202
+ function applyMutedConditionVisibility(node: Element, hidden: boolean): boolean {
203
+ let stateChanged = false;
204
+
205
+ if (hidden) {
206
+ if (node.hasAttribute(CONDITIONAL_HIDDEN_ATTR)
207
+ || node.hasAttribute(PAGE_HIDDEN_ATTR)
208
+ || node.classList.contains(CONDITIONAL_HIDDEN_CLASS)
209
+ || node.classList.contains(PAGE_HIDDEN_CLASS)) {
210
+ clearHideState(node);
211
+ stateChanged = true;
212
+ }
213
+
214
+ if (!node.hasAttribute(CP_MUTED_ATTR)) {
215
+ node.setAttribute(CP_MUTED_ATTR, 'true');
216
+ stateChanged = true;
217
+ }
218
+
219
+ if (!node.classList.contains(CP_MUTED_CLASS)) {
220
+ node.classList.add(CP_MUTED_CLASS);
221
+ stateChanged = true;
222
+ }
223
+ } else {
224
+ if (node.hasAttribute(CP_MUTED_ATTR)
225
+ || node.classList.contains(CP_MUTED_CLASS)
226
+ || node.classList.contains(CP_MUTED_EXPANDED_CLASS)) {
227
+ clearCpMutedState(node);
228
+ stateChanged = true;
229
+ }
230
+
231
+ if (node.hasAttribute(CONDITIONAL_HIDDEN_ATTR)
232
+ || node.hasAttribute(PAGE_HIDDEN_ATTR)
233
+ || node.classList.contains(CONDITIONAL_HIDDEN_CLASS)
234
+ || node.classList.contains(PAGE_HIDDEN_CLASS)) {
235
+ clearHideState(node);
236
+ stateChanged = true;
237
+ }
238
+ }
239
+
240
+ syncAncestorRows(node);
241
+
242
+ return stateChanged;
243
+ }
@@ -72,6 +72,9 @@ export const conditionsModule: FormieModuleDefinition = {
72
72
  });
73
73
  };
74
74
 
75
+ const cpDisplayMode = ctx.options?.cpDisplayMode === 'muted' ? 'muted' : 'hide';
76
+ let isApplyingConditions = false;
77
+
75
78
  const runEvaluationPass = (): boolean => {
76
79
  let hasStateChanges = false;
77
80
 
@@ -80,7 +83,16 @@ export const conditionsModule: FormieModuleDefinition = {
80
83
  return queryConditionInputs(scopeRoot, entry.node, condition);
81
84
  });
82
85
 
83
- const stateChanged = applyConditionVisibility(entry.node, result.shouldHide, entry.settings.clearOnHide);
86
+ const displayMode = entry.node.hasAttribute('data-formie-page')
87
+ ? 'hide'
88
+ : cpDisplayMode;
89
+
90
+ const stateChanged = applyConditionVisibility(
91
+ entry.node,
92
+ result.shouldHide,
93
+ entry.settings.clearOnHide,
94
+ { displayMode },
95
+ );
84
96
  hasStateChanges = hasStateChanges || stateChanged;
85
97
  debug.log('Condition evaluated.', {
86
98
  shouldHide: result.shouldHide,
@@ -100,26 +112,45 @@ export const conditionsModule: FormieModuleDefinition = {
100
112
  };
101
113
 
102
114
  const evaluateAll = (): void => {
103
- for (let pass = 0; pass < MAX_EVALUATION_PASSES; pass += 1) {
104
- if (!runEvaluationPass()) {
105
- break;
106
- }
115
+ if (isApplyingConditions) {
116
+ return;
117
+ }
118
+
119
+ isApplyingConditions = true;
107
120
 
108
- if (pass === MAX_EVALUATION_PASSES - 1) {
109
- debug.warn('Reached max evaluation passes.', { maxPasses: MAX_EVALUATION_PASSES });
121
+ try {
122
+ for (let pass = 0; pass < MAX_EVALUATION_PASSES; pass += 1) {
123
+ if (!runEvaluationPass()) {
124
+ break;
125
+ }
126
+
127
+ if (pass === MAX_EVALUATION_PASSES - 1) {
128
+ debug.warn('Reached max evaluation passes.', { maxPasses: MAX_EVALUATION_PASSES });
129
+ }
110
130
  }
131
+ } finally {
132
+ isApplyingConditions = false;
111
133
  }
112
134
  };
113
135
 
114
136
  const scheduleEvaluateAll = (): void => {
137
+ if (isApplyingConditions) {
138
+ return;
139
+ }
140
+
115
141
  if (evaluationQueued) {
116
142
  return;
117
143
  }
118
144
 
119
145
  evaluationQueued = true;
120
146
 
121
- queueMicrotask(() => {
147
+ requestAnimationFrame(() => {
122
148
  evaluationQueued = false;
149
+
150
+ if (isApplyingConditions) {
151
+ return;
152
+ }
153
+
123
154
  evaluateAll();
124
155
  });
125
156
  };
@@ -168,19 +199,32 @@ export const conditionsModule: FormieModuleDefinition = {
168
199
  };
169
200
 
170
201
  const scheduleRebuild = (): void => {
202
+ if (isApplyingConditions) {
203
+ return;
204
+ }
205
+
171
206
  if (rebuildQueued) {
172
207
  return;
173
208
  }
174
209
 
175
210
  rebuildQueued = true;
176
211
 
177
- queueMicrotask(() => {
212
+ requestAnimationFrame(() => {
178
213
  rebuildQueued = false;
214
+
215
+ if (isApplyingConditions) {
216
+ return;
217
+ }
218
+
179
219
  rebuild();
180
220
  });
181
221
  };
182
222
 
183
223
  const observer = new MutationObserver((mutations) => {
224
+ if (isApplyingConditions) {
225
+ return;
226
+ }
227
+
184
228
  const shouldRebuild = mutations.some((mutation) => {
185
229
  return mutation.type === 'childList' && (mutation.addedNodes.length > 0 || mutation.removedNodes.length > 0);
186
230
  });
@@ -200,8 +244,6 @@ export const conditionsModule: FormieModuleDefinition = {
200
244
  subtree: true,
201
245
  attributes: true,
202
246
  attributeFilter: [
203
- 'class',
204
- 'style',
205
247
  'hidden',
206
248
  'aria-hidden',
207
249
  'data-formie-conditionally-hidden',