@verbb/formie-browser 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/CHANGELOG.md +5 -0
  2. package/LICENSE.md +40 -0
  3. package/README.md +34 -0
  4. package/dist/chunks/address-finder-DfMCiW89.js +47 -0
  5. package/dist/chunks/api-CbqEMQT5.js +181 -0
  6. package/dist/chunks/api-DE7LfK-R.js +960 -0
  7. package/dist/chunks/api-DOfDzYC_.js +538 -0
  8. package/dist/chunks/async-B3DUf1GZ.js +26 -0
  9. package/dist/chunks/bpoint-Ciy3yY9Q.js +34 -0
  10. package/dist/chunks/calculations-CkYAqO_-.js +197 -0
  11. package/dist/chunks/captcha-eu-DnOWhMwr.js +43 -0
  12. package/dist/chunks/checkbox-radio-0x7Tc0br.js +197 -0
  13. package/dist/chunks/chunk-K6L4z4UQ.js +24 -0
  14. package/dist/chunks/conditions-4fXKhEJS.js +609 -0
  15. package/dist/chunks/date-picker-B6iZkjHS.js +6204 -0
  16. package/dist/chunks/debug-KnZeKYBI.js +39 -0
  17. package/dist/chunks/dist-D09GnXMW.js +2663 -0
  18. package/dist/chunks/event-names-DamGPtXR.js +51 -0
  19. package/dist/chunks/eway-DEAYcwT0.js +86 -0
  20. package/dist/chunks/field-references.keys-BpBZ_quS.js +24 -0
  21. package/dist/chunks/field-references.resolver-Ba6xhiJC.js +183 -0
  22. package/dist/chunks/file-upload-Bh63PQSE.js +430 -0
  23. package/dist/chunks/friendly-captcha-v1-CqO4WVre.js +40 -0
  24. package/dist/chunks/friendly-captcha-v2-CyykcJcM.js +47 -0
  25. package/dist/chunks/friendly-challenge-Dg8XkStd.js +1101 -0
  26. package/dist/chunks/go-cardless-CuND59rR.js +26 -0
  27. package/dist/chunks/google-address--uR8WDSm.js +208 -0
  28. package/dist/chunks/hcaptcha-CmaFUesv.js +72 -0
  29. package/dist/chunks/hidden-CYnZYple.js +36 -0
  30. package/dist/chunks/http-18nn97DZ.js +29 -0
  31. package/dist/chunks/i18n-vUh-KGiH.js +55 -0
  32. package/dist/chunks/loqate-BICNJlVK.js +97 -0
  33. package/dist/chunks/mollie-DwlsgHZ1.js +26 -0
  34. package/dist/chunks/moneris-B_IFZFTx.js +159 -0
  35. package/dist/chunks/opayo-U2x_TOII.js +192 -0
  36. package/dist/chunks/paddle-BqXFrc79.js +75 -0
  37. package/dist/chunks/paypal-Cn_DYGDb.js +121 -0
  38. package/dist/chunks/payway-Rnq796eC.js +75 -0
  39. package/dist/chunks/phone-country-B6Me4lK0.js +3317 -0
  40. package/dist/chunks/place-kit-ldUl-u9w.js +56 -0
  41. package/dist/chunks/placekit-autocomplete.esm-D-lGeaZl.js +1771 -0
  42. package/dist/chunks/recaptcha-enterprise-DPJNyv1X.js +72 -0
  43. package/dist/chunks/recaptcha-shared-DTI4qWVR.js +22 -0
  44. package/dist/chunks/recaptcha-v2-checkbox-zFjpvJ5c.js +49 -0
  45. package/dist/chunks/recaptcha-v2-invisible-CnYtkNvz.js +62 -0
  46. package/dist/chunks/recaptcha-v3-EAlWhnkX.js +33 -0
  47. package/dist/chunks/repeater-CXD1eLSn.js +151 -0
  48. package/dist/chunks/rich-text-DkmZRhGj.js +442 -0
  49. package/dist/chunks/scripts-BGD_iU_6.js +41 -0
  50. package/dist/chunks/sdk-B7u9fTlP.js +2103 -0
  51. package/dist/chunks/shared-DC6_1u8X.js +85 -0
  52. package/dist/chunks/signature-E9KyYXS1.js +765 -0
  53. package/dist/chunks/snaptcha-CCDunGeb.js +8 -0
  54. package/dist/chunks/square-BLqK51rS.js +61 -0
  55. package/dist/chunks/stripe-B8gHpZNC.js +273 -0
  56. package/dist/chunks/styles-BIh6g7V_.js +22 -0
  57. package/dist/chunks/summary-EcNE0cvg.js +191 -0
  58. package/dist/chunks/table-yxEDL6kA.js +124 -0
  59. package/dist/chunks/text-limit-D0H_Ca2c.js +179 -0
  60. package/dist/chunks/theme-classes-vSHpdCUO.js +59 -0
  61. package/dist/chunks/turnstile-DP0bdR7T.js +68 -0
  62. package/dist/chunks/utils-ByrEVYrJ.js +49584 -0
  63. package/dist/css/formie-base.css +78 -0
  64. package/dist/css/formie-theme.css +19 -0
  65. package/dist/css/formie.css +2 -0
  66. package/dist/css/theme/_buttons.css +249 -0
  67. package/dist/css/theme/_loading.css +37 -0
  68. package/dist/css/theme/_messages.css +39 -0
  69. package/dist/css/theme/_progress.css +62 -0
  70. package/dist/css/theme/_tokens.css +361 -0
  71. package/dist/css/theme/_typography.css +70 -0
  72. package/dist/css/theme/fields/_address.css +17 -0
  73. package/dist/css/theme/fields/_check-radio.css +108 -0
  74. package/dist/css/theme/fields/_file.css +58 -0
  75. package/dist/css/theme/fields/_group.css +13 -0
  76. package/dist/css/theme/fields/_input.css +48 -0
  77. package/dist/css/theme/fields/_nested.css +19 -0
  78. package/dist/css/theme/fields/_repeater.css +69 -0
  79. package/dist/css/theme/fields/_rich-text.css +201 -0
  80. package/dist/css/theme/fields/_select.css +37 -0
  81. package/dist/css/theme/fields/_signature.css +39 -0
  82. package/dist/css/theme/fields/_summary.css +53 -0
  83. package/dist/css/theme/fields/_table.css +121 -0
  84. package/dist/css/theme/fields/_text-limit.css +10 -0
  85. package/dist/css/theme/forms/_field.css +62 -0
  86. package/dist/css/theme/forms/_form.css +166 -0
  87. package/dist/css/theme/integrations/_payment-modal.css +32 -0
  88. package/dist/css/theme/integrations/_paypal.css +10 -0
  89. package/dist/css/theme/integrations/_payway.css +10 -0
  90. package/dist/css/theme/integrations/_stripe.css +24 -0
  91. package/dist/css/theme/utilities/_accessibility.css +13 -0
  92. package/dist/css/theme-base/_controls.css +41 -0
  93. package/dist/css/theme-base/_primitives.css +34 -0
  94. package/dist/index.d.ts +30 -0
  95. package/dist/index.d.ts.map +1 -0
  96. package/dist/index.js +3206 -0
  97. package/dist/js/compatibility/dom-adapter.d.ts +12 -0
  98. package/dist/js/compatibility/dom-adapter.d.ts.map +1 -0
  99. package/dist/js/compatibility/event-map.d.ts +25 -0
  100. package/dist/js/compatibility/event-map.d.ts.map +1 -0
  101. package/dist/js/compatibility/validator-adapter.d.ts +17 -0
  102. package/dist/js/compatibility/validator-adapter.d.ts.map +1 -0
  103. package/dist/js/contracts/client.d.ts +40 -0
  104. package/dist/js/contracts/client.d.ts.map +1 -0
  105. package/dist/js/contracts/common.d.ts +5 -0
  106. package/dist/js/contracts/common.d.ts.map +1 -0
  107. package/dist/js/contracts/modules.d.ts +47 -0
  108. package/dist/js/contracts/modules.d.ts.map +1 -0
  109. package/dist/js/contracts/schema.d.ts +79 -0
  110. package/dist/js/contracts/schema.d.ts.map +1 -0
  111. package/dist/js/contracts/theme.d.ts +2 -0
  112. package/dist/js/contracts/theme.d.ts.map +1 -0
  113. package/dist/js/core/create-formie-client.d.ts +3 -0
  114. package/dist/js/core/create-formie-client.d.ts.map +1 -0
  115. package/dist/js/core/dom-events.d.ts +2 -0
  116. package/dist/js/core/dom-events.d.ts.map +1 -0
  117. package/dist/js/core/formie.d.ts +27 -0
  118. package/dist/js/core/formie.d.ts.map +1 -0
  119. package/dist/js/core/hydrate-modules.d.ts +22 -0
  120. package/dist/js/core/hydrate-modules.d.ts.map +1 -0
  121. package/dist/js/core/page-client-event.d.ts +9 -0
  122. package/dist/js/core/page-client-event.d.ts.map +1 -0
  123. package/dist/js/core/page-tab-errors.d.ts +2 -0
  124. package/dist/js/core/page-tab-errors.d.ts.map +1 -0
  125. package/dist/js/core/submit-flow.d.ts +21 -0
  126. package/dist/js/core/submit-flow.d.ts.map +1 -0
  127. package/dist/js/core/submit-result-state.d.ts +8 -0
  128. package/dist/js/core/submit-result-state.d.ts.map +1 -0
  129. package/dist/js/core/submit-result-ui.d.ts +10 -0
  130. package/dist/js/core/submit-result-ui.d.ts.map +1 -0
  131. package/dist/js/events/event-bus.d.ts +21 -0
  132. package/dist/js/events/event-bus.d.ts.map +1 -0
  133. package/dist/js/modules/address/address-finder.d.ts +2 -0
  134. package/dist/js/modules/address/address-finder.d.ts.map +1 -0
  135. package/dist/js/modules/address/api.d.ts +8 -0
  136. package/dist/js/modules/address/api.d.ts.map +1 -0
  137. package/dist/js/modules/address/constants.d.ts +15 -0
  138. package/dist/js/modules/address/constants.d.ts.map +1 -0
  139. package/dist/js/modules/address/factories.d.ts +35 -0
  140. package/dist/js/modules/address/factories.d.ts.map +1 -0
  141. package/dist/js/modules/address/google-address.d.ts +2 -0
  142. package/dist/js/modules/address/google-address.d.ts.map +1 -0
  143. package/dist/js/modules/address/host.d.ts +30 -0
  144. package/dist/js/modules/address/host.d.ts.map +1 -0
  145. package/dist/js/modules/address/index.d.ts +3 -0
  146. package/dist/js/modules/address/index.d.ts.map +1 -0
  147. package/dist/js/modules/address/loqate.d.ts +2 -0
  148. package/dist/js/modules/address/loqate.d.ts.map +1 -0
  149. package/dist/js/modules/address/place-kit.d.ts +2 -0
  150. package/dist/js/modules/address/place-kit.d.ts.map +1 -0
  151. package/dist/js/modules/captchas/api.d.ts +9 -0
  152. package/dist/js/modules/captchas/api.d.ts.map +1 -0
  153. package/dist/js/modules/captchas/captcha-eu.d.ts +2 -0
  154. package/dist/js/modules/captchas/captcha-eu.d.ts.map +1 -0
  155. package/dist/js/modules/captchas/constants.d.ts +5 -0
  156. package/dist/js/modules/captchas/constants.d.ts.map +1 -0
  157. package/dist/js/modules/captchas/factories.d.ts +63 -0
  158. package/dist/js/modules/captchas/factories.d.ts.map +1 -0
  159. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts +2 -0
  160. package/dist/js/modules/captchas/friendly-captcha-v1.d.ts.map +1 -0
  161. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts +2 -0
  162. package/dist/js/modules/captchas/friendly-captcha-v2.d.ts.map +1 -0
  163. package/dist/js/modules/captchas/hcaptcha.d.ts +2 -0
  164. package/dist/js/modules/captchas/hcaptcha.d.ts.map +1 -0
  165. package/dist/js/modules/captchas/host.d.ts +78 -0
  166. package/dist/js/modules/captchas/host.d.ts.map +1 -0
  167. package/dist/js/modules/captchas/index.d.ts +3 -0
  168. package/dist/js/modules/captchas/index.d.ts.map +1 -0
  169. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts +2 -0
  170. package/dist/js/modules/captchas/recaptcha-enterprise.d.ts.map +1 -0
  171. package/dist/js/modules/captchas/recaptcha-shared.d.ts +26 -0
  172. package/dist/js/modules/captchas/recaptcha-shared.d.ts.map +1 -0
  173. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts +2 -0
  174. package/dist/js/modules/captchas/recaptcha-v2-checkbox.d.ts.map +1 -0
  175. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts +2 -0
  176. package/dist/js/modules/captchas/recaptcha-v2-invisible.d.ts.map +1 -0
  177. package/dist/js/modules/captchas/recaptcha-v3.d.ts +2 -0
  178. package/dist/js/modules/captchas/recaptcha-v3.d.ts.map +1 -0
  179. package/dist/js/modules/captchas/snaptcha.d.ts +2 -0
  180. package/dist/js/modules/captchas/snaptcha.d.ts.map +1 -0
  181. package/dist/js/modules/captchas/turnstile.d.ts +2 -0
  182. package/dist/js/modules/captchas/turnstile.d.ts.map +1 -0
  183. package/dist/js/modules/captchas/utils.d.ts +13 -0
  184. package/dist/js/modules/captchas/utils.d.ts.map +1 -0
  185. package/dist/js/modules/fields/calculations.d.ts +3 -0
  186. package/dist/js/modules/fields/calculations.d.ts.map +1 -0
  187. package/dist/js/modules/fields/checkbox-radio.d.ts +3 -0
  188. package/dist/js/modules/fields/checkbox-radio.d.ts.map +1 -0
  189. package/dist/js/modules/fields/conditions/config.d.ts +5 -0
  190. package/dist/js/modules/fields/conditions/config.d.ts.map +1 -0
  191. package/dist/js/modules/fields/conditions/effects.d.ts +2 -0
  192. package/dist/js/modules/fields/conditions/effects.d.ts.map +1 -0
  193. package/dist/js/modules/fields/conditions/evaluator.d.ts +6 -0
  194. package/dist/js/modules/fields/conditions/evaluator.d.ts.map +1 -0
  195. package/dist/js/modules/fields/conditions/references.d.ts +5 -0
  196. package/dist/js/modules/fields/conditions/references.d.ts.map +1 -0
  197. package/dist/js/modules/fields/conditions/transforms.d.ts +3 -0
  198. package/dist/js/modules/fields/conditions/transforms.d.ts.map +1 -0
  199. package/dist/js/modules/fields/conditions/types.d.ts +30 -0
  200. package/dist/js/modules/fields/conditions/types.d.ts.map +1 -0
  201. package/dist/js/modules/fields/conditions/values.d.ts +5 -0
  202. package/dist/js/modules/fields/conditions/values.d.ts.map +1 -0
  203. package/dist/js/modules/fields/conditions.d.ts +3 -0
  204. package/dist/js/modules/fields/conditions.d.ts.map +1 -0
  205. package/dist/js/modules/fields/date-picker.d.ts +3 -0
  206. package/dist/js/modules/fields/date-picker.d.ts.map +1 -0
  207. package/dist/js/modules/fields/file-upload.d.ts +3 -0
  208. package/dist/js/modules/fields/file-upload.d.ts.map +1 -0
  209. package/dist/js/modules/fields/hidden.d.ts +3 -0
  210. package/dist/js/modules/fields/hidden.d.ts.map +1 -0
  211. package/dist/js/modules/fields/index.d.ts +3 -0
  212. package/dist/js/modules/fields/index.d.ts.map +1 -0
  213. package/dist/js/modules/fields/phone-country.d.ts +3 -0
  214. package/dist/js/modules/fields/phone-country.d.ts.map +1 -0
  215. package/dist/js/modules/fields/repeater.d.ts +3 -0
  216. package/dist/js/modules/fields/repeater.d.ts.map +1 -0
  217. package/dist/js/modules/fields/rich-text.d.ts +3 -0
  218. package/dist/js/modules/fields/rich-text.d.ts.map +1 -0
  219. package/dist/js/modules/fields/shared.d.ts +20 -0
  220. package/dist/js/modules/fields/shared.d.ts.map +1 -0
  221. package/dist/js/modules/fields/signature.d.ts +3 -0
  222. package/dist/js/modules/fields/signature.d.ts.map +1 -0
  223. package/dist/js/modules/fields/summary.d.ts +3 -0
  224. package/dist/js/modules/fields/summary.d.ts.map +1 -0
  225. package/dist/js/modules/fields/table.d.ts +3 -0
  226. package/dist/js/modules/fields/table.d.ts.map +1 -0
  227. package/dist/js/modules/fields/text-limit.d.ts +3 -0
  228. package/dist/js/modules/fields/text-limit.d.ts.map +1 -0
  229. package/dist/js/modules/loader.d.ts +11 -0
  230. package/dist/js/modules/loader.d.ts.map +1 -0
  231. package/dist/js/modules/payments/api.d.ts +8 -0
  232. package/dist/js/modules/payments/api.d.ts.map +1 -0
  233. package/dist/js/modules/payments/bpoint.d.ts +2 -0
  234. package/dist/js/modules/payments/bpoint.d.ts.map +1 -0
  235. package/dist/js/modules/payments/constants.d.ts +5 -0
  236. package/dist/js/modules/payments/constants.d.ts.map +1 -0
  237. package/dist/js/modules/payments/eway.d.ts +9 -0
  238. package/dist/js/modules/payments/eway.d.ts.map +1 -0
  239. package/dist/js/modules/payments/factories.d.ts +54 -0
  240. package/dist/js/modules/payments/factories.d.ts.map +1 -0
  241. package/dist/js/modules/payments/go-cardless.d.ts +2 -0
  242. package/dist/js/modules/payments/go-cardless.d.ts.map +1 -0
  243. package/dist/js/modules/payments/host.d.ts +70 -0
  244. package/dist/js/modules/payments/host.d.ts.map +1 -0
  245. package/dist/js/modules/payments/index.d.ts +3 -0
  246. package/dist/js/modules/payments/index.d.ts.map +1 -0
  247. package/dist/js/modules/payments/mollie.d.ts +2 -0
  248. package/dist/js/modules/payments/mollie.d.ts.map +1 -0
  249. package/dist/js/modules/payments/moneris.d.ts +2 -0
  250. package/dist/js/modules/payments/moneris.d.ts.map +1 -0
  251. package/dist/js/modules/payments/opayo.d.ts +25 -0
  252. package/dist/js/modules/payments/opayo.d.ts.map +1 -0
  253. package/dist/js/modules/payments/paddle.d.ts +2 -0
  254. package/dist/js/modules/payments/paddle.d.ts.map +1 -0
  255. package/dist/js/modules/payments/paypal.d.ts +2 -0
  256. package/dist/js/modules/payments/paypal.d.ts.map +1 -0
  257. package/dist/js/modules/payments/payway.d.ts +2 -0
  258. package/dist/js/modules/payments/payway.d.ts.map +1 -0
  259. package/dist/js/modules/payments/square.d.ts +2 -0
  260. package/dist/js/modules/payments/square.d.ts.map +1 -0
  261. package/dist/js/modules/payments/stripe.d.ts +2 -0
  262. package/dist/js/modules/payments/stripe.d.ts.map +1 -0
  263. package/dist/js/modules/payments/utils.d.ts +17 -0
  264. package/dist/js/modules/payments/utils.d.ts.map +1 -0
  265. package/dist/js/modules/registry.d.ts +9 -0
  266. package/dist/js/modules/registry.d.ts.map +1 -0
  267. package/dist/js/modules/styles.d.ts +2 -0
  268. package/dist/js/modules/styles.d.ts.map +1 -0
  269. package/dist/js/submit/pipeline.d.ts +18 -0
  270. package/dist/js/submit/pipeline.d.ts.map +1 -0
  271. package/dist/js/theme/theme-classes.d.ts +10 -0
  272. package/dist/js/theme/theme-classes.d.ts.map +1 -0
  273. package/dist/js/transport/forms-api.d.ts +11 -0
  274. package/dist/js/transport/forms-api.d.ts.map +1 -0
  275. package/dist/js/utils/async.d.ts +8 -0
  276. package/dist/js/utils/async.d.ts.map +1 -0
  277. package/dist/js/utils/debug.d.ts +10 -0
  278. package/dist/js/utils/debug.d.ts.map +1 -0
  279. package/dist/js/utils/event-names.d.ts +13 -0
  280. package/dist/js/utils/event-names.d.ts.map +1 -0
  281. package/dist/js/utils/field-references.d.ts +6 -0
  282. package/dist/js/utils/field-references.d.ts.map +1 -0
  283. package/dist/js/utils/field-references.keys.d.ts +4 -0
  284. package/dist/js/utils/field-references.keys.d.ts.map +1 -0
  285. package/dist/js/utils/field-references.parser.d.ts +3 -0
  286. package/dist/js/utils/field-references.parser.d.ts.map +1 -0
  287. package/dist/js/utils/field-references.registry.d.ts +3 -0
  288. package/dist/js/utils/field-references.registry.d.ts.map +1 -0
  289. package/dist/js/utils/field-references.resolver.d.ts +4 -0
  290. package/dist/js/utils/field-references.resolver.d.ts.map +1 -0
  291. package/dist/js/utils/field-references.types.d.ts +27 -0
  292. package/dist/js/utils/field-references.types.d.ts.map +1 -0
  293. package/dist/js/utils/fields.d.ts +5 -0
  294. package/dist/js/utils/fields.d.ts.map +1 -0
  295. package/dist/js/utils/http.d.ts +9 -0
  296. package/dist/js/utils/http.d.ts.map +1 -0
  297. package/dist/js/utils/i18n.d.ts +7 -0
  298. package/dist/js/utils/i18n.d.ts.map +1 -0
  299. package/dist/js/utils/scripts.d.ts +13 -0
  300. package/dist/js/utils/scripts.d.ts.map +1 -0
  301. package/dist/js/utils/unload-warning.d.ts +10 -0
  302. package/dist/js/utils/unload-warning.d.ts.map +1 -0
  303. package/dist/js/validation/rules/email.d.ts +4 -0
  304. package/dist/js/validation/rules/email.d.ts.map +1 -0
  305. package/dist/js/validation/rules/match.d.ts +4 -0
  306. package/dist/js/validation/rules/match.d.ts.map +1 -0
  307. package/dist/js/validation/rules/number.d.ts +4 -0
  308. package/dist/js/validation/rules/number.d.ts.map +1 -0
  309. package/dist/js/validation/rules/required.d.ts +4 -0
  310. package/dist/js/validation/rules/required.d.ts.map +1 -0
  311. package/dist/js/validation/rules/shared.d.ts +7 -0
  312. package/dist/js/validation/rules/shared.d.ts.map +1 -0
  313. package/dist/js/validation/rules/url.d.ts +4 -0
  314. package/dist/js/validation/rules/url.d.ts.map +1 -0
  315. package/dist/js/validation/rules.d.ts +10 -0
  316. package/dist/js/validation/rules.d.ts.map +1 -0
  317. package/dist/js/validation/types.d.ts +44 -0
  318. package/dist/js/validation/types.d.ts.map +1 -0
  319. package/dist/js/validation/validator.d.ts +53 -0
  320. package/dist/js/validation/validator.d.ts.map +1 -0
  321. package/package.json +78 -0
  322. package/src/css/formie-base.css +78 -0
  323. package/src/css/formie-theme.css +19 -0
  324. package/src/css/formie.css +2 -0
  325. package/src/css/theme/_buttons.css +249 -0
  326. package/src/css/theme/_loading.css +37 -0
  327. package/src/css/theme/_messages.css +39 -0
  328. package/src/css/theme/_progress.css +62 -0
  329. package/src/css/theme/_tokens.css +361 -0
  330. package/src/css/theme/_typography.css +70 -0
  331. package/src/css/theme/fields/_address.css +17 -0
  332. package/src/css/theme/fields/_check-radio.css +108 -0
  333. package/src/css/theme/fields/_file.css +58 -0
  334. package/src/css/theme/fields/_group.css +13 -0
  335. package/src/css/theme/fields/_input.css +48 -0
  336. package/src/css/theme/fields/_nested.css +19 -0
  337. package/src/css/theme/fields/_repeater.css +69 -0
  338. package/src/css/theme/fields/_rich-text.css +201 -0
  339. package/src/css/theme/fields/_select.css +37 -0
  340. package/src/css/theme/fields/_signature.css +39 -0
  341. package/src/css/theme/fields/_summary.css +53 -0
  342. package/src/css/theme/fields/_table.css +121 -0
  343. package/src/css/theme/fields/_text-limit.css +10 -0
  344. package/src/css/theme/forms/_field.css +62 -0
  345. package/src/css/theme/forms/_form.css +166 -0
  346. package/src/css/theme/integrations/_payment-modal.css +32 -0
  347. package/src/css/theme/integrations/_paypal.css +10 -0
  348. package/src/css/theme/integrations/_payway.css +10 -0
  349. package/src/css/theme/integrations/_stripe.css +24 -0
  350. package/src/css/theme/utilities/_accessibility.css +13 -0
  351. package/src/css/theme-base/_controls.css +41 -0
  352. package/src/css/theme-base/_primitives.css +34 -0
  353. package/src/icons/rich-text/aligncenter.svg +6 -0
  354. package/src/icons/rich-text/alignleft.svg +6 -0
  355. package/src/icons/rich-text/alignright.svg +6 -0
  356. package/src/icons/rich-text/bold.svg +4 -0
  357. package/src/icons/rich-text/clear.svg +6 -0
  358. package/src/icons/rich-text/code.svg +4 -0
  359. package/src/icons/rich-text/heading1.svg +3 -0
  360. package/src/icons/rich-text/heading2.svg +3 -0
  361. package/src/icons/rich-text/image.svg +6 -0
  362. package/src/icons/rich-text/italic.svg +5 -0
  363. package/src/icons/rich-text/line.svg +3 -0
  364. package/src/icons/rich-text/link.svg +4 -0
  365. package/src/icons/rich-text/olist.svg +8 -0
  366. package/src/icons/rich-text/paragraph.svg +3 -0
  367. package/src/icons/rich-text/quote.svg +4 -0
  368. package/src/icons/rich-text/strikethrough.svg +4 -0
  369. package/src/icons/rich-text/ulist.svg +8 -0
  370. package/src/icons/rich-text/underline.svg +4 -0
  371. package/src/index.ts +125 -0
  372. package/src/js/compatibility/dom-adapter.ts +129 -0
  373. package/src/js/compatibility/event-map.ts +72 -0
  374. package/src/js/compatibility/validator-adapter.ts +105 -0
  375. package/src/js/contracts/client.ts +43 -0
  376. package/src/js/contracts/common.ts +14 -0
  377. package/src/js/contracts/modules.ts +53 -0
  378. package/src/js/contracts/schema.ts +83 -0
  379. package/src/js/contracts/theme.ts +1 -0
  380. package/src/js/core/create-formie-client.ts +1519 -0
  381. package/src/js/core/dom-events.ts +8 -0
  382. package/src/js/core/formie.ts +242 -0
  383. package/src/js/core/hydrate-modules.ts +102 -0
  384. package/src/js/core/page-client-event.ts +129 -0
  385. package/src/js/core/page-tab-errors.ts +37 -0
  386. package/src/js/core/submit-flow.ts +120 -0
  387. package/src/js/core/submit-result-state.ts +597 -0
  388. package/src/js/core/submit-result-ui.ts +448 -0
  389. package/src/js/events/event-bus.ts +109 -0
  390. package/src/js/modules/address/address-finder.ts +85 -0
  391. package/src/js/modules/address/api.ts +22 -0
  392. package/src/js/modules/address/constants.ts +15 -0
  393. package/src/js/modules/address/factories.ts +203 -0
  394. package/src/js/modules/address/google-address.ts +345 -0
  395. package/src/js/modules/address/host.ts +137 -0
  396. package/src/js/modules/address/index.ts +10 -0
  397. package/src/js/modules/address/loqate.ts +128 -0
  398. package/src/js/modules/address/place-kit.ts +94 -0
  399. package/src/js/modules/captchas/api.ts +25 -0
  400. package/src/js/modules/captchas/captcha-eu.ts +86 -0
  401. package/src/js/modules/captchas/constants.ts +4 -0
  402. package/src/js/modules/captchas/factories.ts +485 -0
  403. package/src/js/modules/captchas/friendly-captcha-v1.ts +65 -0
  404. package/src/js/modules/captchas/friendly-captcha-v2.ts +84 -0
  405. package/src/js/modules/captchas/hcaptcha.ts +153 -0
  406. package/src/js/modules/captchas/host.ts +448 -0
  407. package/src/js/modules/captchas/index.ts +16 -0
  408. package/src/js/modules/captchas/recaptcha-enterprise.ts +138 -0
  409. package/src/js/modules/captchas/recaptcha-shared.ts +69 -0
  410. package/src/js/modules/captchas/recaptcha-v2-checkbox.ts +72 -0
  411. package/src/js/modules/captchas/recaptcha-v2-invisible.ts +108 -0
  412. package/src/js/modules/captchas/recaptcha-v3.ts +62 -0
  413. package/src/js/modules/captchas/snaptcha.ts +10 -0
  414. package/src/js/modules/captchas/turnstile.ts +131 -0
  415. package/src/js/modules/captchas/utils.ts +85 -0
  416. package/src/js/modules/fields/calculations.ts +273 -0
  417. package/src/js/modules/fields/checkbox-radio.ts +295 -0
  418. package/src/js/modules/fields/conditions/config.ts +79 -0
  419. package/src/js/modules/fields/conditions/effects.ts +166 -0
  420. package/src/js/modules/fields/conditions/evaluator.ts +44 -0
  421. package/src/js/modules/fields/conditions/references.ts +165 -0
  422. package/src/js/modules/fields/conditions/transforms.ts +206 -0
  423. package/src/js/modules/fields/conditions/types.ts +33 -0
  424. package/src/js/modules/fields/conditions/values.ts +115 -0
  425. package/src/js/modules/fields/conditions.ts +229 -0
  426. package/src/js/modules/fields/date-picker.ts +272 -0
  427. package/src/js/modules/fields/file-upload.ts +628 -0
  428. package/src/js/modules/fields/hidden.ts +58 -0
  429. package/src/js/modules/fields/index.ts +19 -0
  430. package/src/js/modules/fields/phone-country.ts +226 -0
  431. package/src/js/modules/fields/repeater.ts +231 -0
  432. package/src/js/modules/fields/rich-text.ts +217 -0
  433. package/src/js/modules/fields/shared.ts +238 -0
  434. package/src/js/modules/fields/signature.ts +202 -0
  435. package/src/js/modules/fields/summary.ts +272 -0
  436. package/src/js/modules/fields/table.ts +197 -0
  437. package/src/js/modules/fields/text-limit.ts +280 -0
  438. package/src/js/modules/loader.ts +331 -0
  439. package/src/js/modules/payments/api.ts +20 -0
  440. package/src/js/modules/payments/bpoint.ts +48 -0
  441. package/src/js/modules/payments/constants.ts +17 -0
  442. package/src/js/modules/payments/eway.ts +132 -0
  443. package/src/js/modules/payments/factories.ts +332 -0
  444. package/src/js/modules/payments/go-cardless.ts +37 -0
  445. package/src/js/modules/payments/host.ts +459 -0
  446. package/src/js/modules/payments/index.ts +17 -0
  447. package/src/js/modules/payments/mollie.ts +38 -0
  448. package/src/js/modules/payments/moneris.ts +216 -0
  449. package/src/js/modules/payments/opayo.ts +272 -0
  450. package/src/js/modules/payments/paddle.ts +111 -0
  451. package/src/js/modules/payments/payment.ts +183 -0
  452. package/src/js/modules/payments/paypal.ts +214 -0
  453. package/src/js/modules/payments/payway.ts +114 -0
  454. package/src/js/modules/payments/square.ts +106 -0
  455. package/src/js/modules/payments/stripe.ts +426 -0
  456. package/src/js/modules/payments/stub-payment-module.ts +87 -0
  457. package/src/js/modules/payments/utils.ts +60 -0
  458. package/src/js/modules/registry.ts +38 -0
  459. package/src/js/modules/styles.ts +29 -0
  460. package/src/js/submit/pipeline.ts +514 -0
  461. package/src/js/theme/theme-classes.ts +106 -0
  462. package/src/js/transport/forms-api.ts +345 -0
  463. package/src/js/utils/async.ts +81 -0
  464. package/src/js/utils/debug.ts +59 -0
  465. package/src/js/utils/event-names.ts +60 -0
  466. package/src/js/utils/field-references.keys.ts +47 -0
  467. package/src/js/utils/field-references.parser.ts +121 -0
  468. package/src/js/utils/field-references.registry.ts +50 -0
  469. package/src/js/utils/field-references.resolver.ts +115 -0
  470. package/src/js/utils/field-references.ts +11 -0
  471. package/src/js/utils/field-references.types.ts +31 -0
  472. package/src/js/utils/fields.ts +58 -0
  473. package/src/js/utils/http.ts +51 -0
  474. package/src/js/utils/i18n.ts +98 -0
  475. package/src/js/utils/scripts.ts +84 -0
  476. package/src/js/utils/unload-warning.ts +190 -0
  477. package/src/js/validation/rules/email.ts +18 -0
  478. package/src/js/validation/rules/match.ts +26 -0
  479. package/src/js/validation/rules/minmax.ts +47 -0
  480. package/src/js/validation/rules/number.ts +55 -0
  481. package/src/js/validation/rules/pattern.ts +29 -0
  482. package/src/js/validation/rules/required.ts +30 -0
  483. package/src/js/validation/rules/shared.ts +47 -0
  484. package/src/js/validation/rules/url.ts +23 -0
  485. package/src/js/validation/rules.ts +16 -0
  486. package/src/js/validation/types.ts +50 -0
  487. package/src/js/validation/validator.ts +643 -0
  488. package/src/vendor.d.ts +100 -0
  489. package/src/vite-env.d.ts +22 -0
  490. package/vite-dev.mjs +22 -0
