envoc-form 3.1.0 → 4.0.1-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 (422) hide show
  1. package/README.md +10 -1
  2. package/dist/css/envoc-form-styles.css +0 -113
  3. package/dist/css/envoc-form-styles.css.map +1 -1
  4. package/es/AddressInput/AddressInput.d.ts +15 -0
  5. package/es/AddressInput/AddressInput.js +21 -97
  6. package/es/AddressInput/UsStates.d.ts +3 -0
  7. package/es/AddressInput/UsStates.js +53 -152
  8. package/es/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
  9. package/es/ConfirmBaseForm/ConfirmBaseForm.js +35 -43
  10. package/es/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
  11. package/es/ConfirmDeleteForm/ConfirmDeleteForm.js +54 -40
  12. package/es/DatePickerInput/DatePickerInput.d.ts +14 -0
  13. package/es/DatePickerInput/DatePickerInput.js +63 -95
  14. package/es/Field/CustomFieldInputProps.d.ts +7 -0
  15. package/es/Field/CustomFieldInputProps.js +1 -0
  16. package/es/Field/CustomFieldMetaProps.d.ts +4 -0
  17. package/es/Field/CustomFieldMetaProps.js +1 -0
  18. package/es/Field/Field.d.ts +22 -0
  19. package/es/Field/Field.js +46 -0
  20. package/es/Field/FieldErrorScrollTarget.d.ts +2 -0
  21. package/es/Field/FieldErrorScrollTarget.js +11 -0
  22. package/es/Field/FieldNameContext.d.ts +3 -0
  23. package/es/Field/FieldNameContext.js +3 -0
  24. package/es/Field/FieldSection.d.ts +7 -0
  25. package/es/Field/FieldSection.js +20 -0
  26. package/es/Field/InjectedFieldProps.d.ts +7 -0
  27. package/es/Field/InjectedFieldProps.js +1 -0
  28. package/es/Field/useStandardField.d.ts +15 -0
  29. package/es/Field/useStandardField.js +93 -0
  30. package/es/FieldArray/FieldArray.d.ts +15 -0
  31. package/es/FieldArray/FieldArray.js +80 -0
  32. package/es/File/FileGroup.d.ts +8 -0
  33. package/es/File/FileGroup.js +50 -0
  34. package/es/File/FileList.d.ts +6 -0
  35. package/es/File/FileList.js +20 -0
  36. package/es/File/humanFileSize.d.ts +1 -0
  37. package/es/File/humanFileSize.js +6 -0
  38. package/es/Form/FocusError.d.ts +5 -0
  39. package/es/Form/FocusError.js +41 -53
  40. package/es/Form/Form.d.ts +22 -0
  41. package/es/Form/Form.js +111 -125
  42. package/es/Form/FormBasedPreventNavigation.d.ts +5 -0
  43. package/es/Form/FormBasedPreventNavigation.js +53 -30
  44. package/es/Form/ServerErrorContext.d.ts +10 -0
  45. package/es/Form/ServerErrorContext.js +8 -6
  46. package/es/FormActions.d.ts +7 -0
  47. package/es/FormActions.js +22 -0
  48. package/es/Group.d.ts +13 -0
  49. package/es/Group.js +22 -0
  50. package/es/Input/IconInputGroup.d.ts +9 -0
  51. package/es/Input/IconInputGroup.js +40 -0
  52. package/es/Input/InputGroup.d.ts +12 -0
  53. package/es/Input/InputGroup.js +33 -0
  54. package/es/Input/MoneyInputGroup.d.ts +7 -0
  55. package/es/Input/MoneyInputGroup.js +41 -0
  56. package/es/Input/NumberInputGroup.d.ts +7 -0
  57. package/es/Input/NumberInputGroup.js +41 -0
  58. package/es/Input/StringInputGroup.d.ts +7 -0
  59. package/es/Input/StringInputGroup.js +40 -0
  60. package/es/Normalization/NormalizationFunction.d.ts +4 -0
  61. package/es/Normalization/NormalizationFunction.js +1 -0
  62. package/es/Normalization/normalizers.d.ts +2 -0
  63. package/es/Normalization/normalizers.js +30 -0
  64. package/es/Select/BooleanSelectGroup.d.ts +7 -0
  65. package/es/Select/BooleanSelectGroup.js +27 -0
  66. package/es/Select/NumberSelectGroup.d.ts +8 -0
  67. package/es/Select/NumberSelectGroup.js +19 -0
  68. package/es/Select/SelectGroup.d.ts +22 -0
  69. package/es/Select/SelectGroup.js +59 -0
  70. package/es/Select/SelectGroupPropsHelper.d.ts +3 -0
  71. package/es/Select/SelectGroupPropsHelper.js +1 -0
  72. package/es/Select/StringSelectGroup.d.ts +8 -0
  73. package/es/Select/StringSelectGroup.js +19 -0
  74. package/es/StandardFormActions.d.ts +6 -0
  75. package/es/StandardFormActions.js +23 -24
  76. package/es/SubmitFormButton.d.ts +7 -0
  77. package/es/SubmitFormButton.js +37 -23
  78. package/es/Validation/ValidatedApiResult.d.ts +6 -0
  79. package/es/Validation/ValidatedApiResult.js +1 -0
  80. package/es/Validation/ValidationError.d.ts +5 -0
  81. package/es/Validation/ValidationError.js +1 -0
  82. package/es/Validation/ValidationFunction.d.ts +4 -0
  83. package/es/Validation/ValidationFunction.js +1 -0
  84. package/es/Validation/validators.d.ts +15 -0
  85. package/es/Validation/validators.js +73 -0
  86. package/es/__Tests__/FormTestBase.d.ts +27 -0
  87. package/es/__Tests__/FormTestBase.js +83 -12
  88. package/{src/__Tests__/index.js → es/__Tests__/index.d.ts} +0 -0
  89. package/es/__Tests__/index.js +2 -2
  90. package/es/index.d.ts +57 -0
  91. package/es/index.js +41 -20
  92. package/es/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  93. package/es/utils/objectContainsNonSerializableProperty.js +14 -16
  94. package/es/utils/objectToFormData.d.ts +10 -0
  95. package/es/utils/objectToFormData.js +77 -65
  96. package/es/utils/typeChecks.d.ts +8 -0
  97. package/es/utils/typeChecks.js +18 -25
  98. package/lib/AddressInput/AddressInput.d.ts +15 -0
  99. package/lib/AddressInput/AddressInput.js +27 -123
  100. package/lib/AddressInput/UsStates.d.ts +3 -0
  101. package/lib/AddressInput/UsStates.js +55 -159
  102. package/lib/ConfirmBaseForm/ConfirmBaseForm.d.ts +10 -0
  103. package/lib/ConfirmBaseForm/ConfirmBaseForm.js +41 -57
  104. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.d.ts +11 -0
  105. package/lib/ConfirmDeleteForm/ConfirmDeleteForm.js +60 -56
  106. package/lib/DatePickerInput/DatePickerInput.d.ts +14 -0
  107. package/lib/DatePickerInput/DatePickerInput.js +69 -113
  108. package/lib/Field/CustomFieldInputProps.d.ts +7 -0
  109. package/lib/Field/CustomFieldInputProps.js +2 -0
  110. package/lib/Field/CustomFieldMetaProps.d.ts +4 -0
  111. package/lib/Field/CustomFieldMetaProps.js +2 -0
  112. package/lib/Field/Field.d.ts +22 -0
  113. package/lib/Field/Field.js +51 -0
  114. package/lib/Field/FieldErrorScrollTarget.d.ts +2 -0
  115. package/lib/Field/FieldErrorScrollTarget.js +14 -0
  116. package/lib/Field/FieldNameContext.d.ts +3 -0
  117. package/lib/Field/FieldNameContext.js +9 -0
  118. package/lib/Field/FieldSection.d.ts +7 -0
  119. package/lib/Field/FieldSection.js +23 -0
  120. package/lib/Field/InjectedFieldProps.d.ts +7 -0
  121. package/lib/Field/InjectedFieldProps.js +2 -0
  122. package/lib/Field/useStandardField.d.ts +15 -0
  123. package/lib/Field/useStandardField.js +96 -0
  124. package/lib/FieldArray/FieldArray.d.ts +15 -0
  125. package/lib/FieldArray/FieldArray.js +86 -0
  126. package/lib/File/FileGroup.d.ts +8 -0
  127. package/lib/File/FileGroup.js +55 -0
  128. package/lib/File/FileList.d.ts +6 -0
  129. package/lib/File/FileList.js +23 -0
  130. package/lib/File/humanFileSize.d.ts +1 -0
  131. package/lib/File/humanFileSize.js +10 -0
  132. package/lib/Form/FocusError.d.ts +5 -0
  133. package/lib/Form/FocusError.js +47 -66
  134. package/lib/Form/Form.d.ts +22 -0
  135. package/lib/Form/Form.js +117 -153
  136. package/lib/Form/FormBasedPreventNavigation.d.ts +5 -0
  137. package/lib/Form/FormBasedPreventNavigation.js +56 -39
  138. package/lib/Form/ServerErrorContext.d.ts +10 -0
  139. package/lib/Form/ServerErrorContext.js +14 -18
  140. package/lib/FormActions.d.ts +7 -0
  141. package/lib/FormActions.js +28 -0
  142. package/lib/Group.d.ts +13 -0
  143. package/lib/Group.js +28 -0
  144. package/lib/Input/IconInputGroup.d.ts +9 -0
  145. package/lib/Input/IconInputGroup.js +45 -0
  146. package/lib/Input/InputGroup.d.ts +12 -0
  147. package/lib/Input/InputGroup.js +38 -0
  148. package/lib/Input/MoneyInputGroup.d.ts +7 -0
  149. package/lib/Input/MoneyInputGroup.js +46 -0
  150. package/lib/Input/NumberInputGroup.d.ts +7 -0
  151. package/lib/Input/NumberInputGroup.js +46 -0
  152. package/lib/Input/StringInputGroup.d.ts +7 -0
  153. package/lib/Input/StringInputGroup.js +45 -0
  154. package/lib/Normalization/NormalizationFunction.d.ts +4 -0
  155. package/lib/Normalization/NormalizationFunction.js +2 -0
  156. package/lib/Normalization/normalizers.d.ts +2 -0
  157. package/lib/Normalization/normalizers.js +35 -0
  158. package/lib/Select/BooleanSelectGroup.d.ts +7 -0
  159. package/lib/Select/BooleanSelectGroup.js +34 -0
  160. package/lib/Select/NumberSelectGroup.d.ts +8 -0
  161. package/lib/Select/NumberSelectGroup.js +27 -0
  162. package/lib/Select/SelectGroup.d.ts +22 -0
  163. package/lib/Select/SelectGroup.js +65 -0
  164. package/lib/Select/SelectGroupPropsHelper.d.ts +3 -0
  165. package/lib/Select/SelectGroupPropsHelper.js +2 -0
  166. package/lib/Select/StringSelectGroup.d.ts +8 -0
  167. package/lib/Select/StringSelectGroup.js +27 -0
  168. package/lib/StandardFormActions.d.ts +6 -0
  169. package/lib/StandardFormActions.js +29 -37
  170. package/lib/SubmitFormButton.d.ts +7 -0
  171. package/lib/SubmitFormButton.js +42 -38
  172. package/lib/Validation/ValidatedApiResult.d.ts +6 -0
  173. package/lib/Validation/ValidatedApiResult.js +2 -0
  174. package/lib/Validation/ValidationError.d.ts +5 -0
  175. package/lib/Validation/ValidationError.js +2 -0
  176. package/lib/Validation/ValidationFunction.d.ts +4 -0
  177. package/lib/Validation/ValidationFunction.js +2 -0
  178. package/lib/Validation/validators.d.ts +15 -0
  179. package/lib/Validation/validators.js +86 -0
  180. package/lib/__Tests__/FormTestBase.d.ts +27 -0
  181. package/lib/__Tests__/FormTestBase.js +86 -25
  182. package/lib/__Tests__/index.d.ts +2 -0
  183. package/lib/__Tests__/index.js +8 -15
  184. package/lib/index.d.ts +57 -0
  185. package/lib/index.js +101 -174
  186. package/lib/utils/objectContainsNonSerializableProperty.d.ts +1 -0
  187. package/lib/utils/objectContainsNonSerializableProperty.js +17 -24
  188. package/lib/utils/objectToFormData.d.ts +10 -0
  189. package/lib/utils/objectToFormData.js +79 -73
  190. package/lib/utils/typeChecks.d.ts +8 -0
  191. package/lib/utils/typeChecks.js +29 -58
  192. package/package.json +106 -100
  193. package/src/AddressInput/{AddesssInput.test.js → AddressInput.test.tsx} +7 -3
  194. package/src/AddressInput/AddressInput.tsx +72 -0
  195. package/src/AddressInput/{UsStates.js → UsStates.ts} +3 -1
  196. package/src/AddressInput/__snapshots__/AddressInput.test.tsx.snap +175 -0
  197. package/src/ConfirmBaseForm/ConfirmBaseForm.test.tsx +24 -0
  198. package/src/ConfirmBaseForm/ConfirmBaseForm.tsx +50 -0
  199. package/src/ConfirmBaseForm/__snapshots__/{ConfirmBaseForm.test.js.snap → ConfirmBaseForm.test.tsx.snap} +2 -2
  200. package/src/ConfirmDeleteForm/{ConfirmDeleteForm.test.js → ConfirmDeleteForm.test.tsx} +3 -3
  201. package/src/ConfirmDeleteForm/ConfirmDeleteForm.tsx +67 -0
  202. package/src/ConfirmDeleteForm/__snapshots__/{ConfirmDeleteForm.test.js.snap → ConfirmDeleteForm.test.tsx.snap} +2 -2
  203. package/src/DatePickerInput/DatePickerInput.test.tsx +48 -0
  204. package/src/DatePickerInput/DatePickerInput.tsx +85 -0
  205. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.tsx.snap +151 -0
  206. package/src/Field/CustomFieldInputProps.ts +10 -0
  207. package/src/Field/CustomFieldMetaProps.ts +5 -0
  208. package/src/Field/Field.tsx +90 -0
  209. package/src/Field/FieldErrorScrollTarget.tsx +11 -0
  210. package/src/Field/FieldNameContext.ts +6 -0
  211. package/src/Field/FieldSection.tsx +18 -0
  212. package/src/Field/InjectedFieldProps.ts +8 -0
  213. package/src/Field/useStandardField.ts +121 -0
  214. package/src/FieldArray/FieldArray.tsx +133 -0
  215. package/src/File/FileGroup.test.tsx +35 -0
  216. package/src/File/FileGroup.tsx +71 -0
  217. package/src/File/FileList.tsx +19 -0
  218. package/src/File/__snapshots__/FileGroup.test.tsx.snap +32 -0
  219. package/src/File/humanFileSize.ts +8 -0
  220. package/src/Form/{FocusError.js → FocusError.tsx} +10 -6
  221. package/src/Form/Form.test.tsx +14 -0
  222. package/src/Form/{Form.js → Form.tsx} +71 -31
  223. package/src/Form/FormBasedPreventNavigation.tsx +74 -0
  224. package/src/Form/ServerErrorContext.ts +17 -0
  225. package/src/Form/__snapshots__/{Form.test.js.snap → Form.test.tsx.snap} +1 -1
  226. package/src/FormActions.tsx +34 -0
  227. package/src/Group.tsx +43 -0
  228. package/src/Input/IconInputGroup.tsx +48 -0
  229. package/src/Input/InputGroup.tsx +57 -0
  230. package/src/Input/MoneyInputGroup.tsx +44 -0
  231. package/src/Input/NumberInputGroup.tsx +42 -0
  232. package/src/Input/StringInputGroup.tsx +40 -0
  233. package/src/Input/__Tests__/IconInputGroup.test.tsx +35 -0
  234. package/src/Input/__Tests__/MoneyInputGroup.test.tsx +37 -0
  235. package/src/Input/__Tests__/NumberInputGroup.test.tsx +35 -0
  236. package/src/Input/__Tests__/StringInputGroup.test.tsx +27 -0
  237. package/src/Input/__Tests__/__snapshots__/IconInputGroup.test.tsx.snap +29 -0
  238. package/src/Input/__Tests__/__snapshots__/MoneyInputGroup.test.tsx.snap +31 -0
  239. package/src/Input/__Tests__/__snapshots__/NumberInputGroup.test.tsx.snap +29 -0
  240. package/src/Input/__Tests__/__snapshots__/StringInputGroup.test.tsx.snap +28 -0
  241. package/src/Normalization/NormalizationFunction.ts +4 -0
  242. package/src/{normalizers.js → Normalization/normalizers.ts} +5 -5
  243. package/src/Select/BooleanSelectGroup.tsx +27 -0
  244. package/src/Select/NumberSelectGroup.tsx +14 -0
  245. package/src/Select/SelectGroup.tsx +106 -0
  246. package/src/Select/SelectGroupPropsHelper.ts +4 -0
  247. package/src/Select/StringSelectGroup.tsx +14 -0
  248. package/src/Select/__tests__/BooleanSelectGroup.test.tsx +35 -0
  249. package/src/Select/__tests__/NumberSelectGroup.test.tsx +87 -0
  250. package/src/Select/__tests__/StringSelectGroup.test.tsx +89 -0
  251. package/src/Select/__tests__/__snapshots__/BooleanSelectGroup.test.tsx.snap +99 -0
  252. package/src/Select/__tests__/__snapshots__/NumberSelectGroup.test.tsx.snap +197 -0
  253. package/src/Select/__tests__/__snapshots__/StringSelectGroup.test.tsx.snap +197 -0
  254. package/src/{StandardFormActions.js → StandardFormActions.tsx} +12 -6
  255. package/src/SubmitFormButton.tsx +44 -0
  256. package/src/Validation/ValidatedApiResult.ts +8 -0
  257. package/src/Validation/ValidationError.ts +6 -0
  258. package/src/Validation/ValidationFunction.ts +4 -0
  259. package/src/{validators/validators.test.js → Validation/validators.test.tsx} +6 -4
  260. package/src/Validation/validators.ts +92 -0
  261. package/src/__Tests__/FormTestBase.tsx +63 -0
  262. package/src/__Tests__/{StandardFormActions.test.js → StandardFormActions.test.tsx} +2 -8
  263. package/src/__Tests__/{SubmitFormButton.test.js → SubmitFormButton.test.tsx} +2 -8
  264. package/src/__Tests__/__snapshots__/{StandardFormActions.test.js.snap → StandardFormActions.test.tsx.snap} +2 -2
  265. package/src/__Tests__/__snapshots__/{SubmitFormButton.test.js.snap → SubmitFormButton.test.tsx.snap} +1 -1
  266. package/src/__Tests__/index.ts +3 -0
  267. package/src/index.ts +114 -0
  268. package/src/react-app-env.d.ts +1 -0
  269. package/src/styles.scss +0 -7
  270. package/src/utils/{objectContainsNonSerializableProperty.test.js → objectContainsNonSerializableProperty.test.tsx} +0 -0
  271. package/src/utils/{objectContainsNonSerializableProperty.js → objectContainsNonSerializableProperty.ts} +4 -2
  272. package/src/utils/{objectToFormData.test.js → objectToFormData.test.tsx} +0 -0
  273. package/src/utils/{objectToFormData.js → objectToFormData.ts} +29 -13
  274. package/src/utils/typeChecks.ts +18 -0
  275. package/es/AddressInput/index.js +0 -2
  276. package/es/BoolInput/BoolInput.js +0 -10
  277. package/es/BoolInput/InlineBoolInput.js +0 -10
  278. package/es/BoolInput/boolOptions.js +0 -8
  279. package/es/BoolInput/index.js +0 -3
  280. package/es/ConfirmBaseForm/index.js +0 -2
  281. package/es/ConfirmDeleteForm/index.js +0 -2
  282. package/es/DatePickerInput/index.js +0 -2
  283. package/es/ErrorScrollTarget.js +0 -10
  284. package/es/FileInput/DefaultFileList.js +0 -36
  285. package/es/FileInput/DropzoneFileInput.js +0 -58
  286. package/es/FileInput/FileInput.js +0 -62
  287. package/es/FileInput/index.js +0 -3
  288. package/es/Form/index.js +0 -3
  289. package/es/FormGroup.js +0 -22
  290. package/es/FormGroupWrapper.js +0 -22
  291. package/es/FormInput/FormInput.js +0 -206
  292. package/es/FormInput/index.js +0 -2
  293. package/es/FormInputArray/FormInputArray.js +0 -225
  294. package/es/FormInputArray/index.js +0 -2
  295. package/es/FormSection.js +0 -11
  296. package/es/IconInput.js +0 -33
  297. package/es/InlineFormInput/InlineFormInput.js +0 -8
  298. package/es/InlineFormInput/index.js +0 -2
  299. package/es/MoneyInput/InlineMoneyInput.js +0 -7
  300. package/es/MoneyInput/MoneyInput.js +0 -7
  301. package/es/MoneyInput/index.js +0 -3
  302. package/es/MoneyInput/moneyInputProps.js +0 -13
  303. package/es/NestedFormFieldContext.js +0 -4
  304. package/es/ReactSelectField/ReactSelectField.js +0 -128
  305. package/es/ReactSelectField/index.js +0 -2
  306. package/es/normalizers.js +0 -39
  307. package/es/selectors.js +0 -6
  308. package/es/useStandardFormInput.js +0 -119
  309. package/es/utils/index.js +0 -3
  310. package/es/validators/index.js +0 -2
  311. package/es/validators/validators.js +0 -94
  312. package/lib/AddressInput/index.js +0 -13
  313. package/lib/BoolInput/BoolInput.js +0 -23
  314. package/lib/BoolInput/InlineBoolInput.js +0 -23
  315. package/lib/BoolInput/boolOptions.js +0 -15
  316. package/lib/BoolInput/index.js +0 -23
  317. package/lib/ConfirmBaseForm/index.js +0 -13
  318. package/lib/ConfirmDeleteForm/index.js +0 -13
  319. package/lib/DatePickerInput/index.js +0 -13
  320. package/lib/ErrorScrollTarget.js +0 -20
  321. package/lib/FileInput/DefaultFileList.js +0 -47
  322. package/lib/FileInput/DropzoneFileInput.js +0 -75
  323. package/lib/FileInput/FileInput.js +0 -82
  324. package/lib/FileInput/index.js +0 -23
  325. package/lib/Form/index.js +0 -23
  326. package/lib/FormGroup.js +0 -33
  327. package/lib/FormGroupWrapper.js +0 -37
  328. package/lib/FormInput/FormInput.js +0 -229
  329. package/lib/FormInput/index.js +0 -13
  330. package/lib/FormInputArray/FormInputArray.js +0 -248
  331. package/lib/FormInputArray/index.js +0 -13
  332. package/lib/FormSection.js +0 -28
  333. package/lib/IconInput.js +0 -51
  334. package/lib/InlineFormInput/InlineFormInput.js +0 -20
  335. package/lib/InlineFormInput/index.js +0 -13
  336. package/lib/MoneyInput/InlineMoneyInput.js +0 -20
  337. package/lib/MoneyInput/MoneyInput.js +0 -20
  338. package/lib/MoneyInput/index.js +0 -23
  339. package/lib/MoneyInput/moneyInputProps.js +0 -26
  340. package/lib/NestedFormFieldContext.js +0 -16
  341. package/lib/ReactSelectField/ReactSelectField.js +0 -152
  342. package/lib/ReactSelectField/index.js +0 -31
  343. package/lib/normalizers.js +0 -51
  344. package/lib/selectors.js +0 -18
  345. package/lib/useStandardFormInput.js +0 -135
  346. package/lib/utils/index.js +0 -23
  347. package/lib/validators/index.js +0 -17
  348. package/lib/validators/validators.js +0 -130
  349. package/src/AddressInput/AddressInput.js +0 -73
  350. package/src/AddressInput/__snapshots__/AddesssInput.test.js.snap +0 -207
  351. package/src/AddressInput/index.js +0 -2
  352. package/src/BoolInput/BoolInput.js +0 -7
  353. package/src/BoolInput/BoolInput.test.js +0 -23
  354. package/src/BoolInput/InlineBoolInput.js +0 -7
  355. package/src/BoolInput/__snapshots__/BoolInput.test.js.snap +0 -89
  356. package/src/BoolInput/boolOptions.js +0 -6
  357. package/src/BoolInput/index.js +0 -4
  358. package/src/ConfirmBaseForm/ConfirmBaseForm.js +0 -37
  359. package/src/ConfirmBaseForm/ConfirmBaseForm.test.js +0 -14
  360. package/src/ConfirmBaseForm/index.js +0 -2
  361. package/src/ConfirmDeleteForm/ConfirmDeleteForm.js +0 -39
  362. package/src/ConfirmDeleteForm/index.js +0 -2
  363. package/src/DatePickerInput/DatePickerInput.js +0 -49
  364. package/src/DatePickerInput/DatePickerInput.test.js +0 -74
  365. package/src/DatePickerInput/__snapshots__/DatePickerInput.test.js.snap +0 -134
  366. package/src/DatePickerInput/date-picker-input.scss +0 -42
  367. package/src/DatePickerInput/index.js +0 -3
  368. package/src/ErrorScrollTarget.js +0 -6
  369. package/src/FileInput/DefaultFileList.js +0 -39
  370. package/src/FileInput/DropzoneFileInput.js +0 -56
  371. package/src/FileInput/DropzoneFileInput.test.js +0 -24
  372. package/src/FileInput/FileInput.js +0 -77
  373. package/src/FileInput/FileInput.test.js +0 -24
  374. package/src/FileInput/__snapshots__/DropzoneFileInput.test.js.snap +0 -57
  375. package/src/FileInput/__snapshots__/FileInput.test.js.snap +0 -58
  376. package/src/FileInput/file-input.scss +0 -58
  377. package/src/FileInput/index.js +0 -4
  378. package/src/Form/Form.test.js +0 -23
  379. package/src/Form/FormBasedPreventNavigation.js +0 -25
  380. package/src/Form/ServerErrorContext.js +0 -7
  381. package/src/Form/index.js +0 -3
  382. package/src/FormGroup.js +0 -30
  383. package/src/FormGroupWrapper.js +0 -28
  384. package/src/FormInput/FormInput.js +0 -145
  385. package/src/FormInput/FormInput.test.js +0 -66
  386. package/src/FormInput/__snapshots__/FormInput.test.js.snap +0 -323
  387. package/src/FormInput/form-input.scss +0 -9
  388. package/src/FormInput/index.js +0 -2
  389. package/src/FormInputArray/FormInputArray.js +0 -224
  390. package/src/FormInputArray/FormInputArray.test.js +0 -108
  391. package/src/FormInputArray/__snapshots__/FormInputArray.test.js.snap +0 -52
  392. package/src/FormInputArray/form-input-array.scss +0 -13
  393. package/src/FormInputArray/index.js +0 -2
  394. package/src/FormSection.js +0 -13
  395. package/src/IconInput.js +0 -31
  396. package/src/InlineFormInput/InlineFormInput.js +0 -6
  397. package/src/InlineFormInput/InlineFormInput.test.js +0 -23
  398. package/src/InlineFormInput/__snapshots__/InlineFormInput.test.js.snap +0 -26
  399. package/src/InlineFormInput/index.js +0 -3
  400. package/src/InlineFormInput/inline-form-input.scss +0 -3
  401. package/src/MoneyInput/InlineMoneyInput.js +0 -7
  402. package/src/MoneyInput/MoneyInput.js +0 -7
  403. package/src/MoneyInput/MoneyInputs.test.js +0 -43
  404. package/src/MoneyInput/__snapshots__/MoneyInputs.test.js.snap +0 -81
  405. package/src/MoneyInput/index.js +0 -4
  406. package/src/MoneyInput/money-input.scss +0 -3
  407. package/src/MoneyInput/moneyInputProps.js +0 -12
  408. package/src/NestedFormFieldContext.js +0 -6
  409. package/src/ReactSelectField/ReactSelectField.js +0 -122
  410. package/src/ReactSelectField/index.js +0 -6
  411. package/src/ReactSelectField/react-select-field.scss +0 -5
  412. package/src/SubmitFormButton.js +0 -28
  413. package/src/__Tests__/FormTestBase.js +0 -14
  414. package/src/__Tests__/IconInput.test.js +0 -23
  415. package/src/__Tests__/__snapshots__/IconInput.test.js.snap +0 -38
  416. package/src/index.js +0 -45
  417. package/src/selectors.js +0 -3
  418. package/src/useStandardFormInput.js +0 -118
  419. package/src/utils/index.js +0 -3
  420. package/src/utils/typeChecks.js +0 -18
  421. package/src/validators/index.js +0 -2
  422. package/src/validators/validators.js +0 -93
