@digigov/form 2.0.0-07ee8440 → 2.0.0-0b806366

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 (785) hide show
  1. package/Field/ErrorGroup.d.ts +4 -4
  2. package/Field/ErrorGroup.js +53 -0
  3. package/Field/FieldBase.d.ts +1 -1
  4. package/Field/FieldBase.js +77 -0
  5. package/Field/FieldBaseContainer.d.ts +2 -2
  6. package/Field/FieldBaseContainer.js +43 -0
  7. package/Field/FieldConditional.d.ts +1 -1
  8. package/Field/FieldConditional.js +45 -0
  9. package/Field/index.d.ts +1 -1
  10. package/Field/index.js +70 -112
  11. package/Field/types.d.ts +23 -12
  12. package/Field/types.js +0 -0
  13. package/Field/utils/evaluateFieldWithConditions.d.ts +2 -2
  14. package/Field/utils/evaluateFieldWithConditions.js +19 -0
  15. package/Field/utils/resolveField.d.ts +3 -0
  16. package/Field/utils/resolveField.js +32 -0
  17. package/Field/utils/useField.d.ts +1 -1
  18. package/Field/utils/useField.js +47 -0
  19. package/FieldArray/BaseFieldArray.d.ts +5 -0
  20. package/FieldArray/BaseFieldArray.js +46 -0
  21. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.d.ts +9 -0
  22. package/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.js +13 -0
  23. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.d.ts +26 -0
  24. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.js +117 -0
  25. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.d.ts +5 -0
  26. package/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.js +6 -0
  27. package/FieldArray/FormDialog/ArrayDisplay/index.d.ts +15 -0
  28. package/FieldArray/FormDialog/ArrayDisplay/index.js +32 -0
  29. package/FieldArray/FormDialog/ArrayEditModal.d.ts +24 -0
  30. package/FieldArray/FormDialog/ArrayEditModal.js +138 -0
  31. package/FieldArray/FormDialog/index.d.ts +19 -0
  32. package/FieldArray/FormDialog/index.js +191 -271
  33. package/FieldArray/index.d.ts +5 -2
  34. package/FieldArray/index.js +62 -106
  35. package/FieldObject/index.d.ts +7 -4
  36. package/FieldObject/index.js +51 -72
  37. package/Fieldset/FieldsetWithContext.js +27 -0
  38. package/Fieldset/index.d.ts +1 -1
  39. package/Fieldset/index.js +18 -30
  40. package/Fieldset/types.d.ts +2 -2
  41. package/Fieldset/types.js +0 -0
  42. package/FormBuilder/index.d.ts +2 -2
  43. package/FormBuilder/index.js +233 -231
  44. package/FormContext.d.ts +3 -2
  45. package/FormContext.js +7 -0
  46. package/MultiplicityField/add-objects.d.ts +2 -2
  47. package/MultiplicityField/add-objects.js +107 -0
  48. package/MultiplicityField/index.d.ts +2 -2
  49. package/MultiplicityField/index.js +81 -116
  50. package/MultiplicityField/types.d.ts +3 -2
  51. package/MultiplicityField/types.js +0 -0
  52. package/Questions/Questions.d.ts +1 -1
  53. package/Questions/Questions.js +48 -0
  54. package/Questions/QuestionsContext.d.ts +1 -1
  55. package/Questions/QuestionsContext.js +10 -0
  56. package/Questions/Step/ReviewStep.js +32 -0
  57. package/Questions/Step/Step.d.ts +1 -1
  58. package/Questions/Step/Step.js +39 -0
  59. package/Questions/Step/StepArrayReview.d.ts +1 -1
  60. package/Questions/Step/StepArrayReview.js +35 -0
  61. package/Questions/Step/StepContext.d.ts +1 -1
  62. package/Questions/Step/StepContext.js +28 -0
  63. package/Questions/Step/StepDescription.d.ts +1 -1
  64. package/Questions/Step/StepDescription.js +18 -0
  65. package/Questions/Step/StepForm.d.ts +2 -2
  66. package/Questions/Step/StepForm.js +29 -0
  67. package/Questions/Step/StepQuote.d.ts +1 -1
  68. package/Questions/Step/StepQuote.js +5 -0
  69. package/Questions/Step/StepTitle.d.ts +1 -1
  70. package/Questions/Step/StepTitle.js +25 -0
  71. package/Questions/Step/getAddMoreFields.d.ts +2 -2
  72. package/Questions/Step/getAddMoreFields.js +24 -0
  73. package/Questions/Step/index.d.ts +11 -11
  74. package/Questions/Step/index.js +13 -16
  75. package/Questions/Step/types.d.ts +1 -1
  76. package/Questions/Step/types.js +0 -0
  77. package/Questions/getNextStep.d.ts +1 -1
  78. package/Questions/getNextStep.js +13 -0
  79. package/Questions/index.d.ts +2 -2
  80. package/Questions/index.js +4 -7
  81. package/Questions/types.d.ts +1 -1
  82. package/Questions/types.js +0 -0
  83. package/hooks/useFieldFocusManager.d.ts +25 -0
  84. package/hooks/useFieldFocusManager.js +83 -0
  85. package/hooks/utils.d.ts +18 -0
  86. package/hooks/utils.js +60 -0
  87. package/index.d.ts +5 -5
  88. package/index.js +8 -13
  89. package/inputs/AutoCompleteInput/index.d.ts +3 -3
  90. package/inputs/AutoCompleteInput/index.js +38 -62
  91. package/inputs/Checkboxes/index.d.ts +5 -3
  92. package/inputs/Checkboxes/index.js +50 -77
  93. package/inputs/DateInput/index.d.ts +2 -5
  94. package/inputs/DateInput/index.js +125 -114
  95. package/inputs/DateTimeInput/index.d.ts +2 -5
  96. package/inputs/DateTimeInput/index.js +179 -165
  97. package/inputs/FileInput/index.d.ts +18 -2
  98. package/inputs/FileInput/index.js +59 -45
  99. package/inputs/ImageInput/index.d.ts +10 -2
  100. package/inputs/ImageInput/index.js +85 -53
  101. package/inputs/Input/index.d.ts +5 -2
  102. package/inputs/Input/index.js +60 -68
  103. package/inputs/Label/index.d.ts +1 -1
  104. package/inputs/Label/index.js +13 -16
  105. package/inputs/OtpInput/index.d.ts +1 -5
  106. package/inputs/OtpInput/index.js +117 -140
  107. package/inputs/Radio/index.d.ts +6 -4
  108. package/inputs/Radio/index.js +71 -102
  109. package/inputs/Select/index.d.ts +6 -3
  110. package/inputs/Select/index.js +24 -31
  111. package/inputs/index.d.ts +9 -9
  112. package/inputs/index.js +10 -21
  113. package/{Field/utils/index.d.ts → inputs/registry.d.ts} +2 -1
  114. package/inputs/registry.js +80 -0
  115. package/internal.d.ts +5 -5
  116. package/internal.js +6 -0
  117. package/lazy.d.ts +97 -0
  118. package/lazy.js +163 -0
  119. package/package.json +12 -12
  120. package/registry.d.ts +82 -0
  121. package/registry.js +170 -0
  122. package/src/Field/ErrorGroup.tsx +4 -4
  123. package/src/Field/FieldBase.tsx +9 -4
  124. package/src/Field/FieldBaseContainer.tsx +69 -48
  125. package/src/Field/FieldConditional.tsx +5 -1
  126. package/src/Field/doc.mdx +202 -1
  127. package/src/Field/index.tsx +27 -37
  128. package/src/Field/types.tsx +25 -14
  129. package/src/Field/utils/evaluateFieldWithConditions.ts +5 -2
  130. package/src/Field/utils/resolveField.ts +58 -0
  131. package/src/Field/utils/useField.ts +12 -2
  132. package/src/FieldArray/BaseFieldArray.tsx +97 -0
  133. package/src/FieldArray/FieldArray.stories.js +1 -0
  134. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayContainerDisplay.tsx +45 -0
  135. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayDisplay.stories.js +14 -0
  136. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemDisplay.tsx +337 -0
  137. package/src/FieldArray/FormDialog/ArrayDisplay/ArrayItemHeader.tsx +15 -0
  138. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Cards.tsx +88 -0
  139. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Default.tsx +93 -0
  140. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnly.tsx +79 -0
  141. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/ReadOnlyCards.tsx +75 -0
  142. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/Sortable.tsx +93 -0
  143. package/src/FieldArray/FormDialog/ArrayDisplay/__stories__/SortableCards.tsx +88 -0
  144. package/src/FieldArray/FormDialog/ArrayDisplay/index.test.tsx +44 -0
  145. package/src/FieldArray/FormDialog/ArrayDisplay/index.tsx +67 -0
  146. package/src/FieldArray/FormDialog/ArrayEditModal.tsx +241 -0
  147. package/src/FieldArray/FormDialog/index.tsx +302 -0
  148. package/src/FieldArray/__stories__/CardsWithError.tsx +124 -0
  149. package/src/FieldArray/__stories__/Default.tsx +1 -1
  150. package/src/FieldArray/__stories__/WithExactLength.tsx +1 -1
  151. package/src/FieldArray/__stories__/WithModal.tsx +4 -3
  152. package/src/FieldArray/__tests__/fieldset-multiplicity.spec.tsx +271 -0
  153. package/src/FieldArray/__tests__/multiplicity-attachment.spec.tsx +280 -0
  154. package/src/FieldArray/__tests__/multiplicity-optional.spec.tsx +232 -0
  155. package/src/FieldArray/__tests__/multiplicity-required.spec.tsx +170 -0
  156. package/src/FieldArray/__tests__/nested-fieldset-multiplicity.spec.tsx +627 -0
  157. package/src/FieldArray/__tests__/preference-multiple-choice.spec.tsx +222 -0
  158. package/src/FieldArray/index.spec.tsx +355 -0
  159. package/src/FieldArray/index.test.tsx +8 -0
  160. package/src/FieldArray/index.tsx +49 -73
  161. package/src/FieldObject/index.tsx +40 -33
  162. package/src/Fieldset/FieldsetWithContext.tsx +1 -1
  163. package/src/Fieldset/index.tsx +1 -1
  164. package/src/Fieldset/types.tsx +2 -2
  165. package/src/FormBuilder/FormBuilder.stories.js +3 -0
  166. package/src/FormBuilder/__stories__/AutoErrorGrouping.tsx +1 -1
  167. package/src/FormBuilder/__stories__/Default.tsx +1 -1
  168. package/src/FormBuilder/__stories__/ErrorGrouping.tsx +1 -1
  169. package/src/FormBuilder/doc.mdx +10 -5
  170. package/src/FormBuilder/index.test.tsx +4 -0
  171. package/src/FormBuilder/index.tsx +197 -146
  172. package/src/FormBuilder/interaction.test.tsx +8 -0
  173. package/src/FormBuilder/scenarios.test.tsx +809 -12
  174. package/src/FormContext.tsx +7 -2
  175. package/src/MultiplicityField/MultiplicityField.stories.js +3 -0
  176. package/src/MultiplicityField/__stories__/Default.tsx +1 -1
  177. package/src/MultiplicityField/__stories__/PreviewDisplay.tsx +2 -4
  178. package/src/MultiplicityField/__stories__/WithExactLength.tsx +1 -1
  179. package/src/MultiplicityField/__stories__/WithMaxLength.tsx +1 -1
  180. package/src/MultiplicityField/__stories__/WithMinAndMaxLength.tsx +1 -1
  181. package/src/MultiplicityField/__stories__/WithMinLength.tsx +1 -1
  182. package/src/MultiplicityField/add-objects.tsx +14 -21
  183. package/src/MultiplicityField/doc.mdx +101 -83
  184. package/src/MultiplicityField/index.test.tsx +4 -0
  185. package/src/MultiplicityField/index.tsx +6 -2
  186. package/src/MultiplicityField/types.ts +6 -2
  187. package/src/Questions/Questions.stories.js +3 -0
  188. package/src/Questions/Questions.tsx +2 -2
  189. package/src/Questions/QuestionsContext.tsx +1 -1
  190. package/src/Questions/Step/Step.tsx +1 -1
  191. package/src/Questions/Step/StepArrayReview.tsx +2 -2
  192. package/src/Questions/Step/StepContext.tsx +1 -1
  193. package/src/Questions/Step/StepDescription.tsx +2 -1
  194. package/src/Questions/Step/StepForm.tsx +2 -2
  195. package/src/Questions/Step/StepQuote.tsx +2 -1
  196. package/src/Questions/Step/StepTitle.tsx +2 -1
  197. package/src/Questions/Step/getAddMoreFields.tsx +2 -2
  198. package/src/Questions/Step/types.tsx +1 -1
  199. package/src/Questions/__snapshots__/index.spec.tsx.snap +2 -1
  200. package/src/Questions/__stories__/Default.tsx +1 -1
  201. package/src/Questions/doc.mdx +21 -41
  202. package/src/Questions/getNextStep.tsx +1 -1
  203. package/src/Questions/index.test.tsx +4 -0
  204. package/src/Questions/types.tsx +1 -1
  205. package/src/doc.mdx +26 -11
  206. package/src/hooks/__tests__/useFieldFocusManager.spec.tsx +1079 -0
  207. package/src/hooks/__tests__/utils.spec.ts +568 -0
  208. package/src/hooks/useFieldFocusManager.ts +162 -0
  209. package/src/hooks/utils.ts +122 -0
  210. package/src/inputs/AutoCompleteInput/AutoComplete.stories.js +3 -0
  211. package/src/inputs/AutoCompleteInput/__stories__/Default.tsx +1 -1
  212. package/src/inputs/AutoCompleteInput/__stories__/Multiple.tsx +1 -1
  213. package/src/inputs/AutoCompleteInput/doc.mdx +2 -2
  214. package/src/inputs/AutoCompleteInput/index.test.tsx +4 -0
  215. package/src/inputs/AutoCompleteInput/index.tsx +4 -6
  216. package/src/inputs/Checkboxes/Checkboxes.stories.js +3 -0
  217. package/src/inputs/Checkboxes/__stories__/Conditional.tsx +1 -1
  218. package/src/inputs/Checkboxes/__stories__/Default.tsx +1 -1
  219. package/src/inputs/Checkboxes/__stories__/WithDivider.tsx +1 -1
  220. package/src/inputs/Checkboxes/doc.mdx +3 -3
  221. package/src/inputs/Checkboxes/index.test.tsx +4 -0
  222. package/src/inputs/Checkboxes/index.tsx +98 -90
  223. package/src/inputs/DateInput/DateInput.stories.js +7 -0
  224. package/src/inputs/DateInput/__stories__/Default.tsx +1 -1
  225. package/src/inputs/DateInput/__stories__/WithDefaultValue.tsx +26 -0
  226. package/src/inputs/DateInput/__stories__/WithInitialValue.tsx +28 -0
  227. package/src/inputs/DateInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  228. package/src/inputs/DateInput/__stories__/WithWrongInitialValue.tsx +28 -0
  229. package/src/inputs/DateInput/doc.mdx +1 -1
  230. package/src/inputs/DateInput/index.test.tsx +20 -0
  231. package/src/inputs/DateInput/index.tsx +68 -20
  232. package/src/inputs/DateTimeInput/DateTimeInput.stories.js +12 -6
  233. package/src/inputs/DateTimeInput/__stories__/Default.tsx +1 -1
  234. package/src/inputs/DateTimeInput/__stories__/WithDefaultValue.tsx +26 -0
  235. package/src/inputs/DateTimeInput/__stories__/WithInitialValue.tsx +28 -0
  236. package/src/inputs/DateTimeInput/__stories__/WithWrongDefaultValue.tsx +26 -0
  237. package/src/inputs/DateTimeInput/__stories__/WithWrongInitialValue.tsx +28 -0
  238. package/src/inputs/DateTimeInput/doc.mdx +1 -1
  239. package/src/inputs/DateTimeInput/index.test.tsx +20 -0
  240. package/src/inputs/DateTimeInput/index.tsx +97 -40
  241. package/src/inputs/FileInput/FileInput.stories.js +4 -0
  242. package/src/inputs/FileInput/__stories__/Default.tsx +1 -1
  243. package/src/inputs/FileInput/__stories__/WithBorderAndLink.tsx +34 -0
  244. package/src/inputs/FileInput/doc.mdx +1 -1
  245. package/src/inputs/FileInput/index.test.tsx +8 -0
  246. package/src/inputs/FileInput/index.tsx +98 -38
  247. package/src/inputs/ImageInput/ImageInput.stories.js +5 -1
  248. package/src/inputs/ImageInput/__stories__/Default.tsx +1 -1
  249. package/src/inputs/ImageInput/__stories__/MaxSize.tsx +3 -2
  250. package/src/inputs/ImageInput/__stories__/{WithInvalidImageSize.tsx → WithInitialValues.tsx} +12 -3
  251. package/src/inputs/ImageInput/__stories__/WithInvalidImageDimension.tsx +1 -1
  252. package/src/inputs/ImageInput/__stories__/logo.d.ts +4 -0
  253. package/src/inputs/ImageInput/__stories__/logo.png +0 -0
  254. package/src/inputs/ImageInput/doc.mdx +3 -3
  255. package/src/inputs/ImageInput/index.test.tsx +8 -4
  256. package/src/inputs/ImageInput/index.tsx +102 -49
  257. package/src/inputs/Input/Input.stories.js +6 -0
  258. package/src/inputs/Input/__stories__/AFM.tsx +1 -1
  259. package/src/inputs/Input/__stories__/AMKA.tsx +23 -0
  260. package/src/inputs/Input/__stories__/Boolean.tsx +1 -1
  261. package/src/inputs/Input/__stories__/Email.tsx +23 -0
  262. package/src/inputs/Input/__stories__/IBAN.tsx +1 -1
  263. package/src/inputs/Input/__stories__/Integer.tsx +1 -1
  264. package/src/inputs/Input/__stories__/LandlineNumber.tsx +1 -1
  265. package/src/inputs/Input/__stories__/MobilePhone.tsx +1 -1
  266. package/src/inputs/Input/__stories__/PhoneNumber.tsx +1 -1
  267. package/src/inputs/Input/__stories__/PostalCode.tsx +1 -1
  268. package/src/inputs/Input/__stories__/Rate.tsx +25 -0
  269. package/src/inputs/Input/__stories__/String.tsx +1 -1
  270. package/src/inputs/Input/__stories__/StringWithTrimValidation.tsx +1 -1
  271. package/src/inputs/Input/__stories__/TextWithLimit.tsx +1 -1
  272. package/src/inputs/Input/doc.mdx +10 -10
  273. package/src/inputs/Input/index.test.tsx +16 -0
  274. package/src/inputs/Input/index.tsx +20 -10
  275. package/src/inputs/Label/Label.stories.js +3 -0
  276. package/src/inputs/Label/__stories__/Default.tsx +1 -1
  277. package/src/inputs/Label/doc.mdx +1 -1
  278. package/src/inputs/Label/index.test.tsx +4 -0
  279. package/src/inputs/Label/index.tsx +1 -1
  280. package/src/inputs/OtpInput/OtpInput.stories.js +3 -0
  281. package/src/inputs/OtpInput/__stories__/Default.tsx +1 -1
  282. package/src/inputs/OtpInput/doc.mdx +1 -1
  283. package/src/inputs/OtpInput/index.test.tsx +4 -0
  284. package/src/inputs/OtpInput/index.tsx +43 -33
  285. package/src/inputs/Radio/Radio.stories.js +3 -0
  286. package/src/inputs/Radio/__stories__/Conditional.tsx +1 -1
  287. package/src/inputs/Radio/__stories__/Default.tsx +1 -1
  288. package/src/inputs/Radio/__stories__/WithDivider.tsx +1 -1
  289. package/src/inputs/Radio/doc.mdx +3 -3
  290. package/src/inputs/Radio/index.test.tsx +4 -0
  291. package/src/inputs/Radio/index.tsx +33 -22
  292. package/src/inputs/Select/Select.stories.js +3 -0
  293. package/src/inputs/Select/__stories__/Default.tsx +1 -1
  294. package/src/inputs/Select/doc.mdx +1 -1
  295. package/src/inputs/Select/index.test.tsx +4 -0
  296. package/src/inputs/Select/index.tsx +13 -7
  297. package/src/{Field/utils/index.ts → inputs/registry.ts} +5 -1
  298. package/{lazy/index.js → src/lazy.ts} +8 -29
  299. package/{registry/index.js → src/registry.ts} +33 -19
  300. package/src/types.tsx +14 -5
  301. package/src/utils.ts +41 -8
  302. package/src/validators/index.ts +50 -17
  303. package/src/validators/types.ts +1 -1
  304. package/src/validators/utils/amka.ts +39 -0
  305. package/src/validators/utils/date.ts +30 -6
  306. package/src/validators/utils/datetime.ts +123 -31
  307. package/src/validators/utils/email.ts +11 -0
  308. package/src/validators/utils/file.ts +35 -21
  309. package/src/validators/utils/iban.ts +2 -2
  310. package/src/validators/utils/image.ts +2 -2
  311. package/src/validators/utils/index.ts +13 -6
  312. package/src/validators/utils/int.ts +1 -1
  313. package/src/validators/utils/number.ts +1 -1
  314. package/src/validators/utils/otp.ts +2 -2
  315. package/src/validators/utils/phone.ts +2 -2
  316. package/src/validators/utils/postal_code.ts +2 -2
  317. package/src/validators/utils/text_limit.ts +2 -2
  318. package/types.d.ts +11 -5
  319. package/types.js +1 -0
  320. package/utils.d.ts +4 -1
  321. package/utils.js +56 -0
  322. package/validators/index.d.ts +6 -6
  323. package/validators/index.js +112 -139
  324. package/validators/types.d.ts +1 -1
  325. package/validators/types.js +0 -0
  326. package/validators/utils/afm.js +19 -0
  327. package/validators/utils/amka.d.ts +6 -0
  328. package/validators/utils/amka.js +27 -0
  329. package/validators/utils/date.d.ts +3 -3
  330. package/validators/utils/date.js +95 -0
  331. package/validators/utils/datetime.d.ts +3 -3
  332. package/validators/utils/datetime.js +121 -0
  333. package/validators/utils/email.d.ts +5 -0
  334. package/validators/utils/email.js +10 -0
  335. package/validators/utils/file.d.ts +2 -2
  336. package/validators/utils/file.js +31 -0
  337. package/validators/utils/iban.d.ts +2 -2
  338. package/validators/utils/iban.js +104 -0
  339. package/validators/utils/image.d.ts +2 -2
  340. package/validators/utils/image.js +65 -0
  341. package/validators/utils/index.d.ts +14 -13
  342. package/validators/utils/index.js +59 -90
  343. package/validators/utils/int.d.ts +1 -1
  344. package/validators/utils/int.js +13 -0
  345. package/validators/utils/number.d.ts +1 -1
  346. package/validators/utils/number.js +12 -0
  347. package/validators/utils/otp.d.ts +2 -2
  348. package/validators/utils/otp.js +21 -0
  349. package/validators/utils/phone.d.ts +2 -2
  350. package/validators/utils/phone.js +198 -0
  351. package/validators/utils/postal_code.d.ts +2 -2
  352. package/validators/utils/postal_code.js +18 -0
  353. package/validators/utils/text_limit.d.ts +2 -2
  354. package/validators/utils/text_limit.js +34 -0
  355. package/validators/utils/uuid4.js +14 -0
  356. package/Field/ErrorGroup/index.js +0 -48
  357. package/Field/ErrorGroup/package.json +0 -6
  358. package/Field/ErrorGroup.js.map +0 -7
  359. package/Field/FieldBase/index.js +0 -117
  360. package/Field/FieldBase/package.json +0 -6
  361. package/Field/FieldBase.js.map +0 -7
  362. package/Field/FieldBaseContainer/index.js +0 -33
  363. package/Field/FieldBaseContainer/package.json +0 -6
  364. package/Field/FieldBaseContainer.js.map +0 -7
  365. package/Field/FieldConditional/index.js +0 -85
  366. package/Field/FieldConditional/package.json +0 -6
  367. package/Field/FieldConditional.js.map +0 -7
  368. package/Field/index.js.map +0 -7
  369. package/Field/package.json +0 -6
  370. package/Field/types/index.js +0 -1
  371. package/Field/types/package.json +0 -6
  372. package/Field/types.js.map +0 -7
  373. package/Field/utils/calculateField/index.js +0 -27
  374. package/Field/utils/calculateField/package.json +0 -6
  375. package/Field/utils/calculateField.d.ts +0 -2
  376. package/Field/utils/calculateField.js.map +0 -7
  377. package/Field/utils/evaluateFieldWithConditions/index.js +0 -26
  378. package/Field/utils/evaluateFieldWithConditions/package.json +0 -6
  379. package/Field/utils/evaluateFieldWithConditions.js.map +0 -7
  380. package/Field/utils/index.js +0 -84
  381. package/Field/utils/index.js.map +0 -7
  382. package/Field/utils/package.json +0 -6
  383. package/Field/utils/useField/index.js +0 -57
  384. package/Field/utils/useField/package.json +0 -6
  385. package/Field/utils/useField.js.map +0 -7
  386. package/FieldArray/FieldArray.stories.d.ts +0 -10
  387. package/FieldArray/FormDialog/package.json +0 -6
  388. package/FieldArray/FormDialog.d.ts +0 -53
  389. package/FieldArray/FormDialog.js.map +0 -7
  390. package/FieldArray/__stories__/Default.d.ts +0 -2
  391. package/FieldArray/__stories__/WithExactLength.d.ts +0 -2
  392. package/FieldArray/__stories__/WithModal.d.ts +0 -2
  393. package/FieldArray/index.js.map +0 -7
  394. package/FieldArray/index.test.d.ts +0 -1
  395. package/FieldArray/package.json +0 -6
  396. package/FieldObject/index.js.map +0 -7
  397. package/FieldObject/package.json +0 -6
  398. package/Fieldset/FieldsetWithContext/index.js +0 -31
  399. package/Fieldset/FieldsetWithContext/package.json +0 -6
  400. package/Fieldset/FieldsetWithContext.js.map +0 -7
  401. package/Fieldset/index.js.map +0 -7
  402. package/Fieldset/package.json +0 -6
  403. package/Fieldset/types/index.js +0 -1
  404. package/Fieldset/types/package.json +0 -6
  405. package/Fieldset/types.js.map +0 -7
  406. package/Form.stories.d.ts +0 -4
  407. package/FormBuilder/FormBuilder.stories.d.ts +0 -10
  408. package/FormBuilder/__stories__/AutoErrorGrouping.d.ts +0 -3
  409. package/FormBuilder/__stories__/Default.d.ts +0 -3
  410. package/FormBuilder/__stories__/ErrorGrouping.d.ts +0 -3
  411. package/FormBuilder/index.js.map +0 -7
  412. package/FormBuilder/index.test.d.ts +0 -1
  413. package/FormBuilder/interaction.test.d.ts +0 -1
  414. package/FormBuilder/package.json +0 -6
  415. package/FormBuilder/scenarios.test.d.ts +0 -88
  416. package/FormContext/index.js +0 -9
  417. package/FormContext/package.json +0 -6
  418. package/FormContext.js.map +0 -7
  419. package/MultiplicityField/MultiplicityField.stories.d.ts +0 -13
  420. package/MultiplicityField/__stories__/Default.d.ts +0 -2
  421. package/MultiplicityField/__stories__/PreviewDisplay.d.ts +0 -2
  422. package/MultiplicityField/__stories__/WithExactLength.d.ts +0 -2
  423. package/MultiplicityField/__stories__/WithMaxLength.d.ts +0 -2
  424. package/MultiplicityField/__stories__/WithMinAndMaxLength.d.ts +0 -2
  425. package/MultiplicityField/__stories__/WithMinLength.d.ts +0 -2
  426. package/MultiplicityField/add-objects/index.js +0 -153
  427. package/MultiplicityField/add-objects/package.json +0 -6
  428. package/MultiplicityField/add-objects.js.map +0 -7
  429. package/MultiplicityField/index.js.map +0 -7
  430. package/MultiplicityField/index.test.d.ts +0 -1
  431. package/MultiplicityField/package.json +0 -6
  432. package/MultiplicityField/types/index.js +0 -1
  433. package/MultiplicityField/types/package.json +0 -6
  434. package/MultiplicityField/types.js.map +0 -7
  435. package/Questions/Questions/index.js +0 -67
  436. package/Questions/Questions/package.json +0 -6
  437. package/Questions/Questions.js.map +0 -7
  438. package/Questions/Questions.stories.d.ts +0 -8
  439. package/Questions/QuestionsContext/index.js +0 -11
  440. package/Questions/QuestionsContext/package.json +0 -6
  441. package/Questions/QuestionsContext.js.map +0 -7
  442. package/Questions/Step/ReviewStep/index.js +0 -38
  443. package/Questions/Step/ReviewStep/package.json +0 -6
  444. package/Questions/Step/ReviewStep.js.map +0 -7
  445. package/Questions/Step/Step/index.js +0 -54
  446. package/Questions/Step/Step/package.json +0 -6
  447. package/Questions/Step/Step.js.map +0 -7
  448. package/Questions/Step/StepArrayReview/index.js +0 -42
  449. package/Questions/Step/StepArrayReview/package.json +0 -6
  450. package/Questions/Step/StepArrayReview.js.map +0 -7
  451. package/Questions/Step/StepContext/index.js +0 -23
  452. package/Questions/Step/StepContext/package.json +0 -6
  453. package/Questions/Step/StepContext.js.map +0 -7
  454. package/Questions/Step/StepDescription/index.js +0 -24
  455. package/Questions/Step/StepDescription/package.json +0 -6
  456. package/Questions/Step/StepDescription.js.map +0 -7
  457. package/Questions/Step/StepForm/index.js +0 -34
  458. package/Questions/Step/StepForm/package.json +0 -6
  459. package/Questions/Step/StepForm.js.map +0 -7
  460. package/Questions/Step/StepQuote/index.js +0 -11
  461. package/Questions/Step/StepQuote/package.json +0 -6
  462. package/Questions/Step/StepQuote.js.map +0 -7
  463. package/Questions/Step/StepTitle/index.js +0 -44
  464. package/Questions/Step/StepTitle/package.json +0 -6
  465. package/Questions/Step/StepTitle.js.map +0 -7
  466. package/Questions/Step/getAddMoreFields/index.js +0 -29
  467. package/Questions/Step/getAddMoreFields/package.json +0 -6
  468. package/Questions/Step/getAddMoreFields.js.map +0 -7
  469. package/Questions/Step/index.js.map +0 -7
  470. package/Questions/Step/package.json +0 -6
  471. package/Questions/Step/types/index.js +0 -1
  472. package/Questions/Step/types/package.json +0 -6
  473. package/Questions/Step/types.js.map +0 -7
  474. package/Questions/__stories__/Default.d.ts +0 -3
  475. package/Questions/getNextStep/index.js +0 -22
  476. package/Questions/getNextStep/package.json +0 -6
  477. package/Questions/getNextStep.js.map +0 -7
  478. package/Questions/index.js.map +0 -7
  479. package/Questions/index.spec.d.ts +0 -1
  480. package/Questions/index.test.d.ts +0 -1
  481. package/Questions/package.json +0 -6
  482. package/Questions/types/index.js +0 -1
  483. package/Questions/types/package.json +0 -6
  484. package/Questions/types.js.map +0 -7
  485. package/cjs/Field/ErrorGroup/index.js +0 -82
  486. package/cjs/Field/ErrorGroup.js.map +0 -7
  487. package/cjs/Field/FieldBase/index.js +0 -150
  488. package/cjs/Field/FieldBase.js.map +0 -7
  489. package/cjs/Field/FieldBaseContainer/index.js +0 -66
  490. package/cjs/Field/FieldBaseContainer.js.map +0 -7
  491. package/cjs/Field/FieldConditional/index.js +0 -118
  492. package/cjs/Field/FieldConditional.js.map +0 -7
  493. package/cjs/Field/index.js +0 -144
  494. package/cjs/Field/index.js.map +0 -7
  495. package/cjs/Field/types/index.js +0 -16
  496. package/cjs/Field/types.js.map +0 -7
  497. package/cjs/Field/utils/calculateField/index.js +0 -50
  498. package/cjs/Field/utils/calculateField.js.map +0 -7
  499. package/cjs/Field/utils/evaluateFieldWithConditions/index.js +0 -49
  500. package/cjs/Field/utils/evaluateFieldWithConditions.js.map +0 -7
  501. package/cjs/Field/utils/index.js +0 -119
  502. package/cjs/Field/utils/index.js.map +0 -7
  503. package/cjs/Field/utils/useField/index.js +0 -80
  504. package/cjs/Field/utils/useField.js.map +0 -7
  505. package/cjs/FieldArray/FormDialog/index.js +0 -301
  506. package/cjs/FieldArray/FormDialog.js.map +0 -7
  507. package/cjs/FieldArray/index.js +0 -143
  508. package/cjs/FieldArray/index.js.map +0 -7
  509. package/cjs/FieldObject/index.js +0 -106
  510. package/cjs/FieldObject/index.js.map +0 -7
  511. package/cjs/Fieldset/FieldsetWithContext/index.js +0 -59
  512. package/cjs/Fieldset/FieldsetWithContext.js.map +0 -7
  513. package/cjs/Fieldset/index.js +0 -66
  514. package/cjs/Fieldset/index.js.map +0 -7
  515. package/cjs/Fieldset/types/index.js +0 -16
  516. package/cjs/Fieldset/types.js.map +0 -7
  517. package/cjs/FormBuilder/index.js +0 -273
  518. package/cjs/FormBuilder/index.js.map +0 -7
  519. package/cjs/FormContext/index.js +0 -32
  520. package/cjs/FormContext.js.map +0 -7
  521. package/cjs/MultiplicityField/add-objects/index.js +0 -181
  522. package/cjs/MultiplicityField/add-objects.js.map +0 -7
  523. package/cjs/MultiplicityField/index.js +0 -150
  524. package/cjs/MultiplicityField/index.js.map +0 -7
  525. package/cjs/MultiplicityField/types/index.js +0 -16
  526. package/cjs/MultiplicityField/types.js.map +0 -7
  527. package/cjs/Questions/Questions/index.js +0 -100
  528. package/cjs/Questions/Questions.js.map +0 -7
  529. package/cjs/Questions/QuestionsContext/index.js +0 -34
  530. package/cjs/Questions/QuestionsContext.js.map +0 -7
  531. package/cjs/Questions/Step/ReviewStep/index.js +0 -65
  532. package/cjs/Questions/Step/ReviewStep.js.map +0 -7
  533. package/cjs/Questions/Step/Step/index.js +0 -87
  534. package/cjs/Questions/Step/Step.js.map +0 -7
  535. package/cjs/Questions/Step/StepArrayReview/index.js +0 -67
  536. package/cjs/Questions/Step/StepArrayReview.js.map +0 -7
  537. package/cjs/Questions/Step/StepContext/index.js +0 -46
  538. package/cjs/Questions/Step/StepContext.js.map +0 -7
  539. package/cjs/Questions/Step/StepDescription/index.js +0 -58
  540. package/cjs/Questions/Step/StepDescription.js.map +0 -7
  541. package/cjs/Questions/Step/StepForm/index.js +0 -67
  542. package/cjs/Questions/Step/StepForm.js.map +0 -7
  543. package/cjs/Questions/Step/StepQuote/index.js +0 -44
  544. package/cjs/Questions/Step/StepQuote.js.map +0 -7
  545. package/cjs/Questions/Step/StepTitle/index.js +0 -76
  546. package/cjs/Questions/Step/StepTitle.js.map +0 -7
  547. package/cjs/Questions/Step/getAddMoreFields/index.js +0 -52
  548. package/cjs/Questions/Step/getAddMoreFields.js.map +0 -7
  549. package/cjs/Questions/Step/index.js +0 -59
  550. package/cjs/Questions/Step/index.js.map +0 -7
  551. package/cjs/Questions/Step/types/index.js +0 -16
  552. package/cjs/Questions/Step/types.js.map +0 -7
  553. package/cjs/Questions/getNextStep/index.js +0 -45
  554. package/cjs/Questions/getNextStep.js.map +0 -7
  555. package/cjs/Questions/index.js +0 -31
  556. package/cjs/Questions/index.js.map +0 -7
  557. package/cjs/Questions/types/index.js +0 -16
  558. package/cjs/Questions/types.js.map +0 -7
  559. package/cjs/index.js +0 -49
  560. package/cjs/index.js.map +0 -7
  561. package/cjs/inputs/AutoCompleteInput/index.js +0 -98
  562. package/cjs/inputs/AutoCompleteInput/index.js.map +0 -7
  563. package/cjs/inputs/Checkboxes/index.js +0 -106
  564. package/cjs/inputs/Checkboxes/index.js.map +0 -7
  565. package/cjs/inputs/DateInput/index.js +0 -153
  566. package/cjs/inputs/DateInput/index.js.map +0 -7
  567. package/cjs/inputs/DateTimeInput/index.js +0 -206
  568. package/cjs/inputs/DateTimeInput/index.js.map +0 -7
  569. package/cjs/inputs/FileInput/index.js +0 -80
  570. package/cjs/inputs/FileInput/index.js.map +0 -7
  571. package/cjs/inputs/ImageInput/index.js +0 -98
  572. package/cjs/inputs/ImageInput/index.js.map +0 -7
  573. package/cjs/inputs/Input/index.js +0 -110
  574. package/cjs/inputs/Input/index.js.map +0 -7
  575. package/cjs/inputs/Input/inputsInputScenarios/index.js +0 -439
  576. package/cjs/inputs/Input/inputsInputScenarios.js.map +0 -7
  577. package/cjs/inputs/Label/index.js +0 -50
  578. package/cjs/inputs/Label/index.js.map +0 -7
  579. package/cjs/inputs/OtpInput/index.js +0 -180
  580. package/cjs/inputs/OtpInput/index.js.map +0 -7
  581. package/cjs/inputs/Radio/index.js +0 -134
  582. package/cjs/inputs/Radio/index.js.map +0 -7
  583. package/cjs/inputs/Select/index.js +0 -61
  584. package/cjs/inputs/Select/index.js.map +0 -7
  585. package/cjs/inputs/index.js +0 -62
  586. package/cjs/inputs/index.js.map +0 -7
  587. package/cjs/inputs/inputsScenarios/index.js +0 -533
  588. package/cjs/inputs/inputsScenarios.js.map +0 -7
  589. package/cjs/internal/index.js +0 -38
  590. package/cjs/internal.js.map +0 -7
  591. package/cjs/lazy/index.js +0 -110
  592. package/cjs/lazy.js.map +0 -7
  593. package/cjs/locales/el/index.js +0 -35
  594. package/cjs/locales/el.js.map +0 -7
  595. package/cjs/registry/index.js +0 -195
  596. package/cjs/registry.js.map +0 -7
  597. package/cjs/types/index.js +0 -22
  598. package/cjs/types.js.map +0 -7
  599. package/cjs/utils/index.js +0 -83
  600. package/cjs/utils.js.map +0 -7
  601. package/cjs/validators/index.js +0 -160
  602. package/cjs/validators/index.js.map +0 -7
  603. package/cjs/validators/types/index.js +0 -16
  604. package/cjs/validators/types.js.map +0 -7
  605. package/cjs/validators/utils/afm/index.js +0 -55
  606. package/cjs/validators/utils/afm.js.map +0 -7
  607. package/cjs/validators/utils/date/index.js +0 -138
  608. package/cjs/validators/utils/date.js.map +0 -7
  609. package/cjs/validators/utils/datetime/index.js +0 -151
  610. package/cjs/validators/utils/datetime.js.map +0 -7
  611. package/cjs/validators/utils/file/index.js +0 -48
  612. package/cjs/validators/utils/file.js.map +0 -7
  613. package/cjs/validators/utils/iban/index.js +0 -142
  614. package/cjs/validators/utils/iban.js.map +0 -7
  615. package/cjs/validators/utils/image/index.js +0 -102
  616. package/cjs/validators/utils/image.js.map +0 -7
  617. package/cjs/validators/utils/index.js +0 -144
  618. package/cjs/validators/utils/index.js.map +0 -7
  619. package/cjs/validators/utils/int/index.js +0 -48
  620. package/cjs/validators/utils/int.js.map +0 -7
  621. package/cjs/validators/utils/number/index.js +0 -44
  622. package/cjs/validators/utils/number.js.map +0 -7
  623. package/cjs/validators/utils/otp/index.js +0 -54
  624. package/cjs/validators/utils/otp.js.map +0 -7
  625. package/cjs/validators/utils/phone/index.js +0 -198
  626. package/cjs/validators/utils/phone.js.map +0 -7
  627. package/cjs/validators/utils/postal_code/index.js +0 -54
  628. package/cjs/validators/utils/postal_code.js.map +0 -7
  629. package/cjs/validators/utils/text_limit/index.js +0 -69
  630. package/cjs/validators/utils/text_limit.js.map +0 -7
  631. package/cjs/validators/utils/uuid4/index.js +0 -46
  632. package/cjs/validators/utils/uuid4.js.map +0 -7
  633. package/index.js.map +0 -7
  634. package/inputs/AutoCompleteInput/AutoComplete.stories.d.ts +0 -9
  635. package/inputs/AutoCompleteInput/__stories__/Default.d.ts +0 -3
  636. package/inputs/AutoCompleteInput/__stories__/Multiple.d.ts +0 -3
  637. package/inputs/AutoCompleteInput/index.js.map +0 -7
  638. package/inputs/AutoCompleteInput/index.test.d.ts +0 -1
  639. package/inputs/AutoCompleteInput/package.json +0 -6
  640. package/inputs/Checkboxes/Checkboxes.stories.d.ts +0 -10
  641. package/inputs/Checkboxes/__stories__/Conditional.d.ts +0 -3
  642. package/inputs/Checkboxes/__stories__/Default.d.ts +0 -3
  643. package/inputs/Checkboxes/__stories__/WithDivider.d.ts +0 -3
  644. package/inputs/Checkboxes/index.js.map +0 -7
  645. package/inputs/Checkboxes/index.test.d.ts +0 -1
  646. package/inputs/Checkboxes/package.json +0 -6
  647. package/inputs/DateInput/DateInput.stories.d.ts +0 -8
  648. package/inputs/DateInput/__stories__/Default.d.ts +0 -3
  649. package/inputs/DateInput/index.js.map +0 -7
  650. package/inputs/DateInput/index.test.d.ts +0 -1
  651. package/inputs/DateInput/package.json +0 -6
  652. package/inputs/DateTimeInput/DateTimeInput.stories.d.ts +0 -7
  653. package/inputs/DateTimeInput/__stories__/Default.d.ts +0 -3
  654. package/inputs/DateTimeInput/index.js.map +0 -7
  655. package/inputs/DateTimeInput/index.test.d.ts +0 -1
  656. package/inputs/DateTimeInput/package.json +0 -6
  657. package/inputs/FileInput/FileInput.stories.d.ts +0 -8
  658. package/inputs/FileInput/__stories__/Default.d.ts +0 -3
  659. package/inputs/FileInput/index.js.map +0 -7
  660. package/inputs/FileInput/index.test.d.ts +0 -1
  661. package/inputs/FileInput/package.json +0 -6
  662. package/inputs/ImageInput/ImageInput.stories.d.ts +0 -10
  663. package/inputs/ImageInput/__stories__/Default.d.ts +0 -3
  664. package/inputs/ImageInput/__stories__/MaxSize.d.ts +0 -3
  665. package/inputs/ImageInput/__stories__/WithInvalidImageDimension.d.ts +0 -3
  666. package/inputs/ImageInput/__stories__/WithInvalidImageSize.d.ts +0 -3
  667. package/inputs/ImageInput/index.js.map +0 -7
  668. package/inputs/ImageInput/index.test.d.ts +0 -1
  669. package/inputs/ImageInput/package.json +0 -6
  670. package/inputs/Input/Input.stories.d.ts +0 -18
  671. package/inputs/Input/__stories__/AFM.d.ts +0 -3
  672. package/inputs/Input/__stories__/Boolean.d.ts +0 -3
  673. package/inputs/Input/__stories__/IBAN.d.ts +0 -3
  674. package/inputs/Input/__stories__/Integer.d.ts +0 -3
  675. package/inputs/Input/__stories__/LandlineNumber.d.ts +0 -3
  676. package/inputs/Input/__stories__/MobilePhone.d.ts +0 -3
  677. package/inputs/Input/__stories__/PhoneNumber.d.ts +0 -3
  678. package/inputs/Input/__stories__/PostalCode.d.ts +0 -3
  679. package/inputs/Input/__stories__/String.d.ts +0 -3
  680. package/inputs/Input/__stories__/StringWithTrimValidation.d.ts +0 -3
  681. package/inputs/Input/__stories__/TextWithLimit.d.ts +0 -3
  682. package/inputs/Input/index.js.map +0 -7
  683. package/inputs/Input/index.test.d.ts +0 -1
  684. package/inputs/Input/inputsInputScenarios/index.js +0 -406
  685. package/inputs/Input/inputsInputScenarios/package.json +0 -6
  686. package/inputs/Input/inputsInputScenarios.d.ts +0 -57
  687. package/inputs/Input/inputsInputScenarios.js.map +0 -7
  688. package/inputs/Input/package.json +0 -6
  689. package/inputs/Label/Label.stories.d.ts +0 -8
  690. package/inputs/Label/__stories__/Default.d.ts +0 -3
  691. package/inputs/Label/index.js.map +0 -7
  692. package/inputs/Label/index.test.d.ts +0 -1
  693. package/inputs/Label/package.json +0 -6
  694. package/inputs/OtpInput/OtpInput.stories.d.ts +0 -8
  695. package/inputs/OtpInput/__stories__/Default.d.ts +0 -3
  696. package/inputs/OtpInput/index.js.map +0 -7
  697. package/inputs/OtpInput/index.test.d.ts +0 -1
  698. package/inputs/OtpInput/package.json +0 -6
  699. package/inputs/Radio/Radio.stories.d.ts +0 -10
  700. package/inputs/Radio/__stories__/Conditional.d.ts +0 -3
  701. package/inputs/Radio/__stories__/Default.d.ts +0 -3
  702. package/inputs/Radio/__stories__/WithDivider.d.ts +0 -3
  703. package/inputs/Radio/index.js.map +0 -7
  704. package/inputs/Radio/index.test.d.ts +0 -1
  705. package/inputs/Radio/package.json +0 -6
  706. package/inputs/Select/Select.stories.d.ts +0 -8
  707. package/inputs/Select/__stories__/Default.d.ts +0 -3
  708. package/inputs/Select/index.js.map +0 -7
  709. package/inputs/Select/index.test.d.ts +0 -1
  710. package/inputs/Select/package.json +0 -6
  711. package/inputs/index.js.map +0 -7
  712. package/inputs/inputsScenarios/index.js +0 -499
  713. package/inputs/inputsScenarios/package.json +0 -6
  714. package/inputs/inputsScenarios.d.ts +0 -296
  715. package/inputs/inputsScenarios.js.map +0 -7
  716. package/inputs/package.json +0 -6
  717. package/internal/index.js +0 -10
  718. package/internal/package.json +0 -6
  719. package/internal.js.map +0 -7
  720. package/lazy/package.json +0 -6
  721. package/locales/el/index.js +0 -6
  722. package/locales/el/package.json +0 -6
  723. package/locales/el.d.ts +0 -2
  724. package/locales/el.js.map +0 -7
  725. package/registry/package.json +0 -6
  726. package/src/Field/utils/calculateField.ts +0 -49
  727. package/src/FieldArray/FormDialog.tsx +0 -378
  728. package/src/inputs/Input/inputsInputScenarios.ts +0 -404
  729. package/src/inputs/inputsScenarios.ts +0 -496
  730. package/src/lazy.js +0 -77
  731. package/src/locales/el.ts +0 -3
  732. package/src/registry.js +0 -165
  733. package/types/index.js +0 -2
  734. package/types/package.json +0 -6
  735. package/types.js.map +0 -7
  736. package/utils/index.js +0 -60
  737. package/utils/package.json +0 -6
  738. package/utils.js.map +0 -7
  739. package/validators/index.js.map +0 -7
  740. package/validators/package.json +0 -6
  741. package/validators/types/index.js +0 -1
  742. package/validators/types/package.json +0 -6
  743. package/validators/types.js.map +0 -7
  744. package/validators/utils/afm/index.js +0 -31
  745. package/validators/utils/afm/package.json +0 -6
  746. package/validators/utils/afm.js.map +0 -7
  747. package/validators/utils/date/index.js +0 -103
  748. package/validators/utils/date/package.json +0 -6
  749. package/validators/utils/date.js.map +0 -7
  750. package/validators/utils/datetime/index.js +0 -116
  751. package/validators/utils/datetime/package.json +0 -6
  752. package/validators/utils/datetime.js.map +0 -7
  753. package/validators/utils/file/index.js +0 -25
  754. package/validators/utils/file/package.json +0 -6
  755. package/validators/utils/file.js.map +0 -7
  756. package/validators/utils/iban/index.js +0 -118
  757. package/validators/utils/iban/package.json +0 -6
  758. package/validators/utils/iban.js.map +0 -7
  759. package/validators/utils/image/index.js +0 -79
  760. package/validators/utils/image/package.json +0 -6
  761. package/validators/utils/image.js.map +0 -7
  762. package/validators/utils/index.js.map +0 -7
  763. package/validators/utils/int/index.js +0 -24
  764. package/validators/utils/int/package.json +0 -6
  765. package/validators/utils/int.js.map +0 -7
  766. package/validators/utils/number/index.js +0 -20
  767. package/validators/utils/number/package.json +0 -6
  768. package/validators/utils/number.js.map +0 -7
  769. package/validators/utils/otp/index.js +0 -30
  770. package/validators/utils/otp/package.json +0 -6
  771. package/validators/utils/otp.js.map +0 -7
  772. package/validators/utils/package.json +0 -6
  773. package/validators/utils/phone/index.js +0 -172
  774. package/validators/utils/phone/package.json +0 -6
  775. package/validators/utils/phone.js.map +0 -7
  776. package/validators/utils/postal_code/index.js +0 -30
  777. package/validators/utils/postal_code/package.json +0 -6
  778. package/validators/utils/postal_code.js.map +0 -7
  779. package/validators/utils/text_limit/index.js +0 -45
  780. package/validators/utils/text_limit/package.json +0 -6
  781. package/validators/utils/text_limit.js.map +0 -7
  782. package/validators/utils/uuid4/index.js +0 -22
  783. package/validators/utils/uuid4/package.json +0 -6
  784. package/validators/utils/uuid4.js.map +0 -7
  785. package/validators/validators.spec.d.ts +0 -1
