@verbb/formie-browser 1.0.6 → 1.0.7

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 (74) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/chunks/{address-finder-yXU5yMjG.js → address-finder-k7_BXaRe.js} +1 -1
  3. package/dist/chunks/{api-DMK8NSUI.js → api-BUb6P-xu.js} +57 -51
  4. package/dist/chunks/{api-CmwLRq_n.js → api-DztsCJ4r.js} +178 -170
  5. package/dist/chunks/{bpoint-DSjqRv63.js → bpoint-2qDxlKD9.js} +1 -1
  6. package/dist/chunks/{captcha-eu-CWJb64_j.js → captcha-eu-CGm8Lbrj.js} +2 -2
  7. package/dist/chunks/{conditions-DjZOtHfS.js → conditions-B6_nzpeE.js} +95 -83
  8. package/dist/chunks/{eway-D3ctTbEk.js → eway-CImXrB4g.js} +2 -2
  9. package/dist/chunks/{friendly-captcha-v1-ByXzENYZ.js → friendly-captcha-v1-C_2reOXr.js} +1 -1
  10. package/dist/chunks/{friendly-captcha-v2-BPdlmhQu.js → friendly-captcha-v2-CLSAbkqx.js} +1 -1
  11. package/dist/chunks/{go-cardless-BwASSYSK.js → go-cardless-Bz7HHtH0.js} +1 -1
  12. package/dist/chunks/{google-address-OhKilPWE.js → google-address-BH3Zhi06.js} +1 -1
  13. package/dist/chunks/{hcaptcha-CdCd9oEi.js → hcaptcha-CGLAmgjO.js} +2 -2
  14. package/dist/chunks/{loqate-Cp2zvwpE.js → loqate-CJPzBmSm.js} +1 -1
  15. package/dist/chunks/{mollie-COG-ko2D.js → mollie-BtnB3KGh.js} +1 -1
  16. package/dist/chunks/{moneris-CMH8PlRc.js → moneris-Bd4vUk8b.js} +1 -1
  17. package/dist/chunks/{opayo-D2jsR5vh.js → opayo-B-eRIXo-.js} +4 -4
  18. package/dist/chunks/{paddle-DxF88RfC.js → paddle-BUFeEU4d.js} +2 -2
  19. package/dist/chunks/{paypal-b5pnwrA2.js → paypal-8Euw7Hrn.js} +2 -2
  20. package/dist/chunks/{payway-BJYu9DIR.js → payway-dV0SzJxy.js} +2 -2
  21. package/dist/chunks/{recaptcha-enterprise-BSwi8IVX.js → recaptcha-enterprise-XPId5-bS.js} +19 -20
  22. package/dist/chunks/{recaptcha-shared-B4zAescW.js → recaptcha-shared-CLYJvojk.js} +15 -3
  23. package/dist/chunks/{recaptcha-v2-checkbox-CnDQmsKa.js → recaptcha-v2-checkbox-Cy-0PEPc.js} +2 -2
  24. package/dist/chunks/{recaptcha-v2-invisible-Cz5uIlp-.js → recaptcha-v2-invisible-BwRH540O.js} +2 -2
  25. package/dist/chunks/recaptcha-v3-No4Ykrhk.js +28 -0
  26. package/dist/chunks/scripts-CbQ7agX3.js +30 -0
  27. package/dist/chunks/{snaptcha-vz1RnZ15.js → snaptcha-DKx98oon.js} +1 -1
  28. package/dist/chunks/{square-BP8RWAKB.js → square-reyJukb7.js} +2 -2
  29. package/dist/chunks/{stripe-MihN63uC.js → stripe-BC-2PBvY.js} +2 -2
  30. package/dist/chunks/{turnstile-D_Pi1CKM.js → turnstile-DJakPzQD.js} +3 -3
  31. package/dist/index.js +624 -574
  32. package/dist/js/core/create-formie-client.d.ts.map +1 -1
  33. package/dist/js/core/error-aria-live.d.ts +6 -0
  34. package/dist/js/core/error-aria-live.d.ts.map +1 -0
  35. package/dist/js/core/submit-result-state.d.ts.map +1 -1
  36. package/dist/js/core/submit-result-ui.d.ts.map +1 -1
  37. package/dist/js/modules/captchas/factories.d.ts.map +1 -1
  38. package/dist/js/modules/captchas/host.d.ts +1 -0
  39. package/dist/js/modules/captchas/host.d.ts.map +1 -1
  40. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -1
  41. package/dist/js/modules/captchas/recaptcha-shared.d.ts +1 -0
  42. package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -1
  43. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -1
  44. package/dist/js/modules/captchas/turnstile.d.ts.map +1 -1
  45. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -1
  46. package/dist/js/utils/form-started-at.d.ts +2 -0
  47. package/dist/js/utils/form-started-at.d.ts.map +1 -0
  48. package/dist/js/utils/scripts.d.ts.map +1 -1
  49. package/dist/js/utils/unload-warning.d.ts.map +1 -1
  50. package/dist/js/validation/enter-key-guard.d.ts +2 -0
  51. package/dist/js/validation/enter-key-guard.d.ts.map +1 -0
  52. package/dist/js/validation/types.d.ts +1 -0
  53. package/dist/js/validation/types.d.ts.map +1 -1
  54. package/dist/js/validation/validator.d.ts.map +1 -1
  55. package/package.json +2 -2
  56. package/src/js/core/create-formie-client.ts +7 -0
  57. package/src/js/core/error-aria-live.ts +45 -0
  58. package/src/js/core/submit-result-state.ts +4 -0
  59. package/src/js/core/submit-result-ui.ts +8 -4
  60. package/src/js/modules/captchas/factories.ts +4 -0
  61. package/src/js/modules/captchas/host.ts +14 -2
  62. package/src/js/modules/captchas/recaptcha-enterprise.ts +14 -11
  63. package/src/js/modules/captchas/recaptcha-shared.ts +14 -0
  64. package/src/js/modules/captchas/recaptcha-v3.ts +7 -4
  65. package/src/js/modules/captchas/turnstile.ts +9 -3
  66. package/src/js/modules/fields/conditions/effects.ts +42 -0
  67. package/src/js/utils/form-started-at.ts +25 -0
  68. package/src/js/utils/scripts.ts +16 -0
  69. package/src/js/utils/unload-warning.ts +1 -0
  70. package/src/js/validation/enter-key-guard.ts +63 -0
  71. package/src/js/validation/types.ts +1 -0
  72. package/src/js/validation/validator.ts +14 -5
  73. package/dist/chunks/recaptcha-v3-BtbbP111.js +0 -27
  74. package/dist/chunks/scripts-6CYSUGKQ.js +0 -24