@@ -0,0 +1,361 @@
1
+ @layer formie-theme {
2
+ .formie-form {
3
+ --formie-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
4
+
5
+ --formie-font-size-xs: 0.75rem;
6
+ --formie-font-size-sm: 0.875rem;
7
+ --formie-font-size-base: 1rem;
8
+ --formie-font-size-lg: 1.125rem;
9
+ --formie-font-size-xl: 1.375rem;
10
+ --formie-font-size-2xl: 1.75rem;
11
+
12
+ --formie-font-weight-normal: 400;
13
+ --formie-font-weight-medium: 500;
14
+ --formie-font-weight-semibold: 600;
15
+ --formie-font-weight-bold: 700;
16
+
17
+ --formie-line-height-tight: 1.25;
18
+ --formie-line-height-base: 1.5;
19
+ --formie-line-height-relaxed: 1.4;
20
+ --formie-letter-spacing-tight: -0.02em;
21
+
22
+ --formie-space-1: 0.25rem;
23
+ --formie-space-1-5: 0.375rem;
24
+ --formie-space-2: 0.5rem;
25
+ --formie-space-2-5: 0.625rem;
26
+ --formie-space-3: 0.75rem;
27
+ --formie-space-3-5: 0.875rem;
28
+ --formie-space-4: 1rem;
29
+ --formie-space-4-5: 1.125rem;
30
+ --formie-space-5: 1.25rem;
31
+ --formie-space-5-5: 1.375rem;
32
+ --formie-space-6: 1.5rem;
33
+ --formie-space-7: 1.75rem;
34
+ --formie-space-8: 2rem;
35
+ --formie-space-9: 2.25rem;
36
+ --formie-space-10: 2.5rem;
37
+ --formie-space-11: 2.75rem;
38
+ --formie-space-12: 3rem;
39
+
40
+ --formie-radius-sm: 0.25rem;
41
+ --formie-radius-md: 0.375rem;
42
+ --formie-radius-lg: 0.5rem;
43
+ --formie-radius-full: 999px;
44
+ --formie-border-width: 1px;
45
+
46
+ /* Color palette */
47
+ --formie-black: #000000;
48
+ --formie-white: #ffffff;
49
+
50
+ --formie-neutral-50: #f8fafc;
51
+ --formie-neutral-100: #f1f5f9;
52
+ --formie-neutral-200: #e2e8f0;
53
+ --formie-neutral-300: #cbd5e1;
54
+ --formie-neutral-400: #94a3b8;
55
+ --formie-neutral-500: #64748b;
56
+ --formie-neutral-600: #475569;
57
+ --formie-neutral-700: #334155;
58
+ --formie-neutral-800: #1e293b;
59
+ --formie-neutral-900: #0f172a;
60
+ --formie-neutral-950: #020617;
61
+
62
+ --formie-primary-50: #e8ecfc;
63
+ --formie-primary-100: #d2d9f9;
64
+ --formie-primary-200: #a4b3f4;
65
+ --formie-primary-300: #778dee;
66
+ --formie-primary-400: #4967e9;
67
+ --formie-primary-500: #1c41e3;
68
+ --formie-primary-600: #1634b6;
69
+ --formie-primary-700: #112788;
70
+ --formie-primary-800: #0b1a5b;
71
+ --formie-primary-900: #060d2d;
72
+ --formie-primary-950: #040920;
73
+
74
+ --formie-danger-50: #fef2f2;
75
+ --formie-danger-100: #fee2e2;
76
+ --formie-danger-200: #fecaca;
77
+ --formie-danger-300: #fca5a5;
78
+ --formie-danger-400: #f87171;
79
+ --formie-danger-500: #ef4444;
80
+ --formie-danger-600: #dc2626;
81
+ --formie-danger-700: #b91c1c;
82
+ --formie-danger-800: #991b1b;
83
+ --formie-danger-900: #7f1d1d;
84
+ --formie-danger-950: #450a0a;
85
+
86
+ --formie-success-50: #f0fdf4;
87
+ --formie-success-100: #dcfce7;
88
+ --formie-success-200: #bbf7d0;
89
+ --formie-success-300: #86efac;
90
+ --formie-success-400: #4ade80;
91
+ --formie-success-500: #22c55e;
92
+ --formie-success-600: #16a34a;
93
+ --formie-success-700: #15803d;
94
+ --formie-success-800: #166534;
95
+ --formie-success-900: #14532d;
96
+ --formie-success-950: #052e16;
97
+
98
+ /* Semantic color aliases */
99
+ --formie-color-background: var(--formie-white);
100
+ --formie-color-surface: var(--formie-white);
101
+ --formie-color-surface-subtle: var(--formie-neutral-50);
102
+ --formie-color-surface-muted: var(--formie-neutral-100);
103
+ --formie-color-text: var(--formie-neutral-700);
104
+ --formie-color-text-muted: var(--formie-neutral-500);
105
+ --formie-color-heading: var(--formie-neutral-900);
106
+ --formie-color-border: var(--formie-neutral-300);
107
+ --formie-color-border-soft: var(--formie-neutral-200);
108
+ --formie-color-primary: var(--formie-primary-400);
109
+ --formie-color-primary-hover: var(--formie-primary-500);
110
+ --formie-color-primary-border: var(--formie-primary-500);
111
+ --formie-color-primary-soft: var(--formie-primary-100);
112
+ --formie-color-focus-ring: var(--formie-primary-300);
113
+ --formie-color-danger: var(--formie-danger-500);
114
+ --formie-color-danger-soft: var(--formie-danger-50);
115
+ --formie-color-danger-dark: var(--formie-danger-900);
116
+ --formie-color-success: var(--formie-success-500);
117
+ --formie-color-success-soft: var(--formie-success-50);
118
+ --formie-color-success-dark: var(--formie-success-900);
119
+ --formie-color-button-text: var(--formie-color-surface);
120
+
121
+ --formie-focus-ring-border-color: var(--formie-color-focus-ring);
122
+ --formie-shadow-focus: 0 0 0 3px rgba(119, 141, 238, 0.45);
123
+ --formie-shadow-danger-focus: 0 0 0 3px rgba(248, 180, 180, 0.45);
124
+
125
+ /* Form */
126
+ --formie-title-form-size: 1.4rem;
127
+ --formie-body-size: 0.9375rem;
128
+ --formie-gap-form: 0;
129
+ --formie-gap-form-header: var(--formie-space-4);
130
+ --formie-gap-form-messages: var(--formie-space-4);
131
+ --formie-gap-form-navigation: var(--formie-space-4);
132
+ --formie-gap-form-body: 0;
133
+ --formie-gap-form-footer: var(--formie-space-4);
134
+
135
+ /* Messages */
136
+ --formie-message-padding: var(--formie-space-4);
137
+ --formie-message-margin-bottom: var(--formie-space-4);
138
+ --formie-message-size: var(--formie-font-size-sm);
139
+ --formie-message-line-height: var(--formie-line-height-relaxed);
140
+
141
+ /* Buttons */
142
+ --formie-button-border: var(--formie-border-width) solid var(--formie-color-border);
143
+ --formie-button-border-hover: var(--formie-button-secondary-border-hover);
144
+ --formie-button-border-radius: var(--formie-radius-sm);
145
+ --formie-button-background: var(--formie-neutral-100);
146
+ --formie-button-background-hover: var(--formie-neutral-200);
147
+ --formie-button-text-color: var(--formie-color-heading);
148
+ --formie-button-color: var(--formie-button-text-color);
149
+ --formie-button-line-height: var(--formie-line-height-tight);
150
+ --formie-button-font-weight: var(--formie-font-weight-medium);
151
+ --formie-button-min-height: var(--formie-space-10);
152
+ --formie-button-padding-y: var(--formie-space-2);
153
+ --formie-button-padding-x: var(--formie-space-4);
154
+ --formie-button-font-size: var(--formie-font-size-sm);
155
+ --formie-button-gap: var(--formie-space-2);
156
+ --formie-button-icon-size: 0.9375rem;
157
+ --formie-button-icon-button-size: 1.875rem;
158
+ --formie-button-icon-border-radius: var(--formie-radius-full);
159
+ --formie-button-icon-background: var(--formie-neutral-100);
160
+ --formie-button-icon-background-hover: var(--formie-neutral-200);
161
+ --formie-button-icon-border: var(--formie-border-width) solid var(--formie-neutral-300);
162
+ --formie-button-icon-border-hover: var(--formie-border-width) solid var(--formie-neutral-400);
163
+ --formie-button-icon-color: var(--formie-neutral-950);
164
+ --formie-button-opacity-disabled: 0.7;
165
+ --formie-button-shadow-focus: 0 0 0 3px var(--formie-color-border-soft);
166
+
167
+ /* Icons */
168
+ --formie-icon-mask-plus: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 448 512'%3E%3Cpath fill='%23000' d='M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32V224H48c-17.7 0-32 14.3-32 32s14.3 32 32 32H192V432c0 17.7 14.3 32 32 32s32-14.3 32-32V288H400c17.7 0 32-14.3 32-32s-14.3-32-32-32H256V80z'/%3E%3C/svg%3E");
169
+ --formie-icon-mask-arrow-left: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23000' d='M41.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 256 246.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z'/%3E%3C/svg%3E");
170
+ --formie-icon-mask-arrow-right: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='%23000' d='M278.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L210.7 256 73.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z'/%3E%3C/svg%3E");
171
+ --formie-icon-mask-close: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='%23000' d='M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z'/%3E%3C/svg%3E");
172
+
173
+ --formie-button-primary-background: var(--formie-color-primary);
174
+ --formie-button-primary-background-hover: var(--formie-color-primary-hover);
175
+ --formie-button-primary-text-color: var(--formie-white);
176
+ --formie-button-primary-border: var(--formie-border-width) solid transparent;
177
+ --formie-button-primary-border-hover: var(--formie-border-width) solid var(--formie-color-primary-hover);
178
+ --formie-button-primary-shadow-focus: 0 0 0 3px var(--formie-primary-300);
179
+
180
+ --formie-button-secondary-border: var(--formie-border-width) solid var(--formie-color-border);
181
+ --formie-button-secondary-border-hover: var(--formie-button-secondary-border);
182
+ --formie-button-secondary-background: var(--formie-color-surface);
183
+ --formie-button-secondary-background-hover: var(--formie-neutral-100);
184
+ --formie-button-secondary-text-color: var(--formie-color-heading);
185
+
186
+ --formie-button-ghost-border: var(--formie-border-width) solid transparent;
187
+ --formie-button-ghost-border-hover: var(--formie-button-ghost-border);
188
+ --formie-button-ghost-background: transparent;
189
+ --formie-button-ghost-background-hover: var(--formie-neutral-100);
190
+ --formie-button-ghost-text-color: var(--formie-color-heading);
191
+ --formie-button-ghost-shadow-focus: var(--formie-button-shadow-focus);
192
+
193
+ --formie-button-link-text-color: var(--formie-color-primary);
194
+ --formie-button-link-text-color-hover: var(--formie-color-primary-hover);
195
+
196
+ /* Navigation */
197
+ --formie-tab-padding-y: var(--formie-space-2);
198
+ --formie-tab-padding-x: var(--formie-space-4);
199
+ --formie-tab-font-size: var(--formie-font-size-sm);
200
+ --formie-gap-tabs: var(--formie-space-4);
201
+
202
+ /* Progress */
203
+ --formie-progress-height: 1.2rem;
204
+ --formie-progress-padding: var(--formie-space-4);
205
+ --formie-progress-size: 0.8rem;
206
+
207
+ /* Loading */
208
+ --formie-loading-size: var(--formie-space-4);
209
+ --formie-loading-margin-top: calc(var(--formie-loading-size) * -0.5);
210
+ --formie-loading-margin-left: calc(var(--formie-loading-size) * -0.5);
211
+ --formie-loading-border-width: 2px;
212
+ --formie-loading-animation: loading 0.5s infinite linear;
213
+ --formie-loading-left: 50%;
214
+ --formie-loading-top: 50%;
215
+ --formie-loading-z-index: 1;
216
+
217
+ /* Pages */
218
+ --formie-gap-pages: 0;
219
+ --formie-gap-page: var(--formie-space-4);
220
+ --formie-gap-page-container: 0;
221
+ --formie-gap-page-header: var(--formie-space-4);
222
+ --formie-gap-page-body: var(--formie-space-4);
223
+ --formie-gap-page-footer: var(--formie-space-4);
224
+ --formie-gap-page-buttons: var(--formie-space-4);
225
+
226
+ /* Page */
227
+ --formie-title-page-size: var(--formie-font-size-lg);
228
+
229
+ /* Rows */
230
+ --formie-gap-rows: var(--formie-space-4);
231
+ --formie-gap-row: var(--formie-space-4);
232
+ --formie-gap-subfield-rows: var(--formie-space-2);
233
+ --formie-gap-subfield-row: var(--formie-space-2);
234
+ --formie-gap-nested-field-rows: var(--formie-space-2);
235
+ --formie-gap-nested-field-row: var(--formie-space-2);
236
+ --formie-subfield-row-column-min-width: 12rem;
237
+ --formie-nested-field-row-column-min-width: 16rem;
238
+
239
+ /* Row fields */
240
+ --formie-gap-errors: var(--formie-space-2);
241
+ --formie-gap-field-errors: var(--formie-space-2);
242
+
243
+ /* Field */
244
+ --formie-label-size: var(--formie-font-size-sm);
245
+ --formie-meta-size: var(--formie-font-size-sm);
246
+ --formie-control-height: 2.375rem;
247
+ --formie-control-padding-y: var(--formie-space-2);
248
+ --formie-control-padding-x: var(--formie-space-3);
249
+ --formie-control-font-size: var(--formie-font-size-sm);
250
+ --formie-textarea-min-height: 9rem;
251
+ --formie-select-indicator-size: 1.4rem;
252
+ --formie-list-indent: var(--formie-space-5);
253
+ --formie-link-underline-offset: 0.15em;
254
+ --formie-gap-field: var(--formie-space-2);
255
+ --formie-gap-field-layout: var(--formie-space-2);
256
+ --formie-gap-field-content: var(--formie-space-2);
257
+ --formie-gap-field-control: var(--formie-space-2);
258
+ --formie-gap-options: var(--formie-space-2);
259
+
260
+ /* Field: summary */
261
+ --formie-summary-padding: var(--formie-space-4);
262
+ --formie-gap-summary: var(--formie-space-4);
263
+
264
+ --formie-file-summary-padding: var(--formie-space-4);
265
+ --formie-gap-file-summary: var(--formie-space-3);
266
+
267
+ /* Field: rich text */
268
+ --formie-rich-text-min-height: 12rem;
269
+
270
+ /* Field: signature */
271
+ --formie-signature-width: 100%;
272
+ --formie-signature-height: 8rem;
273
+ --formie-signature-background: var(--formie-color-surface-subtle);
274
+ --formie-signature-border: 1px solid var(--formie-color-border);
275
+ --formie-signature-border-radius: var(--formie-radius-sm);
276
+
277
+ --formie-signature-remove-button-top: 0;
278
+ --formie-signature-remove-button-right: -14px;
279
+ --formie-signature-remove-button-transform: translate(0, -50%);
280
+
281
+ /* Field: check/radio */
282
+ --formie-check-font-size: var(--formie-font-size-sm);
283
+ --formie-check-line-height: var(--formie-line-height-base);
284
+ --formie-check-margin-bottom: var(--formie-space-2);
285
+ --formie-check-margin-right: var(--formie-space-4);
286
+ --formie-check-background-color: var(--formie-color-surface-muted);
287
+ --formie-check-size: var(--formie-space-4);
288
+ --formie-check-label-padding-left: var(--formie-space-6);
289
+ --formie-check-label-line-height: var(--formie-space-6);
290
+ --formie-check-label-top: 0.3125rem;
291
+ --formie-check-label-transition: all 0.15s cubic-bezier(0.4, 0, 0.2, 1);
292
+ --formie-check-label-background-color: var(--formie-color-surface);
293
+ --formie-check-check-border-radius: 2px;
294
+ --formie-check-check-background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E");
295
+ --formie-check-check-background-size: 8px auto;
296
+ --formie-check-radio-border-radius: 50%;
297
+ --formie-check-radio-background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E");
298
+ --formie-check-radio-background-size: 8px auto;
299
+
300
+ /* Field: group */
301
+ --formie-group-border: 1px solid var(--formie-color-border);
302
+ --formie-group-border-radius: var(--formie-radius-sm);
303
+ --formie-group-padding: var(--formie-space-4);
304
+
305
+ /* Field: repeater */
306
+ --formie-repeater-add-button-padding-left: var(--formie-space-8);
307
+ --formie-repeater-add-button-icon-mask: var(--formie-icon-mask-plus);
308
+ --formie-repeater-add-button-height: 14px;
309
+ --formie-repeater-add-button-width: 14px;
310
+ --formie-repeater-add-button-left: var(--formie-space-3);
311
+
312
+ --formie-repeater-remove-button-top: 0;
313
+ --formie-repeater-remove-button-right: -14px;
314
+ --formie-repeater-remove-button-transform: translate(0, -50%);
315
+
316
+ --formie-table-width: 100%;
317
+ --formie-table-margin-bottom: 1rem;
318
+ --formie-table-border-collapse: collapse;
319
+
320
+ --formie-table-row-padding: 0.2rem;
321
+ --formie-table-th-text-align: inherit;
322
+ --formie-table-th-font-size: 0.75rem;
323
+ --formie-table-th-font-weight: 600;
324
+
325
+ --formie-table-add-button-padding-left: var(--formie-space-8);
326
+ --formie-table-add-button-icon-mask: var(--formie-icon-mask-plus);
327
+ --formie-table-add-button-height: 14px;
328
+ --formie-table-add-button-width: 14px;
329
+ --formie-table-add-button-left: var(--formie-space-3);
330
+
331
+ --formie-table-remove-button-top: 0;
332
+ --formie-table-remove-button-right: -14px;
333
+ --formie-table-remove-button-transform: translate(0, -50%);
334
+
335
+
336
+ /* --formie-table-add-btn-padding-left: 2rem;
337
+
338
+ --formie-table-add-btn-top: 0.75rem;
339
+ --formie-table-add-btn-left: 0.75rem;
340
+ --formie-table-add-btn-width: 14px;
341
+ --formie-table-add-btn-height: 14px;
342
+ --formie-table-add-btn-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 384 512'%3E%3Cpath fill='currentColor' d='M368 224H224V80c0-8.84-7.16-16-16-16h-32c-8.84 0-16 7.16-16 16v144H16c-8.84 0-16 7.16-16 16v32c0 8.84 7.16 16 16 16h144v144c0 8.84 7.16 16 16 16h32c8.84 0 16-7.16 16-16V288h144c8.84 0 16-7.16 16-16v-32c0-8.84-7.16-16-16-16z'%3E%3C/path%3E%3C/svg%3E"); */
343
+
344
+ /* --formie-table-remove-btn-border-radius: 50%;
345
+ --formie-table-remove-btn-padding: 13px;
346
+ --formie-table-remove-btn-text-indent: -9999px;
347
+ --formie-table-remove-btn-top: 50%;
348
+ --formie-table-remove-btn-left: 50%;
349
+ --formie-table-remove-btn-width: 9px;
350
+ --formie-table-remove-btn-height: 14px;
351
+ --formie-table-remove-btn-transform: translate(-50%, -50%);
352
+ --formie-table-remove-btn-bg-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 320 512'%3E%3Cpath fill='currentColor' d='M207.6 256l107.72-107.72c6.23-6.23 6.23-16.34 0-22.58l-25.03-25.03c-6.23-6.23-16.34-6.23-22.58 0L160 208.4 52.28 100.68c-6.23-6.23-16.34-6.23-22.58 0L4.68 125.7c-6.23 6.23-6.23 16.34 0 22.58L112.4 256 4.68 363.72c-6.23 6.23-6.23 16.34 0 22.58l25.03 25.03c6.23 6.23 16.34 6.23 22.58 0L160 303.6l107.72 107.72c6.23 6.23 16.34 6.23 22.58 0l25.03-25.03c6.23-6.23 6.23-16.34 0-22.58L207.6 256z'%3E%3C/path%3E%3C/svg%3E"); */
353
+
354
+ font-family: var(--formie-font-family);
355
+ font-size: var(--formie-body-size);
356
+ line-height: var(--formie-line-height-base);
357
+ color: var(--formie-color-text);
358
+ -webkit-font-smoothing: antialiased;
359
+ -moz-osx-font-smoothing: grayscale;
360
+ }
361
+ }
@@ -0,0 +1,70 @@
1
+ @layer formie-theme {
2
+ .formie-form-title {
3
+ color: var(--formie-color-heading);
4
+ margin: 0 0 var(--formie-space-4);
5
+ font-size: var(--formie-title-form-size);
6
+ font-weight: var(--formie-font-weight-bold);
7
+ letter-spacing: var(--formie-letter-spacing-tight);
8
+ }
9
+
10
+ .formie-page-title {
11
+ color: var(--formie-color-heading);
12
+ margin: 0 0 var(--formie-space-4);
13
+ font-size: var(--formie-title-page-size);
14
+ font-weight: var(--formie-font-weight-semibold);
15
+ }
16
+
17
+ .formie-label,
18
+ .formie-field-label,
19
+ .formie-field-option-label,
20
+ .formie-summary-label {
21
+ color: var(--formie-color-heading);
22
+ font-size: var(--formie-label-size);
23
+ font-weight: var(--formie-font-weight-medium);
24
+ line-height: var(--formie-line-height-tight);
25
+ }
26
+
27
+ label.formie-field-label {
28
+ /* legend should be `display: contents` to work with grid */
29
+ /* so only apply this to label elements */
30
+ display: block;
31
+ }
32
+
33
+ .formie-form label,
34
+ .formie-form legend {
35
+ color: var(--formie-color-heading);
36
+ }
37
+
38
+ .formie-field-has-error .formie-label,
39
+ .formie-field-has-error .formie-field-label,
40
+ .formie-field-has-error .formie-field-option-label,
41
+ .formie-field-has-error .formie-summary-label,
42
+ .formie-field-has-error label,
43
+ .formie-field-has-error legend {
44
+ color: var(--formie-color-danger-dark);
45
+ }
46
+
47
+ .formie-instructions {
48
+ color: var(--formie-color-text-muted);
49
+ font-size: var(--formie-meta-size);
50
+ line-height: var(--formie-line-height-relaxed);
51
+ margin-top: calc(var(--formie-space-1) * -1);
52
+ }
53
+
54
+ .formie-instructions p {
55
+ margin: 0;
56
+ padding: 0;
57
+ }
58
+
59
+ .formie-field-note {
60
+ color: var(--formie-color-text-muted);
61
+ font-size: var(--formie-meta-size);
62
+ line-height: var(--formie-line-height-relaxed);
63
+ }
64
+
65
+ .formie-form p,
66
+ .formie-form ul {
67
+ margin-top: 0;
68
+ }
69
+
70
+ }
@@ -0,0 +1,17 @@
1
+ @layer formie-theme {
2
+ .formie-address-location {
3
+ font-weight: 500;
4
+ }
5
+
6
+ .formie-autocomplete-wrapper {
7
+ position: relative;
8
+ }
9
+
10
+ .formie-autocomplete-placeholder {
11
+ position: absolute;
12
+ left: 0;
13
+ top: 0;
14
+ pointer-events: none;
15
+ z-index: 1;
16
+ }
17
+ }
@@ -0,0 +1,108 @@
1
+ @layer formie-theme {
2
+
3
+ .formie-checkboxes-options,
4
+ .formie-radio-options,
5
+ .formie-agree-options {
6
+ gap: var(--formie-check-margin-bottom) var(--formie-check-margin-right);
7
+ margin-top: var(--formie-space-1);
8
+ }
9
+
10
+ .formie-checkbox-option,
11
+ .formie-radio-option {
12
+ position: relative;
13
+ margin: 0;
14
+ font-size: var(--formie-check-font-size);
15
+ line-height: var(--formie-check-line-height);
16
+ }
17
+
18
+ .formie-checkbox-input,
19
+ .formie-radio-input {
20
+ position: absolute;
21
+ width: 1px;
22
+ height: 1px;
23
+ margin: -1px;
24
+ padding: 0;
25
+ overflow: hidden;
26
+ clip: rect(0, 0, 0, 0);
27
+ clip-path: inset(50%);
28
+ white-space: nowrap;
29
+ border: 0;
30
+ }
31
+
32
+ .formie-checkbox-option-label,
33
+ .formie-radio-option-label {
34
+ position: relative;
35
+ display: inline-block;
36
+ padding-left: var(--formie-check-label-padding-left);
37
+ font-size: var(--formie-check-font-size);
38
+ font-weight: var(--formie-font-weight-normal);
39
+ line-height: var(--formie-check-size);
40
+ user-select: none;
41
+ transition: var(--formie-check-label-transition);
42
+ }
43
+
44
+ .formie-checkbox-option-label::before,
45
+ .formie-radio-option-label::before {
46
+ position: absolute;
47
+ top: 0;
48
+ left: 0;
49
+ display: block;
50
+ width: var(--formie-check-size);
51
+ height: var(--formie-check-size);
52
+ content: "";
53
+ cursor: pointer;
54
+ border: var(--formie-border-width) solid var(--formie-color-border);
55
+ background-color: var(--formie-check-label-background-color);
56
+ background-repeat: no-repeat;
57
+ background-position: center center;
58
+ background-size: 50% 50%;
59
+ transition: var(--formie-check-label-transition);
60
+ }
61
+
62
+ .formie-checkbox-option-label::before {
63
+ border-radius: var(--formie-check-check-border-radius);
64
+ }
65
+
66
+ .formie-radio-option-label::before {
67
+ border-radius: var(--formie-check-radio-border-radius);
68
+ }
69
+
70
+ .formie-checkbox-input:focus-visible+.formie-checkbox-option-label::before,
71
+ .formie-radio-input:focus-visible+.formie-radio-option-label::before {
72
+ border-color: var(--formie-color-focus-ring);
73
+ box-shadow: var(--formie-shadow-focus);
74
+ }
75
+
76
+ .formie-checkbox-input:checked+.formie-checkbox-option-label::before,
77
+ .formie-radio-input:checked+.formie-radio-option-label::before {
78
+ background-color: var(--formie-color-primary);
79
+ border-color: var(--formie-color-primary);
80
+ }
81
+
82
+ .formie-checkbox-input:checked+.formie-checkbox-option-label::before {
83
+ background-image: var(--formie-check-check-background-image);
84
+ background-size: var(--formie-check-check-background-size);
85
+ }
86
+
87
+ .formie-radio-input:checked+.formie-radio-option-label::before {
88
+ background-image: var(--formie-check-radio-background-image);
89
+ background-size: var(--formie-check-radio-background-size);
90
+ }
91
+
92
+ .formie-checkbox-input:disabled+.formie-checkbox-option-label,
93
+ .formie-radio-input:disabled+.formie-radio-option-label {
94
+ opacity: 0.4;
95
+ cursor: not-allowed;
96
+ }
97
+
98
+ .formie-checkbox-input:disabled+.formie-checkbox-option-label::before,
99
+ .formie-radio-input:disabled+.formie-radio-option-label::before {
100
+ background-color: var(--formie-check-background-color);
101
+ cursor: not-allowed;
102
+ }
103
+
104
+ .formie-field-has-error .formie-checkbox-input:focus-visible+.formie-checkbox-option-label::before,
105
+ .formie-field-has-error .formie-radio-input:focus-visible+.formie-radio-option-label::before {
106
+ box-shadow: var(--formie-shadow-danger-focus);
107
+ }
108
+ }
@@ -0,0 +1,58 @@
1
+ @layer formie-theme {
2
+ .formie-file-input {
3
+ padding: var(--formie-space-1);
4
+ line-height: var(--formie-line-height-base);
5
+ cursor: pointer;
6
+ }
7
+
8
+ .formie-file-input::file-selector-button,
9
+ .formie-file-input::-webkit-file-upload-button {
10
+ appearance: none;
11
+ -webkit-appearance: none;
12
+ margin-inline-end: var(--formie-space-2);
13
+ padding: calc(var(--formie-control-padding-y) - 1px) var(--formie-space-2);
14
+ min-height: calc(var(--formie-control-height) - (var(--formie-space-1) * 2));
15
+ border: var(--formie-border-width) solid var(--formie-color-border);
16
+ border-radius: calc(var(--formie-radius-sm) - 1px);
17
+ background: var(--formie-color-surface-subtle);
18
+ color: var(--formie-color-heading);
19
+ font-weight: var(--formie-font-weight-normal);
20
+ font-size: var(--formie-font-size-xs);
21
+ line-height: 1.1;
22
+ white-space: nowrap;
23
+ cursor: pointer;
24
+ transition: border-color 150ms ease, background-color 150ms ease, color 150ms ease, box-shadow 150ms ease;
25
+ }
26
+
27
+ .formie-file-input:hover::file-selector-button,
28
+ .formie-file-input:hover::-webkit-file-upload-button {
29
+ border-color: color-mix(in srgb, var(--formie-color-border) 70%, var(--formie-color-heading) 30%);
30
+ background: var(--formie-color-surface-muted);
31
+ }
32
+
33
+ .formie-file-input:focus {
34
+ outline: 0;
35
+ }
36
+
37
+ .formie-file-input:focus-visible::file-selector-button,
38
+ .formie-file-input:focus-visible::-webkit-file-upload-button {
39
+ border-color: var(--formie-color-focus-ring);
40
+ }
41
+
42
+ .formie-field-has-error .formie-file-input::file-selector-button,
43
+ .formie-field-has-error .formie-file-input::-webkit-file-upload-button {
44
+ border-color: var(--formie-color-danger);
45
+ }
46
+
47
+ .formie-file-summary {
48
+ padding: var(--formie-file-summary-padding);
49
+ gap: var(--formie-gap-file-summary);
50
+ border: var(--formie-border-width) solid var(--formie-color-border);
51
+ border-radius: var(--formie-radius-sm);
52
+ }
53
+
54
+ .formie-file-summary-container {
55
+ margin: 0;
56
+ padding-left: var(--formie-list-indent);
57
+ }
58
+ }
@@ -0,0 +1,13 @@
1
+ @layer formie-theme {
2
+ .formie-subfield-rows {
3
+ display: grid;
4
+ gap: var(--formie-gap-subfield-rows);
5
+ }
6
+
7
+ .formie-subfield-row {
8
+ display: grid;
9
+ gap: var(--formie-gap-subfield-row);
10
+ grid-template-columns: repeat(auto-fit, minmax(min(100%, var(--formie-subfield-row-column-min-width)), 1fr));
11
+ align-items: start;
12
+ }
13
+ }
@@ -0,0 +1,48 @@
1
+ @layer formie-theme {
2
+
3
+ .formie-input,
4
+ .formie-textarea {
5
+ border: var(--formie-border-width) solid var(--formie-color-border);
6
+ border-radius: var(--formie-radius-sm);
7
+ background: var(--formie-color-surface);
8
+ transition: border-color 150ms ease, box-shadow 150ms ease, background-color 150ms ease;
9
+ }
10
+
11
+ .formie-input-error,
12
+ .formie-field-has-error .formie-input,
13
+ .formie-field-has-error .formie-select,
14
+ .formie-field-has-error .formie-textarea {
15
+ border-color: var(--formie-color-danger);
16
+ }
17
+
18
+ .formie-input:focus,
19
+ .formie-textarea:focus {
20
+ outline: 0;
21
+ }
22
+
23
+ .formie-input:focus-visible,
24
+ .formie-textarea:focus-visible {
25
+ outline: 0;
26
+ border-color: var(--formie-color-focus-ring);
27
+ box-shadow: var(--formie-shadow-focus);
28
+ }
29
+
30
+ .formie-input-error:focus-visible,
31
+ .formie-field-has-error .formie-input:focus-visible,
32
+ .formie-field-has-error .formie-textarea:focus-visible {
33
+ border-color: var(--formie-color-danger);
34
+ box-shadow: var(--formie-shadow-danger-focus);
35
+ }
36
+
37
+ /* Fix Safari date/time input inner control height quirks. */
38
+ input::-webkit-datetime-edit {
39
+ display: block;
40
+ padding: 0;
41
+ margin-bottom: -2px;
42
+ }
43
+
44
+ /* Fix mobile Safari date/time values appearing vertically shrunk. */
45
+ input::-webkit-date-and-time-value {
46
+ height: 1.5em;
47
+ }
48
+ }