package/src/Field/doc.mdx CHANGED
@@ -3,4 +3,205 @@ title: Form
3
3
  parent: docs/form/components
4
4
  ---
5
5
 
6
- hello md
6
+ # Field
7
+
8
+ Field allow users to create different types of inputs based on data that is described by a particular config schema.
9
+
10
+ ```jsx
11
+ import React from 'react';
12
+ import FormBuilder, { Field } from '@digigov/form';
13
+ import { Button } from '@digigov/ui/form/Button';
14
+
15
+ const fields = [
16
+ {
17
+ key: 'first_name',
18
+ type: 'string',
19
+ required: true,
20
+ label: {
21
+ primary: 'Ποιo είναι το όνομά σας;',
22
+ },
23
+ },
24
+ ];
25
+
26
+ export const MyComponent = () => (
27
+ <FormBuilder onSubmit={(data) => console.log(data)}>
28
+ {fields.map(({ key, ...field }) => {
29
+ return <Field {...field} name={key} key={key} />;
30
+ })}
31
+ <Button type="submit">Συνέχεια</Button>
32
+ </FormBuilder>
33
+ );
34
+ export default MyComponent;
35
+ ```
36
+
37
+ ## Accessibility & Usability
38
+
39
+ Our goal is to create semantically correct and valid forms, which means
40
+ we must avoid mixing form-related HTML elements (like form, input, label) with generic
41
+ ones (such as div, cards, or custom components). For instance, if a paragraph element is
42
+ placed inside a form, React will display warnings in the console. Rather than building overly
43
+ complex interfaces that attempt to accomplish too much too quickly, Digigov Form encourages
44
+ using forms in their intended way—filling out and validating inputs, and then submitting the form
45
+ as a whole.
46
+
47
+ Additionally, we must ensure our interfaces are fully accessible to screen readers and other
48
+ assistive technologies. This is why we designed the flow to be as guided and recoverable as possible.
49
+ Forms and fields should be clear and logical, reading like well-written text for the users.
50
+ If validation fails, the system provides users with meaningful error messages and clear instructions on how to correct the errors.
51
+ Once validation is successful, the data can be submitted. It is crucial to provide helpful information to users at each step.
52
+ Therefore, we should avoid relying on flashy “magic” UX solutions that assume users have advanced digital skills,
53
+ as these are often intended for expert use cases.
54
+
55
+ ## Introducing the Field component
56
+
57
+ Field is a component that creates `form` inputs dynamically based on a `data config` schema.
58
+ The config structure is a `key-value` pair of data that describes the input fields and its usage.
59
+ In order to create an input, we need to provide a specific type of input for each field,
60
+ and we can use the `type` property for this.
61
+
62
+ ## Field types
63
+
64
+ The `type` property determines the type of input field to be rendered. Below are the available types and their descriptions.
65
+
66
+ | Type | Input Description |
67
+ | ----------------- | ---------------------------------------------------------------------------------------------------------------------------------- |
68
+ | `int` | A whole number. |
69
+ | `string` | A text string (e.g., name, address). |
70
+ | `text` | A larger text input, suitable for paragraphs or multiline text. |
71
+ | `boolean` | A binary value, typically a checkbox or toggle (true/false). |
72
+ | `email` | An email address (e.g., example@example.com). |
73
+ | `uuid4` | A universally unique identifier (UUID) in version 4 format. |
74
+ | `choice:multiple` | A selection of multiple options from a list (e.g., checkboxes). |
75
+ | `choice:single` | A single selection from a list (e.g., radio buttons). |
76
+ | `mobile_phone` | A phone number, typically with country code (e.g., +1-234-567-890). |
77
+ | `date` | A date input, typically in the format YYYY-MM-DD. |
78
+ | `datetime` | A date and time input, typically in the format YYYY-MM-DD HH:MM:SS. |
79
+ | `otp` | A one-time password, typically a short numeric or alphanumeric string. |
80
+ | `afm` | A Greek Tax Identification Number (AFM). |
81
+ | `iban` | An International Bank Account Number (IBAN). |
82
+ | `file` | A file upload input (e.g., for documents, images). |
83
+ | `image` | A file input that specifically handles images. |
84
+ | `postal_code` | A postal code input (e.g., ZIP code, postcode). |
85
+ | `phone_number` | A phone number input (e.g., with or without country code). |
86
+ | `array` | A list of values, typically displayed as multiple inputs ([MultiplicityField](/components/@digigov/form/MultiplicityField.html)). |
87
+ | `object` | A structured data object, often used for more complex or nested forms. |
88
+
89
+ ## Field properties
90
+
91
+ The Field component accepts several properties, that describes the input fields and its usage.
92
+
93
+ | Property | Type | Description |
94
+ | -------------- | ----------------------------------------------------------------------------------------- | --------------------------------------------------------------------------- |
95
+ | `key` | `string` | The name of the field (TODO: rename to `name`). |
96
+ | `type` | Describes the format of each field, e.g., `type: 'string'` is a simple input format field | The type of input field. Defines the kind of value it accepts. |
97
+ | `trim` | `boolean` | If `true`, trims the input value. |
98
+ | `component` | `any` | A custom React component for the input field. |
99
+ | `autoComplete` | `string` | The `autocomplete` attribute value for the input field (e.g., 'on', 'off'). |
100
+ | `maxLength` | `number` | The maximum number of characters the input can accept. |
101
+ | `condition` | `Record<string, FieldCondition>` | Conditions for when the field should be shown, enabled, or validated. |
102
+ | `controlled` | `boolean` | If `true`, the input value is controlled by React state. |
103
+ | `label` | `FieldLabelProps` | The label associated with the input field. |
104
+ | `extra` | `Record<string, any>` | Extra custom attributes or settings for the field. |
105
+ | `editable` | `boolean` | If `false`, the field cannot be edited. |
106
+ | `variant` | `'inline' \| 'dialog'` | Defines the display variant of the field (e.g., inline or in a dialog). |
107
+ | `required` | `boolean` | If `true`, the field is required to be filled. |
108
+ | `enabled` | `boolean` | If `false`, the field is disabled and cannot be interacted with. |
109
+ | `disabled` | `boolean` | If `true`, the field is disabled. |
110
+ | `layout` | `Record<string, GridProps['xs' \| 'sm' \| 'md' \| 'lg' \| 'xl']>` | Defines the layout settings for the field (grid system). |
111
+ | `validators` | `ValidatorSchema[]` | Array of validators to be applied to the input field. |
112
+ | `wrapper` | `'label' \| 'fieldset'` | Defines the wrapping element for the field (label or fieldset). |
113
+ | `maxWidth` | `string` | The maximum width of the field. |
114
+ | `maxHeight` | `string` | The maximum height of the field. |
115
+ | `width` | `string` | The width of the field. |
116
+
117
+ ### How to use it
118
+
119
+ The `Field` component is a fundamental building block of the `form`.
120
+ We can implement a `Field` by using the `data config` or we can fill the `Field` directly with its properties.
121
+
122
+ First, we need to import the `FormBuilder` component from the `@digigov/form` path.
123
+
124
+ ```jsx pure
125
+ import React from 'react';
126
+ import FormBuilder from '@digigov/form';
127
+ import Button from '@digigov/ui/form/Button';
128
+
129
+ export default function MyFieldComponent() {
130
+ return (
131
+ <FormBuilder>
132
+ {/* this is where all fields will eventually be rendered */}
133
+ <Button type="submit">Συνέχεια</Button>
134
+ </FormBuilder>
135
+ );
136
+ }
137
+ ```
138
+
139
+ #### Data config
140
+
141
+ The `data config` is an array of objects that contains the configuration for each field.
142
+
143
+ ```jsx pure
144
+ const fields = [
145
+ {
146
+ key: 'first_name',
147
+ type: 'string',
148
+ required: true,
149
+ label: {
150
+ primary: 'Ποιo είναι το όνομά σας;',
151
+ },
152
+ },
153
+ ];
154
+ ```
155
+
156
+ Then we can use the `fields` array to render the Field(s).
157
+
158
+ ```jsx pure
159
+ import React from 'react';
160
+ import FormBuilder, { Field } from '@digigov/form';
161
+ import { Button } from '@digigov/ui/form/Button';
162
+
163
+ const fields = [
164
+ {
165
+ key: 'first_name',
166
+ type: 'string',
167
+ required: true,
168
+ label: {
169
+ primary: 'Ποιo είναι το όνομά σας;',
170
+ },
171
+ },
172
+ ];
173
+
174
+ export const MyComponent = () => (
175
+ <FormBuilder onSubmit={(data) => console.log(data)}>
176
+ {fields.map(({ key, ...field }) => {
177
+ return <Field {...field} name={key} key={key} />;
178
+ })}
179
+ <Button type="submit">Συνέχεια</Button>
180
+ </FormBuilder>
181
+ );
182
+ export default MyComponent;
183
+ ```
184
+
185
+ #### Directly
186
+
187
+ We can also use the `Field` component directly and pass the properties to it.
188
+
189
+ ```jsx pure
190
+ import React from 'react';
191
+ import FormBuilder, { Field } from '@digigov/form';
192
+ import { Button } from '@digigov/ui/form/Button';
193
+
194
+ export const MyComponent = () => (
195
+ <FormBuilder onSubmit={(data) => console.log(data)}>
196
+ <Field
197
+ key="first_name"
198
+ name="first_name"
199
+ label={{ primary: 'Οχήματα' }}
200
+ type="sting"
201
+ required
202
+ />
203
+ <Button type="submit">Συνέχεια</Button>
204
+ </FormBuilder>
205
+ );
206
+ export default MyComponent;
207
+ ```
@@ -1,22 +1,13 @@
1
1
  import React, { useMemo } from 'react';
