envoc-form 5.0.3 → 5.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 (323) hide show
  1. package/README.md +4650 -1250
  2. package/dist/index.cjs +21523 -0
  3. package/dist/index.d.ts +575 -0
  4. package/dist/index.js +21456 -0
  5. package/package.json +107 -111
  6. package/dist/css/envoc-form-styles.css +0 -3
  7. package/dist/css/envoc-form-styles.css.map +0 -1
  8. package/es/AddressInput/AddressInput.d.ts +0 -24
  9. package/es/AddressInput/AddressInput.js +0 -20
  10. package/es/AddressInput/UsStates.d.ts +0 -3
  11. package/es/AddressInput/UsStates.js +0 -53
  12. package/es/ConfirmBaseForm/ConfirmBaseForm.d.ts +0 -26
  13. package/es/ConfirmBaseForm/ConfirmBaseForm.js +0 -42
  14. package/es/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +0 -24
  15. package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -60
  16. package/es/DatePicker/DatePickerGroup.d.ts +0 -13
  17. package/es/DatePicker/DatePickerGroup.js +0 -87
  18. package/es/DatePicker/DatePickerHelper.d.ts +0 -3
  19. package/es/DatePicker/DatePickerHelper.js +0 -1
  20. package/es/DatePicker/StringDateOnlyPickerGroup.d.ts +0 -9
  21. package/es/DatePicker/StringDateOnlyPickerGroup.js +0 -29
  22. package/es/DatePicker/StringDatePickerGroup.d.ts +0 -9
  23. package/es/DatePicker/StringDatePickerGroup.js +0 -24
  24. package/es/Field/CustomFieldInputProps.d.ts +0 -7
  25. package/es/Field/CustomFieldInputProps.js +0 -1
  26. package/es/Field/CustomFieldMetaProps.d.ts +0 -4
  27. package/es/Field/CustomFieldMetaProps.js +0 -1
  28. package/es/Field/Field.d.ts +0 -28
  29. package/es/Field/Field.js +0 -51
  30. package/es/Field/FieldErrorScrollTarget.d.ts +0 -2
  31. package/es/Field/FieldErrorScrollTarget.js +0 -12
  32. package/es/Field/FieldNameContext.d.ts +0 -3
  33. package/es/Field/FieldNameContext.js +0 -3
  34. package/es/Field/FieldSection.d.ts +0 -7
  35. package/es/Field/FieldSection.js +0 -9
  36. package/es/Field/InjectedFieldProps.d.ts +0 -7
  37. package/es/Field/InjectedFieldProps.js +0 -1
  38. package/es/Field/StandAloneInput.d.ts +0 -13
  39. package/es/Field/StandAloneInput.js +0 -50
  40. package/es/Field/useStandardField.d.ts +0 -21
  41. package/es/Field/useStandardField.js +0 -92
  42. package/es/FieldArray/FieldArray.d.ts +0 -24
  43. package/es/FieldArray/FieldArray.js +0 -77
  44. package/es/File/FileGroup.d.ts +0 -10
  45. package/es/File/FileGroup.js +0 -53
  46. package/es/File/FileList.d.ts +0 -5
  47. package/es/File/FileList.js +0 -10
  48. package/es/File/humanFileSize.d.ts +0 -1
  49. package/es/File/humanFileSize.js +0 -6
  50. package/es/Form/FocusError.d.ts +0 -7
  51. package/es/Form/FocusError.js +0 -42
  52. package/es/Form/Form.d.ts +0 -33
  53. package/es/Form/Form.js +0 -141
  54. package/es/Form/FormBasedPreventNavigation.d.ts +0 -6
  55. package/es/Form/FormBasedPreventNavigation.js +0 -20
  56. package/es/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  57. package/es/Form/LegacyFormBasedPreventNavigation.js +0 -69
  58. package/es/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  59. package/es/Form/NewFormBasedPreventNavigation.js +0 -39
  60. package/es/Form/ServerErrorContext.d.ts +0 -11
  61. package/es/Form/ServerErrorContext.js +0 -9
  62. package/es/FormActions.d.ts +0 -12
  63. package/es/FormActions.js +0 -16
  64. package/es/FormDefaults.d.ts +0 -4
  65. package/es/FormDefaults.js +0 -2
  66. package/es/Group.d.ts +0 -16
  67. package/es/Group.js +0 -14
  68. package/es/Input/IconInputGroup.d.ts +0 -12
  69. package/es/Input/IconInputGroup.js +0 -43
  70. package/es/Input/InputGroup.d.ts +0 -12
  71. package/es/Input/InputGroup.js +0 -34
  72. package/es/Input/MoneyInputGroup.d.ts +0 -9
  73. package/es/Input/MoneyInputGroup.js +0 -43
  74. package/es/Input/NumberInputGroup.d.ts +0 -9
  75. package/es/Input/NumberInputGroup.js +0 -43
  76. package/es/Input/PhoneNumberInputGroup.d.ts +0 -10
  77. package/es/Input/PhoneNumberInputGroup.js +0 -47
  78. package/es/Input/StringInputGroup.d.ts +0 -8
  79. package/es/Input/StringInputGroup.js +0 -43
  80. package/es/Normalization/NormalizationFunction.d.ts +0 -4
  81. package/es/Normalization/NormalizationFunction.js +0 -1
  82. package/es/Normalization/normalizers.d.ts +0 -4
  83. package/es/Normalization/normalizers.js +0 -32
  84. package/es/Select/BooleanSelectGroup.d.ts +0 -7
  85. package/es/Select/BooleanSelectGroup.js +0 -28
  86. package/es/Select/NumberSelectGroup.d.ts +0 -9
  87. package/es/Select/NumberSelectGroup.js +0 -21
  88. package/es/Select/SelectGroup.d.ts +0 -27
  89. package/es/Select/SelectGroup.js +0 -65
  90. package/es/Select/SelectGroupPropsHelper.d.ts +0 -3
  91. package/es/Select/SelectGroupPropsHelper.js +0 -1
  92. package/es/Select/StringSelectGroup.d.ts +0 -9
  93. package/es/Select/StringSelectGroup.js +0 -21
  94. package/es/StandardFormActions.d.ts +0 -11
  95. package/es/StandardFormActions.js +0 -14
  96. package/es/SubmitFormButton.d.ts +0 -10
  97. package/es/SubmitFormButton.js +0 -40
  98. package/es/TextArea/TextAreaGroup.d.ts +0 -9
  99. package/es/TextArea/TextAreaGroup.js +0 -35
  100. package/es/Validation/ValidatedApiResult.d.ts +0 -6
  101. package/es/Validation/ValidatedApiResult.js +0 -1
  102. package/es/Validation/ValidationError.d.ts +0 -5
  103. package/es/Validation/ValidationError.js +0 -1
  104. package/es/Validation/ValidationFunction.d.ts +0 -4
  105. package/es/Validation/ValidationFunction.js +0 -1
  106. package/es/Validation/validators.d.ts +0 -18
  107. package/es/Validation/validators.js +0 -77
  108. package/es/index.d.ts +0 -75
  109. package/es/index.js +0 -51
  110. package/es/setupTests.d.ts +0 -1
  111. package/es/setupTests.js +0 -1
  112. package/es/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  113. package/es/utils/objectContainsNonSerializableProperty.js +0 -14
  114. package/es/utils/objectToFormData.d.ts +0 -10
  115. package/es/utils/objectToFormData.js +0 -77
  116. package/es/utils/typeChecks.d.ts +0 -8
  117. package/es/utils/typeChecks.js +0 -18
  118. package/lib/AddressInput/AddressInput.d.ts +0 -24
  119. package/lib/AddressInput/AddressInput.js +0 -26
  120. package/lib/AddressInput/UsStates.d.ts +0 -3
  121. package/lib/AddressInput/UsStates.js +0 -55
  122. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +0 -26
  123. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +0 -48
  124. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +0 -24
  125. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -66
  126. package/lib/DatePicker/DatePickerGroup.d.ts +0 -13
  127. package/lib/DatePicker/DatePickerGroup.js +0 -95
  128. package/lib/DatePicker/DatePickerHelper.d.ts +0 -3
  129. package/lib/DatePicker/DatePickerHelper.js +0 -2
  130. package/lib/DatePicker/StringDateOnlyPickerGroup.d.ts +0 -9
  131. package/lib/DatePicker/StringDateOnlyPickerGroup.js +0 -35
  132. package/lib/DatePicker/StringDatePickerGroup.d.ts +0 -9
  133. package/lib/DatePicker/StringDatePickerGroup.js +0 -30
  134. package/lib/Field/CustomFieldInputProps.d.ts +0 -7
  135. package/lib/Field/CustomFieldInputProps.js +0 -2
  136. package/lib/Field/CustomFieldMetaProps.d.ts +0 -4
  137. package/lib/Field/CustomFieldMetaProps.js +0 -2
  138. package/lib/Field/Field.d.ts +0 -28
  139. package/lib/Field/Field.js +0 -56
  140. package/lib/Field/FieldErrorScrollTarget.d.ts +0 -2
  141. package/lib/Field/FieldErrorScrollTarget.js +0 -15
  142. package/lib/Field/FieldNameContext.d.ts +0 -3
  143. package/lib/Field/FieldNameContext.js +0 -9
  144. package/lib/Field/FieldSection.d.ts +0 -7
  145. package/lib/Field/FieldSection.js +0 -12
  146. package/lib/Field/InjectedFieldProps.d.ts +0 -7
  147. package/lib/Field/InjectedFieldProps.js +0 -2
  148. package/lib/Field/StandAloneInput.d.ts +0 -13
  149. package/lib/Field/StandAloneInput.js +0 -76
  150. package/lib/Field/useStandardField.d.ts +0 -21
  151. package/lib/Field/useStandardField.js +0 -95
  152. package/lib/FieldArray/FieldArray.d.ts +0 -24
  153. package/lib/FieldArray/FieldArray.js +0 -83
  154. package/lib/File/FileGroup.d.ts +0 -10
  155. package/lib/File/FileGroup.js +0 -58
  156. package/lib/File/FileList.d.ts +0 -5
  157. package/lib/File/FileList.js +0 -13
  158. package/lib/File/humanFileSize.d.ts +0 -1
  159. package/lib/File/humanFileSize.js +0 -10
  160. package/lib/Form/FocusError.d.ts +0 -7
  161. package/lib/Form/FocusError.js +0 -48
  162. package/lib/Form/Form.d.ts +0 -33
  163. package/lib/Form/Form.js +0 -147
  164. package/lib/Form/FormBasedPreventNavigation.d.ts +0 -6
  165. package/lib/Form/FormBasedPreventNavigation.js +0 -26
  166. package/lib/Form/LegacyFormBasedPreventNavigation.d.ts +0 -17
  167. package/lib/Form/LegacyFormBasedPreventNavigation.js +0 -72
  168. package/lib/Form/NewFormBasedPreventNavigation.d.ts +0 -14
  169. package/lib/Form/NewFormBasedPreventNavigation.js +0 -42
  170. package/lib/Form/ServerErrorContext.d.ts +0 -11
  171. package/lib/Form/ServerErrorContext.js +0 -15
  172. package/lib/FormActions.d.ts +0 -12
  173. package/lib/FormActions.js +0 -22
  174. package/lib/FormDefaults.d.ts +0 -4
  175. package/lib/FormDefaults.js +0 -5
  176. package/lib/Group.d.ts +0 -16
  177. package/lib/Group.js +0 -20
  178. package/lib/Input/IconInputGroup.d.ts +0 -12
  179. package/lib/Input/IconInputGroup.js +0 -48
  180. package/lib/Input/InputGroup.d.ts +0 -12
  181. package/lib/Input/InputGroup.js +0 -39
  182. package/lib/Input/MoneyInputGroup.d.ts +0 -9
  183. package/lib/Input/MoneyInputGroup.js +0 -48
  184. package/lib/Input/NumberInputGroup.d.ts +0 -9
  185. package/lib/Input/NumberInputGroup.js +0 -48
  186. package/lib/Input/PhoneNumberInputGroup.d.ts +0 -10
  187. package/lib/Input/PhoneNumberInputGroup.js +0 -52
  188. package/lib/Input/StringInputGroup.d.ts +0 -8
  189. package/lib/Input/StringInputGroup.js +0 -48
  190. package/lib/Normalization/NormalizationFunction.d.ts +0 -4
  191. package/lib/Normalization/NormalizationFunction.js +0 -2
  192. package/lib/Normalization/normalizers.d.ts +0 -4
  193. package/lib/Normalization/normalizers.js +0 -37
  194. package/lib/Select/BooleanSelectGroup.d.ts +0 -7
  195. package/lib/Select/BooleanSelectGroup.js +0 -35
  196. package/lib/Select/NumberSelectGroup.d.ts +0 -9
  197. package/lib/Select/NumberSelectGroup.js +0 -29
  198. package/lib/Select/SelectGroup.d.ts +0 -27
  199. package/lib/Select/SelectGroup.js +0 -71
  200. package/lib/Select/SelectGroupPropsHelper.d.ts +0 -3
  201. package/lib/Select/SelectGroupPropsHelper.js +0 -2
  202. package/lib/Select/StringSelectGroup.d.ts +0 -9
  203. package/lib/Select/StringSelectGroup.js +0 -29
  204. package/lib/StandardFormActions.d.ts +0 -11
  205. package/lib/StandardFormActions.js +0 -20
  206. package/lib/SubmitFormButton.d.ts +0 -10
  207. package/lib/SubmitFormButton.js +0 -45
  208. package/lib/TextArea/TextAreaGroup.d.ts +0 -9
  209. package/lib/TextArea/TextAreaGroup.js +0 -40
  210. package/lib/Validation/ValidatedApiResult.d.ts +0 -6
  211. package/lib/Validation/ValidatedApiResult.js +0 -2
  212. package/lib/Validation/ValidationError.d.ts +0 -5
  213. package/lib/Validation/ValidationError.js +0 -2
  214. package/lib/Validation/ValidationFunction.d.ts +0 -4
  215. package/lib/Validation/ValidationFunction.js +0 -2
  216. package/lib/Validation/validators.d.ts +0 -18
  217. package/lib/Validation/validators.js +0 -90
  218. package/lib/index.d.ts +0 -75
  219. package/lib/index.js +0 -119
  220. package/lib/setupTests.d.ts +0 -1
  221. package/lib/setupTests.js +0 -3
  222. package/lib/utils/objectContainsNonSerializableProperty.d.ts +0 -1
  223. package/lib/utils/objectContainsNonSerializableProperty.js +0 -17
  224. package/lib/utils/objectToFormData.d.ts +0 -10
  225. package/lib/utils/objectToFormData.js +0 -79
  226. package/lib/utils/typeChecks.d.ts +0 -8
  227. package/lib/utils/typeChecks.js +0 -29
  228. package/src/AddressInput/AddressInput.test.tsx +0 -27
  229. package/src/AddressInput/AddressInput.tsx +0 -82
  230. package/src/AddressInput/UsStates.ts +0 -55
  231. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +0 -182
  232. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +0 -24
  233. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +0 -74
  234. package/src/ConfirmBaseForm/__snapshots__/ConfirmBaseForm.test.tsx.snap +0 -23
  235. package/src/ConfirmDeleteForm/ConfirmDeleteForm.test.tsx +0 -24
  236. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +0 -87
  237. package/src/ConfirmDeleteForm/__snapshots__/ConfirmDeleteForm.test.tsx.snap +0 -25
  238. package/src/DatePicker/DatePicker.test.tsx +0 -48
  239. package/src/DatePicker/DatePickerGroup.tsx +0 -115
  240. package/src/DatePicker/DatePickerHelper.ts +0 -4
  241. package/src/DatePicker/StringDateOnlyPickerGroup.tsx +0 -28
  242. package/src/DatePicker/StringDatePickerGroup.tsx +0 -20
  243. package/src/DatePicker/__snapshots__/DatePicker.test.tsx.snap +0 -152
  244. package/src/Field/CustomFieldInputProps.ts +0 -10
  245. package/src/Field/CustomFieldMetaProps.ts +0 -5
  246. package/src/Field/Field.tsx +0 -113
  247. package/src/Field/FieldErrorScrollTarget.tsx +0 -12
  248. package/src/Field/FieldNameContext.ts +0 -6
  249. package/src/Field/FieldSection.tsx +0 -18
  250. package/src/Field/InjectedFieldProps.ts +0 -8
  251. package/src/Field/StandAloneInput.tsx +0 -55
  252. package/src/Field/useStandardField.ts +0 -125
  253. package/src/FieldArray/FieldArray.tsx +0 -154
  254. package/src/File/FileGroup.test.tsx +0 -35
  255. package/src/File/FileGroup.tsx +0 -85
  256. package/src/File/FileList.tsx +0 -21
  257. package/src/File/__snapshots__/FileGroup.test.tsx.snap +0 -34
  258. package/src/File/humanFileSize.ts +0 -8
  259. package/src/Form/FocusError.tsx +0 -55
  260. package/src/Form/Form.test.tsx +0 -14
  261. package/src/Form/Form.tsx +0 -237
  262. package/src/Form/FormBasedPreventNavigation.tsx +0 -56
  263. package/src/Form/LegacyFormBasedPreventNavigation.tsx +0 -77
  264. package/src/Form/NewFormBasedPreventNavigation.tsx +0 -59
  265. package/src/Form/ServerErrorContext.ts +0 -18
  266. package/src/Form/__snapshots__/Form.test.tsx.snap +0 -10
  267. package/src/FormActions.tsx +0 -47
  268. package/src/FormDefaults.ts +0 -2
  269. package/src/Group.tsx +0 -62
  270. package/src/Input/IconInputGroup.tsx +0 -54
  271. package/src/Input/InputGroup.tsx +0 -72
  272. package/src/Input/MoneyInputGroup.tsx +0 -50
  273. package/src/Input/NumberInputGroup.tsx +0 -48
  274. package/src/Input/PhoneNumberInputGroup.tsx +0 -45
  275. package/src/Input/StringInputGroup.tsx +0 -53
  276. package/src/Input/__Tests__/IconInputGroup.test.tsx +0 -35
  277. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +0 -37
  278. package/src/Input/__Tests__/NumberInputGroup.test.tsx +0 -35
  279. package/src/Input/__Tests__/PhoneNumberInputGroup.test.tsx +0 -36
  280. package/src/Input/__Tests__/StringInputGroup.test.tsx +0 -27
  281. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +0 -32
  282. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +0 -34
  283. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +0 -32
  284. package/src/Input/__Tests__/__snapshots__/PhoneNumberInputGroup.test.tsx.snap +0 -33
  285. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +0 -31
  286. package/src/Normalization/NormalizationFunction.ts +0 -4
  287. package/src/Normalization/normalizers.ts +0 -44
  288. package/src/Select/BooleanSelectGroup.tsx +0 -28
  289. package/src/Select/NumberSelectGroup.tsx +0 -16
  290. package/src/Select/SelectGroup.tsx +0 -124
  291. package/src/Select/SelectGroupPropsHelper.ts +0 -4
  292. package/src/Select/StringSelectGroup.tsx +0 -16
  293. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +0 -35
  294. package/src/Select/__tests__/NumberSelectGroup.test.tsx +0 -87
  295. package/src/Select/__tests__/StringSelectGroup.test.tsx +0 -89
  296. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +0 -98
  297. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +0 -195
  298. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +0 -195
  299. package/src/StandardFormActions.tsx +0 -41
  300. package/src/SubmitFormButton.tsx +0 -54
  301. package/src/TextArea/TextAreaGroup.tsx +0 -64
  302. package/src/Validation/ValidatedApiResult.ts +0 -8
  303. package/src/Validation/ValidationError.ts +0 -6
  304. package/src/Validation/ValidationFunction.ts +0 -4
  305. package/src/Validation/validators.test.tsx +0 -81
  306. package/src/Validation/validators.ts +0 -97
  307. package/src/__Tests__/FormTestBase.tsx +0 -64
  308. package/src/__Tests__/RealisticForm.test.tsx +0 -82
  309. package/src/__Tests__/StandardFormActions.test.tsx +0 -17
  310. package/src/__Tests__/SubmitFormButton.test.tsx +0 -17
  311. package/src/__Tests__/__snapshots__/StandardFormActions.test.tsx.snap +0 -27
  312. package/src/__Tests__/__snapshots__/SubmitFormButton.test.tsx.snap +0 -20
  313. package/src/__Tests__/index.ts +0 -3
  314. package/src/_variables.scss +0 -11
  315. package/src/index.ts +0 -153
  316. package/src/react-app-env.d.ts +0 -1
  317. package/src/setupTests.ts +0 -1
  318. package/src/styles.scss +0 -0
  319. package/src/utils/objectContainsNonSerializableProperty.test.tsx +0 -49
  320. package/src/utils/objectContainsNonSerializableProperty.ts +0 -17
  321. package/src/utils/objectToFormData.test.tsx +0 -76
  322. package/src/utils/objectToFormData.ts +0 -105
  323. package/src/utils/typeChecks.ts +0 -18