@@ -1 +1 @@
1
- {"version":3,"file":"create-formie-client.d.ts","sourceRoot":"","sources":["../../../src/js/core/create-formie-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAm1B3B,wBAAgB,kBAAkB,IAAI,YAAY,CAwrBjD"}
1
+ {"version":3,"file":"create-formie-client.d.ts","sourceRoot":"","sources":["../../../src/js/core/create-formie-client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACR,YAAY,EAGf,MAAM,mBAAmB,CAAC;AAs1B3B,wBAAgB,kBAAkB,IAAI,YAAY,CA4rBjD"}
@@ -0,0 +1,6 @@
1
+ export type ErrorAriaLivePreference = 'polite' | 'assertive' | 'off';
2
+ export declare function getErrorAriaLivePreference(form: HTMLFormElement): ErrorAriaLivePreference;
3
+ export declare function resolveValidationErrorAriaLive(preference: ErrorAriaLivePreference, submitted: boolean): 'polite' | 'assertive' | null;
4
+ export declare function resolveSubmitErrorAriaLive(preference: ErrorAriaLivePreference): 'polite' | 'assertive' | null;
5
+ export declare function applyErrorAriaLive(element: HTMLElement, ariaLive: 'polite' | 'assertive' | null): void;
6
+ //# sourceMappingURL=error-aria-live.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-aria-live.d.ts","sourceRoot":"","sources":["../../../src/js/core/error-aria-live.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;AAErE,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,eAAe,GAAG,uBAAuB,CAQzF;AAED,wBAAgB,8BAA8B,CAC1C,UAAU,EAAE,uBAAuB,EACnC,SAAS,EAAE,OAAO,GACnB,QAAQ,GAAG,WAAW,GAAG,IAAI,CAU/B;AAED,wBAAgB,0BAA0B,CAAC,UAAU,EAAE,uBAAuB,GAAG,QAAQ,GAAG,WAAW,GAAG,IAAI,CAM7G;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI,GAAG,IAAI,CAStG"}
@@ -1 +1 @@
1
- {"version":3,"file":"submit-result-state.d.ts","sourceRoot":"","sources":["../../../src/js/core/submit-result-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4H1D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAqB/E;AA4GD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CA0B5F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA0B9D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAwD9E;AAkKD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CA+FhH"}
1
+ {"version":3,"file":"submit-result-state.d.ts","sourceRoot":"","sources":["../../../src/js/core/submit-result-state.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA6H1D,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,OAAO,GAAG,IAAI,CAqB/E;AA4GD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,SAAS,CAAC,EAAE,WAAW,GAAG,IAAI,GAAG,IAAI,CA0B5F;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA0B9D;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAwD9E;AAkKD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,UAAU,GAAG,IAAI,CAkGhH"}
@@ -1 +1 @@
1
- {"version":3,"file":"submit-result-ui.d.ts","sourceRoot":"","sources":["../../../src/js/core/submit-result-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA4L1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAqC5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAmB3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA6B5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAI5D;AAaD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAmDpG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAclF;AAgBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmC9E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAyBzF"}
1
+ {"version":3,"file":"submit-result-ui.d.ts","sourceRoot":"","sources":["../../../src/js/core/submit-result-ui.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AA+L1D,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAqC5D;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAmB3D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CA6B5D;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAI5D;AAaD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,CAoDpG;AAED,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAclF;AAgBD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAmC9E;AAED,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAyBzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/factories.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"factories.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/factories.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@ type Cleanup = () => void;
3
3
  type ObserveVisiblePlaceholdersResult = {
4
4
  cleanup: Cleanup;
5
5
  reconcile: () => void;
6
+ reconcileImmediate: () => void;
6
7
  getVisible: () => HTMLElement[];
7
8
  };
8
9
  export type CaptchaRefreshEntry = {
@@ -1 +1 @@
1
- {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/host.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"host.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/host.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"recaptcha-enterprise.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-enterprise.ts"],"names":[],"mappings":"AAuBA,eAAO,MAAM,yBAAyB,2CAkHpC,CAAC"}
1
+ {"version":3,"file":"recaptcha-enterprise.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-enterprise.ts"],"names":[],"mappings":"AAwBA,eAAO,MAAM,yBAAyB,2CAoHpC,CAAC"}
@@ -23,4 +23,5 @@ export type RecaptchaProviderOptions = {
23
23
  enterpriseType?: string | null;
24
24
  };
25
25
  export declare function loadRecaptchaGlobal(options: RecaptchaProviderOptions, enterprise?: boolean, renderValue?: string): Promise<RecaptchaGlobal>;
26
+ export declare function whenRecaptchaReady(api: RecaptchaGlobal, callback: () => void | Promise<void>): Promise<void>;
26
27
  //# sourceMappingURL=recaptcha-shared.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"recaptcha-shared.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-shared.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtF,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5G,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACrD,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE;QACT,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;QACtF,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC5G,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;QACrD,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,wBAAwB,EACjC,UAAU,UAAQ,EAClB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CA+B1B"}
1
+ {"version":3,"file":"recaptcha-shared.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-shared.ts"],"names":[],"mappings":"AAOA,MAAM,MAAM,eAAe,GAAG;IAC1B,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;IACtF,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAC5G,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;IACrD,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;IAC5C,UAAU,CAAC,EAAE;QACT,KAAK,EAAE,CAAC,QAAQ,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;QACtC,MAAM,EAAE,CAAC,SAAS,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,MAAM,GAAG,MAAM,CAAC;QACtF,OAAO,EAAE,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;QAC5G,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,MAAM,CAAC;QACrD,KAAK,EAAE,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,KAAK,IAAI,CAAC;KAC/C,CAAC;CACL,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG;IACnC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAClC,CAAC;AAEF,wBAAsB,mBAAmB,CACrC,OAAO,EAAE,wBAAwB,EACjC,UAAU,UAAQ,EAClB,WAAW,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,eAAe,CAAC,CA+B1B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAY5G"}
@@ -1 +1 @@
1
- {"version":3,"file":"recaptcha-v3.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-v3.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,iBAAiB,2CAgD5B,CAAC"}
1
+ {"version":3,"file":"recaptcha-v3.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/recaptcha-v3.ts"],"names":[],"mappings":"AAcA,eAAO,MAAM,iBAAiB,2CAkD5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"turnstile.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/turnstile.ts"],"names":[],"mappings":"AAmDA,eAAO,MAAM,eAAe,2CA+E1B,CAAC"}
1
+ {"version":3,"file":"turnstile.d.ts","sourceRoot":"","sources":["../../../../src/js/modules/captchas/turnstile.ts"],"names":[],"mappings":"AAoDA,eAAO,MAAM,eAAe,2CAoF1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../../src/js/modules/fields/conditions/effects.ts"],"names":[],"mappings":"AA0KA,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO,GACjD,OAAO,CAwBT"}
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../../../../../src/js/modules/fields/conditions/effects.ts"],"names":[],"mappings":"AAoNA,wBAAgB,wBAAwB,CACpC,IAAI,EAAE,OAAO,EACb,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,OAAO,EACpB,OAAO,GAAE;IAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;CAAO,GACjD,OAAO,CAwBT"}
@@ -0,0 +1,2 @@
1
+ export declare function ensureFormStartedAt(form: HTMLFormElement): void;
2
+ //# sourceMappingURL=form-started-at.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-started-at.d.ts","sourceRoot":"","sources":["../../../src/js/utils/form-started-at.ts"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI,CAsB/D"}
@@ -1 +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"}
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;AAcF,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,CAmCxD;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"}
@@ -1 +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"}
1
+ {"version":3,"file":"unload-warning.d.ts","sourceRoot":"","sources":["../../../src/js/utils/unload-warning.ts"],"names":[],"mappings":"AAoFA,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,2 @@
1
+ export declare function bindEnterKeyGuard(form: HTMLFormElement): () => void;
2
+ //# sourceMappingURL=enter-key-guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enter-key-guard.d.ts","sourceRoot":"","sources":["../../../src/js/validation/enter-key-guard.ts"],"names":[],"mappings":"AA8BA,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,GAAG,MAAM,IAAI,CAgCnE"}
@@ -11,6 +11,7 @@ export type ValidationRuleValue = ValidationRule | boolean;
11
11
  export type ValidationRules = Record<string, ValidationRuleValue>;
12
12
  export type ValidationConfig = {
13
13
  live: boolean;
14
+ errorAriaLive: 'polite' | 'assertive' | 'off';
14
15
  errorMessage?: string;
15
16
  fieldContainerErrorClass: string[];
16
17
  inputErrorClass: string[];
@@ -1 +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"}
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,aAAa,EAAE,QAAQ,GAAG,WAAW,GAAG,KAAK,CAAC;IAC9C,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"}
@@ -1 +1 @@
1
- {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/js/validation/validator.ts"],"names":[],"mappings":"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"}
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.6",
3
+ "version": "1.0.7",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -70,7 +70,7 @@
70
70
  "@placekit/autocomplete-js": "^2.2.1",
71
71
  "@uppy/core": "^5.2.0",
72
72
  "@uppy/xhr-upload": "^5.2.0",
73
- "@verbb/formie-core": "1.0.6",
73
+ "@verbb/formie-core": "1.0.7",
74
74
  "expression-language": "^2.5.4",
75
75
  "flatpickr": "^4.6.13",
76
76
  "friendly-challenge": "^0.9.19",
@@ -11,6 +11,7 @@ import type { FormieModuleDefinition, FormieModuleInstance } from '#contracts/mo
11
11
  import type { FormEndpointPayload, FormModuleManifest, FormSubmitResult } from '#contracts/schema';
12
12
  import type { ThemeClassMap } from '#contracts/theme';
13
13
  import { dispatchFormieDomEvent } from '#core/dom-events';
14
+ import { getErrorAriaLivePreference } from '#core/error-aria-live';
14
15
  import { dispatchPageClientEventForSubmit } from '#core/page-client-event';
15
16
  import { syncPageTabErrors } from '#core/page-tab-errors';
16
17
  import {
@@ -27,11 +28,13 @@ import { loadModulesFromManifest } from '#modules/loader';
27
28
  import { registerThemeClassMap } from '#theme/theme-classes';
28
29
  import { runSubmitPipeline } from '#submit/pipeline';
29
30
  import { clearSubmissionOnUnload, requestGraphqlRender, requestRefreshTokens, requestRender, requestSetPage } from '#transport/forms-api';
31
+ import { ensureFormStartedAt } from '#utils/form-started-at';
30
32
  import { createDebug } from '#utils/debug';
31
33
  import { createFormUnloadWarningGuard } from '#utils/unload-warning';
32
34
  import { getValidationScope } from '#validation/scope';
33
35
  import { FormieValidator } from '#validation/validator';
34
36
  import { bindSubmitReadiness } from '#validation/submit-readiness';
37
+ import { bindEnterKeyGuard } from '#validation/enter-key-guard';
35
38
 
36
39
  type InternalInstanceState = {
37
40
  options: FormMountOptions;
@@ -989,6 +992,7 @@ export function createFormieClient(): FormieClient {
989
992
 
990
993
  const validator = form ? new FormieValidator(form, {
991
994
  live: parseBooleanDatasetValue(form.dataset.formieValidationOnFocus),
995
+ errorAriaLive: getErrorAriaLivePreference(form),
992
996
  errorMessage: form.dataset.formieErrorMessage || '',
993
997
  fieldContainerErrorClass: resolvedThemeClassMap.fieldLayoutError || [],
994
998
  inputErrorClass: resolvedThemeClassMap.fieldControlError || [],
@@ -1014,6 +1018,8 @@ export function createFormieClient(): FormieClient {
1014
1018
  }
1015
1019
 
1016
1020
  if (form) {
1021
+ ensureFormStartedAt(form);
1022
+
1017
1023
  if (renderPayload || normalizedOptions.endpoint || (target as HTMLElement).dataset.formieEndpoint) {
1018
1024
  normalizeHeadlessManagedUrls(target, form, normalizedOptions);
1019
1025
  }
@@ -1166,6 +1172,7 @@ export function createFormieClient(): FormieClient {
1166
1172
 
1167
1173
  if (validator) {
1168
1174
  unbinds.push(bindSubmitReadiness(form, validator, target));
1175
+ unbinds.push(bindEnterKeyGuard(form));
1169
1176
  }
1170
1177
 
1171
1178
  await refreshTokensIfNeeded(target, normalizedOptions, form);
@@ -0,0 +1,45 @@
1
+ export type ErrorAriaLivePreference = 'polite' | 'assertive' | 'off';
2
+
3
+ export function getErrorAriaLivePreference(form: HTMLFormElement): ErrorAriaLivePreference {
4
+ const value = (form.dataset.formieErrorAriaLive || 'polite').trim().toLowerCase();
5
+
6
+ if (value === 'assertive' || value === 'off') {
7
+ return value;
8
+ }
9
+
10
+ return 'polite';
11
+ }
12
+
13
+ export function resolveValidationErrorAriaLive(
14
+ preference: ErrorAriaLivePreference,
15
+ submitted: boolean,
16
+ ): 'polite' | 'assertive' | null {
17
+ if (preference === 'off') {
18
+ return null;
19
+ }
20
+
21
+ if (!submitted) {
22
+ return 'polite';
23
+ }
24
+
25
+ return preference;
26
+ }
27
+
28
+ export function resolveSubmitErrorAriaLive(preference: ErrorAriaLivePreference): 'polite' | 'assertive' | null {
29
+ if (preference === 'off') {
30
+ return null;
31
+ }
32
+
33
+ return preference;
34
+ }
35
+
36
+ export function applyErrorAriaLive(element: HTMLElement, ariaLive: 'polite' | 'assertive' | null): void {
37
+ if (ariaLive) {
38
+ element.setAttribute('aria-live', ariaLive);
39
+ element.setAttribute('aria-atomic', 'true');
40
+ return;
41
+ }
42
+
43
+ element.removeAttribute('aria-live');
44
+ element.removeAttribute('aria-atomic');
45
+ }
@@ -1,5 +1,6 @@
1
1
  import type { FormAction } from '#contracts/common';
2
2
  import type { FormSubmitResult } from '#contracts/schema';
3
+ import { dispatchFormieDomEvent } from '#core/dom-events';
3
4
  import { dispatchPageClientEventForSubmit } from '#core/page-client-event';
4
5
  import { syncPageTabErrors } from '#core/page-tab-errors';
5
6
  import { addThemeClasses, removeThemeClasses, toggleThemeClasses } from '#theme/theme-classes';
@@ -576,6 +577,9 @@ export function applySubmitResultState(form: HTMLFormElement, result: FormSubmit
576
577
  const validator = formWithValidationApi.formieValidation;
577
578
  validator?.resetLiveState();
578
579
  applyPageState(form, result.nextPage.id);
580
+ dispatchFormieDomEvent(form, 'formie:page:navigate:after', {
581
+ pageId: result.nextPage.id,
582
+ });
579
583
  debug.log('Advanced to next page.', {
580
584
  nextPageId: result.nextPage.id,
581
585
  });
@@ -1,4 +1,5 @@
1
1
  import type { FormSubmitResult } from '#contracts/schema';
2
+ import { applyErrorAriaLive, getErrorAriaLivePreference, resolveSubmitErrorAriaLive } from '#core/error-aria-live';
2
3
  import { ensureFieldErrorContainer as resolveFieldErrorContainer } from '#core/field-error-container';
3
4
  import { syncPageTabErrors } from '#core/page-tab-errors';
4
5
  import { focusFirstValidationError } from '#core/validation-focus';
@@ -124,8 +125,10 @@ function ensureFormErrorMessageContainer(form: HTMLFormElement, container: HTMLE
124
125
  // Form-level errors use a live region because they are often the only output
125
126
  // for submit-stage failures such as provider or transport errors.
126
127
  messageContainer.setAttribute('role', 'alert');
127
- messageContainer.setAttribute('aria-live', 'polite');
128
- messageContainer.setAttribute('aria-atomic', 'true');
128
+ applyErrorAriaLive(
129
+ messageContainer,
130
+ resolveSubmitErrorAriaLive(getErrorAriaLivePreference(form)),
131
+ );
129
132
 
130
133
  return messageContainer;
131
134
  }
@@ -295,6 +298,8 @@ function appendDescribedBy(input: HTMLElement, describedById: string): void {
295
298
  }
296
299
 
297
300
  export function renderFieldErrors(form: HTMLFormElement, fieldErrors: Record<string, string[]>): void {
301
+ const errorAriaLive = resolveSubmitErrorAriaLive(getErrorAriaLivePreference(form));
302
+
298
303
  Object.entries(fieldErrors).forEach(([handle, messages]) => {
299
304
  const fieldNode = form.querySelector(`[data-formie-field-handle="${handle}"]`);
300
305
 
@@ -307,8 +312,7 @@ export function renderFieldErrors(form: HTMLFormElement, fieldErrors: Record<str
307
312
  ? container.id
308
313
  : `${handle}-errors`;
309
314
  container.id = containerId;
310
- container.setAttribute('aria-live', 'polite');
311
- container.setAttribute('aria-atomic', 'true');
315
+ applyErrorAriaLive(container, errorAriaLive);
312
316
  addThemeClasses(fieldNode as HTMLElement, form, 'fieldLayoutError');
313
317
  (fieldNode as HTMLElement).setAttribute('data-formie-field-has-error', 'true');
314
318
 
@@ -436,6 +436,10 @@ export function createManagedCaptchaModule<
436
436
  return;
437
437
  }
438
438
 
439
+ // Reconcile immediately so captcha placeholders on the newly
440
+ // visible page are mounted before screen-stage policy runs.
441
+ visibility.reconcileImmediate();
442
+
439
443
  // By the time provider `screen()` runs, the widget is
440
444
  // guaranteed to be mounted and the active placeholder is
441
445
  // resolved. That lets provider code focus on challenge
@@ -17,6 +17,7 @@ type Cleanup = () => void;
17
17
  type ObserveVisiblePlaceholdersResult = {
18
18
  cleanup: Cleanup;
19
19
  reconcile: () => void;
20
+ reconcileImmediate: () => void;
20
21
  getVisible: () => HTMLElement[];
21
22
  };
22
23
 
@@ -115,7 +116,12 @@ const CAPTCHA_VISIBILITY_EVENTS = [
115
116
  'formie:page:navigate',
116
117
  'formie:page:navigate:after',
117
118
  'formie:submit:result',
118
- ];
119
+ ] as const;
120
+
121
+ const CAPTCHA_IMMEDIATE_RECONCILE_EVENTS = new Set<string>([
122
+ 'formie:page:navigate',
123
+ 'formie:page:navigate:after',
124
+ ]);
119
125
 
120
126
  function bindDomEvent(target: EventTarget, eventName: string, callback: EventListener): Cleanup {
121
127
  target.addEventListener(eventName, callback);
@@ -152,7 +158,7 @@ function isElementVisible(target: Element): target is HTMLElement {
152
158
 
153
159
  const style = window.getComputedStyle(target);
154
160
 
155
- return style.display !== 'none' && style.visibility !== 'hidden';
161
+ return style.display !== 'none' && style.visibility !== 'hidden' && target.getClientRects().length > 0;
156
162
  }
157
163
 
158
164
  function getPrimaryPlaceholder(root: Element, selector: string): HTMLElement | null {
@@ -271,6 +277,11 @@ function observeVisiblePlaceholders(
271
277
  }),
272
278
  ...CAPTCHA_VISIBILITY_EVENTS.map((eventName) => {
273
279
  return bindDomEvent(root, eventName, () => {
280
+ if (CAPTCHA_IMMEDIATE_RECONCILE_EVENTS.has(eventName)) {
281
+ reconcileNow();
282
+ return;
283
+ }
284
+
274
285
  reconcile();
275
286
  });
276
287
  }),
@@ -292,6 +303,7 @@ function observeVisiblePlaceholders(
292
303
  visible.clear();
293
304
  },
294
305
  reconcile,
306
+ reconcileImmediate: reconcileNow,
295
307
  getVisible: () => {
296
308
  return queryCaptchaPlaceholders(root, selector).filter((placeholder) => isElementVisible(placeholder));
297
309
  },
@@ -4,6 +4,7 @@ import {
4
4
  import { CAPTCHA_EXECUTE_WAIT_FOR_VALUE_MS } from '#modules/captchas/constants';
5
5
  import {
6
6
  loadRecaptchaGlobal,
7
+ whenRecaptchaReady,
7
8
  type RecaptchaGlobal,
8
9
  type RecaptchaProviderOptions,
9
10
  } from '#modules/captchas/recaptcha-shared';
@@ -94,19 +95,21 @@ export const recaptchaEnterpriseModule = defineCaptchaModule<RecaptchaEnterprise
94
95
  return;
95
96
  }
96
97
 
97
- if (provider.enterpriseType === 'score' || provider.enterpriseType === 'policy') {
98
- // Score and policy-based keys execute by site key and can resolve
99
- // directly to a token. We write that token into the shared transport
100
- // layer so the backend can validate it in the usual way.
101
- const token = await enterpriseApi.execute(provider.siteKey || '', { action: provider.action || 'submit' });
98
+ await whenRecaptchaReady(api, async() => {
99
+ if (provider.enterpriseType === 'score' || provider.enterpriseType === 'policy') {
100
+ // Score and policy-based keys execute by site key and can resolve
101
+ // directly to a token. We write that token into the shared transport
102
+ // layer so the backend can validate it in the usual way.
103
+ const token = await enterpriseApi.execute(provider.siteKey || '', { action: provider.action || 'submit' });
102
104
 
103
- if (typeof token === 'string' && token.trim() !== '') {
104
- services.tokens.write(token.trim());
105
+ if (typeof token === 'string' && token.trim() !== '') {
106
+ services.tokens.write(token.trim());
107
+ }
108
+ } else {
109
+ // Fallback branch for any future Enterprise widget-like mode.
110
+ enterpriseApi.execute(widget);
105
111
  }
106
- } else {
107
- // Fallback branch for any future Enterprise widget-like mode.
108
- enterpriseApi.execute(widget);
109
- }
112
+ });
110
113
 
111
114
  const hasToken = await services.tokens.wait(CAPTCHA_EXECUTE_WAIT_FOR_VALUE_MS);
112
115
 
@@ -67,3 +67,17 @@ export async function loadRecaptchaGlobal(
67
67
  timeoutMs: CAPTCHA_PROVIDER_LOAD_TIMEOUT_MS,
68
68
  });
69
69
  }
70
+
71
+ export function whenRecaptchaReady(api: RecaptchaGlobal, callback: () => void | Promise<void>): Promise<void> {
72
+ const readyApi = api.enterprise || api;
73
+
74
+ return new Promise((resolve, reject) => {
75
+ try {
76
+ readyApi.ready(() => {
77
+ Promise.resolve(callback()).then(resolve).catch(reject);
78
+ });
79
+ } catch (error) {
80
+ reject(error);
81
+ }
82
+ });
83
+ }
@@ -4,6 +4,7 @@ import {
4
4
  import { CAPTCHA_EXECUTE_WAIT_FOR_VALUE_MS } from '#modules/captchas/constants';
5
5
  import {
6
6
  loadRecaptchaGlobal,
7
+ whenRecaptchaReady,
7
8
  type RecaptchaGlobal,
8
9
  type RecaptchaProviderOptions,
9
10
  } from '#modules/captchas/recaptcha-shared';
@@ -40,11 +41,13 @@ export const recaptchaV3Module = defineCaptchaModule<RecaptchaProviderOptions, R
40
41
 
41
42
  // v3 returns its token directly from `execute()`, unlike widget-based
42
43
  // captchas that signal completion later via callbacks.
43
- const token = await api.execute(provider.siteKey || '', { action: provider.action || 'submit' });
44
+ await whenRecaptchaReady(api, async() => {
45
+ const token = await api.execute(provider.siteKey || '', { action: provider.action || 'submit' });
44
46
 
45
- if (typeof token === 'string' && token.trim() !== '') {
46
- services.tokens.write(token.trim());
47
- }
47
+ if (typeof token === 'string' && token.trim() !== '') {
48
+ services.tokens.write(token.trim());
49
+ }
50
+ });
48
51
 
49
52
  // We still wait on the shared token layer so the module follows the
50
53
  // same transport contract as every other captcha provider.
@@ -14,6 +14,7 @@ type TurnstileGlobal = {
14
14
  render: (container: HTMLElement, options: Record<string, unknown>) => string;
15
15
  execute: (widgetId: string) => void;
16
16
  reset: (widgetId: string) => void;
17
+ remove: (widgetId: string) => void;
17
18
  };
18
19
 
19
20
  // Provider-specific options only. Generic captcha concerns are handled by the
@@ -123,9 +124,14 @@ export const turnstileModule = defineCaptchaModule<TurnstileProviderOptions, Tur
123
124
  });
124
125
  },
125
126
  unmount: ({ api, widget, services }) => {
126
- // Reset provider state whenever the widget is torn down so the DOM
127
- // transport layer and the provider widget stay in sync.
128
- api.reset(widget);
127
+ // Remove the widget before clearing placeholder DOM so Turnstile does not
128
+ // log errors about orphaned challenge iframes during remounts.
129
+ if (typeof api.remove === 'function') {
130
+ api.remove(widget);
131
+ } else {
132
+ api.reset(widget);
133
+ }
134
+
129
135
  services.tokens.clear();
130
136
  },
131
137
  });
@@ -72,7 +72,49 @@ function setVisibilityState(node: Element, hidden: boolean): boolean {
72
72
  return wasHidden !== hidden;
73
73
  }
74
74
 
75
+ const SUBMIT_CONTROL_SELECTOR = 'button[type="submit"], button[data-formie-action], input[type="submit"]';
76
+
77
+ function syncControlDisabledState(control: Element, hidden: boolean): void {
78
+ if (!(control instanceof HTMLButtonElement || control instanceof HTMLInputElement)) {
79
+ return;
80
+ }
81
+
82
+ if (hidden) {
83
+ if (!control.hasAttribute(CONDITION_DISABLED_ATTR)) {
84
+ if (control.hasAttribute('disabled')) {
85
+ control.setAttribute(PRESERVED_DISABLED_ATTR, 'true');
86
+ }
87
+
88
+ control.setAttribute(CONDITION_DISABLED_ATTR, 'true');
89
+ }
90
+
91
+ control.setAttribute('disabled', 'true');
92
+ return;
93
+ }
94
+
95
+ if (!control.hasAttribute(CONDITION_DISABLED_ATTR)) {
96
+ return;
97
+ }
98
+
99
+ if (control.hasAttribute(PRESERVED_DISABLED_ATTR)) {
100
+ control.setAttribute('disabled', 'true');
101
+ control.removeAttribute(PRESERVED_DISABLED_ATTR);
102
+ } else {
103
+ control.removeAttribute('disabled');
104
+ }
105
+
106
+ control.removeAttribute(CONDITION_DISABLED_ATTR);
107
+ }
108
+
75
109
  function syncDisabledState(node: Element, hidden: boolean): void {
110
+ if (node.matches(SUBMIT_CONTROL_SELECTOR)) {
111
+ syncControlDisabledState(node, hidden);
112
+ }
113
+
114
+ node.querySelectorAll(SUBMIT_CONTROL_SELECTOR).forEach((control) => {
115
+ syncControlDisabledState(control, hidden);
116
+ });
117
+
76
118
  node.querySelectorAll('input, textarea, select').forEach((input) => {
77
119
  if (hidden) {
78
120
  if (!input.hasAttribute(CONDITION_DISABLED_ATTR)) {
@@ -0,0 +1,25 @@
1
+ const FORM_STARTED_AT_STORAGE_PREFIX = 'formie:formStartedAt:';
2
+
3
+ export function ensureFormStartedAt(form: HTMLFormElement): void {
4
+ const startedAtInput = form.querySelector('input[name="formStartedAt"]') as HTMLInputElement | null;
5
+
6
+ if (!startedAtInput) {
7
+ return;
8
+ }
9
+
10
+ const renderIdInput = form.querySelector('input[name="renderId"]') as HTMLInputElement | null;
11
+ const renderId = renderIdInput?.value?.trim() ?? '';
12
+ const storageKey = renderId ? `${FORM_STARTED_AT_STORAGE_PREFIX}${renderId}` : null;
13
+
14
+ let startedAt = storageKey ? sessionStorage.getItem(storageKey) : null;
15
+
16
+ if (!startedAt) {
17
+ startedAt = String(Date.now());
18
+
19
+ if (storageKey) {
20
+ sessionStorage.setItem(storageKey, startedAt);
21
+ }
22
+ }
23
+
24
+ startedAtInput.value = startedAt;
25
+ }