2
2
  import { FieldBase } from '@digigov/form/Field/FieldBase';
3
3
  import FieldConditional from '@digigov/form/Field/FieldConditional';
4
- import {
5
- FieldWithCondition,
6
- CalculatedField,
7
- FieldProps,
8
- } from '@digigov/form/Field/types';
9
- import {
10
- FIELD_COMPONENTS,
11
- ALTERNATIVE_COMPONENTS,
12
- } from '@digigov/form/Field/utils';
13
- import { calculateField } from '@digigov/form/Field/utils/calculateField';
4
+ import type { FieldWithCondition, FieldProps } from '@digigov/form/Field/types';
5
+ import { resolveField } from '@digigov/form/Field/utils/resolveField';
14
6
  import { useField } from '@digigov/form/Field/utils/useField';
15
7
  import FieldArray from '@digigov/form/FieldArray';
16
8
  import Multiplicity from '@digigov/form/MultiplicityField';
17
9
  export const Field: React.FC<FieldProps> = ({
18
10
  name,
19
- disabled,
20
11
  children,
21
12
  ...customField
22
13
  }) => {
@@ -25,6 +16,7 @@ export const Field: React.FC<FieldProps> = ({
25
16
  control,
26
17
  register,
27
18
  reset,
19
+ resetField,
28
20
  error,
29
21
  componentRegistry,
30
22
  formState,
@@ -33,35 +25,27 @@ export const Field: React.FC<FieldProps> = ({
33
25
  unregister,
34
26
  trigger,
35
27
  clearErrors,
28
+ registerFieldFocus,
36
29
  } = useField(name, customField?.type ? customField : null);
37
- const calculatedField: CalculatedField = useMemo(
38
- () =>
39
- calculateField(
40
- children,
41
- field,
42
- {
43
- ...FIELD_COMPONENTS,
44
- ...componentRegistry,
45
- },
46
- ALTERNATIVE_COMPONENTS
47
- ),
30
+ const resolvedField = useMemo(
31
+ () => resolveField(children, field, componentRegistry),
48
32
  [field]
49
33
  );
50
-
51
- if (calculatedField.condition) {
34
+ if (resolvedField.condition) {
52
35
  return (
53
36
  <FieldConditional
54
37
  control={control}
55
38
  reset={reset}
39
+ resetField={resetField}
56
40
  register={register}
57
- field={calculatedField as FieldWithCondition}
41
+ field={resolvedField as FieldWithCondition}
58
42
  error={error}
59
43
  Field={Field}
60
44
  />
61
45
  );
62
46
  }
63
- if (calculatedField.type === 'array' && !calculatedField.multiplicity) {
64
- calculatedField.name = name;
47
+ if (resolvedField.type === 'array' && !resolvedField.multiplicity) {
48
+ resolvedField.name = name;
65
49
  return (
66
50
  <FieldArray
67
51
  control={control}
@@ -74,15 +58,14 @@ export const Field: React.FC<FieldProps> = ({
74
58
  formState={formState}
75
59
  Field={Field}
76
60
  reset={reset}
77
- {...calculatedField}
61
+ resetField={resetField}
62
+ registerFieldFocus={registerFieldFocus}
63
+ {...resolvedField}
78
64
  />
79
65
  );
80
66
  }
81
- if (
82
- calculatedField.type === 'array' &&
83
- calculatedField.multiplicity === true
84
- ) {
85
- calculatedField.name = name;
67
+ if (resolvedField.type === 'array' && resolvedField.multiplicity === true) {
68
+ resolvedField.name = name;
86
69
  return (
87
70
  <Multiplicity
88
71
  control={control}
@@ -94,20 +77,27 @@ export const Field: React.FC<FieldProps> = ({
94
77
  setValue={setValue}
95
78
  getValues={getValues}
96
79
  unregister={unregister}
80
+ resetField={resetField}
97
81
  Field={Field}
98
- {...calculatedField}
82
+ {...resolvedField}
99
83
  />
100
84
  );
101
85
  }
86
+ const editable =
87
+ customField.editable === false || customField.disabled === true
88
+ ? false
89
+ : true;
90
+ const customError = error ? error : formState?.errors[name];
102
91
  return (
103
92
  <FieldBase
104
- {...calculatedField}
93
+ {...resolvedField}
94
+ editable={editable}
105
95
  name={name}
106
- disabled={disabled}
107
96
  control={control}
108
97
  register={register}
109
98
  reset={reset}
110
- error={error}
99
+ error={customError}
100
+ resetField={resetField}
111
101
  Field={Field}
112
102
  />
113
103
  );
@@ -1,7 +1,10 @@
1
- import React from 'react';
2
- import { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
3
- import { ValidatorSchema } from '@digigov/form/validators/types';
4
- import { GridProps } from '@digigov/ui/layouts/Grid';
1
+ import type React from 'react';
2
+ import type { ErrorOption, UseFormReturn, UseFormProps } from 'react-hook-form';
3
+ import type { FieldComponentRegistry } from '@digigov/form/inputs/registry';
4
+ import type { registerFieldFocus } from '@digigov/form/types';
5
+ import type { ValidatorSchema } from '@digigov/form/validators/types';
6
+ import type { FieldsetLegendProps } from '@digigov/ui/form/FieldContainer';
7
+ import type { GridProps } from '@digigov/ui/layouts/Grid';
5
8
 
6
9
  export interface FieldLabelProps {
7
10
  primary?: string;
@@ -25,8 +28,10 @@ export interface FieldSpec {
25
28
  | 'datetime'
26
29
  | 'otp'
27
30
  | 'afm'
31
+ | 'amka'
28
32
  | 'iban'
29
33
  | 'file'
34
+ | 'rate'
30
35
  | 'image'
31
36
  | 'postal_code'
32
37
  | 'phone_number'
@@ -35,6 +40,7 @@ export interface FieldSpec {
35
40
  trim?: boolean;
36
41
  component?: any;
37
42
  autoComplete?: string;
43
+ placeholder?: string;
38
44
  maxLength?: number;
39
45
  condition?: Record<string, FieldCondition>;
40
46
  controlled?: boolean;
@@ -44,7 +50,7 @@ export interface FieldSpec {
44
50
  variant?: 'inline' | 'dialog';
45
51
  required?: boolean;
46
52
  enabled?: boolean;
47
- disabled?: boolean;
53
+ disabled?: boolean; // TODO: keep disabled or editable
48
54
  layout?: Record<
49
55
  string,
50
56
  | GridProps['xs']
@@ -58,6 +64,8 @@ export interface FieldSpec {
58
64
  maxWidth?: string;
59
65
  maxHeight?: string;
60
66
  width?: string;
67
+ min?: number;
68
+ max?: number;
61
69
  }
62
70
 
63
71
  export interface FieldCondition {
@@ -70,7 +78,7 @@ export interface ChildFieldMemoProps extends FieldConditionalProps {
70
78
  }
71
79
  export type FormData = UseFormProps['defaultValues'];
72
80
 
73
- export interface FieldWithCondition extends Omit<CalculatedField, 'condition'> {
81
+ export interface FieldWithCondition extends Omit<ResolvedField, 'condition'> {
74
82
  condition: Record<string, FieldCondition>;
75
83
  }
76
84
 
@@ -79,6 +87,7 @@ export interface FieldConditionalProps {
79
87
  control: UseFormReturn['control'];
80
88
  register: UseFormReturn['register'];
81
89
  reset: UseFormReturn['reset'];
90
+ resetField?: UseFormReturn['resetField'];
82
91
  error?: ErrorOption;
83
92
  Field: React.FC<FieldProps>;
84
93
  }
@@ -92,18 +101,17 @@ export interface FieldComponentItem {
92
101
 
93
102
  export interface FieldContainerProps {
94
103
  name?: FieldSpec['key'];
104
+ register: FieldBaseProps['register'];
95
105
  layout?: FieldSpec['layout'];
96
106
  label?: FieldSpec['label'];
97
107
  error?: ErrorOption | Record<string, any>;
98
108
  hasError?: boolean;
99
109
  children?: React.ReactNode;
110
+ controlled?: boolean;
100
111
  wrapper?: FieldSpec['wrapper'];
112
+ labelSize?: FieldsetLegendProps['size'];
101
113
  }
102
114
 
103
- export type FieldComponentRegistry = Record<string, FieldComponentItem>;
104
-
105
- export type OmittedFieldSpec = Omit<FieldSpec, 'component'>;
106
-
107
115
  export type UnknownValue = never | never[];
108
116
 
109
117
  export interface ControlledFieldProps {
@@ -116,7 +124,7 @@ export interface ControlledFieldProps {
116
124
  error?: boolean;
117
125
  name?: string;
118
126
  disabled?: boolean;
119
- Field: React.FC<FieldProps>;
127
+ Field?: React.FC<FieldProps>;
120
128
  }
121
129
 
122
130
  export interface UncontrolledFieldProps {
@@ -130,7 +138,7 @@ export interface UncontrolledFieldProps {
130
138
  Field: React.FC<FieldProps>;
131
139
  }
132
140
 
133
- export interface CalculatedField extends OmittedFieldSpec {
141
+ export interface ResolvedField extends Omit<FieldSpec, 'component'> {
134
142
  name: string;
135
143
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
136
144
  component: any;
@@ -140,11 +148,12 @@ export interface CalculatedField extends OmittedFieldSpec {
140
148
  multiplicity?: boolean;
141
149
  }
142
150
 
143
- export interface FieldBaseProps extends CalculatedField {
151
+ export interface FieldBaseProps extends ResolvedField {
144
152
  control: UseFormReturn['control'];
145
153
  register: UseFormReturn['register'];
146
154
  reset: UseFormReturn['reset'];
147
- Field: React.FC<FieldProps>;
155
+ resetField?: UseFormReturn['resetField'];
156
+ Field?: React.FC<FieldProps>;
148
157
  }
149
158
 
150
159
  export interface FieldProps extends FieldSpec {
@@ -157,6 +166,7 @@ export interface UseFieldProps {
157
166
  control: FieldBaseProps['control'];
158
167
  register: FieldBaseProps['register'];
159
168
  reset: FieldBaseProps['reset'];
169
+ resetField: FieldBaseProps['resetField'];
160
170
  watch: UseFormReturn['watch'];
161
171
  formState: UseFormReturn['formState'];
162
172
  getFieldState: UseFormReturn['getFieldState'];
@@ -166,5 +176,6 @@ export interface UseFieldProps {
166
176
  trigger: UseFormReturn['trigger'];
167
177
  clearErrors: UseFormReturn['clearErrors'];
168
178
  error?: ErrorOption;
179
+ registerFieldFocus: registerFieldFocus;
169
180
  componentRegistry?: FieldComponentRegistry;
170
181
  }
@@ -1,9 +1,12 @@
1
- import { FieldWithCondition, CalculatedField } from '@digigov/form/Field/types';
1
+ import type {
2
+ FieldWithCondition,
3
+ ResolvedField,
4
+ } from '@digigov/form/Field/types';
2
5
 
3
6
  export function evaluateFieldWithConditions(
4
7
  field: FieldWithCondition,
5
8
  variables: FormData
6
- ): CalculatedField {
9
+ ): ResolvedField {
7
10
  const newField = { ...field };
8
11
  if (variables) {
9
12
  for (const key in variables) {
@@ -0,0 +1,58 @@
1
+ import type {
2
+ FieldProps,
3
+ FieldSpec,
4
+ ResolvedField,
5
+ } from '@digigov/form/Field/types';
6
+ import {
7
+ ALTERNATIVE_COMPONENTS,
8
+ FIELD_COMPONENTS,
9
+ type FieldComponentRegistry,
10
+ } from '@digigov/form/inputs/registry';
11
+
12
+ export function resolveField(
13
+ children: FieldProps['children'],
14
+ field: FieldSpec,
15
+ customComponentRegistry?: FieldComponentRegistry
16
+ ): ResolvedField {
17
+ const fieldComponentRegistry = {
18
+ ...FIELD_COMPONENTS,
19
+ ...(customComponentRegistry ?? {}),
20
+ };
21
+
22
+ const resolvedField = { ...field };
23
+
24
+ if (children) {
25
+ resolvedField.component = children;
26
+ resolvedField.controlled = true;
27
+ } else if (typeof field.component === 'function') {
28
+ // leave as is
29
+ } else if (!field.component && !field.type) {
30
+ resolvedField.component = fieldComponentRegistry.string.component;
31
+ resolvedField.controlled =
32
+ fieldComponentRegistry.string?.controlled || false;
33
+ } else if (
34
+ typeof field?.extra?.component === 'string' &&
35
+ ALTERNATIVE_COMPONENTS[field.extra.component]
36
+ ) {
37
+ resolvedField.controlled =
38
+ ALTERNATIVE_COMPONENTS[field.extra.component]?.controlled || false;
39
+ resolvedField.component =
40
+ ALTERNATIVE_COMPONENTS[field.extra.component].component;
41
+ resolvedField.wrapper =
42
+ ALTERNATIVE_COMPONENTS[field.extra.component].wrapper;
43
+ } else if (
44
+ !field.component &&
45
+ field.type &&
46
+ fieldComponentRegistry[field.type]
47
+ ) {
48
+ resolvedField.component = fieldComponentRegistry[field.type].component;
49
+ resolvedField.wrapper = fieldComponentRegistry[field.type].wrapper;
50
+ resolvedField.controlled =
51
+ fieldComponentRegistry[field.type]?.controlled || false;
52
+ } else {
53
+ resolvedField.component = fieldComponentRegistry.string.component;
54
+ resolvedField.controlled =
55
+ fieldComponentRegistry.string?.controlled || false;
56
+ }
57
+ return resolvedField as ResolvedField;
58
+ }
@@ -1,5 +1,5 @@
1
1
  import { useContext, useMemo } from 'react';
2
- import { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
2
+ import type { FieldSpec, UseFieldProps } from '@digigov/form/Field/types';
3
3
  import { FormContext } from '@digigov/form/FormContext';
4
4
 
5
5
  export const useField = (
@@ -11,6 +11,7 @@ export const useField = (
11
11
  control,
12
12
  register,
13
13
  reset,
14
+ resetField,
14
15
  trigger,
15
16
  clearErrors,
16
17
  errors,
@@ -22,6 +23,7 @@ export const useField = (
22
23
  getValues,
23
24
  unregister,
24
25
  formState,
26
+ registerFieldFocus,
25
27
  } = useContext(FormContext);
26
28
  if (!registerField) {
27
29
  throw new Error(`
@@ -30,11 +32,17 @@ export const useField = (
30
32
  `);
31
33
  }
32
34
  let error = errors[name];
33
- const nameIndexRegex = name.match(/^(.*?)\.(\d+)$/);
35
+
36
+ const nameIndexRegex = name.match(/^\[*(.*?)\.(\d+)\]*$/);
34
37
  if (nameIndexRegex) {
35
38
  const [, fieldArrayName, indexStr] = nameIndexRegex;
36
39
  error = errors[fieldArrayName]?.[Number(indexStr)];
37
40
  }
41
+ const nestedNameIndexRegex = name.match(/^\[*(.*?)\.(\d+)\.(.*?)\]*$/);
42
+ if (nestedNameIndexRegex) {
43
+ const [, fieldArrayName, indexStr, fieldItemName] = nestedNameIndexRegex;
44
+ error = errors[fieldArrayName]?.[Number(indexStr)]?.[fieldItemName];
45
+ }
38
46
  useMemo(
39
47
  () => customField?.type && registerField({ ...customField, key: name }),
40
48
  [customField, name, registerField]
@@ -44,6 +52,7 @@ export const useField = (
44
52
  control,
45
53
  register,
46
54
  reset,
55
+ resetField,
47
56
  trigger,
48
57
  watch,
49
58
  componentRegistry,
@@ -54,5 +63,6 @@ export const useField = (
54
63
  unregister,
55
64
  formState,
56
65
  error,
66
+ registerFieldFocus,
57
67
  };
58
68
  };