rn-inputforge 0.3.1 → 0.5.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 (555) hide show
  1. package/README.md +909 -20
  2. package/lib/commonjs/adapters/index.js +25 -0
  3. package/lib/commonjs/adapters/index.js.map +1 -0
  4. package/lib/commonjs/adapters/reactHookForm.js +107 -0
  5. package/lib/commonjs/adapters/reactHookForm.js.map +1 -0
  6. package/lib/commonjs/components/FieldFlowAffordance/FieldFlowAffordance.js +104 -0
  7. package/lib/commonjs/components/FieldFlowAffordance/FieldFlowAffordance.js.map +1 -0
  8. package/lib/commonjs/components/FieldFlowAffordance/index.js +13 -0
  9. package/lib/commonjs/components/FieldFlowAffordance/index.js.map +1 -0
  10. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js +131 -0
  11. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  12. package/lib/commonjs/components/FieldFlowCheckbox/index.js +13 -0
  13. package/lib/commonjs/components/FieldFlowCheckbox/index.js.map +1 -0
  14. package/lib/commonjs/components/FieldFlowCreditCard/FieldFlowCreditCard.js +146 -0
  15. package/lib/commonjs/components/FieldFlowCreditCard/FieldFlowCreditCard.js.map +1 -0
  16. package/lib/commonjs/components/FieldFlowCreditCard/index.js +13 -0
  17. package/lib/commonjs/components/FieldFlowCreditCard/index.js.map +1 -0
  18. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +536 -0
  19. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  20. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js +13 -0
  21. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js.map +1 -0
  22. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js +6 -0
  23. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js.map +1 -0
  24. package/lib/commonjs/components/FieldFlowDraftBanner/FieldFlowDraftBanner.js +156 -0
  25. package/lib/commonjs/components/FieldFlowDraftBanner/FieldFlowDraftBanner.js.map +1 -0
  26. package/lib/commonjs/components/FieldFlowDraftBanner/index.js +13 -0
  27. package/lib/commonjs/components/FieldFlowDraftBanner/index.js.map +1 -0
  28. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  29. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  30. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js +187 -56
  31. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  32. package/lib/commonjs/components/FieldFlowInput/styles.js +48 -11
  33. package/lib/commonjs/components/FieldFlowInput/styles.js.map +1 -1
  34. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +66 -0
  35. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  36. package/lib/commonjs/components/FieldFlowMaskedInput/index.js +13 -0
  37. package/lib/commonjs/components/FieldFlowMaskedInput/index.js.map +1 -0
  38. package/lib/commonjs/components/FieldFlowMaskedInput/types.js +6 -0
  39. package/lib/commonjs/components/FieldFlowMaskedInput/types.js.map +1 -0
  40. package/lib/commonjs/components/FieldFlowNumberStepper/FieldFlowNumberStepper.js +136 -0
  41. package/lib/commonjs/components/FieldFlowNumberStepper/FieldFlowNumberStepper.js.map +1 -0
  42. package/lib/commonjs/components/FieldFlowNumberStepper/index.js +13 -0
  43. package/lib/commonjs/components/FieldFlowNumberStepper/index.js.map +1 -0
  44. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js +255 -0
  45. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  46. package/lib/commonjs/components/FieldFlowOTP/index.js +13 -0
  47. package/lib/commonjs/components/FieldFlowOTP/index.js.map +1 -0
  48. package/lib/commonjs/components/FieldFlowOTP/types.js +6 -0
  49. package/lib/commonjs/components/FieldFlowOTP/types.js.map +1 -0
  50. package/lib/commonjs/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.js +122 -0
  51. package/lib/commonjs/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.js.map +1 -0
  52. package/lib/commonjs/components/FieldFlowPasswordStrength/index.js +13 -0
  53. package/lib/commonjs/components/FieldFlowPasswordStrength/index.js.map +1 -0
  54. package/lib/commonjs/components/FieldFlowPhone/FieldFlowPhone.js +263 -0
  55. package/lib/commonjs/components/FieldFlowPhone/FieldFlowPhone.js.map +1 -0
  56. package/lib/commonjs/components/FieldFlowPhone/index.js +13 -0
  57. package/lib/commonjs/components/FieldFlowPhone/index.js.map +1 -0
  58. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js +164 -0
  59. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  60. package/lib/commonjs/components/FieldFlowRadio/index.js +13 -0
  61. package/lib/commonjs/components/FieldFlowRadio/index.js.map +1 -0
  62. package/lib/commonjs/components/FieldFlowRating/FieldFlowRating.js +106 -0
  63. package/lib/commonjs/components/FieldFlowRating/FieldFlowRating.js.map +1 -0
  64. package/lib/commonjs/components/FieldFlowRating/index.js +13 -0
  65. package/lib/commonjs/components/FieldFlowRating/index.js.map +1 -0
  66. package/lib/commonjs/components/FieldFlowSection/FieldFlowSection.js +141 -0
  67. package/lib/commonjs/components/FieldFlowSection/FieldFlowSection.js.map +1 -0
  68. package/lib/commonjs/components/FieldFlowSection/index.js +13 -0
  69. package/lib/commonjs/components/FieldFlowSection/index.js.map +1 -0
  70. package/lib/commonjs/components/FieldFlowSegmented/FieldFlowSegmented.js +195 -0
  71. package/lib/commonjs/components/FieldFlowSegmented/FieldFlowSegmented.js.map +1 -0
  72. package/lib/commonjs/components/FieldFlowSegmented/index.js +13 -0
  73. package/lib/commonjs/components/FieldFlowSegmented/index.js.map +1 -0
  74. package/lib/commonjs/components/FieldFlowSignature/FieldFlowSignature.js +200 -0
  75. package/lib/commonjs/components/FieldFlowSignature/FieldFlowSignature.js.map +1 -0
  76. package/lib/commonjs/components/FieldFlowSignature/index.js +13 -0
  77. package/lib/commonjs/components/FieldFlowSignature/index.js.map +1 -0
  78. package/lib/commonjs/components/FieldFlowSlider/FieldFlowSlider.js +178 -0
  79. package/lib/commonjs/components/FieldFlowSlider/FieldFlowSlider.js.map +1 -0
  80. package/lib/commonjs/components/FieldFlowSlider/index.js +13 -0
  81. package/lib/commonjs/components/FieldFlowSlider/index.js.map +1 -0
  82. package/lib/commonjs/components/FieldFlowStepper/FieldFlowStepper.js +166 -0
  83. package/lib/commonjs/components/FieldFlowStepper/FieldFlowStepper.js.map +1 -0
  84. package/lib/commonjs/components/FieldFlowStepper/index.js +13 -0
  85. package/lib/commonjs/components/FieldFlowStepper/index.js.map +1 -0
  86. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js +152 -0
  87. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  88. package/lib/commonjs/components/FieldFlowSwitch/index.js +13 -0
  89. package/lib/commonjs/components/FieldFlowSwitch/index.js.map +1 -0
  90. package/lib/commonjs/components/FieldFlowTags/FieldFlowTags.js +240 -0
  91. package/lib/commonjs/components/FieldFlowTags/FieldFlowTags.js.map +1 -0
  92. package/lib/commonjs/components/FieldFlowTags/index.js +13 -0
  93. package/lib/commonjs/components/FieldFlowTags/index.js.map +1 -0
  94. package/lib/commonjs/components/FieldFlowTypeahead/FieldFlowTypeahead.js +227 -0
  95. package/lib/commonjs/components/FieldFlowTypeahead/FieldFlowTypeahead.js.map +1 -0
  96. package/lib/commonjs/components/FieldFlowTypeahead/index.js +13 -0
  97. package/lib/commonjs/components/FieldFlowTypeahead/index.js.map +1 -0
  98. package/lib/commonjs/components/FieldFlowUpload/FieldFlowUpload.js +191 -0
  99. package/lib/commonjs/components/FieldFlowUpload/FieldFlowUpload.js.map +1 -0
  100. package/lib/commonjs/components/FieldFlowUpload/index.js +13 -0
  101. package/lib/commonjs/components/FieldFlowUpload/index.js.map +1 -0
  102. package/lib/commonjs/hooks/index.js +35 -0
  103. package/lib/commonjs/hooks/index.js.map +1 -1
  104. package/lib/commonjs/hooks/useFieldFlowArray.js +110 -0
  105. package/lib/commonjs/hooks/useFieldFlowArray.js.map +1 -0
  106. package/lib/commonjs/hooks/useFieldFlowDirtyGuard.js +53 -0
  107. package/lib/commonjs/hooks/useFieldFlowDirtyGuard.js.map +1 -0
  108. package/lib/commonjs/hooks/useFieldFlowDraft.js +168 -0
  109. package/lib/commonjs/hooks/useFieldFlowDraft.js.map +1 -0
  110. package/lib/commonjs/hooks/useFieldFlowForm.js +350 -41
  111. package/lib/commonjs/hooks/useFieldFlowForm.js.map +1 -1
  112. package/lib/commonjs/hooks/useFieldFlowSteps.js +77 -0
  113. package/lib/commonjs/hooks/useFieldFlowSteps.js.map +1 -0
  114. package/lib/commonjs/hooks/useFormIntelligence.js +130 -0
  115. package/lib/commonjs/hooks/useFormIntelligence.js.map +1 -0
  116. package/lib/commonjs/i18n/index.js +25 -0
  117. package/lib/commonjs/i18n/index.js.map +1 -0
  118. package/lib/commonjs/i18n/messages.js +88 -0
  119. package/lib/commonjs/i18n/messages.js.map +1 -0
  120. package/lib/commonjs/icons/Icon.js +719 -30
  121. package/lib/commonjs/icons/Icon.js.map +1 -1
  122. package/lib/commonjs/icons/index.js +7 -0
  123. package/lib/commonjs/icons/index.js.map +1 -1
  124. package/lib/commonjs/icons/renderIcon.js +24 -0
  125. package/lib/commonjs/icons/renderIcon.js.map +1 -0
  126. package/lib/commonjs/index.js +449 -0
  127. package/lib/commonjs/index.js.map +1 -1
  128. package/lib/commonjs/intelligence/formAccessibility.js +79 -0
  129. package/lib/commonjs/intelligence/formAccessibility.js.map +1 -0
  130. package/lib/commonjs/intelligence/index.js +31 -0
  131. package/lib/commonjs/intelligence/index.js.map +1 -0
  132. package/lib/commonjs/intelligence/types.js +2 -0
  133. package/lib/commonjs/intelligence/types.js.map +1 -0
  134. package/lib/commonjs/motion/index.js +20 -0
  135. package/lib/commonjs/motion/index.js.map +1 -0
  136. package/lib/commonjs/motion/useFieldMotion.js +111 -0
  137. package/lib/commonjs/motion/useFieldMotion.js.map +1 -0
  138. package/lib/commonjs/motion/useReducedMotion.js +32 -0
  139. package/lib/commonjs/motion/useReducedMotion.js.map +1 -0
  140. package/lib/commonjs/theme/index.js +13 -0
  141. package/lib/commonjs/theme/index.js.map +1 -1
  142. package/lib/commonjs/theme/presets.js +142 -0
  143. package/lib/commonjs/theme/presets.js.map +1 -0
  144. package/lib/commonjs/utils/affordance.js +151 -0
  145. package/lib/commonjs/utils/affordance.js.map +1 -0
  146. package/lib/commonjs/utils/masks.js +130 -0
  147. package/lib/commonjs/utils/masks.js.map +1 -0
  148. package/lib/commonjs/utils/passwordStrength.js +79 -0
  149. package/lib/commonjs/utils/passwordStrength.js.map +1 -0
  150. package/lib/commonjs/utils/phoneCountries.js +119 -0
  151. package/lib/commonjs/utils/phoneCountries.js.map +1 -0
  152. package/lib/commonjs/validation/index.js +25 -0
  153. package/lib/commonjs/validation/index.js.map +1 -1
  154. package/lib/commonjs/validation/validators.js +10 -7
  155. package/lib/commonjs/validation/validators.js.map +1 -1
  156. package/lib/commonjs/validation/zodAdapter.js +91 -0
  157. package/lib/commonjs/validation/zodAdapter.js.map +1 -0
  158. package/lib/module/adapters/index.js +4 -0
  159. package/lib/module/adapters/index.js.map +1 -0
  160. package/lib/module/adapters/reactHookForm.js +100 -0
  161. package/lib/module/adapters/reactHookForm.js.map +1 -0
  162. package/lib/module/components/FieldFlowAffordance/FieldFlowAffordance.js +99 -0
  163. package/lib/module/components/FieldFlowAffordance/FieldFlowAffordance.js.map +1 -0
  164. package/lib/module/components/FieldFlowAffordance/index.js +4 -0
  165. package/lib/module/components/FieldFlowAffordance/index.js.map +1 -0
  166. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js +126 -0
  167. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  168. package/lib/module/components/FieldFlowCheckbox/index.js +4 -0
  169. package/lib/module/components/FieldFlowCheckbox/index.js.map +1 -0
  170. package/lib/module/components/FieldFlowCreditCard/FieldFlowCreditCard.js +141 -0
  171. package/lib/module/components/FieldFlowCreditCard/FieldFlowCreditCard.js.map +1 -0
  172. package/lib/module/components/FieldFlowCreditCard/index.js +4 -0
  173. package/lib/module/components/FieldFlowCreditCard/index.js.map +1 -0
  174. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +531 -0
  175. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  176. package/lib/module/components/FieldFlowDateTimePicker/index.js +4 -0
  177. package/lib/module/components/FieldFlowDateTimePicker/index.js.map +1 -0
  178. package/lib/module/components/FieldFlowDateTimePicker/types.js +4 -0
  179. package/lib/module/components/FieldFlowDateTimePicker/types.js.map +1 -0
  180. package/lib/module/components/FieldFlowDraftBanner/FieldFlowDraftBanner.js +151 -0
  181. package/lib/module/components/FieldFlowDraftBanner/FieldFlowDraftBanner.js.map +1 -0
  182. package/lib/module/components/FieldFlowDraftBanner/index.js +4 -0
  183. package/lib/module/components/FieldFlowDraftBanner/index.js.map +1 -0
  184. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  185. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  186. package/lib/module/components/FieldFlowInput/FieldFlowInput.js +190 -59
  187. package/lib/module/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  188. package/lib/module/components/FieldFlowInput/styles.js +48 -11
  189. package/lib/module/components/FieldFlowInput/styles.js.map +1 -1
  190. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +61 -0
  191. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  192. package/lib/module/components/FieldFlowMaskedInput/index.js +4 -0
  193. package/lib/module/components/FieldFlowMaskedInput/index.js.map +1 -0
  194. package/lib/module/components/FieldFlowMaskedInput/types.js +4 -0
  195. package/lib/module/components/FieldFlowMaskedInput/types.js.map +1 -0
  196. package/lib/module/components/FieldFlowNumberStepper/FieldFlowNumberStepper.js +131 -0
  197. package/lib/module/components/FieldFlowNumberStepper/FieldFlowNumberStepper.js.map +1 -0
  198. package/lib/module/components/FieldFlowNumberStepper/index.js +4 -0
  199. package/lib/module/components/FieldFlowNumberStepper/index.js.map +1 -0
  200. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js +250 -0
  201. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  202. package/lib/module/components/FieldFlowOTP/index.js +4 -0
  203. package/lib/module/components/FieldFlowOTP/index.js.map +1 -0
  204. package/lib/module/components/FieldFlowOTP/types.js +4 -0
  205. package/lib/module/components/FieldFlowOTP/types.js.map +1 -0
  206. package/lib/module/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.js +117 -0
  207. package/lib/module/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.js.map +1 -0
  208. package/lib/module/components/FieldFlowPasswordStrength/index.js +4 -0
  209. package/lib/module/components/FieldFlowPasswordStrength/index.js.map +1 -0
  210. package/lib/module/components/FieldFlowPhone/FieldFlowPhone.js +258 -0
  211. package/lib/module/components/FieldFlowPhone/FieldFlowPhone.js.map +1 -0
  212. package/lib/module/components/FieldFlowPhone/index.js +4 -0
  213. package/lib/module/components/FieldFlowPhone/index.js.map +1 -0
  214. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js +159 -0
  215. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  216. package/lib/module/components/FieldFlowRadio/index.js +4 -0
  217. package/lib/module/components/FieldFlowRadio/index.js.map +1 -0
  218. package/lib/module/components/FieldFlowRating/FieldFlowRating.js +101 -0
  219. package/lib/module/components/FieldFlowRating/FieldFlowRating.js.map +1 -0
  220. package/lib/module/components/FieldFlowRating/index.js +4 -0
  221. package/lib/module/components/FieldFlowRating/index.js.map +1 -0
  222. package/lib/module/components/FieldFlowSection/FieldFlowSection.js +136 -0
  223. package/lib/module/components/FieldFlowSection/FieldFlowSection.js.map +1 -0
  224. package/lib/module/components/FieldFlowSection/index.js +4 -0
  225. package/lib/module/components/FieldFlowSection/index.js.map +1 -0
  226. package/lib/module/components/FieldFlowSegmented/FieldFlowSegmented.js +190 -0
  227. package/lib/module/components/FieldFlowSegmented/FieldFlowSegmented.js.map +1 -0
  228. package/lib/module/components/FieldFlowSegmented/index.js +4 -0
  229. package/lib/module/components/FieldFlowSegmented/index.js.map +1 -0
  230. package/lib/module/components/FieldFlowSignature/FieldFlowSignature.js +195 -0
  231. package/lib/module/components/FieldFlowSignature/FieldFlowSignature.js.map +1 -0
  232. package/lib/module/components/FieldFlowSignature/index.js +4 -0
  233. package/lib/module/components/FieldFlowSignature/index.js.map +1 -0
  234. package/lib/module/components/FieldFlowSlider/FieldFlowSlider.js +173 -0
  235. package/lib/module/components/FieldFlowSlider/FieldFlowSlider.js.map +1 -0
  236. package/lib/module/components/FieldFlowSlider/index.js +4 -0
  237. package/lib/module/components/FieldFlowSlider/index.js.map +1 -0
  238. package/lib/module/components/FieldFlowStepper/FieldFlowStepper.js +161 -0
  239. package/lib/module/components/FieldFlowStepper/FieldFlowStepper.js.map +1 -0
  240. package/lib/module/components/FieldFlowStepper/index.js +4 -0
  241. package/lib/module/components/FieldFlowStepper/index.js.map +1 -0
  242. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js +147 -0
  243. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  244. package/lib/module/components/FieldFlowSwitch/index.js +4 -0
  245. package/lib/module/components/FieldFlowSwitch/index.js.map +1 -0
  246. package/lib/module/components/FieldFlowTags/FieldFlowTags.js +235 -0
  247. package/lib/module/components/FieldFlowTags/FieldFlowTags.js.map +1 -0
  248. package/lib/module/components/FieldFlowTags/index.js +4 -0
  249. package/lib/module/components/FieldFlowTags/index.js.map +1 -0
  250. package/lib/module/components/FieldFlowTypeahead/FieldFlowTypeahead.js +222 -0
  251. package/lib/module/components/FieldFlowTypeahead/FieldFlowTypeahead.js.map +1 -0
  252. package/lib/module/components/FieldFlowTypeahead/index.js +4 -0
  253. package/lib/module/components/FieldFlowTypeahead/index.js.map +1 -0
  254. package/lib/module/components/FieldFlowUpload/FieldFlowUpload.js +186 -0
  255. package/lib/module/components/FieldFlowUpload/FieldFlowUpload.js.map +1 -0
  256. package/lib/module/components/FieldFlowUpload/index.js +4 -0
  257. package/lib/module/components/FieldFlowUpload/index.js.map +1 -0
  258. package/lib/module/hooks/index.js +5 -0
  259. package/lib/module/hooks/index.js.map +1 -1
  260. package/lib/module/hooks/useFieldFlowArray.js +106 -0
  261. package/lib/module/hooks/useFieldFlowArray.js.map +1 -0
  262. package/lib/module/hooks/useFieldFlowDirtyGuard.js +49 -0
  263. package/lib/module/hooks/useFieldFlowDirtyGuard.js.map +1 -0
  264. package/lib/module/hooks/useFieldFlowDraft.js +165 -0
  265. package/lib/module/hooks/useFieldFlowDraft.js.map +1 -0
  266. package/lib/module/hooks/useFieldFlowForm.js +351 -42
  267. package/lib/module/hooks/useFieldFlowForm.js.map +1 -1
  268. package/lib/module/hooks/useFieldFlowSteps.js +73 -0
  269. package/lib/module/hooks/useFieldFlowSteps.js.map +1 -0
  270. package/lib/module/hooks/useFormIntelligence.js +126 -0
  271. package/lib/module/hooks/useFormIntelligence.js.map +1 -0
  272. package/lib/module/i18n/index.js +4 -0
  273. package/lib/module/i18n/index.js.map +1 -0
  274. package/lib/module/i18n/messages.js +82 -0
  275. package/lib/module/i18n/messages.js.map +1 -0
  276. package/lib/module/icons/Icon.js +720 -31
  277. package/lib/module/icons/Icon.js.map +1 -1
  278. package/lib/module/icons/index.js +1 -0
  279. package/lib/module/icons/index.js.map +1 -1
  280. package/lib/module/icons/renderIcon.js +19 -0
  281. package/lib/module/icons/renderIcon.js.map +1 -0
  282. package/lib/module/index.js +42 -5
  283. package/lib/module/index.js.map +1 -1
  284. package/lib/module/intelligence/formAccessibility.js +72 -0
  285. package/lib/module/intelligence/formAccessibility.js.map +1 -0
  286. package/lib/module/intelligence/index.js +4 -0
  287. package/lib/module/intelligence/index.js.map +1 -0
  288. package/lib/module/intelligence/types.js +2 -0
  289. package/lib/module/intelligence/types.js.map +1 -0
  290. package/lib/module/motion/index.js +5 -0
  291. package/lib/module/motion/index.js.map +1 -0
  292. package/lib/module/motion/useFieldMotion.js +107 -0
  293. package/lib/module/motion/useFieldMotion.js.map +1 -0
  294. package/lib/module/motion/useReducedMotion.js +29 -0
  295. package/lib/module/motion/useReducedMotion.js.map +1 -0
  296. package/lib/module/theme/index.js +1 -0
  297. package/lib/module/theme/index.js.map +1 -1
  298. package/lib/module/theme/presets.js +138 -0
  299. package/lib/module/theme/presets.js.map +1 -0
  300. package/lib/module/utils/affordance.js +140 -0
  301. package/lib/module/utils/affordance.js.map +1 -0
  302. package/lib/module/utils/masks.js +118 -0
  303. package/lib/module/utils/masks.js.map +1 -0
  304. package/lib/module/utils/passwordStrength.js +74 -0
  305. package/lib/module/utils/passwordStrength.js.map +1 -0
  306. package/lib/module/utils/phoneCountries.js +113 -0
  307. package/lib/module/utils/phoneCountries.js.map +1 -0
  308. package/lib/module/validation/index.js +1 -0
  309. package/lib/module/validation/index.js.map +1 -1
  310. package/lib/module/validation/validators.js +10 -7
  311. package/lib/module/validation/validators.js.map +1 -1
  312. package/lib/module/validation/zodAdapter.js +84 -0
  313. package/lib/module/validation/zodAdapter.js.map +1 -0
  314. package/lib/typescript/adapters/index.d.ts +3 -0
  315. package/lib/typescript/adapters/index.d.ts.map +1 -0
  316. package/lib/typescript/adapters/reactHookForm.d.ts +56 -0
  317. package/lib/typescript/adapters/reactHookForm.d.ts.map +1 -0
  318. package/lib/typescript/components/FieldFlowAffordance/FieldFlowAffordance.d.ts +29 -0
  319. package/lib/typescript/components/FieldFlowAffordance/FieldFlowAffordance.d.ts.map +1 -0
  320. package/lib/typescript/components/FieldFlowAffordance/index.d.ts +3 -0
  321. package/lib/typescript/components/FieldFlowAffordance/index.d.ts.map +1 -0
  322. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts +36 -0
  323. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts.map +1 -0
  324. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts +3 -0
  325. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts.map +1 -0
  326. package/lib/typescript/components/FieldFlowCreditCard/FieldFlowCreditCard.d.ts +27 -0
  327. package/lib/typescript/components/FieldFlowCreditCard/FieldFlowCreditCard.d.ts.map +1 -0
  328. package/lib/typescript/components/FieldFlowCreditCard/index.d.ts +3 -0
  329. package/lib/typescript/components/FieldFlowCreditCard/index.d.ts.map +1 -0
  330. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts +4 -0
  331. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts.map +1 -0
  332. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts +3 -0
  333. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts.map +1 -0
  334. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts +55 -0
  335. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts.map +1 -0
  336. package/lib/typescript/components/FieldFlowDraftBanner/FieldFlowDraftBanner.d.ts +24 -0
  337. package/lib/typescript/components/FieldFlowDraftBanner/FieldFlowDraftBanner.d.ts.map +1 -0
  338. package/lib/typescript/components/FieldFlowDraftBanner/index.d.ts +3 -0
  339. package/lib/typescript/components/FieldFlowDraftBanner/index.d.ts.map +1 -0
  340. package/lib/typescript/components/FieldFlowDropdown/FieldFlowDropdown.d.ts.map +1 -1
  341. package/lib/typescript/components/FieldFlowDropdown/types.d.ts +7 -1
  342. package/lib/typescript/components/FieldFlowDropdown/types.d.ts.map +1 -1
  343. package/lib/typescript/components/FieldFlowInput/FieldFlowInput.d.ts.map +1 -1
  344. package/lib/typescript/components/FieldFlowInput/styles.d.ts +35 -2
  345. package/lib/typescript/components/FieldFlowInput/styles.d.ts.map +1 -1
  346. package/lib/typescript/components/FieldFlowInput/types.d.ts +55 -4
  347. package/lib/typescript/components/FieldFlowInput/types.d.ts.map +1 -1
  348. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts +5 -0
  349. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts.map +1 -0
  350. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts +3 -0
  351. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts.map +1 -0
  352. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts +20 -0
  353. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts.map +1 -0
  354. package/lib/typescript/components/FieldFlowNumberStepper/FieldFlowNumberStepper.d.ts +34 -0
  355. package/lib/typescript/components/FieldFlowNumberStepper/FieldFlowNumberStepper.d.ts.map +1 -0
  356. package/lib/typescript/components/FieldFlowNumberStepper/index.d.ts +3 -0
  357. package/lib/typescript/components/FieldFlowNumberStepper/index.d.ts.map +1 -0
  358. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts +4 -0
  359. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts.map +1 -0
  360. package/lib/typescript/components/FieldFlowOTP/index.d.ts +3 -0
  361. package/lib/typescript/components/FieldFlowOTP/index.d.ts.map +1 -0
  362. package/lib/typescript/components/FieldFlowOTP/types.d.ts +52 -0
  363. package/lib/typescript/components/FieldFlowOTP/types.d.ts.map +1 -0
  364. package/lib/typescript/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.d.ts +26 -0
  365. package/lib/typescript/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.d.ts.map +1 -0
  366. package/lib/typescript/components/FieldFlowPasswordStrength/index.d.ts +3 -0
  367. package/lib/typescript/components/FieldFlowPasswordStrength/index.d.ts.map +1 -0
  368. package/lib/typescript/components/FieldFlowPhone/FieldFlowPhone.d.ts +40 -0
  369. package/lib/typescript/components/FieldFlowPhone/FieldFlowPhone.d.ts.map +1 -0
  370. package/lib/typescript/components/FieldFlowPhone/index.d.ts +3 -0
  371. package/lib/typescript/components/FieldFlowPhone/index.d.ts.map +1 -0
  372. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts +39 -0
  373. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts.map +1 -0
  374. package/lib/typescript/components/FieldFlowRadio/index.d.ts +3 -0
  375. package/lib/typescript/components/FieldFlowRadio/index.d.ts.map +1 -0
  376. package/lib/typescript/components/FieldFlowRating/FieldFlowRating.d.ts +30 -0
  377. package/lib/typescript/components/FieldFlowRating/FieldFlowRating.d.ts.map +1 -0
  378. package/lib/typescript/components/FieldFlowRating/index.d.ts +3 -0
  379. package/lib/typescript/components/FieldFlowRating/index.d.ts.map +1 -0
  380. package/lib/typescript/components/FieldFlowSection/FieldFlowSection.d.ts +35 -0
  381. package/lib/typescript/components/FieldFlowSection/FieldFlowSection.d.ts.map +1 -0
  382. package/lib/typescript/components/FieldFlowSection/index.d.ts +3 -0
  383. package/lib/typescript/components/FieldFlowSection/index.d.ts.map +1 -0
  384. package/lib/typescript/components/FieldFlowSegmented/FieldFlowSegmented.d.ts +28 -0
  385. package/lib/typescript/components/FieldFlowSegmented/FieldFlowSegmented.d.ts.map +1 -0
  386. package/lib/typescript/components/FieldFlowSegmented/index.d.ts +3 -0
  387. package/lib/typescript/components/FieldFlowSegmented/index.d.ts.map +1 -0
  388. package/lib/typescript/components/FieldFlowSignature/FieldFlowSignature.d.ts +41 -0
  389. package/lib/typescript/components/FieldFlowSignature/FieldFlowSignature.d.ts.map +1 -0
  390. package/lib/typescript/components/FieldFlowSignature/index.d.ts +3 -0
  391. package/lib/typescript/components/FieldFlowSignature/index.d.ts.map +1 -0
  392. package/lib/typescript/components/FieldFlowSlider/FieldFlowSlider.d.ts +30 -0
  393. package/lib/typescript/components/FieldFlowSlider/FieldFlowSlider.d.ts.map +1 -0
  394. package/lib/typescript/components/FieldFlowSlider/index.d.ts +3 -0
  395. package/lib/typescript/components/FieldFlowSlider/index.d.ts.map +1 -0
  396. package/lib/typescript/components/FieldFlowStepper/FieldFlowStepper.d.ts +31 -0
  397. package/lib/typescript/components/FieldFlowStepper/FieldFlowStepper.d.ts.map +1 -0
  398. package/lib/typescript/components/FieldFlowStepper/index.d.ts +3 -0
  399. package/lib/typescript/components/FieldFlowStepper/index.d.ts.map +1 -0
  400. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts +31 -0
  401. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts.map +1 -0
  402. package/lib/typescript/components/FieldFlowSwitch/index.d.ts +3 -0
  403. package/lib/typescript/components/FieldFlowSwitch/index.d.ts.map +1 -0
  404. package/lib/typescript/components/FieldFlowTags/FieldFlowTags.d.ts +41 -0
  405. package/lib/typescript/components/FieldFlowTags/FieldFlowTags.d.ts.map +1 -0
  406. package/lib/typescript/components/FieldFlowTags/index.d.ts +3 -0
  407. package/lib/typescript/components/FieldFlowTags/index.d.ts.map +1 -0
  408. package/lib/typescript/components/FieldFlowTypeahead/FieldFlowTypeahead.d.ts +43 -0
  409. package/lib/typescript/components/FieldFlowTypeahead/FieldFlowTypeahead.d.ts.map +1 -0
  410. package/lib/typescript/components/FieldFlowTypeahead/index.d.ts +3 -0
  411. package/lib/typescript/components/FieldFlowTypeahead/index.d.ts.map +1 -0
  412. package/lib/typescript/components/FieldFlowUpload/FieldFlowUpload.d.ts +52 -0
  413. package/lib/typescript/components/FieldFlowUpload/FieldFlowUpload.d.ts.map +1 -0
  414. package/lib/typescript/components/FieldFlowUpload/index.d.ts +3 -0
  415. package/lib/typescript/components/FieldFlowUpload/index.d.ts.map +1 -0
  416. package/lib/typescript/hooks/index.d.ts +11 -1
  417. package/lib/typescript/hooks/index.d.ts.map +1 -1
  418. package/lib/typescript/hooks/useFieldFlowArray.d.ts +54 -0
  419. package/lib/typescript/hooks/useFieldFlowArray.d.ts.map +1 -0
  420. package/lib/typescript/hooks/useFieldFlowDirtyGuard.d.ts +26 -0
  421. package/lib/typescript/hooks/useFieldFlowDirtyGuard.d.ts.map +1 -0
  422. package/lib/typescript/hooks/useFieldFlowDraft.d.ts +64 -0
  423. package/lib/typescript/hooks/useFieldFlowDraft.d.ts.map +1 -0
  424. package/lib/typescript/hooks/useFieldFlowForm.d.ts +124 -7
  425. package/lib/typescript/hooks/useFieldFlowForm.d.ts.map +1 -1
  426. package/lib/typescript/hooks/useFieldFlowSteps.d.ts +42 -0
  427. package/lib/typescript/hooks/useFieldFlowSteps.d.ts.map +1 -0
  428. package/lib/typescript/hooks/useFormIntelligence.d.ts +23 -0
  429. package/lib/typescript/hooks/useFormIntelligence.d.ts.map +1 -0
  430. package/lib/typescript/i18n/index.d.ts +3 -0
  431. package/lib/typescript/i18n/index.d.ts.map +1 -0
  432. package/lib/typescript/i18n/messages.d.ts +16 -0
  433. package/lib/typescript/i18n/messages.d.ts.map +1 -0
  434. package/lib/typescript/icons/Icon.d.ts +2 -2
  435. package/lib/typescript/icons/Icon.d.ts.map +1 -1
  436. package/lib/typescript/icons/index.d.ts +2 -0
  437. package/lib/typescript/icons/index.d.ts.map +1 -1
  438. package/lib/typescript/icons/renderIcon.d.ts +6 -0
  439. package/lib/typescript/icons/renderIcon.d.ts.map +1 -0
  440. package/lib/typescript/index.d.ts +67 -9
  441. package/lib/typescript/index.d.ts.map +1 -1
  442. package/lib/typescript/intelligence/formAccessibility.d.ts +21 -0
  443. package/lib/typescript/intelligence/formAccessibility.d.ts.map +1 -0
  444. package/lib/typescript/intelligence/index.d.ts +4 -0
  445. package/lib/typescript/intelligence/index.d.ts.map +1 -0
  446. package/lib/typescript/intelligence/types.d.ts +36 -0
  447. package/lib/typescript/intelligence/types.d.ts.map +1 -0
  448. package/lib/typescript/motion/index.d.ts +4 -0
  449. package/lib/typescript/motion/index.d.ts.map +1 -0
  450. package/lib/typescript/motion/useFieldMotion.d.ts +31 -0
  451. package/lib/typescript/motion/useFieldMotion.d.ts.map +1 -0
  452. package/lib/typescript/motion/useReducedMotion.d.ts +5 -0
  453. package/lib/typescript/motion/useReducedMotion.d.ts.map +1 -0
  454. package/lib/typescript/theme/index.d.ts +2 -0
  455. package/lib/typescript/theme/index.d.ts.map +1 -1
  456. package/lib/typescript/theme/presets.d.ts +134 -0
  457. package/lib/typescript/theme/presets.d.ts.map +1 -0
  458. package/lib/typescript/types/index.d.ts +4 -0
  459. package/lib/typescript/types/index.d.ts.map +1 -1
  460. package/lib/typescript/utils/affordance.d.ts +36 -0
  461. package/lib/typescript/utils/affordance.d.ts.map +1 -0
  462. package/lib/typescript/utils/masks.d.ts +37 -0
  463. package/lib/typescript/utils/masks.d.ts.map +1 -0
  464. package/lib/typescript/utils/passwordStrength.d.ts +26 -0
  465. package/lib/typescript/utils/passwordStrength.d.ts.map +1 -0
  466. package/lib/typescript/utils/phoneCountries.d.ts +12 -0
  467. package/lib/typescript/utils/phoneCountries.d.ts.map +1 -0
  468. package/lib/typescript/validation/index.d.ts +2 -0
  469. package/lib/typescript/validation/index.d.ts.map +1 -1
  470. package/lib/typescript/validation/validators.d.ts +3 -1
  471. package/lib/typescript/validation/validators.d.ts.map +1 -1
  472. package/lib/typescript/validation/zodAdapter.d.ts +53 -0
  473. package/lib/typescript/validation/zodAdapter.d.ts.map +1 -0
  474. package/package.json +34 -3
  475. package/src/adapters/index.ts +9 -0
  476. package/src/adapters/reactHookForm.tsx +152 -0
  477. package/src/components/FieldFlowAffordance/FieldFlowAffordance.tsx +143 -0
  478. package/src/components/FieldFlowAffordance/index.ts +2 -0
  479. package/src/components/FieldFlowCheckbox/FieldFlowCheckbox.tsx +174 -0
  480. package/src/components/FieldFlowCheckbox/index.ts +2 -0
  481. package/src/components/FieldFlowCreditCard/FieldFlowCreditCard.tsx +152 -0
  482. package/src/components/FieldFlowCreditCard/index.ts +2 -0
  483. package/src/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.tsx +585 -0
  484. package/src/components/FieldFlowDateTimePicker/index.ts +2 -0
  485. package/src/components/FieldFlowDateTimePicker/types.ts +57 -0
  486. package/src/components/FieldFlowDraftBanner/FieldFlowDraftBanner.tsx +169 -0
  487. package/src/components/FieldFlowDraftBanner/index.ts +2 -0
  488. package/src/components/FieldFlowDropdown/FieldFlowDropdown.tsx +17 -7
  489. package/src/components/FieldFlowDropdown/types.ts +8 -1
  490. package/src/components/FieldFlowInput/FieldFlowInput.tsx +230 -66
  491. package/src/components/FieldFlowInput/styles.ts +57 -6
  492. package/src/components/FieldFlowInput/types.ts +56 -4
  493. package/src/components/FieldFlowMaskedInput/FieldFlowMaskedInput.tsx +76 -0
  494. package/src/components/FieldFlowMaskedInput/index.ts +2 -0
  495. package/src/components/FieldFlowMaskedInput/types.ts +22 -0
  496. package/src/components/FieldFlowNumberStepper/FieldFlowNumberStepper.tsx +156 -0
  497. package/src/components/FieldFlowNumberStepper/index.ts +2 -0
  498. package/src/components/FieldFlowOTP/FieldFlowOTP.tsx +305 -0
  499. package/src/components/FieldFlowOTP/index.ts +2 -0
  500. package/src/components/FieldFlowOTP/types.ts +57 -0
  501. package/src/components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.tsx +148 -0
  502. package/src/components/FieldFlowPasswordStrength/index.ts +2 -0
  503. package/src/components/FieldFlowPhone/FieldFlowPhone.tsx +298 -0
  504. package/src/components/FieldFlowPhone/index.ts +2 -0
  505. package/src/components/FieldFlowRadio/FieldFlowRadio.tsx +215 -0
  506. package/src/components/FieldFlowRadio/index.ts +2 -0
  507. package/src/components/FieldFlowRating/FieldFlowRating.tsx +121 -0
  508. package/src/components/FieldFlowRating/index.ts +2 -0
  509. package/src/components/FieldFlowSection/FieldFlowSection.tsx +176 -0
  510. package/src/components/FieldFlowSection/index.ts +2 -0
  511. package/src/components/FieldFlowSegmented/FieldFlowSegmented.tsx +248 -0
  512. package/src/components/FieldFlowSegmented/index.ts +2 -0
  513. package/src/components/FieldFlowSignature/FieldFlowSignature.tsx +241 -0
  514. package/src/components/FieldFlowSignature/index.ts +7 -0
  515. package/src/components/FieldFlowSlider/FieldFlowSlider.tsx +190 -0
  516. package/src/components/FieldFlowSlider/index.ts +2 -0
  517. package/src/components/FieldFlowStepper/FieldFlowStepper.tsx +190 -0
  518. package/src/components/FieldFlowStepper/index.ts +2 -0
  519. package/src/components/FieldFlowSwitch/FieldFlowSwitch.tsx +172 -0
  520. package/src/components/FieldFlowSwitch/index.ts +2 -0
  521. package/src/components/FieldFlowTags/FieldFlowTags.tsx +319 -0
  522. package/src/components/FieldFlowTags/index.ts +2 -0
  523. package/src/components/FieldFlowTypeahead/FieldFlowTypeahead.tsx +261 -0
  524. package/src/components/FieldFlowTypeahead/index.ts +2 -0
  525. package/src/components/FieldFlowUpload/FieldFlowUpload.tsx +226 -0
  526. package/src/components/FieldFlowUpload/index.ts +6 -0
  527. package/src/hooks/index.ts +34 -0
  528. package/src/hooks/useFieldFlowArray.ts +153 -0
  529. package/src/hooks/useFieldFlowDirtyGuard.ts +70 -0
  530. package/src/hooks/useFieldFlowDraft.ts +221 -0
  531. package/src/hooks/useFieldFlowForm.ts +545 -40
  532. package/src/hooks/useFieldFlowSteps.ts +130 -0
  533. package/src/hooks/useFormIntelligence.ts +207 -0
  534. package/src/i18n/index.ts +6 -0
  535. package/src/i18n/messages.ts +101 -0
  536. package/src/icons/Icon.tsx +451 -5
  537. package/src/icons/index.ts +2 -0
  538. package/src/icons/renderIcon.tsx +17 -0
  539. package/src/index.ts +208 -7
  540. package/src/intelligence/formAccessibility.ts +87 -0
  541. package/src/intelligence/index.ts +12 -0
  542. package/src/intelligence/types.ts +34 -0
  543. package/src/motion/index.ts +3 -0
  544. package/src/motion/useFieldMotion.ts +120 -0
  545. package/src/motion/useReducedMotion.ts +31 -0
  546. package/src/theme/index.ts +2 -0
  547. package/src/theme/presets.ts +120 -0
  548. package/src/types/index.ts +5 -0
  549. package/src/utils/affordance.ts +138 -0
  550. package/src/utils/masks.ts +137 -0
  551. package/src/utils/passwordStrength.ts +109 -0
  552. package/src/utils/phoneCountries.ts +44 -0
  553. package/src/validation/index.ts +7 -0
  554. package/src/validation/validators.ts +17 -7
  555. package/src/validation/zodAdapter.ts +103 -0
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PASSWORD_STRENGTH_COLORS = exports.DEFAULT_PASSWORD_RULES = void 0;
7
+ exports.evaluatePasswordStrength = evaluatePasswordStrength;
8
+ const DEFAULT_PASSWORD_RULES = exports.DEFAULT_PASSWORD_RULES = [{
9
+ id: 'length',
10
+ label: 'At least 8 characters',
11
+ test: p => p.length >= 8
12
+ }, {
13
+ id: 'lowercase',
14
+ label: 'A lowercase letter',
15
+ test: p => /[a-z]/.test(p)
16
+ }, {
17
+ id: 'uppercase',
18
+ label: 'An uppercase letter',
19
+ test: p => /[A-Z]/.test(p)
20
+ }, {
21
+ id: 'number',
22
+ label: 'A number',
23
+ test: p => /\d/.test(p)
24
+ }, {
25
+ id: 'symbol',
26
+ label: 'A symbol',
27
+ test: p => /[^A-Za-z0-9]/.test(p)
28
+ }];
29
+ const LEVEL_LABELS = {
30
+ empty: '',
31
+ weak: 'Weak',
32
+ fair: 'Fair',
33
+ good: 'Good',
34
+ strong: 'Strong'
35
+ };
36
+
37
+ /**
38
+ * Score a password against declarative rules (default NIST-ish checklist).
39
+ * Pure function — safe to unit test and reuse outside React.
40
+ */
41
+ function evaluatePasswordStrength(password, rules = DEFAULT_PASSWORD_RULES) {
42
+ if (!password) {
43
+ return {
44
+ score: 0,
45
+ level: 'empty',
46
+ progress: 0,
47
+ passed: [],
48
+ failed: [...rules],
49
+ label: LEVEL_LABELS.empty
50
+ };
51
+ }
52
+ const passed = [];
53
+ const failed = [];
54
+ for (const rule of rules) {
55
+ if (rule.test(password)) passed.push(rule);else failed.push(rule);
56
+ }
57
+ const score = passed.length;
58
+ const max = Math.max(rules.length, 1);
59
+ const ratio = score / max;
60
+ let level;
61
+ if (ratio < 0.4) level = 'weak';else if (ratio < 0.6) level = 'fair';else if (ratio < 0.85) level = 'good';else level = 'strong';
62
+ return {
63
+ score,
64
+ level,
65
+ progress: ratio,
66
+ passed,
67
+ failed,
68
+ label: LEVEL_LABELS[level]
69
+ };
70
+ }
71
+
72
+ /** Suggested bar colors for each level (consumers can override). */
73
+ const PASSWORD_STRENGTH_COLORS = exports.PASSWORD_STRENGTH_COLORS = {
74
+ weak: '#EF4444',
75
+ fair: '#F59E0B',
76
+ good: '#3B82F6',
77
+ strong: '#22C55E'
78
+ };
79
+ //# sourceMappingURL=passwordStrength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_PASSWORD_RULES","exports","id","label","test","p","length","LEVEL_LABELS","empty","weak","fair","good","strong","evaluatePasswordStrength","password","rules","score","level","progress","passed","failed","rule","push","max","Math","ratio","PASSWORD_STRENGTH_COLORS"],"sourceRoot":"../../../src","sources":["utils/passwordStrength.ts"],"mappings":";;;;;;;AAoBO,MAAMA,sBAA8C,GAAAC,OAAA,CAAAD,sBAAA,GAAG,CAC5D;EACEE,EAAE,EAAE,QAAQ;EACZC,KAAK,EAAE,uBAAuB;EAC9BC,IAAI,EAAEC,CAAC,IAAIA,CAAC,CAACC,MAAM,IAAI;AACzB,CAAC,EACD;EACEJ,EAAE,EAAE,WAAW;EACfC,KAAK,EAAE,oBAAoB;EAC3BC,IAAI,EAAEC,CAAC,IAAI,OAAO,CAACD,IAAI,CAACC,CAAC;AAC3B,CAAC,EACD;EACEH,EAAE,EAAE,WAAW;EACfC,KAAK,EAAE,qBAAqB;EAC5BC,IAAI,EAAEC,CAAC,IAAI,OAAO,CAACD,IAAI,CAACC,CAAC;AAC3B,CAAC,EACD;EACEH,EAAE,EAAE,QAAQ;EACZC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAEC,CAAC,IAAI,IAAI,CAACD,IAAI,CAACC,CAAC;AACxB,CAAC,EACD;EACEH,EAAE,EAAE,QAAQ;EACZC,KAAK,EAAE,UAAU;EACjBC,IAAI,EAAEC,CAAC,IAAI,cAAc,CAACD,IAAI,CAACC,CAAC;AAClC,CAAC,CACF;AAED,MAAME,YAAmD,GAAG;EAC1DC,KAAK,EAAE,EAAE;EACTC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,IAAI,EAAE,MAAM;EACZC,MAAM,EAAE;AACV,CAAC;;AAED;AACA;AACA;AACA;AACO,SAASC,wBAAwBA,CACtCC,QAAgB,EAChBC,KAA6B,GAAGf,sBAAsB,EAC9B;EACxB,IAAI,CAACc,QAAQ,EAAE;IACb,OAAO;MACLE,KAAK,EAAE,CAAC;MACRC,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,CAAC;MACXC,MAAM,EAAE,EAAE;MACVC,MAAM,EAAE,CAAC,GAAGL,KAAK,CAAC;MAClBZ,KAAK,EAAEI,YAAY,CAACC;IACtB,CAAC;EACH;EAEA,MAAMW,MAA8B,GAAG,EAAE;EACzC,MAAMC,MAA8B,GAAG,EAAE;EACzC,KAAK,MAAMC,IAAI,IAAIN,KAAK,EAAE;IACxB,IAAIM,IAAI,CAACjB,IAAI,CAACU,QAAQ,CAAC,EAAEK,MAAM,CAACG,IAAI,CAACD,IAAI,CAAC,CAAC,KACtCD,MAAM,CAACE,IAAI,CAACD,IAAI,CAAC;EACxB;EAEA,MAAML,KAAK,GAAGG,MAAM,CAACb,MAAM;EAC3B,MAAMiB,GAAG,GAAGC,IAAI,CAACD,GAAG,CAACR,KAAK,CAACT,MAAM,EAAE,CAAC,CAAC;EACrC,MAAMmB,KAAK,GAAGT,KAAK,GAAGO,GAAG;EAEzB,IAAIN,KAA4B;EAChC,IAAIQ,KAAK,GAAG,GAAG,EAAER,KAAK,GAAG,MAAM,CAAC,KAC3B,IAAIQ,KAAK,GAAG,GAAG,EAAER,KAAK,GAAG,MAAM,CAAC,KAChC,IAAIQ,KAAK,GAAG,IAAI,EAAER,KAAK,GAAG,MAAM,CAAC,KACjCA,KAAK,GAAG,QAAQ;EAErB,OAAO;IACLD,KAAK;IACLC,KAAK;IACLC,QAAQ,EAAEO,KAAK;IACfN,MAAM;IACNC,MAAM;IACNjB,KAAK,EAAEI,YAAY,CAACU,KAAK;EAC3B,CAAC;AACH;;AAEA;AACO,MAAMS,wBAAiF,GAAAzB,OAAA,CAAAyB,wBAAA,GAAG;EAC/FjB,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,IAAI,EAAE,SAAS;EACfC,MAAM,EAAE;AACV,CAAC","ignoreList":[]}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DEFAULT_COUNTRY_DIALS = void 0;
7
+ exports.composeE164 = composeE164;
8
+ exports.findCountryByCode = findCountryByCode;
9
+ /** Common dial codes for `FieldFlowPhone`. Extend via `countries` prop. */
10
+ const DEFAULT_COUNTRY_DIALS = exports.DEFAULT_COUNTRY_DIALS = [{
11
+ code: 'US',
12
+ name: 'United States',
13
+ dial: '+1',
14
+ flag: '🇺🇸'
15
+ }, {
16
+ code: 'GB',
17
+ name: 'United Kingdom',
18
+ dial: '+44',
19
+ flag: '🇬🇧'
20
+ }, {
21
+ code: 'CA',
22
+ name: 'Canada',
23
+ dial: '+1',
24
+ flag: '🇨🇦'
25
+ }, {
26
+ code: 'AU',
27
+ name: 'Australia',
28
+ dial: '+61',
29
+ flag: '🇦🇺'
30
+ }, {
31
+ code: 'DE',
32
+ name: 'Germany',
33
+ dial: '+49',
34
+ flag: '🇩🇪'
35
+ }, {
36
+ code: 'FR',
37
+ name: 'France',
38
+ dial: '+33',
39
+ flag: '🇫🇷'
40
+ }, {
41
+ code: 'IN',
42
+ name: 'India',
43
+ dial: '+91',
44
+ flag: '🇮🇳'
45
+ }, {
46
+ code: 'PK',
47
+ name: 'Pakistan',
48
+ dial: '+92',
49
+ flag: '🇵🇰'
50
+ }, {
51
+ code: 'AE',
52
+ name: 'United Arab Emirates',
53
+ dial: '+971',
54
+ flag: '🇦🇪'
55
+ }, {
56
+ code: 'SA',
57
+ name: 'Saudi Arabia',
58
+ dial: '+966',
59
+ flag: '🇸🇦'
60
+ }, {
61
+ code: 'BR',
62
+ name: 'Brazil',
63
+ dial: '+55',
64
+ flag: '🇧🇷'
65
+ }, {
66
+ code: 'MX',
67
+ name: 'Mexico',
68
+ dial: '+52',
69
+ flag: '🇲🇽'
70
+ }, {
71
+ code: 'NG',
72
+ name: 'Nigeria',
73
+ dial: '+234',
74
+ flag: '🇳🇬'
75
+ }, {
76
+ code: 'ZA',
77
+ name: 'South Africa',
78
+ dial: '+27',
79
+ flag: '🇿🇦'
80
+ }, {
81
+ code: 'JP',
82
+ name: 'Japan',
83
+ dial: '+81',
84
+ flag: '🇯🇵'
85
+ }, {
86
+ code: 'KR',
87
+ name: 'South Korea',
88
+ dial: '+82',
89
+ flag: '🇰🇷'
90
+ }, {
91
+ code: 'CN',
92
+ name: 'China',
93
+ dial: '+86',
94
+ flag: '🇨🇳'
95
+ }, {
96
+ code: 'SG',
97
+ name: 'Singapore',
98
+ dial: '+65',
99
+ flag: '🇸🇬'
100
+ }, {
101
+ code: 'TR',
102
+ name: 'Turkey',
103
+ dial: '+90',
104
+ flag: '🇹🇷'
105
+ }, {
106
+ code: 'ES',
107
+ name: 'Spain',
108
+ dial: '+34',
109
+ flag: '🇪🇸'
110
+ }];
111
+ function findCountryByCode(code, list = DEFAULT_COUNTRY_DIALS) {
112
+ return list.find(c => c.code === code);
113
+ }
114
+ function composeE164(dial, national) {
115
+ const digits = national.replace(/\D/g, '');
116
+ const dialDigits = dial.replace(/\D/g, '');
117
+ return `+${dialDigits}${digits}`;
118
+ }
119
+ //# sourceMappingURL=phoneCountries.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["DEFAULT_COUNTRY_DIALS","exports","code","name","dial","flag","findCountryByCode","list","find","c","composeE164","national","digits","replace","dialDigits"],"sourceRoot":"../../../src","sources":["utils/phoneCountries.ts"],"mappings":"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","ignoreList":[]}
@@ -3,12 +3,24 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ Object.defineProperty(exports, "createZodSubmitGuard", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _zodAdapter.createZodSubmitGuard;
10
+ }
11
+ });
6
12
  Object.defineProperty(exports, "emailValidator", {
7
13
  enumerable: true,
8
14
  get: function () {
9
15
  return _validators.emailValidator;
10
16
  }
11
17
  });