@@ -0,0 +1,575 @@
1
+ import { ChangeEventHandler } from 'react';
2
+ import { ComponentProps } from 'react';
3
+ import { CSSProperties } from 'react';
4
+ import { DatePickerProps } from 'react-date-picker';
5
+ import { ElementType } from 'react';
6
+ import { FieldMetaProps } from 'formik';
7
+ import { FormikHelpers } from 'formik';
8
+ import { JSX as JSX_2 } from 'react/jsx-runtime';
9
+ import { LegacyRef } from 'react';
10
+ import { MouseEventHandler } from 'react';
11
+ import { default as React_2 } from 'react';
12
+ import { useAxiosRequestProps } from 'envoc-request';
13
+
14
+ declare interface AddressDto {
15
+ address1?: string | null;
16
+ address2?: string | null;
17
+ zipCode?: string | null;
18
+ city?: string | null;
19
+ state?: string | null;
20
+ }
21
+
22
+ /**
23
+ * Collection of `<Field/>`s for inputting an address. Includes:
24
+ * ```txt
25
+ * Address 1
26
+ * Address 2
27
+ * City
28
+ * State
29
+ * Zip
30
+ * ```
31
+ */
32
+ export declare function AddressInput({ fieldBuilder: { Field }, name, }: AddressInputProps): JSX_2.Element;
33
+
34
+ export declare interface AddressInputProps {
35
+ fieldBuilder: Pick<FormBuilderProp<AddressDto>, 'Field'>;
36
+ name: string;
37
+ }
38
+
39
+ /** One of the validators provided must be true. */
40
+ declare const any: <TValue>(validatorList: ValidationFunction<TValue>[]) => (value: TValue) => string | undefined;
41
+
42
+ export declare type ArrayFormBuilderProp<TValue extends Array<any> | undefined | null> = TValue extends Array<infer TForm> | undefined | null ? TForm extends object ? {
43
+ Field: <TProp extends keyof TForm, TRenderComponent extends ElementType>(props: FieldProps<TForm, TProp, TRenderComponent>) => JSX_2.Element;
44
+ FieldArray: <TProp extends keyof TForm>(props: FieldArrayProps<TForm, TProp>) => JSX_2.Element;
45
+ } : never : never;
46
+
47
+ /** A `<SelectGroup/>` dropdown with two options. Default options are 'Yes' and 'No' with values of `true` and `false`. */
48
+ export declare function BooleanSelectGroup(props: BooleanSelectGroupProps): JSX_2.Element;
49
+
50
+ export declare interface BooleanSelectGroupProps extends Omit<SelectGroupPropsHelper<boolean | undefined | null>, 'options'> {
51
+ options?: SelectOption<boolean>[];
52
+ }
53
+
54
+ /**
55
+ * Confimation dialog. Navigates to a different route to allow the user to either confirm or cancel an action.
56
+ * Commonly used for confirming delete and archive.
57
+ *
58
+ * See `<ConfirmDeleteForm/>` if the confirmation is specifically for deletion.
59
+ */
60
+ export declare function ConfirmBaseForm({ handleCancel, request, style, title, confirmButtonText, confirmButtonClass, children, ...props }: ConfirmBaseFormProps): JSX_2.Element;
61
+
62
+ export declare interface ConfirmBaseFormProps {
63
+ /** Function to run when cancel button is clicked. */
64
+ handleCancel?: MouseEventHandler<HTMLButtonElement>;
65
+ /** Axios request upon confirmation */
66
+ request: useAxiosRequestProps;
67
+ style?: React_2.CSSProperties;
68
+ /** `<h3/>` title text on top of the form. */
69
+ title?: string;
70
+ /** Custom confirm button text.
71
+ * @defaultValue `Confirm`
72
+ */
73
+ confirmButtonText?: string;
74
+ /** CSS class for the buttons. */
75
+ confirmButtonClass?: string;
76
+ /** Any components to be rendered in between the title and the buttons. */
77
+ children?: React_2.ReactNode;
78
+ }
79
+
80
+ /**
81
+ * Deletion confirmation. Navigates to a different route to allow the user to either confirm or cancel an action.
82
+ *
83
+ * Wraps `<ConfirmBaseForm/>`.
84
+ */
85
+ export declare function ConfirmDeleteForm({ successUrl, form, title, handleComplete, handleError, children, ...props }: ConfirmDeleteFormProps): JSX_2.Element;
86
+
87
+ export declare interface ConfirmDeleteFormProps extends Pick<ConfirmBaseFormProps, 'style'> {
88
+ /** Url to navigate to on success. */
89
+ successUrl?: string;
90
+ /** Form name (key) to apply the confirmation on. */
91
+ form: string;
92
+ /** Custom message to display.
93
+ * @defaultValue `Are you sure you want to delete this?`
94
+ */
95
+ title?: string;
96
+ /** Custom function when the axios request succeeds. */
97
+ handleComplete?: Function;
98
+ /** Custom function when the axios request fails. */
99
+ handleError?: Function;
100
+ /** Any components to be rendered in between the title and the buttons. */
101
+ children?: React_2.ReactNode;
102
+ }
103
+
104
+ export declare function convertToTimeZoneInsensitiveISOString(date: Date): string;
105
+
106
+ declare interface CustomFieldInputProps<TValue> {
107
+ id: string;
108
+ name: string;
109
+ value: TValue;
110
+ onChange: (newValue: TValue) => void;
111
+ onBlur: () => void;
112
+ }
113
+
114
+ declare interface CustomFieldMetaProps<TValue> extends FieldMetaProps<TValue> {
115
+ warning: string | undefined;
116
+ }
117
+
118
+ /**
119
+ * Field for inputting dates. Uses `<Group/>` and `<DatePicker/>`.
120
+ *
121
+ * Uses [react-date-picker](https://www.npmjs.com/package/react-date-picker)
122
+ */
123
+ export declare function DatePickerGroup<T>({ input, meta, label, helpText, className, required, disabled, convert, ...rest }: DatePickerGroupProps<T>): JSX_2.Element;
124
+
125
+ export declare interface DatePickerGroupProps<T> extends InjectedFieldProps<T | undefined | null>, Omit<DatePickerProps, keyof InjectedFieldProps<T> | 'name' | 'value' | 'className'>, Omit<GroupProps, keyof InjectedFieldProps<T> | 'children'> {
126
+ convert: (arg: Date) => T;
127
+ }
128
+
129
+ export declare interface DatePickerHelper<T> extends Omit<DatePickerGroupProps<T>, 'convert'> {
130
+ }
131
+
132
+ export declare const Field: typeof Field_2;
133
+
134
+ /**
135
+ * Renders whatever Component is passed - injecting the formik values needed to finish wiring up that individual field.
136
+ * Should no Component be used then the default will be provided by the default lookup based on typeof(TForm[TProp])
137
+ */
138
+ declare function Field_2<TForm extends object, TProp extends keyof TForm, TRenderComponent extends ElementType>({ name, Component, id, disabled, validate, normalize, ...rest }: FieldProps<TForm, TProp, TRenderComponent>, ref: LegacyRef<any>): JSX_2.Element;
139
+
140
+ /**
141
+ * An array of fields that allows the user to add multiple instances of the same field.
142
+ *
143
+ * Includes "Add Item" and "Remove Item" buttons to allow the user to specify the number of fields.
144
+ */
145
+ export declare function FieldArray<TForm extends object, TProp extends keyof TForm>({ name, label, validate, disabled, children, }: FieldArrayProps<TForm, TProp>): JSX_2.Element;
146
+
147
+ export declare type FieldArrayProps<TForm extends object, TProp extends keyof TForm> = TForm[TProp] extends Array<any> | undefined | null ? {
148
+ /** Name of the field, used on submission. If using codegen this must be the provided dto. */
149
+ name: TProp;
150
+ /** Label of the field. */
151
+ label?: string;
152
+ /** Whether the field should be disabled. */
153
+ disabled?: boolean;
154
+ /** Function to validate the value. */
155
+ validate?: ValidationFunction<TForm[TProp]> | ValidationFunction<TForm[TProp]>[];
156
+ children: (formBuilder: ArrayFormBuilderProp<TForm[TProp]>) => JSX_2.Element;
157
+ } : never;
158
+
159
+ /** Hidden `<div/>` that acts as an anchor to scroll to when a form error occurs. */
160
+ export declare function FieldErrorScrollTarget(): JSX_2.Element | null;
161
+
162
+ /** provides the full, qualified name of the current field name - including nested fields, path/dot delimited */
163
+ export declare const FieldNameContext: React_2.Context<string | undefined>;
164
+
165
+ /** A specific Field instance to be rendered by the given TRenderComponent or by whatever default is reasonable */
166
+ export declare type FieldProps<TForm extends object, TProp extends keyof TForm, TRenderComponent extends ElementType> = {
167
+ /** Name of the field. Used on submission. */
168
+ name: TProp;
169
+ /** Component to be rendered. Usually this is a type of input group e.g. `<StringInputGroup/>` */
170
+ Component: RenderComponent<TForm[TProp], TRenderComponent>;
171
+ /** Id of the field. */
172
+ id?: string;
173
+ /** Whether the field should be disabled. */
174
+ disabled?: boolean;
175
+ /** Client side validation functions */
176
+ validate?: ValidationFunction<TForm[TProp]> | ValidationFunction<TForm[TProp]>[];
177
+ /** Function to modify the field value without making the form dirty. (e.g. phone number) */
178
+ normalize?: NormalizationFunction<TForm[TProp]>;
179
+ } & Omit<RenderComponentProps<TForm[TProp], TRenderComponent>, keyof InjectedFieldProps<TForm[TProp]>>;
180
+
181
+ /** File upload input group. */
182
+ export declare const FileGroup: React_2.ComponentType<FileGroupProps>;
183
+
184
+ export declare interface FileGroupProps extends InjectedFieldProps<any | undefined | null>, Omit<GroupProps, keyof InjectedFieldProps<any> | 'children'>, Omit<React_2.HTMLProps<HTMLInputElement>, keyof InjectedFieldProps<any> | 'children' | 'className' | 'label'> {
185
+ /** Allow multiple files to be uploaded. */
186
+ multiple?: boolean | undefined;
187
+ }
188
+
189
+ /** Define a form. Uses [formik](https://formik.org/docs/overview). Usually contains many `<Field/>` components. */
190
+ export declare function Form<TForm extends object>({ children, className, style, ignoreLostChanges, onSubmit, onFormDataSubmit, initialValues, ...props }: FormProps<TForm>): JSX_2.Element;
191
+
192
+ export declare namespace Form {
193
+ var DisplayFormState: () => JSX_2.Element;
194
+ }
195
+
196
+ /** Standard cancel and submit buttons. */
197
+ export declare function FormActions({ allowPristineSubmit, handleCancel, disabled, }: FormActionsProps): JSX_2.Element;
198
+
199
+ export declare interface FormActionsProps {
200
+ /** Allow the form to be submitted without any changes. By default this is not allowed. */
201
+ allowPristineSubmit?: boolean;
202
+ /** The cancel button's `onClick`.
203
+ * @defaultValue `window.history.back()`
204
+ */
205
+ handleCancel?: () => void;
206
+ /** Whether both buttons should be disabled. */
207
+ disabled?: boolean;
208
+ }
209
+
210
+ export declare type FormBuilderProp<TForm extends object> = {
211
+ Field: <TProp extends keyof TForm, TRenderComponent extends ElementType>(props: FieldProps<TForm, TProp, TRenderComponent>) => JSX_2.Element;
212
+ FieldArray: <TProp extends keyof TForm>(props: FieldArrayProps<TForm, TProp>) => JSX_2.Element;
213
+ };
214
+
215
+ /** `envoc-form-` CSS class prefix */
216
+ export declare const FormDefaults: {
217
+ cssClassPrefix: string;
218
+ };
219
+
220
+ export declare type FormProps<TForm extends object> = RequireAtLeastOne<FullFormProps<TForm>, 'onSubmit' | 'onFormDataSubmit'>;
221
+
222
+ declare interface FullFormProps<TForm extends object> {
223
+ /** The `<Field/>` and `<FieldArray/>` components. */
224
+ children: (formBuilder: FormBuilderProp<TForm>) => JSX_2.Element;
225
+ /** Submission handler */
226
+ onSubmit: (formValues: TForm, formikBag: FormikHelpers<TForm>) => Promise<ValidatedApiResult>;
227
+ /** Submission handler for forms that use [FormData](https://developer.mozilla.org/en-US/docs/Web/API/FormData).*/
228
+ onFormDataSubmit: (formValues: FormData, formikBag: FormikHelpers<TForm>) => Promise<ValidatedApiResult>;
229
+ className?: string;
230
+ style?: CSSProperties;
231
+ /** Prevent the user from leaving the form if they have edited any field. This is presented as a JS `alert()`. */
232
+ ignoreLostChanges?: boolean;
233
+ /** The intitial values of the form. */
234
+ initialValues?: TForm;
235
+ }
236
+
237
+ /** Contains standard field bits like a label, helper text, error scroll target, validation message container, etc. */
238
+ export declare function Group({ className, children, label, helpText, meta, input, disabled, required, }: GroupProps): JSX_2.Element;
239
+
240
+ export declare interface GroupProps extends InjectedFieldProps<any> {
241
+ /** Extra class names to apply. */
242
+ className?: string;
243
+ children: React.ReactNode;
244
+ /** Simple text label before the input. */
245
+ label?: string;
246
+ /** Simple helper text after the input. */
247
+ helpText?: string | React.ReactNode;
248
+ /** Whether the field should be disabled. */
249
+ disabled?: boolean;
250
+ required?: boolean;
251
+ }
252
+
253
+ /** Input group with an icon. */
254
+ export declare const IconInputGroup: React_2.ComponentType<IconInputGroupProps>;
255
+
256
+ export declare interface IconInputGroupProps extends Omit<InputGroupProps<string | undefined | null>, 'onChange' | 'type' | 'value'> {
257
+ type?: 'color' | 'email' | 'search' | 'tel' | 'text' | 'url';
258
+ /** Icon to display on the input group. */
259
+ icon: React_2.ReactNode;
260
+ /** Text to display after the input group to give more information to the user. */
261
+ helpText?: string;
262
+ }
263
+
264
+ /** Defines what is injected by a Field wrapper of some TRenderComponent */
265
+ export declare interface InjectedFieldProps<TValue> {
266
+ input: CustomFieldInputProps<TValue>;
267
+ meta: CustomFieldMetaProps<TValue>;
268
+ }
269
+
270
+ /** Generic controlled `<input/>` wrapped by a `<Group/>` */
271
+ export declare const InputGroup: typeof InputGroup_2;
272
+
273
+ declare function InputGroup_2<TValue>({ input, meta, label, helpText, className, required, disabled, onChange, value, icon, ...rest }: InputGroupProps<TValue>, ref: LegacyRef<HTMLInputElement>): JSX_2.Element;
274
+
275
+ export declare interface InputGroupProps<TValue> extends InjectedFieldProps<TValue>, Omit<React_2.HTMLProps<HTMLInputElement>, keyof InjectedFieldProps<any> | 'children' | 'className' | 'label' | 'value'>, Omit<GroupProps, keyof InjectedFieldProps<any> | 'children'> {
276
+ onChange: ChangeEventHandler<HTMLInputElement>;
277
+ value: string | number | null | undefined;
278
+ icon?: React_2.ReactNode;
279
+ }
280
+
281
+ declare const integer: (val: string | number | undefined | null) => "Must be a whole number" | undefined;
282
+
283
+ export declare const isArray: (value: any) => boolean;
284
+
285
+ export declare const isBlob: (value: any) => any;
286
+
287
+ export declare const isBoolean: (value: any) => boolean;
288
+
289
+ export declare const isDate: (value: any) => boolean;
290
+
291
+ export declare const isFile: (value: any) => any;
292
+
293
+ export declare const isNull: (value: any) => boolean;
294
+
295
+ export declare const isObject: (value: any) => boolean;
296
+
297
+ export declare const isUndefined: (value: any) => boolean;
298
+
299
+ /** Asserts that the value is a certain number of characters. numbers are coerced to a string */
300
+ declare const length_2: (len: number) => (value: string | number | undefined | null) => string | undefined;
301
+
302
+ declare const maxCount: (count: number) => (value: {
303
+ isDeleted?: boolean;
304
+ }[] | undefined | null) => string | undefined;
305
+
306
+ declare const maxLength: (len: number) => (value: string | number | undefined | null) => string | undefined;
307
+
308
+ declare const maxValue: (max: number) => (value: number | undefined | null) => string | undefined;
309
+
310
+ declare const minCount: (count: number) => (value: {
311
+ isDeleted?: boolean;
312
+ }[] | undefined | null) => string | undefined;
313
+
314
+ declare const minValue: (min: number) => (value: number | undefined | null) => string | undefined;
315
+
316
+ /** Input group for inputting money. */
317
+ export declare const MoneyInputGroup: React_2.FunctionComponent<MoneyInputGroupProps>;
318
+
319
+ export declare interface MoneyInputGroupProps extends Omit<InputGroupProps<number | undefined | null>, 'onChange' | 'type' | 'value'> {
320
+ /** Custom parsing function when the value changes. */
321
+ parseFunc?: typeof parseInt | typeof parseFloat;
322
+ }
323
+
324
+ /** A `<SelectGroup/>` dropdown with values as numbers. Many options can be selected at a time. */
325
+ export declare function MultiNumberSelectGroup(props: MultiNumberSelectGroupProps): JSX_2.Element;
326
+
327
+ export declare interface MultiNumberSelectGroupProps extends SelectGroupPropsHelper<number[] | undefined | null> {
328
+ }
329
+
330
+ /** A `<SelectGroup/>` dropdown with values as strings. Multiple options can be selected at a time. */
331
+ export declare function MultiStringSelectGroup(props: MultiStringSelectGroupProps): JSX_2.Element;
332
+
333
+ export declare interface MultiStringSelectGroupProps extends SelectGroupPropsHelper<string[]> {
334
+ }
335
+
336
+ /** Normalization of values */
337
+ export declare interface NormalizationFunction<TValue> {
338
+ (value: TValue): TValue;
339
+ }
340
+
341
+ declare namespace normalizers {
342
+ export {
343
+ phoneNumber,
344
+ zipCode
345
+ }
346
+ }
347
+ export { normalizers }
348
+
349
+ /** Standard number input group. By default allows for float values. */
350
+ export declare const NumberInputGroup: React_2.ComponentType<NumberInputGroupProps>;
351
+
352
+ export declare interface NumberInputGroupProps extends Omit<InputGroupProps<number | undefined | null>, 'onChange' | 'type' | 'value'> {
353
+ /** Custom parsing function when the value changes. */
354
+ parseFunc?: typeof parseInt | typeof parseFloat;
355
+ }
356
+
357
+ export declare function objectContainsNonSerializableProperty(object: any): boolean;
358
+
359
+ export declare interface ObjectToFormDataCfgProps {
360
+ indices: boolean;
361
+ dotNotation: boolean;
362
+ allowEmptyArrays: boolean;
363
+ noFileListBrackets: boolean;
364
+ nullsAsUndefineds?: boolean;
365
+ booleansAsIntegers?: boolean;
366
+ }
367
+
368
+ declare interface OptionsApiResult<TValue> {
369
+ result?: Partial<SelectOption<TValue>>[];
370
+ }
371
+
372
+ declare interface OptionsUseServiceResult<TValue> {
373
+ loading?: boolean;
374
+ resp?: Partial<SelectOption<TValue>>[] | OptionsApiResult<TValue> | null;
375
+ error?: any;
376
+ }
377
+
378
+ /** Normalizer for converting a string into a valid phone number. */
379
+ declare const phoneNumber: (value: string | undefined | null) => string | undefined;
380
+
381
+ /**A standard phone number input. Will display to the user in `+XXX XXX-XXX-XXXX` format as the number is being inputted.
382
+ * The data will get sent in the same format as displayed. Uses `normalizers.phoneNumber`.
383
+ * @default autoComplete="tel-national"
384
+ */
385
+ export declare const PhoneNumberInputGroup: React_2.ComponentType<PhoneNumberInputGroupProps>;
386
+
387
+ export declare interface PhoneNumberInputGroupProps extends Omit<InputGroupProps<string | undefined | null>, 'onChange' | 'type' | 'value'> {
388
+ }
389
+
390
+ export declare type RenderComponent<TValue, TRenderComponent extends ElementType> = Partial<ComponentProps<TRenderComponent>> extends Partial<InjectedFieldProps<TValue | undefined | null>> ? TRenderComponent : never;
391
+
392
+ export declare type RenderComponentProps<TValue, TRenderComponent extends ElementType> = Partial<ComponentProps<TRenderComponent>> extends Partial<InjectedFieldProps<TValue | undefined | null>> ? ComponentProps<TRenderComponent> : never;
393
+
394
+ declare type RequireAtLeastOne<T, Keys extends keyof T = keyof T> = Pick<T, Exclude<keyof T, Keys>> & {
395
+ [K in Keys]-?: Required<Pick<T, K>> & Partial<Pick<T, Exclude<Keys, K>>>;
396
+ }[Keys];
397
+
398
+ declare const required: (value: any) => "Required" | undefined;
399
+
400
+ /** Generic select dropdown. Uses [react-select](https://react-select.com/home). */
401
+ export declare function SelectGroup<TValue>({ input, meta, className, required, disabled, options, multiple, placeholder, ...rest }: SelectGroupProps<TValue>): JSX_2.Element;
402
+
403
+ export declare interface SelectGroupProps<TValue> extends InjectedFieldProps<TValue | undefined | null>, Omit<GroupProps, 'input' | 'meta' | 'children'> {
404
+ /** Options for the dropdown. Includes the label and value. */
405
+ options: SelectOption<TValue>[] | OptionsUseServiceResult<TValue>;
406
+ /** Whether the user should be able to have multiple values selected. */
407
+ multiple: TValue extends Array<any> ? true : false;
408
+ /** Text diplayed when no value is selected. */
409
+ placeholder?: string;
410
+ }
411
+
412
+ export declare interface SelectGroupPropsHelper<T> extends Omit<SelectGroupProps<T>, 'multiple'> {
413
+ }
414
+
415
+ export declare interface SelectOption<TValue> {
416
+ /** Value for the select. This will be sent to the API. */
417
+ value: (TValue extends Array<infer P> ? P : TValue) | undefined;
418
+ /** Label for the select. This is displayed to the user. */
419
+ label: string;
420
+ }
421
+
422
+ export declare const serialize: (obj: any, cfg: ObjectToFormDataCfgProps, fd?: FormData, pre?: string) => FormData;
423
+
424
+ /** Context to store the API errors from the server for the form. */
425
+ export declare const ServerErrorContext: React_2.Context<ServerErrorContextProps>;
426
+
427
+ export declare interface ServerErrorContextProps {
428
+ errors: ServerErrors;
429
+ getError: (path: string) => string | undefined;
430
+ setError: (path: string, errorMessage: string | undefined) => void;
431
+ }
432
+
433
+ export declare interface ServerErrors {
434
+ [path: string]: string;
435
+ }
436
+
437
+ /** A `<SelectGroup/>` dropdown with values as numbers. Only one option can be selected at a time. */
438
+ export declare function SingleNumberSelectGroup(props: SingleNumberSelectGroupProps): JSX_2.Element;
439
+
440
+ export declare interface SingleNumberSelectGroupProps extends SelectGroupPropsHelper<number | undefined | null> {
441
+ }
442
+
443
+ /** A `<SelectGroup/>` dropdown with the value as a string. Only one option can be selected at a time. */
444
+ export declare function SingleStringSelectGroup(props: SingleStringSelectGroupProps): JSX_2.Element;
445
+
446
+ export declare interface SingleStringSelectGroupProps extends SelectGroupPropsHelper<string> {
447
+ }
448
+
449
+ /** The stand alone version of `<Field/>`. Can use a type of input component outside of a `<Form/>`. */
450
+ export declare function StandAloneInput<TValue, TComponent extends ElementType>(props: StandAloneInputProps<TValue, TComponent>): JSX_2.Element;
451
+
452
+ export declare type StandAloneInputProps<TValue, TRenderComponent extends ElementType> = {
453
+ /** Component to render inside of the field. */
454
+ Component: RenderComponent<TValue, TRenderComponent>;
455
+ /** Value of the field. */
456
+ value: TValue;
457
+ /** Function to change the value of the field. */
458
+ onChange: (arg: TValue) => void;
459
+ } & Omit<RenderComponentProps<TValue, TRenderComponent>, keyof InjectedFieldProps<TValue> | 'value' | 'onChange' | 'normalize' | 'validate'>;
460
+
461
+ /** Standard submit and cancel buttons. */
462
+ export declare function StandardFormActions({ allowPristineSubmit, handleCancel, }: StandardFormActionsProps): JSX_2.Element;
463
+
464
+ export declare interface StandardFormActionsProps {
465
+ /** Allow the form to be submitted without any changes. By default this is not allowed. */
466
+ allowPristineSubmit?: boolean;
467
+ /** The cancel button's `onClick`.
468
+ * @defaultValue `window.history.back()`
469
+ */
470
+ handleCancel?: MouseEventHandler<HTMLButtonElement>;
471
+ }
472
+
473
+ /**
474
+ * Date picker input that consumes and outputs as a date only string in ISO format `YYYY-MM-DD`.
475
+ *
476
+ * Default display to the user is in `MM/DD/YYYY` format.
477
+ */
478
+ export declare function StringDateOnlyPickerGroup(props: StringDateOnlyPickerGroupProps): JSX_2.Element;
479
+
480
+ export declare interface StringDateOnlyPickerGroupProps extends DatePickerHelper<string | undefined | null> {
481
+ }
482
+
483
+ /**
484
+ * Date picker input that consumes and outputs as a date only string in ISO format `YYYY-MM-DDTHH:mm:ss.sssZ` or `±YYYYYY-MM-DDTHH:mm:ss.sssZ`
485
+ *
486
+ * If you need `YYYY-MM-DD` format use `<StringDateOnlyPickerGroup/>`.
487
+ */
488
+ export declare function StringDatePickerGroup(props: StringDatePickerGroupProps): JSX_2.Element;
489
+
490
+ export declare interface StringDatePickerGroupProps extends DatePickerHelper<string | undefined | null> {
491
+ }
492
+
493
+ /** Standard string input group. */
494
+ export declare const StringInputGroup: React_2.ComponentType<StringInputGroupProps>;
495
+
496
+ export declare interface StringInputGroupProps extends Omit<InputGroupProps<string | undefined | null>, 'onChange' | 'type' | 'value'> {
497
+ type?: 'color' | 'email' | 'search' | 'tel' | 'text' | 'url' | 'password' | 'textarea';
498
+ }
499
+
500
+ /** Generic submit button for forms. */
501
+ export declare const SubmitFormButton: React_2.FunctionComponent<SubmitFormButtonProps>;
502
+
503
+ export declare interface SubmitFormButtonProps extends Omit<React_2.HTMLProps<HTMLButtonElement>, 'type'> {
504
+ /** Allow the form to be submitted without any changes. By default this is not allowed. */
505
+ allowPristineSubmit?: boolean;
506
+ /** Text to display on the button. Default text is 'Submit'. */
507
+ children?: React_2.ReactNode;
508
+ }
509
+
510
+ /** Generic controlled `<textarea/>` wrapped by a `<Group/>` */
511
+ export declare const TextAreaGroup: React_2.ComponentType<TextAreaGroupProps>;
512
+
513
+ export declare interface TextAreaGroupProps extends InjectedFieldProps<string | undefined | null>, Omit<React_2.HTMLProps<HTMLTextAreaElement>, keyof InjectedFieldProps<any> | 'children' | 'className' | 'label'>, Omit<GroupProps, keyof InjectedFieldProps<any> | 'children'> {
514
+ icon?: React_2.ReactNode;
515
+ }
516
+
517
+ /** Provides a consistent way to deal with all form fields (non array). */
518
+ export declare function useStandardField<TValue>({ id: providedId, name: providedName, disabled, validate, normalize, }: useStandardFieldProps<TValue>): [
519
+ CustomFieldInputProps<TValue>,
520
+ CustomFieldMetaProps<TValue>
521
+ ];
522
+
523
+ export declare interface useStandardFieldProps<TValue> {
524
+ /** Id of the field. */
525
+ id?: string;
526
+ /** Name of the field. */
527
+ name: string;
528
+ /** Whether the field should be disabled. */
529
+ disabled?: boolean;
530
+ /** Function to validate the field. */
531
+ validate?: ValidationFunction<TValue> | ValidationFunction<TValue>[];
532
+ /** Function to modify the field value without making the form dirty. (e.g. phone number) */
533
+ normalize?: NormalizationFunction<TValue>;
534
+ }
535
+
536
+ /** The root result from a typical envoc API call when forms are returned */
537
+ export declare interface ValidatedApiResult {
538
+ validationFailures?: ValidationError[];
539
+ hasErrors?: boolean;
540
+ }
541
+
542
+ /** Represents a server side validation failure - only 'standard' for envoc */
543
+ export declare interface ValidationError {
544
+ propertyName?: string;
545
+ errorMessage?: string;
546
+ }
547
+
548
+ /** Client side validation function */
549
+ export declare interface ValidationFunction<TValue> {
550
+ (value: TValue): string | undefined;
551
+ }
552
+
553
+ declare namespace validators {
554
+ export {
555
+ required,
556
+ length_2 as length,
557
+ integer,
558
+ maxLength,
559
+ maxCount,
560
+ minCount,
561
+ maxValue,
562
+ minValue,
563
+ zipCode_2 as zipCode,
564
+ any
565
+ }
566
+ }
567
+ export { validators }
568
+
569
+ /** Normalizer for converting a string into a valid zip code. Allows for XXXXX and XXXXX-XXXX format. */
570
+ declare const zipCode: (value: string | undefined | null) => string | undefined;
571
+
572
+ /** Validate for a ZIP Code. Accepts formats: ##### and #####-#### */
573
+ declare const zipCode_2: (value: string | undefined | null) => "Invalid ZIP Code" | undefined;
574
+
575
+ export { }