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,250 @@
1
+ "use strict";
2
+
3
+ import React, { useCallback, useMemo, useRef, useState } from 'react';
4
+ import { Pressable, StyleSheet, Text, TextInput, View } from 'react-native';
5
+ import { useFieldFlowTheme, mergeDeep } from '../../theme/ThemeProvider';
6
+ import { defaultTheme } from '../../theme/defaultTheme';
7
+ import { useFieldState } from '../../hooks/useFieldState';
8
+ import { borderColorFor, labelColorFor } from '../FieldFlowInput/styles';
9
+ import { digitsOnly } from '../../utils/masks';
10
+ import { renderFieldFlowIcon } from '../../icons/renderIcon';
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ export function FieldFlowOTP({
13
+ length = 6,
14
+ value,
15
+ onChangeText,
16
+ onComplete,
17
+ label,
18
+ helperText,
19
+ errorText,
20
+ hasError,
21
+ successText,
22
+ isSuccess,
23
+ disabled,
24
+ required,
25
+ secure = false,
26
+ autoFocus = true,
27
+ leftIcon = 'otp',
28
+ rightIcon,
29
+ iconSize = 18,
30
+ onLeftIconPress,
31
+ onRightIconPress,
32
+ cellGap,
33
+ cellSize,
34
+ containerStyle,
35
+ rowStyle,
36
+ cellStyle,
37
+ cellFocusedStyle,
38
+ cellTextStyle,
39
+ labelStyle,
40
+ helperStyle,
41
+ errorStyle,
42
+ theme: themeOverride,
43
+ testID,
44
+ renderCell
45
+ }) {
46
+ const contextTheme = useFieldFlowTheme();
47
+ const theme = useMemo(() => themeOverride ? mergeDeep(contextTheme ?? defaultTheme, themeOverride) : contextTheme ?? defaultTheme, [contextTheme, themeOverride]);
48
+ const isControlled = value !== undefined;
49
+ const [internal, setInternal] = useState('');
50
+ const code = (isControlled ? value ?? '' : internal).slice(0, length);
51
+ const digits = code.padEnd(length, ' ').split('').map(c => c === ' ' ? '' : c);
52
+ const [focusedIndex, setFocusedIndex] = useState(autoFocus ? 0 : null);
53
+ const refs = useRef([]);
54
+ const state = useFieldState({
55
+ isFocused: focusedIndex !== null,
56
+ hasError: Boolean(hasError || errorText),
57
+ isSuccess,
58
+ disabled
59
+ });
60
+ const styles = useMemo(() => createStyles(theme, state, cellGap ?? theme.spacing.gap, cellSize), [theme, state, cellGap, cellSize]);
61
+ const iconColor = state === 'focused' ? theme.colors.iconFocused : theme.colors.icon;
62
+ const commit = useCallback(next => {
63
+ const clipped = digitsOnly(next).slice(0, length);
64
+ if (!isControlled) setInternal(clipped);
65
+ onChangeText?.(clipped);
66
+ if (clipped.length === length) onComplete?.(clipped);
67
+ }, [isControlled, length, onChangeText, onComplete]);
68
+ const focusAt = useCallback(index => {
69
+ const clamped = Math.max(0, Math.min(length - 1, index));
70
+ refs.current[clamped]?.focus();
71
+ setFocusedIndex(clamped);
72
+ }, [length]);
73
+ const handleChangeAt = useCallback((index, text) => {
74
+ if (disabled) return;
75
+ const incoming = digitsOnly(text);
76
+ if (incoming.length > 1) {
77
+ commit(incoming);
78
+ focusAt(Math.min(incoming.length, length) - 1);
79
+ return;
80
+ }
81
+ const next = digits.slice();
82
+ next[index] = incoming.slice(-1);
83
+ commit(next.join(''));
84
+ if (incoming && index < length - 1) focusAt(index + 1);
85
+ }, [commit, digits, disabled, focusAt, length]);
86
+ const handleKeyPress = useCallback((index, e) => {
87
+ if (e.nativeEvent.key !== 'Backspace') return;
88
+ if (digits[index]) {
89
+ const next = digits.slice();
90
+ next[index] = '';
91
+ commit(next.join(''));
92
+ return;
93
+ }
94
+ if (index > 0) {
95
+ const next = digits.slice();
96
+ next[index - 1] = '';
97
+ commit(next.join(''));
98
+ focusAt(index - 1);
99
+ }
100
+ }, [commit, digits, focusAt]);
101
+ return /*#__PURE__*/_jsxs(View, {
102
+ style: [styles.wrapper, containerStyle],
103
+ testID: testID,
104
+ accessibilityLabel: label ?? 'One-time code',
105
+ children: [(label || leftIcon || rightIcon) && /*#__PURE__*/_jsxs(View, {
106
+ style: styles.labelRow,
107
+ children: [leftIcon ? /*#__PURE__*/_jsx(Pressable, {
108
+ onPress: onLeftIconPress,
109
+ disabled: !onLeftIconPress,
110
+ hitSlop: 8,
111
+ style: styles.labelIcon,
112
+ children: renderFieldFlowIcon(leftIcon, iconColor, iconSize)
113
+ }) : null, label ? /*#__PURE__*/_jsxs(Text, {
114
+ style: [styles.label, labelStyle],
115
+ children: [label, required ? ' *' : '']
116
+ }) : /*#__PURE__*/_jsx(View, {
117
+ style: {
118
+ flex: 1
119
+ }
120
+ }), rightIcon ? /*#__PURE__*/_jsx(Pressable, {
121
+ onPress: onRightIconPress,
122
+ disabled: !onRightIconPress,
123
+ hitSlop: 8,
124
+ style: styles.labelIcon,
125
+ children: renderFieldFlowIcon(rightIcon, iconColor, iconSize)
126
+ }) : null]
127
+ }), /*#__PURE__*/_jsx(View, {
128
+ style: [styles.row, rowStyle],
129
+ children: digits.map((digit, index) => {
130
+ const isFocused = focusedIndex === index;
131
+ if (renderCell) {
132
+ return /*#__PURE__*/_jsx(View, {
133
+ children: renderCell({
134
+ index,
135
+ digit,
136
+ isFocused,
137
+ onChangeText: text => handleChangeAt(index, text)
138
+ })
139
+ }, index);
140
+ }
141
+ return /*#__PURE__*/_jsx(Pressable, {
142
+ onPress: () => !disabled && focusAt(index),
143
+ style: [styles.cell, {
144
+ borderColor: borderColorFor(theme, isFocused ? 'focused' : state),
145
+ borderWidth: isFocused ? theme.spacing.borderWidthFocused : theme.spacing.borderWidth
146
+ }, cellStyle, isFocused ? cellFocusedStyle : null],
147
+ children: /*#__PURE__*/_jsx(TextInput, {
148
+ ref: r => {
149
+ refs.current[index] = r;
150
+ },
151
+ value: digit,
152
+ onChangeText: text => handleChangeAt(index, text),
153
+ onKeyPress: e => handleKeyPress(index, e),
154
+ onFocus: () => setFocusedIndex(index),
155
+ onBlur: () => setFocusedIndex(prev => prev === index ? null : prev),
156
+ editable: !disabled,
157
+ keyboardType: "number-pad",
158
+ textContentType: "oneTimeCode",
159
+ autoComplete: "sms-otp",
160
+ secureTextEntry: secure,
161
+ maxLength: length,
162
+ selectTextOnFocus: true,
163
+ autoFocus: autoFocus && index === 0,
164
+ style: [styles.cellInput, cellTextStyle],
165
+ caretHidden: true,
166
+ accessibilityLabel: `Digit ${index + 1} of ${length}`
167
+ })
168
+ }, index);
169
+ })
170
+ }), (helperText || errorText || successText) && /*#__PURE__*/_jsx(View, {
171
+ style: styles.footer,
172
+ children: errorText ? /*#__PURE__*/_jsx(Text, {
173
+ style: [styles.errorText, errorStyle, helperStyle],
174
+ children: errorText
175
+ }) : successText ? /*#__PURE__*/_jsx(Text, {
176
+ style: [styles.successText, helperStyle],
177
+ children: successText
178
+ }) : helperText ? /*#__PURE__*/_jsx(Text, {
179
+ style: [styles.helperText, helperStyle],
180
+ children: helperText
181
+ }) : null
182
+ })]
183
+ });
184
+ }
185
+ function createStyles(theme, state, gap, cellSize) {
186
+ return StyleSheet.create({
187
+ wrapper: {
188
+ marginBottom: theme.spacing.gap * 2
189
+ },
190
+ labelRow: {
191
+ flexDirection: 'row',
192
+ alignItems: 'center',
193
+ marginBottom: theme.spacing.gap / 1.5,
194
+ gap: theme.spacing.gap
195
+ },
196
+ labelIcon: {
197
+ alignItems: 'center',
198
+ justifyContent: 'center'
199
+ },
200
+ label: {
201
+ flex: 1,
202
+ fontSize: theme.typography.labelFontSize,
203
+ color: labelColorFor(theme, state),
204
+ fontWeight: '500',
205
+ fontFamily: theme.typography.fontFamily
206
+ },
207
+ row: {
208
+ flexDirection: 'row',
209
+ justifyContent: 'space-between',
210
+ gap
211
+ },
212
+ cell: {
213
+ flex: cellSize ? undefined : 1,
214
+ width: cellSize,
215
+ height: cellSize,
216
+ aspectRatio: cellSize ? undefined : 0.9,
217
+ maxWidth: cellSize ?? 56,
218
+ borderRadius: theme.spacing.borderRadius,
219
+ backgroundColor: state === 'disabled' ? theme.colors.backgroundDisabled : theme.colors.background,
220
+ alignItems: 'center',
221
+ justifyContent: 'center'
222
+ },
223
+ cellInput: {
224
+ width: '100%',
225
+ height: '100%',
226
+ textAlign: 'center',
227
+ fontSize: theme.typography.fontSize + 4,
228
+ fontWeight: '600',
229
+ color: theme.colors.text,
230
+ padding: 0,
231
+ fontFamily: theme.typography.fontFamily
232
+ },
233
+ footer: {
234
+ marginTop: theme.spacing.gap / 1.5
235
+ },
236
+ helperText: {
237
+ fontSize: theme.typography.helperFontSize,
238
+ color: theme.colors.label
239
+ },
240
+ errorText: {
241
+ fontSize: theme.typography.helperFontSize,
242
+ color: theme.colors.error
243
+ },
244
+ successText: {
245
+ fontSize: theme.typography.helperFontSize,
246
+ color: theme.colors.success
247
+ }
248
+ });
249
+ }
250
+ //# sourceMappingURL=FieldFlowOTP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useCallback","useMemo","useRef","useState","Pressable","StyleSheet","Text","TextInput","View","useFieldFlowTheme","mergeDeep","defaultTheme","useFieldState","borderColorFor","labelColorFor","digitsOnly","renderFieldFlowIcon","jsx","_jsx","jsxs","_jsxs","FieldFlowOTP","length","value","onChangeText","onComplete","label","helperText","errorText","hasError","successText","isSuccess","disabled","required","secure","autoFocus","leftIcon","rightIcon","iconSize","onLeftIconPress","onRightIconPress","cellGap","cellSize","containerStyle","rowStyle","cellStyle","cellFocusedStyle","cellTextStyle","labelStyle","helperStyle","errorStyle","theme","themeOverride","testID","renderCell","contextTheme","isControlled","undefined","internal","setInternal","code","slice","digits","padEnd","split","map","c","focusedIndex","setFocusedIndex","refs","state","isFocused","Boolean","styles","createStyles","spacing","gap","iconColor","colors","iconFocused","icon","commit","next","clipped","focusAt","index","clamped","Math","max","min","current","focus","handleChangeAt","text","incoming","join","handleKeyPress","e","nativeEvent","key","style","wrapper","accessibilityLabel","children","labelRow","onPress","hitSlop","labelIcon","flex","row","digit","cell","borderColor","borderWidth","borderWidthFocused","ref","r","onKeyPress","onFocus","onBlur","prev","editable","keyboardType","textContentType","autoComplete","secureTextEntry","maxLength","selectTextOnFocus","cellInput","caretHidden","footer","create","marginBottom","flexDirection","alignItems","justifyContent","fontSize","typography","labelFontSize","color","fontWeight","fontFamily","width","height","aspectRatio","maxWidth","borderRadius","backgroundColor","backgroundDisabled","background","textAlign","padding","marginTop","helperFontSize","error","success"],"sourceRoot":"../../../../src","sources":["components/FieldFlowOTP/FieldFlowOTP.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowOTP } from './FieldFlowOTP';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowOTP"],"sourceRoot":"../../../../src","sources":["components/FieldFlowOTP/index.ts"],"mappings":";;AAAA,SAASA,YAAY,QAAQ,gBAAgB","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export {};
4
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../../src","sources":["components/FieldFlowOTP/types.ts"],"mappings":"","ignoreList":[]}
@@ -0,0 +1,117 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { StyleSheet, Text, View } from 'react-native';
5
+ import { useFieldFlowTheme, mergeDeep } from '../../theme/ThemeProvider';
6
+ import { defaultTheme } from '../../theme/defaultTheme';
7
+ import { renderFieldFlowIcon } from '../../icons/renderIcon';
8
+ import { DEFAULT_PASSWORD_RULES, evaluatePasswordStrength, PASSWORD_STRENGTH_COLORS } from '../../utils/passwordStrength';
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ /**
11
+ * Password strength meter + optional rule checklist.
12
+ * Pair with `FieldFlowInput type="password"` or use via `showStrength` on the input.
13
+ */
14
+ export function FieldFlowPasswordStrength({
15
+ password,
16
+ rules,
17
+ showRules = true,
18
+ hideWhenEmpty = true,
19
+ colors,
20
+ containerStyle,
21
+ labelStyle,
22
+ ruleStyle,
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 result = useMemo(() => evaluatePasswordStrength(password, rules), [password, rules]);
30
+ if (hideWhenEmpty && result.level === 'empty') return null;
31
+ const barColor = result.level === 'empty' ? theme.colors.border : colors?.[result.level] ?? PASSWORD_STRENGTH_COLORS[result.level];
32
+ return /*#__PURE__*/_jsxs(View, {
33
+ style: [styles.wrapper, containerStyle],
34
+ testID: testID,
35
+ accessibilityRole: "summary",
36
+ children: [/*#__PURE__*/_jsxs(View, {
37
+ style: styles.header,
38
+ children: [/*#__PURE__*/_jsx(View, {
39
+ style: styles.track,
40
+ children: /*#__PURE__*/_jsx(View, {
41
+ style: [styles.fill, {
42
+ width: `${Math.round(result.progress * 100)}%`,
43
+ backgroundColor: barColor
44
+ }]
45
+ })
46
+ }), result.label ? /*#__PURE__*/_jsx(Text, {
47
+ style: [styles.levelLabel, {
48
+ color: barColor
49
+ }, labelStyle],
50
+ children: result.label
51
+ }) : null]
52
+ }), showRules ? /*#__PURE__*/_jsx(View, {
53
+ style: styles.rules,
54
+ children: (rules ?? DEFAULT_PASSWORD_RULES).map(rule => {
55
+ const ok = result.passed.some(p => p.id === rule.id);
56
+ return /*#__PURE__*/_jsxs(View, {
57
+ style: styles.ruleRow,
58
+ children: [renderFieldFlowIcon(ok ? 'check' : 'clear', ok ? theme.colors.success : theme.colors.placeholder, 12), /*#__PURE__*/_jsx(Text, {
59
+ style: [styles.ruleText, ok ? styles.rulePassed : styles.ruleFailed, ruleStyle],
60
+ children: rule.label
61
+ })]
62
+ }, rule.id);
63
+ })
64
+ }) : null]
65
+ });
66
+ }
67
+ function createStyles(theme) {
68
+ return StyleSheet.create({
69
+ wrapper: {
70
+ marginTop: theme.spacing.gap,
71
+ marginBottom: theme.spacing.gap
72
+ },
73
+ header: {
74
+ flexDirection: 'row',
75
+ alignItems: 'center',
76
+ gap: theme.spacing.gap
77
+ },
78
+ track: {
79
+ flex: 1,
80
+ height: 6,
81
+ borderRadius: 3,
82
+ backgroundColor: theme.colors.border,
83
+ overflow: 'hidden'
84
+ },
85
+ fill: {
86
+ height: '100%',
87
+ borderRadius: 3
88
+ },
89
+ levelLabel: {
90
+ fontSize: theme.typography.helperFontSize,
91
+ fontWeight: '600',
92
+ minWidth: 48,
93
+ textAlign: 'right',
94
+ fontFamily: theme.typography.fontFamily
95
+ },
96
+ rules: {
97
+ marginTop: theme.spacing.gap,
98
+ gap: 4
99
+ },
100
+ ruleRow: {
101
+ flexDirection: 'row',
102
+ alignItems: 'center',
103
+ gap: 6
104
+ },
105
+ ruleText: {
106
+ fontSize: theme.typography.helperFontSize,
107
+ fontFamily: theme.typography.fontFamily
108
+ },
109
+ rulePassed: {
110
+ color: theme.colors.success
111
+ },
112
+ ruleFailed: {
113
+ color: theme.colors.placeholder
114
+ }
115
+ });
116
+ }
117
+ //# sourceMappingURL=FieldFlowPasswordStrength.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","StyleSheet","Text","View","useFieldFlowTheme","mergeDeep","defaultTheme","renderFieldFlowIcon","DEFAULT_PASSWORD_RULES","evaluatePasswordStrength","PASSWORD_STRENGTH_COLORS","jsx","_jsx","jsxs","_jsxs","FieldFlowPasswordStrength","password","rules","showRules","hideWhenEmpty","colors","containerStyle","labelStyle","ruleStyle","theme","themeOverride","testID","contextTheme","styles","createStyles","result","level","barColor","border","style","wrapper","accessibilityRole","children","header","track","fill","width","Math","round","progress","backgroundColor","label","levelLabel","color","map","rule","ok","passed","some","p","id","ruleRow","success","placeholder","ruleText","rulePassed","ruleFailed","create","marginTop","spacing","gap","marginBottom","flexDirection","alignItems","flex","height","borderRadius","overflow","fontSize","typography","helperFontSize","fontWeight","minWidth","textAlign","fontFamily"],"sourceRoot":"../../../../src","sources":["components/FieldFlowPasswordStrength/FieldFlowPasswordStrength.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowPasswordStrength } from './FieldFlowPasswordStrength';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowPasswordStrength"],"sourceRoot":"../../../../src","sources":["components/FieldFlowPasswordStrength/index.ts"],"mappings":";;AAAA,SAASA,yBAAyB,QAAQ,6BAA6B","ignoreList":[]}