@@ -0,0 +1,27 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import StringInputGroup from '../StringInputGroup';
5
+
6
+ describe('StringInputGroup', () => {
7
+ it('renders without crashing', () => {
8
+ render(
9
+ <FormTestBase>
10
+ {({ Field }) => (
11
+ <Field name="name" Component={StringInputGroup} label="Name" />
12
+ )}
13
+ </FormTestBase>
14
+ );
15
+ });
16
+
17
+ it('has matching snapshot', () => {
18
+ const renderResult = render(
19
+ <FormTestBase>
20
+ {({ Field }) => (
21
+ <Field name="name" Component={StringInputGroup} label="Name" />
22
+ )}
23
+ </FormTestBase>
24
+ );
25
+ expect(renderResult.asFragment()).toMatchSnapshot();
26
+ });
27
+ });
@@ -0,0 +1,29 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`IconInputGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="icon-input-group input-group group"
10
+ >
11
+ <div
12
+ id="namewithicon-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="nameWithIcon"
17
+ />
18
+ <span>
19
+ Pretend this is an icon
20
+ </span>
21
+ <input
22
+ class="icon-input-group input-group"
23
+ name="nameWithIcon"
24
+ value=""
25
+ />
26
+ </div>
27
+ </form>
28
+ </DocumentFragment>
29
+ `;
@@ -0,0 +1,31 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`MoneyInputGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="something-here money-group input-group group"
10
+ >
11
+ <div
12
+ id="yearlysalaryusd-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="yearlySalaryUSD"
17
+ >
18
+ Salary
19
+ </label>
20
+ <input
21
+ class="something-here money-group input-group"
22
+ min="0"
23
+ name="yearlySalaryUSD"
24
+ step="0.01"
25
+ type="number"
26
+ value=""
27
+ />
28
+ </div>
29
+ </form>
30
+ </DocumentFragment>
31
+ `;
@@ -0,0 +1,29 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`NumberInputGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="number-group input-group group"
10
+ >
11
+ <div
12
+ id="numberofarms-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="numberOfArms"
17
+ >
18
+ Arm Count
19
+ </label>
20
+ <input
21
+ class="number-group input-group"
22
+ name="numberOfArms"
23
+ type="number"
24
+ value=""
25
+ />
26
+ </div>
27
+ </form>
28
+ </DocumentFragment>
29
+ `;
@@ -0,0 +1,28 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`StringInputGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="string-group input-group group"
10
+ >
11
+ <div
12
+ id="name-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="name"
17
+ >
18
+ Name
19
+ </label>
20
+ <input
21
+ class="string-group input-group"
22
+ name="name"
23
+ value=""
24
+ />
25
+ </div>
26
+ </form>
27
+ </DocumentFragment>
28
+ `;
@@ -0,0 +1,4 @@
1
+ /** Normalization of values */
2
+ export interface NormalizationFunction<TValue> {
3
+ (value: TValue): TValue;
4
+ }
@@ -1,6 +1,6 @@
1
- export const phoneNumber = (value) => {
1
+ export const phoneNumber = (value: string | undefined) => {
2
2
  if (!value) {
3
- return value;
3
+ return undefined;
4
4
  }
5
5
 
6
6
  const onlyNums = value.replace(/[^\d]/g, '');
@@ -17,7 +17,7 @@ export const phoneNumber = (value) => {
17
17
  )}`;
18
18
  }
19
19
  if (onlyNums.length <= 13) {
20
- const countryCodeLength = onlyNums - 10;
20
+ const countryCodeLength = onlyNums.length - 10;
21
21
  return `+${onlyNums.slice(0, countryCodeLength)} ${onlyNums.slice(
22
22
  countryCodeLength,
23
23
  3 + countryCodeLength
@@ -30,9 +30,9 @@ export const phoneNumber = (value) => {
30
30
  return onlyNums;
31
31
  };
32
32
 
33
- export const zipCode = (value) => {
33
+ export const zipCode = (value: string | undefined) => {
34
34
  if (!value) {
35
- return value;
35
+ return undefined;
36
36
  }
37
37
  const onlyNums = value.replace(/[^\d]/g, '');
38
38
  if (onlyNums.length > 5) {
@@ -0,0 +1,27 @@
1
+ import SelectGroup, { SelectOption } from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ const booleanOptions: SelectOption<boolean>[] = [
5
+ {
6
+ label: 'Yes',
7
+ value: true,
8
+ },
9
+ {
10
+ label: 'No',
11
+ value: false,
12
+ },
13
+ ];
14
+
15
+ export interface BooleanSelectGroupProps
16
+ extends Omit<SelectGroupPropsHelper<boolean>, 'options'> {
17
+ options?: SelectOption<boolean>[];
18
+ }
19
+ export function BooleanSelectGroup(props: BooleanSelectGroupProps) {
20
+ return (
21
+ <SelectGroup
22
+ multiple={false}
23
+ {...props}
24
+ options={props.options ?? booleanOptions}
25
+ />
26
+ );
27
+ }
@@ -0,0 +1,14 @@
1
+ import SelectGroup from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ export interface MultiNumberSelectGroupProps
5
+ extends SelectGroupPropsHelper<number[]> {}
6
+ export function MultiNumberSelectGroup(props: MultiNumberSelectGroupProps) {
7
+ return <SelectGroup multiple={true} {...props} />;
8
+ }
9
+
10
+ export interface SingleNumberSelectGroupProps
11
+ extends SelectGroupPropsHelper<number> {}
12
+ export function SingleNumberSelectGroup(props: SingleNumberSelectGroupProps) {
13
+ return <SelectGroup multiple={false} {...props} />;
14
+ }
@@ -0,0 +1,106 @@
1
+ import { default as ReactSelect } from 'react-select';
2
+ import classNames from 'classnames';
3
+ import { InjectedFieldProps } from '../Field/InjectedFieldProps';
4
+ import Group, { GroupProps } from '../Group';
5
+
6
+ export interface SelectOption<TValue> {
7
+ value: (TValue extends Array<infer P> ? P : TValue) | undefined;
8
+ label: string;
9
+ }
10
+
11
+ // types roughly like the useService (envoc-core) result
12
+ interface OptionsApiResult<TValue> {
13
+ // we must apply Partial here because all results from template code gen are optional
14
+ result?: Partial<SelectOption<TValue>>[];
15
+ }
16
+
17
+ interface OptionsUseServiceResult<TValue> {
18
+ loading?: boolean;
19
+ // we must apply Partial here because all results from template code gen are optional
20
+ resp?: Partial<SelectOption<TValue>>[] | OptionsApiResult<TValue> | null;
21
+ error?: any;
22
+ }
23
+
24
+ export interface SelectGroupProps<TValue>
25
+ extends InjectedFieldProps<TValue | undefined>,
26
+ Omit<GroupProps, 'input' | 'meta' | 'children'> {
27
+ // allows for "useService" or other handles to control the data - including cache
28
+ // TODO: do we still want a version of select that has a "url" or maybe a promise func or something?
29
+ // eventually we can just add the shape of, say, useQuery (TanStack) to the union type
30
+ options: SelectOption<TValue>[] | OptionsUseServiceResult<TValue>;
31
+ multiple: TValue extends Array<any> ? true : false;
32
+ placeholder?: string;
33
+ }
34
+
35
+ // TODO: we could also name this "ReactSelectGroup" or similar but the types are strongly defined now so kept the names consistent
36
+ export default function SelectGroup<TValue>({
37
+ input,
38
+ meta,
39
+ className,
40
+ options,
41
+ multiple,
42
+ placeholder,
43
+ ...rest
44
+ }: SelectGroupProps<TValue>) {
45
+ const effectiveOptions: Partial<SelectOption<TValue>>[] = !options
46
+ ? []
47
+ : Array.isArray(options)
48
+ ? options
49
+ : 'resp' in options &&
50
+ !!options.resp &&
51
+ 'result' in options.resp &&
52
+ !!options.resp.result
53
+ ? options.resp.result
54
+ : 'resp' in options && !!options.resp && Array.isArray(options.resp)
55
+ ? options.resp
56
+ : [];
57
+
58
+ const isLoading =
59
+ (options && 'loading' in options && options.loading) || false;
60
+
61
+ return (
62
+ <Group
63
+ {...rest}
64
+ input={input}
65
+ meta={meta}
66
+ className={classNames(
67
+ className,
68
+ { multiple, 'is-loading': isLoading },
69
+ 'select-group'
70
+ )}>
71
+ <ReactSelect<
72
+ Partial<SelectOption<TValue>>,
73
+ TValue extends Array<any> ? true : false
74
+ >
75
+ inputId={input.id}
76
+ isMulti={multiple}
77
+ options={effectiveOptions}
78
+ onBlur={input.onBlur}
79
+ value={getValue()}
80
+ onChange={(e: any) => {
81
+ if (multiple === true) {
82
+ input.onChange(e?.map((x: any) => x.value));
83
+ } else {
84
+ input.onChange(e?.value as any);
85
+ }
86
+ }}
87
+ getOptionLabel={(option) => option?.label ?? ''}
88
+ className={classNames(className, 'select-group')}
89
+ classNamePrefix="react-select"
90
+ menuPortalTarget={document.body}
91
+ menuPlacement="auto"
92
+ placeholder={placeholder}
93
+ />
94
+ </Group>
95
+ );
96
+
97
+ function getValue() {
98
+ if (multiple) {
99
+ return effectiveOptions.filter(
100
+ (o) =>
101
+ Array.isArray(input.value) && !!input.value.find((x) => o.value === x)
102
+ );
103
+ }
104
+ return effectiveOptions.find((o) => o.value === input.value);
105
+ }
106
+ }
@@ -0,0 +1,4 @@
1
+ import { SelectGroupProps } from './SelectGroup';
2
+
3
+ export interface SelectGroupPropsHelper<T>
4
+ extends Omit<SelectGroupProps<T>, 'multiple'> {}
@@ -0,0 +1,14 @@
1
+ import SelectGroup from './SelectGroup';
2
+ import { SelectGroupPropsHelper } from './SelectGroupPropsHelper';
3
+
4
+ export interface MultiStringSelectGroupProps
5
+ extends SelectGroupPropsHelper<string[]> {}
6
+ export function MultiStringSelectGroup(props: MultiStringSelectGroupProps) {
7
+ return <SelectGroup multiple={true} {...props} />;
8
+ }
9
+
10
+ export interface SingleStringSelectGroupProps
11
+ extends SelectGroupPropsHelper<string> {}
12
+ export function SingleStringSelectGroup(props: SingleStringSelectGroupProps) {
13
+ return <SelectGroup multiple={false} {...props} />;
14
+ }
@@ -0,0 +1,35 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import { BooleanSelectGroup } from '../BooleanSelectGroup';
5
+
6
+ describe('BooleanSelectGroup', () => {
7
+ it('renders without crashing', () => {
8
+ render(
9
+ <FormTestBase>
10
+ {({ Field }) => (
11
+ <Field
12
+ name="allowLogin"
13
+ Component={BooleanSelectGroup}
14
+ label="Allow Login"
15
+ />
16
+ )}
17
+ </FormTestBase>
18
+ );
19
+ });
20
+
21
+ it('has matching snapshot', () => {
22
+ const renderResult = render(
23
+ <FormTestBase>
24
+ {({ Field }) => (
25
+ <Field
26
+ name="allowLogin"
27
+ Component={BooleanSelectGroup}
28
+ label="Allow Login"
29
+ />
30
+ )}
31
+ </FormTestBase>
32
+ );
33
+ expect(renderResult.asFragment()).toMatchSnapshot();
34
+ });
35
+ });
@@ -0,0 +1,87 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import {
5
+ MultiNumberSelectGroup,
6
+ SingleNumberSelectGroup,
7
+ } from '../NumberSelectGroup';
8
+
9
+ describe('SingleNumberSelectGroup', () => {
10
+ it('renders without crashing', () => {
11
+ render(
12
+ <FormTestBase>
13
+ {({ Field }) => (
14
+ <Field
15
+ name="favoriteNumber"
16
+ Component={SingleNumberSelectGroup}
17
+ label="Favorite Number"
18
+ options={[
19
+ { label: 'I like one', value: 1 },
20
+ { label: 'Occasionally two', value: 2 },
21
+ { label: 'Forever three', value: 3 },
22
+ ]}
23
+ />
24
+ )}
25
+ </FormTestBase>
26
+ );
27
+ });
28
+
29
+ it('has matching snapshot', () => {
30
+ const renderResult = render(
31
+ <FormTestBase>
32
+ {({ Field }) => (
33
+ <Field
34
+ name="favoriteNumber"
35
+ Component={SingleNumberSelectGroup}
36
+ label="Favorite Number"
37
+ options={[
38
+ { label: 'I like one', value: 1 },
39
+ { label: 'Occasionally two', value: 2 },
40
+ { label: 'Forever three', value: 3 },
41
+ ]}
42
+ />
43
+ )}
44
+ </FormTestBase>
45
+ );
46
+ expect(renderResult.asFragment()).toMatchSnapshot();
47
+ });
48
+ });
49
+
50
+ describe('MultiNumberSelectGroup', () => {
51
+ it('renders without crashing', () => {
52
+ render(
53
+ <FormTestBase>
54
+ {({ Field }) => (
55
+ <Field
56
+ name="userRoles"
57
+ Component={MultiNumberSelectGroup}
58
+ label="Favorite Number"
59
+ options={[
60
+ { label: 'Tyrannosaurus Rex', value: 1 },
61
+ { label: 'Stegosaurus', value: 2 },
62
+ ]}
63
+ />
64
+ )}
65
+ </FormTestBase>
66
+ );
67
+ });
68
+
69
+ it('has matching snapshot', () => {
70
+ const renderResult = render(
71
+ <FormTestBase>
72
+ {({ Field }) => (
73
+ <Field
74
+ name="userRoles"
75
+ Component={MultiNumberSelectGroup}
76
+ label="Favorite Number"
77
+ options={[
78
+ { label: 'Tyrannosaurus Rex', value: 1 },
79
+ { label: 'Stegosaurus', value: 2 },
80
+ ]}
81
+ />
82
+ )}
83
+ </FormTestBase>
84
+ );
85
+ expect(renderResult.asFragment()).toMatchSnapshot();
86
+ });
87
+ });
@@ -0,0 +1,89 @@
1
+ import React from 'react';
2
+ import { render } from '@testing-library/react';
3
+ import FormTestBase from '../../__Tests__/FormTestBase';
4
+ import {
5
+ MultiStringSelectGroup,
6
+ SingleStringSelectGroup,
7
+ } from '../StringSelectGroup';
8
+
9
+ describe('SingleStringSelectGroup', () => {
10
+ it('renders without crashing', () => {
11
+ render(
12
+ <FormTestBase>
13
+ {({ Field }) => (
14
+ <Field
15
+ name="favoriteColor"
16
+ Component={SingleStringSelectGroup}
17
+ label="Favorite Color"
18
+ options={[
19
+ { label: 'Blue', value: 'Blue' },
20
+ { label: 'Green', value: 'Green' },
21
+ { label: 'Red', value: 'Red' },
22
+ ]}
23
+ />
24
+ )}
25
+ </FormTestBase>
26
+ );
27
+ });
28
+
29
+ it('has matching snapshot', () => {
30
+ const renderResult = render(
31
+ <FormTestBase>
32
+ {({ Field }) => (
33
+ <Field
34
+ name="favoriteColor"
35
+ Component={SingleStringSelectGroup}
36
+ label="Favorite Color"
37
+ options={[
38
+ { label: 'Blue', value: 'Blue' },
39
+ { label: 'Green', value: 'Green' },
40
+ { label: 'Red', value: 'Red' },
41
+ ]}
42
+ />
43
+ )}
44
+ </FormTestBase>
45
+ );
46
+ expect(renderResult.asFragment()).toMatchSnapshot();
47
+ });
48
+ });
49
+
50
+ describe('MultiStringSelectGroup', () => {
51
+ it('renders without crashing', () => {
52
+ render(
53
+ <FormTestBase>
54
+ {({ Field }) => (
55
+ <Field
56
+ name="favoriteColors"
57
+ Component={MultiStringSelectGroup}
58
+ label="Favorite Color"
59
+ options={[
60
+ { label: 'Blue', value: 'Blue' },
61
+ { label: 'Green', value: 'Green' },
62
+ { label: 'Red', value: 'Red' },
63
+ ]}
64
+ />
65
+ )}
66
+ </FormTestBase>
67
+ );
68
+ });
69
+
70
+ it('has matching snapshot', () => {
71
+ const renderResult = render(
72
+ <FormTestBase>
73
+ {({ Field }) => (
74
+ <Field
75
+ name="favoriteColors"
76
+ Component={MultiStringSelectGroup}
77
+ label="Favorite Color"
78
+ options={[
79
+ { label: 'Blue', value: 'Blue' },
80
+ { label: 'Green', value: 'Green' },
81
+ { label: 'Red', value: 'Red' },
82
+ ]}
83
+ />
84
+ )}
85
+ </FormTestBase>
86
+ );
87
+ expect(renderResult.asFragment()).toMatchSnapshot();
88
+ });
89
+ });
@@ -0,0 +1,99 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`BooleanSelectGroup has matching snapshot 1`] = `
4
+ <DocumentFragment>
5
+ <form
6
+ action="#"
7
+ >
8
+ <div
9
+ class="select-group group"
10
+ >
11
+ <div
12
+ id="allowlogin-error-scroll-target"
13
+ style="display: none;"
14
+ />
15
+ <label
16
+ for="allowLogin"
17
+ >
18
+ Allow Login
19
+ </label>
20
+ <div
21
+ class="select-group css-b62m3t-container"
22
+ >
23
+ <span
24
+ class="css-1f43avz-a11yText-A11yText"
25
+ id="react-select-3-live-region"
26
+ />
27
+ <span
28
+ aria-atomic="false"
29
+ aria-live="polite"
30
+ aria-relevant="additions text"
31
+ class="css-1f43avz-a11yText-A11yText"
32
+ />
33
+ <div
34
+ class="react-select__control css-1s2u09g-control"
35
+ >
36
+ <div
37
+ class="react-select__value-container css-dlobye-Component"
38
+ >
39
+ <div
40
+ class="react-select__placeholder css-14el2xx-placeholder"
41
+ id="react-select-3-placeholder"
42
+ >
43
+ Select...
44
+ </div>
45
+ <div
46
+ class="react-select__input-container css-1u4kn00-Component"
47
+ data-value=""
48
+ >
49
+ <input
50
+ aria-autocomplete="list"
51
+ aria-controls="react-select-3-listbox"
52
+ aria-describedby="react-select-3-placeholder"
53
+ aria-expanded="false"
54
+ aria-haspopup="true"
55
+ aria-owns="react-select-3-listbox"
56
+ autocapitalize="none"
57
+ autocomplete="off"
58
+ autocorrect="off"
59
+ class="react-select__input"
60
+ id="allowLogin"
61
+ role="combobox"
62
+ spellcheck="false"
63
+ style="opacity: 1; width: 100%; grid-area: 1 / 2; min-width: 2px; border: 0px; margin: 0px; outline: 0; padding: 0px;"
64
+ tabindex="0"
65
+ type="text"
66
+ value=""
67
+ />
68
+ </div>
69
+ </div>
70
+ <div
71
+ class="react-select__indicators css-ny0e4k-Component"
72
+ >
73
+ <span
74
+ class="react-select__indicator-separator css-1okebmr-indicatorSeparator"
75
+ />
76
+ <div
77
+ aria-hidden="true"
78
+ class="react-select__indicator react-select__dropdown-indicator css-tlfecz-indicatorContainer"
79
+ >
80
+ <svg
81
+ aria-hidden="true"
82
+ class="css-tj5bde-Svg"
83
+ focusable="false"
84
+ height="20"
85
+ viewBox="0 0 20 20"
86
+ width="20"
87
+ >
88
+ <path
89
+ d="M4.516 7.548c0.436-0.446 1.043-0.481 1.576 0l3.908 3.747 3.908-3.747c0.533-0.481 1.141-0.446 1.574 0 0.436 0.445 0.408 1.197 0 1.615-0.406 0.418-4.695 4.502-4.695 4.502-0.217 0.223-0.502 0.335-0.787 0.335s-0.57-0.112-0.789-0.335c0 0-4.287-4.084-4.695-4.502s-0.436-1.17 0-1.615z"
90
+ />
91
+ </svg>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+ </div>
97
+ </form>
98
+ </DocumentFragment>
99
+ `;