rn-inputforge 0.5.0 → 0.5.1

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 (277) hide show
  1. package/README.md +236 -0
  2. package/lib/commonjs/a11y/audit.js +72 -0
  3. package/lib/commonjs/a11y/audit.js.map +1 -0
  4. package/lib/commonjs/a11y/index.js +13 -0
  5. package/lib/commonjs/a11y/index.js.map +1 -0
  6. package/lib/commonjs/autofill/index.js +25 -0
  7. package/lib/commonjs/autofill/index.js.map +1 -0
  8. package/lib/commonjs/autofill/profiles.js +199 -0
  9. package/lib/commonjs/autofill/profiles.js.map +1 -0
  10. package/lib/commonjs/components/FieldFlowA11yAudit/FieldFlowA11yAudit.js +99 -0
  11. package/lib/commonjs/components/FieldFlowA11yAudit/FieldFlowA11yAudit.js.map +1 -0
  12. package/lib/commonjs/components/FieldFlowA11yAudit/index.js +13 -0
  13. package/lib/commonjs/components/FieldFlowA11yAudit/index.js.map +1 -0
  14. package/lib/commonjs/components/FieldFlowAuthActions/FieldFlowAuthActions.js +130 -0
  15. package/lib/commonjs/components/FieldFlowAuthActions/FieldFlowAuthActions.js.map +1 -0
  16. package/lib/commonjs/components/FieldFlowAuthActions/index.js +13 -0
  17. package/lib/commonjs/components/FieldFlowAuthActions/index.js.map +1 -0
  18. package/lib/commonjs/components/FieldFlowCompleteness/FieldFlowCompleteness.js +100 -0
  19. package/lib/commonjs/components/FieldFlowCompleteness/FieldFlowCompleteness.js.map +1 -0
  20. package/lib/commonjs/components/FieldFlowCompleteness/index.js +13 -0
  21. package/lib/commonjs/components/FieldFlowCompleteness/index.js.map +1 -0
  22. package/lib/commonjs/components/FieldFlowFormHeader/FieldFlowFormHeader.js +102 -0
  23. package/lib/commonjs/components/FieldFlowFormHeader/FieldFlowFormHeader.js.map +1 -0
  24. package/lib/commonjs/components/FieldFlowFormHeader/index.js +13 -0
  25. package/lib/commonjs/components/FieldFlowFormHeader/index.js.map +1 -0
  26. package/lib/commonjs/components/FieldFlowInfoTip/FieldFlowInfoTip.js +121 -0
  27. package/lib/commonjs/components/FieldFlowInfoTip/FieldFlowInfoTip.js.map +1 -0
  28. package/lib/commonjs/components/FieldFlowInfoTip/index.js +13 -0
  29. package/lib/commonjs/components/FieldFlowInfoTip/index.js.map +1 -0
  30. package/lib/commonjs/components/FieldFlowInlineAlert/FieldFlowInlineAlert.js +142 -0
  31. package/lib/commonjs/components/FieldFlowInlineAlert/FieldFlowInlineAlert.js.map +1 -0
  32. package/lib/commonjs/components/FieldFlowInlineAlert/index.js +13 -0
  33. package/lib/commonjs/components/FieldFlowInlineAlert/index.js.map +1 -0
  34. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js +44 -18
  35. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  36. package/lib/commonjs/components/FieldFlowInput/styles.js +49 -13
  37. package/lib/commonjs/components/FieldFlowInput/styles.js.map +1 -1
  38. package/lib/commonjs/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.js +137 -0
  39. package/lib/commonjs/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.js.map +1 -0
  40. package/lib/commonjs/components/FieldFlowKeyboardToolbar/index.js +19 -0
  41. package/lib/commonjs/components/FieldFlowKeyboardToolbar/index.js.map +1 -0
  42. package/lib/commonjs/components/FieldFlowSkeleton/FieldFlowSkeleton.js +101 -0
  43. package/lib/commonjs/components/FieldFlowSkeleton/FieldFlowSkeleton.js.map +1 -0
  44. package/lib/commonjs/components/FieldFlowSkeleton/index.js +13 -0
  45. package/lib/commonjs/components/FieldFlowSkeleton/index.js.map +1 -0
  46. package/lib/commonjs/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.js +6 -4
  47. package/lib/commonjs/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.js.map +1 -1
  48. package/lib/commonjs/hooks/index.js +21 -0
  49. package/lib/commonjs/hooks/index.js.map +1 -1
  50. package/lib/commonjs/hooks/useFieldFlowCompleteness.js +46 -0
  51. package/lib/commonjs/hooks/useFieldFlowCompleteness.js.map +1 -0
  52. package/lib/commonjs/hooks/useFieldFlowSubmitQueue.js +145 -0
  53. package/lib/commonjs/hooks/useFieldFlowSubmitQueue.js.map +1 -0
  54. package/lib/commonjs/hooks/useKeyboardManager.js +15 -0
  55. package/lib/commonjs/hooks/useKeyboardManager.js.map +1 -1
  56. package/lib/commonjs/hooks/useSmartPaste.js +27 -0
  57. package/lib/commonjs/hooks/useSmartPaste.js.map +1 -0
  58. package/lib/commonjs/index.js +144 -0
  59. package/lib/commonjs/index.js.map +1 -1
  60. package/lib/commonjs/paste/index.js +19 -0
  61. package/lib/commonjs/paste/index.js.map +1 -0
  62. package/lib/commonjs/paste/smartPaste.js +113 -0
  63. package/lib/commonjs/paste/smartPaste.js.map +1 -0
  64. package/lib/commonjs/schema/FieldFlowSchemaForm.js +219 -0
  65. package/lib/commonjs/schema/FieldFlowSchemaForm.js.map +1 -0
  66. package/lib/commonjs/schema/index.js +13 -0
  67. package/lib/commonjs/schema/index.js.map +1 -0
  68. package/lib/commonjs/schema/types.js +6 -0
  69. package/lib/commonjs/schema/types.js.map +1 -0
  70. package/lib/commonjs/theme/ThemeProvider.js +65 -4
  71. package/lib/commonjs/theme/ThemeProvider.js.map +1 -1
  72. package/lib/commonjs/theme/appearance.js +93 -0
  73. package/lib/commonjs/theme/appearance.js.map +1 -0
  74. package/lib/commonjs/theme/defaultTheme.js +17 -2
  75. package/lib/commonjs/theme/defaultTheme.js.map +1 -1
  76. package/lib/commonjs/theme/index.js +19 -0
  77. package/lib/commonjs/theme/index.js.map +1 -1
  78. package/lib/commonjs/types/globals.d.js +2 -0
  79. package/lib/commonjs/types/globals.d.js.map +1 -0
  80. package/lib/module/a11y/audit.js +68 -0
  81. package/lib/module/a11y/audit.js.map +1 -0
  82. package/lib/module/a11y/index.js +4 -0
  83. package/lib/module/a11y/index.js.map +1 -0
  84. package/lib/module/autofill/index.js +4 -0
  85. package/lib/module/autofill/index.js.map +1 -0
  86. package/lib/module/autofill/profiles.js +193 -0
  87. package/lib/module/autofill/profiles.js.map +1 -0
  88. package/lib/module/components/FieldFlowA11yAudit/FieldFlowA11yAudit.js +94 -0
  89. package/lib/module/components/FieldFlowA11yAudit/FieldFlowA11yAudit.js.map +1 -0
  90. package/lib/module/components/FieldFlowA11yAudit/index.js +4 -0
  91. package/lib/module/components/FieldFlowA11yAudit/index.js.map +1 -0
  92. package/lib/module/components/FieldFlowAuthActions/FieldFlowAuthActions.js +125 -0
  93. package/lib/module/components/FieldFlowAuthActions/FieldFlowAuthActions.js.map +1 -0
  94. package/lib/module/components/FieldFlowAuthActions/index.js +4 -0
  95. package/lib/module/components/FieldFlowAuthActions/index.js.map +1 -0
  96. package/lib/module/components/FieldFlowCompleteness/FieldFlowCompleteness.js +95 -0
  97. package/lib/module/components/FieldFlowCompleteness/FieldFlowCompleteness.js.map +1 -0
  98. package/lib/module/components/FieldFlowCompleteness/index.js +4 -0
  99. package/lib/module/components/FieldFlowCompleteness/index.js.map +1 -0
  100. package/lib/module/components/FieldFlowFormHeader/FieldFlowFormHeader.js +97 -0
  101. package/lib/module/components/FieldFlowFormHeader/FieldFlowFormHeader.js.map +1 -0
  102. package/lib/module/components/FieldFlowFormHeader/index.js +4 -0
  103. package/lib/module/components/FieldFlowFormHeader/index.js.map +1 -0
  104. package/lib/module/components/FieldFlowInfoTip/FieldFlowInfoTip.js +116 -0
  105. package/lib/module/components/FieldFlowInfoTip/FieldFlowInfoTip.js.map +1 -0
  106. package/lib/module/components/FieldFlowInfoTip/index.js +4 -0
  107. package/lib/module/components/FieldFlowInfoTip/index.js.map +1 -0
  108. package/lib/module/components/FieldFlowInlineAlert/FieldFlowInlineAlert.js +137 -0
  109. package/lib/module/components/FieldFlowInlineAlert/FieldFlowInlineAlert.js.map +1 -0
  110. package/lib/module/components/FieldFlowInlineAlert/index.js +4 -0
  111. package/lib/module/components/FieldFlowInlineAlert/index.js.map +1 -0
  112. package/lib/module/components/FieldFlowInput/FieldFlowInput.js +44 -18
  113. package/lib/module/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  114. package/lib/module/components/FieldFlowInput/styles.js +49 -13
  115. package/lib/module/components/FieldFlowInput/styles.js.map +1 -1
  116. package/lib/module/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.js +131 -0
  117. package/lib/module/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.js.map +1 -0
  118. package/lib/module/components/FieldFlowKeyboardToolbar/index.js +4 -0
  119. package/lib/module/components/FieldFlowKeyboardToolbar/index.js.map +1 -0
  120. package/lib/module/components/FieldFlowSkeleton/FieldFlowSkeleton.js +96 -0
  121. package/lib/module/components/FieldFlowSkeleton/FieldFlowSkeleton.js.map +1 -0
  122. package/lib/module/components/FieldFlowSkeleton/index.js +4 -0
  123. package/lib/module/components/FieldFlowSkeleton/index.js.map +1 -0
  124. package/lib/module/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.js +5 -3
  125. package/lib/module/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.js.map +1 -1
  126. package/lib/module/hooks/index.js +3 -0
  127. package/lib/module/hooks/index.js.map +1 -1
  128. package/lib/module/hooks/useFieldFlowCompleteness.js +42 -0
  129. package/lib/module/hooks/useFieldFlowCompleteness.js.map +1 -0
  130. package/lib/module/hooks/useFieldFlowSubmitQueue.js +141 -0
  131. package/lib/module/hooks/useFieldFlowSubmitQueue.js.map +1 -0
  132. package/lib/module/hooks/useKeyboardManager.js +15 -0
  133. package/lib/module/hooks/useKeyboardManager.js.map +1 -1
  134. package/lib/module/hooks/useSmartPaste.js +23 -0
  135. package/lib/module/hooks/useSmartPaste.js.map +1 -0
  136. package/lib/module/index.js +17 -2
  137. package/lib/module/index.js.map +1 -1
  138. package/lib/module/paste/index.js +4 -0
  139. package/lib/module/paste/index.js.map +1 -0
  140. package/lib/module/paste/smartPaste.js +108 -0
  141. package/lib/module/paste/smartPaste.js.map +1 -0
  142. package/lib/module/schema/FieldFlowSchemaForm.js +214 -0
  143. package/lib/module/schema/FieldFlowSchemaForm.js.map +1 -0
  144. package/lib/module/schema/index.js +4 -0
  145. package/lib/module/schema/index.js.map +1 -0
  146. package/lib/module/schema/types.js +4 -0
  147. package/lib/module/schema/types.js.map +1 -0
  148. package/lib/module/theme/ThemeProvider.js +66 -5
  149. package/lib/module/theme/ThemeProvider.js.map +1 -1
  150. package/lib/module/theme/appearance.js +87 -0
  151. package/lib/module/theme/appearance.js.map +1 -0
  152. package/lib/module/theme/defaultTheme.js +17 -2
  153. package/lib/module/theme/defaultTheme.js.map +1 -1
  154. package/lib/module/theme/index.js +1 -0
  155. package/lib/module/theme/index.js.map +1 -1
  156. package/lib/module/types/globals.d.js +2 -0
  157. package/lib/module/types/globals.d.js.map +1 -0
  158. package/lib/typescript/a11y/audit.d.ts +32 -0
  159. package/lib/typescript/a11y/audit.d.ts.map +1 -0
  160. package/lib/typescript/a11y/index.d.ts +3 -0
  161. package/lib/typescript/a11y/index.d.ts.map +1 -0
  162. package/lib/typescript/autofill/index.d.ts +3 -0
  163. package/lib/typescript/autofill/index.d.ts.map +1 -0
  164. package/lib/typescript/autofill/profiles.d.ts +48 -0
  165. package/lib/typescript/autofill/profiles.d.ts.map +1 -0
  166. package/lib/typescript/components/FieldFlowA11yAudit/FieldFlowA11yAudit.d.ts +21 -0
  167. package/lib/typescript/components/FieldFlowA11yAudit/FieldFlowA11yAudit.d.ts.map +1 -0
  168. package/lib/typescript/components/FieldFlowA11yAudit/index.d.ts +3 -0
  169. package/lib/typescript/components/FieldFlowA11yAudit/index.d.ts.map +1 -0
  170. package/lib/typescript/components/FieldFlowAuthActions/FieldFlowAuthActions.d.ts +29 -0
  171. package/lib/typescript/components/FieldFlowAuthActions/FieldFlowAuthActions.d.ts.map +1 -0
  172. package/lib/typescript/components/FieldFlowAuthActions/index.d.ts +3 -0
  173. package/lib/typescript/components/FieldFlowAuthActions/index.d.ts.map +1 -0
  174. package/lib/typescript/components/FieldFlowCompleteness/FieldFlowCompleteness.d.ts +25 -0
  175. package/lib/typescript/components/FieldFlowCompleteness/FieldFlowCompleteness.d.ts.map +1 -0
  176. package/lib/typescript/components/FieldFlowCompleteness/index.d.ts +3 -0
  177. package/lib/typescript/components/FieldFlowCompleteness/index.d.ts.map +1 -0
  178. package/lib/typescript/components/FieldFlowFormHeader/FieldFlowFormHeader.d.ts +23 -0
  179. package/lib/typescript/components/FieldFlowFormHeader/FieldFlowFormHeader.d.ts.map +1 -0
  180. package/lib/typescript/components/FieldFlowFormHeader/index.d.ts +3 -0
  181. package/lib/typescript/components/FieldFlowFormHeader/index.d.ts.map +1 -0
  182. package/lib/typescript/components/FieldFlowInfoTip/FieldFlowInfoTip.d.ts +19 -0
  183. package/lib/typescript/components/FieldFlowInfoTip/FieldFlowInfoTip.d.ts.map +1 -0
  184. package/lib/typescript/components/FieldFlowInfoTip/index.d.ts +3 -0
  185. package/lib/typescript/components/FieldFlowInfoTip/index.d.ts.map +1 -0
  186. package/lib/typescript/components/FieldFlowInlineAlert/FieldFlowInlineAlert.d.ts +22 -0
  187. package/lib/typescript/components/FieldFlowInlineAlert/FieldFlowInlineAlert.d.ts.map +1 -0
  188. package/lib/typescript/components/FieldFlowInlineAlert/index.d.ts +3 -0
  189. package/lib/typescript/components/FieldFlowInlineAlert/index.d.ts.map +1 -0
  190. package/lib/typescript/components/FieldFlowInput/FieldFlowInput.d.ts.map +1 -1
  191. package/lib/typescript/components/FieldFlowInput/styles.d.ts +36 -1
  192. package/lib/typescript/components/FieldFlowInput/styles.d.ts.map +1 -1
  193. package/lib/typescript/components/FieldFlowInput/types.d.ts +18 -0
  194. package/lib/typescript/components/FieldFlowInput/types.d.ts.map +1 -1
  195. package/lib/typescript/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.d.ts +30 -0
  196. package/lib/typescript/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.d.ts.map +1 -0
  197. package/lib/typescript/components/FieldFlowKeyboardToolbar/index.d.ts +3 -0
  198. package/lib/typescript/components/FieldFlowKeyboardToolbar/index.d.ts.map +1 -0
  199. package/lib/typescript/components/FieldFlowSkeleton/FieldFlowSkeleton.d.ts +21 -0
  200. package/lib/typescript/components/FieldFlowSkeleton/FieldFlowSkeleton.d.ts.map +1 -0
  201. package/lib/typescript/components/FieldFlowSkeleton/index.d.ts +3 -0
  202. package/lib/typescript/components/FieldFlowSkeleton/index.d.ts.map +1 -0
  203. package/lib/typescript/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.d.ts +3 -2
  204. package/lib/typescript/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.d.ts.map +1 -1
  205. package/lib/typescript/hooks/index.d.ts +6 -0
  206. package/lib/typescript/hooks/index.d.ts.map +1 -1
  207. package/lib/typescript/hooks/useFieldFlowCompleteness.d.ts +28 -0
  208. package/lib/typescript/hooks/useFieldFlowCompleteness.d.ts.map +1 -0
  209. package/lib/typescript/hooks/useFieldFlowSubmitQueue.d.ts +45 -0
  210. package/lib/typescript/hooks/useFieldFlowSubmitQueue.d.ts.map +1 -0
  211. package/lib/typescript/hooks/useKeyboardManager.d.ts +6 -0
  212. package/lib/typescript/hooks/useKeyboardManager.d.ts.map +1 -1
  213. package/lib/typescript/hooks/useSmartPaste.d.ts +14 -0
  214. package/lib/typescript/hooks/useSmartPaste.d.ts.map +1 -0
  215. package/lib/typescript/index.d.ts +28 -4
  216. package/lib/typescript/index.d.ts.map +1 -1
  217. package/lib/typescript/paste/index.d.ts +3 -0
  218. package/lib/typescript/paste/index.d.ts.map +1 -0
  219. package/lib/typescript/paste/smartPaste.d.ts +32 -0
  220. package/lib/typescript/paste/smartPaste.d.ts.map +1 -0
  221. package/lib/typescript/schema/FieldFlowSchemaForm.d.ts +28 -0
  222. package/lib/typescript/schema/FieldFlowSchemaForm.d.ts.map +1 -0
  223. package/lib/typescript/schema/index.d.ts +4 -0
  224. package/lib/typescript/schema/index.d.ts.map +1 -0
  225. package/lib/typescript/schema/types.d.ts +43 -0
  226. package/lib/typescript/schema/types.d.ts.map +1 -0
  227. package/lib/typescript/theme/ThemeProvider.d.ts +18 -4
  228. package/lib/typescript/theme/ThemeProvider.d.ts.map +1 -1
  229. package/lib/typescript/theme/appearance.d.ts +19 -0
  230. package/lib/typescript/theme/appearance.d.ts.map +1 -0
  231. package/lib/typescript/theme/defaultTheme.d.ts.map +1 -1
  232. package/lib/typescript/theme/index.d.ts +1 -0
  233. package/lib/typescript/theme/index.d.ts.map +1 -1
  234. package/lib/typescript/types/index.d.ts +26 -0
  235. package/lib/typescript/types/index.d.ts.map +1 -1
  236. package/package.json +2 -2
  237. package/src/a11y/audit.ts +99 -0
  238. package/src/a11y/index.ts +7 -0
  239. package/src/autofill/index.ts +10 -0
  240. package/src/autofill/profiles.ts +224 -0
  241. package/src/components/FieldFlowA11yAudit/FieldFlowA11yAudit.tsx +112 -0
  242. package/src/components/FieldFlowA11yAudit/index.ts +2 -0
  243. package/src/components/FieldFlowAuthActions/FieldFlowAuthActions.tsx +146 -0
  244. package/src/components/FieldFlowAuthActions/index.ts +6 -0
  245. package/src/components/FieldFlowCompleteness/FieldFlowCompleteness.tsx +109 -0
  246. package/src/components/FieldFlowCompleteness/index.ts +2 -0
  247. package/src/components/FieldFlowFormHeader/FieldFlowFormHeader.tsx +106 -0
  248. package/src/components/FieldFlowFormHeader/index.ts +2 -0
  249. package/src/components/FieldFlowInfoTip/FieldFlowInfoTip.tsx +120 -0
  250. package/src/components/FieldFlowInfoTip/index.ts +2 -0
  251. package/src/components/FieldFlowInlineAlert/FieldFlowInlineAlert.tsx +134 -0
  252. package/src/components/FieldFlowInlineAlert/index.ts +2 -0
  253. package/src/components/FieldFlowInput/FieldFlowInput.tsx +71 -13
  254. package/src/components/FieldFlowInput/styles.ts +58 -16
  255. package/src/components/FieldFlowInput/types.ts +21 -0
  256. package/src/components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.tsx +150 -0
  257. package/src/components/FieldFlowKeyboardToolbar/index.ts +5 -0
  258. package/src/components/FieldFlowSkeleton/FieldFlowSkeleton.tsx +105 -0
  259. package/src/components/FieldFlowSkeleton/index.ts +2 -0
  260. package/src/components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.tsx +8 -4
  261. package/src/hooks/index.ts +17 -0
  262. package/src/hooks/useFieldFlowCompleteness.ts +69 -0
  263. package/src/hooks/useFieldFlowSubmitQueue.ts +206 -0
  264. package/src/hooks/useKeyboardManager.ts +26 -0
  265. package/src/hooks/useSmartPaste.ts +33 -0
  266. package/src/index.ts +90 -0
  267. package/src/paste/index.ts +7 -0
  268. package/src/paste/smartPaste.ts +132 -0
  269. package/src/schema/FieldFlowSchemaForm.tsx +274 -0
  270. package/src/schema/index.ts +8 -0
  271. package/src/schema/types.ts +63 -0
  272. package/src/theme/ThemeProvider.tsx +96 -7
  273. package/src/theme/appearance.ts +105 -0
  274. package/src/theme/defaultTheme.ts +11 -0
  275. package/src/theme/index.ts +1 -0
  276. package/src/types/globals.d.ts +2 -0
  277. package/src/types/index.ts +28 -0
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  import { StyleSheet } from 'react-native';
4
+ import { surfaceShadow } from '../../theme/appearance';
4
5
  export function borderColorFor(theme, state) {
5
6
  switch (state) {
6
7
  case 'focused':
@@ -25,40 +26,55 @@ export function createStyles(theme, state, multiline, variant = 'outlined') {
25
26
  const isUnderline = variant === 'underline';
26
27
  const isFilled = variant === 'filled';
27
28
  const isFloating = variant === 'floating';
29
+ const appearance = theme.appearance;
30
+ const surface = appearance?.surface ?? 'flat';
31
+ const focusRing = appearance?.focusRing ?? 'softGlow';
28
32
  const borderW = state === 'focused' ? theme.spacing.borderWidthFocused : theme.spacing.borderWidth;
33
+ const shadow = !isUnderline ? surfaceShadow(surface) : null;
34
+ let backgroundColor = theme.colors.background;
35
+ if (state === 'disabled') backgroundColor = theme.colors.backgroundDisabled;else if (isFilled || surface === 'soft') backgroundColor = theme.colors.surfaceMuted ?? theme.colors.backgroundDisabled;else if (surface === 'inset') backgroundColor = theme.colors.surfaceMuted ?? theme.colors.backgroundDisabled;else if (surface === 'elevated') backgroundColor = theme.colors.surfaceElevated ?? theme.colors.background;else if (isUnderline) backgroundColor = 'transparent';
36
+ const glowPad = focusRing === 'solid' ? 2 : focusRing === 'softGlow' ? 3 : 0;
29
37
  return StyleSheet.create({
30
38
  wrapper: {
31
39
  marginBottom: theme.spacing.gap * 2
32
40
  },
41
+ labelRow: {
42
+ flexDirection: 'row',
43
+ alignItems: 'center',
44
+ gap: 6,
45
+ marginBottom: theme.spacing.gap / 1.5
46
+ },
33
47
  label: {
34
48
  fontSize: theme.typography.labelFontSize,
35
- marginBottom: theme.spacing.gap / 1.5,
36
49
  color: labelColorFor(theme, state),
37
50
  fontWeight: '500',
38
- fontFamily: theme.typography.fontFamily
51
+ fontFamily: theme.typography.fontFamily,
52
+ flexShrink: 1
39
53
  },
40
54
  inputContainer: {
41
55
  position: 'relative',
42
56
  overflow: 'visible',
43
57
  flexDirection: 'row',
44
58
  alignItems: multiline ? 'flex-start' : 'center',
45
- backgroundColor: state === 'disabled' ? theme.colors.backgroundDisabled : isFilled ? theme.colors.backgroundDisabled : isUnderline ? 'transparent' : theme.colors.background,
59
+ backgroundColor,
46
60
  borderRadius: isUnderline ? 0 : theme.spacing.borderRadius,
47
- borderWidth: isUnderline ? 0 : isFilled ? 0 : borderW,
48
- borderBottomWidth: isUnderline ? borderW + (state === 'focused' ? 0.5 : 0) : isFilled ? 0 : borderW,
61
+ borderWidth: isUnderline ? 0 : isFilled && surface !== 'inset' ? 0 : borderW,
62
+ borderBottomWidth: isUnderline ? borderW + (state === 'focused' && focusRing === 'underlinePulse' ? 1 : state === 'focused' ? 0.5 : 0) : isFilled && surface !== 'inset' ? 0 : borderW,
49
63
  borderColor: borderColorFor(theme, state),
50
64
  paddingHorizontal: theme.spacing.paddingHorizontal,
51
65
  paddingVertical: multiline ? theme.spacing.paddingVertical : 0,
52
66
  minHeight: multiline ? undefined : theme.spacing.paddingVertical * 2 + theme.typography.fontSize + 6 + (isFloating ? 6 : 0),
53
- paddingTop: isFloating && !multiline ? theme.spacing.paddingVertical + 6 : undefined
67
+ paddingTop: isFloating && !multiline ? theme.spacing.paddingVertical + 6 : undefined,
68
+ ...(shadow ?? null)
54
69
  },
55
70
  focusGlow: {
56
71
  position: 'absolute',
57
- top: -3,
58
- left: -3,
59
- right: -3,
60
- bottom: -3,
61
- borderWidth: 3
72
+ top: -glowPad,
73
+ left: -glowPad,
74
+ right: -glowPad,
75
+ bottom: -glowPad,
76
+ borderWidth: focusRing === 'solid' ? 2 : focusRing === 'softGlow' ? 3 : 0,
77
+ borderRadius: theme.spacing.borderRadius + glowPad
62
78
  },
63
79
  affixText: {
64
80
  fontSize: theme.typography.fontSize,
@@ -69,7 +85,7 @@ export function createStyles(theme, state, multiline, variant = 'outlined') {
69
85
  floatingLabel: {
70
86
  position: 'absolute',
71
87
  left: theme.spacing.paddingHorizontal,
72
- backgroundColor: isFilled ? theme.colors.backgroundDisabled : theme.colors.background,
88
+ backgroundColor: isFilled || surface === 'soft' || surface === 'inset' ? theme.colors.surfaceMuted ?? theme.colors.backgroundDisabled : theme.colors.background,
73
89
  paddingHorizontal: 4,
74
90
  zIndex: 2,
75
91
  fontFamily: theme.typography.fontFamily
@@ -97,8 +113,16 @@ export function createStyles(theme, state, multiline, variant = 'outlined') {
97
113
  },
98
114
  footerRow: {
99
115
  flexDirection: 'row',
116
+ alignItems: 'flex-start',
100
117
  justifyContent: 'space-between',
101
- marginTop: theme.spacing.gap / 1.5
118
+ marginTop: theme.spacing.gap / 1.5,
119
+ gap: 6
120
+ },
121
+ helperRow: {
122
+ flex: 1,
123
+ flexDirection: 'row',
124
+ alignItems: 'flex-start',
125
+ gap: 6
102
126
  },
103
127
  helperText: {
104
128
  fontSize: theme.typography.helperFontSize,
@@ -118,6 +142,18 @@ export function createStyles(theme, state, multiline, variant = 'outlined') {
118
142
  flexShrink: 1,
119
143
  fontFamily: theme.typography.fontFamily
120
144
  },
145
+ warningText: {
146
+ fontSize: theme.typography.helperFontSize,
147
+ color: theme.colors.warning,
148
+ flexShrink: 1,
149
+ fontFamily: theme.typography.fontFamily
150
+ },
151
+ infoText: {
152
+ fontSize: theme.typography.helperFontSize,
153
+ color: theme.colors.info,
154
+ flexShrink: 1,
155
+ fontFamily: theme.typography.fontFamily
156
+ },
121
157
  charCount: {
122
158
  fontSize: theme.typography.helperFontSize,
123
159
  color: theme.colors.placeholder,
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSheet","borderColorFor","theme","state","colors","borderFocused","borderError","borderSuccess","border","labelColorFor","error","labelFocused","label","iconColorFor","iconFocused","icon","createStyles","multiline","variant","isUnderline","isFilled","isFloating","borderW","spacing","borderWidthFocused","borderWidth","create","wrapper","marginBottom","gap","fontSize","typography","labelFontSize","color","fontWeight","fontFamily","inputContainer","position","overflow","flexDirection","alignItems","backgroundColor","backgroundDisabled","background","borderRadius","borderBottomWidth","borderColor","paddingHorizontal","paddingVertical","minHeight","undefined","paddingTop","focusGlow","top","left","right","bottom","affixText","floatingLabel","zIndex","input","flex","text","textAlignVertical","iconSlot","justifyContent","marginTop","iconSlotLeft","marginRight","iconSlotRight","marginLeft","footerRow","helperText","helperFontSize","flexShrink","errorText","successText","success","charCount","placeholder"],"sourceRoot":"../../../../src","sources":["components/FieldFlowInput/styles.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["StyleSheet","surfaceShadow","borderColorFor","theme","state","colors","borderFocused","borderError","borderSuccess","border","labelColorFor","error","labelFocused","label","iconColorFor","iconFocused","icon","createStyles","multiline","variant","isUnderline","isFilled","isFloating","appearance","surface","focusRing","borderW","spacing","borderWidthFocused","borderWidth","shadow","backgroundColor","background","backgroundDisabled","surfaceMuted","surfaceElevated","glowPad","create","wrapper","marginBottom","gap","labelRow","flexDirection","alignItems","fontSize","typography","labelFontSize","color","fontWeight","fontFamily","flexShrink","inputContainer","position","overflow","borderRadius","borderBottomWidth","borderColor","paddingHorizontal","paddingVertical","minHeight","undefined","paddingTop","focusGlow","top","left","right","bottom","affixText","floatingLabel","zIndex","input","flex","text","textAlignVertical","iconSlot","justifyContent","marginTop","iconSlotLeft","marginRight","iconSlotRight","marginLeft","footerRow","helperRow","helperText","helperFontSize","errorText","successText","success","warningText","warning","infoText","info","charCount","placeholder"],"sourceRoot":"../../../../src","sources":["components/FieldFlowInput/styles.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ import React, { useMemo } from 'react';
4
+ import { InputAccessoryView, Keyboard, Platform, Pressable, StyleSheet, Text, View } from 'react-native';
5
+ import { useFieldFlowTheme, mergeDeep } from '../../theme/ThemeProvider';
6
+ import { defaultTheme } from '../../theme/defaultTheme';
7
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
8
+ /**
9
+ * Prev / Next / Done accessory above the keyboard.
10
+ * iOS: native `InputAccessoryView`. Android: optional floating bar (`androidFloating`).
11
+ * Pair with `useKeyboardManager` focus helpers.
12
+ */
13
+ export function FieldFlowKeyboardToolbar({
14
+ nativeID,
15
+ onPrevious,
16
+ onNext,
17
+ onDone,
18
+ canPrevious = true,
19
+ canNext = true,
20
+ previousLabel = 'Previous',
21
+ nextLabel = 'Next',
22
+ doneLabel = 'Done',
23
+ androidFloating = true,
24
+ visible = true,
25
+ containerStyle,
26
+ theme: themeOverride,
27
+ testID
28
+ }) {
29
+ const contextTheme = useFieldFlowTheme();
30
+ const theme = useMemo(() => themeOverride ? mergeDeep(contextTheme ?? defaultTheme, themeOverride) : contextTheme ?? defaultTheme, [contextTheme, themeOverride]);
31
+ const styles = useMemo(() => createStyles(theme), [theme]);
32
+ const bar = /*#__PURE__*/_jsxs(View, {
33
+ style: [styles.bar, containerStyle],
34
+ testID: testID,
35
+ children: [/*#__PURE__*/_jsx(Pressable, {
36
+ onPress: onPrevious,
37
+ disabled: !canPrevious || !onPrevious,
38
+ style: [styles.btn, (!canPrevious || !onPrevious) && styles.btnDisabled],
39
+ accessibilityRole: "button",
40
+ accessibilityLabel: previousLabel,
41
+ children: /*#__PURE__*/_jsx(Text, {
42
+ style: styles.btnText,
43
+ children: previousLabel
44
+ })
45
+ }), /*#__PURE__*/_jsx(Pressable, {
46
+ onPress: onNext,
47
+ disabled: !canNext || !onNext,
48
+ style: [styles.btn, (!canNext || !onNext) && styles.btnDisabled],
49
+ accessibilityRole: "button",
50
+ accessibilityLabel: nextLabel,
51
+ children: /*#__PURE__*/_jsx(Text, {
52
+ style: styles.btnText,
53
+ children: nextLabel
54
+ })
55
+ }), /*#__PURE__*/_jsx(View, {
56
+ style: {
57
+ flex: 1
58
+ }
59
+ }), /*#__PURE__*/_jsx(Pressable, {
60
+ onPress: () => {
61
+ onDone?.();
62
+ Keyboard.dismiss();
63
+ },
64
+ style: styles.done,
65
+ accessibilityRole: "button",
66
+ accessibilityLabel: doneLabel,
67
+ children: /*#__PURE__*/_jsx(Text, {
68
+ style: styles.doneText,
69
+ children: doneLabel
70
+ })
71
+ })]
72
+ });
73
+ if (!visible) return null;
74
+ if (Platform.OS === 'ios') {
75
+ return /*#__PURE__*/_jsx(InputAccessoryView, {
76
+ nativeID: nativeID,
77
+ backgroundColor: theme.colors.backgroundDisabled,
78
+ children: bar
79
+ });
80
+ }
81
+ if (!androidFloating) return null;
82
+ return /*#__PURE__*/_jsx(View, {
83
+ style: styles.androidWrap,
84
+ children: bar
85
+ });
86
+ }
87
+
88
+ /** Stable default accessory id for FieldFlow forms. */
89
+ export const FIELD_FLOW_KEYBOARD_TOOLBAR_ID = 'fieldflow-keyboard-toolbar';
90
+ function createStyles(theme) {
91
+ return StyleSheet.create({
92
+ androidWrap: {
93
+ borderTopWidth: StyleSheet.hairlineWidth,
94
+ borderTopColor: theme.colors.border
95
+ },
96
+ bar: {
97
+ flexDirection: 'row',
98
+ alignItems: 'center',
99
+ paddingHorizontal: 10,
100
+ paddingVertical: 8,
101
+ backgroundColor: theme.colors.backgroundDisabled,
102
+ borderTopWidth: StyleSheet.hairlineWidth,
103
+ borderTopColor: theme.colors.border,
104
+ gap: 4
105
+ },
106
+ btn: {
107
+ paddingHorizontal: 10,
108
+ paddingVertical: 6
109
+ },
110
+ btnDisabled: {
111
+ opacity: 0.35
112
+ },
113
+ btnText: {
114
+ fontSize: theme.typography.helperFontSize + 1,
115
+ color: theme.colors.borderFocused,
116
+ fontWeight: '600'
117
+ },
118
+ done: {
119
+ paddingHorizontal: 12,
120
+ paddingVertical: 6,
121
+ borderRadius: 8,
122
+ backgroundColor: theme.colors.borderFocused
123
+ },
124
+ doneText: {
125
+ fontSize: theme.typography.helperFontSize + 1,
126
+ color: '#fff',
127
+ fontWeight: '700'
128
+ }
129
+ });
130
+ }
131
+ //# sourceMappingURL=FieldFlowKeyboardToolbar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useMemo","InputAccessoryView","Keyboard","Platform","Pressable","StyleSheet","Text","View","useFieldFlowTheme","mergeDeep","defaultTheme","jsx","_jsx","jsxs","_jsxs","FieldFlowKeyboardToolbar","nativeID","onPrevious","onNext","onDone","canPrevious","canNext","previousLabel","nextLabel","doneLabel","androidFloating","visible","containerStyle","theme","themeOverride","testID","contextTheme","styles","createStyles","bar","style","children","onPress","disabled","btn","btnDisabled","accessibilityRole","accessibilityLabel","btnText","flex","dismiss","done","doneText","OS","backgroundColor","colors","backgroundDisabled","androidWrap","FIELD_FLOW_KEYBOARD_TOOLBAR_ID","create","borderTopWidth","hairlineWidth","borderTopColor","border","flexDirection","alignItems","paddingHorizontal","paddingVertical","gap","opacity","fontSize","typography","helperFontSize","color","borderFocused","fontWeight","borderRadius"],"sourceRoot":"../../../../src","sources":["components/FieldFlowKeyboardToolbar/FieldFlowKeyboardToolbar.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowKeyboardToolbar, FIELD_FLOW_KEYBOARD_TOOLBAR_ID } from './FieldFlowKeyboardToolbar';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowKeyboardToolbar","FIELD_FLOW_KEYBOARD_TOOLBAR_ID"],"sourceRoot":"../../../../src","sources":["components/FieldFlowKeyboardToolbar/index.ts"],"mappings":";;AAAA,SACEA,wBAAwB,EACxBC,8BAA8B,QACzB,4BAA4B","ignoreList":[]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ import React, { useEffect, useMemo, useRef } from 'react';
4
+ import { Animated, Easing, StyleSheet, View } from 'react-native';
5
+ import { useFieldFlowTheme, mergeDeep } from '../../theme/ThemeProvider';
6
+ import { defaultTheme } from '../../theme/defaultTheme';
7
+ import { useReducedMotion } from '../../motion/useReducedMotion';
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ /**
10
+ * Soft shimmer placeholders while a form hydrates (draft / API).
11
+ */
12
+ export function FieldFlowSkeleton({
13
+ count = 3,
14
+ variant = 'outlined',
15
+ showLabels = true,
16
+ lastMultiline = false,
17
+ containerStyle,
18
+ theme: themeOverride,
19
+ testID
20
+ }) {
21
+ const contextTheme = useFieldFlowTheme();
22
+ const theme = useMemo(() => themeOverride ? mergeDeep(contextTheme ?? defaultTheme, themeOverride) : contextTheme ?? defaultTheme, [contextTheme, themeOverride]);
23
+ const styles = useMemo(() => createStyles(theme, variant), [theme, variant]);
24
+ const reducedMotion = useReducedMotion();
25
+ const pulse = useRef(new Animated.Value(0.45)).current;
26
+ useEffect(() => {
27
+ if (reducedMotion) {
28
+ pulse.setValue(0.55);
29
+ return;
30
+ }
31
+ const loop = Animated.loop(Animated.sequence([Animated.timing(pulse, {
32
+ toValue: 0.9,
33
+ duration: 700,
34
+ easing: Easing.inOut(Easing.quad),
35
+ useNativeDriver: true
36
+ }), Animated.timing(pulse, {
37
+ toValue: 0.45,
38
+ duration: 700,
39
+ easing: Easing.inOut(Easing.quad),
40
+ useNativeDriver: true
41
+ })]));
42
+ loop.start();
43
+ return () => loop.stop();
44
+ }, [reducedMotion, pulse]);
45
+ return /*#__PURE__*/_jsx(View, {
46
+ style: [styles.wrap, containerStyle],
47
+ testID: testID,
48
+ accessibilityLabel: "Loading form",
49
+ children: Array.from({
50
+ length: count
51
+ }, (_, i) => {
52
+ const tall = lastMultiline && i === count - 1;
53
+ return /*#__PURE__*/_jsxs(View, {
54
+ style: styles.item,
55
+ children: [showLabels ? /*#__PURE__*/_jsx(Animated.View, {
56
+ style: [styles.label, {
57
+ opacity: pulse
58
+ }]
59
+ }) : null, /*#__PURE__*/_jsx(Animated.View, {
60
+ style: [styles.field, tall && styles.fieldTall, {
61
+ opacity: pulse
62
+ }]
63
+ })]
64
+ }, i);
65
+ })
66
+ });
67
+ }
68
+ function createStyles(theme, variant) {
69
+ const height = theme.spacing.paddingVertical * 2 + theme.typography.fontSize + 6 + (variant === 'floating' ? 6 : 0);
70
+ return StyleSheet.create({
71
+ wrap: {
72
+ marginBottom: theme.spacing.gap
73
+ },
74
+ item: {
75
+ marginBottom: theme.spacing.gap * 2
76
+ },
77
+ label: {
78
+ width: '32%',
79
+ height: theme.typography.labelFontSize,
80
+ borderRadius: 4,
81
+ backgroundColor: theme.colors.backgroundDisabled,
82
+ marginBottom: theme.spacing.gap
83
+ },
84
+ field: {
85
+ height,
86
+ borderRadius: theme.spacing.borderRadius,
87
+ backgroundColor: theme.colors.backgroundDisabled,
88
+ borderWidth: StyleSheet.hairlineWidth,
89
+ borderColor: theme.colors.border
90
+ },
91
+ fieldTall: {
92
+ height: 88
93
+ }
94
+ });
95
+ }
96
+ //# sourceMappingURL=FieldFlowSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useEffect","useMemo","useRef","Animated","Easing","StyleSheet","View","useFieldFlowTheme","mergeDeep","defaultTheme","useReducedMotion","jsx","_jsx","jsxs","_jsxs","FieldFlowSkeleton","count","variant","showLabels","lastMultiline","containerStyle","theme","themeOverride","testID","contextTheme","styles","createStyles","reducedMotion","pulse","Value","current","setValue","loop","sequence","timing","toValue","duration","easing","inOut","quad","useNativeDriver","start","stop","style","wrap","accessibilityLabel","children","Array","from","length","_","i","tall","item","label","opacity","field","fieldTall","height","spacing","paddingVertical","typography","fontSize","create","marginBottom","gap","width","labelFontSize","borderRadius","backgroundColor","colors","backgroundDisabled","borderWidth","hairlineWidth","borderColor","border"],"sourceRoot":"../../../../src","sources":["components/FieldFlowSkeleton/FieldFlowSkeleton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,4 @@
1
+ "use strict";
2
+
3
+ export { FieldFlowSkeleton } from './FieldFlowSkeleton';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FieldFlowSkeleton"],"sourceRoot":"../../../../src","sources":["components/FieldFlowSkeleton/index.ts"],"mappings":";;AAAA,SAASA,iBAAiB,QAAQ,qBAAqB","ignoreList":[]}
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- import React from 'react';
3
+ import React, { useRef } from 'react';
4
4
  import { KeyboardAvoidingView, Platform, ScrollView, StyleSheet } from 'react-native';
5
5
  import { jsx as _jsx } from "react/jsx-runtime";
6
6
  /**
7
7
  * Wrap your form fields in this instead of a plain ScrollView. It automatically
8
8
  * keeps the focused field visible above the keyboard and animates smoothly on
9
9
  * both iOS and Android; pass it the same `keyboardManager` you got from
10
- * `useKeyboardManager()`.
10
+ * `useKeyboardManager()` when you want auto-scroll + Next/Done focus.
11
11
  */
12
12
  export function KeyboardAwareFormWrapper({
13
13
  keyboardManager,
@@ -15,12 +15,14 @@ export function KeyboardAwareFormWrapper({
15
15
  contentContainerStyle,
16
16
  style
17
17
  }) {
18
+ const fallbackScrollRef = useRef(null);
19
+ const scrollRef = keyboardManager?.scrollViewRef ?? fallbackScrollRef;
18
20
  return /*#__PURE__*/_jsx(KeyboardAvoidingView, {
19
21
  style: [styles.flex, style],
20
22
  behavior: Platform.OS === 'ios' ? 'padding' : undefined,
21
23
  keyboardVerticalOffset: Platform.OS === 'ios' ? 64 : 0,
22
24
  children: /*#__PURE__*/_jsx(ScrollView, {
23
- ref: keyboardManager.scrollViewRef,
25
+ ref: scrollRef,
24
26
  keyboardShouldPersistTaps: "handled",
25
27
  contentContainerStyle: [styles.content, contentContainerStyle],
26
28
  showsVerticalScrollIndicator: false,
@@ -1 +1 @@
1
- {"version":3,"names":["React","KeyboardAvoidingView","Platform","ScrollView","StyleSheet","jsx","_jsx","KeyboardAwareFormWrapper","keyboardManager","children","contentContainerStyle","style","styles","flex","behavior","OS","undefined","keyboardVerticalOffset","ref","scrollViewRef","keyboardShouldPersistTaps","content","showsVerticalScrollIndicator","create","flexGrow"],"sourceRoot":"../../../../src","sources":["components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,oBAAoB,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,QAAmB,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAUjG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAC;EACvCC,eAAe;EACfC,QAAQ;EACRC,qBAAqB;EACrBC;AAC6B,CAAC,EAAE;EAChC,oBACEL,IAAA,CAACL,oBAAoB;IACnBU,KAAK,EAAE,CAACC,MAAM,CAACC,IAAI,EAAEF,KAAK,CAAE;IAC5BG,QAAQ,EAAEZ,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGC,SAAU;IACxDC,sBAAsB,EAAEf,QAAQ,CAACa,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,CAAE;IAAAN,QAAA,eAEvDH,IAAA,CAACH,UAAU;MACTe,GAAG,EAAEV,eAAe,CAACW,aAAc;MACnCC,yBAAyB,EAAC,SAAS;MACnCV,qBAAqB,EAAE,CAACE,MAAM,CAACS,OAAO,EAAEX,qBAAqB,CAAE;MAC/DY,4BAA4B,EAAE,KAAM;MAAAb,QAAA,EAEnCA;IAAQ,CACC;EAAC,CACO,CAAC;AAE3B;AAEA,MAAMG,MAAM,GAAGR,UAAU,CAACmB,MAAM,CAAC;EAC/BV,IAAI,EAAE;IAAEA,IAAI,EAAE;EAAE,CAAC;EACjBQ,OAAO,EAAE;IAAEG,QAAQ,EAAE;EAAE;AACzB,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["React","useRef","KeyboardAvoidingView","Platform","ScrollView","StyleSheet","jsx","_jsx","KeyboardAwareFormWrapper","keyboardManager","children","contentContainerStyle","style","fallbackScrollRef","scrollRef","scrollViewRef","styles","flex","behavior","OS","undefined","keyboardVerticalOffset","ref","keyboardShouldPersistTaps","content","showsVerticalScrollIndicator","create","flexGrow"],"sourceRoot":"../../../../src","sources":["components/KeyboardAwareFormWrapper/KeyboardAwareFormWrapper.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,MAAM,QAAQ,OAAO;AACrC,SAASC,oBAAoB,EAAEC,QAAQ,EAAEC,UAAU,EAAEC,UAAU,QAAmB,cAAc;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAWjG;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAC;EACvCC,eAAe;EACfC,QAAQ;EACRC,qBAAqB;EACrBC;AAC6B,CAAC,EAAE;EAChC,MAAMC,iBAAiB,GAAGZ,MAAM,CAAa,IAAI,CAAC;EAClD,MAAMa,SAAS,GAAGL,eAAe,EAAEM,aAAa,IAAIF,iBAAiB;EAErE,oBACEN,IAAA,CAACL,oBAAoB;IACnBU,KAAK,EAAE,CAACI,MAAM,CAACC,IAAI,EAAEL,KAAK,CAAE;IAC5BM,QAAQ,EAAEf,QAAQ,CAACgB,EAAE,KAAK,KAAK,GAAG,SAAS,GAAGC,SAAU;IACxDC,sBAAsB,EAAElB,QAAQ,CAACgB,EAAE,KAAK,KAAK,GAAG,EAAE,GAAG,CAAE;IAAAT,QAAA,eAEvDH,IAAA,CAACH,UAAU;MACTkB,GAAG,EAAER,SAAU;MACfS,yBAAyB,EAAC,SAAS;MACnCZ,qBAAqB,EAAE,CAACK,MAAM,CAACQ,OAAO,EAAEb,qBAAqB,CAAE;MAC/Dc,4BAA4B,EAAE,KAAM;MAAAf,QAAA,EAEnCA;IAAQ,CACC;EAAC,CACO,CAAC;AAE3B;AAEA,MAAMM,MAAM,GAAGX,UAAU,CAACqB,MAAM,CAAC;EAC/BT,IAAI,EAAE;IAAEA,IAAI,EAAE;EAAE,CAAC;EACjBO,OAAO,EAAE;IAAEG,QAAQ,EAAE;EAAE;AACzB,CAAC,CAAC","ignoreList":[]}
@@ -8,4 +8,7 @@ export { useFieldFlowArray } from './useFieldFlowArray';
8
8
  export { useFieldFlowDraft } from './useFieldFlowDraft';
9
9
  export { useFieldFlowSteps } from './useFieldFlowSteps';
10
10
  export { useFieldFlowDirtyGuard } from './useFieldFlowDirtyGuard';
11
+ export { useFieldFlowCompleteness } from './useFieldFlowCompleteness';
12
+ export { useFieldFlowSubmitQueue } from './useFieldFlowSubmitQueue';
13
+ export { useSmartPaste } from './useSmartPaste';
11
14
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useKeyboardManager","useFieldFlowForm","useFieldState","useFormIntelligence","useFieldFlowArray","useFieldFlowDraft","useFieldFlowSteps","useFieldFlowDirtyGuard"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sBAAsB;AAGzD,SAASC,gBAAgB,QAAQ,oBAAoB;AAcrD,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,SAASC,mBAAmB,QAAQ,uBAAuB;AAG3D,SAASC,iBAAiB,QAAQ,qBAAqB;AAGvD,SAASC,iBAAiB,QAAQ,qBAAqB;AAQvD,SAASC,iBAAiB,QAAQ,qBAAqB;AAOvD,SAASC,sBAAsB,QAAQ,0BAA0B","ignoreList":[]}
1
+ {"version":3,"names":["useKeyboardManager","useFieldFlowForm","useFieldState","useFormIntelligence","useFieldFlowArray","useFieldFlowDraft","useFieldFlowSteps","useFieldFlowDirtyGuard","useFieldFlowCompleteness","useFieldFlowSubmitQueue","useSmartPaste"],"sourceRoot":"../../../src","sources":["hooks/index.ts"],"mappings":";;AAAA,SAASA,kBAAkB,QAAQ,sBAAsB;AAGzD,SAASC,gBAAgB,QAAQ,oBAAoB;AAcrD,SAASC,aAAa,QAAQ,iBAAiB;AAG/C,SAASC,mBAAmB,QAAQ,uBAAuB;AAG3D,SAASC,iBAAiB,QAAQ,qBAAqB;AAGvD,SAASC,iBAAiB,QAAQ,qBAAqB;AAQvD,SAASC,iBAAiB,QAAQ,qBAAqB;AAOvD,SAASC,sBAAsB,QAAQ,0BAA0B;AAMjE,SAASC,wBAAwB,QAAQ,4BAA4B;AAMrE,SAASC,uBAAuB,QAAQ,2BAA2B;AAQnE,SAASC,aAAa,QAAQ,iBAAiB","ignoreList":[]}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ import { useMemo } from 'react';
4
+ function defaultFilled(value) {
5
+ return value.trim().length > 0;
6
+ }
7
+
8
+ /**
9
+ * Live form completeness for required fields — powers `FieldFlowCompleteness`.
10
+ */
11
+ export function useFieldFlowCompleteness({
12
+ values,
13
+ requiredFields,
14
+ isFilled,
15
+ secondsPerField = 8
16
+ }) {
17
+ return useMemo(() => {
18
+ const filledFields = [];
19
+ const remainingFields = [];
20
+ for (const field of requiredFields) {
21
+ const value = values[field] ?? '';
22
+ const ok = isFilled ? isFilled(field, value, values) : defaultFilled(value);
23
+ if (ok) filledFields.push(field);else remainingFields.push(field);
24
+ }
25
+ const total = requiredFields.length;
26
+ const filled = filledFields.length;
27
+ const remaining = remainingFields.length;
28
+ const progress = total === 0 ? 1 : filled / total;
29
+ return {
30
+ total,
31
+ filled,
32
+ remaining,
33
+ progress,
34
+ percent: Math.round(progress * 100),
35
+ remainingFields,
36
+ filledFields,
37
+ isComplete: remaining === 0,
38
+ estimatedSecondsLeft: remaining * secondsPerField
39
+ };
40
+ }, [values, requiredFields, isFilled, secondsPerField]);
41
+ }
42
+ //# sourceMappingURL=useFieldFlowCompleteness.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useMemo","defaultFilled","value","trim","length","useFieldFlowCompleteness","values","requiredFields","isFilled","secondsPerField","filledFields","remainingFields","field","ok","push","total","filled","remaining","progress","percent","Math","round","isComplete","estimatedSecondsLeft"],"sourceRoot":"../../../src","sources":["hooks/useFieldFlowCompleteness.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AA2B/B,SAASC,aAAaA,CAACC,KAAa,EAAW;EAC7C,OAAOA,KAAK,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AAChC;;AAEA;AACA;AACA;AACA,OAAO,SAASC,wBAAwBA,CAAmC;EACzEC,MAAM;EACNC,cAAc;EACdC,QAAQ;EACRC,eAAe,GAAG;AACgB,CAAC,EAAqC;EACxE,OAAOT,OAAO,CAAC,MAAM;IACnB,MAAMU,YAAyB,GAAG,EAAE;IACpC,MAAMC,eAA4B,GAAG,EAAE;IAEvC,KAAK,MAAMC,KAAK,IAAIL,cAAc,EAAE;MAClC,MAAML,KAAK,GAAGI,MAAM,CAACM,KAAK,CAAC,IAAI,EAAE;MACjC,MAAMC,EAAE,GAAGL,QAAQ,GAAGA,QAAQ,CAACI,KAAK,EAAEV,KAAK,EAAEI,MAAM,CAAC,GAAGL,aAAa,CAACC,KAAK,CAAC;MAC3E,IAAIW,EAAE,EAAEH,YAAY,CAACI,IAAI,CAACF,KAAK,CAAC,CAAC,KAC5BD,eAAe,CAACG,IAAI,CAACF,KAAK,CAAC;IAClC;IAEA,MAAMG,KAAK,GAAGR,cAAc,CAACH,MAAM;IACnC,MAAMY,MAAM,GAAGN,YAAY,CAACN,MAAM;IAClC,MAAMa,SAAS,GAAGN,eAAe,CAACP,MAAM;IACxC,MAAMc,QAAQ,GAAGH,KAAK,KAAK,CAAC,GAAG,CAAC,GAAGC,MAAM,GAAGD,KAAK;IAEjD,OAAO;MACLA,KAAK;MACLC,MAAM;MACNC,SAAS;MACTC,QAAQ;MACRC,OAAO,EAAEC,IAAI,CAACC,KAAK,CAACH,QAAQ,GAAG,GAAG,CAAC;MACnCP,eAAe;MACfD,YAAY;MACZY,UAAU,EAAEL,SAAS,KAAK,CAAC;MAC3BM,oBAAoB,EAAEN,SAAS,GAAGR;IACpC,CAAC;EACH,CAAC,EAAE,CAACH,MAAM,EAAEC,cAAc,EAAEC,QAAQ,EAAEC,eAAe,CAAC,CAAC;AACzD","ignoreList":[]}