18
+ Object.defineProperty(exports, "fieldRulesFromZodString", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _zodAdapter.fieldRulesFromZodString;
22
+ }
23
+ });
12
24
  Object.defineProperty(exports, "isValidEmail", {
13
25
  enumerable: true,
14
26
  get: function () {
@@ -75,6 +87,19 @@ Object.defineProperty(exports, "useValidation", {
75
87
  return _useValidation.useValidation;
76
88
  }
77
89
  });
90
+ Object.defineProperty(exports, "zodFormValidate", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _zodAdapter.zodFormValidate;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "zodToFormErrors", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _zodAdapter.zodToFormErrors;
100
+ }
101
+ });
78
102
  var _validators = require("./validators");
79
103
  var _useValidation = require("./useValidation");
104
+ var _zodAdapter = require("./zodAdapter");
80
105
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_validators","require","_useValidation"],"sourceRoot":"../../../src","sources":["validation/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAaA,IAAAC,cAAA,GAAAD,OAAA","ignoreList":[]}
1
+ {"version":3,"names":["_validators","require","_useValidation","_zodAdapter"],"sourceRoot":"../../../src","sources":["validation/index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAaA,IAAAC,cAAA,GAAAD,OAAA;AAEA,IAAAE,WAAA,GAAAF,OAAA","ignoreList":[]}
@@ -5,6 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.requiredValidator = exports.phoneValidator = exports.patternValidator = exports.numberValidator = exports.minLengthValidator = exports.maxLengthValidator = exports.isValidPhone = exports.isValidNumber = exports.isValidEmail = exports.emailValidator = void 0;
7
7
  exports.runRules = runRules;
8
+ var _messages = require("../i18n/messages");
8
9
  const EMAIL_REGEX = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
9
10
  const NUMBER_REGEX = /^-?\d+(\.\d+)?$/;
10
11
  const PHONE_REGEX = /^[+]?[\d\s()-]{7,20}$/;
@@ -66,42 +67,44 @@ const patternValidator = (pattern, message = 'Invalid format') => value => value
66
67
  /**
67
68
  * Turns a declarative `FieldFlowRules` object into an ordered list of validators
68
69
  * and runs them against a value, stopping at (and returning) the first failure.
70
+ * Pass `messages` (or use `locale` via `useFieldFlowForm`) for localized defaults.
69
71
  */
70
72
  exports.patternValidator = patternValidator;
71
- function runRules(value, rules) {
73
+ function runRules(value, rules, messages) {
72
74
  if (!rules) return {
73
75
  valid: true
74
76
  };
77
+ const msg = messages ?? (0, _messages.getValidationMessages)('en');
75
78
  const validators = [];
76
79
  if (rules.required) {
77
- const message = typeof rules.required === 'string' ? rules.required : undefined;
80
+ const message = typeof rules.required === 'string' ? rules.required : msg.required;
78
81
  validators.push(requiredValidator(message));
79
82
  }
80
83
  if (rules.email) {
81
- const message = typeof rules.email === 'string' ? rules.email : undefined;
84
+ const message = typeof rules.email === 'string' ? rules.email : msg.email;
82
85
  validators.push(emailValidator(message));
83
86
  }
84
87
  if (rules.number) {
85
- const message = typeof rules.number === 'string' ? rules.number : undefined;
88
+ const message = typeof rules.number === 'string' ? rules.number : msg.number;
86
89
  validators.push(numberValidator(message));
87
90
  }
88
91
  if (rules.minLength !== undefined) {
89
92
  const cfg = typeof rules.minLength === 'number' ? {
90
93
  value: rules.minLength
91
94
  } : rules.minLength;
92
- validators.push(minLengthValidator(cfg.value, cfg.message));
95
+ validators.push(minLengthValidator(cfg.value, cfg.message ?? msg.minLength(cfg.value)));
93
96
  }
94
97
  if (rules.maxLength !== undefined) {
95
98
  const cfg = typeof rules.maxLength === 'number' ? {
96
99
  value: rules.maxLength
97
100
  } : rules.maxLength;
98
- validators.push(maxLengthValidator(cfg.value, cfg.message));
101
+ validators.push(maxLengthValidator(cfg.value, cfg.message ?? msg.maxLength(cfg.value)));
99
102
  }
100
103
  if (rules.pattern) {
101
104
  const cfg = rules.pattern instanceof RegExp ? {
102
105
  value: rules.pattern
103
106
  } : rules.pattern;
104
- validators.push(patternValidator(cfg.value, cfg.message));
107
+ validators.push(patternValidator(cfg.value, cfg.message ?? msg.pattern));
105
108
  }
106
109
  if (rules.custom) {
107
110
  const customs = Array.isArray(rules.custom) ? rules.custom : [rules.custom];
@@ -1 +1 @@
1
- {"version":3,"names":["EMAIL_REGEX","NUMBER_REGEX","PHONE_REGEX","isValidEmail","value","test","trim","exports","isValidNumber","isValidPhone","requiredValidator","message","undefined","length","valid","emailValidator","numberValidator","phoneValidator","minLengthValidator","min","maxLengthValidator","max","patternValidator","pattern","runRules","rules","validators","required","push","email","number","minLength","cfg","maxLength","RegExp","custom","customs","Array","isArray","validate","result"],"sourceRoot":"../../../src","sources":["validation/validators.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_messages","require","EMAIL_REGEX","NUMBER_REGEX","PHONE_REGEX","isValidEmail","value","test","trim","exports","isValidNumber","isValidPhone","requiredValidator","message","undefined","length","valid","emailValidator","numberValidator","phoneValidator","minLengthValidator","min","maxLengthValidator","max","patternValidator","pattern","runRules","rules","messages","msg","getValidationMessages","validators","required","push","email","number","minLength","cfg","maxLength","RegExp","custom","customs","Array","isArray","validate","result"],"sourceRoot":"../../../src","sources":["validation/validators.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,91 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.createZodSubmitGuard = createZodSubmitGuard;
7
+ exports.fieldRulesFromZodString = fieldRulesFromZodString;
8
+ exports.zodFormValidate = zodFormValidate;
9
+ exports.zodToFormErrors = zodToFormErrors;
10
+ /**
11
+ * Minimal structural types so consumers can pass a Zod schema without
12
+ * rn-inputforge taking a hard dependency on `zod`.
13
+ */
14
+
15
+ /**
16
+ * Convert a Zod schema parse failure into FieldFlow form errors
17
+ * (first message per top-level field).
18
+ */
19
+ function zodToFormErrors(schema, values) {
20
+ const result = schema.safeParse(values);
21
+ if (result.success) return {};
22
+ const errors = {};
23
+ for (const issue of result.error.issues) {
24
+ const key = issue.path[0];
25
+ if (typeof key === 'string' && errors[key] === undefined) {
26
+ errors[key] = issue.message;
27
+ }
28
+ }
29
+ return errors;
30
+ }
31
+
32
+ /**
33
+ * Drop into `useFieldFlowForm({ formValidate: zodFormValidate(schema) })`.
34
+ */
35
+ function zodFormValidate(schema) {
36
+ return values => zodToFormErrors(schema, values);
37
+ }
38
+
39
+ /**
40
+ * Wrap an `onSubmit` so it only runs when Zod passes.
41
+ * Useful if you keep FieldFlow rules for UX and Zod as the final gate.
42
+ */
43
+ function createZodSubmitGuard(schema, onValid, onInvalid) {
44
+ return async values => {
45
+ const errors = zodToFormErrors(schema, values);
46
+ if (Object.keys(errors).length > 0) {
47
+ onInvalid?.(errors);
48
+ return;
49
+ }
50
+ await onValid(values);
51
+ };
52
+ }
53
+
54
+ /**
55
+ * Best-effort map of a Zod string schema onto declarative `FieldFlowRules`.
56
+ * Supports required / email / min / max / regex. For refinements and objects,
57
+ * use `zodFormValidate` instead.
58
+ */
59
+ function fieldRulesFromZodString(zodStringSchema) {
60
+ const rules = {};
61
+ const def = zodStringSchema._def;
62
+ if (!def) return rules;
63
+ const optional = typeof zodStringSchema.isOptional === 'function' ? zodStringSchema.isOptional() : false;
64
+ if (!optional) rules.required = true;
65
+ for (const check of def.checks ?? []) {
66
+ if (check.kind === 'email') {
67
+ rules.email = check.message ?? true;
68
+ } else if (check.kind === 'min' && typeof check.value === 'number') {
69
+ if (check.value === 1 && !optional) {
70
+ rules.required = check.message ?? true;
71
+ } else {
72
+ rules.minLength = {
73
+ value: check.value,
74
+ message: check.message
75
+ };
76
+ }
77
+ } else if (check.kind === 'max' && typeof check.value === 'number') {
78
+ rules.maxLength = {
79
+ value: check.value,
80
+ message: check.message
81
+ };
82
+ } else if (check.kind === 'regex' && check.regex) {
83
+ rules.pattern = {
84
+ value: check.regex,
85
+ message: check.message
86
+ };
87
+ }
88
+ }
89
+ return rules;
90
+ }
91
+ //# sourceMappingURL=zodAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["zodToFormErrors","schema","values","result","safeParse","success","errors","issue","error","issues","key","path","undefined","message","zodFormValidate","createZodSubmitGuard","onValid","onInvalid","Object","keys","length","fieldRulesFromZodString","zodStringSchema","rules","def","_def","optional","isOptional","required","check","checks","kind","email","value","minLength","maxLength","regex","pattern"],"sourceRoot":"../../../src","sources":["validation/zodAdapter.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowController, FieldFlowTagsController, mapRhfToFieldFlowProps } from './reactHookForm';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowController","FieldFlowTagsController","mapRhfToFieldFlowProps"],"sourceRoot":"../../../src","sources":["adapters/index.ts"],"mappings":";;AAAA,SACEA,mBAAmB,EACnBC,uBAAuB,EACvBC,sBAAsB,QACjB,iBAAiB","ignoreList":[]}
@@ -0,0 +1,100 @@
1
+ "use strict";
2
+
3
+ import React from 'react';
4
+ import { Controller } from 'react-hook-form';
5
+ import { FieldFlowInput } from '../components/FieldFlowInput';
6
+ import { FieldFlowTags } from '../components/FieldFlowTags';
7
+ import { jsx as _jsx } from "react/jsx-runtime";
8
+ /**
9
+ * Drop-in `Controller` wrapper that renders a themed `FieldFlowInput`
10
+ * wired to react-hook-form. Requires the optional `react-hook-form` peer.
11
+ *
12
+ * @example
13
+ * const { control, handleSubmit } = useForm({ defaultValues: { email: '' } });
14
+ *
15
+ * <FieldFlowController
16
+ * control={control}
17
+ * name="email"
18
+ * type="email"
19
+ * label="Email"
20
+ * rules={{ required: 'Email is required' }}
21
+ * suggestions
22
+ * />
23
+ */
24
+ export function FieldFlowController({
25
+ control,
26
+ name,
27
+ rules,
28
+ defaultValue,
29
+ showError = true,
30
+ ...inputProps
31
+ }) {
32
+ return /*#__PURE__*/_jsx(Controller, {
33
+ control: control,
34
+ name: name,
35
+ rules: rules,
36
+ defaultValue: defaultValue,
37
+ render: ({
38
+ field,
39
+ fieldState
40
+ }) => /*#__PURE__*/_jsx(FieldFlowInput, {
41
+ ...inputProps,
42
+ ref: field.ref,
43
+ value: field.value == null ? '' : String(field.value),
44
+ onChangeText: field.onChange,
45
+ onBlur: field.onBlur,
46
+ errorText: showError ? fieldState.error?.message : undefined,
47
+ hasError: showError ? Boolean(fieldState.error) : undefined
48
+ })
49
+ });
50
+ }
51
+ /**
52
+ * RHF `Controller` for `FieldFlowTags` (string[] values).
53
+ */
54
+ export function FieldFlowTagsController({
55
+ control,
56
+ name,
57
+ rules,
58
+ defaultValue,
59
+ showError = true,
60
+ ...tagsProps
61
+ }) {
62
+ return /*#__PURE__*/_jsx(Controller, {
63
+ control: control,
64
+ name: name,
65
+ rules: rules,
66
+ defaultValue: defaultValue,
67
+ render: ({
68
+ field,
69
+ fieldState
70
+ }) => /*#__PURE__*/_jsx(FieldFlowTags, {
71
+ ...tagsProps,
72
+ value: Array.isArray(field.value) ? field.value : [],
73
+ onChange: field.onChange,
74
+ errorText: showError ? fieldState.error?.message : undefined,
75
+ hasError: showError ? Boolean(fieldState.error) : undefined
76
+ })
77
+ });
78
+ }
79
+
80
+ /**
81
+ * Map an RHF `field` + `fieldState` onto common FieldFlow input props.
82
+ * Useful when you need a custom render or a non-input FieldFlow component.
83
+ */
84
+ export function mapRhfToFieldFlowProps(args) {
85
+ const {
86
+ value,
87
+ onChange,
88
+ onBlur,
89
+ errorMessage,
90
+ showError = true
91
+ } = args;
92
+ return {
93
+ value: value == null ? '' : String(value),
94
+ onChangeText: onChange,
95
+ onBlur,
96
+ errorText: showError ? errorMessage : undefined,
97
+ hasError: showError ? Boolean(errorMessage) : undefined
98
+ };
99
+ }
100
+ //# sourceMappingURL=reactHookForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Controller","FieldFlowInput","FieldFlowTags","jsx","_jsx","FieldFlowController","control","name","rules","defaultValue","showError","inputProps","render","field","fieldState","ref","value","String","onChangeText","onChange","onBlur","errorText","error","message","undefined","hasError","Boolean","FieldFlowTagsController","tagsProps","Array","isArray","mapRhfToFieldFlowProps","args","errorMessage"],"sourceRoot":"../../../src","sources":["adapters/reactHookForm.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SACEC,UAAU,QAML,iBAAiB;AACxB,SAASC,cAAc,QAAkC,8BAA8B;AACvF,SAASC,aAAa,QAAiC,6BAA6B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2BrF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAGjC;EACAC,OAAO;EACPC,IAAI;EACJC,KAAK;EACLC,YAAY;EACZC,SAAS,GAAG,IAAI;EAChB,GAAGC;AAC0C,CAAC,EAAE;EAChD,oBACEP,IAAA,CAACJ,UAAU;IACTM,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA,YAAa;IAC3BG,MAAM,EAAEA,CAAC;MAAEC,KAAK;MAAEC;IAAW,CAAC,kBAC5BV,IAAA,CAACH,cAAc;MAAA,GACTU,UAAU;MACdI,GAAG,EAAEF,KAAK,CAACE,GAA4B;MACvCC,KAAK,EAAEH,KAAK,CAACG,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGC,MAAM,CAACJ,KAAK,CAACG,KAAK,CAAE;MACtDE,YAAY,EAAEL,KAAK,CAACM,QAAS;MAC7BC,MAAM,EAAEP,KAAK,CAACO,MAAO;MACrBC,SAAS,EAAEX,SAAS,GAAGI,UAAU,CAACQ,KAAK,EAAEC,OAAO,GAAGC,SAAU;MAC7DC,QAAQ,EAAEf,SAAS,GAAGgB,OAAO,CAACZ,UAAU,CAACQ,KAAK,CAAC,GAAGE;IAAU,CAC7D;EACD,CACH,CAAC;AAEN;AAeA;AACA;AACA;AACA,OAAO,SAASG,uBAAuBA,CAGrC;EACArB,OAAO;EACPC,IAAI;EACJC,KAAK;EACLC,YAAY;EACZC,SAAS,GAAG,IAAI;EAChB,GAAGkB;AAC8C,CAAC,EAAE;EACpD,oBACExB,IAAA,CAACJ,UAAU;IACTM,OAAO,EAAEA,OAAQ;IACjBC,IAAI,EAAEA,IAAK;IACXC,KAAK,EAAEA,KAAM;IACbC,YAAY,EAAEA,YAAa;IAC3BG,MAAM,EAAEA,CAAC;MAAEC,KAAK;MAAEC;IAAW,CAAC,kBAC5BV,IAAA,CAACF,aAAa;MAAA,GACR0B,SAAS;MACbZ,KAAK,EAAEa,KAAK,CAACC,OAAO,CAACjB,KAAK,CAACG,KAAK,CAAC,GAAGH,KAAK,CAACG,KAAK,GAAG,EAAG;MACrDG,QAAQ,EAAEN,KAAK,CAACM,QAAS;MACzBE,SAAS,EAAEX,SAAS,GAAGI,UAAU,CAACQ,KAAK,EAAEC,OAAO,GAAGC,SAAU;MAC7DC,QAAQ,EAAEf,SAAS,GAAGgB,OAAO,CAACZ,UAAU,CAACQ,KAAK,CAAC,GAAGE;IAAU,CAC7D;EACD,CACH,CAAC;AAEN;;AAEA;AACA;AACA;AACA;AACA,OAAO,SAASO,sBAAsBA,CAACC,IAMtC,EAA6F;EAC5F,MAAM;IAAEhB,KAAK;IAAEG,QAAQ;IAAEC,MAAM;IAAEa,YAAY;IAAEvB,SAAS,GAAG;EAAK,CAAC,GAAGsB,IAAI;EACxE,OAAO;IACLhB,KAAK,EAAEA,KAAK,IAAI,IAAI,GAAG,EAAE,GAAGC,MAAM,CAACD,KAAK,CAAC;IACzCE,YAAY,EAAEC,QAAQ;IACtBC,MAAM;IACNC,SAAS,EAAEX,SAAS,GAAGuB,YAAY,GAAGT,SAAS;IAC/CC,QAAQ,EAAEf,SAAS,GAAGgB,OAAO,CAACO,YAAY,CAAC,GAAGT;EAChD,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { Pressable, ScrollView, StyleSheet, Text, View } from 'react-native';
5
+ import { useFieldFlowTheme, mergeDeep } from '../../theme/ThemeProvider';
6
+ import { defaultTheme } from '../../theme/defaultTheme';
7
+ import { applyAffordanceSuggestion, resolveAffordanceChips } from '../../utils/affordance';
8
+ import { jsx as _jsx } from "react/jsx-runtime";
9
+ /**
10
+ * Horizontal suggestion chips shown under (or near) a field — email domains,
11
+ * phone dial codes, currency symbols, or a fully custom chip list.
12
+ */
13
+ export function FieldFlowAffordance({
14
+ kind = 'custom',
15
+ chips: chipsProp,
16
+ value = '',
17
+ onSelect,
18
+ hidden = false,
19
+ allowNoop = true,
20
+ containerStyle,
21
+ chipStyle,
22
+ chipTextStyle,
23
+ theme: themeOverride,
24
+ testID
25
+ }) {
26
+ const contextTheme = useFieldFlowTheme();
27
+ const theme = useMemo(() => themeOverride ? mergeDeep(contextTheme ?? defaultTheme, themeOverride) : contextTheme ?? defaultTheme, [contextTheme, themeOverride]);
28
+ const styles = useMemo(() => createStyles(theme), [theme]);
29
+ const chips = useMemo(() => resolveAffordanceChips(kind, chipsProp), [kind, chipsProp]);
30
+ if (hidden || chips.length === 0) return null;
31
+ return /*#__PURE__*/_jsx(View, {
32
+ style: [styles.wrapper, containerStyle],
33
+ testID: testID,
34
+ accessibilityRole: "menu",
35
+ children: /*#__PURE__*/_jsx(ScrollView, {
36
+ horizontal: true,
37
+ showsHorizontalScrollIndicator: false,
38
+ keyboardShouldPersistTaps: "handled",
39
+ contentContainerStyle: styles.row,
40
+ children: chips.map((chip, index) => {
41
+ const next = applyAffordanceSuggestion(kind, value, chip);
42
+ const disabled = !allowNoop && next === value;
43
+ return /*#__PURE__*/_jsx(Pressable, {
44
+ onPress: () => onSelect(next, chip),
45
+ disabled: disabled,
46
+ style: ({
47
+ pressed
48
+ }) => [styles.chip, pressed && styles.chipPressed, disabled && styles.chipDisabled, chipStyle],
49
+ accessibilityRole: "button",
50
+ accessibilityLabel: chip.accessibilityLabel ?? chip.label,
51
+ accessibilityState: {
52
+ disabled
53
+ },
54
+ children: /*#__PURE__*/_jsx(Text, {
55
+ style: [styles.chipText, chipTextStyle],
56
+ numberOfLines: 1,
57
+ children: chip.label
58
+ })
59
+ }, `${chip.label}-${index}`);
60
+ })
61
+ })
62
+ });
63
+ }
64
+ function createStyles(theme) {
65
+ return StyleSheet.create({
66
+ wrapper: {
67
+ marginTop: theme.spacing.gap,
68
+ marginBottom: theme.spacing.gap / 2
69
+ },
70
+ row: {
71
+ flexDirection: 'row',
72
+ alignItems: 'center',
73
+ gap: theme.spacing.gap,
74
+ paddingRight: theme.spacing.paddingHorizontal
75
+ },
76
+ chip: {
77
+ paddingHorizontal: 12,
78
+ paddingVertical: 7,
79
+ borderRadius: 999,
80
+ borderWidth: theme.spacing.borderWidth,
81
+ borderColor: theme.colors.border,
82
+ backgroundColor: theme.colors.background
83
+ },
84
+ chipPressed: {
85
+ borderColor: theme.colors.borderFocused,
86
+ backgroundColor: theme.colors.backgroundDisabled
87
+ },
88
+ chipDisabled: {
89
+ opacity: 0.4
90
+ },
91
+ chipText: {
92
+ fontSize: theme.typography.helperFontSize,
93
+ color: theme.colors.text,
94
+ fontWeight: '500',
95
+ fontFamily: theme.typography.fontFamily
96
+ }
97
+ });
98
+ }
99
+ //# sourceMappingURL=FieldFlowAffordance.js.map