rn-inputforge 0.3.1 → 0.4.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 (196) hide show
  1. package/README.md +224 -19
  2. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js +131 -0
  3. package/lib/commonjs/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  4. package/lib/commonjs/components/FieldFlowCheckbox/index.js +13 -0
  5. package/lib/commonjs/components/FieldFlowCheckbox/index.js.map +1 -0
  6. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +536 -0
  7. package/lib/commonjs/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  8. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js +13 -0
  9. package/lib/commonjs/components/FieldFlowDateTimePicker/index.js.map +1 -0
  10. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js +6 -0
  11. package/lib/commonjs/components/FieldFlowDateTimePicker/types.js.map +1 -0
  12. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  13. package/lib/commonjs/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  14. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js +55 -24
  15. package/lib/commonjs/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  16. package/lib/commonjs/components/FieldFlowInput/styles.js +32 -11
  17. package/lib/commonjs/components/FieldFlowInput/styles.js.map +1 -1
  18. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +66 -0
  19. package/lib/commonjs/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  20. package/lib/commonjs/components/FieldFlowMaskedInput/index.js +13 -0
  21. package/lib/commonjs/components/FieldFlowMaskedInput/index.js.map +1 -0
  22. package/lib/commonjs/components/FieldFlowMaskedInput/types.js +6 -0
  23. package/lib/commonjs/components/FieldFlowMaskedInput/types.js.map +1 -0
  24. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js +255 -0
  25. package/lib/commonjs/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  26. package/lib/commonjs/components/FieldFlowOTP/index.js +13 -0
  27. package/lib/commonjs/components/FieldFlowOTP/index.js.map +1 -0
  28. package/lib/commonjs/components/FieldFlowOTP/types.js +6 -0
  29. package/lib/commonjs/components/FieldFlowOTP/types.js.map +1 -0
  30. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js +164 -0
  31. package/lib/commonjs/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  32. package/lib/commonjs/components/FieldFlowRadio/index.js +13 -0
  33. package/lib/commonjs/components/FieldFlowRadio/index.js.map +1 -0
  34. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js +152 -0
  35. package/lib/commonjs/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  36. package/lib/commonjs/components/FieldFlowSwitch/index.js +13 -0
  37. package/lib/commonjs/components/FieldFlowSwitch/index.js.map +1 -0
  38. package/lib/commonjs/hooks/index.js.map +1 -1
  39. package/lib/commonjs/hooks/useFieldFlowForm.js +146 -31
  40. package/lib/commonjs/hooks/useFieldFlowForm.js.map +1 -1
  41. package/lib/commonjs/icons/Icon.js +719 -30
  42. package/lib/commonjs/icons/Icon.js.map +1 -1
  43. package/lib/commonjs/icons/index.js +7 -0
  44. package/lib/commonjs/icons/index.js.map +1 -1
  45. package/lib/commonjs/icons/renderIcon.js +24 -0
  46. package/lib/commonjs/icons/renderIcon.js.map +1 -0
  47. package/lib/commonjs/index.js +127 -0
  48. package/lib/commonjs/index.js.map +1 -1
  49. package/lib/commonjs/utils/masks.js +130 -0
  50. package/lib/commonjs/utils/masks.js.map +1 -0
  51. package/lib/commonjs/validation/index.js +25 -0
  52. package/lib/commonjs/validation/index.js.map +1 -1
  53. package/lib/commonjs/validation/zodAdapter.js +91 -0
  54. package/lib/commonjs/validation/zodAdapter.js.map +1 -0
  55. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js +126 -0
  56. package/lib/module/components/FieldFlowCheckbox/FieldFlowCheckbox.js.map +1 -0
  57. package/lib/module/components/FieldFlowCheckbox/index.js +4 -0
  58. package/lib/module/components/FieldFlowCheckbox/index.js.map +1 -0
  59. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js +531 -0
  60. package/lib/module/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.js.map +1 -0
  61. package/lib/module/components/FieldFlowDateTimePicker/index.js +4 -0
  62. package/lib/module/components/FieldFlowDateTimePicker/index.js.map +1 -0
  63. package/lib/module/components/FieldFlowDateTimePicker/types.js +4 -0
  64. package/lib/module/components/FieldFlowDateTimePicker/types.js.map +1 -0
  65. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js +24 -9
  66. package/lib/module/components/FieldFlowDropdown/FieldFlowDropdown.js.map +1 -1
  67. package/lib/module/components/FieldFlowInput/FieldFlowInput.js +59 -28
  68. package/lib/module/components/FieldFlowInput/FieldFlowInput.js.map +1 -1
  69. package/lib/module/components/FieldFlowInput/styles.js +32 -11
  70. package/lib/module/components/FieldFlowInput/styles.js.map +1 -1
  71. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js +61 -0
  72. package/lib/module/components/FieldFlowMaskedInput/FieldFlowMaskedInput.js.map +1 -0
  73. package/lib/module/components/FieldFlowMaskedInput/index.js +4 -0
  74. package/lib/module/components/FieldFlowMaskedInput/index.js.map +1 -0
  75. package/lib/module/components/FieldFlowMaskedInput/types.js +4 -0
  76. package/lib/module/components/FieldFlowMaskedInput/types.js.map +1 -0
  77. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js +250 -0
  78. package/lib/module/components/FieldFlowOTP/FieldFlowOTP.js.map +1 -0
  79. package/lib/module/components/FieldFlowOTP/index.js +4 -0
  80. package/lib/module/components/FieldFlowOTP/index.js.map +1 -0
  81. package/lib/module/components/FieldFlowOTP/types.js +4 -0
  82. package/lib/module/components/FieldFlowOTP/types.js.map +1 -0
  83. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js +159 -0
  84. package/lib/module/components/FieldFlowRadio/FieldFlowRadio.js.map +1 -0
  85. package/lib/module/components/FieldFlowRadio/index.js +4 -0
  86. package/lib/module/components/FieldFlowRadio/index.js.map +1 -0
  87. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js +147 -0
  88. package/lib/module/components/FieldFlowSwitch/FieldFlowSwitch.js.map +1 -0
  89. package/lib/module/components/FieldFlowSwitch/index.js +4 -0
  90. package/lib/module/components/FieldFlowSwitch/index.js.map +1 -0
  91. package/lib/module/hooks/index.js.map +1 -1
  92. package/lib/module/hooks/useFieldFlowForm.js +147 -32
  93. package/lib/module/hooks/useFieldFlowForm.js.map +1 -1
  94. package/lib/module/icons/Icon.js +720 -31
  95. package/lib/module/icons/Icon.js.map +1 -1
  96. package/lib/module/icons/index.js +1 -0
  97. package/lib/module/icons/index.js.map +1 -1
  98. package/lib/module/icons/renderIcon.js +19 -0
  99. package/lib/module/icons/renderIcon.js.map +1 -0
  100. package/lib/module/index.js +11 -3
  101. package/lib/module/index.js.map +1 -1
  102. package/lib/module/utils/masks.js +118 -0
  103. package/lib/module/utils/masks.js.map +1 -0
  104. package/lib/module/validation/index.js +1 -0
  105. package/lib/module/validation/index.js.map +1 -1
  106. package/lib/module/validation/zodAdapter.js +84 -0
  107. package/lib/module/validation/zodAdapter.js.map +1 -0
  108. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts +36 -0
  109. package/lib/typescript/components/FieldFlowCheckbox/FieldFlowCheckbox.d.ts.map +1 -0
  110. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts +3 -0
  111. package/lib/typescript/components/FieldFlowCheckbox/index.d.ts.map +1 -0
  112. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts +4 -0
  113. package/lib/typescript/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.d.ts.map +1 -0
  114. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts +3 -0
  115. package/lib/typescript/components/FieldFlowDateTimePicker/index.d.ts.map +1 -0
  116. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts +55 -0
  117. package/lib/typescript/components/FieldFlowDateTimePicker/types.d.ts.map +1 -0
  118. package/lib/typescript/components/FieldFlowDropdown/FieldFlowDropdown.d.ts.map +1 -1
  119. package/lib/typescript/components/FieldFlowDropdown/types.d.ts +7 -1
  120. package/lib/typescript/components/FieldFlowDropdown/types.d.ts.map +1 -1
  121. package/lib/typescript/components/FieldFlowInput/FieldFlowInput.d.ts.map +1 -1
  122. package/lib/typescript/components/FieldFlowInput/styles.d.ts +19 -2
  123. package/lib/typescript/components/FieldFlowInput/styles.d.ts.map +1 -1
  124. package/lib/typescript/components/FieldFlowInput/types.d.ts +24 -5
  125. package/lib/typescript/components/FieldFlowInput/types.d.ts.map +1 -1
  126. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts +5 -0
  127. package/lib/typescript/components/FieldFlowMaskedInput/FieldFlowMaskedInput.d.ts.map +1 -0
  128. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts +3 -0
  129. package/lib/typescript/components/FieldFlowMaskedInput/index.d.ts.map +1 -0
  130. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts +20 -0
  131. package/lib/typescript/components/FieldFlowMaskedInput/types.d.ts.map +1 -0
  132. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts +4 -0
  133. package/lib/typescript/components/FieldFlowOTP/FieldFlowOTP.d.ts.map +1 -0
  134. package/lib/typescript/components/FieldFlowOTP/index.d.ts +3 -0
  135. package/lib/typescript/components/FieldFlowOTP/index.d.ts.map +1 -0
  136. package/lib/typescript/components/FieldFlowOTP/types.d.ts +52 -0
  137. package/lib/typescript/components/FieldFlowOTP/types.d.ts.map +1 -0
  138. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts +39 -0
  139. package/lib/typescript/components/FieldFlowRadio/FieldFlowRadio.d.ts.map +1 -0
  140. package/lib/typescript/components/FieldFlowRadio/index.d.ts +3 -0
  141. package/lib/typescript/components/FieldFlowRadio/index.d.ts.map +1 -0
  142. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts +31 -0
  143. package/lib/typescript/components/FieldFlowSwitch/FieldFlowSwitch.d.ts.map +1 -0
  144. package/lib/typescript/components/FieldFlowSwitch/index.d.ts +3 -0
  145. package/lib/typescript/components/FieldFlowSwitch/index.d.ts.map +1 -0
  146. package/lib/typescript/hooks/index.d.ts +1 -1
  147. package/lib/typescript/hooks/index.d.ts.map +1 -1
  148. package/lib/typescript/hooks/useFieldFlowForm.d.ts +46 -7
  149. package/lib/typescript/hooks/useFieldFlowForm.d.ts.map +1 -1
  150. package/lib/typescript/icons/Icon.d.ts +2 -2
  151. package/lib/typescript/icons/Icon.d.ts.map +1 -1
  152. package/lib/typescript/icons/index.d.ts +2 -0
  153. package/lib/typescript/icons/index.d.ts.map +1 -1
  154. package/lib/typescript/icons/renderIcon.d.ts +6 -0
  155. package/lib/typescript/icons/renderIcon.d.ts.map +1 -0
  156. package/lib/typescript/index.d.ts +20 -6
  157. package/lib/typescript/index.d.ts.map +1 -1
  158. package/lib/typescript/types/index.d.ts +4 -0
  159. package/lib/typescript/types/index.d.ts.map +1 -1
  160. package/lib/typescript/utils/masks.d.ts +37 -0
  161. package/lib/typescript/utils/masks.d.ts.map +1 -0
  162. package/lib/typescript/validation/index.d.ts +2 -0
  163. package/lib/typescript/validation/index.d.ts.map +1 -1
  164. package/lib/typescript/validation/zodAdapter.d.ts +53 -0
  165. package/lib/typescript/validation/zodAdapter.d.ts.map +1 -0
  166. package/package.json +17 -3
  167. package/src/components/FieldFlowCheckbox/FieldFlowCheckbox.tsx +174 -0
  168. package/src/components/FieldFlowCheckbox/index.ts +2 -0
  169. package/src/components/FieldFlowDateTimePicker/FieldFlowDateTimePicker.tsx +585 -0
  170. package/src/components/FieldFlowDateTimePicker/index.ts +2 -0
  171. package/src/components/FieldFlowDateTimePicker/types.ts +57 -0
  172. package/src/components/FieldFlowDropdown/FieldFlowDropdown.tsx +17 -7
  173. package/src/components/FieldFlowDropdown/types.ts +8 -1
  174. package/src/components/FieldFlowInput/FieldFlowInput.tsx +69 -26
  175. package/src/components/FieldFlowInput/styles.ts +41 -6
  176. package/src/components/FieldFlowInput/types.ts +24 -5
  177. package/src/components/FieldFlowMaskedInput/FieldFlowMaskedInput.tsx +76 -0
  178. package/src/components/FieldFlowMaskedInput/index.ts +2 -0
  179. package/src/components/FieldFlowMaskedInput/types.ts +22 -0
  180. package/src/components/FieldFlowOTP/FieldFlowOTP.tsx +305 -0
  181. package/src/components/FieldFlowOTP/index.ts +2 -0
  182. package/src/components/FieldFlowOTP/types.ts +57 -0
  183. package/src/components/FieldFlowRadio/FieldFlowRadio.tsx +215 -0
  184. package/src/components/FieldFlowRadio/index.ts +2 -0
  185. package/src/components/FieldFlowSwitch/FieldFlowSwitch.tsx +172 -0
  186. package/src/components/FieldFlowSwitch/index.ts +2 -0
  187. package/src/hooks/index.ts +3 -0
  188. package/src/hooks/useFieldFlowForm.ts +209 -33
  189. package/src/icons/Icon.tsx +451 -5
  190. package/src/icons/index.ts +2 -0
  191. package/src/icons/renderIcon.tsx +17 -0
  192. package/src/index.ts +47 -4
  193. package/src/types/index.ts +5 -0
  194. package/src/utils/masks.ts +137 -0
  195. package/src/validation/index.ts +7 -0
  196. package/src/validation/zodAdapter.ts +103 -0
package/README.md CHANGED
@@ -1,11 +1,36 @@
1
1
  # rn-inputforge
2
2
 
3
- A production-ready, highly customizable input field system for **bare React Native CLI** apps — text, email, number, phone, password, search, description, and chat inputs, plus a fully customizable single/multi-select dropdown (bottom sheet, popup, or inline), with built-in validation, theming, icons, and keyboard-aware form navigation. Pure JS/TS, no native modules, so there's nothing to link.
3
+ A production-ready, highly customizable input field system for **React Native** (bare CLI **and Expo**) — text, email, number, phone, password, search, OTP/PIN, masked inputs, date/time picker, checkbox/radio/switch, description, and chat inputs, plus a fully customizable single/multi-select dropdown (bottom sheet, popup, or inline), with built-in validation (sync, async, cross-field, optional Zod), theming, icons, and keyboard-aware form navigation. Pure JS/TS, no native modules, so there's nothing to link.
4
4
 
5
5
  Works identically whether your project uses **npm** or **yarn**.
6
6
 
7
7
  ---
8
8
 
9
+ ## What's new in 0.4.0
10
+
11
+ Upgrading from **0.3.1**? Here's everything added in this release:
12
+
13
+ | Addition | What you get |
14
+ | -------- | ------------ |
15
+ | **`FieldFlowOTP`** | OTP / PIN digit cells with paste, autofill, and `onComplete` |
16
+ | **`FieldFlowMaskedInput`** | `phone`, `card`, `currency`, `date`, and custom `#` masks |
17
+ | **`FieldFlowDateTimePicker`** | Pure-JS date / time / datetime picker (no native modules) |
18
+ | **`FieldFlowCheckbox`** | Themed checkbox with custom icons & colors |
19
+ | **`FieldFlowRadio`** | Radio group (options can carry icons too) |
20
+ | **`FieldFlowSwitch`** | Animated switch with theme overrides |
21
+ | **Variants** | `outlined` · `filled` · `underline` · `floating` on text fields |
22
+ | **Icons** | Larger built-in set + pass any custom React node anywhere |
23
+ | **Async validation** | `asyncValidators` + `form.validating` / `form.isValidating` |
24
+ | **Cross-field rules** | e.g. password confirm via `crossFieldRules` |
25
+ | **Zod helpers** | Optional `zodFormValidate`, `zodToFormErrors`, etc. |
26
+ | **Expo** | Explicit support — same install, no linking |
27
+
28
+ **Breaking change:** `validateField` and `validateAll` now return `Promise<boolean>` (needed for async validation). Prefer `await form.validateAll()` or just use `form.submit()`.
29
+
30
+ Jump to: [OTP](#otp--pin) · [Masked inputs](#masked-inputs) · [Date & time](#date--time-picker) · [Checkbox / radio / switch](#checkbox-radio--switch) · [Variants](#variants) · [Icons](#icons) · [Validation](#validation)
31
+
32
+ ---
33
+
9
34
  ## Installation
10
35
 
11
36
  Pick whichever your project already uses — the package itself doesn't care.
@@ -18,13 +43,15 @@ npm install rn-inputforge
18
43
  yarn add rn-inputforge
19
44
  ```
20
45
 
21
- That's it — this is a pure JavaScript/TypeScript package (no native code), so on a bare React Native CLI project there is **no pod install step and no manual linking** required. If you're on iOS and your project's Podfile does a full `pod install` on every dependency change anyway, running it won't hurt, it's just not required for this package.
46
+ That's it — this is a pure JavaScript/TypeScript package (no native code), so there is **no pod install step and no manual linking** required on bare React Native CLI. Same install works in **Expo** (Managed or Dev Client) — just `npx expo install` is not required for this package because it has no native dependencies; `npm install rn-inputforge` / `yarn add rn-inputforge` is enough.
22
47
 
23
48
  ### Requirements
24
49
 
25
50
  - `react` >= 18 (tested against 19.2.x)
26
51
  - `react-native` >= 0.73 (tested against 0.86.x)
52
+ - Works with Expo SDK that ships RN ≥ 0.73
27
53
  - TypeScript is optional but recommended (type defs are bundled)
54
+ - `zod` is an **optional** peer dependency (only if you use the Zod helpers)
28
55
 
29
56
  ---
30
57
 
@@ -112,7 +139,190 @@ const form = useFieldFlowForm({
112
139
  />;
113
140
  ```
114
141
 
115
- `form.submit()` validates every field and only calls `onSubmit` if everything passes.
142
+ `form.submit()` validates every field (including async + cross-field rules) and only calls `onSubmit` if everything passes.
143
+
144
+ ### Cross-field & async validation
145
+
146
+ ```tsx
147
+ const form = useFieldFlowForm({
148
+ initialValues: { password: '', confirm: '', email: '' },
149
+ rules: {
150
+ password: { required: true, minLength: 8 },
151
+ confirm: { required: true },
152
+ email: { required: true, email: true },
153
+ },
154
+ crossFieldRules: [
155
+ {
156
+ target: 'confirm',
157
+ deps: ['password'],
158
+ validate: v =>
159
+ v.password === v.confirm
160
+ ? { valid: true }
161
+ : { valid: false, message: 'Passwords must match' },
162
+ },
163
+ ],
164
+ asyncValidators: {
165
+ email: async value => {
166
+ const taken = await api.isEmailTaken(value);
167
+ return taken
168
+ ? { valid: false, message: 'Email is already taken' }
169
+ : { valid: true };
170
+ },
171
+ },
172
+ });
173
+
174
+ // form.validating.email === true while the async check runs
175
+ // form.isValidating === true if any async validator is in flight
176
+ ```
177
+
178
+ > **Note (0.4.0):** `validateField` and `validateAll` are now `async` and return `Promise<boolean>`.
179
+
180
+ ### Zod (optional)
181
+
182
+ ```bash
183
+ npm install zod
184
+ ```
185
+
186
+ ```tsx
187
+ import { z } from 'zod';
188
+ import { useFieldFlowForm, zodFormValidate } from 'rn-inputforge';
189
+
190
+ const schema = z.object({
191
+ email: z.string().email(),
192
+ password: z.string().min(8),
193
+ });
194
+
195
+ const form = useFieldFlowForm({
196
+ initialValues: { email: '', password: '' },
197
+ formValidate: zodFormValidate(schema),
198
+ onSubmit: async values => api.login(values),
199
+ });
200
+ ```
201
+
202
+ Also exported: `zodToFormErrors`, `createZodSubmitGuard`, `fieldRulesFromZodString`.
203
+
204
+ ---
205
+
206
+ ## Variants
207
+
208
+ Every text-like field (`FieldFlowInput`, `FieldFlowMaskedInput`, date picker trigger) supports:
209
+
210
+ | `variant` | Look |
211
+ | ------------ | ----------------------------------------- |
212
+ | `outlined` | Bordered box (default) |
213
+ | `filled` | Soft filled background |
214
+ | `underline` | Bottom border only |
215
+ | `floating` | Label animates into the border when filled / focused |
216
+
217
+ ```tsx
218
+ <FieldFlowInput variant="floating" label="Email" type="email" value={email} onChangeText={setEmail} />
219
+ <FieldFlowInput variant="underline" label="Name" leftIcon="user" value={name} onChangeText={setName} />
220
+ ```
221
+
222
+ ## Icons
223
+
224
+ Built-in, dependency-free icons — pass a name **or** any custom React node:
225
+
226
+ ```tsx
227
+ <FieldFlowInput leftIcon="mail" rightIcon={<MyLucideIcon />} />
228
+ <FieldFlowInput type="email" /> // auto leftIcon="mail"
229
+ <FieldFlowInput type="password" /> // auto leftIcon="lock" + show/hide
230
+ <FieldFlowMaskedInput mask="card" /> // auto leftIcon="creditCard"
231
+ ```
232
+
233
+ Built-in names include: `eye`, `eyeOff`, `clear`, `check`, `alert`, `search`, `send`, `camera`, `image`, `paperclip`, `mic`, `mapPin`, `chevronDown/Up/Left/Right`, `calendar`, `clock`, `creditCard`, `currency`, `phone`, `mail`, `lock`, `user`, `key`, `hash`, `otp`, `radio`, `radioFilled`, `switch`, `star`, `plus`, `minus`, `info`, `home`, `settings`, `edit`, `trash`, `link`, `globe`, `file`, `folder`, `bell`, `heart`, `spinner`.
234
+
235
+ Use `FieldFlowIcon` / `renderFieldFlowIcon` anywhere in your app. Set `iconSize` on components to scale them. Pass `leftIcon={null}` / `undefined` carefully — omit the prop to keep defaults, or pass a custom node to replace.
236
+
237
+ ## OTP / PIN
238
+
239
+ ```tsx
240
+ import { FieldFlowOTP } from 'rn-inputforge';
241
+
242
+ <FieldFlowOTP
243
+ label="Verification code"
244
+ leftIcon="otp"
245
+ length={6}
246
+ value={code}
247
+ onChangeText={setCode}
248
+ onComplete={value => verify(value)}
249
+ cellSize={48}
250
+ />
251
+ ```
252
+
253
+ Supports paste/autofill (`textContentType="oneTimeCode"`), backspace navigation, secure mode, custom `renderCell`, cell styles, and icons.
254
+
255
+ ---
256
+
257
+ ## Masked inputs
258
+
259
+ ```tsx
260
+ import { FieldFlowMaskedInput } from 'rn-inputforge';
261
+
262
+ <FieldFlowMaskedInput mask="phone" label="Phone" value={phone} onChangeText={setPhone} />
263
+ <FieldFlowMaskedInput mask="card" label="Card" valueMode="raw" value={card} onChangeText={(_, raw) => setCard(raw)} />
264
+ <FieldFlowMaskedInput mask="currency" maskOptions={{ currencySymbol: '$' }} value={amount} onChangeText={setAmount} />
265
+ <FieldFlowMaskedInput mask="date" label="Date" value={date} onChangeText={setDate} />
266
+ <FieldFlowMaskedInput mask="custom" maskOptions={{ pattern: '###-##-####' }} value={ssn} onChangeText={setSsn} />
267
+ ```
268
+
269
+ Built-in masks: `phone`, `card`, `currency`, `date`, `custom` (pattern with `#` = digit). `onChangeText(formatted, raw)` always receives both; `valueMode` controls which string you store (`'formatted'` default, or `'raw'`).
270
+
271
+ Low-level helpers are also exported: `applyMask`, `formatMasked`, `unmask`, `digitsOnly`.
272
+
273
+ ---
274
+
275
+ ## Date & time picker
276
+
277
+ Pure JS calendar / time sheet (no native modules):
278
+
279
+ ```tsx
280
+ import { FieldFlowDateTimePicker } from 'rn-inputforge';
281
+
282
+ <FieldFlowDateTimePicker mode="date" label="Birthday" value={dob} onChange={setDob} clearable />
283
+ <FieldFlowDateTimePicker mode="time" label="Start time" value={time} onChange={setTime} hourCycle={12} />
284
+ <FieldFlowDateTimePicker
285
+ mode="datetime"
286
+ label="Appointment"
287
+ value={appt}
288
+ onChange={setAppt}
289
+ leftIcon="calendar"
290
+ minimumDate="2020-01-01"
291
+ formatDisplay={(d) => d.toLocaleString()}
292
+ />
293
+ ```
294
+
295
+ Fully customizable: icons, labels, confirm/cancel text, `renderTrigger`, `formatDisplay`, min/max dates, theme, styles.
296
+
297
+ ## Checkbox, radio & switch
298
+
299
+ ```tsx
300
+ import { FieldFlowCheckbox, FieldFlowRadio, FieldFlowSwitch } from 'rn-inputforge';
301
+
302
+ <FieldFlowCheckbox
303
+ label="I agree to the Terms"
304
+ leftIcon="file"
305
+ checkedIcon="check"
306
+ value={accepted}
307
+ onChange={setAccepted}
308
+ required
309
+ />
310
+
311
+ <FieldFlowRadio
312
+ label="Plan"
313
+ leftIcon="star"
314
+ value={plan}
315
+ onChange={setPlan}
316
+ options={[
317
+ { label: 'Starter', value: 'starter', icon: 'home' },
318
+ { label: 'Pro', value: 'pro', description: 'Most popular', icon: 'star' },
319
+ ]}
320
+ />
321
+
322
+ <FieldFlowSwitch label="Push notifications" leftIcon="bell" value={pushOn} onChange={setPushOn} />
323
+ ```
324
+
325
+ Override colors (`checkedColor`, `onTrackColor`, …), icons, sizes, and `renderOption` when you need full control.
116
326
 
117
327
  ---
118
328
 
@@ -225,18 +435,6 @@ Handles expandable height, keyboard-avoiding behavior, and a send button that's
225
435
 
226
436
  ---
227
437
 
228
- ## Icons
229
-
230
- FieldFlow ships a small, dependency-free icon set (`eye`, `eyeOff`, `clear`, `check`, `alert`, `search`, `send`, `camera`, `image`, `paperclip`, `mic`, `mapPin`, `spinner`) so you don't need to install `react-native-svg` or a vector-icon library just to use text fields with icons:
231
-
232
- ```tsx
233
- <FieldFlowInput leftIcon="search" rightIcon={<MyCustomIcon />} />
234
- ```
235
-
236
- Any prop that accepts an icon also accepts a raw `ReactNode`, so you can swap in your own icon library (e.g. `react-native-vector-icons`, `lucide-react-native`) at any time without changing anything else.
237
-
238
- ---
239
-
240
438
  ## Theming
241
439
 
242
440
  Wrap your app (or just a screen) in `FieldFlowThemeProvider` and override only what you need — everything else falls back to the default theme:
@@ -265,17 +463,24 @@ rn-inputforge/
265
463
  ├── src/
266
464
  │ ├── components/
267
465
  │ │ ├── FieldFlowInput/ core input (all field types, icons, states)
466
+ │ │ ├── FieldFlowInput/ core input + variants (outlined/filled/underline/floating)
467
+ │ │ ├── FieldFlowOTP/ OTP / PIN digit cells
468
+ │ │ ├── FieldFlowMaskedInput/ phone, card, currency, date, custom masks
469
+ │ │ ├── FieldFlowDateTimePicker/ date / time / datetime (pure JS)
470
+ │ │ ├── FieldFlowCheckbox/ themed checkbox
471
+ │ │ ├── FieldFlowRadio/ radio group
472
+ │ │ ├── FieldFlowSwitch/ animated switch
268
473
  │ │ ├── DescriptionField/ auto-growing multiline field
269
474
  │ │ ├── ChatInput/ chat composer + attachment toolbar
270
475
  │ │ ├── FieldFlowDropdown/ single/multi select — bottom sheet, popup, or inline
271
476
  │ │ └── KeyboardAwareFormWrapper/
272
477
  │ ├── hooks/ useFieldFlowForm, useKeyboardManager, useFieldState
273
478
  │ ├── theme/ ThemeProvider + default/dark themes
274
- │ ├── validation/ validators + useValidation
275
- │ ├── icons/ dependency-free icon set
276
- │ ├── utils/ keyboard-type resolution, formatters
479
+ │ ├── validation/ validators, useValidation, Zod adapter
480
+ │ ├── icons/ expanded dependency-free icon set + render helper
481
+ │ ├── utils/ keyboard-type resolution, formatters, masks
277
482
  │ └── index.ts public API
278
- ├── example/App.tsx full usage reference (form + chat screen)
483
+ ├── example/App.tsx full usage reference
279
484
  ├── package.json
280
485
  └── tsconfig*.json
281
486
  ```
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.FieldFlowCheckbox = FieldFlowCheckbox;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _ThemeProvider = require("../../theme/ThemeProvider");
10
+ var _defaultTheme = require("../../theme/defaultTheme");
11
+ var _icons = require("../../icons");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ function FieldFlowCheckbox({
15
+ value,
16
+ onChange,
17
+ label,
18
+ helperText,
19
+ errorText,
20
+ disabled,
21
+ required,
22
+ labelPosition = 'right',
23
+ checkedIcon = 'check',
24
+ uncheckedIcon,
25
+ leftIcon,
26
+ iconSize = 14,
27
+ checkedColor,
28
+ uncheckedColor,
29
+ boxSize = 22,
30
+ boxStyle,
31
+ containerStyle,
32
+ labelStyle,
33
+ helperStyle,
34
+ errorStyle,
35
+ theme: themeOverride,
36
+ testID
37
+ }) {
38
+ const contextTheme = (0, _ThemeProvider.useFieldFlowTheme)();
39
+ const theme = (0, _react.useMemo)(() => themeOverride ? (0, _ThemeProvider.mergeDeep)(contextTheme ?? _defaultTheme.defaultTheme, themeOverride) : contextTheme ?? _defaultTheme.defaultTheme, [contextTheme, themeOverride]);
40
+ const styles = (0, _react.useMemo)(() => createStyles(theme, Boolean(errorText), Boolean(disabled), boxSize), [theme, errorText, disabled, boxSize]);
41
+ const checked = Boolean(value);
42
+ const activeColor = checkedColor ?? theme.colors.borderFocused;
43
+ const idleColor = uncheckedColor ?? (errorText ? theme.colors.borderError : theme.colors.border);
44
+ const box = /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
45
+ style: [styles.box, checked && {
46
+ backgroundColor: activeColor,
47
+ borderColor: activeColor
48
+ }, !checked && {
49
+ borderColor: idleColor
50
+ }, disabled ? styles.boxDisabled : null, boxStyle],
51
+ children: checked ? (0, _icons.renderFieldFlowIcon)(checkedIcon, '#FFFFFF', iconSize) : uncheckedIcon ? (0, _icons.renderFieldFlowIcon)(uncheckedIcon, idleColor, iconSize) : null
52
+ });
53
+ const labelNode = label ? /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Text, {
54
+ style: [styles.label, labelStyle],
55
+ children: [label, required ? ' *' : '']
56
+ }) : null;
57
+ return /*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.View, {
58
+ style: [styles.wrapper, containerStyle],
59
+ testID: testID,
60
+ children: [/*#__PURE__*/(0, _jsxRuntime.jsxs)(_reactNative.Pressable, {
61
+ onPress: () => !disabled && onChange(!checked),
62
+ disabled: disabled,
63
+ style: styles.row,
64
+ accessibilityRole: "checkbox",
65
+ accessibilityState: {
66
+ checked,
67
+ disabled: Boolean(disabled)
68
+ },
69
+ accessibilityLabel: label,
70
+ hitSlop: 6,
71
+ children: [leftIcon ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
72
+ style: styles.leftIcon,
73
+ children: (0, _icons.renderFieldFlowIcon)(leftIcon, theme.colors.icon, 18)
74
+ }) : null, labelPosition === 'left' ? labelNode : null, box, labelPosition === 'right' ? labelNode : null]
75
+ }), errorText ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
76
+ style: [styles.errorText, errorStyle, helperStyle],
77
+ children: errorText
78
+ }) : helperText ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.Text, {
79
+ style: [styles.helperText, helperStyle],
80
+ children: helperText
81
+ }) : null]
82
+ });
83
+ }
84
+ function createStyles(theme, _hasError, disabled, boxSize) {
85
+ return _reactNative.StyleSheet.create({
86
+ wrapper: {
87
+ marginBottom: theme.spacing.gap * 2,
88
+ opacity: disabled ? 0.6 : 1
89
+ },
90
+ row: {
91
+ flexDirection: 'row',
92
+ alignItems: 'center',
93
+ gap: theme.spacing.gap
94
+ },
95
+ leftIcon: {
96
+ marginRight: 2
97
+ },
98
+ box: {
99
+ width: boxSize,
100
+ height: boxSize,
101
+ borderRadius: 6,
102
+ borderWidth: theme.spacing.borderWidthFocused,
103
+ backgroundColor: theme.colors.background,
104
+ alignItems: 'center',
105
+ justifyContent: 'center'
106
+ },
107
+ boxDisabled: {
108
+ backgroundColor: theme.colors.backgroundDisabled
109
+ },
110
+ label: {
111
+ flex: 1,
112
+ fontSize: theme.typography.fontSize,
113
+ color: theme.colors.text,
114
+ fontWeight: '400',
115
+ fontFamily: theme.typography.fontFamily
116
+ },
117
+ helperText: {
118
+ marginTop: theme.spacing.gap / 1.5,
119
+ marginLeft: boxSize + theme.spacing.gap,
120
+ fontSize: theme.typography.helperFontSize,
121
+ color: theme.colors.label
122
+ },
123
+ errorText: {
124
+ marginTop: theme.spacing.gap / 1.5,
125
+ marginLeft: boxSize + theme.spacing.gap,
126
+ fontSize: theme.typography.helperFontSize,
127
+ color: theme.colors.error
128
+ }
129
+ });
130
+ }
131
+ //# sourceMappingURL=FieldFlowCheckbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_ThemeProvider","_defaultTheme","_icons","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","FieldFlowCheckbox","value","onChange","label","helperText","errorText","disabled","required","labelPosition","checkedIcon","uncheckedIcon","leftIcon","iconSize","checkedColor","uncheckedColor","boxSize","boxStyle","containerStyle","labelStyle","helperStyle","errorStyle","theme","themeOverride","testID","contextTheme","useFieldFlowTheme","useMemo","mergeDeep","defaultTheme","styles","createStyles","Boolean","checked","activeColor","colors","borderFocused","idleColor","borderError","border","box","jsx","View","style","backgroundColor","borderColor","boxDisabled","children","renderFieldFlowIcon","labelNode","jsxs","Text","wrapper","Pressable","onPress","row","accessibilityRole","accessibilityState","accessibilityLabel","hitSlop","icon","_hasError","StyleSheet","create","marginBottom","spacing","gap","opacity","flexDirection","alignItems","marginRight","width","height","borderRadius","borderWidth","borderWidthFocused","background","justifyContent","backgroundDisabled","flex","fontSize","typography","color","text","fontWeight","fontFamily","marginTop","marginLeft","helperFontSize","error"],"sourceRoot":"../../../../src","sources":["components/FieldFlowCheckbox/FieldFlowCheckbox.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "FieldFlowCheckbox", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _FieldFlowCheckbox.FieldFlowCheckbox;
10
+ }
11
+ });
12
+ var _FieldFlowCheckbox = require("./FieldFlowCheckbox");
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_FieldFlowCheckbox","require"],"sourceRoot":"../../../../src","sources":["components/FieldFlowCheckbox/index.ts"],"mappings":";;;;;;;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA","ignoreList":[]}